2009-03-17 12 views
1

Ich habe die Aufgabe, einige Verilog-basierte RTL-Code zu überprüfen. Jetzt scheint die Codierung der RTL-Testbench mit Verilog sehr schwierig zu sein (für mich). Also würde ich gerne eines der folgenden ausprobieren. - Versuchen eine PLI Schnittstelle zum RTL Bereitstellung und dadurch aufrufe ‚C Funktionen zum Testen - Verwendung System‘ C ‚Verilog oder Systemc für Testbench

PS C Funktionen: I bereits einen umfangreichen haben‘, um die für die Anbindung C-Code, der zum Testen der verwendet wurde, Verhaltensmodell. Ich bin neu in der Welt der Hardware-Programmierung. Alle Hinweise würden sehr geschätzt werden.

Antwort

5

Wenn Sie bereits über umfangreichen C-Code verfügen, der zum Testen des Verhaltensmodells verwendet wurde, müssen Sie lediglich eine PLI- (oder DPI-) Schnittstelle hinzufügen, mit der Sie den c-Code von verilog aufrufen können.

SystemC ist im Grunde C++ mit vielen Klassen, die Ihnen erlauben, HW zu modellieren. Ich sehe nicht, wie Sie davon profitieren würden, SystemC für die Aufgabe zu lernen, die Sie versuchen, da Sie bereits ein C-Modell zur Verfügung haben, gegen das Sie die HW testen können. Learning System C ist wahrscheinlich zu viel für das, was Sie versuchen zu tun.

FYI. Wenn Sie etwas lernen wollen, das heute in der Industrie stark verwendet wird, dann würde ich vorschlagen, dass Sie SystemVerilog lernen. In diesen Tagen, SystemVerilog, im Grunde Verilog mit einer Reihe von High-Level-Software Sprachfunktionen eingebaut; zusammen mit "VMM" scheint eine "Verifikationsmethodik" (d. h. eine Reihe von Bibliotheken) im Hardware-Verifikationsland der letzte Schrei zu sein.

+0

Vielen Dank für Ihre nette Erklärung. Ich fand auch heraus, dass System-C ein Overkill ist, und implementierte die DPI-Ebene für die Verknüpfung des Verilog-Codes mit 'C. Das Beste ist: "IT WORKS". Vielen Dank noch mal. – Alphaneo

4

Die Frage ist nicht so einfach zu beantworten, ohne Ihre DUV (Gerät unter Verifizierung) oder den C-Code, den Sie haben, zu kennen. Sie benötigen Mittel, um Ihr Design zu stimulieren und zu überprüfen, hier müssen Sie wahrscheinlich von/auf Transaktionsebene (C-Datenstrukturen) auf/von Pin-Ebene übersetzen. SystemVerilog-Schnittstellen oder SystemC können ein Ansatz sein. Ich habe noch keine DPI/PLI-Schnittstellen verwendet.

Um eine "State-of-the-Art" -Testbank zu haben, sollten Sie eine der Testbench-Methoden verwenden, nämlich VMM oder OVM. Sie erhalten auch eine Dokumentation, wie Sie beginnen können.

0

Klingt wie Sie sollten ein Werkzeug wie Mentors oder Cadence-Simulatoren, die RTL und SystemC-Code in einem einzigen System kombinieren. Nicht frei, sicherlich, aber sie sind die Lösung dafür in der Praxis.

Die strukturell korrekte Lösung, die Sie benötigen, ist, dass das C oder SystemC in das RTL ruft, nicht umgekehrt. Dies erfordert die Integration eines RTL-Simulators in Ihr C-Programm oder SystemC-Programm. Es ist sicherlich machbar, aber ein ziemlich großes Unterfangen.

Auch ich denke, dass die Verwendung von SystemVerilog macht sehr viel Sinn.

0

Ich habe sowohl für SystemC und System Verilog/VMM zur Verifikation verwendet, und die Antwort ist, es kommt darauf an. Als ich mit einem Startup unterwegs war, das nur ein geringes Budget hatte und versuchte, seinen ersten ASIC zu installieren, war SystemC eine natürliche Wahl, weil es auf unserem Low-Budget-Simulator lief und SystemVerilog nicht. Mit SystemC müssen Sie weder den PLI noch den DPI verwenden. Sie instanziieren Ihr SystemC-Modell tatsächlich als eine Komponente in Ihrer Testbench, die interessant ist.

Allerdings ist SystemC eine C++ - Bibliothek, die keine sehr intuitive Syntax hat. Sie sollten einen anständigen C++ - Hintergrund haben, bevor Sie versuchen, die SystemC-Bibliothek zu lernen. Die Bücher dafür, die verfügbar sind, sind meist scheiße, bis auf "SystemC from the Ground Up" von David Black.

Der Anfang gesagt, von dem, was ich gesehen habe, ist SystemC natürlich eine High-Level-Modellierungssprache, keine Verifikationssprache, und niemand mit einem Budget, um echte Simulatoren zu kaufen verwendet SystemC für die Verifikation. Vom Standpunkt der allgemeinen Karriereentwicklung aus würde ich System Verilog verwenden, wenn es Ihnen zur Verfügung steht. Außerdem können Sie die DPI immer für die Schnittstelle zu Ihrem C-Modell für die Ausgabeüberprüfung verwenden, die immer noch Generatoren, Monitore und Anzeigetafeln verwendet, die in SV/VMM geschrieben sind.