Heim Der Blog Blog Details

Können Verilog und VHDL für FPGAs verbessert werden?

August 02 2023
Ampheo

Anfrage

Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.

SCHNELLE ANFRAGE
ZUR RFQ-LISTE HINZUFÜGEN
In diesem Artikel werden einfach Verilog, die Geschichte von Verilog und VHDL vorgestellt, außerdem wird über herkömmliche FPGA-Designtools gesprochen.

Was ist Verilog?

Tatsächlich liegen die Ursprünge von Verilog in Hilo, einer veralteten Hardwarebeschreibungssprache, und in den Programmiersprachen C. Es ist eine sehr begrenzte und schwach typisierte Sprache, da sie alle etablierten Datentypen enthält. Die Datentypen werden auf Bitebene angezeigt. Andere Datentypen können mit Zeichenfolgen und Verilog gekoppelt werden. Die Simulationssemantik von Verilog ist weniger präzise als die von VHDLs. Verilog ist für Entwickler daher sehr vielseitig, wenn jedoch Codierungsregeln nicht befolgt werden, können aufgrund von Mehrdeutigkeiten Race-Szenarien auftreten. Es ist notwendig, die Wiederverwendbarkeitsfunktion von Paketen bereitzustellen, dies ist jedoch aufgrund des eingeschränkten Umfangs und der schwachen Paketfähigkeit der Sprache äußerst schwierig. Verilog bietet grundlegende Simulationssteuerungsbefehle, die den Systembetrieb unterstützen. Aufgrund der vordefinierten Systemaufgaben und einfachen Datenformate von Verilog verwenden Programmierer normalerweise Befehlszeilen- oder Batchsimulationen. Die Wellenformen der Simulation können auch zum Debuggen verwendet werden.  

Die Geschichte von Verilog

Cadence Design System, einer der größten Anbieter von elektronischen Designtechnologien und Engineering-Dienstleistungen im Bereich der elektronischen Designautomatisierung (EDA), kaufte Gateway Design Automation Inc. im Jahr 1990. Cadence schätzte den Wert von Verilog und war sich bewusst, dass, wenn Verilog eine geschlossene Sprache bliebe, der Standardisierungsdruck die Leute schließlich zum Umstieg auf VHDL zwingen würde. Daher gründete Cadence 1991 Open Verilog International (OVI) (heute bekannt als Accellera) und gab die Verilog-Dokumentation unter dem Namen OVI öffentlich bekannt. Später wurde sie der IEEE vorgelegt, wo sie als IEEE-Standard 1364-1995, auch bekannt als Verilog-95, angenommen wurde. Erweiterungen zu Verilog-95 wurden 2001 erneut bei der IEEE eingereicht und als Ergebnis entstand Verilog-2001, auch bekannt als IEEE-Standard 1364-2001. Einige von Benutzern entdeckte Mängel in Verilog-95 wurden durch die Erweiterungen behoben. Die Unterstützung für vorzeichenbehaftete Variablen (im 2er-Komplement) war eine der größten Verbesserungen. Derzeit unterstützen die meisten Designtools Verilog-2001 als Standardversion der Sprache. Verilog-2005 (IEEE-Standard 1364-2005) wurde 2005 veröffentlicht und weist einige kleinere Anpassungen und Änderungen auf. 2005 wurde auch eine Obermenge von Verilog-2005 namens System Verilog eingeführt, die viele neue Funktionen und Möglichkeiten zur Unterstützung der Designverifizierung bietet. Eine der heute am häufigsten verwendeten Sprachen für IC-Design und -Verifizierung, SystemVerilog 2009 (IEEE-Standard 1800-2009), wurde 2009 durch die Kombination der Sprachstandards SystemVerilog und Verilog erstellt. SystemVerilog wird von der 2013 veröffentlichten Xilinx® Vivado Design Suite für FPGA-Design und -Verifizierung unterstützt.  

Was ist VHDL?

