我是系统 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 从头开始