+ Verilog HDL의 특징 및 규약
베릴로그는 전체적으로 C 문법과 유사한 편이다.
문자는 대문자와 소문자를 구별(case sensitive)하며, 키워드는 반드시 소문자로 사용해야한다.
한 문장은 반드시 세미콜론(;) 으로 끝난다. (begin, end 등은 예외)
+ 키워드 (Keyword)
언어 구조를 정의하기 위해 사전에 예약된 식별자를 말한다.
키워드는 변수(variable)나 식별자(identifier)로 사용하지 않도록 한다.
키워드들은 아래와 같으며, 일반적으로 컴파일러가 예약어들을 파란색으로 표시해줄 것이다.
always and assign begin buf bufif0 bufif1 case casex casez cmos deassign default defparam disable else end endcase endfunction endmodule endprimitive endtable endtask event for force forever fork function highz0 highz1 if initial inout input integer join large medium module nand negedge nmos nor not notif0 notif1 or output parameter pmos posedge primitive pulldown pullup pull0 pull1 rcmos reg release repeat rnmos rpmos rtran rtranif0 rtranin1 scalared small strong0 strong1 supply0 supply1 table task time tran tranif0 tranif1 tri triand trior trireg tri0 tri1 vectored wait wand weak0 weak1 while wire wor xnor xor
+ 식별자 (identifier)
일반 변수들을 말하며, 객체를 참조할 수 있게 사용자가 부여하는 이름이다.
영문자 알파벳이나 숫자를 사용해야하며, 특수문자는 언더스코어(_), 달러($) 기호만 사용할 수 있다.
단, 식별자는 반드시 알파벳이나 언더스코어로만 시작해야 한다.
예를 들면 다음과 같다.
rebAs |
O |
|
Rebas |
O |
|
always |
X |
키워드를 식별자로 사용할 수 없음 |
_Rebas |
O |
|
9rebas |
X |
숫자로 시작할 수 없음 |
rebas7 |
O |
|
$rebas |
X |
달러 기호로 시작할 수 없음 |
rebas$ |
O |
|
re-bas |
X |
언더바, 달러 기호 외의 특수문자 사용 불가 |
+ 숫자 표현
기본적으로 <비트 수> <진수> <숫자> 로 표현한다.
<비트 수>에는 10진수 숫자로만 써야하며, 숫자의 크기를 말한다.
<진수>에는 b,B 로 2진수를, d, D로 10진수를, h, H로 16진수를 표현한다.
예를 들면 다음과 같다.
7'b1111001 |
7비트 2진수 1111001 |
11'd2047 |
11비트 10진수 2047 |
17'h12a1 |
17비트 16진수 12a1 |
<비트 수>를 표현하지 않을 수 있다.
기본적으로 10진수로 표현되며, 시뮬레이터마다 다를 수 있지만 일반적으로 32비트 숫자가 된다.
예를들면 다음과 같다.
2011147 |
32비트 10진수 2011147 |
'h113a |
32비트 16진수 113a |