 |
| MARTIN REUTER, Technical Director Central Europe, Mentor Graphics Deutschland GmbH |
Mit der im vergangenen Jahr stark angestiegenen Zahl an Erweiterungen bei verschiedenen Hardwarebeschreibungssprachen (HDLs) steigen nun auch die Anforderungen, um für HDL-Entwicklung die bestmögliche Sprache auszuwählen. Viele Projekt- und Entwicklungsleiter erwägen den Wechsel von einer HDL zu einer anderen. Diese Entscheidung sollte wohl überlegt sein, da diese von strategischer Bedeutung ist. Es bieten sich heute drei allgemein einsetzbare HDLs an: VHDL (IEEE 1076), Verilog HDL (IEEE 1364) und SystemVerilog, eine erweiterte Version von Verilog, für die noch kein IEEE Standard existiert.
Die Semantik von Verilog ist mehrdeutiger als die von VHDL. Diese Mehrdeutigkeit verleiht Designern größere Flexibilität beim Optimieren, kann jedoch bei Nichtbefolgen der Programmierrichtlinien zu ‚Race Conditions‘ führen. Es ist möglich, dass die Analyse eines Design mit Tools unterschiedlicher Anbieter, zu unterschiedliche Ergebnisse führt. Das Ziel der Entwickler von Verilog HDL lag im Unterschied zu denen von VHDL darin, den Designern eine Sprache bereitzustellen, die möglichst vielen Anforderungen während einer Logiksimulation gerecht wird. Zusammen mit den fehlenden Möglichkeiten zur Paketbildung macht es der eingeschränkte Fokus der Sprache (Verilog HDL) schwierig oder gar unmöglich, nicht in der Sprache enthaltene Funktionen so zu entwickeln, dass sie wiederverwendet werden können. In Verilog HDL sind beispielsweise grundlegender Funktionen zur Simulationssteuerung (System Tasks) definiert. Aufgrund dieser vordefinierten System-Tasks und durch das Fehlen komplexer Datentypen führen Verilog-Anwender Simulationen oft über Skripte oder Kommandos aus und beseitigen Designfehler mit Hilfe von Oszillogrammen (Waveforms), die mit den in einer Datenbank aufgezeichneten Simulationsergebnissen erstellt werden. Im Gegensatz dazu profitiert die Sprache von einer herstellerspezifischen Erweiterung namens Superlog und entlehnten Elementen der Programmiersprachen C und C++, basiert aber nach wie vor auf Verilog HDL. Durch SystemVerilog wird Verilog HDL um viele vordefinierte und benutzerdefinierte Datentypen erweitert. Speziell auf dem Gebiet der benutzerdefinierten Typen werden Möglichkeiten zur strengen Typisierung hinzugefügt. Dennoch übertrifft die Strenge der Typenprüfung von VHDL noch immer die von SystemVerilog. Um Abwärtskompatibilität zu gewährleisten, hält SystemVerilog an der schwachen Typisierung für die integrierten Verilog-Typen fest. Da SystemVerilog im Vergleich zu Verilog HDL auf eine allgemeinere Verwendung ausgelegt ist, werden von dieser Sprache Möglichkeiten zum Definieren und Packen von wiederverwendbaren Funktionen bereitgestellt, die noch nicht in der Sprache enthalten sind. SystemVerilog bietet außerdem Möglichkeiten zur Entwicklung von Testumgebungen, zur Verifikation durch Überprüfung von Zustand, Inhalt und Abfolge (assertions) sowie zur Schnittstellenabstraktion und Paketierung. Durch die Fülle der Informationen bezüglich Sprachen und Standards stellt sich die Frage, wohin die Entwicklung geht. Die Antwort auf diese Frage variiert stark in Abhängigkeit vom Entwickler und der Organisation. Zusätzlich zum obigen Sprachvergleich sind noch weitere Dinge zu beachten: SystemVerilog ist ein neu aufkommender Standard, welcher sich derzeit noch in der Entwicklung befindet. Durch überzeugende Eigenschaften ist für aktuelle Verilog-Anwender die Migration zu SystemVerilog wahrscheinlich. Allerdings wird eine Unterstützung der Tools erst dann auf breiter Basis zur Verfügung stehen, wenn die Spezifikation stabil ist. Für VHDL-Anwender sind viele der Erweiterungen von SystemVerilog und Verilog 2001 bereits unter VHDL verfügbar. Darüber hinaus gibt es eine VHDL-Erweiterungsinitiative, durch die der Sprache Testmöglichkeiten und erweiterte Möglichkeiten für Assertions hinzugefügt werden (beides Gebiete, in denen SystemVerilog Vorteile gegenüber VHDL 2002 aufweist). Eine eindeutige Antwort auf die Frage nach der richtigen HDL zu finden ist schwer und hängt von individuellen Kriterien ab. Eine Entscheidung sollte in Anbetracht der Kosten für das Ändern der Prozesse und Tools sowie der Investitionen in die Mitarbeiterschulung sehr kritisch überdacht werden. Vollbeitrag als PDF |
| |
|
 |
|