2016-09-19 3 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 {1、2} e_tを意味すると思います。コードでところで、どのようにこのことが合成されるか考えていますか?この列挙型を使用して、さまざまな状態を示す必要があります。古いスタイルのプログラミングでは、レジスタとパラメータを使用して状態ラベルを作成できます。私はレジスタとして合成されることを知っています。しかし、これについては、私は分かりません。 – Nan

+1

の例が修正されました。私はあなたが変数で値としてパラメータを使用したのと同じように、enum変数を状態レジスタとして使うことができると信じています。あなたは今、状態を操作する追加のenumメソッドと同じように、型の安全性を持っていることを除いては。 –

関連する問題