728x90
1. 여백
- 빈칸, 탭 등을 포함하는 어휘 토큰
- 어휘 토큰의 분리를 위해서 사용되는 경우 이외에는 무시된다.
2. 주석
- 단일 라인 주석문은 //로 시작되어 줄바꿈으로 끝난다.
- 블록 주석문은 /*로 시작되어 */로 끝나며, 그 사이의 모든 내용이 주석문으로 처리된다.
3. Verilog HDL의 수 표현 방식
[size_constant]'base_format <number_value>
- [size_constant]
- 상수 값의 비트 수를 나타낸다.
- 0이 아닌 unsigned 10진수로 사용한다.
- 생략 시 unsized 수가 되며 32비트로 표현된다.
- 'base_format
- 밑수(base) 지정 문자로 2진수는 b/B, 8진수는 o/O, 10진수는 d/D, 16진수는 h/H를 지정하며, 대소문자 구분은 없다,
- signed를 나타내기 위해 s/S가 사용될 수 있다.
- 인용부호( ' )와 밑수 지정 문자는 붙여야 한다.
- number_value
- unsigned 숫자를 사용하여 값을 표현한다.
- 'base_format으로 지정된 밑수에 적합한 숫자로 구성되어야 한다.
- 16진수를 나타내는 문자 a~f는 대소문자 구별이 없다
- 'base_format과 number_value 사이에는 부호(+나 -)가 사용될 수 없다.
- 가독성을 위해 첫 숫자를 제외하고 중간에 밑줄을 사용할 수 있다.
- 사용 예시
- unsized 상수
- 659 : 단순 10진수 표현 -> 32비트의 unsized 상수 취급
- 'h837FF : size_constant가 생략되었으므로 32비트의 16진수 취급
- 'o7460 : size_constant가 생략되었으므로 32비트의 8진수 취급
- 4af : 10진수 표현이라면 'af' 사용이 불가하고, 16진수 표현이라면 'h가 필요하므로 문법적 오류 - sized 상수
- 4'b1001 : 4비트의 2진수 1001을 나타냄
- 5'D3 : 5비트로 표현된 10진수 3을 나타냄
- 3'b01x : LSB가 x인 3비트의 2진수 01x를 나타냄
- 12'hx : 12비트의 x를 나타냄
- 16'hz : 16비트의 z를 나타냄 - 상수와 부호
- 8'd-6 : 밑수 지정자( base_format )d와 값 사이에는 부호( +, - )가 사용될 수 없으므로 문법적 오류
- -8'd6 : -(8'd6)과 등가이고, 10진수 -6을 나타냄 / 2의 보수 형식의 8비트 1111_1010을 나타냄
- unsized 상수
4. 문자열
- 문자열 변수는 reg 자료형의 변수
- 문자열 할당 시 이중 인용 부호("") 사이의 내용을 할당한다.
- 문자열을 구성하는 문자 개수에 8을 곱한 크기의 비트 폭을 갖는 reg 필요하다. 예를 들어, 문자열 "Hello World!"을 저장하기 위해서는 8*12=96비트의 reg 변수가 필요하다.
reg [8*12:1] string_var; initial begin string_var = "Hellow World!"; end
- 문자열에 포함할 수 있는 이스케이프 문자열에 의한 특수문자는 다음과 같다.
- \n: 줄바꿈
- \t: 탭(tab)
- \\: \문자(back slash)
- \": "문자
- \ddd: 1~3 octal digits로 지정되는 문자
5. 식별자와 키워드
- 식별자: 객체에 이름을 지정하기 위해 사용된다.
- 단순 식별자: 일련의 알파벳 문자, 숫자, $, 밑줄 등으로 구성(첫 문자는 숫자나 $ 사용 불가)
- 키워드: Verilog HDL의 구성요소를 위해 미리 정의된 식별자
- 모든 키워드는 소문자로만 정의됨
- ex) always / and / if / assign / begin / case / cell / end / else / endcase / module / endmodule / parameter / ...
6. 시스템 태스크와 시스템 함수
- 문자 $로 시스템 태스크와 시스템 함수 호출
- ex) $finish; //시뮬레이션을 종료하는 시스템. 테스트벤치에서 주로 사용된다.
7. 컴파일러 지시어
- 문자 '는 컴파일러 지시어를 지정하기 위해 사용된다.
- ex) 'define wordsize 8 //소스파일 내의 wordsize가 8로 대체되어 컴파일된다. 끝에 ;를 붙이지 않는다.
728x90
반응형
'자습시간 > Verilog' 카테고리의 다른 글
UART 설계(1) - Baud Rate Generator 설계 (0) | 2024.07.22 |
---|---|
Verilog 자료형 (0) | 2024.07.13 |
Verilog HDL 모델링 방법 개요 (0) | 2024.06.30 |
Verilog HDL 개요 - HDL 기반 시스템 반도체 설계 과정 (1) | 2024.06.30 |