mikrocontroller.net

Forum: FPGA, VHDL & Co. VHDL programmieren Grundlagen


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.
Autor: Carl (Gast)
Datum:

Bewertung
-4 lesenswert
nicht lesenswert
Nachdem es hier ja so viele Diskussion um's Programmieren von FPGAs 
gibt, möchte ich mal ein wenig VHDL programmieren :-;

Los geht's mit
entity hello is
end entity;
 
architecture sim of hello is
begin
 
    process is
    begin
 
        report "Hello World!";
        wait;
 
    end process;
 
end architecture;

Autor: Carl (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Jetzt stellt sich die Frage, wie man eine Schleife realisieren könnte.
entity hello is
end entity;
 
architecture sim of hello is
begin
 
    process is
    begin
 
        report "Hello World!";
        wait;
 
    end process;
 
end architecture;

Könnte man mit "report" einen Zählerwert ausgeben?

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carl schrieb:
> Könnte man mit "report" einen Zählerwert ausgeben?
Ja.
https://insights.sigasi.com/tech/vhdl-assert-and-report.html

Aber das steht auch in jedem noch so lausigen x-beliebigen VHDL Buch 
beim Thema Simulation oder Attribute...

: Bearbeitet durch Moderator
Autor: Carl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Aber das steht auch in jedem noch so lausigen x-beliebigen VHDL

Viellicht ... aber trotzdem Danke für den Link :-)

Hier das Zählerbeispiel:
entity helloCount is
end entity;
 
architecture sim of helloCount is
begin

  process is
    variable count: integer:=0;
  begin
  for n in 1 to 8 loop
    report "Hello World, count = " & integer'image(n);
  end loop;
  wait;
 
  end process;
 
end architecture;


Kann man eigentlich von der Tastatur lesen? So wie in c gethchar() ?

Autor: Schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst z.B. mit readline eine Zeile von der Konsole lesen, falls dir 
das weiter hilft.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... und auch von files.

Man kann in VHDL praktisch alles machen, was im elementaren C auch geht, 
abgesehen von der Array- und Pointerarithmetik. Die Sprachen befinden 
sich da auf dem selben Level.

Die Frage ist, wie weit das gehen soll. Anspruchsvolle Konstrukte löst 
man besser in System-C.

Ich sehe hier auch wieder Ansätze, sich das Verständnis für FPGAs über 
das VHDL-Lernen erarbeiten zu wollen.

Und ich habe auch schon einen Verdacht, was die nächste Frage sein wird 
...

Autor: Weltbester FPGA-Pongo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Aber das steht auch in jedem noch so lausigen x-beliebigen VHDL Buch
nicht in allen, wie mir scheint.

Aber muss man wirklich das Forum mit Lernbeispielen zuspammen?

Hatten wir nicht schon genug davon der Herren Martin O., Peter B., Gustl 
B., Holger K. und dem "Bösen Kommunisten", welche in der Vergangenheit 
schubweise das Forum mit Anfängerfragen oder "Grundlagen"-Artikelserien 
beehrt haben?

Seit einigen Tagen, ist der ominöse "Carl" zugange.

Wer kommt als Nächstes?

Autor: Carl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Weltbester FPGA-Pongo (Gast)

Ich frage mich: Muss der "Weltbeste FPGA Pongo" zu allem eine Meinung 
haben?
Liegt es im Rahmen der Möglichkeiten deines Egos einfach mal die Klappe 
zu halten, wenn du nichts zu einem Thread zu sagen hast.

Autor: C. A. Rotwang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carl schrieb:
>>Weltbester FPGA-Pongo (Gast)
>
> Ich frage mich: Muss der "Weltbeste FPGA Pongo" zu allem eine Meinung
> haben?
> Liegt es im Rahmen der Möglichkeiten deines Egos einfach mal die Klappe
> zu halten, wenn du nichts zu einem Thread zu sagen hast.

Naja, auch ich stimme dem "Weltbester FPGA-Pongo" zu, die Posts von 
"Carl" können einem gewaltig auf den Sack gehen.

Nicht nur das das x-mal durchgekaut wurde, es hat auch den Eindruck, das 
sich "Carl" bewusst dafür entschieden hat, mit einer Lern- und 
Beratungsresistenz bezüglich VHDL-Fachtermini zu kokettieren (oder zu 
provozieren?).

Dam Forums- und Weltfrieden wäre besser geholfen wenn der "Carl" mal mal 
seine Lust am Daherschnattern im Zäume hält.

Autor: Fitzebutze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seit nun der letzte Youtuber sich entschieden hat, hier täglich sein 
heiteres VHDL-Gedankentagebuch zu aktualisieren, könnte vielleicht mal 
über ein detailliertes Studium der Netiquette nachgedacht werden.
Oder darüber, dass die 'Schnatterei' ab dem Punkt ein Forum völlig 
unbrauchbar macht, wenn es a) alle tun b) nützliche Information 
zugespammt aka nicht mehr auffindbar ist  - abgesehen von der 
offensichtlichen Faulheit, sich auf die Suche danach zu machen.
Lernen heisst nicht: Fütter mich. Und auch nicht "Guck mal, was ich 
grade kapiert habe" - "Feiiin!".

