이상적인 신호와 다르게 실제 신호는 abrupt하게 변할 수 없다.
따라서 게이트를 통과하여 신호의 출력이 변화되기까지 약간의 딜레이가 존재한다.
(이러한 딜레이를 무시한 채 설계한 회로를 제로지연 회로라고 한다.)
딜레이는 세가지 형태가 있을 수 있는데, 상승 지연(Rise Delays)과, 하강 지연(Fall Delays) 턴-오프 지연(Turn-off Delays)가 있다.
- 상승 지연: 다른 값(0, x, z)에서 1로 출력이 변화하는 과정에서 생기는 딜레이
- 하강 지연: 다른 값(1, x, z)에서 0로 출력이 변화하는 과정에서 생기는 딜레이
- 턴-오프 지연: 다른 값에서 하이 임피던스(z)로 출력이 변화하는 과정에서 생기는 딜레이
만약 값이 x로 변화하는 경우 세 지연 중 가장 작은 값을 선택한다.
이러한 지연의 값을 명시하는 방법으로는 세가지가 있다.
- 값 하나만 명시하는 경우
이 경우에는 이 값을 모든 지연에 사용한다.
and #(5) a1(out, i1, i2) //모든 변화가 5 단위시간 지연
- 값 두 개만 명시하는 경우
이 경우에 두 값은 상승과 하강 지연을 의미하고, 턴-오프 지연의 경우 두 값 중 작은 값이 된다.
and #(4, 6) a2(out, i1, i2); //상승 4, 하강 6, 턴-오프 min(4, 6)
- 세 가지 값을 명시하는 경우
이 경우에는 세 가지 값이 각각 상승, 하강, 턴-오프 지연을 나타낸다.
bufif0 #(3,4,5) b1 (out, in, control); //상승 3, 하강 4, 턴-오프 5
만약 지연을 지정하지 않는 경우 디폴트는 제로지연이다.
베릴로그는 또한 지연의 최소 / 최대 / 전형적 값을 지정할 수 있도록 지원한다.
이 값은 런타임시 선택할 수 있다. (따로 선택하지 않으면 전형적 값이다.)
and #(2:3:4, 3:4:5) a2(out, i1, i2);
//최소: 상승 2, 하강 3, 턴-오프 min(2, 3)
//최대: 상승 4, 하강 5, 턴-오프 min(4, 5)
//전형적: 상승 3, 하강 4, 턴-오프 min(3, 4)
Reference: Samir Palnitkar - Verilog HDL 2판
'EE > Verilog' 카테고리의 다른 글
[Verilog] 연산자 정리 (0) | 2023.01.11 |
---|---|
[Verilog] 데이터 플로우 모델링, assign 연속 할당문 (0) | 2023.01.11 |
[Verilog] 게이트 수준 모델링 (0) | 2023.01.06 |
[Verilog] 포트(Ports)와 포트 연결 규칙 (0) | 2023.01.05 |
[Verilog] 모듈의 구성 요소 (0) | 2023.01.05 |