[VerilogHDL] 05_조건문과 반복문_if
1. if
Verilog HDL에서 if
는 조건문을 나타내는 키워드입니다. if
문은 주어진 조건을 평가하고, 조건이 참(True)인 경우에만 특정 동작을 실행하도록 지정합니다.
-
조건 평가:
if
문은 소괄호()
안에 있는 조건을 평가합니다. 조건은 논리식이며, 참 또는 거짓으로 평가됩니다. 조건은 주로 논리 연산자 (AND, OR, NOT)와 비교 연산자 (==, !=, >, <, >=, <=)를 사용하여 구성됩니다. 조건이 참이면if
문 안에 있는 동작이 실행되고, 거짓이면if
문을 건너뜁니다. -
실행 가능한 동작:
if
문 안에는 하나 이상의 실행 가능한 동작이 위치할 수 있습니다. 실행 가능한 동작은begin
과end
로 둘러싸여 있으며, 중괄호{}
로 대체할 수도 있습니다.if
문이 참일 때, 중괄호 안에 있는 동작이 순차적으로 실행됩니다. -
다중 조건문: 여러 개의 조건을 다루기 위해
if
문을 중첩하거나else if
,else
구문을 사용할 수 있습니다.else if
는 추가적인 조건을 평가하고, 해당 조건이 참인 경우에만 동작을 실행합니다.else
는 모든 조건이 거짓인 경우 실행됩니다.
2. 예제 코드
module IfExample;
reg a, b;
always @* begin
if (a && b) begin
$display("Both a and b are true");
end else if (a || b) begin
$display("Either a or b is true");
end else begin
$display("Neither a nor b is true");
end
end
initial begin
a = 1;
b = 0;
#10;
a = 0;
b = 1;
#10;
a = 1;
b = 1;
#10;
$finish;
end
endmodule
위의 예제 코드에서는 IfExample
모듈을 선언하고, a
와 b
라는 reg
변수를 정의합니다.
always
블록에서는 if
문을 사용하여 a
와 b
의 조건을 평가하고, 해당 조건에 따라 메시지를 출력합니다. if
문 내부에는 $display
를 사용하여 메시지를 출력하는 동작이 있습니다.
initial
블록에서는 a
와 b
의 값을 변경하고, 일정 시간이 경과한 후에 $finish
를 호출하여 시뮬레이션을 종료합니다.
이를 통해 if
문을 사용하여 조건을 평가하고, 조건에 따라 다른 동작을 수행할 수 있습니다.
0 댓글