산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> verilog

Verilog 게이트 지연

디지털 요소는 이진 항목이며 0과 1의 두 값 중 하나만 유지할 수 있습니다. 그러나 0에서 1로, 1에서 0으로의 전환에는 전환 지연이 있으므로 각 게이트 요소도 값을 입력에서 출력으로 전파합니다.

예를 들어, 2개의 입력 AND 게이트는 두 입력이 모두 1이 되면 출력을 1로 전환하고 입력 중 하나가 0이 되면 다시 0으로 전환해야 합니다. 이러한 게이트 및 핀 대 핀 지연은 로직 프리미티브를 인스턴스화할 때 Verilog에서 지정할 수 있습니다.

상승, 하강 및 종료 지연

게이트의 출력이 어떤 값에서 1로 변하는 데 걸리는 시간을 상승이라고 합니다. 지연. 게이트의 출력이 일부 값에서 0으로 변경되는 데 걸리는 시간을 하강이라고 합니다. 지연. 게이트의 출력이 특정 값에서 높은 임피던스로 변경되는 데 걸리는 시간을 턴오프라고 합니다. 지연.

이러한 지연은 실제 회로에서 언제든지 상승 또는 하강할 수 있고 게이트 출력에만 국한되지 않으므로 실제로 모든 신호에 적용할 수 있습니다. 게이트 지연을 나타내는 세 가지 방법이 있으며 두 가지 지연 형식은 출력이 고임피던스로 전환되지 않는 대부분의 프리미티브에 적용될 수 있습니다. 입력 조합에 대해 출력이 Z로 이동하지 않기 때문에 3개의 지연 형식을 AND 게이트에 적용할 수 없습니다.

  
  
// Single delay specified - used for all three types of transition delays
or #(<delay>) o1 (out, a, b);

// Two delays specified - used for Rise and Fall transitions
or #(<rise>, <fall>) o1 (out, a, b);

// Three delays specified - used for Rise, Fall and Turn-off transitions
or #(<rise>, <fall>, <turn_off>) o1 (out, a, b);

  

단일 지연만 지정된 경우 세 가지 유형의 지연 모두 동일한 주어진 값을 사용합니다. 두 개의 지연이 지정된 경우 첫 번째 지연은 상승을 나타냅니다. 두 번째 것은 가을을 나타냅니다. 지연. 3개의 지연이 지정되면 상승을 나타냅니다. , 떨어지다꺼짐 각각 지연됩니다.

하나의 지연 형식

  
  
module des (	input 	a, b,
            	output out1, out2);

	// AND gate has 2 time unit gate delay
  and 		#(2) o1 (out1, a, b);
  
  // BUFIF0 gate has 3 time unit gate delay
  bufif0 	#(3) b1 (out2, a, b);
  
endmodule

  
  
  
module tb;
  reg a, b;
  wire out1, out2;
  
  des d0 (.out1(out1), .out2(out2), .a(a), .b(b));
  
  initial begin
    {a, b} <= 0;
    
    $monitor ("T=%0t a=%0b b=%0b and=%0b bufif0=%0b", $time, a, b, out1, out2);
    
    #10 a <= 1;
    #10 b <= 1;
    #10 a <= 0;
    #10 b <= 0;
  end
endmodule

  

AND의 출력을 확인하십시오. 게이트는 입력 중 하나가 변경된 후 2시간 단위로 변경됩니다. 예를 들어, T=20에서 a는 이미 1인 반면 b는 1이 됩니다. 그러나 출력은 T=22에서만 1이 됩니다. 마찬가지로 T=30에서 0으로 돌아가고 출력은 T=32에서 새 값을 얻습니다.

게이트 지연은 BUFIF0에 대해 3시간 단위로 지정됩니다. 따라서 a가 이미 1에 있는 동안 b가 0에서 1로 변경되면 출력은 Z로 업데이트되는 데 3시간 단위가 걸리고 마지막으로 T=23에서 업데이트됩니다.

시뮬레이션 로그
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=2 a=0 b=0 and=0 bufif0=x
T=3 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=13 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=22 a=1 b=1 and=1 bufif0=1
T=23 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=32 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=43 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.

2 지연 형식

rise 아래에 표시된 다른 Verilog 모델에 위에 표시된 동일한 테스트벤치를 적용해 보겠습니다. 그리고 떨어져 지연이 명시적으로 언급되어 있습니다.

  
  
module des (	input 	a, b,
            	output out1, out2);

  and #(2, 3) o1 (out1, a, b);
  bufif0 #(4, 5) b1 (out2, a, b);
  
endmodule

  
시뮬레이션 로그
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=3 a=0 b=0 and=0 bufif0=x
T=5 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=14 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=22 a=1 b=1 and=1 bufif0=1
T=24 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=33 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=45 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.

3 지연 형식

  
  
module des (	input 	a, b,
            	output out1, out2);

  and #(2, 3) o1 (out1, a, b);
  bufif0 #(5, 6, 7) b1 (out2, a, b);
  
endmodule

  
시뮬레이션 로그
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=3 a=0 b=0 and=0 bufif0=x
T=6 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=15 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=22 a=1 b=1 and=1 bufif0=1
T=27 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=33 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=46 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.

최소/일반/최대 지연

지연은 제조된 칩의 다른 부분에서 동일하지 않으며 다른 온도 및 기타 변형에서도 동일하지 않습니다. 따라서 Verilog는 위에서 언급한 각 지연 유형에 대한 추가 제어 수준도 제공합니다. 모든 디지털 게이트 및 트랜지스터 셀에는 프로세스 노드를 기반으로 지정된 최소, 일반 및 최대 지연이 있으며 일반적으로 제작 파운드리의 라이브러리에서 제공합니다.

각 지연 유형 - 상승, 하강 및 끄기 - 세 가지 값 min , 일반최대 지정될 수 있으며 최소, 일반 및 최대 지연을 나타냅니다.

  
  
module des (	input 	a, b,
            	output out1, out2);

  and #(2:3:4, 3:4:5) o1 (out1, a, b);
  bufif0 #(5:6:7, 6:7:8, 7:8:9) b1 (out2, a, b);
  
endmodule

  
시뮬레이션 로그
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=4 a=0 b=0 and=0 bufif0=x
T=7 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=16 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=23 a=1 b=1 and=1 bufif0=1
T=28 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=34 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=47 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.


verilog

  1. Verilog 튜토리얼
  2. Verilog 연결
  3. Verilog 할당
  4. Verilog 차단 및 비 차단
  5. Verilog 지연 제어
  6. Verilog Inter 및 Intra 할당 지연
  7. 게이트 레벨 모델링
  8. Verilog 게이트 레벨 예
  9. Verilog 클록 생성기
  10. Verilog 수학 함수