Embedded Computing / Testspezifizierung

Automatisierung von IP- bis auf SoC-Ebene

22. September 2017, 16:00 Uhr | Matthew Balance, Portable-Stimulus-Technologist bei Mentor Graphics
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

Szenarien beschreiben

Für den Test sind eine Reihe einzelner DMA-Transfers zu erzeugen. Die Testszenarien werden ebenso wie primitive Operationen innerhalb der Aktionen beschrieben. Da die Testszenarien selbst aus Aktionen bestehen, wird ein Aktivitätsdiagramm (Stichwort: Activity), zur Regelung der Beziehungen zwischen den Unteraktionen, hinzugefügt (Bild 5).

Wichtig ist dabei die Deklaration einer Aktion simple_xfer innerhalb einer Komponente (Bild 6). Die Komponente enthält eine Instanz der Komponente wb_dma_c, welche die Aktion do_dma deklariert. Die Aktion simple_xfer wiederholt die Aktion do_dma 256 Mal.

Die Tests sind erweiterbar, beispielsweise um zwei Back-to-Back-DMA-Transfers durchzuführen. Es sollen unterschiedliche Kanäle für beide Transfers genutzt werden. Die Zufallsfelder Aktionsinstanz werden aus einer höheren Hierarchie beschränkt, was bei Verwendung einer gezielten Zufallsfolge eine Herausforderung darstellt.

Bild 5: Szenario mit mehreren Transfers.
Bild 5: Szenario mit mehreren Transfers.
© Mentor Graphics
Bild 6: Szenario mit mehreren Back-to-Back-Transfers.
Bild 6: Szenario mit mehreren Back-to-Back-Transfers.
© Mentor Graphics

Spezifikation einer Umgebungsschnittstelle

Die PSS-Type Extension-Fähigkeit bindet Aktionen ohne Aktions- oder Komponentenmodifikation an die UVM-Testbench.
In der UVM-Testbench wird der Stimulus von einer UVM-Sequenz erzeugt, die Sequenz-Items wb_dma_descriptor generiert. Die PSS-Beschreibung soll in eine UVM-Sequenz integriert werden und ebenfalls Sequenz-Items wb_dma_descriptor generieren (Bild 7), allerdings mit PSS-spezifizierten Feldwerten, anstatt mit regulärem Constrained-Random-SystemVerilog Stimuli. PSS-Pakete bündeln die Details der Umgebung. Ein Paket bindet die Details ein, mit denen die Aktion do_dma in die UVM-Sequenz integriert wird. Es wird in der Sequenz ein Task do_item erwartet, das ein Sequenzitem wb_dma_descriptor akzeptiert und ausführt.

Bild 7: Portable Stimulus zu UVM-Mapping.
Bild 7: Portable Stimulus zu UVM-Mapping.
© Mentor Graphics
Bild 8: Portable Stimulus in einer UVM-Umgebung.
Bild 8: Portable Stimulus in einer UVM-Umgebung.
© Mentor Graphics

Das Import-Statement spezifiziert die Signatur dieser externen Methode.
Nun wird spezifiziert, wie die Aktion do_dma diese importierte Methode ausführt. PSS stellt Exec-Blöcke zur Verfügung zur Spezifizierung der Beziehung zwischen PSS-Einheiten und externem Code. Der Body-Typ eines Exec-Blocks deklariert das Verhalten während der Ausführungszeit (gleichsam dem Body-Task in der UVM-Sequenz). Hier wird festgelegt, dass die Aktion do_dma während der Ausführungszeit, das Feld wb_dma_descriptor an den Task do_item übergibt (Bild 8).
Damit ist der Vorgang abgeschlossen. Die neue PSS-UVM-Sequenz steuert nun die UVM-Testbench, allerdings unter viel effizienterer Ausführung der DMA-Transfermodi.


  1. Automatisierung von IP- bis auf SoC-Ebene
  2. Die PSS-Grundlagen
  3. Wiederverwendung von SystemVerilog-Regeln
  4. Szenarien beschreiben
  5. PSS auf Subsystem- und SoC-Ebene
  6. Integration auf SoC-Ebene

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Mentor Graphics (Deutschland) GmbH

Weitere Artikel zu Zertifizierung und Prüfung