29.03.2010, 08:52 AM
Nochmal zur Philosophie....
Der Mensch ist es gewohnt, Aufgaben der Reihe nach abzuarbeiten. Man nimmt nen Nagel in eine Hand, den Hammer in die andere Hand und dann schlägt man den Nagel ein. Und erst dann hängt man das Bild auf. Genau so arbeiten auch die meisten unserer Programmiersprachen und Controller, weswegen wir die so mühelos verstehen.
VHDL ist dagegen ganz anders. Hier wird das Bild schon aufgehängt, während der Nagel noch eingeschlagen wird. Das KANN der Mensch nicht nachvollziehen, zumindest dann nicht, wenn die Komplexität steigt, also wenn auf gleiche Weise ein ganzes Hochhaus gebaut wird. Noch während die Stahlträger am Kran schwenken, werden sie verschweißt. Dabei hat der Architekt noch nicht einmal den gesamten Plan fertig, denn er hat gerade eben erst das Schweißen angeordnet. Und zeitgleich ziehen die Elektriker ihre Kabel und die Maler beginnen ihre Arbeit. Zeitgleich arbeiten auf der Baustelle zigtausende von Handwerkern. Und trotzdem wird das Hochhaus einwandfrei fertig. In Nanosekunden.
Kein einzelner Mensch auf dieser Welt (und erst recht nicht ein Team) kann das überblicken. Jeder empfindet das Treiben als heilloses Durcheinander. Auch VHDL-Programmierer, was bei der Entwicklung der Sprache wohl deswegen nicht bedacht wurde, weil sich damals keiner derart komplexe FPGAs und CPLDs vorstellen konnte.
Zum Glück haben sich (erst vor wenigen Jahren) kluge Köpfe hingesetzt und eine Strategie eingeführt, die VHDL-Projekte "verständlich" machen. Es wird bei der Programmierung so getan, als wenn wir es mit einem sequentiellen Bauteil zu tun hätten. Der Compiler kriegt davon nichts mit - zum Schluss kommt das Hochhaus raus.
Wer also in VHDL einsteigen will, sollte gleich vom Start weg so arbeiten. Trotz der Verlockung, "mal eben schnell" 85 parallele Mini-Prozesse zu entwerfen, weil so die anstehende Aufgabe scheinbar schnell gelöst werden kann.
Der Mensch ist es gewohnt, Aufgaben der Reihe nach abzuarbeiten. Man nimmt nen Nagel in eine Hand, den Hammer in die andere Hand und dann schlägt man den Nagel ein. Und erst dann hängt man das Bild auf. Genau so arbeiten auch die meisten unserer Programmiersprachen und Controller, weswegen wir die so mühelos verstehen.
VHDL ist dagegen ganz anders. Hier wird das Bild schon aufgehängt, während der Nagel noch eingeschlagen wird. Das KANN der Mensch nicht nachvollziehen, zumindest dann nicht, wenn die Komplexität steigt, also wenn auf gleiche Weise ein ganzes Hochhaus gebaut wird. Noch während die Stahlträger am Kran schwenken, werden sie verschweißt. Dabei hat der Architekt noch nicht einmal den gesamten Plan fertig, denn er hat gerade eben erst das Schweißen angeordnet. Und zeitgleich ziehen die Elektriker ihre Kabel und die Maler beginnen ihre Arbeit. Zeitgleich arbeiten auf der Baustelle zigtausende von Handwerkern. Und trotzdem wird das Hochhaus einwandfrei fertig. In Nanosekunden.
Kein einzelner Mensch auf dieser Welt (und erst recht nicht ein Team) kann das überblicken. Jeder empfindet das Treiben als heilloses Durcheinander. Auch VHDL-Programmierer, was bei der Entwicklung der Sprache wohl deswegen nicht bedacht wurde, weil sich damals keiner derart komplexe FPGAs und CPLDs vorstellen konnte.
Zum Glück haben sich (erst vor wenigen Jahren) kluge Köpfe hingesetzt und eine Strategie eingeführt, die VHDL-Projekte "verständlich" machen. Es wird bei der Programmierung so getan, als wenn wir es mit einem sequentiellen Bauteil zu tun hätten. Der Compiler kriegt davon nichts mit - zum Schluss kommt das Hochhaus raus.
Wer also in VHDL einsteigen will, sollte gleich vom Start weg so arbeiten. Trotz der Verlockung, "mal eben schnell" 85 parallele Mini-Prozesse zu entwerfen, weil so die anstehende Aufgabe scheinbar schnell gelöst werden kann.