Forum: FPGA, VHDL & Co. Verilog vs VHDL


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Neuling (Gast)


Lesenswert?

Guten Tag.
Kann mir bitte jemand einen Link geben, wo die beiden Sprachen 
verglichen werden, oder in Kurzform zusammenfassen, was die Unterschiede 
sind und welche Sprache vorteilhafter ist? Ich blicke da nicht so sehr 
durch.

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Hier unten stehen ein paar Links, vielleicht ist was dabei:
http://www.mikrocontroller.net/articles/VHDL

Ich habe gehört, Verilog sei in USA bekannter, scheint aber beides etwa 
gleichwertig zu sein.

von Mike (Gast)


Lesenswert?

Für weiterführende Links kannst du hier schauen:

http://www.mikrocontroller.net/articles/Hardwarebeschreibungssprachen

Das ist das als wenn du nach dem Unterschied zwischen C und Pascal 
fragst ;). Ansonsten solltest du dich erstmal nur in eine Sprache 
einarbeiten (du wirst da so schon genug Probleme haben). Falls du dich 
in Europa befindest, dann würde ich dir VHDL empfehlen. Ist hier einfach 
weiter verbreitet.

von Neuling (Gast)


Lesenswert?

Das es sich um unterschiedliche Sprachen handelt, ist mir schon klar :)
Habe mich bloss gewundert, als ich auf Xilinx-page Verilog Projekte 
gesehen habe. Das hat mich verwirrt, da für mich zum FPGA -> VHDL 
gehört. Und deswegen kam die Frage auf. Aber wenn die Aussagen vom 
Christoph Kessler stimmen soll, hat es sich für mich erledigt :)

von na (Gast)


Lesenswert?

VHDL und Verilog 2001 nehmen sich von der Mächtigkeit her nichts.

Verilog hat (genau wie VHDL) eine ältere (1995) und eine jüngere (2001) 
Version, von VHDL wird inziwschen fast nur noch die 1993er benutzt. 
Problem ist manchmal, dass manche Tools nur Verilog 95 unterstützen, was 
nicht ganz so komfortabel in der Beschreibung ist.
In Verilog (2001) lässt sich gegenüber VHDL vieles kürzer (vom reinen 
Quellcode her) beschreiben, damit allerdings auch kryptischer und für 
Anfänger etwas unübersichtlicher. VHDL halte ich für etwas sauberer, in 
Verilog muss man halt manchmal etwas mehr aufpassen, was man macht. Ein 
nettes Feature von VHDL ist die Typendefinition, welche Verilog nicht 
bietet (diese Typen sind allerdings natürlich real in Hardware unnötig 
aber machen das ganze übersichtlicher).
Verilog ist auf dem amerikanischen und japanischen Sektor mehr 
verbreitet, VHDL in Europa. Amerikanische Firmen wie AMD mit Firmen in 
Deutschland beschreiben ihre Hardware auch hierzulande mit Verilog.

Wenn man sich einmal in eine Hardwarebeschreibungssprache reingedacht 
hat, ist der Umstieg auf die andere eigentlich nicht so schwer.

von Florian D. (code-wiz)


Lesenswert?

So, habe gerade auch einmal mein CPLD-Evalboard ausgepackt und nach 
einem längeren Downloads des WebPacks wollte ich loslegen.

Schnell ein Projekt angelegt und siehe da, was nimmt man nun, Verilog 
oder VHDL? Wenn ich die Informationen hier auf dieser Seite richtig 
verstanden habe, ist VHDL aus Verilog entstanden. Dann ist VHDL die 
neuere Geschichte? Ist das ganze abwärtskompatibel? Ähneln sich die 
Sprachen? Was kann man mit dem einen, was man mit dem anderen nicht 
kann? Ich habe im Netz einen Vergleich gefunden, werde aber nicht 
wirklich schlau daraus. Bis jetzt habe ich mir noch nicht mit CPLDs bzw. 
FPGAs beschäftigt, habe aber beides hier als Evalboards herumliegen und 
wollte das nun auch einmal nutzen.

Die Frage ist, was sollte ich nun verwenden und weshalb?

Ich würde mich durchaus als in der Lage sehen, das, was ich umsetzen 
möchte, auch komplett mit CMOS bzw. TTL-Bausteinen aufzubauen (mit genug 
Zeit wohl auch eine komplette CPU, wenn denn genug Platz und Geld da 
wäre); ich möchte also kein 'Basic' für CPLDs/FPGA, sondern schon eher C 
oder Assembler. Der Vergleich hinkt aber wahrscheinlich.

Noch eine paar andere dummen Fragen (zu meiner Schande muss ich 
gestehen, dass diese mir nun gerade spontan eingefallen sind und ich 
dafür nicht die Suchfunktion bemüht habe, aber mglw. sind die Fragen in 
einem Satz beantwortet):
- Haben CPLDs/FPGAs auch interne Taktquellen oder wird dafür 
ausschließlich ein externer Takt verwendet?
- Werden die (nennen wir es einmal) Programme per JTAG permanent im 
Baustein gespeichert oder müssen diese nach jedem Reset erneut geladen 
werden? Falls diese extern geladen werden müssen, wie würde das in einer 
fertigen Schaltung realisiert (also z.B. mit externem Flash -- dafür 
müsste ich dann wohl bestimmte Pins vorsehen oder müsste man das mit 
einer Art festem JTAG machen? --- Dafür gibt es aber bestimmt AppNotes). 
Falls permament gespeichert: Ich habe jetzt auf Anhieb keine Chips 
gefunden, bei denen zwischen OTP und mehrfachem Beschreiben 
unterschieden wird. Vermutlich können die dann prinzipbedingt alle 
entweder einfach oder mehrfach (vermutlich mehrfach) beschrieben werden.
- Auf den ersten Blick sieht es so aus, als wenn diese Bausteine häufig 
mit sehr geringen Spannungen arbeiten. Vermutlich gibt es dann auch 
einen ganzen Haufen bidirektionaler Pegelwandler für diese Pegel (z.B. 
auf TTL bzw. LVTTL) und Geschwindigkeiten. Wer stellt so etwas her (also 
auch mit durchaus vielen Ports) bzw. was hat sich da etabliert?

Ich hoffe, Euch mit diesen letzteren Fragen nicht zu belästigen, da ich 
mir denken kann, dass diese schon etliche Male gestellt wurden.

von Falk (Gast)


Lesenswert?

@  Florian Demski (code-wiz)

>Schnell ein Projekt angelegt und siehe da, was nimmt man nun, Verilog
>oder VHDL? Wenn ich die Informationen hier auf dieser Seite richtig

Das was man kann.

>verstanden habe, ist VHDL aus Verilog entstanden. Dann ist VHDL die

Mehr oder weniger.

>neuere Geschichte?

Jain. Geht zurück bis 1983 und davor.

> Ist das ganze abwärtskompatibel?

Nein.

> Ähneln sich die Sprachen?

Ja.

> Was kann man mit dem einen, was man mit dem anderen nicht
>kann?

Einiges. VHDL bietet AFAIK mehr Möglichkeiten um regelmässige 
Hardwarestrukturen zu beschreiben.

> Ich habe im Netz einen Vergleich gefunden, werde aber nicht
>wirklich schlau daraus. Bis jetzt habe ich mir noch nicht mit CPLDs bzw.
>FPGAs beschäftigt, habe aber beides hier als Evalboards herumliegen und
>wollte das nun auch einmal nutzen.

In Europa ist VHDL weit verbreitet, in Nordamerika Verilog.

>Die Frage ist, was sollte ich nun verwenden und weshalb?

Ich würde VHDL empfehlen.

>Ich würde mich durchaus als in der Lage sehen, das, was ich umsetzen
>möchte, auch komplett mit CMOS bzw. TTL-Bausteinen aufzubauen (mit genug
>Zeit wohl auch eine komplette CPU, wenn denn genug Platz und Geld da
>wäre); ich möchte also kein 'Basic' für CPLDs/FPGA, sondern schon eher C
>oder Assembler. Der Vergleich hinkt aber wahrscheinlich.

Sowohl Verilog als auch VHDL kann man auf "Assemblerebene" als auch 
"C-Ebene" benutzen.

>- Haben CPLDs/FPGAs auch interne Taktquellen oder wird dafür
>ausschließlich ein externer Takt verwendet?

Nur exteren Taktquellen. Irgendwelche wilden Ringoszillatoren sollte man 
nicht bauen.

>- Werden die (nennen wir es einmal) Programme per JTAG permanent im
>Baustein gespeichert oder müssen diese nach jedem Reset erneut geladen
>werden?

CPLDs sind nonvolatile, die Programmierung bleibt nach einem Power-Down 
erhalten. Die meisten FPGAs sind volatile, weil auf SRAM basierend. Dort 
muss nach jedem Power-up die Konfigutration neu geladen werden. Entweder 
über einen angeschlossenen Konfigurationsspeicher oder per PC und JTAG 
Adapter.

>Falls permament gespeichert: Ich habe jetzt auf Anhieb keine Chips
>gefunden, bei denen zwischen OTP und mehrfachem Beschreiben
>unterschieden wird. Vermutlich können die dann prinzipbedingt alle
>entweder einfach oder mehrfach (vermutlich mehrfach) beschrieben werden.

OTPs gibt es bei CPLDs nicht (mehr?). Alles FLASH/EEPROM basierend.

>- Auf den ersten Blick sieht es so aus, als wenn diese Bausteine häufig
>mit sehr geringen Spannungen arbeiten. Vermutlich gibt es dann auch

Im Kern ja, bis runter auf 1.2V. Die IOs arbeiten mit 1.5 ... 3.3V.
Die neueren Baustein vertragen KEINE 5V mehr an den IOs, dort müssen 
dann Pegelwandler her. Etwas "ältere" FPGAs sind dort von Vorteil, z.B. 
Spartan-II von Xilinx.

>Ich hoffe, Euch mit diesen letzteren Fragen nicht zu belästigen, da ich

Solche Fragen sind der Sinn dieses Forums. Da muss man sich nicht 
entschuldigen.

MfG
Falk

von Florian D. (code-wiz)


Lesenswert?

> Einiges. VHDL bietet AFAIK mehr Möglichkeiten um regelmässige
> Hardwarestrukturen zu beschreiben.

Die Wiederverwendbarkeit von Code ist natürlich ein wichtiger Faktor. 
Inwiefern existieren denn dort gravierende Unterschiede? Wie gesagt, mit 
der Syntax und der Grammatik habe ich mich bis jetzt noch nicht 
auseinandergesetzt. Vermutlich wird es doch aber in beiden Sprachen so 
sein, dass man das Rad nicht mehrmals erfinden muss und z.B. den tollen 
Interface-Block, den man entwickelt hat, auch in anderen Projekten 
verwenden kann.

> In Europa ist VHDL weit verbreitet, in Nordamerika Verilog.
> Ich würde VHDL empfehlen.

Das ist also eine Glaubenssache. Mit dem Ergebnis hat das vermutlich 
nichts zu tun, also das 'kompilierte Programm' aus VHDL oder Verilog 
wird wohl eher nicht besser oder schlechter sein, da man ja so oder so 
das Laufzeitverhalten selbt beeinflusst (stelle ich mir zumindest vor).


> CPLDs sind nonvolatile, die Programmierung bleibt nach einem Power-Down
> erhalten. Die meisten FPGAs sind volatile, weil auf SRAM basierend. Dort
> muss nach jedem Power-up die Konfigutration neu geladen werden. Entweder
> über einen angeschlossenen Konfigurationsspeicher oder per PC und JTAG
> Adapter.

Den für das benutzen des externen Konfigurationsspeichers notwendigen 
Code und das notwendige Interface werden die FPGAs ja dann schon 
eingeimpft haben. Werden Die Daten aus dem externen Speicher einmalig 
eingelesen (beim Start) oder permanent während der Ausführung? Falls das 
beim Start passiert, wie lange dauert das dann, bis der FPGA nach dem 
Reset konfiguriert ist und werden bis dahin nicht ggf. schon 
irgendwelche Zustände an den Pins anliegen? Falls das permanent 
passiert, hat dann nicht auch die Geschwindigkeit des Speichers einen 
Einfluss auf das Laufzeitverhalten des FPGAs? Wenn ich jetzt irgendeinen 
Flashbaustein dafür nehme, frage ich mich, ob ich dann tatsächlich noch 
mit 100 MHz oder mehr an meinem FPGA arbeiten kann. Ich sehe gerade, 
dass Xilinx spezielle Speicher dafür anbietet, die allerdings eine 
Geschwindigkeit von 'nur' 33 MHz aufweisen.

So nochmal parallel das Datenblatt überflogen. Das scheinen wohl 
serielle EPROMS zu sein, die beim Start einmalig eingelesen werden. Da 
steht für X3CS1000 eine Dateigröße von 3,233,488 Bytes und bei den 
Timings stand, dass sogar nur 20 MHz verwendet werden. Überschlägig sind 
das also 3233488 * 8 / 20E6 Hz ~ 1,3s. Der Wert erscheint mir ein wenig 
hoch.

Also habe ich die Frage zumindest zum Teil schon beantwortet.

> Im Kern ja, bis runter auf 1.2V. Die IOs arbeiten mit 1.5 ... 3.3V.
> Die neueren Baustein vertragen KEINE 5V mehr an den IOs, dort müssen
> dann Pegelwandler her. Etwas "ältere" FPGAs sind dort von Vorteil, z.B.
> Spartan-II von Xilinx.

Was wären denn die gängigen Pegelwandler, die - sagen wir mal - 32 
bidirektionale Ports zur Verfügung stellen und mit den Frequenzen auch 
klarkommen? Klar, zum Basteln kann man sich auch mit Spannungsteilern 
oder FETs behelfen, aber das ist bei etlichen Ports schon aufwändiger, 
v.a. wenn man bidirektional arbeiten möchte.

> Solche Fragen sind der Sinn dieses Forums. Da muss man sich nicht
> entschuldigen.

Ich sehe das in den anderen Foren hier häufiger, wie schnell bei der x. 
Frage zum Thema Widerstandberechnung für LEDs oder Tastenabfragung mit 
einem AVR gerne mit einer leichten Überheblichkeit immer wieder an die 
Suchfunktion verwiesen wird. Da für das Thema CPLD/FPGA meine Fragen 
sicherlich mit solchen 'Anfängerfragen' beim Thema Mikrocontroller bzw. 
Elektronik zu vergleichen sind, wollte ich eigentlich nur einen 'Rüffel' 
diesbezüglich vermeiden.

von Falk (Gast)


Lesenswert?

@ Florian Demski (code-wiz)

>Die Wiederverwendbarkeit von Code ist natürlich ein wichtiger Faktor.

Der ist mit beiden Sprachen gegeben. Ich meinte was anderes.

>Inwiefern existieren denn dort gravierende Unterschiede? Wie gesagt, mit

AFAIK keine.

>> In Europa ist VHDL weit verbreitet, in Nordamerika Verilog.
>> Ich würde VHDL empfehlen.

>Das ist also eine Glaubenssache.

Ja.

> Mit dem Ergebnis hat das vermutlich nichts zu tun, also das 'kompilierte
>Programm' aus VHDL oder Verilog wird wohl eher nicht besser oder
>schlechter sein, da man ja so oder so das Laufzeitverhalten selbt
>beeinflusst (stelle ich mir zumindest vor).

Ja.

>Den für das benutzen des externen Konfigurationsspeichers notwendigen
>ode und das notwendige Interface werden die FPGAs ja dann schon
>eingeimpft haben. Werden Die Daten aus dem externen Speicher einmalig

Ja, da braucht man gar nix machen, nur einfach anschliessen, fertig.

>eingelesen (beim Start) oder permanent während der Ausführung? Falls das

Einmal beim Start.

>beim Start passiert, wie lange dauert das dann, bis der FPGA nach dem
>Reset konfiguriert ist und werden bis dahin nicht ggf. schon
>irgendwelche Zustände an den Pins anliegen? Falls das permanent

Je nach Typ und Anbindung (1 Bit seriell oder 8 Bit parallel) zwischn 
1...100ms. Hmmm mal rechnen. Ein kleiner FPGA hat sagen wir mal 300.000 
Bit Konfigurationsdaten. Bei 10 MHz und seriellem Anschluss dauert das 
dann ~30ms.

p>assiert, hat dann nicht auch die Geschwindigkeit des Speichers einen
>Einfluss auf das Laufzeitverhalten des FPGAs? Wenn ich jetzt irgendeinen

Nein!

>Flashbaustein dafür nehme, frage ich mich, ob ich dann tatsächlich noch
>mit 100 MHz oder mehr an meinem FPGA arbeiten kann. Ich sehe gerade,
>dass Xilinx spezielle Speicher dafür anbietet, die allerdings eine
>Geschwindigkeit von 'nur' 33 MHz aufweisen.

Nicht alles in einen Topf werfen! Die geschwindigkeit des 
Konfigurationsspeicher hat mit der Geschwindigkeit des FPGA-Designs 
NICHTS zu tun. Du kannst das FPGa auch mit 100Hz konfigurieren und dann 
einen 200 MHz Zähler laufen lassen.

>So nochmal parallel das Datenblatt überflogen. Das scheinen wohl
>serielle EPROMS zu sein, die beim Start einmalig eingelesen werden. Da

Ja.

>steht für X3CS1000 eine Dateigröße von 3,233,488 Bytes und bei den

Das sind sicher BIT, nicht BYTE!

>Timings stand, dass sogar nur 20 MHz verwendet werden. Überschlägig sind
>das also 3233488 * 8 / 20E6 Hz ~ 1,3s. Der Wert erscheint mir ein wenig
>hoch.

Richtig, die Zeit ist um den Faktor 8 geringer, gerade mal ~160ms.

>Was wären denn die gängigen Pegelwandler, die - sagen wir mal - 32
>bidirektionale Ports zur Verfügung stellen und mit den Frequenzen auch
>klarkommen? Klar, zum Basteln kann man sich auch mit Spannungsteilern

Hab ich im Moment nicht auf Lager.

Pegelwandler

>Ich sehe das in den anderen Foren hier häufiger, wie schnell bei der x.
>Frage zum Thema Widerstandberechnung für LEDs oder Tastenabfragung mit
>einem AVR gerne mit einer leichten Überheblichkeit immer wieder an die
>Suchfunktion verwiesen wird. Da für das Thema CPLD/FPGA meine Fragen

;-) Naja, irgendwann ist man auch mal genervt.

MFG
Falk

von Uwe Bonnes (Gast)


Lesenswert?

VHDL wird mit ADA verglichen, Verilog mit C...

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

VHDL ist furchtbar geschwätzig. Manchmal ist das gut, weil es Fehler 
verhindert, manchmal nervt es einfach nur. Man muss die Schnittstelle 
eines Untermoduls drei mal beschreiben, einmal im eigentlichen Modul, 
und dann wenn man es verwenden will einmal bei der Deklaration und 
nochmal bei der Instanziierung. Und natürlich ist die Syntax jedes Mal 
subtil anders, so dass Cut & Paste nicht so ohne weiteres funktioniert. 
Auch sonst ist die Syntax wenig konsistent ("end case" aber "end 
entityname"?). Alles in allem ist VHDL verglichen mit modernen 
Programmiersprachen nicht sehr ausdrucksstark, aber trotzdem sehr 
komplex. Aber was will man anderes erwarten, bei einer Sprache die nach 
Militär-Spezifikation entwickelt wurde.

Verilog habe ich nicht ausprobiert, werde trotz allem erst mal bei VHDL 
bleiben.

von T.M. (Gast)


Lesenswert?

Soweit ich weiss, kannst du auch einem Case-Konstrukt einen Namen 
verpassen, zB:
1
Name : case ...
2
...
3
end case Name;
Genauso funktioniert auch
1
entity Name is
2
...
3
end entity Name;

  

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Das mit dem Entity geht seit in VHDL 93. Das Case sieht komisch aus; 
Name wäre dann ein Label, kein eigentlicher Teil des Statements...

von Axel (Gast)


Lesenswert?

Ich würde als Anfänger Verlog nehmen. Habe selbst mit VHDL angefangen, 
da kann man aber viel besser als in Verilog riesige Strukturen in einer 
Zeile aufbauen, vor allem, wenn man aus der PC Programmierecke kommt.

Das Dumme ist, dass man dann alles simuliert und verifiziert hat und 
denn merkt, dass der Gatecount explodiert.

Bei Verilog muss man für solche Strukturen schon mal ein bischen mehr 
schreiben, da merkt man eher, was man anrichtet.

Das gilt auch für die ganzen Typenstrukturen etc. die man in VHDL machen 
kann, die dann aber doch auf ganz normale Einsen und Nullen umgesetzt 
werden müssen.

Ausserdem fand ich das ganze Aufsetzen bei VHDL (mit den Bibliotheken 
und was es alles gibt) als Anfänger ziemlich bescheiden. Ist zwar toll, 
wenn es an grosse Projekte geht, aber bis  man das erst am Laufen hat...

Gruss
Axel

von Falk (Gast)


Lesenswert?

@ Axel (Gast)

>Das Dumme ist, dass man dann alles simuliert und verifiziert hat und
>denn merkt, dass der Gatecount explodiert.

???

>Bei Verilog muss man für solche Strukturen schon mal ein bischen mehr
>schreiben, da merkt man eher, was man anrichtet.

Naja.

>Das gilt auch für die ganzen Typenstrukturen etc. die man in VHDL machen
>kann, die dann aber doch auf ganz normale Einsen und Nullen umgesetzt
>werden müssen.

KANN, man muss aber nicht. Schon gar nicht als Anfänger.

>Ausserdem fand ich das ganze Aufsetzen bei VHDL (mit den Bibliotheken
>und was es alles gibt) als Anfänger ziemlich bescheiden. Ist zwar toll,
>wenn es an grosse Projekte geht, aber bis  man das erst am Laufen hat...

Was gibt es denn da "aufzusetzen"? Die drei Zeilen für die Nutzung der 
Standardbibliotheken sind in den Templates schon drin. Das wars.

MFG
Falk

von Hagen R. (hagen)


Lesenswert?

Ich bevorzuge VHDL, da es für einen Hochprachen-Programierer am 
geeignetesten ist. Also die Fähigkeit eine Problemstellung strukturiert 
mit eigenen Datenstrukturen und modularisierten Programblöcken und das 
mit sprechenden Bezeichnern zu beschreiben. Wer also Sprachen wie 
PASCAL, ADA, COBOL kann wird meiner Meinung nach mit VHDL besser liegen. 
Und gerade die "Gesprächigkeit" einer Sprache ist heute eher ein Indiz 
für ihre Modernität. Unter Gesprächigkeit verstehe ich das man den 
Source eher wie ein Buch lesen kann, statt wie zb. in C,PHP,ASM oder 
Verilog üblich eine Kryptische Formel vor sich zu sehen.

Der Vergleich einer Hardware-Beschreibungssprache mit herkömmlichen 
Programmiersprachen hinkt zwar etwas, aber im 
Syntaktischen/Strukturellen Bereich kann man beides sehr wohl 
vergleichen.

Also ich bin ein "gelernter" PASCAL'ianer und bin mit der Syntax im VHDL 
sofort klargekommen. Verilog ist auch nicht so problemeatisch wenn man 
eh als Programmierer sich in Boolscher Algebra und formaler Syntax 
auskennt. Allerdings ist letzeres eben nicht mehr der Standard. Viele 
Neulinge in der Programmierung haben gerade damit ihre Schwäche.

Gefühlsmäßig würde ich mal behaupten das Verilog durch seine Syntax eher 
zu unstrukturierter Programmierung verleitet, sprich so ähnlich wie 
BASIC Spaghetticode. VHDL dagegen "zwingt" einen eher zu strukturierter 
Programmierung, besonders eben auch weil deren Standardbibliotheken es 
einem vormachen.

Ich stimme aber auch der Aussage zu das VHDL in vielen Belangen der 
Syntax inkonsistent ist. Zb. verschiedene Zuweisungsoperatoren jenachdem 
ob man eine CASE, ein Signal oder eine Variable anspricht. Das kannte 
ich in der Form von keiner anderen Sprache.

Gruß Hagen

von Axel (Gast)


Lesenswert?

"Verilog ist auch nicht so problemeatisch wenn man eh als Programmierer 
sich in Boolscher Algebra und formaler Syntax auskennt. Allerdings ist 
letzeres eben nicht mehr der Standard.  Viele Neulinge in der 
Programmierung haben gerade damit ihre Schwäche."

Ja, und das ist genau das Problem. Denn VHDL umgeht das tatsächlich sehr 
gut, was dazu führt, dass die Leute im Prinzip PC Programme in VHDL 
schreiben.

Nur, daß bei einem PC Programm ein paar Integeradditionen in einer 
Schleife nichts kosten, während das in VHDL schnell mal ein paar tausend 
Gatter extra sind. Die sind mit ein bischen Nachdenken in boolscher 
Algebra oft nicht nötig und die Compiler könnnen das auch nicht 
hinoptimieren, weil sie die Idee  dahinter nicht verstehen. Das gilt im 
Prinzip natürlich auch für Verilog, nur, wie Du schon richtig schriebst, 
führt Verilog eher dazu, mal in diese Richtung zu denken, während VHDL 
da mit seinem mächtigen Sprachumfang eher zur Faulheit erzieht.

Ich have lange Zeit Diplomanten betreut, die mit VHDL/Verilog ihre 
ersten "produktiven" Erfahrungen gemacht haben. Die haben sich zwar in 
VHDL schneller eingearbeitet, aber sinnvolle Resultate (im Sinne von 
tatsächlich in Hardware umsetzbar) gab es schneller in Verilog.

Und im Gegensatz zum PC, wo man zur Not auch mal swappen kann, muss ein 
grösserer FPGA/ASIC meist teuer bezahlt werden.

Gruss
Axel

von Hagen R. (hagen)


Lesenswert?

Naja, der Unterschied zwischen einer HW-Beschreibungssprache und einer 
generell auf sequientielle Algorithmen bezogenene Programmiersprache 
sollte schon klar sein.

Wenn man sich als erfahrener Programmierer das immer vor Augen hält, 
dann meine ich ist man in VHDL schneller am Ziel. Ok, es hängt auch 
entscheidend von der Vorbildung des Programieres ab. Bei mir warens halt 
schon 15 Jahre an Erfahrung auf PC und den bekannten Spielkonsolen der 
80'er + PASCAL + COBOL in der Lehre. Syntaktisch ähneln die sich ja eher 
VHDL als verilog.

Ich habe bemerkt das man in VHDL oder Verilog für das Lösen eines 
Problemes meistens viel mehr an Sourcen schreiben muß, als zb. in C auf 
einem PC. Das führt nun auch dazu das die Quellen immer umfangreicher 
werden und somit die Wartungskosten steigen. Um das zu reduzieren muß 
man strukturierten und lesbaren Source schreiben. Und da meine ich ist 
VHDL besser als Verilog.

Damals als ich vor der Entscheidung stand suchte ich mir im Netz all die 
Projekte raus die ich interessant fand, egal ob in VHDL oder Verilog. Da 
das meistens auch sehr umfangreiche Projekte waren, zb. 8Bit AVR auf 
FPGA usw. fand ich mehr interessante VHDL Sources (die auch liefen) als 
Verilog Beispiele. Naja, also musste ich VHDL lernen statt Verilog, 
ziemlich einfach die Entscheidung. Ein weiterer Punkt war das ich zwar 
gut englisch kann aber  denoch als Lernunterlagen eine deutschsprachige 
Referenz bevorzuge. Nun für VHDL gibts super Lernmaterial als PDFs in 
deutsch, für Verilog sucht man da schon länger (ich habe noch nichts 
vergleichbares gefunden)

Gruß Hagen

PS: und bleibt noch der rein subjektive aspekt das Verilog gerne von den 
Amis und VHDL von den Europäern benutzt wird. Nur ein kleiner 
unwichtiger Punkt aber eventuell ein wichtiger für eine Person die sich 
daraus was macht und Europäer ist ;)

von Ephi (Gast)


Lesenswert?

wär schön, wenn du mal ein paar links zu solchen chdl lernunterlagen 
posten könntest, ich bin nämlich noch ganz am anfang von VHDL, und hab 
immernochnicht DAS für mich geeignete tut/handbuch gefunden

von Hagen R. (hagen)


Angehängte Dateien:

Lesenswert?

Glück gehabt ;) hier die Unterlagen mit denen ich angefangen habe.

Gruß hagen

von Ephi (Gast)


Lesenswert?

vielen dank!

hab jetzt die einführung durch, und bin schon in der lage einfache 
module zu schreiben, das ding gefällt mir ;)

andere tuts hab ich schon durch und weis immernochnicht was die mir da 
erzählen wollten

von Hagen R. (hagen)


Lesenswert?

Ging mir teilweise auch so. Eine gute grundsätzliche Beschreibung hat 
ihren Wert.

Gruß Hage

von DNS (Gast)


Lesenswert?

Hallo zusammen, der Thread hier ist schon etwas älter, wie sieht es mehr 
als 10 Jahre später aus?
Ist VHDL in Europa immer noch mehr verbreitet oder hat sich hier Verilog 
durchgesetzt?
Würde gerne mit einer der Sprachen einsteigen welche würdet ihr mir 
empfehlen?
Generelle kann man ja mit deinen alles machen.
Würde gerne mit einem Altera MAX10 einsteigen.

von Fpgakuechle K. (fpgakuechle) Benutzerseite


Lesenswert?

DNS schrieb:
> Hallo zusammen, der Thread hier ist schon etwas älter, wie sieht es mehr
> als 10 Jahre später aus?
Unverändert
> Ist VHDL in Europa immer noch mehr verbreitet oder hat sich hier Verilog
> durchgesetzt?
Ja
> Würde gerne mit einer der Sprachen einsteigen welche würdet ihr mir
> empfehlen?
Zum Einstieg lern Digitale Schaltungstechnik, dann modellier das in 
Verilog.
Anschliessend überlegst du dir ne gescheite Testbench, die schreibste in 
VHDL.
> Generelle kann man ja mit deinen alles machen.
Das ist generell falsch.

: Bearbeitet durch User
von Vancouver (Gast)


Lesenswert?

DNS schrieb:
> Ist VHDL in Europa immer noch mehr verbreitet oder hat sich hier Verilog
> durchgesetzt?

Im FPGA-Bereich (zumindest für kleine und mittelgroße Designs) wird 
vorwiegend VHDL verwendet, im ASIC-Design SystemVerilog wegen der 
ausgeprägten Verifikationsmethoden (Obejektorientert, UVM usw). Verilog 
(ohne System-) ist ziemlich weg vom Fenster, oder zumindest auf dem 
absteigenden Ast. Im Vergleich Verilog<>VHDL hat VHDL klar die Nase 
vorne seit einigen Jahren (bei Systemverilog sieht es wieder etwas 
anders aus, obwohl VHDL hier auch aufholt).

Für den FPGA-Einstieg würde ich dir VHDL empfehlen, da gibt es eine 
größere Community als für SV. Wenn du mal das Prinzip einer HDL 
verstanden hast (und keine VHDL-Programme mehr schreibst sondern 
VHDL-Designs), dann kannst du relativ leicht auf eine der 
Verilog-Sprachen umsteigen.

von No Y. (noy)


Lesenswert?

Verilog weg vom Fenster??

Ggf. in Europa... nicht im Rest der Welt... Wäre mal meine Behauptung.

Zumal VHDL deutlich schlechter zu erlernen ist als Verilog (ist mir viel 
zu viel BLABLABLA um etwas einfaches abzubilden..).. Finde ich 
perönlich.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

No Y. schrieb:
> Wäre mal meine Behauptung.
> Finde ich perönlich.
Kann man so sehen.

> Zumal VHDL deutlich schlechter zu erlernen ist als Verilog (ist mir viel
> zu viel BLABLABLA um etwas einfaches abzubilden..)
http://www.lothar-miller.de/s9y/archives/88-VHDL-vs.-Verilog-am-Beispiel-einer-Stoppuhr.html


DNS schrieb:
> Ist VHDL in Europa immer noch mehr verbreitet oder hat sich hier Verilog
> durchgesetzt?
Die Antwort auf diese Frage ist uninteressant.
Wenn du Verilog machen willst, dann mach Verilog.

Mach Verilog aber NICHT deshalb, weil es so sehr nach dem dir bekannten 
C aussieht. Diese Ähnlichkeit ist überaus trügerisch. Denn auch mit 
Verilog wirst du NICHT programmieren können.

> Würde gerne mit einem Altera MAX10 einsteigen.
Tu das.

: Bearbeitet durch Moderator
Beitrag #6737234 wurde von einem Moderator gelöscht.
von Fitzebutze (Gast)


Lesenswert?

Noch eine Anmerkung zu dem eigentlichen Groundhog-Day-Thema:
In Verilog kann man sich wunderbar (und immer wieder gesehen) mit 
impliziter Bit-Arithmetik ins Knie schiessen, der Klassiker ist sowas 
(wenn man das casting per $signed vergisst):
1
reg        [3:0] x;
2
reg signed [4:0] y;
3
reg signed [5:0] q;
4
..
5
6
q <= x + y

VHDL ist diesbezüglich strenger und viel mächtiger, allerdings verliert 
sich dieser Vorteil schnell wieder in viel Aerger, wenn die 
Synthesetools das nicht sauber unterstützen.

Leider gibt es auch immer noch einige Hersteller (wie Lattice 
Semiconductor), die ihre Simulationsmodelle teils nicht in VHDL 
ausliefern (in der Annahme, dass man einen Mixed-Language-Simulator 
verwendet).

Wie man's dreht und wendet, Verilog sowohl als VHDL sollte man lesen 
können.
Für komplexere Designs wird es mit beiden mühsam, aber mit VHDL lässt 
sich mehr Ordnung halten, siehe dazu auch die "structured VHDL" Methode 
nach Gaisler.

von Christoph Z. (christophz)


Lesenswert?

No Y. schrieb:
> Verilog weg vom Fenster??

Vancouver schrieb:
> Verilog (ohne System-) ist ziemlich weg vom Fenster,

Halt genau so, wie es Vancouver geschrieben hat. Klassisches Verilog ist 
auf dem absteigenden Ast. SystemVerilog ist das, was man heute lernen 
und nutzen sollte.

Es gibt aber viele Leute, die beides in den gleichen Topf werfen. Sollte 
man aus meiner Sicht nicht machen, weil ich schon gerne wüsste, das ein 
Code SystemVerilog ist und ich entsprechend auch ein SystemVerilog 
fähiges Tool brauche.
Es ist schon fast so, als würde man C und C++ in einen Topf werfen.

Es ist auch guter Stil, wenn man im Header von VHDL Dateien schreibt, ob 
es VHDL 93 oder 2008 ist.

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Christoph Z. schrieb:
> SystemVerilog ist das, was man heute lernen und nutzen sollte.

Ja. Es gibt vom Lernaspekt überhaupt keinen Grund, sich auf die 
Untermenge von Verilog zu beschränken, denn:

> Es ist schon fast so, als würde man C und C++ in einen Topf werfen.

Der nicht zu vernachlässigende Unterschied ist, dass mit dem Standard 
IEEE 1800-2009 ein gemeinsamer Sprachstandard für Verilog und 
SystemVerilog geschaffen wurde. Letzteres ist also vor zwölf Jahren zum 
offiziellen Nachfolger von Verilog (IEEE 1364) gekürt worden.

Mit den Design-Features von SystemVerilog hat man für den 
Schaltungsentwurf alle Möglichkeiten die auch VHDL bietet (eher mehr, 
dafür weniger verschwurbelt), und darüber hinaus noch eine brauchbare 
Verifikationssprache mit OOP Fähigkeiten.

von Blechbieger (Gast)


Lesenswert?

Fitzebutze schrieb:
> Leider gibt es auch immer noch einige Hersteller (wie Lattice
> Semiconductor), die ihre Simulationsmodelle teils nicht in VHDL
> ausliefern (in der Annahme, dass man einen Mixed-Language-Simulator
> verwendet).

Immer mehr statt immer noch. Intel liefert neue Cores nur noch in 
Verilog und auch das Interconnect das deren Platform Designer generiert 
braucht Verilog. Und bei manchen Cores ist bei Upgrades auch schon VHDL 
weggefallen.

von No Y. (noy)


Lesenswert?

Interessant... Passt dann aber nicht gerade zu "Verilog ist weg vom 
Fenster"..

Aber mal abgesehen davon. Gibts ne Buchempfehlung für SystemVerilog am 
liebsten mit praktischen Beispielen mit Intel/Altera?

Hab hier diverse Altera Boards (sogar noch aktuelle Cyclones drauf) 
liegen aber habe lange nichts mehr damit gemacht. In der TH hatten wir 
VHDL fand das aber so schlimm das ich auf jedenfall mir Verilog aneignen 
wollte. Aber habe momentan keine Berührungspunkte mehr mit FPGA im Beruf 
daher Hobby und da ist die  Zeit knapp...

Wollte mir das Chu Buch für Verilog besorgen weil ich bisher nichts 
besseres gefunden hatte (Chu VHDL gabs in der TH). Aber wenn ja jetzt 
Systemverilog angesagt ist.. Halt direkt damit Anfangen?

Ah gerade gesehen Chu gibts auch mit Systemverilog und leider 
Xilinx..hmmm geht bestimmt auch mit Altera...?

von Blechbieger (Gast)


Lesenswert?

No Y. schrieb:
> Interessant... Passt dann aber nicht gerade zu "Verilog ist weg vom
> Fenster"..

Ich muss mich korrigieren, es ist ein Mix aus Verilog und SystemVerilog. 
Intel fasst das aber bei der Generierung unter Verilog zusammen.

No Y. schrieb:
> Ah gerade gesehen Chu gibts auch mit Systemverilog und leider
> Xilinx..hmmm geht bestimmt auch mit Altera...?

SystemVerilog in den Varianten 2005, 2009 und 2012.

von Fpgakuechle K. (fpgakuechle) Benutzerseite


Lesenswert?

Unabhängig von der gewählten Sprache zeichnen sich guten Quelltexte 
durch die selben Eigenschaften aus:

-sinnvolle und klare Strukturierung: bei FPGA beispielsweise: 
Eingangsbuffer und vorverarbeitung(i.e. edge detect) steuerpath (FSM) 
ausgangstufe (bufferung)

-beschreibende Signalnamen

-konsequentes Durchhalten minimaler Styleguide, Formatierung

-erläuternde Kommentare zu interface und Funktionen

-Revisionsinfo (Author, letzte Änderung, toolchain projekt) im Header

-passendes Konzept (typen, verwendete Grundfunktion/Logicelemente)

Daher gibt es Autoren, die die Sourcedatei erst mit Kommentarzeilen (als 
eine Art Implementierungsspec.) befüllen um anschließend die Kommentare 
in VHDL,Verilog oder what ever zu vollenden.

Insofern ist die Frage ob VHDL oder Verilog zweckfrei, ein 'Unkundiger' 
wird in allen Sprachen scheitern.

: Bearbeitet durch User
von Dussel (Gast)


Lesenswert?

Wenn man es als Hobby macht, denke ich, ist die Sprache egal. Wenn man 
es beruflich macht, kommt es auf die Region an. Ich habe 'schon' bei 
drei Arbeitgebern mit FPGAs entwickelt und bei allen wurde nur VHDl 
benutzt. Da war mit Verilog gar nichts.
Wenn man ziemlich sicher weiß, dass man in Zukunft zum Beispiel in den 
USA arbeiten wird, hat entsprechend eher Verilog Vorteile.

Am Anfang mochte ich VHDL wegen der Syntax auch nicht, aber man gewöhnt 
sich daran. Inzwischen stört es mich nicht mehr. Da finde ich eher die 
Verilogsyntax kryptisch und unübersichtlich. Früher war es genau 
umgekehrt.

Meiner Meinung nach sollte man nicht wegen Vorlieben bei der Syntax eine 
Sprache auswählen, denn die spielt nach etwas Eingewöhnungszeit keine 
Rolle mehr.

Was ich mal gehört habe ist, dass Verilog tendenziell eher in Richtung 
Hochsprache geht, während VHDL tendenziell näher an der Hardware dran 
ist. Aber wenn das überhaupt stimmt, ist das nur marginal.

von Dussel (Gast)


Lesenswert?

Dussel schrieb:
> Was ich mal gehört habe ist, dass Verilog tendenziell eher in Richtung
> Hochsprache geht, während VHDL tendenziell näher an der Hardware dran
> ist.
Umgekehrt laut dieser Quelle: 
https://www.fpga4student.com/2017/08/verilog-vs-vhdl-explain-by-example.html

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

No Y. schrieb:
> Chu VHDL gabs in der TH
Das war mit das schlechteste VHDL Buch, das je den Weg in meine Finger 
gefunden hat. Wenn das für Verilog gleich gut ist, dann viel Spaß damit.

Dussel schrieb:
> Da finde ich eher die Verilogsyntax kryptisch und unübersichtlich.
Mir läuft in Verilog zu viel implizit ab. Man "muss einfach wissen", 
dass das "hinten rum" irgendwo so definiert ist.

von No Y. (noy)


Lesenswert?

Was wäre denn ein gutes Verilog / Systemverilog Buch? Wie gesagt mit 
Altera Bezug wäre nett aber kein muss. Hab halt dazu ein paar Boards 
hier.

Gerne mit Praxis Orientierten Beispielen: UART, ggf. Filter , mal einen 
Nios um SPI erweitern oder so..

: Bearbeitet durch User
von Fpgakuechle K. (fpgakuechle) Benutzerseite


Lesenswert?

No Y. schrieb:
> Was wäre denn ein gutes Verilog / Systemverilog Buch? Wie gesagt mit
> Altera Bezug wäre nett aber kein muss. Hab halt dazu ein paar Boards
> hier.


Nimm ein Tutorial bspw.:
https://www.intel.com/content/dam/altera-www/global/en_US/uploads/5/5e/BeMicroM10_Embedded_System_Lab.pdf

Falls Du dich wunderst das da sowenig Code-beispiele sind - ja das ist 
bei FPGA Nebensache. Primär muss man verstehen was digitale 
Schaltungstechnik ist, wie es im jeweiligen FPGA 'innen' aussoeht und 
wie die jeweilige toolchain funktioniert.

von Markus K. (markus-)


Lesenswert?

Vielleicht kann google Trends noch dazu beitragen, die Frage nach der 
Verbreitung zu klären. Da kann man sehen, wie oft die Sprachen so im 
Vergleich gesucht wurden. Natürlich ist das nur ein Indiz, denn es 
könnte ja sein, dass eine Sprache mehr Probleme macht als die andere 
oder dass mehr Anfänger mit einer bestimmten Sprache arbeiten.

Deutschland:
https://trends.google.de/trends/explore?date=today%205-y&geo=DE&q=vhdl,verilog,systemverilog

USA:
https://trends.google.de/trends/explore?date=today%205-y&geo=US&q=vhdl,verilog,systemverilog

Weltweit:
https://trends.google.de/trends/explore?date=today%205-y&q=vhdl,verilog,systemverilog

von Fpgakuechle K. (fpgakuechle) Benutzerseite


Lesenswert?

Markus K. schrieb:
> Vielleicht kann google Trends noch dazu beitragen, die Frage nach der
> Verbreitung zu klären.

Naja, dann kann man auch bei TIOBE nachschlagen (VHDL #42, Verilog 
irgendwo zwischen 50 und 101): https://www.tiobe.com/tiobe-index/

Oder bem IEEE-Spectrum, bei Embedded: Verilog #8, VHDL #9
https://spectrum.ieee.org/ns/IEEE_TPL_2020/index/2020/0/0/0/1/1/50/1/50/1/50/1/30/1/30/1/20/1/20/1/5/1/50/1/100/1/50/

von Markus K. (markus-)


Lesenswert?

Fpgakuechle K. schrieb:
> Markus K. schrieb:
>> Vielleicht kann google Trends noch dazu beitragen, die Frage nach der
>> Verbreitung zu klären.
>
> Naja, dann kann man auch bei TIOBE nachschlagen (VHDL #42, Verilog
> irgendwo zwischen 50 und 101): https://www.tiobe.com/tiobe-index/

Interessant. An Tiobe habe ich gar nicht gedacht.

> Oder bem IEEE-Spectrum, bei Embedded: Verilog #8, VHDL #9
> 
https://spectrum.ieee.org/ns/IEEE_TPL_2020/index/2020/0/0/0/1/1/50/1/50/1/50/1/30/1/30/1/20/1/20/1/5/1/50/1/100/1/50/

Der Link funktioniert nicht.

von Fpgakuechle K. (fpgakuechle) Benutzerseite


Lesenswert?

Markus K. schrieb:

> 
https://spectrum.ieee.org/ns/IEEE_TPL_2020/index/2020/0/0/0/1/1/50/1/50/1/50/1/30/1/30/1/20/1/20/1/5/1/50/1/100/1/50/
>
> Der Link funktioniert nicht.

Sorry, versuch diesen:
https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2020

Der (nichtfunktionierende) Link entstand nach Auswahl von "Embedded" als 
einziges Suchkriterium rechts.

: Bearbeitet durch User
von Duke Scarring (Gast)


Lesenswert?

No Y. schrieb:
> Aber wenn ja jetzt
> Systemverilog angesagt ist.. Halt direkt damit Anfangen?
Wenn Du FPGA-Boards hast, must Du einfach schauen, was von der 
Synthesesoftware unterstützt wird.
Es nützt nix, wenn der Simulator die neusten Sprachfeatures unterstützt, 
aber die Synthesetools im 20. Jahrhundert stehen geblieben sind.
Egal ob Verilog, VHDL oder Systemverilog...

Duke

von No Y. (noy)


Lesenswert?

Ja muss ich mal schauen. Aber soweit ich weiß, bis auf 2 ganz "alte" 
Boards die von Quartus 13 nur noch unterstützt sind, sind die anderen 
alle vom aktuellsten Quartus unterstützt.

von Quartus Geplagter (Gast)


Lesenswert?

No Y. schrieb:
> sind die anderen
> alle vom aktuellsten Quartus unterstützt.

U.U musste auch aufs OS-achten. Wegen nen älteren Windows muss man auch 
für aktueller (nach CycII) Boards auf Quartus <= 18.0 setzen.
Die Zwanziger macht manchmal Scherereien weil Quartus Linux Support vom 
Windows erwartet, der nicht immer schmerzfrei tut. Grund ist der 
Rausschmiss von Cygwin und der betrifft hauptsächlich NIOS und Co.


https://www.terasic.com.tw/wiki/Getting_Start_Install_WSL

von No Y. (noy)


Lesenswert?

Ich laufe komplett unter Manjaro Linux (rolling release aktueller stable 
kernel..) und bisher eigentlich ganz geschmeidig. Aber halt shcon länger 
nicht mehr geupdated...

von M. H. (bambel2)


Lesenswert?

Verilog ist in der amerikanischen Welt deutlich verbreiteter. In Europa, 
aber auch allgemein an Unis, ist VHDL die verbreitetere Sprache.

Prinzipiell kannst du in beiden Sprachen digitale Designs in gleicher 
(guter oder schlechter) Qualität machen.
Wenn du in der ASIC-Ecke arbeitest, ist in der Regel alles sehr 
amerikanisiert und deshalb Verilog die gängigere Sprache. Auch das 
Tooling ist sehr häufig mehr an Verilog angelehnt. Auch bei FPGAs kann 
es mit VHDL, gerade mit den neueren Standards mal zu Problemen kommen. 
Häufig werden moderne VHDL Standards nicht oder nur unzureichend 
unterstützt.

Ich arbeite auch in der Halbleiterecke (in Deutschland). Wir schreiben 
jedoch fast ausschließlich in VHDL für RTL.

VHDL ist imho die schönere Sprache. VHDL ist deutlich "gesprächiger", 
was am Anfang beim Lernen etwas nerven kann. In Verilog passieren manche 
Dinge aber auch mal implizit und können, wenn man nicht aufpasst sehr 
schwer zu finden sein.

Verilog ist die Basis weiterer Sprachen, die auch weite Anwendung 
finden, und vereinfacht das Lernen von z.B: System-Verilog und Verilog-A 
(Hardwarebeschreibung analoger Schaltungen).
Digitaldesign wird bei uns, wie gesagt, nahezu ausschließlich in VHDL 
gemacht. Wir können aber alle Verilog lesen und verstehen. Das ist sehr 
wichtig, da viele Beispiele, oder IP cores, die außerhalb von Europa 
entwickelt wurden in der Regel in Verilog sind.
Analoge Abstraktionen für Simulationsmodelle, werden bei uns aber bspw. 
in Verilog-A modelliert. Da helfen Verilog Kentnisse weiter.

von Stefan F. (Gast)


Lesenswert?

Andreas S. schrieb:
> VHDL ist furchtbar geschwätzig. Manchmal ist das gut, weil es
> Fehler
> verhindert, manchmal nervt es einfach nur. Man muss die Schnittstelle
> eines Untermoduls drei mal beschreiben, einmal im eigentlichen Modul,
> und dann wenn man es verwenden will einmal bei der Deklaration und
> nochmal bei der Instanziierung. Und natürlich ist die Syntax jedes Mal
> subtil anders, so dass Cut & Paste nicht so ohne weiteres funktioniert.
> Auch sonst ist die Syntax wenig konsistent ("end case" aber "end
> entityname"?). Alles in allem ist VHDL verglichen mit modernen
> Programmiersprachen nicht sehr ausdrucksstark, aber trotzdem sehr
> komplex. Aber was will man anderes erwarten, bei einer Sprache die nach
> Militär-Spezifikation entwickelt wurde.
>
> Verilog habe ich nicht ausprobiert, werde trotz allem erst mal bei VHDL
> bleiben.

Nein das stimmt so einfach nicht mehr. Man muss nichts dreimal 
beschreiben.

von Christoph Z. (christophz)


Lesenswert?

Stefan F. schrieb:
> Nein das stimmt so einfach nicht mehr. Man muss nichts dreimal
> beschreiben.

Dein Workflow interessiert mich. Lerne gerne dazu.

Hier:
Ich schreibe die entity und dann nutze ich die Funktionen von Emacs um 
damit die instance und component deklarationen beschleunigt zu schreiben 
(die component steht in einem package).

von Markus F. (mfro)


Lesenswert?

Christoph Z. schrieb:
> Ich schreibe die entity und dann nutze ich die Funktionen von Emacs um
> damit die instance und component deklarationen beschleunigt zu schreiben
> (die component steht in einem package).

Seit VHDL93 gibt es "direct" oder "entity instantiation".

Components braucht man eigentlich nur noch, um etwas zu instanziieren, 
das (noch) nicht in VHDL beschrieben ist (also z.B. etwa eine 
Verilog-Komponente).

Also schreibst Du statt
1
entity xyz is
2
    ...
3
end entity xyz;
4
5
----
6
7
architecture rtl of abc is
8
    component xyz
9
        --- wiederholt (unnötigerweise) alles, was oben schon drin steht
10
    end component xyz;
11
begin
12
   i_xyz : xyz
13
      port map(...)
14
end architecture rtl;

eben
1
entity xyz is
2
    ...
3
end entity xyz;
4
5
----
6
7
architecture rtl of abc is
8
begin
9
    xyz : entity work.xyz
10
        port map(...);
11
end architecute rtl;

und bist die Component los. Das ist nicht nur einfacher (wenn Du die 
entity-Schnittstelle änderst, brauchst Du nur die Instanziierung zu 
ändern), sondern auch spezifischer (Du kannst sowohl die library als 
auch - wenn Du mehrere hast) die architecture bei der Instanziierung 
angeben, die Component-Instanziierung würde einfach die zuletzt 
compilierte anziehen.

Kurz: für deine Arbeitsweise (und den damit verbundenen Mehraufwand) 
gibt es seit 28 Jahren keinen vernünftigen Grund mehr.

von MaWIn (Gast)


Lesenswert?

Ich würde MyHDL nehmen.
Das ist wesentlich angenehmer zu schreiben und zu lesen als Verilog oder 
gar VHDL.

Aus MyHDL wird dann vor der Synthese wahlweise VHDL- oder Verilog-code 
generiert.

von Markus (Gast)


Lesenswert?


von Markus (Gast)


Lesenswert?

Neuling schrieb:
> Kann mir bitte jemand einen Link geben, wo die beiden Sprachen
> verglichen werden, oder in Kurzform zusammenfassen, was die Unterschiede
> sind

Kann mir bitte jemand einen Link geben, wo die beiden Sprachen
verglichen werden, oder in Kurzform zusammenfassen, was die Unterschiede
sind

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Markus schrieb:
> Kann mir bitte jemand einen Link geben, wo die beiden Sprachen
> verglichen werden, oder in Kurzform zusammenfassen, was die Unterschiede
> sind
Was sollte das bringen?
Beides sind Hardwarebeschreibungssprachen. Und mit jeder der beiden 
bekommst du dein Design zum Laufen, wenn du weißt, welche Hardware du 
brauchst. Und das ist letztlich der Knackpunkt. Da bringt es nichts, 
irgendwelche Syntaxfeinheiten aufzudröseln.

> oder in Kurzform zusammenfassen, was die Unterschiede
> sind
Ich glaube, Hardware ist nichts für dich, wenn du eine "Kurzform" 
brauchst. Im Besonderen angesichts der Tatsache, dass Datenblätter 
heutiger Prozessoren und FPGAs locker 1000 Seiten haben können.

> zusammenfassen, was die Unterschiede sind
Was genau hast du in diesem Thread hier nicht verstanden?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.