Heutige SoC-FPGAs stellen neue Verifikationsherausforderungen für System-, Software- und Hardware-Ingenieure dar. Häufige Probleme im Zusammenhang mit der HW/SW-Integration nehmen weiter zu, und dennoch werden sie typischerweise erst im Probelauf gefunden, wenn das SoC-FPGA läuft. Das Auffinden der Probleme im Testeinsatz ist oft zu spät und kann zu Projektverzögerungen führen.
Aldec bietet eine HW/SW-Co-Simulationsschnittstelle zwischen Riviera-PRO™ und QEMU (Open-Source-Prozessoremulator). Die Systemintegration und Co-Simulation von HDL-Code mit Software-Anwendungen/Treibern, die in QEMU ausgeführt werden, wird nun durch die Aldec QEMU Bridge vereinfacht. Die QEMU Bridge verbindet Riviera-PRO und QEMU und konvertiert SystemC TLM-Transaktionen in AXI und umgekehrt und bietet so eine schnelle Schnittstelle für die Co-Simulation.
AXI BFM mit Transaktionsrekorder
Die von Aldec entwickelten AXI-Bus-Funktionsmodelle (BFMs) für die RTL-Simulation von AXI-basierten Designs sind in Riviera-PRO verfügbar. Die BFMs werden als verschlüsselte Verilog- und System-Verilog-Module geliefert. Benutzer-Testbench kann die BFMs über die von Aldec bereitgestellte Verilog- oder System Verilog-Tasks-API testen. Die folgenden BFMs werden vom Aldec AXI BFM unterstützt:
- AXI 3 Master
- AXI 3 Slave
- AXI 4 Master
- AXI 4 Slave
- AXI 4 Lite Master
- AXI 4 Lite Slave
- AXI 4 Stream Master
- AXI 4 Stream Slave
Jedes BFM ermöglicht es den Benutzern, den integrierten AXI-Transaktionsrekorder für die Protokollierung von AXI-Transaktionen im ASDB-Format (Aldec Simulation Database) zu aktivieren. Weitere Informationen zur Verwendung von Transaktionen in Riviera-PRO finden Sie in der Dokumentation Riviera-PRO-Transaktionen. Der Prozess der AXI-Injektion in das Design umfasst:
Entwurfsphase
- Verteilt mit vorkompilierten Bibliotheken
- Instanziierung im HDL-Teil des Projekts
Kompilierungs- und Konfigurationsphase
- Konfiguration durch Parameter eingestellt
- Einschalten des eingebauten AXI-Transaktionsrekorders
Simulation
- Automatische Verbindung mit QEMU-Bridge-Prozess
QEMU-Brücke
Die von Aldec auf Basis von SystemC Transaction Level Modeling (TLM) entwickelte transaktionsgenaue Bridge ermöglicht eine vollständige SoC-Cosimulation zwischen dem Programmable Logic (PL)-System und dem Processing System (PS). Die Kommunikation wird automatisch von dieser Brücke abgewickelt, und es ist keine zusätzliche Interaktion von Seiten des Verifikationsingenieurs erforderlich.
Hardware-Ingenieure (die Riviera-PRO verwenden) können Haltepunkte in der HDL setzen, den Datenfluss untersuchen und sogar die Codeabdeckung und Pfade analysieren, die von der in QEMU laufenden Softwareanwendung ausgeführt werden. Software-Ingenieure (mit QEMU) können GNU Debugger (GDB) verwenden, um sowohl den Kernel als auch den Treiber zu instrumentieren und den Code mithilfe von Breakpoints zu durchlaufen.
QEMU für Xilinx SoC FPGAs
Xilinx® bietet einen QEMU-Baum für Microblaze™, Zynq™ und Zynq UltraScale+. Der QEMU-Baum muss vom Benutzer heruntergeladen und installiert werden. Xilinx empfiehlt, dass Benutzer den QEMU-Baum herunterladen, der unter https://github.com/Xilinx/qemu bereitgestellt wird.