Forum: FPGA, VHDL & Co. VHDL programmieren Grundlagen


von Carl (Gast)


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
1
entity hello is
2
end entity;
3
 
4
architecture sim of hello is
5
begin
6
 
7
    process is
8
    begin
9
 
10
        report "Hello World!";
11
        wait;
12
 
13
    end process;
14
 
15
end architecture;

von Carl (Gast)


Lesenswert?

Jetzt stellt sich die Frage, wie man eine Schleife realisieren könnte.
1
entity hello is
2
end entity;
3
 
4
architecture sim of hello is
5
begin
6
 
7
    process is
8
    begin
9
 
10
        report "Hello World!";
11
        wait;
12
 
13
    end process;
14
 
15
end architecture;

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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
von Carl (Gast)


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:
1
entity helloCount is
2
end entity;
3
 
4
architecture sim of helloCount is
5
begin
6
7
  process is
8
    variable count: integer:=0;
9
  begin
10
  for n in 1 to 8 loop
11
    report "Hello World, count = " & integer'image(n);
12
  end loop;
13
  wait;
14
 
15
  end process;
16
 
17
end architecture;

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

von Schlumpf (Gast)


Lesenswert?

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

von J. S. (engineer) Benutzerseite


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 
...

von Weltbester FPGA-Pongo (Gast)


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?

von Carl (Gast)


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.

von C. A. Rotwang (Gast)


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.

von Fitzebutze (Gast)


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!".

von C. A. Rotwang (Gast) (Gast)


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.
von Vancouver (Gast)


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.

von Abtasten! - Nicht Rumfummeln. (Gast)


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.

von Vancouver (Gast)


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.

von Abtasten! - Nicht Rumfummeln. (Gast)


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.

von Freizeitpilot (Gast)


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.

von Markus F. (mfro)


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?

von Carl (Gast)


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.

von Markus F. (mfro)


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.

von T.U.Darmstadt (Gast)


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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
von Helmut S. (helmuts)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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
von Helmut S. (helmuts)


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.

von -gb- (Gast)


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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
von Markus F. (mfro)


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?

von Helmut S. (helmuts)


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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
von Carl (Gast)


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.

von Markus F. (mfro)


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.

von W.S. (Gast)


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.

von Gödel, Escher, Bach (Gast)


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!

von Carl (Gast)


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 ;-)

von Duke Scarring (Gast)


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

von Gödel, Escher, Bach (Gast)


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.

von J. S. (engineer) Benutzerseite


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
von Carl (Gast)


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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
von J. S. (engineer) Benutzerseite


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.

von J. S. (engineer) Benutzerseite


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
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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
von Markus F. (mfro)


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".

von J. S. (engineer) Benutzerseite


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

von Gästchen (Gast)


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.

von Carl (Gast)


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.

von Ludger (Gast)


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.

von Gästchen (Gast)


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.

von Carl (Gast)


Lesenswert?

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

Wie kommst Du denn auf die Idee?

von VHDL-Polizei (Gast)


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

von Carl (Gast)


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.

Ich weiß wie alles zusammenhängt, aber scheinbar haben einige Leute hier 
den Sinn des Threads nicht verstanden:

>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.

Ich wollte sie genau nicht "auf einem FPGA anweisen".

Der Intention dieses Threads war herauszufinden, ob man mit VHDL ein 
Programm  schreiben kann, das auf dem PC läuft, also keine 
Hardwarebeschreibung für ein FPGA.
Das man so etwas normalerweise nicht macht, ist eine ganz andere Sache, 
aber die Grenzen eines Systems testet man genau damit am besten aus, es 
an seinen Grenzbereichen zu benutzen.
Da immer behauptet wird, VHDL sei eine vollständige Programmiersprache, 
muss es auch einen Möglichkeit geben, dies in Form eines lauffähigen 
Programms auf dem PC zu zeigen.

von C. A. Rotwang (Gast)


Lesenswert?

Carl schrieb:
> Das man so etwas normalerweise nicht macht, ist eine ganz andere Sache,
> aber die Grenzen eines Systems testet man genau damit am besten aus, es
> an seinen Grenzbereichen zu benutzen.
> Da immer behauptet wird, VHDL sei eine vollständige Programmiersprache,
> muss es auch einen Möglichkeit geben, dies in Form eines lauffähigen
> Programms auf dem PC zu zeigen.

Mumpitz.

Ein Falschaussage wird nicht dadurch richtig, das man die Falschheit 
auch in ominösen 'Grenzbereichen' nachweist.

