1. Verilog HDL
ㅇ 역사
- 원래, 1983년 Gateway Design Automation社에서 개발된 하드웨어 기술 언어
- 후에, Cadence Design System社에 인수되어 업계 표준으로 자리잡음
- 이후, 1991년 내부 LRM(Language Reference Manual)을 공개함으로써,
- 이로부터, 1995년도에 IEEE에서 최초 표준화됨 (IEEE 1364 - 1995)
ㅇ 표준 : IEEE std. 1364, 1800 (1995,2001,2005,2009,2012)
- System Verilog (시스템 수준의 모델링,IEEE 1800)과 기존 Verilog (IEEE 1364-2001)이 통합,
- IEEE 1364-2005로 개정되는 등 확장이 지속적으로 이루어짐
ㅇ 주요 사용 용도
- 디지털 회로 시뮬레이션(Simulation), 회로 검증(Verification), 회로 합성(Synthesis)
. 시뮬레이션 : 컴퓨터 기반의 실험을 통해, 예측/분석하는 일련의 과정
. 합성 : 설계한 HDL 코드를 netlist 형태로 바꾸는 과정
2. Verilog 특징
ㅇ 문법이 C 언어와 유사 ☞ Verilog 문법 참조
ㅇ 기본 설계 단위가 모듈임 ☞ Verilog 모듈 참조
- 모듈 기반 설계 : 하드웨어 설계를 모듈 단위로 나누어 계층적 설계 가능
ㅇ 시간 제어 기능 가능
- # 지연과 @ 이벤트 제어를 사용하여, 하드웨어의 타이밍 특성을 표현 가능
ㅇ 특정 EDA (Electronic Design Automation), 공정 기술, 설계 방법 등에 비 종속됨
ㅇ 확장자 `*.v`이 붙은 하나의 파일 내에 하나의 시스템의 설계 결과물이 담겨짐
3. Verilog 모델링
ㅇ 데이터 흐름 모델링
- 신호의 흐름과 관계를 중시 함
. 연산자와 연산식으로 설계 표현
.. 기본적으로 assign문을 사용하여 신호 간의 관계를 정의하고, 간단한 연산을 표현
ㅇ 행동적/동작적 모델링
- 동작을 추상적으로 정의하여, 설계자가 하드웨어 동작을 효율적으로 표현토록 함
. always 및 initial 블록을 활용한 설계 표현
. 조건문과 반복문 등
ㅇ 구조적 모델링
- 하드웨어의 물리적인 구조를 정확하게 재현코자 함
. 모듈의 계층적 구성과 하위 모듈 연결
. 설계 재사용의 원리 활용 등
4. [참고사항]
ㅇ Verilog 기초 문법 ☞ Verilog 문법 참조
ㅇ Verilog 문장,구문의 규칙 및 종류 ☞ Verilog 구문 참조
ㅇ 시뮬레이션 : 설계된 회로에 테스트 조건의 입력을 가하고, 그 출력이 올바른지 확인하는 과정
- 기능적 시뮬레이션 : 타이밍에 대한 제한조건 없이 기능,동작 만을 검증
- 타이밍 시뮬레이션 : 합성,구현 과정에서, 배치,배선을 마친 후, 타이밍 조건을 고려하며 검증
ㅇ 테스트 벤치 (testbench) : 설계된 회로를 시뮬레이션하기 위한 모듈