数据通路。
y = func(a,b)
func可以是加法,减法,乘法,比较,移位,舍入,饱和等。
分别针对有符号数,无符号数的情况。
提示:可以参考synopsys的一篇文档 https://t.zsxq.com/QF6QNju
加法:
- 对于无符号数而言:
module arithmetic(
input [3:0] a,
input [3:0] b,
output [4:0] res_sum, //加
output [3:0] res_sub, //减
output [7:0] res_pro, //乘
//output [3:0] res_comp, //比较
output [3:0] right_shift //右移
);
assign res_sum = a + b;
assign res_sub = a - b;
assign res_pro = a * b;
//assign res_com =
assign right_shift = a>>3; //逻辑右移
wire [3:0] right_shift_a; //算术右移结果
assign right_shift_a = a>>>3;
endmodule
测试文件