SC_METHOD 异常
SC_METHOD Exception
我正在尝试在我的模拟中使用 SC_METHOD。这是代码:
gcrypt::gcrypt(sc_module_name name):
gcrypt_base(name)
{
SC_METHOD(on_clock_update);
sensitive << clock;
dont_initialize();
};
void gcrypt::on_clock_update()
{
if (clock.read() == 0)
{
SC_REPORT_WARNING(name(), "Invalid clock port value of 0");
_ns_per_cycle = 0;
return;
}
_ns_per_cycle = 1e9 / clock.read();
}
gcrypt_base 构造函数是:
gcrypt_base::gcrypt_base(sc_module_name name) :
sc_module(name),
...
{
...
}
我收到 SC_METHOD 抛出的异常:
Exception thrown at 0x6FB78281 (vcruntime140d.dll) in
SystemCModuleTest.exe: 0xC0000005: Access violation reading location
0x115348EF.
我看到 __vfptr 值为 "Unable to read memory"。
如何解决这个问题?
我相信您在编译代码时没有指定 /vmg
option。 /vmg
选项是必需的,因为 SystemC 实现方法过程的方式。
我正在尝试在我的模拟中使用 SC_METHOD。这是代码:
gcrypt::gcrypt(sc_module_name name):
gcrypt_base(name)
{
SC_METHOD(on_clock_update);
sensitive << clock;
dont_initialize();
};
void gcrypt::on_clock_update()
{
if (clock.read() == 0)
{
SC_REPORT_WARNING(name(), "Invalid clock port value of 0");
_ns_per_cycle = 0;
return;
}
_ns_per_cycle = 1e9 / clock.read();
}
gcrypt_base 构造函数是:
gcrypt_base::gcrypt_base(sc_module_name name) :
sc_module(name),
...
{
...
}
我收到 SC_METHOD 抛出的异常:
Exception thrown at 0x6FB78281 (vcruntime140d.dll) in SystemCModuleTest.exe: 0xC0000005: Access violation reading location 0x115348EF.
我看到 __vfptr 值为 "Unable to read memory"。
如何解决这个问题?
我相信您在编译代码时没有指定 /vmg
option。 /vmg
选项是必需的,因为 SystemC 实现方法过程的方式。