[VerilogHDL] 04_데이터 타입_localparam
1. localparam
Verilog HDL에서 localparam
은 모듈 내에서 사용되는 로컬 상수를 정의하는 데 사용되는 키워드입니다. localparam
을 사용하여 값을 한 번 정의하고 모듈 내에서 여러 곳에서 재사용할 수 있습니다. 다음은 localparam
에 대한 상세한 설명입니다
1.1 로컬 상수 정의
localparam
은 모듈 내에서 사용되는 로컬 상수 값을 정의하는 데 사용됩니다. 로컬 상수는 모듈 내에서만 사용되며, 해당 모듈의 범위에서만 유효합니다. 다른 모듈에서는 직접 접근할 수 없습니다.
1.2 값 할당
localparam
은 모듈 내에서 값을 할당할 때 사용됩니다. 한 번 정의된 값은 변경되지 않으며, 상수로 취급됩니다. localparam
은 실제로 컴파일러에 의해 상수로 처리되기 때문에 값이 컴파일 타임에 결정됩니다.
1.3 로컬 범위
localparam
은 로컬 범위를 갖는다는 점에서 parameter
와 다릅니다. localparam
은 모듈 내에서만 사용되며, 해당 모듈의 내부 로컬 범위에 속합니다.
1.4 컴파일 타임 상수
localparam
은 컴파일 타임에 값을 결정하고 상수로 사용됩니다. 이는 논리 회로의 구성 요소에 대한 컴파일러 최적화를 가능하게 하고, 모듈 간의 인터페이스 정의에서 일관성을 유지할 수 있도록 도와줍니다.
1.5 사용 예
localparam
은 주로 상태 머신의 상태, 상수 신호의 값, 주소 폭 등과 같이 모듈 내에서 사용되는 상수 값을 정의하는 데 사용됩니다.
2. 예제 코드
module LocalparamExample;
localparam WIDTH = 8;
localparam MAX_VALUE = 255;
reg [WIDTH-1:0] data;
always @(posedge clk) begin
if (data < MAX_VALUE) begin
data <= data + 1;
end
end
endmodule
위의 예제 코드에서는 LocalparamExample
이라는 모듈을 선언하고, WIDTH
와 MAX_VALUE
라는 두 개의 localparam
을 정의합니다.
WIDTH
는 8비트 데이터 폭을 나타내는 로컬 상수입니다. MAX_VALUE
는 데이터의 최대 값으로 255로 정의됩니다.
모듈 내부에는 data
라는 8비트 레지스터가 선언되고, always
블록에서는 클럭의 상승 에지가 발생할 때 data
값을 증가시킵니다. 이때 MAX_VALUE
를 초과하지 않도록 체크합니다.
localparam
을 사용하여 WIDTH
와 MAX_VALUE
값을 정의하고, 이 값을 모듈 내에서 여러 곳에서 사용할 수 있습니다. localparam
은 로컬 상수를 정의하는 데 사용되며, 컴파일 타임에 값이 결정되고 모듈 내에서 상수로 사용됩니다.
0 댓글