作业帮 > 综合 > 作业

用Verilog hdl设计一个实现8位ALU功能的函数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 04:40:12
用Verilog hdl设计一个实现8位ALU功能的函数
其输入为两个4位操作变量a和b,以及一个3位选择信号select,输出为5位变量out,具体关系见下表.不考虑计算结果的上溢和下溢,并设计测试激励模块.
select信号 函数的输出
3‘b000 a
3‘b001 a+b
3‘b010 a-b
3‘b011 a/b
3‘b100 a%b(余数)
3‘b101 a<<1
3‘b110 a>>1
3‘b111 (a>b)(大小幅值比较)
给你个参考,没有的功能自己想吧,这些很简单.
module alu (
input [2:0] a,
input [2:0] b,
input [2:0] sel,
output reg [7:0] y
);
always@(a or b or sel) begin
case(sel)
3'b000:y = a + b;
3'b001:y = a - b;
3'b010:y = a * b;
3'b011:begin
y[7:4] = a / b;
y[3:0] = a % b;
end
3'b100:y = a & b;
3'b101:y = a | b;
3'b110:y = a;
3'b111:y = a ^ b;
endcase
end
endmodule