reg 란?
'reg'는 Verilog HDL(하드웨어 기술 언어)에서 사용되는 데이터 형식입니다. 'reg'는 "register"의 약자로, 이 데이터 타입은 연속적인 대입문(continuous assignment)이 아닌, 항상 블록(always block) 또는 초기 블록(initial block) 내에서 대입되어야 합니다.
'reg' 타입은 0과 1, 그리고 'x'(알 수 없음), 'z'(고립 상태)의 4가지 값을 가질 수 있습니다. 이는 디지털 로직 디자인에서 상태를 표현하는 데 사용됩니다.
// 알 수 없음 = Don't care , 고립 상태 = High Impedance
예를 들어, 아래는 'reg' 타입의 변수를 사용한 Verilog 코드의 예입니다:
module reg_example;
reg a; // 1비트 레지스터 변수 선언
initial begin
a = 0; // 초기 상태 설정
#5 a = 1; // 5 시간 단위 후에 a를 1로 설정
end
endmodule
이 예에서 'a'는 'reg' 타입의 변수이며, 초기 블록 내에서 값이 대입되고 있습니다. '#5'는 5 시간 단위의 지연을 나타내며, 이 지연 후에 'a'의 값이 1로 변경됩니다.
// #5의 시간 단위는 'timescale 1ns / 1ps 등으로 선언한다.
'reg'는 내부 상태를 저장하는 register를 모델링할 때 주로 사용되며, 시퀀셜 로직(순차 논리)을 기술하는 데 사용됩니다. 그러나, 'reg'가 반드시 물리적인 register를 의미하는 것은 아닙니다. 실제 하드웨어 구현에서는 항상 블록의 내용과 대입의 종류에 따라 물리적인 register의 사용이 결정됩니다.
reg = wire + time
D F/F으로 구성되는 신호 형식이다. 비교할 수 있는 신호 형식에는 wire 가 있다.
reg = wire + time으로 이해하고 있는데, D F/F의 존재가 신호를 delay 시켜주는 역할을 한다.
'Verilog HDL > 2. Verilog Practice (연습)' 카테고리의 다른 글
[Verilog] SPI Master 구현 (0) | 2024.01.31 |
---|---|
[Verilog] Counter를 이용한 LED 제어 구현 (0) | 2024.01.31 |
[Verilog] 세제곱 Pipeline 설계 (0) | 2024.01.22 |
[Verilog] 100진 Counter 설계 (0) | 2024.01.22 |
[Verilog Practice] Clock Gating Model (Waveform) (0) | 2023.10.04 |