# ALU754 基本信息

## 1. 芯片基本信息

ALU754 是一个 IEEE 754 单精度浮点数运算单元，支持加法、减法、乘法、除法和比较操作，并集成了溢出和下溢处理。

## 2. 输入输出端口定义

### 2.1 输入端口
- `a[31:0]`: 32位IEEE 754单精度浮点数A
- `b[31:0]`: 32位IEEE 754单精度浮点数B
- `op[2:0]`: 3位操作码，定义如下：
  - `3'b000` (ADD): 加法
  - `3'b001` (MUL): 乘法
  - `3'b010` (DIV): 除法
  - `3'b011` (CMP): 比较

### 2.2 输出端口
- `result[31:0]`: 运算结果
- `overflow`: 溢出标志
- `underflow`: 下溢标志
- `gt`: 比较结果A>B
- `lt`: 比较结果A<B
- `eq`: 比较结果A==B

## 3. 芯片类型

根据Verilog源码分析，ALU754是一个**组合电路**，没有时钟信号，所有运算都是基于输入立即产生输出。

## 4. 功能分类

### 4.1 运算功能
ALU754主要支持5种功能类型：
1. **加法运算**：执行IEEE 754单精度浮点数加法
2. **乘法运算**：执行IEEE 754单精度浮点数乘法
3. **除法运算**：执行IEEE 754单精度浮点数除法
4. **比较运算**：执行IEEE 754单精度浮点数比较
5. **特殊值处理**：处理各种特殊值（零、无穷、NaN）

### 4.2 状态标志功能
1. **溢出检测**：检测运算结果是否超出表示范围
2. **下溢检测**：检测运算结果是否小于最小可表示值

## 5. 接口定义

根据Python接口文件`__init__.py`，ALU754提供以下访问方式：
- 通过`DUTALU754`类实例化
- 通过`a`, `b`, `op`属性设置输入
- 通过`result`, `overflow`, `underflow`, `gt`, `lt`, `eq`属性获取输出
- 提供`Step`方法来推进仿真时间