我正在尝试按如下方式实现乘以 15。
module mul15(
output [10:0] result,
input [3:0] a
);
assign result = a*15;
endmodule
但是是否有任何改进的方法可以将 a 乘以 15?
我认为有两种这样的方式
1.结果 = a<<4 -1;
2.结果 = {a,3'b1111_1111};
Ans 我认为最好的方法是 2。但我也不确定综合方面。
更新:
如果我在 {a,3'b1111_1111} 处乘以 0 怎么办?这是 255 而不是 0。
有谁知道最好的方法?
更新这种方式怎么样?
情况1
结果 = {a,8'b0}+ {a,7'b0}+ {a,6'b0}+ {a,5'b0}+ {a,4'b0}+ {a,7'b0}+ {a,3'b0}+ {a,2'b0}+ {a,1'b0}+ a; 但它看起来使用了 8 个加法器。
案例2
结果 = a<<8 -1
我不确定其他最好的方法是什么。