Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Module 读取相同fifo的多个模块_Module_Fifo_Systemc - Fatal编程技术网

Module 读取相同fifo的多个模块

Module 读取相同fifo的多个模块,module,fifo,systemc,Module,Fifo,Systemc,假设多个模块不是同时读取,而是轮流读取,是否可以实例化多个模块以从同一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); Re

假设多个模块不是同时读取,而是轮流读取,是否可以实例化多个模块以从同一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;
}
int-tmain(int-argc,_-TCHAR*argv[]
{
sc_fifo PacketTx(24);
sc_fifo包(20);
传输t1(“传输”);
t1.包装盒(包装盒);
t1.PacketTx(PacketTx);
接收r1(“接收1”);
r1.PacketTx(PacketRx);
r1.PacketRx(PacketTx);
接收r2(“接收2”);
r2.PacketTx(PacketRx);
r2.PacketRx(PacketTx);
sc_start();
返回0;
}

这是可能的,但您需要将同步信号添加到模块的

下载页面的SystemC源代码下提供了更接近您需求的示例实现

下载“核心SystemC语言和示例”zip文件:

  • 解压缩文件
  • 导航到该目录并查找“示例””目录
以下示例更接近您的需求:

  • 示例/sysc/pkt_开关/
    注意:此示例不使用sc_fifo,而是使用sc_输入/输出端口
  • 示例/sysc/simple_-bus/
    注意:此示例展示了CPU总线模型的用例。该示例目前也未使用sc_fifo
但是,对于实现细节,您可以获得更好的想法