[VerilogHDL] 05_조건문과 반복문_if

05_조건문과 반복문_1_if

verilogHDL

[VerilogHDL] 05_조건문과 반복문_if

1. if

Verilog HDL에서 if는 조건문을 나타내는 키워드입니다. if문은 주어진 조건을 평가하고, 조건이 참(True)인 경우에만 특정 동작을 실행하도록 지정합니다.

  1. 조건 평가: if문은 소괄호 () 안에 있는 조건을 평가합니다. 조건은 논리식이며, 참 또는 거짓으로 평가됩니다. 조건은 주로 논리 연산자 (AND, OR, NOT)와 비교 연산자 (==, !=, >, <, >=, <=)를 사용하여 구성됩니다. 조건이 참이면 if문 안에 있는 동작이 실행되고, 거짓이면 if문을 건너뜁니다.

  2. 실행 가능한 동작: if문 안에는 하나 이상의 실행 가능한 동작이 위치할 수 있습니다. 실행 가능한 동작은 beginend로 둘러싸여 있으며, 중괄호 {}로 대체할 수도 있습니다. if문이 참일 때, 중괄호 안에 있는 동작이 순차적으로 실행됩니다.

  3. 다중 조건문: 여러 개의 조건을 다루기 위해 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 모듈을 선언하고, ab라는 reg 변수를 정의합니다.

always 블록에서는 if문을 사용하여 ab의 조건을 평가하고, 해당 조건에 따라 메시지를 출력합니다. if문 내부에는 $display를 사용하여 메시지를 출력하는 동작이 있습니다.

initial 블록에서는 ab의 값을 변경하고, 일정 시간이 경과한 후에 $finish를 호출하여 시뮬레이션을 종료합니다.

이를 통해 if문을 사용하여 조건을 평가하고, 조건에 따라 다른 동작을 수행할 수 있습니다.

댓글 쓰기

0 댓글