Beispiel:
Klingonisch ist auch eine vollständige Sprache. Trotzdem ist es Mumpitz, 
sie im irdischen Alltag zu verwenden. Klar, kann man Mumpitz betrieben 
um ein paar Lacher zu erzielen, technisch sinnvoll ist das eher nicht.

https://www.youtube.com/watch?v=8DgR_I8Yggk

von Carl (Gast)


Lesenswert?

>Ein Falschaussage wird nicht dadurch richtig, das man die Falschheit
>auch in ominösen 'Grenzbereichen' nachweist.

Welche Falschaussage hier im Thread? Werde mal konkret, sonst bleibt es 
nur Geschwätz.

von Markus F. (mfro)


Lesenswert?

Carl schrieb:
> Der Intention dieses Threads war herauszufinden, ob man mit VHDL ein
> Programm  schreiben kann, das auf dem PC läuft, also keine
> Hardwarebeschreibung für ein FPGA.

Natürlich kann man das.

Eben weil VHDL eine vollständige Programmiersprache ist. Aber warum 
sollte man das tun? VHDL hat seine "Programmiersprachenkomponenten" 
nahezu 1:1 von Ada geerbt (und all das nicht, was man zur Beschreibung 
von digitalen Designs nicht braucht bzw. all das, was man dafür braucht, 
wurde dazuerfunden).

Ada ist dazu gedacht, komplexe Computerprogramme zu programmieren. Wenn 
Du also Programmieren willst, nimm' Ada. Natürlich kann man die Schraube 
mit dem Hammer in die Wand schlagen, aber spätestens wenn man versucht, 
den Nagel mit dem Schraubenzieher reinzuschrauben, wird's komisch.

Wenn Du trotzdem unbedingt mit VHDL ein Textverarbeitungsprogramm 
schreiben willst, mach' doch . Du wirst für den ein oder anderen 
Systemcall (z.B. mit VPI) tricksen müssen und das Ergebnis wird 
wahrscheinlich nicht sonderlich performant sein, aber es gibt keinen 
Grund, warum das nicht funktionieren sollte.

Allerdings auch keinen, warum man das überhaupt machen sollte (s.o.: 
wenn man Programmieren will, ist Ada die eindeutig bessere Wahl).

von C. A. Rotwang (Gast)


Lesenswert?

Carl schrieb:
>>Ein Falschaussage wird nicht dadurch richtig, das man die Falschheit
>>auch in ominösen 'Grenzbereichen' nachweist.
>
> Welche Falschaussage hier im Thread? Werde mal konkret, sonst bleibt es
> nur Geschwätz.

Die Zitierte.

von Carl (Gast)


Lesenswert?

von Markus F. (mfro)
>Ada ist dazu gedacht, komplexe Computerprogramme zu programmieren. Wenn
>Du also Programmieren willst, nimm' Ada. Natürlich kann man die Schraube
>mit dem Hammer in die Wand schlagen, aber spätestens wenn man versucht,
>den Nagel mit dem Schraubenzieher reinzuschrauben, wird's komisch.

In diesem Thread geht es nicht darum herauszufinden, welche 
Programmiersprache für den PC die beste ist, sondern in einem edukativen 
Ansatz die Unterschiede eines VHDL Programms auf dem PC und der 
Konfiguration einer Hardwarschaltung im FPGA mittels VHDL 
herauszuarbeiten.

Als Experte für VHDL sollte folgende Aufgabe für dich eine leichte sein:

- Schreibe ein VHDL Programm, welches zwei Zahlen addiert. Das Programm 
soll den Nutzer auffordern, die Zahl 'a' einzutippen und dann die Zahl 
'b' und dann das Ergebnis auf dem Bildschirm darstellen. Nach der 
Berechnung soll sich das Programm wiederholen.

von C. A. Rotwang (Gast)


Lesenswert?

Carl schrieb:
> In diesem Thread geht es nicht darum herauszufinden, welche
> Programmiersprache für den PC die beste ist, sondern in einem edukativen
> Ansatz die Unterschiede eines VHDL Programms auf dem PC und der
> Konfiguration einer Hardwarschaltung im FPGA mittels VHDL
> herauszuarbeiten.

Das ist kein sinnvoller Ansatz um FPGA-Entwicklung zu lernen oder zu 
lehren.

Beitrag #6177302 wurde von einem Moderator gelöscht.
Beitrag #6177324 wurde von einem Moderator gelöscht.
von Markus F. (mfro)


Lesenswert?

Carl schrieb:
> - Schreibe ein VHDL Programm, welches zwei Zahlen addiert. Das Programm
> soll den Nutzer auffordern, die Zahl 'a' einzutippen und dann die Zahl
> 'b' und dann das Ergebnis auf dem Bildschirm darstellen. Nach der
> Berechnung soll sich das Programm wiederholen.