Autor: C. A. Rotwang (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Naja, auch ich stimme dem "Weltbester FPGA-Pongo" zu, die Posts von
>"Carl" können einem gewaltig auf den Sack gehen.

Wenn Du ganz stark bist, musst Du sie gar nicht lesen und dich dann 
nicht aufregen.

Außerdem haben die Post sogar einen Sinn: Oft wenn ich ein Board in 
Betrieb nehme, muss ich erst mal ewig suchen, bis überhaupt erst einmal 
etwas blinkt.

Deshalb mache ich dann solche Threads wie diesen hier

Beitrag "XC6SLX16 Spartan 6 Entwicklungsboard"    [MOD: Link korrigiert]

in dem dann wirklich alle Informationen zur schnellen Inbetriebnahme 
gesammelt sind ( positiv Beispiel: Stackoverflow ).

Und das ist tatsächlich der Sinn eines Forums: wichtig technische 
Informationen auf einen Blick.

Hier mal das genaue Gegenbeispiel: Ursprünglich gemacht, um das SDRAM in 
Betrieb zu nehmen, wird's zum ausufernden Gelaber.

Beitrag "VHDL SDRAM Controller"

Schließlich und endlich war's nur ein Link in dem Thread, der für das 
erwähnte Board die Hilfe brachte.

: Bearbeitet durch Moderator
Beitrag #5867843 wurde von einem Moderator gelöscht.
Autor: Vancouver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weltbester FPGA-Pongo schrieb im Beitrag #5867695:
> Aber muss man wirklich das Forum mit Lernbeispielen zuspammen?

Wo steht denn, dass hier keine Lernbeispiele gepostet werden dürfen? Es 
ist völlig legitim, wenn hier Anfängerfragen gestellt werden, auch wenn 
sich Euer Majestät der Experte dadurch gelangweilt fühlen.
Diese völlig geistlosen Postings über Einsteigsgehälter und "was soll 
ich studieren" gehen mit deutlich mehr auf die Juwelen.

> Wer kommt als Nächstes?

Vielleicht du. Wenn es mal um ein Thema geht, von dem du keine Ahnung 
hast.

Autor: Abtasten! - Nicht Rumfummeln. (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Vancouver schrieb:
> Wo steht denn, dass hier keine Lernbeispiele gepostet werden dürfen?

Wo ist das oben gezeigte "Hello world" ein  Lernbeispiel für 
FPGA-programmierung? Das ist der Mist einer C-Banause, aber nix 
relevantes für das Design einer Logicgatterschaltung!

Das Aquivalent eines hello worlds als lernbeispiel ist für 
FPGA-programmierung die Ausgabe einer Schalterstellungskombination auf 
einer sieben-segment anzeige. An einer konkreten Hardwarerealisierung, 
meinetwegen auch nur als Simulation lernt man was konkret mit FPGA zu 
realisieren, aber nicht an einer simplen Compiler-ausgabe.

Damit sollte der TO mal kommen, mit einer top-entity mit einer Handvoll 
ein- ausgänge mit typ std_logic die fehlerfrei compiliert wird. Das wäre 
dann das Analogon zu einer main-function als Grundgerüst jedes 
Programmes.

Autor: Vancouver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Abtasten! - Nicht Rumfummeln. schrieb:
> FPGA-programmierung

Der TO probiert ein paar Dinge aus, die üblicherweise in einer Testbench 
gemacht werden. Was ist daran falsch? Die ersten paar Zeilen VHDL im 
Leben sehen bei den meisten Leuten so aus wie oben. Nicht wirklich 
sinnvoll, aber gut genug, um den grundsätzlichen Simulatorflow mal 
auszuprobieren.

Man kann sich auch wirklich über jeden Scheiß aufregen. Wenn's dir nicht 
gefällt oder zu billig ist, dann lies den Artikel einfach nicht und gut 
is.

Autor: Abtasten! - Nicht Rumfummeln. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vancouver schrieb:
> Man kann sich auch wirklich über jeden Scheiß aufregen. Wenn's dir nicht
> gefällt oder zu billig ist, dann lies den Artikel einfach nicht und gut
> is.

Und den TO weiter auf seinen Holzweg Richtung "Ich lern jetztz 
VPGA-programme schreiben" weiterstolpern lassen bis er sich endlich das 
Genick gebrochen hat und leichenstill liegenbleibt?

Und warum schreibt, nein spammt!, der TO einen Post nach dem anderen, 
wenn er nicht will das er eine Antwort drauf bekommt?!


Es ist nicht "zu billig", es ist der komplett falsche Lern-Ansatz. Und 
das wurde dem TO und den anderen Pappnasen im Geiste wiederholt gesagt.

Man wird nicht zum Piloten, wenn man mit seinen PKW das Einparken im 
Hangar übt. Man muss dazu schon ins (Flugzeug-)Cockpit steigen, 
losstarten und schauen das man heile runterkommt. Und nicht aufregen, 
wenn man Parkverbot für seinen Fiat-Panda im Airbus-Hangar bekommt. Das 
ist nämlich völlig unnötig zum Fliegen.

Autor: Freizeitpilot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C. A. Rotwang schrieb:
> Dam Forums- und Weltfrieden wäre besser geholfen wenn der "Carl" mal mal
> seine Lust am Daherschnattern im Zäume hält.

+1!

Die Carls dieser Welt sollten einfach an einer Hochschule einen 
Studiengang belegen und sich dann mit anderen vergleichen, wie sie 
weiter kommen, um festzustellen, ob sie für das Thema taugen oder nicht.

Sich im Selbststudium eine Sprache bezubringen, die nur reletiv wenige 
Befehle hat ist eine Sache -

von dem Thema etwas zu verstehen, das man mit dieser Sprache beackert, 
eine andere.

Abtasten! - Nicht Rumfummeln. schrieb:
> Man wird nicht zum Piloten, wenn man mit seinen PKW das Einparken im
> Hangar übt. Man muss dazu schon ins (Flugzeug-)Cockpit steigen,
> losstarten und schauen das man heile runterkommt.

Genau: Rein ins Flugzeug ohne Fluglehrer und ausprobieren, wie man 
fliegt. So sind schon sehr viele sehr früh wieder runtergekommen.

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zugegeben, der Sinninhalt von Carl's Posts ist teilweise heftig 
unterdurchschnittlich. Aber wenn's einem auf den Keks geht, braucht 
man's ja nicht zu lesen.

Aber: die VHDL-Abteilung war (zumindest nach meinem Eindruck) im 
Vergleich zum rauen Umgang in den anderen Abteilungen immer einer der 
Ruhepole dieses Forums, wo meist einigermassen vernünftig miteinander 
umgegangen wurde.

Warum trifft man sich neuerdings auch hier zur kollektiven Steinigung? 
Und warum pöbeln immer die, von denen man hier noch nie Gehaltvolleres 
gelesen hat?

Autor: Carl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vancouver schrieb:
>Der TO probiert ein paar Dinge aus, die üblicherweise in einer Testbench
>gemacht werden. Was ist daran falsch? Die ersten paar Zeilen VHDL im
>Leben sehen bei den meisten Leuten so aus wie oben. Nicht wirklich
>sinnvoll, aber gut genug, um den grundsätzlichen Simulatorflow mal
>auszuprobieren.

Markus F. ( mfro )
>Zugegeben, der Sinninhalt von Carl's Posts ist teilweise heftig
>unterdurchschnittlich. Aber wenn's einem auf den Keks geht, braucht
>man's ja nicht zu lesen.

Die Beispiele oben habe ich im wesentlichen von anderen Webseiten 
abgeschaut. Der Grund für den Thread war eigentlich, weil es hier immer 
wieder Diskussion gibt, ob man "FPGAs" programmieren kann und VHDL eine 
richtige Programmiersprache sei.

Das wollte ich etwas kreativ nutzen und mit VHDL ein Programm für den PC 
schreiben ( ein Spiel oder irgend etwas anderes, vielleicht eine 
Simulation die an eine GUI piped ). Aber es war relativ bald klar, dass 
hier kaum jemand unterwegs ist, der sich eine andere Verwendung als die 
Gewöhnliche vorstellen kann. Deshalb habe ich meine Posts hier in diese 
Richtung eingestellt. ( Wobei ich euch, Vancouver und Markus als seltene 
Vertreter dieses Forums die Überwindung des Tellerrands zutraue ).

Eine Erkenntnis aus den Experimenten mit VHDL als PC-Programmiersprache 
habe ich gewonnen: Man kann die Grenzen eines Tools, wenn man es für 
andere  Dinge verwendet als vorgesehen, viel tiefer austesten.

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carl schrieb:
> Der Grund für den Thread war eigentlich, weil es hier immer
> wieder Diskussion gibt, ob man "FPGAs" programmieren kann und VHDL eine
> richtige Programmiersprache sei.

VHDL ist eine richtige Programmiersprache, aber sie ist nicht zum 
Programmieren gedacht.

Carl schrieb:
> Eine Erkenntnis aus den Experimenten mit VHDL als PC-Programmiersprache
> habe ich gewonnen: Man kann die Grenzen eines Tools, wenn man es für
> andere  Dinge verwendet als vorgesehen, viel tiefer austesten.

Wenn Du mit dem Hammer die Schraube in die Wand haust, lernst Du was 
über den Schraubenzieher? Möchte ich bezweifeln.

Wenn Du programmieren willst: lern' Ada. Das ist dafür gemacht und 
gedacht. VHDL wird dir anschliessend wie Kindergeburtstag vorkommen und 
Du kannst dich auf die Fälle konzentrieren, für die es gedacht ist.

Autor: Thomas U. (thomasu)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
Markus F. schrieb:
> VHDL ist eine richtige Programmiersprache, aber sie ist nicht zum
> Programmieren gedacht.

Wenm ich so etwas lese:

Wozu denn sonst, wenn nicht zum Programmieren?

Das ist doch Stuss!

Wieso denkt eigentlich jeder, er müsse Begriffe umdeuten und 
infragestellen, obwohl die Themen längst geklärt sind.

F.P.G.A  field programable gate arry

Der Baustein ist programmierbar, die Sprache ist eine
Programmiersprache, aber diese anzuwenden ist nicht "programmieren", 
sondern "pippi faxing", oder was?

Das ist doch Blödsinn, der in SW-Entwicklerhirnen wächst, weil sie unter 
programmieren nur ihren Kram verstehen.

: Bearbeitet durch User
Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas U. schrieb:
> F.P.G.A  field programable gate arry
Wobei das "programmable" hier mit "Programmieren" im Sinne von "etwas 
auf der Tastatur in einen Texteditor hineintippen und dann compilieren" 
nichts zu tun hat.
Speziell dann nicht, wenn diese Eingabe mit einer V.H.D.L. Very high 
speed integrated circuit Hardware Description Language gemacht wird.
Und das englische Wiki schreibt dann auch gleich in der ersten Zeile 
nicht von "to be programmed" sondern "to be configured":
https://en.wikipedia.org/wiki/Field-programmable_gate_array

Fazi: herumreiten auf Worten wie "Programmieren" oder "Beschreiben" 
bringt nichts. Allerdings helfen sie anderen, den Bereich 
"Hardwareprogrammierung" von der allgemein bekannten 
"Softwareprogrammierung" zu unterscheiden.

Thomas U. schrieb:
> die Sprache ist eine Programmiersprache
Da wird aber zumindest im englischen Wikipedia im zugehörigen "nicht 
allgemeinverständlichen" Artikel sehr differenziert gesehen:
https://en.wikipedia.org/wiki/Hardware_description_language

: Bearbeitet durch Moderator
Autor: Helmut S. (helmuts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas U. schrieb:
> Markus F. schrieb:
>> VHDL ist eine richtige Programmiersprache, aber sie ist nicht zum
>> Programmieren gedacht.
>
> Wenm ich so etwas lese:
>
> Wozu denn sonst, wenn nicht zum Programmieren?
>
> Das ist doch Stuss!
>
> Wieso denkt eigentlich jeder, er müsse Begriffe umdeuten und
> infragestellen, obwohl die Themen längst geklärt sind.
>
> F.P.G.A  field programable gate arry
>
> Der Baustein ist programmierbar, die Sprache ist eine
> Programmiersprache, aber diese anzuwenden ist nicht "programmieren",
> sondern "pippi faxing", oder was?
>
> Das ist doch Blödsinn, der in SW-Entwicklerhirnen wächst, weil sie unter
> programmieren nur ihren Kram verstehen.


Mir scheint, dass nur die Deutschen mit dem Begriff programmieren von 
FPGAs ein Problem haben. Es wundert mich aber wiederum nicht, weil wir 
ja schon immer glauben alles genauer und besser zu können als der Rest 
der Welt.

Google: programming FPGA

Nur einer der vielen Treffer

https://www.embedded.com/design/prototyping-and-development/4006429/FPGA-programming-step-by-step

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helmut S. schrieb:
> Mir scheint, dass nur die Deutschen mit dem Begriff programmieren von
> FPGAs ein Problem haben.
Du hast meinen Link zum englischen Wikipedia nicht gelesen?

Helmut S. schrieb:
> Mir scheint
... dein Beitrag trägt nichts zur Klärung bei. Oder heißt der letztlich 
einfach nur "wenn alle dazu programmieren sagen, dann nennen wir es 
eben programmieren ." So, wie ich heute morgen meinen Backofen darauf 
programmiert habe, dass die Fritten während meiner Abwesenheit so weit 
erwärmt werden, dass ich sie bei meiner Ankunft gleich verzehren kann.

: Bearbeitet durch Moderator
Autor: Helmut S. (helmuts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Helmut S. schrieb:
>> Mir scheint, dass nur die Deutschen mit dem Begriff programmieren von
>> FPGAs ein Problem haben.
> Du hast meinen Link zum englischen Wikipedia nicht gelesen?
>
> Helmut S. schrieb:
>> Mir scheint
> ... dein Beitrag trägt nichts zur Klärung bei. Oder heißt der letztlich
> einfach nur "wenn alle dazu programmieren sagen, dann nennen wir es
> eben programmieren ." So, wie ich heute morgen meinen Backofen darauf
> programmiert habe, dass die Fritten während meiner Abwesenheit so weit
> erwärmt werden, dass ich sie bei meiner Ankunft gleich verzehren kann.

Das Problem ist, dass wir in Deutschland den Begriff "programming" nur 
in Zusammenhang mit "software programming" sehen. Das sehen die Kollegen 
in den anderen Ländern einfach anders. Mir scheint das ist einfach ein 
Übersetzungs/Definitions-Problem des Begriffs "programming" bei uns.

Autor: Ge. B. (georg2011) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas U. schrieb:
> Das ist doch Blödsinn, der in SW-Entwicklerhirnen wächst,

in manchen Softwarehirnen. Die meisten, die ich kenne tun das nicht 
und nennen alle Anweisungen, die eine Software oder eine Hardware 
ausführt, eine Software. Und eine Software ist gleichbedeutend mit einem 
Programm.

Helmut S. schrieb:
> Das Problem ist, dass wir in Deutschland den Begriff "programming" nur
> in Zusammenhang mit "software programming" sehen

nur manche Deutsche sehen das so :-)

Würden sich Hardwareentwickler mehr mit Softwareentwicklern unterhalten, 
hätten sie diese Meinung nicht.

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helmut S. schrieb:
> Mir scheint das ist einfach ein Übersetzungs/Definitions-Problem des
> Begriffs "programming" bei uns.
Ich bin glücklich, dass wir für unterschiedliche Tätigkeiten 
(Hardwareprogrammierung per Schaltungsbeschreibung mit Verilog, VHDL, 
System-C,... sowie Softwareprogrammierung mit Programmiersprachen wie 
Java, C#, Python,...) unterschiedliche Wörter haben.

Und verwende diese unterscheidenden Begriffe einfach entsprechend. Dann 
kann ich mit VHDL einen Prozessor beschreiben, den ich anschließend in C 
programmiere.
Und muss so zum Glück nicht einen zuvor in VHDL programmierten Prozessor 
hinterher noch in C programmieren...

: Bearbeitet durch Moderator
Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab' grad' meinen Radiowecker programmiert, der nach einem 
Stromausfall seine Uhrzeit verloren hat. War eigentlich ganz einfach.

Macht mich das zum Programmierer?

Ist die Hardware jetzt anders als vorher? Jedenfalls verhält sie sich 
anders, soweit ich beobachten konnte.

Wenn ich mein FPGA programmiere, ist die Hardware dann eine andere als 
vorher?

Autor: Helmut S. (helmuts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Helmut S. schrieb:
>> Mir scheint das ist einfach ein Übersetzungs/Definitions-Problem des
>> Begriffs "programming" bei uns.
> Ich bin glücklich, dass wir für unterschiedliche Tätigkeiten
> (Hardwareprogrammierung per Schaltungsbeschreibung mit Verilog, VHDL,
> System-C,... sowie Softwareprogrammierung mit Programmiersprachen wie
> Java, C#, Python,...) unterschiedliche Wörter haben.
>
> Und verwende diese unterscheidenden Begriffe einfach entsprechend. Dann
> kann ich mit VHDL einen Prozessor beschreiben, den ich anschließend in C
> programmiere.
> Und muss so zum Glück nicht einen zuvor in VHDL programmierten Prozessor
> hinterher noch in C programmieren...

Da gibt es aber eine Menge Leute in Deutschland die mit dem Begriff 
Hardwareprogrammierung die Ansteuerung von Hardware mittels 
Software-Programm meinen. Dre Begriff Harwareprogrammierung ist also 
schon anderweitig vorbelegt.

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helmut S. schrieb:
> Dre Begriff Harwareprogrammierung ist also schon anderweitig vorbelegt.
Das ist der Grund, warum ich üblicherweise "Hardwarebeschreibung" sage.

> die mit dem Begriff Hardwareprogrammierung die Ansteuerung von Hardware
> mittels Software-Programm meinen.
Dann sind sie schon mal so weit, zu wissen, dass ihr Programm keine rein 
abstakte Aktion ist, die irgendwann mal fertig sollte, sondern dass 
ihnen von dieser Hardware zeitliche und systematische Begrenzungen 
auferlegt werden.

: Bearbeitet durch Moderator
Autor: Carl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus F. schrieb
>Wenn Du mit dem Hammer die Schraube in die Wand haust, lernst Du was
>über den Schraubenzieher? Möchte ich bezweifeln.

>Wenn Du programmieren willst: lern' Ada. Das ist dafür gemacht und
>gedacht. VHDL wird dir anschliessend wie Kindergeburtstag vorkommen und
>Du kannst dich auf die Fälle konzentrieren, für die es gedacht ist.

Ist Ada so schön parallelisiert wie VHDL?
Falls nicht würde ein wesentlicher Lerneffekt weg fallen und der 
Vergleich von Schraube und Hammer mehr als hinken.

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carl schrieb:
> Ist Ada so schön parallelisiert wie VHDL?
> Falls nicht würde ein wesentlicher Lerneffekt weg fallen und der
> Vergleich von Schraube und Hammer mehr als hinken.

Hier ist kein Ada-Forum. Dennoch ist eine Ada Task einem VHDL-Prozess 
sehr ähnlich.

Autor: W.S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus F. schrieb:
> Warum trifft man sich neuerdings auch hier zur kollektiven Steinigung?
> Und warum pöbeln immer die, von denen man hier noch nie Gehaltvolleres
> gelesen hat?

Weil trotz erwiesener Schieflage die Protgonisten unangefochten 
jeglicher Argumente noch immer behaupten, daß eben diese Schieflage 
garnicht existiert, sondern der Rest der Welt schief liegt.

W.S.

Autor: Gödel, Escher, Bach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
W.S. schrieb:
> Markus F. schrieb:
>> Und warum pöbeln immer die, von denen man hier noch nie Gehaltvolleres
>> gelesen hat?
>
> Weil trotz erwiesener Schieflage die Protgonisten unangefochten
> jeglicher Argumente noch immer behaupten, daß eben diese Schieflage
> garnicht existiert, sondern der Rest der Welt schief liegt.

Und das sagt genau einer dieser Protagonisten!
Was über die Gödelsche Schleife (die Aussage "alle Kreter lügen" gemacht 
von einem Kreter) zeigt was die Diskussion im Kern ist - 
Nullinformation.

Obwohl genau das eigentliche Interesse des TO zu sein scheint, nur 
soviel vom System-VHDL anzuwenden, das er nichts "falsch" machen kann. 
Die Implikation, das er damit auch nichts "Richtig" machen kann 
ignoriert man gefließentlich.
Gödelscher Unvollständigkeitssatz at work!

Autor: Carl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gödel, Escher, Bach (Gast)
>Obwohl genau das eigentliche Interesse des TO zu sein scheint, nur
>soviel vom System-VHDL anzuwenden

Allerdings sollte man auch als Hobby-Geisteswissenschaftler die 
Fähigkeit mitbringen, Texte genau zu lesen und Begrifflichkeiten 
auseinanderhalten zu können ;-)

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas U. schrieb:
> Wieso denkt eigentlich jeder, er müsse Begriffe umdeuten und
> infragestellen, obwohl die Themen längst geklärt sind.
>
> F.P.G.A  field programable gate arry

Welche Programmiersprache brauche ich für einen programmable resistor?

http://brightbit.blogspot.com/2015/11/ebay-0r-9999999r-seven-decade.html

Autor: Gödel, Escher, Bach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carl schrieb:
> Gödel, Escher, Bach (Gast)
>>Obwohl genau das eigentliche Interesse des TO zu sein scheint, nur
>>soviel vom System-VHDL anzuwenden
>
> Allerdings sollte man auch als Hobby-Geisteswissenschaftler die
> Fähigkeit mitbringen, Texte genau zu lesen und Begrifflichkeiten
> auseinanderhalten zu können ;-)

Die halt ich auseinander, offensichtlich verwechselst du hier was, 
gemeint ist das formale System "VHDL" und nicht irgendeine 
Verballhornung von VHDL und System-C.


Und die Auseinanderstzung mit Gödels Arbeiten zur Logik ist keine 
Geisteswissenschaft, wie du suggerierst sondern Mathematik reinstes 
Wassers, deren erweiterte Grundkenntnis jedem Programmierer (egal ob 
Hard- oder Software) gut tut.

Konzentrier Dich bitte auf deine eigenen Fehler und stocherer nicht wie 
ein Blinder in den Äußerungen anderer zu Zwecke der 
Selbstbeweihräucherung eigenem Unwissens rum.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Duke Scarring schrieb:
> Welche Programmiersprache brauche ich für einen programmable resistor?

Guter Beitrag! Dazu der kleine Einwurf von mir:

Für die Programmierung einer Hardware, benötigt es nicht zwingend eine 
Programmiersprache. Der erste Computer benutzte auch keine, sondern nur 
Schalterstellungen wie das von dir gezeigte Board.

Was heißt das nun?

1) Man kann Hardware programmieren durch Hardware(-Settings)
2) Man kann Hardware programmieren durch Software(-settings)
3) Man kann Software programmieren durch Hardware(-settings)
4) Man kann Software programmieren durch Software(-settings)

