是否可以实例化多个模块以从同一个FIFO读取,假设它们不是同时读取,而是轮流?
例如:
int _tmain(int argc, _TCHAR* argv[])
{
sc_fifo<int> PacketTx(24);
sc_fifo<int> PacketRx(20);
Transmit t1("Transmit");
t1.PacketRx(PacketRx);
t1.PacketTx(PacketTx);
Receive r1("Receive1");
r1.PacketTx(PacketRx);
r1.PacketRx(PacketTx);
Receive r2("Receive2");
r2.PacketTx(PacketRx);
r2.PacketRx(PacketTx);
sc_start();
return 0;
}
答案 0 :(得分:1)
这是可能的,但您需要将同步信号添加到模块中。
对于样本实施,可以在Accellera SystemC下载页面的SystemC源代码下找到更接近您要求的示例。
下载“ Core SystemC语言和示例”zip文件:
以下示例更接近您的要求:
但是您可以为实施细节获得更好的想法。