Was würde mich dazu bringen, Verilog oder VHDL gegenüber dem schematischen Design auf CPLDs oder FPGAs zu wählen?

13

Ich habe absolut keinen Hintergrund in programmierbarer Logik, ich benutze in meinen Projekten hauptsächlich Mikrocontroller, aber in letzter Zeit musste ich mit Video arbeiten und der Mikrocontroller ist einfach zu langsam für das, was ich brauchte, also habe ich angefangen, mit CPLDs zu spielen.

Ich konnte mit der CPLD gute Ergebnisse erzielen, wenn ich nur den Schaltplan verwendete. Bei der Suche nach Informationen zu CPLDs stieß ich jedoch auf viele Beispiele mit VHDL und Verilog. Ich bin gespannt, was mich dazu bringen könnte, mein Gerät in einer dieser Sprachen zu definieren. Was können sie tun, was der schematische Entwurf nicht kann? Werden sie hauptsächlich für Funktionen verwendet?

Bisher habe ich nur CPLDs verwendet. Profitieren FPGA-Designs mehr von diesen Sprachen als CPLDs?

Bruno Ferreira
quelle
1
Sie werden wahrscheinlich vom Hersteller gelieferte Synthesewerkzeuge für Verilog und VHDL für Mainstream-Teile finden. Daher ist die Wahl reine Meinung. Ich möchte Sie ermutigen, sich beide anzuschauen und zu entscheiden, welche Sie bevorzugen. Xilinx bietet gute Beispiele in beiden Sprachen. Ich vermute, dass dies auch andere Anbieter tun.
David
3
Sie sollten auf jeden Fall von der schematischen Erfassung für das Logikdesign Abstand nehmen. Am Anfang fühlt es sich einfacher an, aber das ist illusorisch. Meine $ 0.02 für Sprachen: VHDL ist ein Greuel, benutze Verilog.
Markt
@markt, warum denkst du, ist VHDL so schlecht?
Stanri
2
Man könnte genauso gut sagen, Verilog ist ein Greuel, benutze VHDL. VHDL erwartet, dass Sie genau sagen, was Sie wollen, während Verilog davon ausgeht. Aber das ist nur mein £ 0,02.
Brian Drummond
1
@markt, ich habe mit VHDL angefangen, also habe ich irgendwann die starke Typisierung davon geschätzt. Es zwang mich zu überlegen, was ich wollte und gute Gewohnheiten zu schaffen, als ich anfing. Jetzt bin ich viel zu weit im SystemVerilog-Camp, um mich ehrlich zu sehr darum zu kümmern.
Stanri

Antworten:

14

Ein schematisches Design ist nur dann sinnvoll, wenn Sie nur einige Standardmodule (Zähler, Addierer, Speicher usw.) zusammenfügen. Die Implementierung eines tatsächlichen Algorithmus (z. B. eines Kryptografie-Hashing-Algorithmus) ist jedoch ohne eine HDL (wie VHDL oder Verilog) nahezu unmöglich, da es keine Möglichkeit gibt, ein System auf Verhaltensebene mit schematischen Symbolen zu beschreiben.

Die meisten Projekte werden in verhaltensorientiertem HDL ausgeführt, da sie zu komplex sind, um von Hand synthetisiert und schematisch mit logischen Grundelementen gezeichnet zu werden.

CPLDs werden im Allgemeinen für die Klebelogik und weniger für die Verarbeitung verwendet, und im Allgemeinen ist die Logik einfach schematisch zu implementieren. Ich denke, Sie haben Recht, wenn Sie vorschlagen, dass FPGA-basierte Designs mehr von der Verwendung einer HDL profitieren.

Jay Carlson
quelle
In einem symbolischen Schemasystem können Sie sehr komplexe Dinge tun . Ich würde sogar sagen, dass alles, was in einer HDL möglich ist, in einem schematischen System implementiert werden kann, allerdings auf Kosten der Wartbarkeit. Solange das Toolset Symbolblöcke definieren kann, die als einzelnes Symbol fungieren, können Sie so ziemlich alles tun.
Connor Wolf
1
Ein gutes Beispiel hierfür ist labview. Es ist eine symbolische Programmierschnittstelle, in der Menschen sehr komplexe Systeme entworfen haben, die ganze Fabriken automatisieren. Das Endergebnis ist fast nicht mehr zu halten, aber es ist möglich (Anmerkung: Ich spreche nicht darüber, ob es eine gute Idee ist , sondern nur die grundsätzliche Lebensfähigkeit).
Connor Wolf
"Die meisten Projekte werden in verhaltensorientiertem HDL ausgeführt ..." ist nicht unterstützbar und funktioniert NICHT so, wie Designflüsse funktionieren.
Platzhalter
@ConnorWolf Muss nicht zustimmen, dass Labview-Code so unerreichbar ist - nicht, dass ich ein großer Fan bin. Es gibt einige Best Practices, die wirklich helfen. Für mich ist es normalerweise der Verzicht auf die Hoffnung auf Vorwärts- oder Rückwärtskompatibilität, der zu Wartungsproblemen führt, im Gegensatz zu allem, was der G-Sprache eigen ist;)
Scott Seidman
4

