私は次のように15倍するように実装しようとしています。
module mul15(
output [10:0] result,
input [3:0] a
);
assign result = a*15;
endmodule
しかし、a を 15 倍するための改善方法はありますか?
このように2通りあると思います
1.result = a<<4 -1;
2.result = {a,3'b1111_1111};
回答 2が一番いい方法だと思いますが、合成の面もよくわかりません。
アップデート:
{a,3'b1111_1111} で 0 を乗算するとどうなりますか? これは 0 ではなく 255 です。
誰かが最善の方法を知っていますか?
更新 この方法はどうですか?
ケース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
結果 = <<8 -1
他に何が最善の方法なのかわかりません。