2つの半加算器モジュールで基本的な全加算器を設計し、それをテストベンチでテストしようとしています。コンパイルエラーはありませんが、出力(波形)では、SumとCarryのZとXが得られます。私は立ち往生していて、このエラーを修正するために、次に見なければならないことがわからない。基本的な全加算器の出力で "ZとX"を得る
これを修正するために、次のステップ(またはいくつかのポインタ)をチェックする必要がありますので、参考にしてください。
ここでは全加算器のVerilogコードです:上記のため
module half_adder(x,y,S,C);
input x,y;
output S,C;
xor G1(S,x,y);
and G2(C,x,y);
endmodule
module full_adder(x,y,z,S,C);
input x,y,z;
output S,C;
wire S1,C1,C2;
half_adder HA1(S1,C1,x,y);
half_adder HA2(S,C2,S1,z);
or G3(C,C1,C2);
endmodule
テストベンチ:
module tb_fulladder;
wire S,C;
reg x,y,z;
full_adder DUT(x,y,z,S,C);
initial
begin
x=1'b0;y=1'b0;z=1'b0;
#50
x=1'b0;y=1'b0;z=1'b1;
#50
x=1'b0;y=1'b1;z=1'b0;
#50
x=1'b0;y=1'b1;z=1'b1;
#50
x=1'b1;y=1'b0;z=1'b0;
#50
x=1'b1;y=1'b0;z=1'b1;
#50
x=1'b1;y=1'b1;z=1'b0;
#50
x=1'b1;y=1'b1;z=1'b1;
end
initial
#500
$finish;
endmodule
彼は、波形であるRE:
ありがとうございます.. – sundar