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