【Verilog】記述言語で論理設計 Project2【VHDL】
■ このスレッドは過去ログ倉庫に格納されています
0532774ワット発電中さん
05/03/06 22:14:37ID:bCe6kmA8被乗数(805*002の805の方)にだけマイナスが来るのですが、
とりあえず符号拡張で期待値は出てました。。
マイナス乗数ではNGになる? 後の遺恨とならぬよう確認しとくとします。
>>531
>符号拡張の記述は 具体的に どうやってますか?
思いついたまま適当に書いてたので、A*Bの直前で
= (被乗数[12])? {20'hfffff,被乗数} : {20'h00000,被乗数};
などと書いておりました。
>Verilog1995でも $signed(12'h805) * $signed(12'h002)
この書き方、知りませんでした。。(verilogはもう○年やってるのに…)
テストベンチでしか$使ったこと無い…
そうそう、他に25bit*26bitの計算があって、こちらは64bitまで拡張しないとNGでした。
今、win電卓のQWORDで確認しました!(手元の関数電卓は…8桁までしかないorz)
>((2^16) - A) * ((2^16) - B) を展開して、
> = (2^32) - (2^16)*(A+B) + (A*B) と考えると、わかりやすいかな?
わかりました!(10分間考え込んだけど)
ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています