Was sind einige Dinge, die in VHDL getan werden können, aber nicht in Verilog und umgekehrt?

VHDL und Verilog sind ziemlich ähnlich, haben aber nicht die gleichen Funktionen, es gibt jedoch sicherlich eine massive Überschneidung.

Was sind einige Dinge, die in VHDL einfacher, aber in Verilog nicht so einfach oder gar unmöglich zu machen sind? Ich möchte nur verstehen, wie sie sich vergleichen.

Ich frage mich nur, wenn einer so gut wie der andere ist, warum dann nicht einfach einen der beiden verwenden und die Arbeit der EDA-Anbieter vereinfachen, die Tools zum Simulieren und Synthetisieren dieser HDLs und auch die Arbeit und das Leben vieler anderer Menschen erstellen?

Umformulieren Ihres letzten Absatzes - wenn einer besser ist als der andere, warum den schlechteren verwenden? Es gibt viele Programmiersprachen, mehrere HDLs, zahlreiche Software für die gleichen Aufgaben, und es ist wirklich die Präferenz des Benutzers / Entwicklers, was verwendet werden soll, unter Berücksichtigung verschiedener Kompromisse.
Ich finde Verilog viel einfacher zu schreiben, aber VHDL ist sehr beliebt. Es ist wirklich nur eine Frage des Geschmacks; Wenn Sie ernsthafte Zwangsstörungen haben, verwenden Sie VHDL, wenn Sie produktiv sein möchten, verwenden Sie Verilog. Außerdem ist die schematische Erfassung Zeitverschwendung.
@markt Die schematische Erfassung kann für die Top-Level-Verbindung und die Blockdiagrammdemonstration für das Management nützlich sein :)
@EugenSch. Fair Call :) aber in technischer Hinsicht ist es Zeitverschwendung.
Hmm, ja, im professionellen Umfeld Zeitverschwendung. In meinem Masterprogramm, in dem ich aus Spaß an einer Klasse für digitale Systeme teilnahm, beendete ich unsere Aufgaben immer schneller mit der schematischen Erfassung als meine Klassenkameraden (die in dieser Konzentration waren und also VHDL gelernt hatten), die die Arbeit in VHDL erledigten. Also ... ich würde sagen, gehen Sie mit dem, was für Sie funktioniert, stellen Sie nur sicher, dass Sie auch mindestens Verilog oder VHDL lernen.
@markt hehe. Ich verwende VHDL, weil ich ein explizites Hardwaredesign bevorzuge. Bei Software sehe ich das anders, obwohl ich das hauptsächlich in C schreibe. OCD hat damit nichts zu tun.
Viele VHDL-Mängel wurden in neueren Versionen des Standards behoben. Viele Verilog-Mängel wurden durch die Einführung von SystemVerilog behoben. Das Problem ist, dass oft nur alte Versionen von Simulatoren, Synthesizern gut unterstützt werden und man bei reinem Verilog oder VHDL'93 hängen bleibt.
Um Ihre Frage direkt anzusprechen, beides sind ziemlich schreckliche Sprachen. Es gibt einige neue Sprachen, die vielleicht ein bisschen weniger saugen, wie Chisel oder MyHDL. SystemVerilog wird wahrscheinlich „gewinnen“, aber es ist ein bisschen wie C++, ein aufgeblähtes Durcheinander.
SystemVerilog zielt eher auf Verifizierung als auf Design ab. Ich weiß, dass SystemC für denselben Zweck existiert. Was das Design betrifft, dominieren weiterhin Verilog und VHDL und sind für die beabsichtigte Aufgabe angemessen. Mir sind keine Neuankömmlinge bekannt, daher überrascht mich Ihre Antwort.

Antworten (2)

VHDL leiht sich von Ada und ist im Vergleich zu Verilog stark typisiert. Einfache Dinge sind in Verilog einfacher zu erledigen, aber komplexe Dinge sind in VHDL einfacher zu erledigen. Beide können die Arbeit erledigen. Mit Verilog können Sie den C-Präprozessor verwenden, was im Vergleich zu Generika manchmal nett ist.

Bei beiden ist nichts unmöglich.

*Falsche Antwort beginnt*

Das Reuse Methodology Manual enthält einen Abschnitt zum empfohlenen HDL-Codierungsstil und einen spezifischeren zur Übersetzung von VHDL in Verilog. Woran ich mich am meisten erinnerte, war, dass "generate"-Anweisungen beim Schreiben zur Wiederverwendung vermieden werden sollten, da sie in Verilog keine Entsprechung haben.

* Falsche Antwort endet *

Der Benutzer TM90 wies in einem Kommentar unten darauf hin, dass der Generierungsblock in Verilog existiert. Meine Antwort ist falsch.

Siehe IEEE Std 1364-2001, IEEE Standard Verilog® Hardware Description Language, 12.1.3 Generierte Instantiierung. Beachten Sie, dass "Verwenden Sie keine Generate-Anweisungen. Es gibt kein entsprechendes Konstrukt in Verilog" in The Reuse Methodology Manual von 2002 (aktuelle, 3. Ausgabe) sowie in der 2. (1999).
In Verilog 2001 gibt es definitiv einen Generate Block. Siehe sutherland-hdl.com/online_verilog_ref_guide/… 9.0 Generate Blocks
Eines der Dinge, die ich herausgefunden habe, ist, dass Verilog es ermöglicht, mehr Beschreibungen auf niedrigerer Ebene zu erstellen, die bis zu den Transistoren selbst reichen. Dies ist mit VHDL nicht möglich.