1. 하드웨어 기술 언어 (HDL, Hardware Description Language)
ㅇ 디지털 하드웨어를 설계하는 언어
- 하드웨어(회로 관련 정보)의 구조와 동작의 기술(記述) 및 설계(設計)를,
- 텍스트 형태로 표현, 입력함으로써,
- 디지털 시스템의 복잡한 구조와 동작을 더 명확히, 더 쉽게 이해하고,
- 시뮬레이션 및 합성을 통해, 실제 구현을 지원 가능케 함
ㅇ 즉, 디지털시스템 하드웨어의 `구조` 및 `동작`을 기술(표현)할 수 있는 언어
- 하드웨어적인 소자, 구조, 동작 등을 텍스트 기반으로 표현 가능
ㅇ 특히, 프로그램적인 논리 또는 계산 보다는, 모델링을 강조하는 언어
- 즉, 입출력 논리 간의 관계 및 동작을 기술 가능토록 하고,
- 이를 저장,검색,편집,전송할 수 있게함
ㅇ 결국, 디지털시스템의 표현,설계,구현(합성),테스트,문서화하는 상위수준 하드웨어 기술 언어
- 하위레벨에서,
. 게이트와 플립플롭 등 실제 논리회로를 집적회로로 구현 가능
- 상위레벨에서,
. 하드웨어 기능을 설계(논리 합성)하고,
. 오류의 정정(시뮬레이션) 등을 가능케 함
* (디지털 시스템을 높은 수준의 추상화로 설계, 디버깅 가능케 함)
ㅇ 원래,
- 초기에는, 소규모 논리 회로의 시뮬레이션 정도 만 가능하던 것이,
- 오늘날은, 대규모 디지털시스템의,
. 설계(Design),시뮬레이션(Simulation),검증(Verification),구현(implementation) 등
. 거의 모든 용도로 사용 가능케 됨
2. HDL 언어의 대표적인 例)
ㅇ VHDL : IEEE 1076 (1993,2000,2002,2008년 등)
ㅇ Verilog HDL : IEEE 1364 (1995,2001,2005 등)
※ 특히, VHDL,Verilog HDL은 IEEE에서 표준으로 공인됨
ㅇ AHDL (Altera社의 하드웨어기술언어) 등
3. HDL의 특징
ㅇ 특히, 기존 프로그래밍 언어와 달리,
- 하드웨어 상에서 동작하는 시간(Timing)과 동시성(Concurrency) 표현이 가능
ㅇ 주요 특성
- 추상화 (Abstraction)
. 복잡한 시스템을 단순화하여 높은 수준의 개념으로 표현 가능
- 동시성/병행성 (Concurrency)
. 여러 작업이 동시에 발생하는 성질
. 여러 모듈들이 동시에 수행하는 구조를 정의할 수 있음으로써, 복잡한 동작의 표현 가능
- 병렬성 (Parallel)
. 여러 작업이 동시에 수행되는 성질
. 여러 모듈들을 동시에 작동하도록 구현시켜, 하드웨어 자원을 최대한 활용
4. HDL에 의한 설계 흐름 및 컴파일 단계
※ ☞ HDL 설계 단계 참조
- ① 설계 엔트리 (Design Entry) 또는 설계 캡슐화 (Design Encapsulation)
- ② 논리 시뮬레이션 (Logic Simulation)
- ③ 논리 합성 (Logic Synthesis)
- ④ 타이밍 검증 (Timing Verification)
- ⑤ 결함 시뮬레이션 (Fault Simulation)
* 이로써, 실제 구현될 IC 형태는, ASIC,PLD,FPGA 등
5. HDL에 의한 설계 관점 구분
※ ☞ HDL 설계 관점 구분 참조
- 모델링 표현 방식의 구분 : `동작`,`구조`,`데이터흐름`
. 구조적 모델링, 데이터 흐름 모델링, 동작적 모델링 등
- 계층적 레벨의 구분
. 행위 레벨, 레지스터 전달 레벨, 게이트 레벨, 트랜지스터 레벨, 물리적 레벨