Co-simulatie voor Zynq SoC-ontwerpen: Hardware-software-verificatie versnellen
Heterogene System-on-Chip (SoC) apparaten zoals de Xilinx Zynq-7000 en Zynq UltraScale+ MPSoC fusioneren een high-performance processing-systeem met cutting-edge programmeerbare logica. Deze integratie laat ontwerpers toe systemen te bouwen die CPU-gedreven controle balanceren met PL-gebaseerde, lage-latentie-pijplijnen – ideaal voor beeldverwerking, industriële automatisering en realtime signaalverwerking.
De PS-naar-PL-verbinding is gebouwd op een suite van memory-mapped Advanced eXtensible Interface (AXI) links die zowel master- als slave-rollen ondersteunen, wat robuuste bidirectionele communicatie mogelijk maakt tussen software draaiende op de ARM-kernen en custom-logica in de FPGA-fabric.
Figuur 1. Zynq-architectuur met AXI-interconnect tussen PS en PL (Bron: Xilinx)
Wanneer de PS configuratie of controle afhandelt, schrijft een general-purpose AXI Master op de processor naar registers binnen PL IP-kernen, wat hun gedrag stuurt. Voor data-intensieve taken – zoals streamen van videoframes van PL naar PS-geheugen – worden high-performance AXI-interfaces gebruikt, wat meer gesofisticeerde software vereist om DMA-transfers op te zetten en buffer-coherency te managen.
Het verifiëren van PS-PL-interacties is berucht moeilijk. Een 2015 Embedded Markets Survey benadrukte debugging als een top-ontwerp-uitdaging en onderstreepte de behoefte aan betere verificatie-tools. Terwijl bus-functionele modellen een initiële sanity-check kunnen bieden, missen ze vaak de diepgang die nodig is om echte software-drivers en applicaties te valideren. Volledige functionele modellen bestaan maar kunnen prohibitief duur zijn.
Traditionele verificatie splitst de flow: elk blok wordt geïsoleerd gevalideerd, en pas na de eerste hardware-aankomst worden PS en PL samen gesticht. Het software-team checkt typisch of de Linux-kernel de nodige drivers en device-tree-entries draagt door QEMU te draaien, een open-source hypervisor die de ARM-architectuur emuleert. Integen, sequentieert het logic-team commando's die software-geïnitieerde transacties nabootsen om PL-functionaliteit te bevestigen.
Beide benaderingen missen de echte PS-PL-handshake, wat subtiele integratie-bugs moeilijk te spotten en duur om later in de cyclus te fixen maakt. Terwijl een development-board een stopgap kan bieden, vereist debuggen op echte hardware het invoegen van instrumentatie-logica, het regenereren van de bitstream, en het riskeren van gedragsdrift.
Co-simulatie van hardware en software biedt een proactieve oplossing: het stelt gelijktijdige verificatie voor productie-boards mogelijk, wat debug-tijd en -kosten dramatisch verlaagt. Het geeft ontwerpers ook volledige zichtbaarheid in register-statussen en inter-domein-verkeer, wat defectdetectie versnelt.
HW & SW Co-simulatie
Co-simulatie vereist dat de logic-simulator communiceert met een software-emulatieplatform. Aldec's Riviera-PRO (2017.10) introduceerde een brug die Riviera-PRO verbindt met QEMU, wat Linux-gebaseerde Zynq-software in dezelfde simulatiecyclus als de HDL laat draaien.
Figuur 2. Overbruggen van HW en SW-verificatie-omgevingen (Bron: Aldec)
De brug benut SystemC Transaction-Level Modelling (TLM) om AXI-kanalen tussen QEMU en Riviera-PRO te exposeren, wat two-way data-uitwisseling mogelijk maakt. Ingenieurs kunnen dan geavanceerde debug-technieken emploeyen zoals HDL-breakpoints, data-flow-tracing en code-coverage-analyse binnen Riviera-PRO, terwijl de software-kant GDB gebruikt om door kernel- en driver-code in QEMU te stappen.
Omdat dezelfde Linux-kernel die op het target-apparaat zal draaien, in QEMU geëxerceerd wordt, bevestigen ontwikkelaars vroeg dat alle benodigde modules en configuratiebestanden aanwezig zijn, wat late-stage-verrassingen vermindert.
PWM Voorbeeld
Om de workflow te illustreren, overweeg een PWM IP-kern in PL geplaatst en verbonden met de PS via een general-purpose AXI-interface. Software configureert een register om duty-cycle tussen 0% en 100% in te stellen, dan triggert de kern. Het verifiëren van de kern in isolatie mist de PS-geïnitieerde controlepad; volledige co-simulatie waarborgt dat de pulsgene correct gegenereerd wordt wanneer de Linux-applicatie draait.
Ingebed
- PCB-productie in het 5G-tijdperk: Trends en uitdagingen
- Top 5 CNC-freestechnieken Voor Verbeterde Ontwerpprecisie
- AutoCAD Uitgelegd: Hoe Het Werkt en Toepassingen
- Expert Gids: Optimaliseren van Ontwerpen voor Succesvolle Metaalbewerking
- Infineon onthult eerste industrie-gefocuste TPM 2.0 op Hannover Messe
- Harwin's S0911-46R: ultra-compacte EMI/RFI-schermclip voor high-density elektronica
- OmniVision lanceert OA805: Ultra-laag-vermogen 4K-videoprocessor voor batterijgevoede beveiligingscamera's
- Syslogic Railway Computers: Predictief onderhoud voor betrouwbare, kosteneffectieve railoperaties
- Renesas PMIC-referentieontwerpen stroomlijnen stroombeheer voor Xilinx FPGA’s
- Wolframlegering Kogels: De Eco-vriendelijke, Hoogpresterende Alternatief voor Lood
- Belangrijke toepassingen van hafnium: van kernstafstokken tot geavanceerde legeringen