前回トップモジュール内のコードについて説明してなかったので、その補足から。
wireへの値の代入にはassignを使います。
assign in1 = 32'd1; assign in2 = 32'd2;
このように。
CADツールなどが入っていれば簡単に波形を見れるかとは思いますが、そうでない場合は何かとデバッグが不便です。そこで、Shell上に配線の値を表示する機能を使います。
initial $monitor("result=%h", result);
$monitorの引数に、表示したいwireやregの値を書きます。
モニターを挿し込んだコード全体は次のようになります。ただ、この方法は実機への実装は全く考えていないので、実機に焼きたい場合は改造の必要あり。
module adder( input[31:0] in1, in2, output[31:0] result ); assign result = in1 + in2; endmodule /****トップモジュール****/ module top(); wire[31:0] in1, in2, result; assign in1 = 32'd1; assign in2 = 32'd2; adder adder_body(in1, in2, result); initial $monitor("result=%h", result); endmodule
result=00000003と出ればOKです。