2017-04-21 5 views
0

Ist es möglich, mehrere Module zu instanziieren, um aus dem gleichen FIFO zu lesen, vorausgesetzt, sie lesen nicht gleichzeitig, aber abwechselnd ??Multiples Module Lesen derselben Fifo

Zum Beispiel:

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; 
} 

Antwort

0

Es ist möglich, aber Sie müssen Synchronisationssignale an das Modul des hinzuzufügen.

Eine Beispielimplementierung, die näher an Ihrer Anforderung ist, finden Sie unter SystemC-Quellcode von Accellera SystemC Download-Seite.

Laden Sie die "Core-SystemC Sprache und Beispiele" zip-Datei:

  • Entpacken Sie die Datei. Gehen Sie in das Verzeichnis und suchen Sie nach "Beispiele" Verzeichnis.

Beispiel Im Folgenden sind viel näher an Ihre Anforderung:

  • Beispiele/SYSC/pkt_switch/
    Hinweis: Dieses Beispiel nicht sc_fifo der Verwendung, sondern nutzt die sc_in/out-Anschluss des.
  • Beispiele/sysc/simple_bus/
    Hinweis: Dieses Beispiel zeigt den Anwendungsfall zum Modellieren des CPU-Busmodells. In diesem Beispiel wird derzeit auch das sc_fifo nicht verwendet.

Aber Sie können viel bessere Ideen für Ihre Implementierungsdetails erhalten.