[VerilogHDL] 04_데이터 타입_event

04_데이터 타입_8_event

verilogHDL

[VerilogHDL] 04_데이터 타입_event

1. event

Verilog HDL에서 event는 이벤트를 나타내기 위해 사용되는 특수한 변수입니다. event 변수는 논리적인 이벤트가 발생했음을 나타내는 신호로 사용됩니다. 다음은 event에 대한 상세한 설명입니다**(시뮬레이션 ONLY)**

1.1 이벤트

event는 논리적인 이벤트가 발생했음을 나타내는 신호입니다. 이벤트는 주로 비동기적인 상황이나 외부 입력을 감지하는 데 사용됩니다. 예를 들어, 외부 신호의 변화, 인터럽트, 타이머 만료 등을 이벤트로 나타낼 수 있습니다.

1.2 선언과 할당

event 변수는 event 데이터 타입으로 선언됩니다. 선언된 event 변수는 이벤트가 발생했을 때 event 변수에 할당되어 해당 이벤트를 표현합니다.

1.3 조건 검사

event 변수는 조건문에서 사용될 수 있습니다. 특정 조건을 충족할 때 이벤트가 발생하는지 여부를 확인하거나, 이벤트가 발생했을 때 동작을 수행할 수 있습니다. event 변수는 일종의 플래그로 사용되며, 조건문에서 event 변수를 확인하여 이벤트를 감지합니다.

1.4 감지와 재설정

event 변수는 -> 연산자를 사용하여 감지되고 재설정될 수 있습니다. 이벤트를 감지하면 event 변수가 1로 설정되고, 이벤트를 재설정하면 event 변수가 0으로 재설정됩니다. 이를 통해 이벤트가 발생한 후에는 추가적인 동작을 수행할 수 있습니다.

2. 예제 코드

module EventExample;
    event myEvent;
    
    initial begin
        #10;
        -> myEvent; // 이벤트 감지
        
        if (myEvent) begin
            $display("Event detected");
            -> myEvent; // 이벤트 재설정
        end
        
        #20;
        if (myEvent) begin
            $display("Event detected again");
        end
        
        $finish;
    end
endmodule

위의 예제 코드에서는 EventExample 모듈을 선언하고, myEvent라는 event 변수를 정의합니다.

initial 블록에서는 시뮬레이션을 초기화하고, 일정 시간이 경과한 후 myEvent를 감지합니다. 이벤트가 감지되면 $display를 사용하여 메시지를 출력하고, myEvent를 재설정합니다.

다음으로 추가적인 시간이 경과한 후에도 myEvent가 감지되면 메시지를 출력합니다.

$finish 문은 시뮬레이션이 종료되도록 설정합니다.

이를 통해 event 변수를 사용하여 논리적인 이벤트를 감지하고, 이벤트에 따른 동작을 수행할 수 있습니다.

댓글 쓰기

0 댓글