Ein paar praktische Aspekte zusätzlich zu Jays hervorragender Antwort:

  • Bugs. Die schematischen Tools sind in der Regel fehlerhafter * als der Rest des Toolset. Dies ist möglicherweise auf die Bevorzugung von Verilog / VHDL gegenüber Schaltplänen in der Branche zurückzuführen, weshalb die Softwareentwickler dem schematischen Eintrag weniger Aufmerksamkeit schenken.
  • Geschwindigkeit. Der Schaltplan muss zuerst in eine HDL konvertiert werden, bevor er an das Synthesewerkzeug übergeben wird. Dies kann sich negativ auf die Bauzeiten auswirken. Die generierte HDL ist möglicherweise auch nicht gut lesbar, wenn Sie sie aus irgendeinem Grund überprüfen müssen.
  • Portabilität. Abhängig von der Anzahl der verwendeten herstellerspezifischen Grundelemente sind Verilog und VHDL zwischen Geräten mehr oder weniger portabel. Portierungsschemata Sie müssen entweder alles neu zeichnen oder sich auf die bereitgestellten Import- / Exportfunktionen verlassen (falls vorhanden).

* Mein Lieblingsfehler in Xilinx ISE war die Unfähigkeit, vertikale Drähte auszuwählen.

Wailashi
quelle
2

Die Vorteile einer HDL (Hardware Description Languages) als Design Entry-Standard sind vielfältig.

Die Beschreibung der Funktionalität kann auf einer höheren Ebene erfolgen, HDL-basierte Entwürfe können zu einer Beschreibung einer ausgewählten Technologie auf Gate-Ebene synthetisiert werden. Ein HDL-Entwurf ist leichter zu verstehen als eine Netzliste auf Gate-Ebene oder eine schematische Beschreibung und HDLs Fehler durch starke Typprüfung reduzieren.

Die Hardwarebeschreibungssprachen VHDL und Verilog wurden für die Modellierung von Hardware mit der Absicht entwickelt, auf einer höheren Abstraktionsebene zu modellieren, die Funktionen wie Parallelität, Zeitverhalten, Hierarchie, Wiederverwendung von Komponenten, Zustandsverhalten, synchrones Verhalten, asynchrones Verhalten, Synchronisation und inhärente Parallelität umfasst .

Probleme treten während der Synthese auf, indem die Entwurfsbeschreibung einem bestimmten Prozess und einer bestimmten Gate-Implementierung zugeordnet wird. Dies setzt voraus, dass Sie die High-Level-Funktionen von HDL nicht nutzen können - Sie müssen "synthetisierbares Verilog / VHDL" erstellen

Sie haben also HDL für die Synthese und HDL für die Simulation und die Teilmenge, die synthetisiert werden kann, ist werkzeugspezifisch.

Sie können nicht von einer Behavioral Design-Beschreibung zu einer Netzliste / einem Netzlayout wechseln. Sie können Ihr Design jedoch so strukturieren, dass es Verhaltenskomponenten enthält, die auch einen synthetisierbaren Aspekt haben, der miteinander verglichen werden kann. Sie beginnen mit dem Verhalten, und sobald es funktioniert, schreiben Sie es für die Synthese neu (was eine Teilmenge ist). Sie gehen vom Allgemeinen zum Besonderen und bauen auf dem Weg Prüfstände.

Platzhalter
quelle
1

Ein weiterer Vorteil ist, dass HDLs dieselben Vorteile wie normale Programmiersprachen haben, da sie in Standardversionskontrollsystemen verwendet werden können, um Änderungen zu untersuchen usw.

mhz
quelle
0

Zusätzlich zu dem, was bereits gesagt wurde: Die Textdarstellung ist insbesondere bei großen Projekten einfacher zu handhaben. Sie können (wenn auch mit großen Schwierigkeiten) jede syntheizbare HDL in einen Schaltplan umwandeln, aber Hunderte von Textzeilen sind einfacher zu verarbeiten als Hunderte von Schaltplanelementen.

valplo
quelle