Applistar

5. 12. 8 ユーザがデータ型を拡張できますか

TOP > 5 SystemC入門 > 5. 12 SystemC FAQ > 5. 12. 8 ユーザがデータ型を拡張できますか
  5. 12. 8 ユーザがデータ型を拡張できますか  

5. 12. 8 ユーザがデータ型を拡張できますか

はい。enum や struct/class 型を使って宣言して作れます。 sc_fifo, sc_signal などの型のチャネルを宣言してそのような型も作れます。 ただ、そのような時には、インタフェースで宣言されている全ての関数を 定義する必要があります。 もしそれらを未定義にしたままコンパイルした場合、表示されるエラーメッセージ は、必ずしも分りやすくないので、特に注意が必要です。

例えば sc_signal 型のチャネルを作る場合、次の関数の定義が必要です。

演算子 機能
operater = 代入
operater == 比較
operater << 標準出力表示用
sc_trace 信号追跡用

5. 12. 8. 1 ユーザ定義型をsc_signalで用いるためには

LRM によると以下のオペレータをユーザ定義型で定義しておく必要があります。

  • operator =
  • operator <<
  • operator ==

また信号をトレースするための関数 sc_trace をオーバロードする必要があります。

これは定義の例です。

{{inc_dir(hscoveri2/examples/UG)}} {{incex2(packet.h)}}

  5. 12. 8 ユーザがデータ型を拡張できますか  
TOP > 5 SystemC入門 > 5. 12 SystemC FAQ > 5. 12. 8 ユーザがデータ型を拡張できますか