Fall 1: Der FPGA wird durch Belegen der M-Pins eingestellt, wie er laden 
soll

Fall 2: Der FPGA wird durch den bitstream beladen. Die Luts werden 
eingestellt.

Fall 3) Die Funktion der virtuellen Schaltung im FPGA wird durch 
Konfig-Pins (GPIOs) ausgewählt

Fall 4) Die Synthese-Software wird durch das VHDL und UCF kommandiert, 
wie sie zu bauen hat.

Nachdem gemäß Fall 4 die Software das VHDL Programm abgearbeitet hat, 
kommt eine Software heraus, die gemäß Fall 1 geladen wird, was direkt 
den Fall 2 einleitet und den FPGA bootet, der sogleich gemäß Fall 3 für 
das passende PCB agiert.

Fazit:

FPGA-Programmierung deckt also alles ab, was bisher genannt wurde.


Und weil es so schön ist:

[Deutschunterricht.ModeOn <= True]

Ich nenne es FPGA-Programmierung, weil der FPGA am Ende per stream 
programmiert wird und zwischendurch zudem die Synth-Software 
programmiert wird. Aber auch  ohne den heute üblichen Zwischenschritt 
der Nutzung einer Synthesesoftware wurden früher programmierbare 
Bausteine immer schon programmiert und zwar zwischenzeitlich durch 
Gleichungen und ganz früher durch eben solche (elektrische) Schalter in 
einer Matrix. Das ist vollkommen equivalent.

