已开源在GitHub上,欢迎各位大佬给Star
实验内容
1. 学习多功能ALU的工作原理,掌握运算器的设计方法
2. 掌握运用Verilog HDL 进行行为描述与建模的技巧和方法
解决方法
1. 分析一个具有8种运算功能的32位ALU,并能够产生运算结果的标志:结果位零标志(ZF)和溢出标志(OF)
2. 首先,分析出ZF只会在加减运算中出现溢出情况,然后分析出ALU 8种计算如何表达,如果使用“-”,就不用考虑如何减法
3. 代码展示:
顶层模块:
module ALU(AB_SW,ALU_OP,F_LED_SW,LED);
input[2:0]AB_SW,ALU_OP,F_LED_SW;
output[7:0]LED;
wire [31:0]A,B,F;
wire ZF,OF;
Third_experiment_second T2(AB_SW,A,B);
Third_experiment_first T1(OF,ZF,ALU_OP,A,B,F);
Third_experiment_third T3(F_LED_SW,LED,F,ZF,OF);
endmodule
Third_experiment_second模块(作为数据输入)
module Third_experiment_second(AB_SW,A,B);
input[2:0]AB_SW;
output reg[31:0]A,B;
always @(*)
begin
case(AB_SW)
3'b000:begin A=3