VHDL vs. Verilog [geschlossen]

VHDL und Verilog sind einige der heute verwendeten HDLs. Was sind die Vor- und Nachteile der Verwendung von Verilog oder VHDL gegenüber anderen?

Sie scheinen gleich effizient zu sein, wählen Sie diejenige, die Sie bevorzugen. Ich finde, dass VHDL am besten zu mir passt.
Wie kann ich diesen Moderatoren eine „Abstimmung“ geben? Die Rhetorik von Leuten mit früheren Erfahrungen ist wertvoller als die Informationen, die in den Büchern enthalten sind. Bücher tragen nicht das Konzept der Zeit.

Antworten (11)

Ich kann Ihnen nicht sagen, was Sie lernen sollen, aber hier sind einige kontrastierende Punkte (von einem sehr VHDL-zentrierten Benutzer, aber ich habe versucht, so fair wie möglich zu sein!), die Ihnen helfen können, eine Wahl basierend auf Ihren eigenen Vorlieben zu treffen in Bezug auf den Entwicklungsstil:

Und denken Sie an das berühmte Zitat, das in etwa so lautet: "Ich bevorzuge, welches der beiden ich derzeit nicht verwende" (Entschuldigung, ich kann mich nicht erinnern, wer das tatsächlich geschrieben hat - möglicherweise Janick Bergeron?)

VHDL

  • stark typisiert
  • ausführlicher
  • sehr deterministisch
  • Nicht-C-ähnliche Syntax (und Denkweise)

Anfangs viele Kompilierungsfehler, aber dann funktioniert es meistens so, wie Sie es erwarten. Dies kann zu einer sehr steilen Gefühlslernkurve führen (zusammen mit der ungewohnten Syntax).

Verilog

  • schwach typisiert
  • prägnanter
  • nur deterministisch, wenn Sie einige Regeln sorgfältig befolgen
  • mehr C-ähnliche Syntax (und Denkweise)

Fehler werden später in der Simulation gefunden - die Lernkurve zum "Gefühl, etwas erledigt zu haben" ist flacher, dauert aber länger (wenn das die richtige Metapher ist?)

Ebenfalls zu Gunsten von Verilog ist, dass sich die High-End-Verifizierung immer mehr an SystemVerilog anlehnt, das eine riesige Erweiterung von Verilog darstellt. Die High-End-Tools können aber auch VHDL-Synthesecode mit SystemVerilog-Verifikationscode kombinieren.


Für einen ganz anderen Ansatz: MyHDL – Sie erhalten die gesamte Leistungsfähigkeit von Python als Verifizierungssprache mit einer Reihe von Syntheseerweiterungen, aus denen Sie entweder VHDL oder Verilog generieren können.

Oder Cocotb – die ganze Kraft von Python als Verifikationssprache, wobei Ihr synthetisierbarer Code immer noch in dem HDL geschrieben ist, für das Sie sich entschieden haben (dh VHDL oder Verilog).

SystemC ist auch eine gute Option für ein HDL. SystemC unterstützt sowohl das Design auf Systemebene als auch auf Register Transfer Level (RTL). Sie brauchen nur einen C++-Compiler, um es zu simulieren. High-Level-Synthesetools konvertieren dann SystemC-Code in Verilog oder VHDL für die Logiksynthese.

Ich kenne Verilog, bin aber mit VHDL nicht vertraut: Was meinen Sie damit, dass VHDL deterministischer ist als Verilog?
@cic Manchmal kann die Simulation von Verilog-Code nicht vorhergesagt werden. Dies ist kein Fehler im Simulator. Es ist eine Funktion des Verilog-Standards.

