2016-09-19 2 views
1

Systemveilog에서 다른 모듈에 열거 형 변수를 전달할 수있는 방법이 있습니까? 즉, enum 유형 변수를 입력 또는 출력으로 정의하는 것입니다. 사용할 수있는 예제가 있습니까?입력 또는 출력으로 열거 된 유형

+1

무료 IEEE Std 1800-2012에서 예제를 찾았습니까? – toolic

+0

IEEE Std 1800-2012 : https://standards.ieee.org/getieee/1800/download/1800-2012.pdf – wilcroft

답변

2

예, 가능하지만 일반적인 패키지에서 typedef을 사용해야 열거 할당을 호환 할 수 있습니다. 그런 다음 모든 데이터 유형과 마찬가지로 포트에서 열거 형을 사용할 수 있습니다.

package myCommon; 
    typedef enum {ONE,TWO} e_t; 
endpackage 
module first import myCommon::*; (output e_t p1); 
endmodule 
module second import myCommon::*; (input e_t p2); 
endmodule 
module top; 
    import myCommon::*; 
    e_t e; 
    first f(.p1(e)); 
    second s(.p2(e)); 
endmodule 
+1

효과가있었습니다. 감사. 나는 당신이 typedef enum {ONE, TWO} e_t를 의미한다고 생각합니다; 코드에서. 그건 그렇고, 어떤 생각이 어떻게 합성 될 것인가? 이 열거 형을 사용하여 다른 상태를 나타내려고합니다. 구식 프로그래밍에서는 레지스터와 매개 변수를 사용하여 상태 레이블을 처리 할 수 ​​있습니다. 나는 그것이 레지스터로 합쳐질 것이라는 것을 안다. 하지만 이것에 대해서는 전혀 모른다. – Nan

+1

예가 수정되었습니다. 변수로 값을 매개 변수로 사용하는 것과 같은 방법으로 enum 변수를 상태 레지스터로 사용할 수 있다고 생각합니다. 이제는 상태를 조작하는 추가 enum 메소드와 같은 유형 안전성을 갖습니다. –

관련 문제