VHDL hat seine Wurzeln in der Programmiersprache Ada, einer sehr stark typisierten und dicht typisierten Hardwarebeschreibungssprache. Aufgrund der Sprachanforderungen ist VHDL viel ausführlicher als Verilog, eine andere HDL, was auch die Anzahl selbstdokumentierender Designs erhöht. In VHDL stellt die starke Typisierung sicher, dass explizite Datentyptransformationen, wie etwa von einem Bit-Vektor in eine Ganzzahl, stattfinden. Die Semantik der VHDL-Sprache wurde so konzipiert, dass sie außergewöhnlich einfach und eindeutig ist. VHDL-Designs sind leichtgewichtig, was die Funktionalität des einfachen Wechsels von einem Tool zu einem anderen erhöht. Daher besteht kein Grund zur Sorge über Rassenprobleme. Das VHDL-Design basiert hauptsächlich auf dem IEEE-Standard 1164 und verwendet auch die Math- und Numeric-Pakete, um die Benutzerfreundlichkeit der Sprache zu verbessern. VHDLs fehlen Funktionen zur Überwachung oder Simulationssteuerung und sie sind vollständig toolabhängig. Das Debuggen des Designs ist komplexer und erfordert die Verwendung interaktiver GUIs, da VHDL-Typen benutzerdefiniert sind und keine integrierte Simulationssteuerung vorhanden ist.  

Die Geschichte von VHDL

Die gesamte FPGA-Community unternimmt große Anstrengungen, aber aufgrund der Natur von FPGAs ist diese Aufgabe schwierig zu bewältigen. Wir müssen uns die ursprüngliche Absicht von FPGAs ansehen, um zu verstehen, warum dies der Fall ist. Ein ganzes Jahr nach dem Debüt von VHDL, nämlich 1984, wurde der FPGA-Hersteller Xilinx gegründet. VHDL wurde ursprünglich vom US-Militär als Methode zur genauen Beschreibung des Verhaltens anwendungsspezifischer integrierter Schaltkreise (ASICs) entwickelt. FPGAs wurden von Xilinx als Lösung zur Simulation von ASICS-Aktionen beworben, ohne diese vorher erstellen zu müssen. Da ASIC-Ingenieure bereits VHDL verwendeten, wurde dies natürlich von den Tools von Xilinx unterstützt. Da HDL versucht, das Verhalten einer Schaltung auf Register Transfer Level (RTL) abzubilden, ist seine Verwendung schwierig. Dies tritt auf, wenn Informationen in Form elektronischer Signale innerhalb eines vorgegebenen Zeitraums, der als Taktzyklus bezeichnet wird, von einem Register zum nächsten Register fließen, nachdem sie eine Reihe logischer Gatter durchlaufen haben. Der Designer verwendet VHDL, um anzugeben, wie sich Milliarden dieser Signale während jedes Taktzyklus in einem einzelnen ASIC bewegen sollen. Da nur Experten es verwenden können, dauert es natürlich lange, bis sie FPGA-Designs korrekt simulieren und debuggen.  

Video zu Verilog vs. VHDL

Herkömmliche FPGA-Designtools

In den ersten 20 Jahren der FPGA-Entwicklung entwickelten sich Hardwarebeschreibungssprachen (HDLs) wie VHDL und Verilog zu den wichtigsten Sprachen für die Entwicklung der Algorithmen, die auf dem FPGA-Chip laufen. Mit dem Wissen, dass Sie einen Schaltkreis auf einem FPGA konstruieren, integrieren diese Low-Level-Sprachen einige der Vorteile bestehender Textsprachen. Signale von externen E/A-Ports müssen internen Signalen zugeordnet oder mit ihnen verbunden werden, bevor sie an die Funktionen gesendet werden, die die Algorithmen beherbergen, um die resultierende Hybridsyntax verwenden zu können. Diese parallel laufenden Prozesse können auf andere FPGA-basierte Vorgänge verweisen. Allerdings ist es bei einem sequentiellen zeilenweisen Ablauf schwierig, die tatsächlich parallele Natur der Auftragsausführung auf einem FPGA zu verstehen. HDLs spiegeln einige der Eigenschaften anderer Textsprachen wider, unterscheiden sich jedoch erheblich, da sie auf einem Datenflussmodell basieren, bei dem E/A über Signale mit einer Reihe von Funktionsblöcken verbunden ist.  

