FPGA(3) _ Verilog HDL 개요 (3)
728x90

테스트 벤치 모듈

: HDL 모델을 시뮬레이션 하기 위한 Verilog 모듈

- DUT에 인가될 시뮬레이션 입력을 생성하는 구문

- 시뮬레이션 대상이 되는 모듈(Design Under Test; DUT)의 인스턴스

- 시뮬레이션 입력에 대한 DUT의 반응(response)을 관찰하는 구문

 

테스트 벤치 모듈 예제

module test_fix ();
	reg A, B, C;

	circuit c1(A, B, C, Out); //시뮬레이션 할 모듈 입력
    
	initial begin // initial -> 합성 X, 오직 sim에서만 진행, begin~end 1회만 진행, 절차형 할당문
			A=0; B=1; C=0;
		#50 A=1;	// '#' -> 1. 지연 (할당문) 2. parameter 값 변경
		#50 A=0; C=1;
		#50      C=0;
		#50 $finish;	// '$' -> 시스템 task를 의미
	end 
endmodule

Verilog 어휘 규칙

1. 어휘 토큰 (lexicl tokens)

-- 여백(white space)

빈칸(space), 탭(tab), 줄바꿈

어휘 토큰들을 분리하기 위해 사용되는 경우를 제외하고는 무시

공백과 탭은 문자열에서 의미있게 취급

 

-- 주석(comment)

HDL 소스코드의설명을위해사용되며, 컴파일과정에서무시됨

단일라인주석문; // 로시작되어해당라인의끝까지

블록주석문; /* ~ */ 로표시

(블록주석문은내포(nested)될수없음)

 

-- 연산자(operator)

단항연산자, 2항연산자, 3항연산자

 

-- 수(number)

- 정수형(integer) ; 10진수, 16진수, 8진수, 2진수

- 형식 : [size_constant] '<base_format>  <number_value>

- [size_constant] -> 생략할 수 있는 옵션

: 비트 크기를 나타내는 상수 (생략 시 32bit로 내부적으로 표현됨)

 - '<base_format>

: 밑수(base)를 결정 (10진수: d,D 16진수: h,H 8진수: o,O 2진수: b,B)

- <number_value>

: 밑수에 맞춰 기입 (x: 0이든 1이든 상관 ㄴㄴ, z: high impedence)

- 예시

- 비트 크기과 밑수를 가지지 않는 단순 10진수는 signed 정수로 표기

- 부호 지정자 없이 밑수만 지정되면 unsigned 정수로 취급

- 음수는 2의 보수 형식으로 표현됨

- 값에 ?가 사용되면 z로 취급

// MSB 자동 삽입
reg [11:0] a, b, c, d;	//[11:0] -> 12bit
initial begin
	a = 'hx;	// yields xxx
    b = 'h3x;	// yields 03x
    c = 'hz3;	// yields zz3
    d = 'h0z3;	// yields 0z3
end

ex) 실수형 표현: 1.2E12 = 1.2 X 10^12

 

-- 문자열(string)

- " " 사이에 있는 일련의 문자들

- 여러 라인에 걸친 문자열 사용 X (단일 라인)

- 8비트 ASCII 값 -> unsigned 정수형 상수로 취급

- 문자열 변수는 reg형 변수이며, 문자 수에 8을 곱한 비트 폭을 가짐

 

-- 식별자(identifier)

- 고유의 이름을 지정하기 위해 사용

- 대소문자를 구별하여 인식

- 식별자: 알파벳, 숫자, 기호 $, 밑줄로 작성

- 첫번째는 숫자나 $ 사용 안됨

 

-- 키워드(keyword)

시스템 task 지시어 -> '$'

컴파일러 지시어 -> '`'(accent grave)

 

해당 포스팅은 신경욱 교수님의 강의를 기반으로 만들어졌습니다.

HDL설계 - Verilog HDL 및 Vivado 실습 - 금오공과대학교 | KOCW 공개 강의

728x90

'임베디드 AI > FPGA' 카테고리의 다른 글

Top module 이란  (0) 2025.04.29
FPGA(4) Verilog HDL 연산자  (1) 2025.04.01
FPGA(2)_Verilog HDL 개요(2)  (0) 2025.03.31
FPGA 공부 (1)_Velilog 개요  (0) 2025.03.31
FPGA 공부  (0) 2025.03.31

댓글

공지사항
업데이트
인기 글
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
최근댓글
250x250