用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)(大小幅值比较)
其输入为两个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
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
用Verilog HDL设计一个4位BCD码计数器
1.用Verilog HDL的行为描述设计一个带进位输入,输出的1位全加器
超前进位加法器?怎样用Verilog HDL 实现8位超前进位加法器本人需要完成《基于Verilog HDL的8位超前进
用Verilog HDL写8位超前进位加法器程序?
Verilog HDL的一个程序是什么意思?
用逻辑代数的形式和Verilog HDL的语句形式写出逻辑函数表达式:
有关verilog HDL语言的
verilog HDL
懂verilog HDL语言的来
数字设计方面的.verilog HDL描述.求大神赐教,仅有30积分.╮(╯▽╰)╭
verilog hdl 中的符号
verilog hdl 哪位高手可以解释下当中的q