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
内置一个32位num2(值为32h’01)作为输入到运算器端口A;
将sw0~sw7输入到num1,经过无符号扩展到32位后,输入到运算器的端口B;
运算器支持“加、减、与、或、非”5种运算,需要3位(8个操作)。将sw23~sw21输入到op作为运算器的控制信号;
将计算32位结果s显示到七段数码管(16进制)。
验证表所有功能,并给以下的实验结果。
扩展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
增加运算器的功能说明
增加比较运算SLT的功能,其对应的操作码为101,当Sign_extend的值小于num2时,输出结果32'h00000001,否则输出32'h00000000。
增加有符号的加法功能,其对应的操作码为110,需要输入的8位数据按照有符号的扩展方式扩展为32位。
运算器增加结果状态输出
增加对结果是否为零、是否有溢出的输出,并将输出的状态值通过LED信号灯输出,其结果分别输出到GLED0、YLED0上显示。
给出调整后的RTL源程序(.V文件)
给出验证ALU功能的实验结果表。
Last updated
Was this helpful?