작은 규모의 회로 설계시 게이트 수준 모델링 기법이 적합하다. (and, not게이트 등등을 직접 활용)
하지만 게이트가 많은 경우에는 설계가 복잡해 지게 되기 때문에, 설계자는 한 단계 추상화 된 기능 중심의 구현방법에서 설계를 하게 된다.
데이터플로우 설계 기법을 활용하여 설계자로 하여금 레지스터들과 데이터 처리방법 간의 설계를 할 수 있도록 한다.
현재 칩을 설계하는 어떤 회사들도 모든 작업을 게이트 수준에서 설계하지 않는다. 현재는 자동화된 도구들이 데이터플로우 수준의 설계로부터 게이트 수준의 설계를 생성해 주는데 이러한 작업을 논리합성(Logic syntheis)라고 한다.
verilog는 게이트수준과 데이터플로우 수준, 그리고 행위 수준 모델링 기법을 모두 사용하여 설계할 수 있다.
RTL이란? : 데이터플로우 무델링 기법과 행위 수준 기법을 합친 설계 방법이다.
- 6.1 연속(Continuous) 할당
데이터플로우 모델링 기법에 있어 가장 기본이 되는 문장. 하나의 값을 net에 할당한다.
우변의 값에 변화가 있을 때마다 좌변에 할당을 해주게 된다.
연속적 할당의 경우, Clock을 기다리는 어떤 절차(조건)을 기다렸다가 할당을 하는 것이 아니라, 우변의 값이 변화하는 즉시 좌변에 할당을 하는 것이기 때문에,값을 저장하고 특정 타이밍에 update하는 reg보다값을 저장할수 없기에 항상 값을 update하는 wire와 연관이 깊다.
wire mynet;
assign mynet=enable & data; // input이 enable, data인 and게이트가 된다.
위 할당문을 요약하여 표현할 수 있다.
wire mynet=enable & data; // input이 enable, data인 and게이트가 된다.
따라서 mynet을 wire선언하지 않아도 자동으로 선언되는 것이다.
- 6.2 지연
정규 할당 지연
오른쪽 피연산자의 값이 연산되어 왼쪽에 할당될 때 까지의 시간을 제어해 준다.
assign #10 out = in1 & in2;
in1, in2의 값이 변하더라도 10만큼 지연시간이 지난 후에 결과값을 out에 할당하는 것이다.
어떤 값이 10만큼의 지연시간 이내에 값이 바뀐다면 연산을 하는 순간에는 변경된 값으로 연산을 하는 것이다.

정규할당지연에서 연산을 하는 순간은 변경된 값으로 연산을 하므로, 할당문의 지연값보다 짧은 입력값의 변화는 출력에 영향을 미치지 않게 된다.
'HW > Verilog HDL' 카테고리의 다른 글
| 7. 구조적 프로시저 (1) | 2024.02.16 |
|---|