- SystemVerilog
-
SystemVerilog ist die erste Hardware-Beschreibungs- und Verifikationssprache (Hardware Description and Verification Language, kurz HDVL genannt). Sie bietet Möglichkeiten zum Design und zur Verifikation von digitalen Schaltungen. SystemVerilog wurde von Accellera entwickelt und ist eine Erweiterung des IEEE 1364–2001 Verilog HDL. Dabei arbeitet SystemVerilog aber auf einer höheren Abstraktionsebene als Verilog-2001.
Inhaltsverzeichnis
Geschichte
Verilog-1995 ist schon seit vielen Jahren am Markt und stellt neben VHDL die meistgenutzte Hardwarebeschreibungssprache dar. Die IEEE hat die Eigenschaften von Verilog-1995 erweitert, diese wurden in Verilog-2001 klassifiziert. Dieser Sprachumfang ist aber immer noch ungenügend für eine leistungsfähige Verifikation der in Register Transfer Level (RTL) beschriebenen digitalen Hardware. Daher haben die Entwickler oft andere Sprachen wie „e“ , Vera oder Testbuilder verwendet. Da SystemVerilog sowohl eine Hardwarebeschreibungssprache als auch eine Verifikationssprache ist müssen beide Teile der Sprache gesondert betrachtet werden. Der Hardwarebeschreibungsaspekt von SystemVerilog ist eine konsistente Weiterentwicklung des Verilog-2001 Standards. Anders sieht es hier bei dem Verifikationsaspekt von SystemVerilog aus. Dieser Sprachteil wurde maßgeblich durch Synopsys Vera beeinflusst und es handelt sich um eine objektorientierte, von Verilog-2001 deutlich abweichende, Syntax.
Die Standardisierung von SystemVerilog erfolgte in mehreren Stufen, deren Entwicklung jeweils etwa ein Jahr dauerte. Im Juni 2002 erschien SystemVerilog 3.0, im Mai 2003 die Version 3.1 und schließlich im April 2004 die ganz letzte Version SystemVerilog 3.1a.
Mit der Entwicklung von SystemVerilog 3.1 sollten die wichtigsten Verifikationstechniken und die Konzepte der Sprache 'C' in SystemVerilog integriert werden.
Allgemeines zu SystemVerilog
Einige der Eigenschaften von SystemVerilog:
- Datentypen analog zu 'C': int, typedef, struct, union, enum
- Dynamische Datentypen: struct, classes, "dynamic queues", "dynamic arrays"
- Neue Operatoren und "built-in methods"
- Erweiterte Programmsteuerung: foreach, return, break, continue
- Semaphoren, Mailboxen und "events"
- Klassen für objektorientiertes Programmieren
- "assertions"
- Code-Überdeckungs-Analyse
- VPI-Erweiterungen.
Die IEEE hat SystemVerilog als IEEE-Standard 1800 genormt. Jeder mit C++-Erfahrung wird sich mit SystemVerilog schnell vertraut fühlen. Da SystemVerilog aber sehr viele Anleihen an C++ besitzt, wird es jemandem, der sich noch nie mit der objektorientierten Programmierung beschäftigt hat, schwerfallen, SystemVerilog im vollen Umfang zu nutzen.
SystemVerilog besteht aus drei Teilen. Dem schon seit längerem bekannten und standardisierten Verilog, ein zweiter Teil der das Schreiben von Assertions in SV definiert sowie dem Objekt orientierten Teil, der überwiegend/ausschließlich für die Verifikation verwendet wird.
Funktionsweise
Beispiel die Verwendung von Zeichenketten und Bildschirmausgabe
// Dies ist ein SystemVerilog Kommentar string sv = "SystemVerilog"; string s; s = {sv, " ", "ist echt einfach."}; $display ("%s\n", s); // Bildschirmausgabe: "SystemVerilog ist echt einfach." s = {s, " - probiert es mal!"}; $display ("%s\n", s); // Bildschirmausgabe: "SystemVerilog ist echt einfach. - probiert es mal!"
Weblinks
- http://www.systemverilog.org
- http://www.asic-world.com/systemverilog
- http://www.doulos.com/knowhow/sysverilog/
- http://www.project-veripage.com
- http://electrosofts.com/systemverilog/ SystemVerilog Tutorial
Siehe auch
Wikimedia Foundation.