1.4.1.ALU实验

  • ALU验证实验

在提供的源代码和约束文件导入到自己创建的工程中,观察和验证下表功能

F[2:0]

功能

F[2:0]

功能

000

A+B

100

not A

001

A-B

101

not use

010

A and B

110

not use

011

A or B

111

not use

  1. 内置一个32位num2(值为32h’01)作为输入到运算器端口A;

  2. 将sw0~sw7输入到num1,经过无符号扩展到32位后,输入到运算器的端口B;

  3. 运算器支持“加、减、与、或、非”5种运算,需要3位(8个操作)。将sw23~sw21输入到op作为运算器的控制信号;

  4. 将计算32位结果s显示到七段数码管(16进制)。

  5. 验证表所有功能,并给以下的实验结果。

  6. 扩展ALU功能

在上表ALU功能的基础上新增SLT和有符号加法2个运算功能和状态输出逻辑。

F[2:0]

功能

F[2:0]

功能

000

A+B(unsigned)

100

not A

001

A-B

101

SLT

010

A and B

110

A+B(signed)

011

A or B

111

not use

  1. 增加运算器的功能说明

    1. 增加比较运算SLT的功能,其对应的操作码为101,当Sign_extend的值小于num2时,输出结果32'h00000001,否则输出32'h00000000。

    2. 增加有符号的加法功能,其对应的操作码为110,需要输入的8位数据按照有符号的扩展方式扩展为32位。

  2. 运算器增加结果状态输出

    1. 增加对结果是否为零、是否有溢出的输出,并将输出的状态值通过LED信号灯输出,其结果分别输出到GLED0、YLED0上显示。

  3. 给出调整后的RTL源程序(.V文件)

  4. 给出验证ALU功能的实验结果表。

Last updated

Was this helpful?