Der Begriff FPGA-Entwicklung hingegen ist streng genommen unrichtig, 
weil FPGAs von Xilinx et. al. entwickelt werden. Wir benutzen sie nur.

Wenn schon "Entwicklung", dann reden wir hier bei Hardware von 
Elektronikentwicklung, also der Entwicklung VON Elektronik MIT FPGAs.


Ansonsten spreche ich von VHDL-Entwicklung, weil dieses eben erstellt 
wird.
Der Begriff VHDL-Programmierung ist streng genommen unrichtig, da VHDL 
nichts ist, das programmiert werden kann, sondern VHDL eine Sprache ist, 
MIT DER entwickelt wird und mit der etwas programmiert werden kann. Wir 
sprechen auch nicht von Mehl-Entwicklung, sondern Kuchen-Entwicklung, 
weil Mehl das Mittel ist, um zum Objekt Kuchen zu gelangen.

Wenn schon "Programmierung", dann reden wir hier bei Software von 
Softwareprogrammierung, also der Programmierung VON Synthesesoftware MIT 
(VHDL, TCL, UCF).

Ich schreibe das mit den UCF und TCL absichtlich dazu, falls jemand 
kommt und behauptet, er würde dadurch und auch durch generics und 
Parameter das VHDL Programmieren = Konfigurieren (so einen Schlaubären 
hatte ich schon mal in einem Seminar). Die logische Konsequenz ist aber, 
dass generics und Parameter als Teil von VHDL auch das Synthesetool 
programmieren und nicht etwa die Programmiersprache. Sprachen lassen 
sich nicht komandieren, nur Anwender und Interpreter von Sprachen.

