用Verilog hdl设计一个实现8位ALU功能的函数其输入为两个4位操作变量a和b,以及一个3位选择信号select,输出为5位变量out,具体关系见下表.不考虑计算结果的上溢和下溢,并设计测试激励模块.select
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/25 20:59:06
![用Verilog hdl设计一个实现8位ALU功能的函数其输入为两个4位操作变量a和b,以及一个3位选择信号select,输出为5位变量out,具体关系见下表.不考虑计算结果的上溢和下溢,并设计测试激励模块.select](/uploads/image/z/8921232-0-2.jpg?t=%E7%94%A8Verilog+hdl%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA%E5%AE%9E%E7%8E%B08%E4%BD%8DALU%E5%8A%9F%E8%83%BD%E7%9A%84%E5%87%BD%E6%95%B0%E5%85%B6%E8%BE%93%E5%85%A5%E4%B8%BA%E4%B8%A4%E4%B8%AA4%E4%BD%8D%E6%93%8D%E4%BD%9C%E5%8F%98%E9%87%8Fa%E5%92%8Cb%2C%E4%BB%A5%E5%8F%8A%E4%B8%80%E4%B8%AA3%E4%BD%8D%E9%80%89%E6%8B%A9%E4%BF%A1%E5%8F%B7select%2C%E8%BE%93%E5%87%BA%E4%B8%BA5%E4%BD%8D%E5%8F%98%E9%87%8Fout%2C%E5%85%B7%E4%BD%93%E5%85%B3%E7%B3%BB%E8%A7%81%E4%B8%8B%E8%A1%A8.%E4%B8%8D%E8%80%83%E8%99%91%E8%AE%A1%E7%AE%97%E7%BB%93%E6%9E%9C%E7%9A%84%E4%B8%8A%E6%BA%A2%E5%92%8C%E4%B8%8B%E6%BA%A2%2C%E5%B9%B6%E8%AE%BE%E8%AE%A1%E6%B5%8B%E8%AF%95%E6%BF%80%E5%8A%B1%E6%A8%A1%E5%9D%97.select)
用Verilog hdl设计一个实现8位ALU功能的函数其输入为两个4位操作变量a和b,以及一个3位选择信号select,输出为5位变量out,具体关系见下表.不考虑计算结果的上溢和下溢,并设计测试激励模块.select
用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)(大小幅值比较)
用Verilog hdl设计一个实现8位ALU功能的函数其输入为两个4位操作变量a和b,以及一个3位选择信号select,输出为5位变量out,具体关系见下表.不考虑计算结果的上溢和下溢,并设计测试激励模块.select
给你个参考,没有的功能自己想吧,这些很简单.
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