반응형
열거된 값의 집합을 정의하는 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 |
댓글