- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:verilog で「*」を使って2の補数形式の乗算って・・・)
verilogで2の補数形式の乗算をする方法
このQ&Aのポイント
- 加算器、減算器がうまくいった後、乗算器を作成したいです。しかし、verilogで2の補数形式の乗算をする際に文法エラーが発生してしまいます。
- 具体的には、q = (~a + 1) * (~b + 1);という式がエラーとなります。(mul.v,28|16): expecting a semicolon(';')というエラーメッセージが表示されます。
- また、always@(a[15] or b[15])というように書き換えるとシミュレーションはできますが、結果が正しくありません。正しい方法を教えていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
最後の "else if" が "elseif" になっているためにエラーになるのでは。 でもそれだと、 >ちなみにalways@(a[15] or b[15])のように書き換えるとシミュレーションできるのですが、結果があっていません。 というのがわからないのですが。。。 ちなみに、上記のように記述を訂正してシミュレータ(Icarus Verilog)に かけたところ通りました。結果はきちんと見ていませんが、それらしい値が 出ているようでした。