Nun wissen wir aber alle, dass sprachlich sehr wohl vom 
"C-Programmierer" und "VHDL-Programmierer" gesprochen wird. Warum das im 
Englischen (siehe oben) weniger ein Problem ist, wird klar, wenn man 
weiß, dass "programming" (auch) eine Verlaufsform ist und damit 
eigentlich "programmierend" heißt, sich also auf die Person bezieht. 
Damit stimmt es im englischen in jeglicher Verwendung. Richtig wäre es 
nun, im Deutschen nach "VHDL-Programmierenden" zu suchen. Das wäre 
logisch stimmig(er) und erledigte auch gleich das gender-Thema.

[Deutschunterricht.ModeOn <= False]

: Bearbeitet durch User
Autor: Carl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Gödel, Escher, Bach (Gast)
Bleib mal bei einem Nickname und nenne dich nicht ständig anders.

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen S. schrieb:
> Fall 2: Der FPGA wird durch den bitstream beladen. Die Luts werden
> eingestellt.
Zumindest dieser Schritt, der ja das eigentliche P im FPGA darstellt, 
wird aber von allen FPGA-Herstellern durchgängig als "konfigurieren" 
bezeichnet.

> FPGA-Programmierung deckt also alles ab
Letztlich wird dann also mit einem VHDL-Programm die gewünschte Hardware 
so beschrieben, dass der damit programmierte Synthesizer seinerseits 
ein Programm auswirft, mit dem ich in über diverse Möglichkeiten mein 
FPGA konfigurieren kann.