Ich habe beides in derselben Woche gelernt. VHDL ist wie ADA/Pascal und Verilog ist wie C. VHDL ist ausführlicher und schwieriger zu kompilieren, aber sobald Sie eine Kompilierung erhalten, sind Ihre Erfolgschancen besser. Zumindest habe ich das gefunden. Verilog ist wie C ziemlich zufrieden damit, dass Sie sich selbst in den Fuß schießen. Einige Branchen wie Luft- und Raumfahrt/Regierung neigen zu VHDL, andere zu Verilog. Das Problem, das ich bei beiden finde, sind die Prüfstandsfähigkeiten, und wenn ich versuche, zu lernen und zu versuchen, von der Simulation zum Silizium/FPGA zu gelangen, ist das Schreiben von nur synthetisierbarem Code eine andere Bildungsebene.

Es gibt eine Sprache, die ich wirklich mag und die CDL heißt . Es ist streng synthetisierbar, Sie schreiben Ihre Testbenches auf andere Weise, es generiert synthetisierbares Verilog, das Sie in andere Tools übernehmen können. Leider fehlen die CDL -Dokumente, ich hoffe, einige Beispiele in die Welt zu bringen, um zu zeigen, wie viel einfacher es zu verwenden ist als Verilog oder VHDL, aber das habe ich einfach nicht getan. Es wird mit einer eigenen Simulations-/Testumgebung geliefert. Mit CDL und GTKWave können Sie eine beträchtliche Menge an Arbeit erledigen.

Ein weiteres Tool namens Verilator ist ziemlich streng, um Ihr Verilog sauber zu halten. Es ist ein kostenloser Verilog-Simulator mit einer sehr einfachen Möglichkeit, ihn an die Simulation anzuhängen oder Prüfstände in C/C++ zu erstellen. Sie können auch Verilog verwenden, sind jedoch nicht darauf beschränkt. Es gibt auch Icarus Verilog , das größer und bekannter ist, aber ich würde Verilator empfehlen, wenn Sie Verilog lernen möchten. Für VHDL gibt es GHDL , meine Erfahrung damit war nicht so gut wie Verilator , aber immerhin gibt es ein kostenloses Tool, um zu versuchen, Ihre Füße nass zu machen. Wenn Sie Erfahrung in der Softwareprogrammierung haben, werden Sie Verilog wahrscheinlich schneller erlernen und genießen als VHDL.

Ich stimme Leon definitiv zu, probiere beides aus. fpga4fun und andere Webseiten haben einige gute Informationen und einige dieser Seiten geben Ihnen sowohl die Verilog- als auch die VHDL-Äquivalente für das Thema, das sie diskutieren. Ich finde Seiten wie diese am nützlichsten, um die beiden Sprachen zu vergleichen. Wenn Sie in Ihrer Karriere ein HDL verwenden möchten, empfehle ich, zumindest einige Fähigkeiten mit beiden zu haben, vielleicht wirklich gut mit einem, aber nicht völlig unfähig zu sein, das andere zu verwenden.

Sehr gute Tipps. Ich habe Ihre Antwort als Referenz für mich und andere bearbeitet. +1

Viele heilige Kriege wurden deswegen geführt. Ein besonderer Nachteil von Verilog ist sein nicht deterministisches Verhalten. http://www.sigasi.com/content/verilogs-major-flaw

Ja, das sieht schlecht aus, aber ich bin mir nicht sicher: Ist das ein Fehler in der Sprache oder in diesem speziellen Synthesizer?
Es ist ein Sprachproblem. Verschiedene Synthesizer wählen ihr eigenes Verhalten auf unvorhersehbare Weise. Führen Sie denselben Code auf einem Mentor-Simulator oder einem Cadence-Simulator aus, und Sie erhalten möglicherweise unterschiedliche Ergebnisse.
Ich habe gerade angefangen, Verilog zu lernen, und es sieht so aus, als wäre VHDL der richtige Weg ...

Beides hat Vor- und Nachteile. VHDL ist akademischer, ausführlicher und komplexer. Sie müssen mehr Code schreiben, aber die Strenge bedeutet, dass es wahrscheinlicher funktioniert. Verilog ist einfacher für typisches digitales Design, macht es jedoch einfacher, knifflige Fehler zu erstellen. VHDL ist eher an Universitäten verbreitet. Verilog ist häufiger in großen Halbleiterunternehmen anzutreffen.

