インターネット上で、Verilogでmux 4:1についていくつかの例を見てきました。私は何かをしようとしましたが、出力はexpetedではありません。Verilogでmux 4:1を実行していますが、出力がexpetedではありません
私の質問は、私がすべきチャンスが両方にあります。これはソースです:
module mux41 (a, b, c, d,select,z);
input a,b,c,d;
input [1:0]select;
output reg z;
[email protected](select)
begin
case (select)
2'b00: assign z=a;
2'b01: assign z=b;
2'b10: assign z=c;
2'b11: assign z=d;
endcase
end
endmodule
、これはテストベンチです:
module mux41_tb;
reg at,bt,ct,dt;
reg [1:0] selectt;
wire zt;
mux41 test(.a(at),.b(bt),.c(ct),.d(dt),.select(selectt),
.z(zt));
initial
begin
$monitor ("a=%d",at,"b=%b",bt,"c=%b",ct,
"d=%b","select=%b",selectt,"z=%z",zt);
selectt =2'b00;
#5
selectt =2'b01;
#5
selectt =2'b10;
#5
selectt =2'b11;
#5;
end
endmodule
が、出力は以下のとおりです。コード(ソースとテストベンチ)。
Sincerylly、 NIN。
dtを忘れてしまったので、モニターラインの
をだあなたは、物理的な使用していますボードを切り替えるマルチプレクサを選択しますか?その場合は、スイッチのバウンスによる不具合が発生する可能性があります。このような場合は、アナログまたはデジタルのデバウザーを追加する必要があります。 – Russell
こんにちはrussell ..すべてではない..私はちょうどVerilogで単純なマルチプレクサIC(マルチプレクサ4:1)をシミュレートしようとしています。 – NIN
FYI、 'always'ブロック内で' assign'を使うべきではありません。 – Greg