> FPGA-Programmierung deckt also alles ab, was bisher genannt wurde.
Dieser Begriff ist dann aber eben auch die zusammengekochte Suppe, die 
vielen im Hals stecken bleibt: unser Techniker vor Ort programmiert das 
FPGA auf der Steuerung demnach ebenso wie derjenige, der zuvor via VHDL 
eine neue Funktion reinbaut. Und ich habe es auch programmiert, indem 
ich die Config-Pins auf der Leiterplatte so angeschlossen habe, dass die 
beiden erfolgreich zum Ziel kommen.
Mein Fazit: warum mit Gewalt 1 einzigen Begriff für unterschiedliche 
Tätigkeiten suchen (oder verwenden), wo wir doch schöne griffige 
Bezeichungen für fast jeden Teilschritt haben?

Carl schrieb:
> Bleib mal bei einem Nickname
Passt doch: pro Thread muss der gleiche Name verwendet werden.
Siehe die Nutzungsbedingungen

: Bearbeitet durch Moderator
Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wollte noch etwas hinzufügen, konnte aber nicht mehr, wegen des 
Beitrags über mir. Daher:


Helmut S. schrieb:
> Mir scheint, dass nur die Deutschen mit dem Begriff programmieren von
> FPGAs ein Problem haben.

Nicht wirklich mit dem Begriff, sondern der Kombination der Begriffe. 
Siehe meinen Beitrag eins darüber. FPGA-Programmierung <-> 
VHDL-Programmierung. Das ist nicht das Gleiche. Weder formell noch 
inhaltlich.

