2016-12-14 10 views
0

私の指を置くことができませんなぜそれが動作していない、私は江田遊び場でシミュレーションを実行し、0に選択が変更されるたびに出力で "x"を取得します。 selが "1"でも正しく "1"になります。ありがとう!Verilogの4ビットマルチプレクサテストベンチコードはx

コード:

module mux8_2(input [3:0]a,[3:0]b,sel,output [3:0]out); 
assign out=(sel)?a:b; 
endmodule 

とテストベンチ:

module mux8_2_tb; 

reg [3:0]A; 

reg [3:0]B; 

reg SEL; 

wire [3:0]OUT; 

mux8_2 UUT(A,B,SEL,OUT); 

initial 
    begin 

$dumpfile("dump.vcd"); 

$dumpvars(1); 

A=4'b1; B=4'b0; SEL=1'b1; 

#1 SEL=1'b0; 
#1 SEL=1'b1; 
#1 SEL=1'b0; 
#1 SEL=1'b1; 
#1 SEL=1'b0; 
#1 SEL=1'b1; 
#1; 
end 

endmodule 

答えて

1

私はあなたの結果を再現することはできません。 OUTシグナルはいつも私のために知られています。これは、固定することができ

The following 1-bit expression is connected to 4-bit port "sel" of module 
    "mux8_2", instance "UUT" 

:あなたのコードsel

module mux8_2(input [3:0]a,[3:0]b, input sel,output [3:0]out); 

が前の信号([3:0]b)から幅を継承し

しかし、私は、コンパイルの警告を得ますか。それは1ビットのデフォルトの幅を使用するようにsel力の前に別のinputキーワードを追加

module mux8_2(input [3:0]a,[3:0]b,[3:0]sel,output [3:0]out); 

:あなたのコードは同等です。

+0

ええ、私は間違ったレジスタを入れて固定していることに気付きました。それであなたはコードを実行したと言っていて、そのアウトは分かっていますか?エダに問題がありますか?あなたは他の何かを変えましたか? –

+0

あなたはあなたの質問にそれを修正しませんでした。私は私の答えの中で線を変えただけです。あなたはeda上のすべてのシミュレータを試しましたか? – toolic

+0

あなたは私に冗談を言っていますか...ええ、 "入力された"事はうまくいきました。どうして?それはそれを認識する必要があります...ウェルプ、助けてくれてありがとう! –

関連する問題