2017-03-17 33 views
-1

저는 Verilog를 처음 사용했습니다. 따라서 매우 간단한 질문이 있습니다. 나는 문Tri-state 버퍼에 지연을 추가하는 방법

할당 패드 = (수) 다음 paddata_in 할당하기 전에 지연을 추가 할? data_in : 1'bz;

assign pad = (enable) ? #10 data_in : 1'bz; 

같은

뭔가하지만 작동하지 않습니다. 그렇게하는 올바른 방법은 무엇입니까?

답변

2

는이 유효 조건이 지연에 Data_IN가 높은 Z로의 전환을 알 수

assign #10 pad = (enable) ? data_in : 1'bz; 

assign 사이 pad 전에 지연을 넣어야.
상승, 실패 및 꺼짐 시간을 개별적으로 제어 할 수 있습니다. 예를 들어 :

assign #(10,10,0) pad = (enable) ? data_in : 1'bz; 

에는 턴 온 시간이 없다, 그래서 당신은 data_in에 지연을 원하는 경우, 당신은 당신은 할당 문에 대해 자세히 알아볼 수 있습니다

wire #10 data_in_delayed = data_in; 
assign pad = (enable) ? data_in_delayed : 1'bz; 

간헐적 할당을 만들어야합니다 지연 있음 IEEE Std 1800-2012 § 10.3 연속 지정. 참고 SystemVerilog에서는 net 및 variable 형식에 assign 문을 사용할 수 있으며 Verilog는 net 형식 만 지원합니다.

또한 합성시 # 지연이 무시된다는 점에 유의하십시오. # 지연은 시뮬레이션에만 해당됩니다.

+0

고맙습니다! 빠른 응답을 위해 @greg. 매우 도움이되었습니다. –