SystemC数据类型转换

时间:2013-09-09 09:15:16

标签: types systemc

我是系统c的新手,我正在尝试处理系统c数据类型的转换。

我有一个系统固定类型的输入,我需要将它更改为输出上的布尔类型。

我尝试了以下代码。

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;
}
};

以上代码是否正确?我是否需要使用process方法将输入类型转换为输出端上的另一种数据类型?

你能否请一些关于系统c数据类型转换的好参考。

非常感谢

2 个答案:

答案 0 :(得分:0)

此代码不正确。你的行为功能名称与reg的功能名称不一样。就像构造函数中的SC_METHOD一样。将函数“convecrsion1”的名称更改为“conversion”。

好的教程: web page www.asic-world.com

另外,我推荐给你的好书,它可以提供关于图书馆的深入信息:SystemC从头开始

答案 1 :(得分:0)

您的代码不正确:

  • 如Ivanov所述,成员函数conversion1应该是您定义为SC_METHOD的转换。
  • sc_in&lt; ...&gt;没有名为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;
  }
};