Kim Seon Deok
[Verilog] 주석, 수 표현 , 문자열, 식별자 본문
주석 (comment)
HDL 소스코드를 설명하고 컴파일 과정에서는 무시됨
단일라인 주석 : //
블록 주석 : /* ~ */
수 표현 (number representation)
정수형(integer) → 2진수, 8진수, 10진수, 16진수
[size_constant] ` <base_format> <number_value> |
[size_constant] : 비트 개수를 나타낸다. 10진수로 표현되며 생략되면 32비트를 뜻한다.
<base_format> : base를 지정하는 문자. 2진수는 b,B 8진수는 o,O 10진수는 d,D 16진수는 h,H. 생략되었다면 10진수
<number_value> : unsigned 숫자를 사용해 값을 base에 맞추어 표현. + 나 - 부호 사용 불가
10 // 32비트 10진수 10
2'b10 // 2비트 2진수 10
8'o5 // 8비트 8진수 5
8'HAD // 8비트 16진수 AD
12'hx // 12비트 16진수x
8'b0000_0001 // 8비트 2진수 0000_0001
'h837ff // 32비트 16진수 837ff
수를 표현할 때 가독성을 높이기 위해 첫번째 문자 제외 _ 를 사용하기도 한다.
27_195_000
16'b0011_0101_0011_1011
32'h 12ab_f001
음수는 2의 보수형식으로 표현된다.
-4'b0101 // 4비트 2진수 -5
지정된 비트 크기보다 unsigned 수의 크기가 작다면
MSB 왼쪽에 0 삽입된다.
MSB가 x또는 z라면 x나 z가 왼쪽에 삽입된다.
3'hx // xxx
3'h3x // x3x
5'hz3 // zzzz3
6'h0z3 // 0000z3
문자열(string)
문자열은 " " 사이에 있는 일련의 문자들을 말한다.
여러 라인에 걸친 문자열은 사용할 수 없고 단일라인만 사용할 수 있다.
문자열 변수는 reg형의 변수이고 문자열 내의 문자 수에 8을 곱한 크기의 비트 폭을 갖는다.
reg [8*12:1] string_var ; // 8 * 공백포함한 문자 갯수
initial begin
string_var = "Hello world~" // 공백 포함 12문자
end
식별자(identifier)
객체에 고유의 이름을 지정하기 위해 사용된다.
대소문자를 구별하고 _ 사용 가능하다.
첫번째 문자는 $ 사용불가하다.
$는 system task를 의미한다.
확장식별자
\ 로 시작되고 빈칸, 탭, 등으로 끝난다.
shfting_a
_bus3
n$s657
error_condition
\busa+index
\-clock
\{a,b}
시스템 task와 시스템 함수
문자 $로 시작되는 이름을 시스템 task 또는 시스템 함수라 한다.
$ display(" " )
" " 안의 문자를 터미널에 표시해줌
$ finish
시뮬레이션을 종료함
컴파일러 지시어
` 로 시작하고 베릴로그 소스코드의 컴파일 과정에 영향을 미친다.
특정 파일에 있는 컴파일러 지시어는 다른 여러개 파일의 컴파일 동작을 제어할 수 있다.
`define word size 8
`timescale 10ns / 50ns
'Verilog' 카테고리의 다른 글
[Verilog] Operator (0) | 2022.12.08 |
---|---|
[Verilog] Logic status, Data type (0) | 2022.12.08 |
[Verilog] Verilog HDL Overview (0) | 2022.12.06 |
[Verilog] Clock & Testbench & DUT & Reset & Flip Flop (0) | 2022.11.30 |
[Verilog] $display (0) | 2022.11.30 |