Das könnte ich wohl tatsächlich, aber warum sollte ich das tun?

Ich könnte auch mit dem Traktor morgens ins Büro fahren (der ist zu dem 
Zweck auch nur beschränkt geeignet), mach' ich aber nicht.

von Carl (Gast)


Lesenswert?

>Das könnte ich wohl tatsächlich, aber warum sollte ich das tun?

>Ich könnte auch mit dem Traktor morgens ins Büro fahren (der ist zu dem
>Zweck auch nur beschränkt geeignet), mach' ich aber nicht.

Dass du es tun könntest, ist zunächst einmal eine Behauptung.
Aber nehmen wir mal an, dass es geht.
In der Überschrift dieses Threads steht das Wort "Grundlagen", deshalb 
ist dieser Thread für Anfänger gedacht und soll dazu dienen, die 
Feinheiten von VHDL herauszuarbeiten.
VHDL wurde als Simulationsprache für den PC entworfen und die 
Eigenschaft, dass es Sprachkonstrukte gibt, die nur für den PC gedacht 
sind und andere Sprachkunstrukte, die nur für die Synthese auf dem FPGA 
gedacht sind, kenne ich aus keiner anderen Programmiersprache und ist 
für Anfänger ziemlich schwer zu verstehen, wie sich immer wieder bei 
verschiedenen Posts zeigt:

https://embdev.net/topic/491584

>Ich könnte auch mit dem Traktor morgens ins Büro fahren (der ist zu dem
>Zweck auch nur beschränkt geeignet), mach' ich aber nicht.
Du hast völlig recht, mit dem Traktor ins Büro zu fahren, macht für die 
meisten Menschen vermutlich keinen Sinn, es sei denn das Büro liegt auf 
einem Bauernhof und der Traktor steht morgens gerade vor dem etwas 
weiter entfernten Wohnhaus.

Die Erstellung der VHDL Programms zur Addition zweier Zahlen auf dem PC 
hat rein didaktische Gründe, weil es Anfängern nicht bewusst ist, dass 
das möglich ist, wie hier "Gästchen" im Post weiter oben zeigt:

Beitrag "Re: VHDL programmieren Grundlagen"

Ich könnte mir gut vorstellen, dass der ein- oder andere professorale 
stille Mitleser dieses Threads das Beispiel zukünftig in seine 
Vorlesungen einbaut, um die Zweiteilung und Funktionsweise von VHDL 
besser verständlich zu machen.

von Funkdepphasser (Gast)


Lesenswert?

Carl schrieb:

> Liegt es im Rahmen der Möglichkeiten deines Egos einfach mal die Klappe
> zu halten, wenn du nichts zu einem Thread zu sagen hast.

Liegt es im Rahmen der Möglichkeiten deines Egos einfach mal die Klappe
zu halten und Google zu benutzen?

von C. A. Rotwang (Gast)


Lesenswert?

Carl schrieb:

> In der Überschrift dieses Threads steht das Wort "Grundlagen", deshalb
> ist dieser Thread für Anfänger gedacht und soll dazu dienen, die
> Feinheiten von VHDL herauszuarbeiten.

Nein, du postulierst hier irgendwelche Feinheiten und Eigenschaften von 
VHDL aus deinem begrenzten Verständniss von Programmiersprachen wie C 
heraus, die aber wenig mit den tatsächlichen Feinheiten und 
Eigenschaften von Hardwarebeschreibungssprachen wie VHDL zu tun haben.

> VHDL wurde als Simulationsprache für den PC entworfen

Nein und nein . VHDL wurde nicht für den PC entworfen sondern für 
workstations/Grossrechner (wenn nicht eigentlich für 'schreibmaschine') 
und auch nicht als Simulationssprache sondern als 
Dokumentations(Spezifikations)-Sprache.

