Verilog   Verilog HDL   베릴로그

(2021-02-15)

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 1800-2005로 개정되는 등 확장이 지속적으로 이루어짐

  ㅇ 주요 사용 용도 
     - 디지털 회로 시뮬레이션(Simulation), 회로 검증(Verification), 회로 합성(Synthesis)
        . 합성 : 설계HDL 코드netlist 형태로 바꾸는 과정

  ㅇ 특징
     - 문법C 언어와 유사
     - 특정 EDA(Electronic Design Automation),공정 기술, 설계 방법 등에 비 종속됨


2. Verilog 언어구문 구분논리 합성 구문 
     - assign 문,always 문,if-else 문 등 EDA 도구에서 합성 지원용 구문시뮬레이션 구문 
     - initial 문,$finish,$fopen 등 시뮬레이션을 위한 테스트 벤치 작성
  ㅇ 라이브러리 설계 구문
     - specify,$width,table 등 라이브러리설계 작성 및 셀의 기능,지연,핀 정보 등을 정의


3. Verilog 언어의 규약

  ㅇ 기초 규약(문법)
     - 대소문자 구분
     - 라인 : 한 라인은, 세미콜론(;)으로 끝남
     - 주석 : 1라인 주석은, 2개 슬래시(//), 다중라인 주석은, (/* ~ */)이며 중첩 사용은 금지
     - 빈 칸 : 무시되나, 키워드,식별자,연산자,수 등 내에는 공백 허용 안됨

  ㅇ 블록문 : begin ~ end
     - 블록의 시작과 끝이 중괄호({ })가 아닌 begin과 end를 사용하여 구분

  ㅇ 모듈 : module ~ endmodule
     - Verilog HDL에서 기본 설계 단위어휘 토큰
     - 여백, 주석, 연산자, 수, 문자열, 식별자, 키워드식별자 (Identifier) 
     - 알파벳,숫자,밑줄(_)로 구성, 알파벳 또는 밑줄로 만 시작 가능, 대소문자 구분됨

  ㅇ 키워드 : 미리 정의된 약 100개의 키워드(소문자)가 있음
     - 例) module, endmodule, input, output, wire, and, or, not 등

  ㅇ 자료형
     - 표현 대상 : 신호의 전달 및 데이터의 저장 형식
     - 구분 : 네트 자료형, 변수 자료형
        . 네트 : 게이트 같은 하드웨어 요소들 간의 물리적 연결


4. 모듈모듈 : module ~ endmodule
     - Verilog HDL에서 기본 설계 단위문법
     - module 모듈 이름 (포트 목록) : 모듈 선언의 시작
     - endmodule : 모듈 선언의 종료

     - 선언부 : 포트,파라미터,레지스터선언
     - 몸체부 : 기능, 동작, 구조를 기술함
        . 구조적 기술 방법
           .. 게이트 수준 기술 (Gate level)
        . 기능적 기술 방법
           .. 데이터흐름 기술 (Dataflow)
           .. 동작적 기술 (Behavirol)

  ㅇ 특징 
     - 한 모듈이 다른 모듈을 포함토록 계층적 구성이 가능
     - 통상, 각 모듈이 하나의 파일이며, 파일명이 모듈명과 같으며, 파일확장자는 `.v`임

  ㅇ 테스트 벤치 : 설계회로시뮬레이션하기 위한 모듈



Copyrightⓒ written by 차재복 (Cha Jae Bok)