Die Englische Wikipedia schreibt mithin auch richtigerweise nur von der 
HW-Beschreibung durch VHDL. Das "FPGA-Programmieren" wird nicht negiert, 
sondern weiter unten sogar impliziert. Dass dort wieder mal von 
Konfigurieren gesprochen wird, ist auch nur ein Kompromiss mit denen, 
die sich gegen das Programmieren auflehnen, weil sie zu kurz denken. Wie 
ich schon schrieb, haben wir da Diskussionen hinter uns.

Die Engländer sind übrigens hinterher. Der Artikel präzisiert nicht so, 
wie der deutsche FPGA-Artikel und steht zu Recht derzeit unter 
Bearbeitungsanforderung. Den kann man also derzeit eh nicht beiziehen.

Die Engländer haben aber mit dem Brexit den Kopf voll. Lassen wir ihnen 
etwas Zeit.

Nochmal:

Der FPGA wird durchaus programmiert, aber eben mit dem bitstream und 
nicht mit dem VHDL. Dieses programmiert = kommandiert eine 
Synthesesoftware. Das wird einfach von zu vielen durcheinander geworfen 
und dann haben sie einen scheinbaren Widerspruch. Und sie setzen 
VHDL-Programmieren mit FPGA-Programmieren gleich und haben den 2. 
scheinbaren Widerspruch.

Lothar M. schrieb:
> Wobei das "programmable" hier mit "Programmieren" im Sinne von "etwas
> auf der Tastatur in einen Texteditor hineintippen und dann compilieren"
> nichts zu tun hat.
Naja, indirekt eben schon :-) Das ist aber nicht entscheidend, denn:

> Speziell dann nicht, wenn diese Eingabe mit einer V.H.D.L. Very high
> speed integrated circuit Hardware Description Language gemacht wird.
Jaha, aber beschrieben wird nicht der FPGA, sondern eine virtuelle 
Schaltung oder die Funktion einer solchen, die mit dem FPGA erstmal 
garnichts zu tun hat, weil sie überwiegend nicht auf die Techno 
Rücksicht nimmt. Soweit es aber dann um den FPGA geht, wird wiederum 
keine Schaltung mehr beschrieben, sondern Anweisungen rausgeben. (Pin, 
constraints) Das ist ein Programm. Aber eben eins für die SW.

Das ist der Knackpunkt! Damit existiert der Widerspruch, den hier Viele 
sehen, schlicht nicht. Er existiert selbst dann nicht, wenn man 
"beschreiben" inhaltlich nicht als "programmieren" gelten lassen möchte, 
obwohl es formell dieselben Worte sind.

Entwickelt und -> Beschrieben" wird eine virtuelle Schaltung und / oder 
eine Funktion. Damit ist VH*D*L als Wortsinn richtig.

Programmiert werden der FPGA und das Tool. Damit ist VHDL eine 
Programmiersprache.

q.e.d.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Zumindest dieser Schritt, der ja das eigentliche P im FPGA darstellt,
> wird aber von allen FPGA-Herstellern durchgängig als "konfigurieren"
> bezeichnet.

... was kein Widerspruch, sondern eine Präzisierung darstellt, genau wie 
im Fall, wenn Manche bei den Mikrocontrollern nicht von Software 
sprechen wollen, sondern einer firmware. Einige lehnen den Begriff 
Software sogar ab.

Die Antwort der Logiker darauf lautet, dass dann Dobermänner keine Tiere 
mehr sein dürfen, da sie ja Hunde sind.

Nein, selbverständlich ist das korrekt so:

