레지스터 (register)

 

레지스터는 데이터를 저장하는데 사용하는 변수이다.

<키워드> <변수 명> 으로 사용한다.

 

키워드

정의

reg

일반적으로 사용하는 레지스터

real

실수 표현을 하는 레지스터

time

시뮬레이션 시간을 저장하는 레지스터

integer

정수 표현을 하는 레지스터, signed 형태 사용가능

 

* 예시

reg start;
initial begin
	start = 1'b0;
	#10 start = 1'b1;
end

real pi;
initial begin
	pi = 3.141592;
end

 

 

 

 벡터 (vector)

 

벡터란 n비트 폭을 가진 하나의 원소를 말한다.
net과 reg 데이터 타입은 여러개의 비트를 가진 벡터로 선언할 수 있다.
<데이터 타입> [최상위 비트:최하위 비트] <변수 명> 으로 선언한다.
[높은 수:낮은 수] 또는 [낮은 수:높은 수] 둘 다 나타낼 수 있으며, 항상 왼쪽에 있는 것이 최상위 비트를 나타낸다.
비트 폭을 따로 선언하지 않으면 1비트 스칼라이다.

 

* 예시

wire [31:0] wire_test;  // 32비트 wire_test 선언
wire [7:0] wire_t1, wire_t2, wire_t3; // 3개의 wire_t1~3을 각각 8비트로 선언
reg [0:15] reg_test;  // 16비트 폭을 가진 벡터 레지스터

 

 

 

 

 배열 (array)


배열은 1비트 또는 n비트를 가지는 여러 원소를 말한다.

reg, integer, time, 벡터 레지스터 데이터 타입의 배열을 선언할 수 있다.
<데이터 타입> <벡터 데이터 비트 폭> <배열 이름> 으로 선언한다.
다차원 배열은 만들 수 없다.

 

* 예시

integer rebas_test [0:3];  // 4개의 rebas_test 변수의 배열
reg rebas [15:0]; // 16개의 rebas 레지스터 변수의 배열
reg [5:0] arr_test [0:9]; // 10개의 arr_test 변수의 배열, 각 변수는 6비트 폭을 가짐
integer abc [3:0][3:0]; // 사용할 수 없는 표현. 다차원 배열은 사용 불가능

 

 

 

 

 파라미터 (parameter)

 

모듈 내에서 상수(constant)를 정의하는 수단이다. C언어의 #define ABC 10 과 비슷한 표현이다.
변수로는 사용할 수 없으며, 파라미터의 값들은 컴파일할 때 자동적으로 매칭시켜준다.
파라미터를 사용하면 코드의 가독성을 높힐 수 있으며, 값 편집이 용이해진다.

 

* 예시

parameter rebas = 7;  // rebas를 7의 값을 가진 상수로 정의
parameter index_number = 10; // index_number를 10의 값을 가진 상수로 정의
reg [index_number:0] arr_test ; // reg [10:0] arr_test 와 같은 표현

 

 

 

 

 문자열 (string)

 

큰 따옴표를 사용하며, 하나의 라인에 써야한다.
문자열은 한 문자당 1바이트(8비트)의 크기를 가지므로, 레지스터를 선언할 때 비트 수를 고려하여 선언해야 한다.
특수 문자는 역슬래시(\)를 사용하여 출력할 수 있다.

 

이스케이프 문자 (escape)

출력 문자

\n

개행 문자

\t

탭 문자

%%

% 문자

\\

\ 문자

\"

" 문자

 

 

 

신고
  1. BlogIcon mozziluv 2014.12.17 10:02 신고

    시험 공부 중인데 정리 잘 보고 갑니다 :)
    수업 들을 땐 배열하고 벡터 자리가 헷갈렸는데 정리 잘 된 글 보니 다른 언어랑 느낌이 크게 다르지 않네요 ㅎㅎ

    • BlogIcon 레바스 2014.12.17 16:53 신고

      예전에 업데이트 하다가 관둔 글이긴 했는데..
      도움되셨다니 기쁘네요 :)

+ Recent posts