SystemC 数据类型转换


我是系统 c 的

新手,我正在尝试处理系统 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 方法将 inport 类型转换为输出端口上的另一个数据类型?

您能否为我推荐一些有关系统c数据类型转换的良好参考。

谢谢

您的代码不正确:

  • 正如 Ivanov 所提到的,成员函数 conversion1 应该是您定义为 SC_METHOD 的转换。
  • sc_in<...>没有称为to_bool()的方法。您应该先使用 din.read() 获取sc_ufixed值,然后将该值隐式转换为布尔值。
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;
  }
};

此代码不正确。您的行为函数名称与函数名称不同,函数名称类似于构造函数中的SC_METHOD。将函数的名称"convecrsion1"更改为"转换"。

好教程:网页 www.asic-world.com

另外,我向您推荐一本好书,它可以为您提供有关库的深入信息:SystemC 从头开始

最新更新