SystemC中常用的宏和小工具
摘要:SystemC 除了最常见的 SC_MODULE(模块定义)以外,还提供了一系列宏和小工具来大幅减少样板代码,主要分为:
- 模块/进程注册
- 时钟/复位/事件控制
- 调试、断言、报告
- 时间单位、波形捕捉
- 动态加载
下面一一列举,并给出简短示例。
1. 模块/进程注册
- SC_HAS_PROCESS(YourMod)
手写构造函数时(不用 SC_CTOR)必须声明这一宏,才能在模块里注册进程。
struct BusyWait : sc_module {
sc_event ev;
SC_HAS_PROCESS(BusyWait);
BusyWait(sc_module_name n): sc_module(n) {
SC_THREAD(consumer);
}
void consumer() { /*…*/ }
};
- SC_CTOR(YourMod)
等价于
YourMod(sc_module_name nm): sc_module(nm) { /*…*/ }
并自动隐含 SC_HAS_PROCESS。
- SC_METHOD(f)、SC_THREAD(