[VerilogHDL] 05_조건문과 반복문_case
1. case
Verilog HDL에서 case
문은 다중 조건을 처리하기 위해 사용되는 조건문입니다. case
문은 조건에 따라 여러 가지 경우(case)를 처리하고, 해당하는 경우에 특정 동작을 수행합니다.
-
선택 식:
case
문은 선택 식(expression)을 사용하여 조건을 평가합니다. 선택 식은case
키워드 다음에 오며, 일반적으로 변수나 신호를 가리킵니다. 선택 식의 값에 따라 여러 개의 경우(case)를 검사하고 처리합니다. -
경우 목록:
case
문은 여러 개의 경우(case)를 가질 수 있습니다. 각각의 경우는case
키워드와 일치하는 값을 가집니다.case
키워드 다음에는 경우의 값이 옵니다. 경우 값은 상수 또는 변수일 수 있습니다. -
동작 블록: 각 경우(case)에는 해당 경우가 일치할 때 실행될 동작 블록이 포함됩니다.
-
기본(case default):
case
문은 선택 식의 값과 일치하는 경우를 찾지 못했을 때 선택할 수 있는 기본(case default)을 가질 수 있습니다. 기본은 선택 식의 값과 일치하는 경우가 없을 때 실행되는 동작 블록을 정의합니다. 기본은 선택적으로 사용할 수 있으며, 생략할 수도 있습니다.(반드시 추가하는 것을 추천)
2. 예제 코드
module CaseExample;
reg [1:0] sel;
reg [7:0] data;
always @* begin
case (sel)
2'b00: data = 8'b00000000;
2'b01: data = 8'b11110000;
2'b10: data = 8'b00111100;
2'b11: data = 8'b00001111;
default: data = 8'b00000000;
endcase
end
initial begin
sel = 2'b10;
#10;
sel = 2'b01;
#10;
sel = 2'b11;
#10;
$finish;
end
endmodule
위의 예제 코드에서는 CaseExample
모듈을 선언하고, sel
과 data
라는 reg
변수를 정의합니다.
always
블록에서는 case
문을 사용하여 sel
의 값을 기반으로 data
값을 설정합니다. case
키워드 다음에는 sel
의 값을 비교하는 경우와 해당하는 동작 블록이 옵니다. default
는 선택 식의 값과 일치하는 경우가 없을 때 기본 동작을 정의합니다.
initial
블록에서는 sel
값을 변경하고 일정 시간이 경과한 후에 $finish
를 호출하여 시뮬레이션을 종료합니다.
이를 통해 case
문을 사용하여 선택 식의 값에 따라 다양한 경우를 처리하고, 각 경우에 따른 동작을 수행할 수 있습니다.
0 댓글