UVM & RTL/Verilog HDL

[Verilog HDL] Instruction

Return 2022. 6. 10. 17:07

HDL : Hardware Description Language

디지털 논리 회로의 문자 표현 

 - 그림(schematic)보다 만들거나 고치기 쉬움 

 - 그러나 HDL 설계시에는 항상 그림(schematic)을 생각해야 함 

HDL은 "programming languages"가 아님 

 - 매우 비슷하게 보이지만 프로그램처럼 작성하면 안된다. (verilog와 C가 상당히 유사함)

 - 뛰어넘어야 할 가장 중요하고 어려운 개념 

     - C : 순차적(sequential) 실행 

     - HDL : 병렬적(parallel) 실행 

 - 컴파일 방법은 비슷함 

     - C : Source > 컴파일 > 실행파일 

     - HDL : Source > 컴파일 > 시뮬레이션 > 합성(synthesis) > Hardware 

 

SW와 HW의 차이 

위 그림과 같이 clk이 동시에 들어간다. 즉 4개의 플립플롭이 병렬적으로 동작한다. 

 

System IC 설계과정 

설계사항 결정 

 - 회로의 기능, 동작성능, 설계기간, 단가 등이 포함된 설계 목표

 - 설계될 시스템의 분할, 적용될 알고리즘과 아키텍처, 데이터 입/출력 및 제어 신호들의 타이밍, 입력/출력 신호의 이름

   과 비트 폭, 리셋 및 enble신호, 클럭 신호에 대한 정의 등을 포함.

행위수준(Behavioral level)모델링 및 검증 

 - 상세 설계 이전에 설계사양을 확인할 수 있도록 시스템의 전체 기능을 모델링하고 검증하는 과정 

 - 설계사양에서 정의된 기능의 만족 여부, 입/출력 인터페이스의 호환성, 국제 표준규격의 만족 여부 

 - C, SystemVerilog등을 사용.

HDL코딩 (RTL 설계)

 - RTL(Register Transfer Level)모델링을 통한 상세 설계

    - 논리합성(logic synthesis)툴에서 합성 가능한 코드로 개발 

 - 합성 가능한 RTL설계

    - 모듈을 이용한 구조적 모델링 

    - 합성이 지원되지 않는 구문이나 파일 입/출력 구문은 사용금지

 - 최적의 하드웨어가 합성되도록 모델링

 - 검증을 위한 테스트 벤치(test bench)작성

HDL 시뮬레이션(기능 검증)

 - RTL모델이 설계사양을 만족하는지 확인하기 위한 검증 

 - 회로 내부의 지연(delay)고려되지 않은 기능 수준의 검증 

 - 회로의 기능을 정확하게 검증할 수 있는 테스트 벤치의 작성이 중요 

논리 합성 (synthesis)

 - RTL수준의 HDL코드를 게이트(gate)수준의 논리회로로 변환하는 과정 

 - 합성 조건들이 명시된 제한조건(constraint)과 target library가 사용됨 

 - Constraint 

    - 합성되는 회로의 목표 동작 주파수, 면적, 클록신호 사양, 입/출력 신호 사양, 환경 변수 및 설계 규칙 등 논리합성에

      사용될 조건

 - Target library 

    - 합성에 사용되는 라이브러리 

    - 삼성/하이닉스 등 특정 회사의 FPGA디바이스 또는 셀 라이브러리

 - HDL코드를 읽어 문법적인 오류를 분석하고, 구문을 해석하여 논리 게이트로 변환하는 단계

 - 최적화 알고리즘을 적용하여 회로를 간소화시키는 최적화 단계

 - 셀 라이브러리로 매핑하는 단계

게이트 수준 검증 

 - 합성이 완료되면 게이트 수준의 netlist가 얻어지며, 합성에 사용된 라이브러리의 특성이 합성된 회로에 반영됨.

 - RTL수준 검증에서 사용되었던 테스트 벤치를 동일하게 적용하여 논리 및 타이핑 검증 

레이아웃 설계 

 - 논리합성을 통해 생성된 게이트 수준 netlist를 마스크(mask)제작에 사용될 레이아웃 도면으로 변환하는 과정 

 - 자동 배치/배선(Placement & Routing; P&R) 툴 

RTL수준과 Gate수준의 Verilog 

Gate 수준 Verilog와 Layout