Programmierung des FPGAs .............. : Konfiguration
Programmierung der Synthesesoftware ... : VHDL-Programm

Man könnte jetzt frech behaupten, dass das Syntheseprogramm teilweise 
durch ein TCL-Programm konfiguriert wird und die Frage erheben, ob das 
nicht ein Widerspruch sein könnte.

Meine Antwort: Nee, isses nicht. Da Konfigurieren eine Untermenge von 
Programmieren ist.

Genau so steht es sinngemäß auch im FPGA-Artikel in der deutschen Wiki.

: Bearbeitet durch User
Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen S. schrieb:
> Lothar M. schrieb:
>> Zumindest dieser Schritt, der ja das eigentliche P im FPGA darstellt,
>> wird aber von allen FPGA-Herstellern durchgängig als "konfigurieren"
>> bezeichnet.
> ... was kein Widerspruch, sondern eine Präzisierung darstellt
Warum sollte ich dann nicht den Vorgang, "mit einem VHDL-Progamm das 
Verhalten und den Aufbau eines Systems zu beschreiben" ebenso als eine 
Untermenge und Präzisierung des Oberbegriffs Programmieren sehen können? 
Und warum nicht ein VHDL-Programm in letzter Konsequenz eine "Hardware- 
und Verhaltensbeschreibung" (analog zur Untermenge "Konfigurieren des 
FPGAs") nennen?

Jürgen S. schrieb:
> Damit ist VHDL eine Programmiersprache.
Jürgen S. schrieb:
> Da Konfigurieren eine Untermenge von Programmieren ist.
Konsequenterweise müssten wir jetzt aber die beiden Begriffe korrigieren 
in FCGA und VHPL. Zum Glück hört man die Unterschiede kaum...  ;-)

: Bearbeitet durch Moderator
Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Zumindest dieser Schritt, der ja das eigentliche P im FPGA darstellt,
> wird aber von allen FPGA-Herstellern durchgängig als "konfigurieren"
> bezeichnet.

Zumindest bei Altera/Intel heißt das Ding, das das macht "Programmer" 
und das, was er macht "programming".

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Warum sollte ich dann nicht den Vorgang, "mit einem VHDL-Progamm das
> Verhalten und den Aufbau eines Systems zu beschreiben" ebenso als eine
> Untermenge und Präzisierung des Oberbegriffs Programmieren sehen können?

Hatte ich doch gar nicht vereint. Im Gegenteil:

Jürgen S. schrieb:
> Programmierung der Synthesesoftware ... : VHDL-Programm

Autor: Gästchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carl schrieb:
> entity hello is
> end entity;
>
> architecture sim of hello is
> begin
>
>     process is
>     begin
>
>         report "Hello World!";
>         wait;
>
>     end process;
>
> end architecture;

Ist das etwa alles so auf einem FPGA synthetisierbar?
Der FPGA wird so wohl kaum auf einem Display "Hello World" anzeigen.

Autor: Carl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gästchen schrieb:
>Ist das etwa alles so auf einem FPGA synthetisierbar?
>Der FPGA wird so wohl kaum auf einem Display "Hello World" anzeigen.

Eher nicht. Die Idee dieses Threads hatte ich oben beschrieben, ist aber 
leider in Richtung "kann man ein FPGA programmieren" abgetrifted.

Ich schrieb:
>Das wollte ich etwas kreativ nutzen und mit VHDL ein Programm für den PC
>schreiben ( ein Spiel oder irgend etwas anderes, vielleicht eine
>Simulation die an eine GUI piped ).

>Eine Erkenntnis aus den Experimenten mit VHDL als PC-Programmiersprache
>habe ich gewonnen: Man kann die Grenzen eines Tools, wenn man es für
>andere  Dinge verwendet als vorgesehen, viel tiefer austesten.

Autor: Ludger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carl schrieb:
> Eher nicht. Die Idee dieses Threads hatte ich oben beschrieben, ist aber
> leider in Richtung "kann man ein FPGA programmieren" abgetrifted.

Wenn du mal genau nachdenkst und verfolgst, was gesagt wurde, verstehst 
du auch wie das zusammenhängt.

Du verwendest nämlich Programmieranweisungen und willst sie auf einem 
FPGA anweisen, der sie gar nicht versteht, weil er sie nicht verstehen 
kann. Damit taucht sofort die Frage auf, wer denn bitte diese 
Anweisungen verstehen soll.

Das muss die Designsoftware tun. Da gabelt sich die Frage in erzeugbar 
oder nicht erzeugbar.

Autor: Gästchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deshalb hatte ich ja nachgefragt ob das synthetisierbar ist. Wenn man 
jetzt die report-Funktion durch eine Funktion ersetzt, die auf einem 
FPGA synthetisierbar ist und zum Beispiel ein I2C LCD Modul ansteuert, 
dann wäre der Lernerfolg sicher größer. So ist report ja nichts anderes 
als eine Debug-Ausgabe im Simulator und zeigt nicht wirklich was mit 
FPGAs in VHDL möglich ist.

Autor: Carl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ludger (Gast)
>Du verwendest nämlich Programmieranweisungen und willst sie auf einem
>FPGA anweisen,

Wie kommst Du denn auf die Idee?

Autor: VHDL-Polizei (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helmut S. schrieb:
> Hardwareprogrammierung die Ansteuerung von Hardware
Ansteuern ist für mich: Permanent Daten hinschieben.
Programmieren: Einmalig Konfiguration hinschieben

> Software-Programm
Ein weisser Schimmel

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.