Normalerweise hängt die Wahl des einen oder anderen von den verwendeten Tools ab. Einige der beliebten FPGA-Tools funktionieren besser mit VHDL. Einige beliebte ASIC-Tools funktionieren besser mit Verilog. Was besser ist, hängt also davon ab, was Sie damit machen möchten.

Angenommen, Sie möchten kleine Projekte mit den Altera-FPGAs erstellen, die in EE-Schulen beliebt sind. Die kostenlosen Tools unterstützen beide HDLs. Aber Sie werden vielleicht feststellen, dass die Benutzergemeinschaft hauptsächlich VHDL verwendet. Es wird mehr Beispielcode, wiederverwendbare Module usw. geben, wenn Sie sich für diese Sprache entscheiden.

Umgekehrt, wenn Sie beabsichtigen, in einem großen Unternehmen zu arbeiten, das ernsthafte Chipdesign-Arbeiten durchführt, verwenden heutzutage fast alle Verilog. Die leistungsfähigen Synthese-, Simulations- und Verifikationswerkzeuge sind für Verilog optimiert. Und in letzter Zeit SystemVerilog – Erweiterungen von Verilog zur Unterstützung von Systemdesign und -überprüfung auf hoher Ebene.

Mehr Diskussion hier und nützliche Links hier:

http://www.eetimes.com/electronics-blogs/programmable-logic-designline-blog/4032239/Verilog-versus-VHDL-what-is-best-

Für einen Anfänger/Hobbyisten ist es am besten, zu entscheiden, mit welchen Chips Sie spielen möchten, und zu sehen, welche Beispiele der Anbieter anbietet. Verwende das. Sobald Sie ein erfahrener Digitaldesigner sind, dauert das Erlernen der anderen Sprache nur wenige Tage.

Danke. Der letzte Satz ist wichtig. Gibt es Tools, die das eine in das andere umwandeln?
Es gibt einige Geschichte der US-Regierung, auf die ich nicht eingehen werde, aber wenn Sie sich Modelsim ansehen, wird Verilog in VHDL konvertiert und dann simuliert. Umgekehrt ist dies nicht der Fall, sodass Sie zumindest bei Verilog zu VHDL eine Konvertierung mit diesem Tool sehen können. Es gibt andere Tools, die speziell auf die eine oder andere Weise konvertieren, und sie haben Demoversionen.
Einige der kommerziellen Tools (Synthese, statische Analyse) werden in einer Sprache gelesen und in der anderen ausgegeben. Das Ergebnis ist, als würde man einen Compiler verwenden, um Ada in Assemblersprache umzuwandeln, und dann einen Decompiler verwenden, um C zu extrahieren. Das Ergebnis wird Ihnen nicht gefallen.

Kurze Antwort : Verwenden Sie SystemVerilog, aber lernen Sie auch VHDL . Vermeiden Sie Verilog-2001, wenn Sie können.

