0

私はシステム c の初心者で、システム c のデータ型の変換に取り組もうとしています。

システム c ufixed 型の inport があり、outport で bool 型に変更する必要があります。

次のコードを試しました。

SC_MODULE(convert)
{
sc_in<sc_ufixed < 1, 1, SC_TRN, SC_SAT > > din;
sc_out<bool> dout;

bool i;

void conversion1() {

i = din.to_bool();
dout.write(i);

}
SC_CTOR(convert)
{
SC_METHOD(conversion);
sensitive<< din;
}
};

上記のコードは正しいですか?プロセス メソッドを使用して、入力ポートの型を出力ポートの別のデータ型に変換する必要がありますか?

また、システム c のデータ型変換に関する参考文献を教えてください。

どうもありがとうございました

4

2 に答える 2

0

このコードは正しくありません。あなたの行動関数名は、関数の名前と同じではありません。コンストラクターの SC_METHOD のように。関数「convecrsion1」の名前を「conversion」に変更します。

優れたチュートリアル: Web ページwww.asic-world.com

また、ライブラリに関する詳細な情報を提供できる優れた本をお勧めします: SystemC ゼロから

于 2013-10-02T12:14:22.617 に答える
0

あなたのコードは間違っています:

  • Ivanov が述べたように、メンバー関数 conversion1 は、SC_METHOD として定義した変換である必要があります。
  • sc_in<...> には to_bool() というメソッドがありません。最初に din.read() を使用して sc_ufixed 値を取得し、次にその値を暗黙的に bool に変換する必要があります。
SC_MODULE(convert)
{
  sc_in<sc_ufixed < 1, 1, SC_TRN, SC_SAT > > din;
  sc_out<bool> dout;

  void conversion() {
      dout.write(din.read());
  }
  SC_CTOR(convert)
  {
      SC_METHOD(conversion);
      sensitive<< din;
  }
};
于 2013-10-05T17:48:27.207 に答える