0

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

我有一个系统 c ufixed 类型的输入端口,我需要在输出端口上将其更改为布尔类型。

我尝试了以下代码。

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 数据类型转换的良好参考资料。

非常感谢你

4

2 回答 2

0

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

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

我还向您推荐一本可以为您提供有关图书馆的深入信息的好书:SystemC From the ground up

于 2013-10-02T12:14:22.617 回答
0

您的代码不正确:

  • 正如 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;
  }
};
于 2013-10-05T17:48:27.207 回答