Sehr lange Antwort : Im Moment gehe ich davon aus, dass Sie mit Verilog Verilog-2001 meinen, was wahrscheinlich auch die meisten anderen Antworten annehmen. Der beste Vorschlag wäre wahrscheinlich, beides zu lernen, aber keines zu verwenden (mehr dazu am Ende der Antwort). Die wesentlichen Unterschiede lassen sich im Folgenden zusammenfassen:

  • Verilog-2001 ist prägnant , während VHDL (sehr, sehr, sehr) ausführlich ist
  • Verilog-2001 unterstützt Konstrukte auf sehr niedriger Ebene, die von VHDL nicht unterstützt werden (Sie müssen sie jedoch nicht für ein typisches Register-Transfer-Level-Design (RTL) verwenden
  • VHDL ist stärker typisiert , was es typischerweise viel einfacher macht, Fehler frühzeitig zu erkennen
  • VHDL ist viel ausdrucksstärker als Verilog
  • Verilog-2001 hat eine eher C-ähnliche Syntax, während VHDL eher Ada-ähnlich ist
  • Verilog-2001 kann einige verwirrende Konzepte für Anfänger haben (z. B. wirevs reg)

Allerdings teilen sich die beiden Sprachen die wichtigsten Konzepte, wenn auch unter unterschiedlichen Namen (z. B. alwaysvs process), und in jedem Fall hängt die Schwierigkeit beim Erlernen einer HDL eher mit den dahinter stehenden Konzepten zusammen (wie z. B. der Gleichzeitigkeit aller Prozesse, der HW Konventionen etc.) als auf die Sprache selbst. In Anbetracht der Unterschiede, wenn die Wahl zwischen Verilog 2001 und VHDL besteht, würde ich persönlich jeden Anfänger zu VHDL ansprechen.

Wie gesagt, mein Vorschlag ist jedoch, weder VHDL noch Verilog-2001 zu verwenden, wenn Sie die Wahl haben. Im Gegensatz zu dem, was viele Leute annehmen, ist SystemVerilog keine höhere Sprache, die nur für das Design oder die Verifikation auf Systemebene nützlich ist, und hat wenig mit Sprachen gemeinsam, die in ein höheres Synthesetool wie SystemC eingespeist werden können.

Stattdessen ist SystemVerilog ein vollständiges Update der Verilog-Sprache (basierend auf Verilog-2005, siehe http://en.wikipedia.org/wiki/SystemVerilog ), das eine vollständig synthetisierbare Teilmenge hat, die der Prägnanz von Verilog mit höherer Ausdruckskraft entspricht als beide Verilog-2001 und VHDL bieten meiner Meinung nach das Beste aus beiden Welten.

Beispiele für sehr wichtige Konstrukte/Ausdrücke, die in SystemVerilog verfügbar sind, die in Verilog-2001, VHDL oder beiden nicht verfügbar sind, sind:

  • always_ff, always_latch, always_combBlöcke, die dem Designer helfen, sofort zwischen Blöcken zu unterscheiden, die verschiedene Arten von Logik implementieren, und - for always_combund always_latch- automatisch die Signale ableiten, die auf die Sensitivitätsliste kommen sollten (eine Quelle unendlicher Fehler in VHDL und Verilog, insbesondere für Anfänger!)
  • logicwireTypen, die die verwirrenden und regTypen von Verilog-2001 ersetzen
  • gepackte Typen, die den einfachen Bau mehrdimensionaler Busse ermöglichen (zB logic [N-1:0][M-1:0][P-1:0]), während Verilog-2001 nur zweidimensionale Busse unterstützt und VHDL den Designer dazu zwingt, neue Typen zu definieren, um ähnliche Strukturen zu bauen
  • High-Level-Konstrukte wie struct(ähnlich wie VHDL record) und sogar High-Level-Konstrukte interface, die sehr effektiv verwendet werden können, um reguläre Strukturen zu modellieren (z. B. die Ports eines Busses)

Ich habe all diese Unterschiede "auf meiner Haut" getestet, während ich zu Forschungszwecken an einem recht komplexen Multicore-System gearbeitet habe. Es wird jetzt von vielen Tools unterstützt, und ich weiß mit Sicherheit (da ich sie fast täglich verwende), dass es von Synopsys-Tools (sowohl für ASIC- als auch FPGA-Syntheseabläufe), Xilinx Vivado (für FPGA-Synthese) und Simulationstools wie z B. MentorGraphics Modelsim, Cadence NCsim und Synopsys VCS.

Um ganz vollständig zu sein, gibt es zwei weitere wichtige Arten von Sprachen in der Toolbox des Hardware-Designers (obwohl die Qualität dieser Tools sehr unterschiedlich sein kann):

  • HDL-Generierungssprachen wie MyHDL (Python-basiert) und Rocket (Scala-basiert). Das Konzept hier ist: Sie beschreiben Ihr Design in einer höheren Sprache, verwenden aber immer noch sehr HDL-artige Konzepte (z. B. gleichzeitige Blöcke, explizites Timing) und generieren dann herkömmliches HDL (normalerweise Verilog-2001). Ehrlich gesagt finde ich diese nicht sehr nützlich, da der Abstraktionsschritt von HDLs klein ist und SystemVerilog bereits viele der Konzepte auf höherer Ebene bereitstellt, mit dem Vorteil, dass sie ohne Zwischenschritte direkt in den Synthesefluss eingespeist werden.
  • High-Level-Synthese- Tools wie Vivado HLS, LegUp, Calypto Catapult und viele, viele andere. Diese nehmen eine Beschreibung auf sehr hoher Ebene, oft in C, C++ oder SystemC und normalerweise ohne Zeitangabe, und generieren eine Best-Effort-Implementierung in (normalerweise nicht lesbarem) Verilog. Sie sind ziemlich gut darin, einige Objekte zu erzeugen (z. B. HW-Beschleuniger für Funktionen wie Faltung, FFTs usw.), sind aber im Allgemeinen nicht universell einsetzbar. Beispielsweise ist es in den meisten HLS-Tools unmöglich, einen Prozessorkern zu entwerfen - das einzige, das ich kenne, ist BlueSpec, das wirklich eine Mischung aus HLS- und HDL-Generation ist.
So habe ich es ungefähr gelernt. Zuerst VHDL gelernt und 3 Jahre lang codiert. Habe danach 3 Monate damit verbracht, Verilog zu programmieren und (sehr schnell) entschieden, dass SystemVerilog der richtige Weg ist. Jetzt codiere ich fast ausschließlich SV, verlasse mich aber stark auf das Verständnis und die Codierungstechniken, die ich bei der Verwendung von VHDL gelernt habe.

Meine Karriere in den letzten 13 Jahren bestand zu 80 % aus ASIC und zu 20 % aus FPGA.

VHDL wurde für die ersten 3,5 Jahre verwendet und der Rest war Verilog. Ich fand den Wechsel zu Verilog nicht schwierig, und aus Standort- (Silicon Valley) und Geschwindigkeitsgründen codiere ich heute nur noch in Verilog.

Außerdem mache ich viele Async-Schnittstellen, Latches und Semi-Custom-Designs auf Gate-Ebene für die Leistung, sodass VHDL in meinem Leben jetzt nur noch sehr wenig Verwendung findet. Stattdessen fand ich SystemVerilog und SystemC viel nützlicher, um sie für große technische Projekte aufzugreifen und zu verwenden.

Zu einem bestimmten Zeitpunkt haben mir Tools wie Verilator (kostenlos! und schnell) viel dringend benötigtes Geld für kritische Simulationen gespart. GHDL ist für VHDL verfügbar. Und Sie brauchen es vielleicht nie, wenn Sie immer in einem wohlhabenden Pool schwimmen oder keine >1 Million Gate-Designs machen.

Trotzdem ist VHDL besser für Anfänger, bevor sie solide HW-Designprinzipien entwickeln. Meine Kommunikation mit EDA-Leuten hier deutet darauf hin, dass sie in den letzten 10 Jahren kleine VHDL-Entwicklungen durchgeführt haben und dass heute ein großer Antrieb hinter HLS steckt. Es wird also nicht viele Entwickler von VHDL-Tools geben ...

FreeHDL für VHDL-Simulation? Qucs als Frontend.

Ich entschied mich für VHDL, vor allem, weil ich C wirklich gut kenne und feststellte, dass der Versuch, Verilog zu schreiben, dazu führte, dass ich schrieb, als würde ich auf eine CPU abzielen, die keine Hardware beschreibt.

Sehr ärgerlich, eine Seite Code zu schreiben und zu erkennen, was Sie geschrieben haben, war effektiv ein sequentielles Programm, kein Hardware-Design, ja, es wäre ein Synthesizer, aber das Ergebnis war hässlich und langsam.

VHDL war so anders, dass ich es viel einfacher fand, in Begriffen des Logikdesigns und nicht des Kontrollflusses zu denken.

Am Ende des Tages ist die Sprache selten das Schwierige, das Können liegt im Systemdesign, nicht im Tippen.

Grüße, Dan.

Letztes Jahr hat die Universität, an der ich studiert habe, zwei offene Kurse für Anfänger angeboten. Beide deckten denselben Inhalt ab, aber einer verwendete VHDL und der andere Verilog.

Natürlich habe ich beide Professoren nach den Unterschieden von VHDL und Verilog gefragt. Beide konnten nicht den Besten wählen.

Also musste ich beide Kurse machen, um zu sehen, welcher für mich besser sein könnte. Mein erster Eindruck war, dass VHDL eher Pascal-ähnlich und Verilog eher C-ähnlich ist .

Danach habe ich mich entschieden, nur noch VHDL zu machen, weil ich damals mit Delphi gearbeitet habe.

Aber ich habe nach dem Kurs nie mit FPGA gearbeitet. Also das ist das Beste, was ich Ihnen helfen kann.

Ich verwende fast ausschließlich VHDL. Meine Erfahrung ist, dass VHDL in Europa häufiger ist, Verilog in den USA, aber VHDL macht auch in den USA stetige Fortschritte. Die starke Typisierung von VHDL stört mich nicht, weil ich es wie eine altmodische Hardware-Designsprache verwende, wie sie in kleinen programmierbaren Logiken wie PALASM oder Alteras AHDL verwendet wird.

Das große Problem für die meisten Leute, die VHDL verwenden, sind die starken Typen. Sie wollen Zuweisungen zwischen std_logic_vector (was ich als eine Sammlung von Drähten im Ziel ansehe) und "int" (was ich als eine Zahl ansehe, die in dem Computer gespeichert ist, der das Design kompiliert) machen. Die nervigste Typkonvertierung, die mir im Allgemeinen begegnet, ist die zwischen bit_vector (was ich als Beschreibung einer Sammlung von Drähten im Computer betrachte, der das Design kompiliert) und std_logic_vector. Was mich gerade zu Stackexchange gezogen hat, war die Suche nach einer Konvertierung von char (einer im Kompilierungscomputer gespeicherten Zeichenvariablen) in int.

Früher war der bekannteste Konflikt zwischen VHDL und Verilog der Designwettbewerb, der vom ASIC & EDA-Magazin veranstaltet wurde. Google "Unexpected Results From A Hardware Design Contest: Verilog Won & VHDL Lost? -- You Be The Judge!", zum Beispiel: http://www.ee.ed.ac.uk/~gerard/Teach/Verilog/manual /Beispiel/lrgeEx2/cooley.html

Der Wettbewerb bestand darin, ein ziemlich kompliziertes 9-Bit-Register zu implementieren. Es hatte Aufwärts-/Abwärtszählen sowie ein paar andere Dinge. Das Ergebnis war, dass bei 8 der 9 Verilog-Designer der Code nach 90 Minuten lief. Bei null der 5 VHDL-Typen funktionierte irgendetwas.

Ich benutze VHDL nicht wie jeder andere. So wie ich es benutze, kommen mir die Typen nicht oft in die Quere. Ich hätte das obige Projekt genauso implementiert wie alles andere, vollständig in std_logic und std_logic_vector, wobei ich (damals) die unsignierte IEEE-Bibliothek verwendet habe. Stattdessen stelle ich mir vor, dass die VHDL-Designer ihre Arbeit mit int gemacht haben und sich in der Typkonvertierung verloren haben.

Es gibt zwei Orte, an denen Sie sich bei der Typkonvertierung verlieren können: (a) Ihr Design und (b) Ihr Prüfstand. Für mich ist es einfach einfacher, die Testbench (fast) vollständig in std_logic zu schreiben, damit die Testbench selbst (fast) synthetisierbar ist. Mit "fast" meine ich, dass ich die Uhr mit einer verzögerten Zuordnung definiere, die nicht synthetisiert werden kann. Aber abgesehen davon (und Anmerkungen) können Sie meine Prüfstände nicht von der synthetisierten Logik unterscheiden.

Wie auch immer, bevor Sie sich für eine erste zu lernende Sprache entscheiden (fast jeder hat eine Präferenz, aber fast jeder verwendet beide), würde ich raten, diesen Wettbewerb nachzuschlagen und den Kommentar dazu zu lesen.

Eines der Probleme, die ich bei VHDL beobachtet habe, ist, dass, da es sich um eine sehr ausführliche Sprache handelt, (in den Köpfen der Designer) die Tendenz zu bestehen scheint, zu glauben, dass keine Kommentare erforderlich sind. Stimmt natürlich nicht, man sollte die Kommentare vor den Code schreiben.

Ich denke, es ist eine interessante Behauptung, dass die starke Typisierung von VHDL das größte Problem ist. Starke Typisierung ist für mich ein zentrales Merkmal, das es mir ermöglicht, das Abstraktionsniveau anzuheben. Beim Hardwaredesign haben Sie die Wahl zwischen der Beschreibung einer Struktur, die ein Verhalten implementiert, oder der Beschreibung eines Verhaltens, das eine Struktur implementiert. Die Geschichte hat gezeigt, dass Abstraktion der Schlüssel zum erfolgreichen Design großer Systeme ist, und digitale Systeme bilden da keine Ausnahme. Ich denke daher, dass Sie viel verpassen, wenn Sie sich auf eine sehr enge Untergruppe von Sprachfunktionen beschränken.
Stimmt, aber ich spezialisiere mich nicht auf „Large-System-Design“, sondern auf kleine Dinge, die extrem effizient sein müssen. Es gibt eine Reihe von Gründen, warum Effizienz im Elektronikdesign manchmal an erster Stelle steht. Manchmal besteht ein großes System aus vielen dieser kleinen Systeme, und diese Art von Design bietet eine weitaus größere Effizienz.

Ich werde meine zwei Cent wiegen: Ich bin selbst ein starker VHDL-Benutzer, aber Verilog kann die Arbeit sicherlich genauso gut erledigen. Sie können immer einen in den anderen packen (allerdings mit Zeit- und Tippkosten).

Was ich festgestellt habe, ist, dass rohem VHDL viele praktische Funktionen fehlen. (ODER oder UND: Ein ganzer std_logic_vector kommt mir in den Sinn). Wenn Sie sich also eine Toolbox mit debuggten, synthetisierbaren Funktionen aufbauen, können Sie Ihre Produktivität bei der Verwendung von VHDL erheblich steigern.

Vielleicht könnte jemand auf eine gute Open-Source-Bibliothek verweisen, die all diese "gut zu habenden" Funktionen bietet?

Ich bin mir ziemlich sicher, dass die AND/OR-Reduktion zusammen mit einigen anderen nützlichen Updates in VHDL 2008 enthalten ist.

Die vorherigen Antworten decken die Kontraste zwischen den beiden Sprachen ziemlich gut ab, und dieser Artikel behandelt die Punkte auch ziemlich gut: http://www.bitweenie.com/listings/verilog-vs-vhdl/

Ich möchte auch noch ein paar Punkte ansprechen, die noch nicht erwähnt wurden.

Ich würde aus mehreren Gründen empfehlen, zuerst VHDL zu lernen. Die starke Typisierung hilft, einige leichte Anfängerfehler vom Compiler abzufangen. Ich habe auch gehört, dass VHDL nach der ersten Verwendung von Verilog schwieriger zu erfassen ist.

Ehrlich gesagt kann man mit beiden Sprachen nichts falsch machen; und wenn man sehr lange in dieser branche arbeitet, lernt man irgendwann sowieso beide sprachen.