데이터 플로우 모델링 이해
레지스터들과 데이터 처리방법 간의 설계가 가능
기능 중심의 구현 방법
논리합성(데이터 플로우 수준의 설계를 게이트 수준의 설계로 생성) 기법이 있기 때문에
게이트 수준의 모델링보다 데이터 플로우 모델링으로 쉽게 설계
RTL은 데이터 플로우 모델링과 행위 수준 모델링을 합친 기법
- 연속 할당문
하나의 값을 net에 할당
assign<신호강도><지연값><인수목록>=<인자값>;
특징
왼쪽은 항상 스칼라나 벡터의 net, 또는 스칼라 net과 벡터 net으로 합쳐진 것
오른쪽 피연산자들의 값이 바뀌자마자 왼쪽의 net에 값을 할당
연산자의 오른쪽에 올 수 있는 것은 레지스터 또는 net 또는 함수 호출문
할당 문 안에서 지연값을 넣어줄 수 있으며, 시간은 단위 시간으로 지정
- 정규 할당 지연
연속 할당문에 지연되는 값을 직접 할당하는 방법
지연 시간이 지난 후 오른쪽의 피연산자를 계산
지연 시간 이내에 값이 바뀌면 연산하는 순간 변경된 값으로 계산
ex) wire out;
assign #100 out = a & b;
- net 선언 지연
연속 할당문을 사용하지 않고 net에 직접 지연을 넣을 수 있음
ex) wire #10 out;
- 연산자
데이터 플로우 모델링은 수식에 의한 설계
verilog HDL 문법에서 배웠던 연산자의 실제적인 활용
-산술 연산자
덧셈(+) , 뺄셈(-) , 곱셈(*) , 나눗셈(/) , 나머지(%) , 거듭제곱(**)
- 단항 연산자 : 양수(+)와 음수(-)로 피 연산자의 부호를 나타냄
이항 연산자보다 높은 우선순위를 가짐
- 이항연산자 : 연산 값에 x(unknown)이거나 z(high impedance)값이 포함된 경우
- 논리 연산자 : AND(&&) , OR(||) , NOT(!)
논리적 거짓은 0, 논리적 참은 1, 결과에 상관없는 값 x
피연산자의 값이 x, z인 경우에는 x의 값으로 인식하며 대부분의 시뮬에서는 거짓 조건으로 인식
변수나 수식을 피연산자로 취함
- 관계 연산자 : >, <, >=, <=
수식결과가 참이면 논리값 1을 거짓이면 논리값 0을, x나 z 값을 가진다면 x
- 등가 연산자 : ==, !=, ===, !==
연산 결과가 참이면 1, 거짓이면 0
케이스 등가 (부정 등가) 연산자는 x나 z값도 비트 단위로 비교하여 결과값으로 1 또는 0으로 되돌림
- 비트 단위 연산자 : ~ , &, |, ^, ^~
- 결합 연산자 : {}
- shift 연산자 : << , >>
- 조건 연산자 : <조건식> ? <참 조건일 때의 수식> : <거짓 조건일 때의 수식>
'verilog HDL' 카테고리의 다른 글
[Verilog] Behavior modeling 설계 (0) | 2022.03.19 |
---|---|
[Verilog] Behavior modeling (0) | 2022.03.18 |
[Verilog] Gate level modeling (0) | 2022.03.16 |
[Verilog] (0) | 2022.03.16 |
[Verilog] 기초문법 (0) | 2022.03.15 |