2016-12-14 19 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)에서 폭을 상속

하지만, 내가 컴파일 경고를받을 수 있나요.

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

는 1 비트의 기본 폭을 사용하는 sel 세력 전에 다른 input 키워드를 추가 : 코드는 동일합니다.

+0

예 나는 틀린 레지스터에 넣어서 깨달았습니다. 그래서 당신은 코드를 실행했고 그 아웃은 알려졌다는 말입니까? 에다에게 문제가 될 수 있습니까? 너는 다른 것을 바꿨 니? –

+0

질문에 수정하지 않았습니다. 나는 내 대답의 줄을 바꾸었다. 에다에서 모든 시뮬레이터를 시도 했습니까? – toolic

+0

당신은 나를 놀리는 거예요 ... 네, "input sel"이 효과가있었습니다. 왜 그래? 그것을 인식해야합니다 ... 웰프, 도움을 주셔서 감사합니다! –