运算单元模块:实现加减乘除运算。
选择信号s | 实现功能 |
00 | a+b |
01 | a-b |
10 | a*b |
11 | a/b |
module alu(s,q,a,b);
//输入端口
input [1:0]s;
input [2:0]a;
input [2:0]b;
//输出端口
output [5:0] q;//两个3位数相乘最大为49.结果为6位。
reg [5:0]q;
//运算方式选择
parameter add=2'b00,//加
sub=2'b01,//减,大数减小数
mul=2'b10,//乘
div=2'b11;//除
//主程序
always @(s or a or b)
begin
case(s)
add:q=a+b;
sub:q=a-b;
mul:q=a*b;
div:q=a/b;
endcase
end
endmodule
实验结果: