Hallo,
meine Frage steht eigentlich schon im Betreff. Ich wollte mir neben den
sonstigen Studieninhalten noch etwas Zusatzwissen erwerben. Ich habe
mich unter anderem für FPGA und VHDL entschieden, da dies in meinem
zukünftigen Berufsfeld häufig gebraucht wird, wie ich Stellenanzeigen
und Gesprächen mit branchenkundigen Leuten entnehmen konnte.
Zu erst will ich mir einen Überblick über das Thema verschaffen, damit
ich es in mein Arbeitspensum eingliedern kann.
Grüße Indium
Das kommt stark auf den Startwert an.
Detailierte Kenntnisse in digitaler Schaltungstechnik sind sehr von
Vorteil.
Umfangreiche Erfahrungen im klassischen Programmieren (C/C++ etc) wuerde
ich eher als hinderlich ansehen.
Ich wuerde zunaechst das "learning by doing" Verfahren anwenden und erst
mal ein paar einfache Beispiele nachvollziehen (z.B. bei fpga4fun.com).
Danach weisst du wenigstens worum es ueberhaupt geht und es ergeben sich
erste Grundkenntnisse nach ca 4 Wochen. Dann sollte ein theoretischer
Teil folgen um einen Einblick in Standardtechniken wie synchrones
Design, clock rate transitions, etc zu erlernen. Da genuegt das Studium
eines guten Buches. Dafuer nochmal 6 Wochen.
Um mit diesem Ruestzeug halbwegs fit zu werden sollte man mindestens ein
groesseres Design gemacht werden - z.B. fuer 6 Monate. Das sorgt fuer
(leidvolle) Erfahrungen mit den Tools und festigt die theoretischen
Kenntnisse. In der Regel kann man das erste Design dann wieder in die
Tonne hauen, aber das merkt man erst Jahre spaeter.
Sprich: ein gutes halbes Jahr, wenn man sich mit Digitalschaltungen
auskennt.
Andi M. schrieb:> Umfangreiche Erfahrungen im klassischen Programmieren (C/C++ etc) wuerde> ich eher als hinderlich ansehen.
Aha! und warum das bitte?
Andi M. schrieb:> In der Regel kann man das erste Design dann wieder in die> Tonne hauen, aber das merkt man erst Jahre spaeter.
Da stimme ich zu.
Andi M. schrieb:> ein gutes halbes Jahr, wenn man sich mit Digitalschaltungen> auskennt.
In einem halben Jahr FPGA und VHDL lernen?
Andi M. schrieb:> Sprich: ein gutes halbes Jahr, wenn man sich mit Digitalschaltungen> auskennt.
Aber mit mindestens 4 Abenden pro Woche. Oder 4 Monate Vollzeit (z.B.
als Praktikant)...
Markus Wagner schrieb:> Andi M. schrieb:>> Umfangreiche Erfahrungen im klassischen Programmieren (C/C++ etc) wuerde>> ich eher als hinderlich ansehen.> Aha! und warum das bitte?
Weil man mit zuviel C im Kopf FPGAs mit VHDL "progammiert".
Richtigerweise muss man sich aber eine Schaltung vorstellen oder
aufzeichnen können, und die dann mit der Hardwarebeschreibungssprache
VHDL beschreiben. Wenn man mit der geläufigen Programmierdenkweise an
die Sache rangeht, dann klappt das ein paar Monate auch ganz gut. Nur
muss man sich dann gleich 2 Sachen abgewöhnen: C und seine bis dahin
angewöhnte falsche Denkweise...
Das Wichtigste ist immer, herauszufinden, welche 10% von VHDL für die
Synthese geeignet sind. Und was man mit dem Rest in der Simulation alles
anstellen kann. Das einfachste Beispiel ist z.B. die blinkende LED:
http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html
Markus W. schrieb:> Aha! und warum das bitte?
Weil angeblich viele Anfänger, die sequentiell programmieren können,
dadurch verwirrt werden, dass Hardware nicht sequentiell abläuft. Ich
hatte damit keine Probleme, deshalb sehe ich das nicht so.
Markus W. schrieb:> In einem halben Jahr FPGA und VHDL lernen?
Ich habe meine Bachelorarbeit über FPGA-Entwicklung mit einem Monat
Einarbeitungszeit geschrieben. Allzu schwer ist es also nicht.
Allerdings lief die Schaltung auch nur mit maximal 100MHz.
Lernen kann man es also in kurzer Zeit, aber beherrschen, so dass es
auch bei hohen Frequenzen noch läuft und man die meisten Tricks kennt,
braucht wahrscheinlich viel Erfahrung und dementsprechend lange. (Das
kann ich nicht einschätzen, weil ich diese Erfahrung nicht habe.)
Übrigens fand ich die Umstellung zurück auf C deutlich schwieriger, weil
ich da plötzlich wieder drauf achten musste, welche Anweisung wann
ausgeführt wird. :-)
lubbi schrieb:> in VHDL lässt sich auch streng Sequentielles beschreiben. Statemachines> schreiben sich fast so wie ein Programm...
Sie verwenden aber einen anderen Mechanismus. Und sollten daher nicht
der sequentiellen Abarbeitung eines Programms nahegestellt oder gar
verwechselt werden...
Ich hätte dazu die recht interessante Episode dort:
http://www.lothar-miller.de/s9y/archives/47-wait-im-Prozess.html
Lothar Miller schrieb:> lubbi schrieb:>> in VHDL lässt sich auch streng Sequentielles beschreiben. Statemachines>> schreiben sich fast so wie ein Programm...> Sie verwenden aber einen anderen Mechanismus. Und sollten daher nicht> der sequentiellen Abarbeitung eines Programms nahegestellt oder gar> verwechselt werden...>> Ich hätte dazu die recht interessante Episode dort:> http://www.lothar-miller.de/s9y/archives/47-wait-i...
hmm... Aber kann man nicht sagen, dass ein Mikrocontroller im Prinzip
eine Statemachine ist? Da hat man ganz abstrakt gesagt einen Counter und
je nach Counterstand geht der Controller von einem State in den nächsten
State über.
Bei einer Statemachine kann ich ja auch von einem Takt zum nächsten ganz
sequenziell von State zu State wechseln.
Immer wenn ich im FPGA etwas brauche, was wie ein "Programm"
abgearbeitet wird, mache ich doch eine Statemachine, wo ich je nach
Anzahl der "Programmschritte" entsprechende States (und
Übergangsbedingungen) definiere.
Natürlich handelt es sich dabei nicht um ein Programm im klassischen
Sinne (VHDL ist natürlich keine Programmiersprache), aber die in VHDL
beschriebene Struktur hat dann durchaus doch etwas "Programmartiges".
Ich denke das ist alles eine Frage der Abstraktion, denn wenn ich einen
Mikrocontroller im FPGA implementiere (das kann ich ja machen) und das
auf ihm laufende Programm ebenfalls in VHDL schreibe (was ja durchaus
ebenfalls möglich wäre, denn niemand hält mich davon ab die
Programmschritte per VHDL im Blockram zu hinterlegen) habe ich dann
nicht programmiert?
Du kannst mit VHDL auf einem FPGA einen Zustandsautomaten beschreiben,
aber nur der beschriebene Automat läuft sequentiell ab, die Beschreibung
selber nicht.
Insbesondere, da es hier um eine Anfängerfrage geht, ist die Diskussion
sowieso hier nicht sinnvoll. VHDL beschreibt auf einem FPGA parallel
arbeitende Strukturen und große Teile der Anweisungen werden parallel
'abgearbeitet'.
lubbi schrieb:> Aber kann man nicht sagen, dass ein Mikrocontroller im Prinzip eine> Statemachine ist?
Der Controller an sich ist eine FSM. Allerdings arbeitet diese FSM ein
Programm ab, das wiederum eine FSM beschreiben kann.
Der Unterschied zwischen diesen beiden FSM ist, dass die Erste (der uC)
immer komplett parallel und konstant da ist, die Zweite (Software) sich
(evtl. sogar sich selbst) aber von jetzt auf nachher ändern könnte...
Eine komplexe FSM in Software dauert einfach nur länger. Eine komplexe
FSM in Hardware braucht viel Silizium.
Dussel schrieb:> Insbesondere, da es hier um eine Anfängerfrage geht, ist die Diskussion> sowieso hier nicht sinnvoll.
Eigentlich schon, denn es geht darum, VHDL zu kapieren. Oder wenigstens
den Aufwand dafür abzuschätzen.
lubbi schrieb:> hält mich davon ab die Programmschritte per VHDL im Blockram zu> hinterlegen) habe ich dann nicht programmiert?
Dann hätte das D seine Berechtigung verloren und es müsste
logischerweise VHPL heißen...
Ansonsten: täglich grüsst das Murmeltier.
Diese Diskussion wird hier allhalbjährlich geführt. Such einfach mal
nach "programmieren" hier im VHDL Forum...
Hey,
vielleicht eine kleine Anmerkung am Rande: ich habe als Hobbyist vor
einiger Zeit mal angefangen mich mit FPGAs zu beschäftigen - und bin
nach wie vor Anfänger. Ich habe allerdings die Erfahrung gemacht, dass
mir VHDL irgendwie schwer fiel, ich fand's zäh. Mit Verilog bin ich -
rein subjektiv - dann deutlich besser zurechtgekommen. Ich kann leider
nichtmal sagen woran das lag ... Also wenn man nicht auf eine Sprache
festgelegt ist, ruhig auch mal ein Blick auf Verilog werfen.
Gruß
John
John schrieb:> Also wenn man nicht auf eine Sprache festgelegt ist, ruhig auch mal ein> Blick auf Verilog werfen.
Auch zu diesem Thema wird alljährlich eine Sau durchs Dorf getrieben.
Einfach mal nach "VHDL Verilog" suchen...
Dussel schrieb:> Du kannst mit VHDL auf einem FPGA einen Zustandsautomaten beschreiben,> aber nur der beschriebene Automat läuft sequentiell ab, die Beschreibung> selber nicht.> Insbesondere, da es hier um eine Anfängerfrage geht, ist die Diskussion> sowieso hier nicht sinnvoll. VHDL beschreibt auf einem FPGA parallel> arbeitende Strukturen und große Teile der Anweisungen werden parallel> 'abgearbeitet'.
Das ist doch alles keine sinnvolle Darstellung um einem Anfänger das
klarzumachen.
Meine Sichtweise - durch zahlreiche Diskussionen im FPGA-Forum gedeckt -
und auch auf den FPGA-Days vorgetragen:
- VHDL ist eine Programmiersprache, die explizite sequenzielle Abläufe
bescheibt
- von einem Compiler wird sie in ein sequenzielles Programm übersetzt,
mit welchem die Abläufe simuliert werden können. Dabei ist die Anordnung
der Codezeilen in aller Regel von Interesse
- durch die nebenläufige Programmierung entsteht eine Parallelität,
welche im Simulator bei der Ausführung entsprechend berücksichtigt wird,
sofern Randbedingungen eingehalten werden. Da gäbe es nun viel zu sagen,
z.B. Sensititvity etc
- unabhängig von der Synthese wird der Programmiercode von einer
Synthese-Tool-Chain genutzt, um unter Weglassen des Zeitauflaufs
Vorgaben für Schaltungsstrukturen abzuleiten. Dadurch ist die Anordnung
der Codezeilen in aller Regel nicht mehr wichtig, von Dingen wie
Defaults mal abgesehen
- die entstehene Schaltung kann statisch oder dynamisch sein und in Form
von state machines reale und auch virtuelle Abläufe haben, indem
Reaktionen auf Aussensignale in Zustände überführt werden. So wie auch
Prozessoren sind dann auch virtuelle Datenströme möglich.
- VHDL definiert demnach explizit nur einen Ablauf innerhalb der
Synthesesoftware - nicht aber auf der Hardware
- VHDL definiert implizit Strukturen, die statisch sind, indem
Funktionsvorschriften gemacht werden, wie z.B. Multiplikation, die in
irgendeine Hardware übersetzt wird, die multiplizieren kann
- VHDL definiert explizit Strukturen, die einen zeitlichen Ablauf haben
können, z.B. ein FFT-Core nzw zeitgebend sind wie ein Taktkonstrukt mit
risng_edge
- VHDL definiert implizit Abläufe, in dem Strukturen definiert werden,
die später Abläufe haben, wie z.B. eine zusammengesetzte state machine,
ein Zähler mit Abbruchbedingung etc.
Wie man sieht werden in VHDL durch entweder Vorgabe der Funktion oder
der Struktur selber in aller Regel Anordnungen festgelegt. Der Ablauf,
der in der Schaltung hinterher von Statten geht, wird praktisch immer
indirekt festgelegt. Man muss also mehr oder weniger eine Schaltung vor
Augen haben, die den Ablauf leisten kann und dann diese Schaltung
beschreiben.
Bei state machines ist das ein wenig doppeldeutig und verwaschen,
zugegeben, weil so, wie man 1-stufige state machines beschreibt, ein
sehr enger Zusammenhang zur späteren Hardware gegeben ist, zumindest
wenn die Zustandskodierung so erfolgt, wie vorgegeben. Trotzdem ist das
letztlich keine direkte Beschreibung eines Ablaufs, sondern doch eine
indirekte, weil der tatsächliche reale (unter Betrachtung des Timings)
definierte Ablauf an Randbedinungen und die Umsetzung genknüpft ist. Es
ist nicht einmal eine exakte Vorgabe für die Hardware, weil state
machines analysiert und in verschiedenen Vodierformen übersetzt werden
können.
Bei der Nutzung von VHDL muss man sich eben daran gewöhnen, dass man
gleichzeig Abläufe und Struktur programmiert und dies dummerweise nicht
automatisch bei allen Konstrukten konsistent ist, weswegen oftmals
Schaltungsfunktion nach Synthese und Verhalten in der Simulation
auseinanderlaufen.
John schrieb:> Mit Verilog bin ich -> rein subjektiv - dann deutlich besser zurechtgekommen. Ich kann leider> nichtmal sagen woran das lag ...
Mir gefällt die C-ähnliche Syntax deutlich besser als die Romane von
VHDL. In Verilog und C markieren zum Beispiel immer geschweifte Klammern
einen Block. In VHDL ist es mal then, mal begin und endet mal mit end
Ausdruck, mal mit end name, mal nur mit end. (Wobei end und end
name, wenn ich mich recht erinnere, alternativ verwendet werden
können)
Korrigierer schrieb:> VHDL definiert demnach explizit nur einen Ablauf innerhalb der> Synthesesoftware - nicht aber auf der Hardware
Was bei der Synthese gemacht wird, ist aber für einen Anfänger nicht
wichtig.
Anderseits fällt mir da gerade for generate ein. Da ist es irgendwie
schon sinnvoll zu wissen, dass das eine 'for-Schleife für den
Übersetzer' ist.
Bis man den Einstieg mal hat, ist es doch nicht so ganz einfach.
Korrigierer schrieb:> Man muss also mehr oder weniger eine Schaltung vor> Augen haben, die den Ablauf leisten kann und dann diese Schaltung> beschreiben.
Da stimme ich zu.
Um die Verwirrung komplett zu machen, müssen wir, wie du oben schon
angedeutet hast, auch noch zwischen der Sprache VHDL und der
Beschreibung einer digitalen, synthetisierbaren Schaltung auf einem
Logikbaustein unterscheiden. :-)
Indium schrieb:> Wie schwer ist VHDL und FPGA zu erlernen?
Eigentlich so einfach, wie fertige Digital-ICs miteinander zu verbinden.
Denn genau das kann man mit VHDL machen: Ein paar vorgefertige logische
Bauelemente (denk an 74xx-Serie oder ganze Floppycontroller
'intellectural properties') nehmen und die Verbindungen definieren.
Das ist einfach für jeden der mit 74xx Gatterbauelementen umgehen kann.
Darüberhinaus kann VHDL mehr, damit man sich Arbeit erspart. Wer einen
Speicher aus 100 x 100 FlipFlops aufbauen will und alle verdrahtet, mit
Adressdecodern aus NAND-Gattern, baut sich einen Wolf, bzw. schreibt
Anweisungen bis zum Abwinken. In VHDL baut man sich ein Array aus
FlipFlops einfach mit 2 Schleifen 0..99, und den Decoder per logischer
Formel. Der VHDL-Compiler macht dann daraus die komplexe Verdrahtung.
Korrigierer schrieb:> - VHDL ist eine Programmiersprache, die explizite sequenzielle Abläufe> bescheibt
Genau das führt zum berühmten falschen Verständnis von VHDL und FOR.
VHDL beschreibt die ANORDNUNG von logischen Bauelementen, daher bezieht
sich FOR nicht auf wiederholte Ausführung, sondern auf parallele
Anordnung von logischen Bauteilen. Ein IF/CASE sagt, durch welche
Anordnung der parallel vorhandenen Bauteile (logischen Formeln) die
Signale laufen, ist also eher ein Multiplexer/Datenselektor.
Die durch VHDL dann generierte Hardware, DIE bearbeitet dann digitale
Signale in möglichst sequentiellen Abläufen.
Lothar Miller schrieb:> lubbi schrieb:>> hält mich davon ab die Programmschritte per VHDL im Blockram zu>> hinterlegen) habe ich dann nicht programmiert?> Dann hätte das D seine Berechtigung verloren und es müsste> logischerweise VHPL heißen...>> Ansonsten: täglich grüsst das Murmeltier.> Diese Diskussion wird hier allhalbjährlich geführt. Such einfach mal> nach "programmieren" hier im VHDL Forum...
Ich wollte jetzt auch keine Diskussion lostreten, die Anfänger verwirren
könnte. Ev. war das wirklich nicht sinnvoll von meiner Seite...
MaWin schrieb:> VHDL beschreibt die ANORDNUNG von logischen Bauelementen, daher bezieht> sich FOR nicht auf wiederholte Ausführung, sondern auf parallele> Anordnung von logischen Bauteilen.
Das ist eben nicht richtig. Mit einer FOR-Schleife kann, muss aber nicht
eine parallele Hardware aufgebaut werden. Es können auch verschachtelte
For-Schleifen exisitieren, die Bedingungen abprüfen und daraufhin
partiell synthesitsieren, wie bei dem handling von Derivaten.
For-Schleifen können zudem genutzt werden, um in simulierbaren Cores
Abläufe zu realisieren, die zu einem konvergierten Wert führen, um
Zwischenberechnungen zu machen, z.B. das Bilden einer Wertetabelle und
vieles mehr. Das sind sequenzielle Abläufe.
Man muss sich nur (aber zu jeder Zeit !) vor Augen halten, dass diese
ganzen Abläufe in dem Syntheesprogramm laufen. Dort wird der Code als
Programm genommmen und ausgeführt.
Eigentlich ist es ganz einfach so, wie es auf der Tagung mal gesagt
wurde:
VHDL ist eine Programmiersprache für einen virtuellen Hardwareingenieur,
der die Schaltung baut. Sie steuert diesen so, als sei der Entwickler
ein programmierbarer Schaltungsbauroboter.
Und wenn dieser Schaltungsbauroboter den FOR-Befehl bekommt, eine
Handlung mehrfach auszuführen, kommen je nach Randbedingung sehr
unterschiedliche Ergebnisse raus.
Es können eine Gruppe von Chips, ein Array von Strippen zum Verbinden,
eine Anordnung von Lötpunkten sein, oder es kann ihm angewiesen werden,
solange eine Berechnung durchzuführen, bis ein bestimmter Endwert
bekannt ist, den er als Konstant irgendwo festlegt, oder anhand des
Ergebnisses bekannt wird, ob er etwas verbinden bzw einbauen soll, oder
nicht.
Dussel schrieb:> John schrieb:>> Mit Verilog bin ich ->> rein subjektiv - dann deutlich besser zurechtgekommen. Ich kann leider>> nichtmal sagen woran das lag ...> Mir gefällt die C-ähnliche Syntax deutlich besser als die Romane von> VHDL.
Stimmt im Prinzip und deckt sich mit meinen Erfahrungen. Aber die
Geschwaetzigkeit von VHDL hat einen Vorteil: Du verstehst einen alten
Design oder etwas von jemand anderem leichter! Verilog erlaubt da schon
wieder viele Tricks, VHDL ist da einfacher gestrickt. Spaetestens wenn
du mal einen deiner Designs nach ein paar Jahren wieder anfassen musst:
Geht m.E. leichter mit VHDL als mit Verilog.
Sind aber nur meine 2 cents...
berndl schrieb:> Geht m.E. leichter mit VHDL als mit Verilog.
Wir haben an der Hochschule eigentlich überhaupt kein Verilog - nur
VHDL. Laut Prof ist es so, dass VHDL in Europa die Standardsprache.
Verilog eher USA. Ist das so? Welche Gründe könnten dafür verantwortlich
sein?
FPGA-Neuling schrieb im Beitrag #4132413:
> Laut Prof ist es so, dass VHDL in Europa die Standardsprache.> Verilog eher USA. Ist das so? Welche Gründe könnten dafür verantwortlich> sein?
Ja, das ist so. Vermutlich dieselben Gründe wie bei Oracle vs. SAP.
Hmmm..., ich als Hobbyst spiele mit Verilog und VHDL.
Wenn ich im Arbeitsleben stehen würde (bin jetzt Pensionär) wäre mir
Verilog
am nächsten um meine Maschinen (mit FPGA-Steuerung) besser verkaufen zu
können. Was nützt meine VHDL-Steuerung in Amerika, wenn die keiner
Versteht.
Und so verstehen es die Amerikaner mit unseren Maschinenimport auch.
VHDL ist für den Export von Deutschland eine Bremse.
Aber welcher Prof (ohne Plagiat) versteht das, dem ist es doch
Scheißegal wie der Student mit dem VHDL da steht.
Gruss
Korrigierer schrieb:> MaWin schrieb:>> VHDL beschreibt die ANORDNUNG von logischen Bauelementen, daher bezieht>> sich FOR nicht auf wiederholte Ausführung, sondern auf parallele>> Anordnung von logischen Bauteilen.> Es können eine Gruppe von Chips, ein Array von Strippen zum Verbinden,> eine Anordnung von Lötpunkten sein, oder es kann ihm angewiesen werden,> solange eine Berechnung durchzuführen, bis ein bestimmter Endwert> bekannt ist, den er als Konstant irgendwo festlegt, oder anhand des> Ergebnisses bekannt wird, ob er etwas verbinden bzw einbauen soll, oder> nicht.
Was ist daran nun anders, als der Satz den du korrigieren wolltest ?
Weil ich "logische Bauelemente" wo du "Chip, Strippen und Lötpunkte"
schreibst ?
FOR ist eben keine Sequenz in der erzeugten Hardware, sondern eine
Sequenz bei der Definition der Hardware.
peter schrieb:> am nächsten um meine Maschinen (mit FPGA-Steuerung) besser verkaufen zu> können. Was nützt meine VHDL-Steuerung in Amerika, wenn die keiner> Versteht.
Wen interessiert es, in welcher Hochsprache ein FPGA in einer Maschine
beschrieben wurde? Die Maschine muss einfach nur laufen.
Und ein Updatevorgang eines FPGAs (oder eines FPGA-PROMs) ist hinterher
sowieso exakt gleich. Ob der Quelltext in Verilog oder VHDL oder als
Schaltplan vorlag sieht dann keiner mehr.
> VHDL ist für den Export von Deutschland eine Bremse.
Das betrifft aber bestenfalls Maschinen im Sub-Promille-Bereich des
Gesamtumsatzes...
Lothar Miller schrieb:> Wen interessiert es, in welcher Hochsprache ein FPGA in einer Maschine> beschrieben wurde?
Du hast aber schon gelesen, WER das geschrieben hat? :-)
Zu der eingangs gestellten Frage:
>Wie schwer sind VHDL und FPGA zu erlernen
Wenn man ein Gefühl für Technik und Programmierung hat, ist das nicht
wirklich schwer, aber durchaus zeitraubend.
Die Sprache kann man wie die meisten anderen auch in Wochen erlernen,
zumindestes, was die am meisten benötigten Kontrukte an geht. Deren
geschickte Anwendung, damit die Tools immer das tun, was man will,
dauert aber durchaus Monate bis Jahre. Es gibt eigentlich immer mal
wieder irgend ein issue, wo irgendwas nicht geht. Die Sprache entwickelt
sich ja auch.
Kompliziert ist vor allem die Bedienung der Tools, weil das meiste nicht
mehr so richtig durchschaubar ist, gleichzeitig doch aber sehr komplex.
Einfache Sachen gehen mehr oder weniger automatisch und man bekommt
innerhalb von Tagen was Lauffähiges hin. Es gibt aber Sachen, wo die
Tools aufgrund von Inkompatibilitäten der Module, Versionsumstellungen,
Zusammenspiel mit Cores und Drittherstellern, allerlei Problem
aufwerfen, die umfangreiches Wissen und Erfahrung benötigen, um sie zu
handhaben oder zu umschiffen. Das dauert dann lange, bis Lösungen
gefunden werden.
Ein Grund sind auch unzurechende, ungeschickte und teils sogar falsche
Beschreibung der Funktionen. Wenn es z.B. in Richtung Physik, als PLLs,
Transceiver, Buffer, etc geht, gibt es einige Fallstricke.
Der dickste Brocken sind eigentlich die FPGAs selber, weil sich deren
Technologie ändert und die Anforderungen in Hinsicht auf Analog- und
Physikthemen mit steigender Frequenz wachsen. Bei 10 MHz tut sich da
noch nicht viel, aber wenn ein DDR-Baustein angesprochen, oder andere
Baugruppen über Stecker verbunden sind, und mit 100MHz kommunizieren
wollen, gibt es viele Randthemen.
Wenn Du jetzt loslegst, hast Du im günstigsten Fall nach einem Tag eine
Blinkerschaltung beisammen. Einen PCIe-Controller, mit DMA auf DDR-RAMs
und optimierter Bandbreite, mit Anbindung an high-speed ADCs mit gutem
EMV-Design hast Du in 2 Jahren nicht am Laufen.
Hi,
ich sehe den Einstieg in VHDL nicht unbedingt so kompliziert wie viele
andere hier. Allerdings setze ich mindestens voraus, dass du dich in
Digitatechnik, -schaltungen und -ICs auskennst.
Dann musst du m. E. 3 Dinge kennen lernen:
1. FPGAs: Die können ganz schön kompliziert sein. Wenn du einsteigen
willst, tu es mit CPLDs. Die sind deutlich einfacher aufgebaut,
wesentlich einfacher zu betreiben und genau so wie FPGAs zu
programmieren und debuggen. Später, wenn es komplex wird und du alles
andere ausreichend beherrscht, kannst du auf FPGAs und deren
Hardware-Spezialitäten umsteigen.
2. VHDL: Um erste lauffähige Projekte zum Leben zu erwecken, genügen
wenige Grundkenntnisse. Ich behaupte, wenn es dir jemand erzählt, ist
das erste LED-Blink-Projekt in weniger als ein paar Stunden so
verständlich für dich, dass du auch einen Zähler selbstständig
programmieren kannst.
3. Die IDE: Auch da gibt es viel zu Lernen, aber für den Anfang reicht
wenig. Am besten lässt man sich auch das kurz erklären.
Die Meinung, dass die Kenntnis einer Programmiersprache eher hinderlich
sein kann, teile ich bedingt: Wer in seinem Leben noch nie
Logik-Hardware gemacht hat, hat kaum eine Vorstellung davon, dass
Hardware beliebig viel parallel (concurrent) oder seriell (sequential)
ausführen kann, und dass es ein ständiges Abwägen der unendlich vielen
Architektur-Alternativen zwischen Ressourcenverbrauch und
Ausführungsdauer gibt. Wer aber schon mal ein paar 74xx verdrahtet hat,
für den ist das offensichtlich, und das habe ich bei dir eingangs auch
vorausgesetzt.
Ich habe mit ein paar spärlichen Tipps eines Kollegen angefangen und
binnen Kürze ziemlich komplexe Projekte trotz meiner immer noch relativ
bescheidenen VHDL-Kenntnisse realisiert.
Ich teile da 100%-ig die Meinung von Jürgen:
Jürgen S. schrieb:> Wenn Du jetzt loslegst, hast Du im günstigsten Fall nach einem Tag eine> Blinkerschaltung beisammen. Einen PCIe-Controller, mit DMA auf DDR-RAMs> und optimierter Bandbreite, mit Anbindung an high-speed ADCs mit gutem> EMV-Design hast Du in 2 Jahren nicht am Laufen.
Nur Mut.
jürgen schrieb:> Findet ihr nicht das Verilog wesentlich eingänglicher wirkt als VHDL?
Wem was warum besser gefällt ist nicht die eigentliche Frage dieses
Threads.
Und meine persönliche Meinung ist: Nein.
Man darf eben nicht in diesen seltsamen strukturellen Stil verfallen,
der (leider noch immer!) an deutschen Hochschulen gelehrt wird:
1. Beschreibe einen Halbaddier
2. Mach daraus einen Volladdierer
3. Verknote zig dieser Addierer zu einem kompletten Vektor
Im Ernst: genau solche Beschreibungen mit zigtausend Mikrokomponenten
liefern diese Studenten dann im Praktikum oder in der
Bachelor-/Masterarbeit dann auch ab...
Sinnvoller wäre da:
- Addition erfolgt durch den + Operator
- Rechne niemals mit uneingeschränkten (std_logic) Vektoren
Und dann das, was ich "meine Postulate" nenne (einfach hier im Forum mal
danach suchen).
Siehe zum Thema "VHDL ist geschwätzig und umständlich" das da und den
darin verlinkten Thread:
http://www.lothar-miller.de/s9y/archives/88-VHDL-vs.-Verilog-am-Beispiel-einer-Stoppuhr.html
Lothar Miller schrieb:> Sinnvoller wäre da:> - Addition erfolgt durch den + Operator> - Rechne niemals mit uneingeschränkten (std_logic) Vektoren> Und dann das, was ich "meine Postulate" nenne (einfach hier im Forum mal> danach suchen).
Endlich mal ein Beitrag, um laut Beifall zu rufen, was hiermit erfolgt
ist.
W.S.
Uwe Arzt schrieb:> FYI: Bei Altera gibt es gerade das ebook "FPGAs für Dummies" gegen Email> Adresse ;)
Hast Du mal reingeschaut? Würde man damit einen echten Überblick
bekommen, was FPGAs sind und was man damit tut? Finde ich jetzt nicht
so...
Ich empfehle an dieser Stelle nochmal das, was ich bisher am Besten
fand:
Digital Electronics with VHDL von William Kleizt / Pearson Verlag. Ist
in Englisch, gebunden, ziemlich dick und übersichtlich gemacht. Es
enthält zahlreiche Beispiele und Trainingsfragen. Als eines der wenigen
Bücher zeigt es einen sehr engen Zusammenhang zwischen der digitalen
Schaltung, mit Schalbild, Diagram und dem VHDL.
jürgen schrieb:> Findet ihr nicht das Verilog wesentlich eingänglicher wirkt als VHDL?
Hallo Namensvetter, nicht unbedingt und wenn, dann sicher nicht
"wesentlich". Ich habe mit Verilog angefangen, aber bin beim VHDL
gelandet. Logisch, dass mir das nun lieber ist. Macken haben beide
Sprachen.
Lothar Miller schrieb:> Im Ernst: genau solche Beschreibungen mit zigtausend Mikrokomponenten> liefern diese Studenten dann im Praktikum oder in der> Bachelor-/Masterarbeit dann auch ab...
Ich finde es nicht falsch, wenn man das auf der Ebene lernt. Notwendig
ist aber, dass man eben alle erdenklichen Ebenen der Beschreibung,
angefangen mit Struktur bis hin zu abstraktem Verhalten, nebeneinander
stellt, damit die Studi sehen, wann man wo was verwenden sollte.
Jürgen S. schrieb:> Wenn Du jetzt loslegst, hast Du im günstigsten Fall nach einem Tag eine> Blinkerschaltung beisammen.
Das kann ich so nicht bestätigen.
Bis die erste LED geblinkt hat, hat es etwa eine halbe Stunde gedauert,
die nächsten Schritte, wie Lauflicht mit Richtungsumkehr per Taster,
vielleicht eine Stunde.
Der Hauptaufwand war, das Webpack runterzuladen und zu installieren und
rauszufinden, wie man die Beschreibung in den FPGA (genauer in den ROM)
bekommt. Insgesamt hat das aber etwa fünf Stunden gedauert und da meiste
davon muss man nur einmal machen.
Dussel schrieb:> Bis die erste LED geblinkt hat, hat es etwa eine halbe Stunde gedauert,> die nächsten Schritte, wie Lauflicht mit Richtungsumkehr per Taster,> vielleicht eine Stunde.
Du bist da eher die Ausnahme. Bei mir hat das auch wesentlich länger
gedauert.
Und bis ich dann die Notwendigkeit des Einsynchronosierens gelernt
hatte, da waren schon einige der "kleinen" Designs mitsamt ihrem ab und
zu "seltsamen" Verhalten fertig.
Ich denke, so ein Design war dann das Lauflicht nach 1 Stunde: der
Taster wurde dabei noch nicht richtig einsynchronisiert...
Jürgen Schuhmacher schrieb:> Notwendig ist aber, dass man eben alle erdenklichen Ebenen der> Beschreibung, angefangen mit Struktur bis hin zu abstraktem Verhalten,> nebeneinander stellt, damit die Studi sehen, wann man wo was verwenden> sollte.
Und vor Allem: dass sie erkennen, dann man diese "Beschreibungsarten"
auch beliebig mischen und nebeneinander her verwenden kann...
Lothar Miller schrieb:> Und bis ich dann die Notwendigkeit des Einsynchronosierens gelernt> hatte, da waren schon einige der "kleinen" Designs mitsamt ihrem ab und> zu "seltsamen" Verhalten fertig.>> Ich denke, so ein Design war dann das Lauflicht nach 1 Stunde: der> Taster wurde dabei noch nicht richtig einsynchronisiert...
Das Stimmt wohl. Der Taster war auch nicht entprellt. Aber auch wenn das
Lauflicht mal nach Tasterdruck weiter in die gleiche Richtung läuft, hat
man doch grundsätzlich schonmal nicht alles falsch gemacht.
Ich wollte nur den Beitrag entschärfen, nach dem es so aussah, als hätte
man kaum Erfolgserlebnisse.
Alles hängt von den Vorkenntnissen ab. Ich habe vor den FPGAs und VHDL
schon mit PLDs und GALs gearbeitet. Auch Digitalschaltungen für ASICs
waren vorher noch dran. Und davor gab es 10 Jahre Gebastel mit TTL und
CMOS40xx.
Wenn er mit FPGAs und VHDL anfängt und das alles über die
Beschreibungsebene lernen will, hm ....
Jürgen Schuhmacher schrieb:> Alles hängt von den Vorkenntnissen ab.
Gut, insofern stimmt es schon, dass die Studenten vorher mal was mit
TTL Logik gebastelt haben sollten...
> Wenn er mit FPGAs und VHDL anfängt und das alles über die> Beschreibungsebene lernen will, hm ....
Idealerweise sollte er eben schon Digitaltechnik beherrschen und sich
Lösungswege ausdenken können (ein Flipflop hat eben keine 2 Takteingänge
und es ist nicht üblich, dass Flipflops auf beide Flanken reagieren).
Denn VHDL ist ja eine Beschreibungssprache. Und beschreiben kann ich
nur etwas, wovon ich mir ein Bild machen kann.
Da scheint einfach irgendwas im Studium nicht gelehrt zu werden, oder
die Studenten schaffen die mentale Verknüpfung nicht. Auf jeden Fall
muss ich die idR. erst mal durch einen Reset fahren und dann nochmal mit
LED-Blinkern, Lauflichtern, seriellen Schnittstellen, PS2-Tastaturen und
VGA-Ansteuerungen füttern. Danach haben sie die elementaren
Verhaltensweisen verstanden und einen ansatzweise brauchbaren und
reproduzierbaren Beschreibungsstil verinnerlicht...
Wie sagte einer am Ende seines Praktikums: "The whole world is a shift
register!"
Lothar Miller schrieb:> beschreiben/ kann ich> nur etwas, wovon ich mir ein Bild machen kann.
An der Stelle könnte man jetzt einhaken, dass es in VHDL reicht, ds
Verhalten zu beschreiben und sich über die Umsetzung in Hardware keine
Gedanken machen muss. Aber die Beispiele zeigen, was man alles
hinschreiben kann und simulatorisch funktionert, in der Realität aber
keinen Gegenpart hat, oder einen sehr seltsamen.
> Da scheint einfach irgendwas im Studium nicht gelehrt zu werden, oder> die Studenten schaffen die mentale Verknüpfung nicht.
Es ist wohl beides. Die Lehrpläne sind ja gestrafft worden und die
Hinzunahme von immer mehr Software erfordert das Weglassen von Hardware.
Da ist es zwangsläufig, dass was fehlen muss. Zuerst wurde ja in 90ern
schon begonnen, Analogtechnik wegzustreichen, inzwischen fehlt wohl
anscheinend auch digitale Hardware.
Zum Zweiten fangen die Leute heute eher mit Software an, statt mit
Elektronik und wenn sie sich damit befassen, wird kaum was
zusammengelötet. Wenn die praktische Anschauung fehlt, ist es dann auch
für den Schlausten logischerweise schwer, Zusammenhänge zwischen dem
abstrakten VHDL und einer Hardware herzustellen.
> einen ansatzweise brauchbaren und> reproduzierbaren Beschreibungsstil verinnerlicht...
Wenn da die Vorgaben fehlen, oder das Internet zu Rate gezogen wird, ist
auch das ein langer Prozess. Da posten viel zu viele ihr Halbwissen,
sodass jemand die Chance hätte, dadurch zu lernen. Die Hochschulen
können es auch nicht leisten, weil keine Zeit besteht, in de Tiefe zu
gehen.
Jürgen Schuhmacher schrieb:> Da posten viel zu viele ihr Halbwissen
Das ist allerdings sehr wahr. Kaum hat einer sein erstes umständliches
Lauflicht hinbekommen, wird es sofort veröffentlicht.
Und danach kommt eine gerade so hingebastelte serielle Schnittstelle: ab
damit ins Netz...
> sich über die Umsetzung in Hardware keine Gedanken machen muss
Diese elegante Einstellung kann z.B. ich mir leisten, weil ich die paar
simplen Fallstricke kenne und vermeide. Also, wenn ich auf einer hohen
Abtraktionsebene "in Hardware denke" (so wie ich Englisch auch nicht
mehr übersetze, sondern gleich "denke").
Das braucht allerdings Übung und nennt sich dann Erfahrung...
W.S. schrieb:>> Sinnvoller wäre da:>> - Addition erfolgt durch den + Operator>> - Rechne niemals mit uneingeschränkten (std_logic) Vektoren
Wo ist das Problem, das zu tun? Was geht schief? Eleganz mag es nicht
sein, aber Xilinx tut es ja selber in seinen Codes. Und funktioniert hat
es bisher immer.
M. Fritsch schrieb:>>> - Rechne niemals mit uneingeschränkten (std_logic) Vektoren> Was geht schief?
Man sieht den Signalen und Variablen ihre Datentypen (vorzeichenlos
oder -behaftet) nicht an.
Sondern man muss jedesmal nachsehen, welche der alten obsoleten
Synopsys-Libs verwendet wurde. Das führt immer dann zu Problemen, wenn
es mal genau darauf ankommt und nur der "problematische" Prozess
angeschaut wird...
jürgen schrieb:> Findet ihr nicht das Verilog wesentlich eingänglicher wirkt als> VHDL?FPGA-Neuling schrieb im Beitrag #4132413:
> Wir haben an der Hochschule eigentlich überhaupt kein Verilog - nur> VHDL. Laut Prof ist es so, dass VHDL in Europa die Standardsprache.> Verilog eher USA. Ist das so? Welche Gründe könnten dafür verantwortlich> sein?
Erfolgreiche Chiphersteller sitzen in den USA, die nehmen die
Hilfsmittel mit denen sich schnell funktionierende Ergebnisse erreichen
lassen, also VERILOG.
In Europa sitzen bloss akademische Fürze. Chipfabriken schliessen wegen
wirtschaftlichem Totalschaden. VHDL ist rein akademisch: Man hat mit ihr
wunderbar komplexe Probleme für Klausuren, aber niemals einen
funktionierenden Chip.
Verilog ist das C des Chipdesigns, VHDL das ALGOL68, verquast und mit
Overhead. Die meisten IP Cores gibt es in VERILOG.
MaWin schrieb:> In Europa sitzen bloss akademische Fürze. Chipfabriken schliessen wegen> wirtschaftlichem Totalschaden. VHDL ist rein akademisch: Man hat mit ihr> wunderbar komplexe Probleme für Klausuren, aber niemals einen> Verilog ist das C des Chipdesigns, VHDL das ALGOL68, verquast und mit> Overhead.
Mumpitz, VHDL ist von den Amerikanern entwickelt worden um für die
MIL-Elektronik einen einheitlichen (Dokumentations/Simulations-)
Standard zu schaffen. Das U.S. DoD hat keine andere Handhabe gesehen um
die vielen ASIC-Designs mit der erforderlichen Qualität zu pflegen. Da
ist von 100 verschiedenen propitären Chipbeschreibungsformen damals die
Rede. Verilog war damals nicht standardisiert, also wurde VHDL als
offizieller Standard kreiert das sich an Ada anlehnt. Ada stammt auch
aus dem Militär Industriellen Komplex. Also nix mit "schnell was
hingeklatscht" sondern Schwerpunkt auf umfassende Simulierbarkeit
gelegt.
https://www.doulos.com/knowhow/vhdl_designers_guide/a_brief_history_of_vhdl/http://www.eda.org/VIUF_proc/Fall93/HAJJ93B.PDF
Also nix mit VHDL als "europäischer akademischer Furz"
MfG,
MaWin schrieb:> In Europa sitzen bloss akademische Fürze. Chipfabriken schliessen wegen> wirtschaftlichem Totalschaden. VHDL ist rein akademisch: Man hat mit ihr> wunderbar komplexe Probleme für Klausuren, aber niemals einen> funktionierenden Chip.Troll detected
Chipfabriken bekommen vielleicht ein verbuggtes Design (auch in Verilog
möglich), jedoch werden sie trotzdem bezahlt. Entwicklung & FAB in einem
Unternehmen ist heutzutage nicht der so übliche Weg.
IP-Cores gibt es in VHDL und Verilog.
Wir in Euro haben Mithilfe geleistet das der "europäischer akademischer
VHDL-Furz" erst entstanden ist durch die Universitäten , die den Mixcode
als "Gut" empfunden haben für Lehrzwecke. Und bei Lehrzwecken braucht
man nicht auf wirtschaftliche Denkweise in der Entwicklung Rücksicht
nehmen. Hauptsache es erfüllt den Lehrzweck.
Wir in Europa hatten massiven Einfluss gehabt während der Entwicklung in
Amerika , dann wäre Verilog standard geworden.
Gruss
Weia...
MaWin schrieb:> Erfolgreiche Chiphersteller sitzen in den USA, die nehmen die> Hilfsmittel mit denen sich schnell funktionierende Ergebnisse erreichen> lassen, also VERILOG.>
Genau deswegen haben auch eine Menge neuentwickelter Architekturen Bugs
und laufen im v0-Silicon nicht, wie sie sollen. Das hat nichts mit der
Sprache zu tun, sondern mit der Art, mal schnell etwas hinzuhacken und
nicht sauber zu testen. Der Deutsche arbeitet da prinzipiell
gründlicher, und auf den ersten Blick langsamer als der Amerikaner.
Dass Chipfirmen längst ihre eigenen Tools haben und Verilog/VHDL nur
noch marginal im CPU-Design interessiert, hat der Troll wohl vergessen.
Geschweige denn an eine bekannte Chipfirma in Cambridge GB gedacht..
> In Europa sitzen bloss akademische Fürze. Chipfabriken schliessen wegen> wirtschaftlichem Totalschaden. VHDL ist rein akademisch: Man hat mit ihr> wunderbar komplexe Probleme für Klausuren, aber niemals einen> funktionierenden Chip.
Der Totalschaden steckt wohl eher in der obigen Aussage. Aber wer
offensichtlich keinen Plan hat, womit Gaisler ihre Kohle machen...
Bitte nicht die generellen Bildungs-Probleme in Deutschland mit einer
Sprachenarchitektur vermischen.
>> Verilog ist das C des Chipdesigns, VHDL das ALGOL68, verquast und mit> Overhead. Die meisten IP Cores gibt es in VERILOG.
Nein, sowas wie C will man WIRKLICH NICHT in der Hardware-Entwicklung.
Nur so am Rande: Die meisten schludrigen IP-Cores, die ich in die Finger
kriege, sind in der Tat Verilog. Die Geschwätzigkeit von VHDL darf man
kritisieren. Aber: Im Endeffekt testet sich in VHDL wegen einer gewissen
Strenge besser als in Verilog. Gute und strenge Standards (!) haben da
ihre Berechtigung, aber im Endeffekt ist es auf deutsch scheissegal,
bzw. eine Frage der Tools, welche Sprache besser genutzt wird.
MaWin schrieb:> aber niemals einen funktionierenden Chip.
Alle Chips, die wir in Auftrag hatten und die bei unterschiedlichen Fabs
geordert und produziert wurden, sind allesamt in VHDL angeliefert
worden. Das meiste kam von uns selbst, da es zuvor auf einem
Virtex/Kintex geprototyaped wurde. Ausser bei irgendwelchen RAM-Modellen
haben wir keine Zeile von Verilog und das was an Funktions-Code in den
Handel geht, also Cores und eben jene Rümpfe für die Kunden-ASICs ist
alles VHDL.
Fitzebutze schrieb:> Nur so am Rande: Die meisten schludrigen IP-Cores, die ich in die Finger> kriege, sind in der Tat Verilog.
Da reicht es aus, sich mal bei OpenCores die Verilog-Exponate mit Status
"Stable" anzusehen: jeder vierte ist davon bestenfalls zufällig mal
"stabil" gelaufen, asynchrone und lokale Takte, so weit das Auge reicht.
Designstil vom Ende des letzten Jahrtausends...
Wir wollten Anfang dieses Jahrtausends mal ein paar kommerzielle Codes
einiger obsoleter 8080 Peripherie-ICs kaufen. Die wurden auf den HP der
Hersteller alle als produktionstauglich angepriesen, aber auf konkrete
Nachfrage bei den Amerikanern blieb dann nur die Aussage, dass diese
Cores in Verilog auf genau 1 einziges FPGA hingetrimmt wurden. Aber man
würde uns das Design gerne auf "unser" FPGA "anpassen". Wir haben die
Peripherie dann inklusive der CPU selber geschrieben und ein komplett
synchrones Design daraus gemacht...
In der Firma, in der ich arbeite, werden sicherheitskritische Designs
-unter anderem für Aerospace (DO-254)- mit VHDL beschrieben. Infineon
verwendet es auch, was ich so gehört habe.
Wird vermutlich doch nicht nicht sooooo rein akademisch sein....
Matthias schrieb:> In der Firma, in der ich arbeite, werden sicherheitskritische Designs> -unter anderem für Aerospace (DO-254)- mit VHDL beschrieben.
Ja die DO-254 als die richtlinie für komplexe Hardware im
sicherheitkritischen Avionik Bereich hat xtra einen Style-Guide für
VHDL:
VHDL Code Style und DO-254.
Und es hiess in den Neunzigern das alle Entwürfe für das DoD in VHDL
abzuliefern sind.
MfG,
Matthias schrieb:> Wird vermutlich doch nicht nicht sooooo rein akademisch sein....
Wenn Verilog gereicht hätte, hätte man kein VHDL erfinden müssen :-)
Fpga Kuechle schrieb:>> Verilog ist das C des Chipdesigns, VHDL das ALGOL68, verquast und mit>> Overhead.>> Mumpitz, VHDL ist von den Amerikanern entwickelt worden
Ich habe nicht behauptet, daß VHDL in Europa entwickelt wurde, auch wenn
ALGOL68 aus Europa stammt.
Aber ich kann statt ALGOL68 auch ADA hinschreiben. "Verquast und mit
Overhead" bleibt dann richtig.
MaWin schrieb:> Eigentlich so einfach, wie fertige Digital-ICs miteinander zu verbinden.
Wenn andere diesem Beitrag von MaWin (dafür mal wieder Hut ab!)
zustimmen, dann sollte dieser Beitrag so in jedem Tutorial und jedem
Buch vorne drin stehen.
Ich fand die Idee FPGA ganz toll und habe mir das im Anfang mal
angesehen und für mich festgestellt, alles klar, Mikrocontroller reichen
für mich völlig aus.
Will sagen, dass das viel zu hoch für mich ist.
Und um die Frage des TO's von außen zu beantworten: Für nur so
"nebenbei" halte ich das für eine zu hohe Hausnummer.
Wenn ich mich damit wirklich noch auseinander setzten wollte, dann würde
ich drei Jahre ansetzen.
F. Fo schrieb:> MaWin schrieb:>> Eigentlich so einfach, wie fertige Digital-ICs miteinander zu verbinden.>> Wenn andere diesem Beitrag von MaWin (dafür mal wieder Hut ab!)> zustimmen, dann sollte dieser Beitrag so in jedem Tutorial und jedem> Buch vorne drin stehen.
Das steht im Prinzip in den meissten Büchern auch drin, nennt
sich Abstraktion: Man entwickelt eine/mehrere Komponenten und
verbindet diese bzw. deren Ports auf der nächsthöheren Ebene
(=Komponente). Wer das HDL-Sprachen gleichsetzt, der hat fast
nichts von diesen Sprachen und deren Anwendungen kennengelernt,
HDL-Sprachen wie VHDL und Verilog können VIEL mehr (und MÜSSEN
auch viel mehr können!).
VHDL ist mit ALGOL verwandt?: Keine Computersprache ist aus dem
Nichts entstanden, alle haben sich mehr oder weniger gegenseitig
befruchtet. Neben neuen Konzepten (Objektorientierung etc.) kam
mit jeder Generation auch ein neuer Syntax raus.
Aber VHDL ist eher mit Pascal vergleichbar (wurde hier im Forum
ja schon öfter erwähnt). Ich selbst würde dies an den typischen
Charakteristiken wie Syntax (BEGIN, END, IF-THEN-END-IF, nicht
IF-FI etc. wie in älteren Sprachen) und der strengen Typisierung
festmachen. Pascal stammt aus den 70er, ALGOL aus den 60er, da
hat sich syntaktisch und konzeptionell doch sehr viel getan.
Und wegen der syntaktischen Charakteristik (ich nenn's barock)
VHDL als verquastet zu bezeichnen halte ich für total falsch.
Verquastet sind dann doch eher die vielen Code-Beispiele im
Netz, aber da nimmt sich VHDL und Verilog nichts (siehe
opencores.org).
Lattice User schrieb:> entspricht schlicht und einfach nicht dem Zeitablauf, VHDL ist älter als> Verlog wenn auch nur knapp.http://www.ue.pwr.wroc.pl/pld/pld_12.pdf ->
"The Verilog hardware description language has
been used far longer than VHDL and has been
used extensively since it was launched by Gateway
in 1983"
---
Douglas J. Smith "HDL Chip design" 1996 0-9651934-3-8 p.vi
"Although Verilog became an IEEE Standard after VHDL, it has been used
by digital designers for far longer"
---
John F. Wakerly "Digital design", 1990, 1994, 2000 0-13-082599-9 p. 265
"At about the same time that VHDL was developing, a different hardware
design language appeared on the scene"
MfG,
So insgesamt merkt man aber, von welcher Ecke Verilog bwz. VHDL kommen.
Verilog kommt definitiv von E-Technikern: Gaaanz enger Sprachhorizont
(sonst hätte es 20 Jahre später kein System-Verilog gebraucht, um
fehlende VHDL-Features zu bekommen). Und dann natürlich die
hinge(r|k)otzte Stopsel-Syntax, die mich irgendwie an einen
Macro-Assembler erinnert. Hauptsache keinen richtigen Parser bauen
müssen und Bytes im Code sparen kann man ja damit auch noch...
VHDL kommt sicher von Informatikern: Strikt/Typ-Sicher und tipp-intensiv
bis zum Umfallen, massig komplexe Sprachkonzepte (die wenigsten davon
für die heute Hauptanwendung aka Synthese nutzbar) und im wesentlichen
nur Erweiterungen "nach unten" zur besseren Nutzung (vernünftige Libs,
kürzere Schreibweisen, etc.).
Ich bin Informatiker, mir gefällt VHDL deutlich besser ;)
Das MaWin'sche Klischee, dass man mit VHDL nichts zustande bekommt,
kommt IMO von den Cadence-Salesdroids Mitte der 90er. Da hatte ich
gerade mit VHDL angefangen und mal von Problemen mit den
§%&@-Synopsys-Tools abgesehen schnell recht komplexe Sachen im FPGA am
Laufen.
Ein Studienkollege (pro-Verilog) hat mir zu der Zeit aber immer die
Grusel-Stories erzählt, wo in einem Shoot-Out >10 Designer mit VHDL
nicht mal einen Zähler hinbekommen hätten. Sollte das wirklich so
gewesen sein (und kein FUD von Cadence), bin ich mir sicher, dass das
dann alles "Designer" gewesen sein müssen, die vorher nur in 74er-TTL
oder Einzel-FFs beim Chipdesign gedacht haben. VHDL selbst war für mich
nach kurzer Eingewöhnungszeit (die man aber überall hat) wirklich ein
no-Brainer, und damals gabs noch keine 1000 Tutorials dafür im Netz...
Georg A. schrieb:> Ein Studienkollege (pro-Verilog) hat mir zu der Zeit aber immer die> Grusel-Stories erzählt, wo in einem Shoot-Out >10 Designer mit VHDL> nicht mal einen Zähler hinbekommen hätten. Sollte das wirklich so> gewesen sein (und kein FUD von Cadence), bin ich mir sicher, dass das> dann alles "Designer" gewesen sein müssen, die vorher nur in 74er-TTL> oder Einzel-FFs beim Chipdesign gedacht haben.
Hat stattgefunden, war aber eine Variation eines Zähler, einen einfachen
Zähler hätte der eine oder andere einfach auswendig runtergeschrieben.
Diese Liste der VHDL Teilnehmer liest sich ganz sicher nicht wie
Anfänger:
1
TABLE 1) ASIC, FPGA & TOOL EXPERIENCE OF VHDL COMPETITORS
> Diese Liste der VHDL Teilnehmer liest sich ganz sicher nicht wie> Anfänger:
Schön, dann beweist dieser Test, dass das Denken von E-Technikern
einfach nicht zum VHDL-Konzept passt ;)
Edit: ... oder einfach nur die Synopsys-Tools Mist waren. Gab ja für
VHDL eigentlich nichts anderes. Nachdem ich damals auch mit denen
gearbeitet habe, tippe ich eher darauf...