HDL   Hardware Description Language   하드웨어 기술 언어, 하드웨어 표현 언어

(2023-11-16)

하드웨어 서술 언어, 논리 합성, 디지털 시스템 설계


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 HDLIEEE에서 표준으로 공인됨 
  ㅇ AHDL (Altera社의 하드웨어기술언어) 등


3. HDL의 특징

  ㅇ 특히, 기존 프로그래밍 언어와 달리, 
     - 하드웨어 상에서 동작하는 시간(Timing)과 동시성(Concurrency) 표현이 가능

  ㅇ 주요 특성
     - 추상화 (Abstraction)
     - 동시성/병행성 (Concurrency)
     - 병렬성 (Parallel)


4. HDL에 의한 설계 흐름 및 컴파일 단계설계 흐름 (Design Flow)
     - ①  설계 엔트리 (Design Entry) 또는 설계 캡슐화 (Design Encapsulation)
        . 디지털시스템의 하드웨어적인 기능(동작,구조)을 HDL 언어로써 표현하는 것
        . 표현 방식은, 부울식,진리표,넷리스트,추상적 동작 모델 등 다양한 형식으로 표현 가능함
        . 큰 회로는, 작은 회로들의 상호 연결,상호 작용으로 분할시켜 표현 가능

     - ②  논리 시뮬레이션 (Logic Simulation)
        . 하드웨어가 어떻게 동작하는지를 컴퓨터 디스플레이로 보여주는 것
           .. 시간 순서, 신호 파형 등 출력
        . 회로 기능 테스트의 논리 입력값(stimulus)을 테스트 벤치(test bench)라고 함
           .. 테스트 벤치도 HDL로 작성됨
        . 올바른 동작 증명을 위해 직접 확인 검증,수학적인 방법 등을 사용하게 됨

     - ③  논리 합성 (Logic Synthesis)
        . HDL 표현에 의한 구성요소와 그들의 상호연결을 최적화(논리식의 간략화,최소화 등)시킨,
        . 그러한 결과물을 넷리스트로 얻어내는 과정
        . 이 과정에서 요소 및 구조를 표현하는 데이터베이스를 생성하게 됨

     - ④  타이밍 검증 (Timing Verification)
        . 합성된 결과물이 규정 속도에서 동작 가능한지를 검증
        . 게이트 전파 지연 등에 의한 영향으로 올바른 동작 여부를 검증

     - ⑤  결함 시뮬레이션 (Fault Simulation)
        . 결함 회로와 무 결함 회로 간의 차이를 확인할 수 있게,
        . 테스트 패턴을 인가함으로써 검증

     * 이로써, 실제 구현될 IC 형태는, ASIC,PLD,FPGA 등

  ㅇ 컴파일 단계의 구분 (레지스터 전달 레벨 -> 게이트 레벨)
     - ①  논리 동작을 기술하는 HDL 포멧의 파일 생성
     - ②  산업 표준인 EDF 포멧으로 변환
     - ③  JEDEC 포멧으로 변환


5. 디지털시스템 설계 상의 `동작` 및 `구조`의 표현 방식

  ㅇ 구조적 모델링 (Structural) 또는 게이트 레벨 모델링 (Gate Level)
     - 디지털시스템 구조의 표현 즉, 논리회로적 구성을 표현
     - 내부 컴포넌트들의 연결 집합으로써 모델링을 하게 됨

  ㅇ 데이터 흐름 모델링 (Data Flow)
     - 기존에 부울함수로 표현하던 논리연산을,
     - HDL 연산자할당문(assignment)을 이용하여 설계/모델링 함

  ㅇ 동작적 모델링, 행위 모델링 (Behavioral)
     - 하드웨어 기능을 추상적으로 표현하는 방식
        . 회로가 어떻게 동작하는지 만을 설명하고, 내부 세부사항은 언급하지 않음
     - 기존에, 진리표,상태표,상태도 등으로 표현하던 것을
        . HDL 언어의 고유한 문법을 이용하여 추상화모델링을 함

  ㅇ 혼합 모델링 : 위 3개 형태를 혼합한 모델링으로, HDL은 이 모두를 사용함


6. 디지털시스템 설계 상의 계층적 레벨 구분

  ㅇ 행위 레벨 (Behavioral) : [추상화 정도 가장 높음]
     - 하드웨어 기능 및 성능, 입출력, 동작의 기술, 시뮬레이션 등
  ㅇ 레지스터 전달 레벨 (RTL)
     - 기능 영역 단위의 구조로 표현
  ㅇ 게이트 레벨 (Gate)
  ㅇ 트랜지스터 레벨 (Tr)
  ㅇ 배치 및 배선 (레이아웃)

하드웨어 기술(記述)
   1. HDL(하드웨어 기술 언어)   2. 레지스터 전달 레벨 (RTL)   3. VHDL  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"