본문 바로가기
language/Verilog

[systemverilog] enum 사용법

by 파란하늘코더 2021. 2. 2.
반응형

열거된 값의 집합을 정의하는 enum은 가질 수 있는 값을 알려주는 변수입니다.

 

1. 사용법

enum     {RED, YELLOW, GREEN}    light; // int type RED = 0, YELLOW = 1, GREEN = 2

위에서 light라는 값은 0, 1, 2라는 값을 RED, YELLOW, GREEN 이라는 표현을 통해 가질 수 있습니다.

 

다른 값을 할당을 하지는 못합니다

 

아래와 같이 default 값을 선언해줄수도 있습니다.

enum     {RED=3, YELLOW=9, GREEN}    light; // int type RED = 3, YELLOW = 9, GREEN = 10

여기서 주의 할점은 default로 선언되지 않은 값은 이전값의 1을 더해주는 방식으로 할당이 되는데

 

아래와 같이 숫자가 중복이 되도록 하게되면 문제가 발생합니다

enum     {RED=3, YELLOW, GREEN=4}    light; // int type RED = 3, YELLOW = 4, GREEN = 4 → error

아래와 같이 typedef와 같이 사용하면 parameter 선언을 일일히 해줄 필요가 없이 편하게 사용 가능합니다.

typedef enum {TRUE, FALSE} e_true_false;
initial begin
    e_true_false = answer;
    answer = TRUE;
end

이런 타입을 사용하는 이유는 코드 readability를 올리기 위함이라고 하네요

 

※ 참조 : www.chipverify.com/systemverilog/systemverilog-enumeration

'language > Verilog' 카테고리의 다른 글

[systemverilog] pass by reference  (0) 2021.02.21
[verilog] system function list  (0) 2021.02.06
[verilog] >>, >>>, <<, <<< 연산자  (2) 2021.01.31
[verilog] generate 사용하기  (0) 2021.01.31
[systemverilog] automatic keyword  (0) 2021.01.31

댓글