プロが教える店舗&オフィスのセキュリティ対策術

verilog HDLについての質問です。
4ビットの加算器の回路を設計したのですが
module adder_4(a,b,cin,s,cout);
input a, b, cin;
output s, cout;
reg s, cout;

always @(a or b or cin)
begin
s = a ^ b ^ cin;
cout = (a & b) | (b & cin) | (cin & a);
end
endmodule


`timescale 1 ns / 1 ns

module adder_4_test;
reg [3:0]a,b;
reg cin
wire [7:0]s;
wire cout;

adder_4 _test(a,b,cin,s,cout);

initial begin
$dumpfile("adder_4_test.vcd");
$dumpvars(0);
$monitor("%t %b %b %b %b %b",$time,a,b,cin,s,cout);
a<=4'b0000;
b<=4'b0000;
cin<=1'b0;

#40 a<=4'b0110;
#40 b<=4'b0011;
#40 a<=4'b0010;
#40 b<=4'b0101;
#40 $finish;
end

endmodule

こちらをターミナルで実装したところ、このようにでてきたのですが、
adder_4.txt:19: syntax error
adder_4.txt:19: error: invalid module item.

こちらはどのように対処したら良いのでしょうか?ご回答の方よろしくお願いします

A 回答 (2件)

ところで、この論理おかしいよ。


adder_4って4ビット加算器ではなくて、1ビットの全加算器でしょ。
テストベンチでadder_4をインスタンスしてるけど、4ビットの信号を1ビットのポートにつなげてるから論理的におかしい。
adder_4を4つ置いて、キャリーをつなげないと4ビット加算器としては動作しません。
    • good
    • 1
この回答へのお礼

返事遅くなりました。4つ組み合わせて4ビット加算器で設計できました。ありがとうございました。

お礼日時:2020/06/26 19:09

reg cinの後にセミコロンが抜けてます。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!