HLS-Tools

Wir könnten die Leistungsvorteile spezialisierter Hardware erreichen, ohne HDL zu schreiben, wenn wir diese höheren Programmiersprachen wie C für FPGA-Designs verwenden könnten. High-Level-Synthese-Technologien (HLS) streben dies seit den 1990er Jahren an. Seitdem haben sich HLS-Tools erheblich weiterentwickelt und werden von der Industrie unterstützt. Vivado HLS von AMD (ehemals Xilinx), der Intel HLS Compiler und SmartHLS von MicroChip sind Beispiele für Industrietools. Da diese Sprachen in Anweisungslisten und nicht in Schaltkreise umgewandelt werden sollten, sind diese HLS-Compiler häufig nicht fehlerfrei. Nur ein kleiner Prozentsatz von C kann effektiv in einen Schaltkreis umgewandelt werden, während die hohe Leistung, für die FPGAs bekannt sind, erhalten bleibt. Lange „if“-Anweisungsketten laufen schlecht, „for“-Schleifen können jedoch effektiv übersetzt werden. Als Ergebnis wurde eine neue Generation von Tools entwickelt, die die Verwendung von CPUs mit FPGAs kombinieren. Mit diesem Setup könnten die beiden auf einem einzigen Chip kombiniert werden, einem sogenannten „System-on-Chip“ mit gemeinsam genutztem Speicher. Alternativ könnten es unabhängige Chips sein, die über eine PCI-Schnittstelle verbunden sind. Diese Methode wird von AMDs Vitis Unified Development-Umgebung und Intels OneAPI verwendet.  

Domänenspezifische Tools

Domänenspezifische Tools, die Designs für bestimmte Zwecke erstellen, sind ein weiteres interessantes Thema. Diese Tools werden am häufigsten im Bereich des maschinellen Lernens verwendet, wo die FPGA-Technologie sehr vielversprechend ist. Normalerweise verwenden diese Tools ein Modell aus einem bekannten Framework für maschinelles Lernen, wie PyTorch oder TensorFlow, und bieten eine optimale Architektur für dieses Modell. Dies bedeutet, dass Softwareentwickler FPGAS ohne technische Kenntnisse verwenden und dennoch eine hervorragende Leistung erzielen können. Zu den Community-Ressourcen hierfür gehören FINN und HLS4ML.  

Fazit

Im Laufe der Geschichte der FPGA-Branche gab es zahlreiche Versuche, bessere Entwicklungssprachen als Verilog oder VHDL zu erstellen. Von nachbarschaftsbasierten Initiativen zur Erstellung von HDLs in benutzerfreundlicheren Programmiersprachen bis hin zu HLS-Tools, die versuchen, regulären Softwarecode in Hochleistungshardware umzuwandeln. Die Entwicklung domänenspezifischer Tools, die effiziente FPGA-Designs für bestimmte Anwendungen wie maschinelles Lernen bereitstellen können, war die erfolgreichste Entwicklung. Die FPGA-Technologie wird durch diese neuen Tools und Sprachen verbessert, da sie eine Leistung auf FPGA-Niveau mit viel weniger Entwicklungsaufwand liefern können. Leider ist dies nur unter bestimmten Bedingungen möglich. Aufgrund ihrer Fähigkeit, Schaltkreise auf RTL-Ebene zu modellieren und ihrer breiten Verwendung in der Industrie haben VHDL und Verilog noch immer eine vielversprechende Zukunft. Das Beste, was wir als Ingenieure tun können, ist, uns über diese HDLs zu informieren und dabei aufgeschlossen und bereit zu bleiben, mehr über diese neuen Tools zu erfahren und zu ihnen beizutragen. Auf diese Weise kann die FPGA-Community wachsen und die Produktivität kann gesteigert werden.
Ampheo