Die Entstehungsgeschichte von VHDL ist eng mit dem Entwurfsprozess von 
digitaler Logik zu beginn der Achtziger/Ende Siebziger verbunden. Das 
DoD (Verteidigungsministerium) plant die Beschaffung von Elektronik 
beispielsweise für Kampfflieger-Bordrechner und stellt eine Liste von 
Requirements auf. Daraus sollen dann verschiedenen Zulieferer 
Spezifikationen erstellen und das DoD lässt prüfen ob diese Spec auf die 
Requiremets passt. Diese Prüfung aus "passt?" wiederholt sich im Zuge 
der Entwicklung mehrmals. Um diese Vergleichausfuhren zu können ist eine 
einheitliche "Sprache" in den 
"Dokumenten"('Konstruktionsunterlagen'))nötig, schon weil dem DoD die 
Angebote für die Realisierung in ca. 100 verschiedenen Sprachen 
vorgelegt wurden (darunter Gatter-schaltpläne, etc). Und im Laufe 
derJahrzehnte ist dieser vergleich der Funktion des Produktes mit den 
Anforderungen auch mit verschiedensten Implementierungen auszuführen, 
weil die elektronik die anfänglich mit diskreten Transistoren aufgebaut 
wurde nun als TTL-Gattern Anhäufung auf Einsteckkarten realisiert wurde 
oder gar als ASIC vorliegt, Stichwort "hardware life cycle crisis" .


> und die
> Eigenschaft, dass es Sprachkonstrukte gibt, die nur für den PC gedacht
> sind und andere Sprachkunstrukte, die nur für die Synthese auf dem FPGA
> gedacht sind, kenne ich aus keiner anderen Programmiersprache

Es ist eben keine Programmiersprache. Und es finden sich auch keine 
"konstrukte die nur für den PC gedacht sind".

Vielleicht hilft es Dir ja, Dich mit dem Konzept von 
Modellierungssprachen die auch als EntwurfsSchritt zur 
(PC)-Programmierung herangezogen werden zu befassen, wie UML.
https://de.wikipedia.org/wiki/Unified_Modeling_Language
Hilfreich ist auch das Studium von Klassikern zur Hardwareentwicklung 
wie der DO-254


> Ich könnte mir gut vorstellen, dass der ein- oder andere professorale
> stille Mitleser dieses Threads das Beispiel zukünftig in seine
> Vorlesungen einbaut, um die Zweiteilung und Funktionsweise von VHDL
> besser verständlich zu machen.

Ich zähle mich zu den professionellen Mitlesern (seit 28 Jahren Arbeit 
mit VHDL) und ich sage dir, man kann hier bei den vermurksten 
didaktischen Ansatz nicht still bleiben.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Carl schrieb:
> sondern in einem edukativen Ansatz die Unterschiede eines VHDL Programms
> auf dem PC und der Konfiguration einer Hardwarschaltung im FPGA mittels
> VHDL herauszuarbeiten.
An dieser Stelle fliegen erstaunlich oft ausländische Freunde auf die 
Nase, die wie im https://embdev.net/topic/491584 Zeiten mit wait oder 
wie in diversen anderen Threads Dateizugriffe auf Tabellen auf FPGA 
synthetisieren wollen.
Denen fehlt da ganz offenbar das grundlegende Verständnis, wofür der PC 
da ist und wofür das FPGA, und was letztlich worauf läuft.

C. A. Rotwang schrieb:
> Carl schrieb:
>> kenne ich aus keiner anderen Programmiersprache
> Es ist eben keine Programmiersprache.
Und mag mit VHDL programmieren wer will, ich beschreibe meine Hardware 
bzw. mein System damit, für das bzw. auf dem danach die Softies liebend 
gerne ihre Programme programmieren können.

: Bearbeitet durch Moderator
von J. S. (engineer) Benutzerseite


Lesenswert?

Gästchen schrieb:
> Ist das etwa alles so auf einem FPGA synthetisierbar?

Da wäre ich skeptisch :-)

von Carl (Gast)


Lesenswert?

von Jürgen S. (engineer) Benutzerseite
>Gästchen schrieb:
>> Ist das etwa alles so auf einem FPGA synthetisierbar?
>Da wäre ich skeptisch :-)

Zu Recht. Aber das zu klären, dazu ist dieser Thread ja gemacht.

von Carl (Gast)


Lesenswert?

C. A. Rotwang (Gast)
>Es ist eben keine Programmiersprache. Und es finden sich auch keine
>"konstrukte die nur für den PC gedacht sind".

Das müsstest du dich jetzt direkt mit Markus auseinandersetzen, der da 
anderer Ansicht ist:

Markus F. (mfro)
> Carl schrieb:
>> Der Intention dieses Threads war herauszufinden, ob man mit VHDL ein
>> Programm  schreiben kann, das auf dem PC läuft, also keine
>> Hardwarebeschreibung für ein FPGA.
>Natürlich kann man das.
>Eben weil VHDL eine vollständige Programmiersprache ist.

Die Wikipedia vereinigt diese beiden Sichtweisen sprachlich elegant:

