Vérifier un esclave AXI-Lite en simulation avec un agent maître, des transactions contrôlées et des assertions de protocole.
Une IP peut se synthétiser tout en violant AXI. La simulation doit vérifier échanges, réponses, écritures partielles et résultats avant l'essai sur carte.
Remplacer le partenaire de bus
AXI VIP est une IP de simulation pouvant servir de maître, esclave ou monitor. Dans ce , le maître VIP remplace le processeur pour piloter le contrôleur de LED :
Le Block Design de simulation relie VIP, IP testée, horloge et reset. Son wrapper devient le DUT. Le banc importe les packages générés et construit un agent :
Adaptez classe et chemin hiérarchique aux noms réels du design. Démarrez les transactions seulement après initialisation de l'horloge et relâchement du reset.
Émettre et contrôler une écriture
AXI-Lite n'a pas de rafale multibeat. Le service VIP suivant réalise une écriture et contrôle sa réponse :
task automatic axi_lite_write(input bit [31:0] addr, input bit [31:0] data); xil_axi_resp_t response; agent.AXI4LITE_WRITE_BURST(addr, 3'b000, data, response); if (response != XIL_AXI_RESP_OKAY) $fatal(1, "Write failed at %h: response=%0d", addr, response);endtask
Le nom de l'API contient BURST même pour ce transfert AXI-Lite unique. Vérifiez la signature dans les packages de votre version.
Le scénario écrit 0x4B, 0x36 puis 0x98 à la base illustrative 0x44A00000. Attendez la réponse, puis relisez le registre ou comparez les LED :
if (leds !== 8'h98) begin $error("Unexpected LED value: %h", leds);end
Un banc complet compte les erreurs et termine par un verdict d'échec ; un simple affichage $error ne remplace pas cette règle de fin.
Bloquer pour éprouver le protocole
Activez et surveillez les contrôles VIP. Un résultat juste sur un échange favorable ne prouve pas la conformité du handshake.
Lorsque VALID est actif et READY bas, l'émetteur maintient la validité et les informations associées jusqu'à acceptation. Testez des attentes sur chaque canal, pas seulement un récepteur toujours prêt.
Les adresses et données d'écriture sont indépendantes. L'esclave peut coordonner leur acceptation, mais ne doit ni perdre une requête arrivée plus tôt ni dépendre d'une assertion simultanée des deux VALID.
Couvrir le contrat et terminer
Incluez reset, motifs variés, WSTRB partiel, lecture, transactions consécutives et adresse non implémentée. Fixez le résultat attendu pour chaque cas, une graine si nécessaire et un timeout.
La simulation détecte les défauts de protocole ; la carte vérifie ensuite l'intégration réelle. Les guides Vivado référencent AXI VIP. La note AMD sur le maître VIP AXI-Lite documente les tâches utilisées.