Dieses „Getting Started“-Webinar konzentriert sich auf die ersten, wesentlichen Schritte, die Sie unternehmen müssen, wenn Sie Ihren VHDL-Testbench-Ansatz verbessern wollen. In diesem Webinar befassen wir uns mit transaktionsbasierten Tests, selbstüberprüfenden Tests, Messaging, Berichten und Open Source VHDL Verification Methodology (OSVVM) Hilfsprogrammen.
Die „Transaktion“ im transaktionsbasierten Testen ist nur ein schickes Wort für eine Abstraktion, die eine einzelne Aktion auf einer Schnittstelle darstellt – z. B. ein Send oder Get auf einer Streaming-Schnittstelle. Wir werden uns Alternativen für die Implementierung von Transaktionen ansehen – einschließlich der Verwendung der Model Independent Transaction Library von OSVVM. Die Verwendung von Transaktionen ist wichtig, weil sie die Entwicklung von Testfällen beschleunigen, die Wiederverwendung erhöhen und die Wartungskosten senken.
Die Selbstkontrolle ist in Testfällen unerlässlich, da die manuelle Überprüfung der Wellenformausgabe zeitaufwändig, fehleranfällig und stinklangweilig ist. Bei der Selbstkontrolle werden Fehler gezählt und nach Abschluss des Tests wird anhand der Zählung ein Pass/Fail-Bericht erstellt. Wenn wir Signale verwenden (und es kann eine Sammlung von Signalen geben, von denen sich einige in einer anderen Entität befinden können), müssen wir sie zusammenzählen und einen Fehlerbericht erstellen. Es ist jedoch leicht, einen solchen zu vergessen und eine falsche Bestehensbedingung anzugeben. OSVVM vereinfacht die Fehlerzählung und macht sie zuverlässig, indem es eine Datenstruktur in einem Paket erstellt und diese verwendet, um die Vielzahl der Fehlerquellen zu verfolgen. Der Pass/Fail-Bericht wird erstellt, indem die gesamte Datenstruktur auf Fehler untersucht wird – es wird also nichts übersehen. Wir können sogar einzelne Fehlerquellen verfolgen und melden, z. B. verschiedene Schnittstellen.
Beim Messaging (auch bekannt als Verbosity Control) geht es um die Erstellung detaillierter Informationsmeldungen bei der Fehlersuche und nur um Pass/Fail-Meldungen bei Regressionen. Da die Meldungen von verschiedenen Entitäten erzeugt werden können, benötigen wir Steuerelemente, die einen breiten Anwendungsbereich haben. Außerdem möchten wir vielleicht verschiedene Quellen von Meldungen unabhängig voneinander kontrollieren. OSVVM vereinfacht die Steuerung von Protokollmeldungen (Aktivieren/Deaktivieren), indem es dieselbe Datenstruktur verwendet, die wir auch für die Fehlerverfolgung einsetzen.
Bei Testberichten geht es darum, schnell herauszufinden, welche Tests in einer Testsuite fehlgeschlagen sind und warum. OSVVM erstellt zwei Ebenen von Testberichten. Der OSVVM-Erstellungsbericht gibt einen Überblick über den Status „bestanden/nicht bestanden“ für jeden einzelnen ausgeführten Testfall, und der OSVVM-Testfallbericht enthält Details zur Selbstüberprüfung, zur funktionalen Abdeckung und zur Scoreboard/FIFO-Nutzung für jeden Testfall. Bei der Ausführung von Testgruppen (z. B. bei Regressionstests) helfen uns diese Berichte, schnell herauszufinden, welche Testfälle fehlgeschlagen sind und warum.
Die OSVVM-Hilfsprogramme zielen auf die Vereinfachung der Testbench-Entwicklung mit Funktionen wie Takterzeugung, Reset-Generierung und Testfallentwicklung mit Synchronisationsprogrammen wie WaitForClock und WaitForBarrier.
Über OSVVM
OSVVM ist eine Suite von Bibliotheken, die es jedem VHDL-Ingenieur ermöglicht, VHDL-Testbenches und Testfälle sowohl für einfache Tests auf Unit/RTL-Ebene als auch für komplexe, randomisierte Tests auf Chip- oder Systemebene zu schreiben. OSVVM wurde von VHDL-Experten entwickelt, die aktiv an der Entwicklung von VHDL-Standards mitwirken, um VHDL mit Verifikationsfunktionen auszustatten, die mit SystemVerilog + UVM konkurrieren können.
Wenn Sie Ihr gesamtes Team dazu bringen, OSVVM zu verwenden, wird der Einsatz von VHDL-Ingenieuren in Projekten vereinfacht. Warum VHDL für die Verifikation? Laut der Studie der Wilson Research Group zur funktionalen Verifikation aus dem Jahr 2022 verwenden 66 % des FPGA-Marktes VHDL für das Design, 58 % VHDL für die Verifikation und 28 % OSVVM. Somit ist VHDL die Nummer 1 für die FPGA-Entwicklung und OSVVM die Nummer 1 für die VHDL-Verifikation.
Überprüfung von AXI-Verbindungen mit ALINT-PRO und Riviera-PRO
AXI ist das beliebteste interne Busprotokoll bei den heutigen FPGA- und SoC-FPGA-Designs geworden. Mit ALINT-PRO können FPGA-Designer AXI-Busschnittstellen extrahieren, überprüfen und statisch verifizieren. Darüber hinaus kann ALINT-PRO bei der automatischen...
FPGA Verifizierung Code- Funktions- und Spezifikationsabdeckung
Functional Coverage wird oft zusammen mit der FPGA Verifikation nach dem Zufallsprinzip erwähnt, und das ist eine großartige Kombination.
Randomization – Das Warum, Wann, Was und Wie
Randomization ist für die moderne Verifikation sehr wichtig. Dennoch wenden nur sehr wenige Entwickler die Randomization in ihren Testbenches ausreichend an.
FPGA-Verifikationsarchitektur-Optimierung mit UVVM
Wie Sie mit der Open-Source-Architektur der Universal VHDL Verification Methodology (UVVM) eine einfache, gut strukturierte und effiziente Testbench erstellen können
Optimierung der FPGA-Entwurfsarchitektur
Die FPGA-Entwurfsarchitektur ist der wichtigste und primäre Faktor, wenn es darum geht, Entwicklungseffizienz, Qualität und Zuverlässigkeit zu erreichen. Der Unterschied zwischen einer guten und einer schlechten Design-Architektur kann etwa 50 % des Arbeitsaufwands ausmachen.
Verwendung von SVA für die anforderungsbasierte Verifikation von sicherheitskritischen FPGA-Designs
Donnerstag 10. März von 15.00 Uhr bis 16.00 UhrDie Requirements-based Verifikation (RBV) ist ein beliebtes Verifikationsverfahren für FPGA-Designs, die in sicherheitskritischen Systemen eingesetzt werden. Die Effektivität der RBV wird durch die Qualität und Präzision...
Verifizierung von PCIe-basierten FPGA-Designs, die DO-254-Konformität erfordern
PCIe-basierte FPGA-Designs werden in Avioniksystemen immer beliebter. Die Verifizierung solcher Designs für die DO-254-Konformität mit Design Assurance Level (DAL) A oder B ist jedoch problematisch.
Steigern Sie Ihre Produktivität mit kontinuierlichen Integrationsabläufen
In einer Teamumgebung geben Verifikationsingenieure jeden Tag, manchmal sogar mehrmals am Tag, Codeänderungen in ein gemeinsames Repository ein. Jede Änderung hat das Potenzial, neue Fehler in das Design einzubringen. Wenn viele Änderungen vorgenommen werden, ist es...
Constraint Random Verification mit Python und Cocotb
Cocotb, ein Ansatz zur Verwendung von Python als Prüfsprache, ermöglicht Entwicklern, mit kleinen, gerichteten Testbenches zu beginnen und diese zu gründlicheren Constraint-Random-Tests weiterzuentwickeln.
Verwendung von OVL für die assertion-basierte Verifikation von Verilog- und VHDL-Entwürfen
Die Open Verification Library (OVL) ist eine Bibliothek von Property Checkern für digitale Schaltkreisbeschreibungen, die in gängigen Hardware Description Languages geschrieben sind und von Accelera gepflegt werden. Die OVL Checker können nicht nur in der dynamischen...