"VHDL ist als Beschreibungssprache keine Programmiersprache; da sie 
jedoch Objekte beschreibt, deren Aufgabe meist die 
Informationsverarbeitung ist, kann über deren Simulation dennoch 
Datenverarbeitung stattfinden, indem für diesen Simulationslauf 
mitgegebene „Eingangsdaten“ von der (simulierten) Hardware zu 
„Ergebnisdaten“ verarbeitet werden. Durch diesen Umweg kann VHDL (in 
Kombination mit einem Simulator) wie eine Programmiersprache 
Turing-vollständige Datenverarbeitung beschreiben."

https://de.wikipedia.org/wiki/Very_High_Speed_Integrated_Circuit_Hardware_Description_Language

was eher Lothar's Sprachterminus entspricht.

von Markus F. (mfro)


Lesenswert?

Zu diesem Thema ist bereits (mehrfach) alles gesagt, was es zu sagen 
gibt.

Das tote Pferd wird auch mit aus dem Zusammenhang gerissenen Zitaten 
nicht wieder lebendig.

von Carl (Gast)


Lesenswert?

>Das tote Pferd wird auch mit aus dem Zusammenhang gerissenen Zitaten
>nicht wieder lebendig.

>Markus F. (mfro)
>> Carl schrieb:
>>> Der Intention dieses Threads war herauszufinden, ob man mit VHDL ein
>>> Programm  schreiben kann, das auf dem PC läuft, also keine
>>> Hardwarebeschreibung für ein FPGA.
>>Natürlich kann man das.
>>Eben weil VHDL eine vollständige Programmiersprache ist.

Aus dem Zusammenhang gerissen? Das hattest du hier geschrieben:
Beitrag "Re: VHDL programmieren Grundlagen"

von Markus F. (mfro)


Lesenswert?

Carl schrieb:
> Aus dem Zusammenhang gerissen? Das hattest du hier geschrieben:
> Beitrag "Re: VHDL programmieren Grundlagen"

... und was habe ich unmittelbar danach geschrieben? Das nennt man "aus 
dem Zusammenhang reissen"

Aber weil mir's gerade langweilig war, bin ich mit dem Traktor ins Büro 
gefahren.

Carl schrieb:
> - Schreibe ein VHDL Programm, welches zwei Zahlen addiert. Das Programm
> soll den Nutzer auffordern, die Zahl 'a' einzutippen und dann die Zahl
> 'b' und dann das Ergebnis auf dem Bildschirm darstellen. Nach der
> Berechnung soll sich das Programm wiederholen.

Du sollst dein Programm haben:
1
library ieee;
2
use ieee.std_logic_1164.all;
3
use ieee.numeric_std.all;
4
5
library std;
6
use std.textio.all;
7
8
entity prog is
9
end entity prog;
10
11
12
architecture sim of prog is
13
begin
14
    p : process
15
        variable    i, o    : line;
16
        variable    a, b    : integer;
17
    begin
18
        write(o, string'("Enter first summand:"));
19
        writeline(output, o);
20
        readline(input, i);
21
        read(i, a);
22
23
        write(o, string'("Enter second summand:"));
24
        writeline(output, o);
25
        readline(input, i);
26
        read(i, b);
27
28
        write(o, string'(to_string(a) & " + " & to_string(b) & " = " &
29
                         to_string(a + b)));
30
        writeline(output, o);
31
    end process p;
32
end architecture sim;

: Bearbeitet durch User
von Gustl B. (-gb-)


Lesenswert?

Fehlt eigentlich nur noch der HTML5 Parser und Renderer in VHDL und 
schon können wir den Webbrowser durch den VHDL Simulator ersetzen.

von Carl (Gast)


Lesenswert?

von Markus F. (mfro)
05.04.2020 14:33
>Du sollst dein Programm haben:

Dafür möchte ich mich hiermit herzlichst bedanken.
Jetzt kann der Thread seine Ruhe finden :-)

von Markus F. (mfro)


Lesenswert?

Gustl B. schrieb:
> Fehlt eigentlich nur noch der HTML5 Parser und Renderer in VHDL und
> schon können wir den Webbrowser durch den VHDL Simulator ersetzen.

Das würde (ausreichend Energie bzw. Langeweile vorausgesetzt) 
wahrscheinlich sogar ohne native Code funktionieren (zumindest unter 
Linux/X11, wo die Grafikengine ein File Descriptor ist, in den der 
Simulator direkt reinschreiben kann).

von -gb- (Gast)


Lesenswert?

Aus meiner Sicht ist VHDL so ein Zwitter, auf dem PC mit Simulator kann 
man damit programmieren, aber wenn es durch die Synthese soll, dann kann 
man damit nur einen Aufbau beschreiben.
Beides ist sinnvoll.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.