mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA-Einführung erstellen


Autor: Stefan Hanke (stefanhanke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin neben synchronem Design auch noch damit beschäftigt, "Jemandem" 
(eine einzige Person!) eine FPGA-Einführung zu geben. Ich habe den 
Themenkomplex zwar noch nicht mal ansatzweise durchdrungen, aber das ist 
unnötig. Es geht nur um darum, eine Vorstellung zu vermitteln, wie ein 
in C geschriebener Algorithmus in Hardware "gegossen" werden kann -- und 
natürlich dem "Big Picture".

Meine Vorstellung ist, dass ich Folien erstelle und dann damit ein 
Video. Das Video nehme ich mit "CamStudio" (Windows) auf, dass einfach 
den Bildschirm sampelt und dann in eine Datei schreibt (mit Ton). Ich 
nehme quasi eine "Trockenübung" auf.

Was haltet ihr von der Vorgehensweise?

Live bringt eine Präsentation zwar mehr, allerdings ist "Jemand" schon 
viel beschäftigt. Das Video könnte man dann öfters anschauen bzw. mal 
"die Zeit zurückdrehen".

Es gibt zwar tonnenweise Material im Netz, aber ich habe hier die 
Möglichkeit, mein Wissen zu testen (nach dem Motto: "Wenn ich es 
erklären kann, dann habe ich es verstanden"). Ausserdem kann ich die 
Folien auf das Einsatzgebiet/die Algorithmen maßschneidern.

 -- stefan

Autor: Joerg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan, Hallo,

> unnötig. Es geht nur um darum, eine Vorstellung zu vermitteln, wie ein
> in C geschriebener Algorithmus in Hardware "gegossen" werden kann -- und
> natürlich dem "Big Picture".

Ich glaube ja die zündende Erkenntnis ist, dass es immer einfach nur um 
kombinatorische Logik zwischen FFs geht. Dann ist auch direkt klar, dass 
man mehr in "Data-Flow" als in "Control-Flow" denken muss.

Zunaechst wuerde ich wohl einige Konstrukte fuer kombinatorische Logik 
vorstellen -- dazu auch immer direkt zeigen was daraus jeweils synth. 
wird. Also erstmal boolsche Operationen, einen MUXer, etc...
Eventuell auch schonmal eine Komponente instantieren und die Signale 
verbinden -- da bin ich aber unschluessig. Aber eben zunaechst nur 
kombinatorische Sachen.

Dann erklaeren wie man mit process (oder always @ falls verilog) ein 
FlipFlop baut. Anschliessend weitere Konstrukte in den Prozessen 
erklaeren, aber immer wieder darauf hinweisen, dass daraus 
kombinatorische Logik vor dem FF wird.

Von da aus ist der Weg zu "was meint pipelinig"/"register balancing" 
"clock skrew" etc. nicht mehr weit.


Ich habe einen solchen Aufbau mal fuer einen Vortrag benutzt -- und 
hatte Prinzipiell schon den Eindruck dass der sich bewaehrt hat. Habe 
beim Vorstellen der einzelnen Konstrukte etwas uebertrieben -- das 
sollte man nicht zu lang machen, sonst wird es langweilig.
Die Zuhoerer haben anschliessen Fragen gestellt -- da hatte ich den 
Eindruck sie haben das Prinzip geblickt.

> Meine Vorstellung ist, dass ich Folien erstelle und dann damit ein
> Video. Das Video nehme ich mit "CamStudio" (Windows) auf, dass einfach
> den Bildschirm sampelt und dann in eine Datei schreibt (mit Ton). Ich
> nehme quasi eine "Trockenübung" auf.
>
> Was haltet ihr von der Vorgehensweise?

Ich halte das fuer eine sehr gute Idee. IMHO fehlt sowas.

Moechtest du das ehr allgemein machen, oder direkt auf ein 
Entwicklertool festgelegt? Also direkt mit ISE oder Quatus?

  j.


Autor: Christian (Guest) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tipp:
Gab es nicht vor wenigen Monaten in der ELEKTOR
einen FPGA-Kurs?
Über 10 Kapitel/Monate, falls der nicht noch läuft.

Autor: Stefan Hanke (stefanhanke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian wrote:
> Tipp:
> Gab es nicht vor wenigen Monaten in der ELEKTOR
> einen FPGA-Kurs?
> Über 10 Kapitel/Monate, falls der nicht noch läuft.
Hier ist er
http://www.elektor.de/Default.aspx?tabid=136
Dummerweise kostet jeder Artikel €1,30. Ausserdem verwenden die Quartus, 
und ich ISE. Aber ich werde die zwei kostenlosen Anleitungen auf jeden 
Fall mal durchlesen, Danke! Eventuell kaufe ich sogar den ersten 
Artikel.

Joerg wrote:
> Ich glaube ja die zündende Erkenntnis ist, dass es immer einfach nur um
> kombinatorische Logik zwischen FFs geht. Dann ist auch direkt klar, dass
> man mehr in "Data-Flow" als in "Control-Flow" denken muss.
Ja, das muss irgendwie rauskommen. Ich hatte auch vor, ein kleines 
Beispielprojekt durchzugehen, in dem Rahmen kann ich das zeigen.

> Dann erklaeren wie man mit process (oder always @ falls verilog) ein
> FlipFlop baut. Anschliessend weitere Konstrukte in den Prozessen
> erklaeren, aber immer wieder darauf hinweisen, dass daraus
> kombinatorische Logik vor dem FF wird.
Ich verwende VHDL. Hardwarebeschreibungssprachen sind Punkt 2, nach 
einem (sehr) kurzem Abriss über FPGA's. In diesem Rahmen werde ich wohl 
auch die generelle Struktur von dem erklären, was hinten herauskommt 
(Kombinatorik + FF's).

> Von da aus ist der Weg zu "was meint pipelinig"/"register balancing"
> "clock skrew" etc. nicht mehr weit.
Pipelining muss in den Vortrag. Daneben will ich noch Richtung 
Parallelismus gehen und ein bisschen Computerarithmetik -- ein paar 
Tatsachen, z.B. den Zusammenhang zwischen Bitbreite und Fläche oder so 
was.

> Ich habe einen solchen Aufbau mal fuer einen Vortrag benutzt -- und
> hatte Prinzipiell schon den Eindruck dass der sich bewaehrt hat. Habe
> beim Vorstellen der einzelnen Konstrukte etwas uebertrieben -- das
> sollte man nicht zu lang machen, sonst wird es langweilig.
Ich dachte so max. 15 Minuten pro Video. Wenn ich mit dem ersten fertig 
bin, stelle ich es online :)

 -- stefan

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch ein FPGA Kurs. o:)  Leider wieder mal einer, der nur die Umsetzung 
in Logik und die Sprachelemente erklärt :-(

Nötig wäre jedoch VORHER erstmal ein Kurs, der das Design und fie 
Funktion von Schaltungen erklärt - unabhängig, ob man sie in 
Logigbausteinen, in einem ASIC oder in einem FPGA baut.

Heute kann jeder HDL - aber vernünftige Schaltungen sehe ich bei den 
jungen Leuten immer weniger.

Autor: Stefan Hanke (stefanhanke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unbekannter wrote:
> Noch ein FPGA Kurs. o:)  Leider wieder mal einer, der nur die Umsetzung
> in Logik und die Sprachelemente erklärt :-(
Hmm. Ich selber habe mal einen Kurs gehört, in dem die VHDL-Konstrukte 
stundenlang knochentrocken runtergebetet wurden. Das will ich eigentlich 
vermeiden bzw. so kurz wie möglich halten. Das hat Joerg ja auch 
angesprochen.

> Nötig wäre jedoch VORHER erstmal ein Kurs, der das Design und fie
> Funktion von Schaltungen erklärt - unabhängig, ob man sie in
> Logigbausteinen, in einem ASIC oder in einem FPGA baut.
Was genau meinst du mit "Schaltungen"?
Auf welcher Ebene würdest du das machen?

> Heute kann jeder HDL - aber vernünftige Schaltungen sehe ich bei den
> jungen Leuten immer weniger.
Das musst du mir näher erläutern. Wenn jeder HDL "kann", dann kann er 
doch den Code so bauen, dass ordentliche Schaltungen rauskommen.

 -- stefan

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke, die Frage lief darauf hinaus, mit welcher Logik (egal wie 
realisiert) ein bestimmtes Problem am besten zu lösen ist. Aber das 
würde bestimmt den Umfang eines solchen Vortrages sprengen. Wobei ich 
mir, ohne das Vorhaben abzuwerten, unter einer FPGA-Einführung auch 
etwas anderes als kommentiertes Windows-Geklickere vorstelle.

Jörg

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Unbekannter

>Noch ein FPGA Kurs. o:)  Leider wieder mal einer, der nur die Umsetzung
>in Logik und die Sprachelemente erklärt :-(

Das ist ja cuh der Sinn eines FPGA Kurses.

>Nötig wäre jedoch VORHER erstmal ein Kurs, der das Design und fie
>Funktion von Schaltungen erklärt - unabhängig, ob man sie in
>Logigbausteinen, in einem ASIC oder in einem FPGA baut.

Das ist ein Grundlagenkurs in Digitaltechnik. Klar, der sollte VOR einem 
FPGA-Kurs stehen. Das kommt aber scheinbar mehr und mehr aus der Mode.

>Heute kann jeder HDL - aber vernünftige Schaltungen sehe ich bei den
>jungen Leuten immer weniger.

Genauso wie viel Java"Programmierer" sich für Programmierer halten . . .
;-)

MfG
Falk

Autor: Stefan Hanke (stefanhanke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht noch etwas zur Zielsetzung: Die betreffende Person ist 
definitiv intelligent, wenn ich da mit Digitaltechnik ganz von vorne 
anfange, lacht die sich tot ;-) Aber ihr habt schon recht, das 
Wichtigste kann man ja wenigstens mal erwähnen, wenn man das Zeug nicht 
braucht, verschwindet es im Ultra-Langzeitgedächtnis ;-)

Ich will das ganze auch sehr kurz halten, das wird keine Vorlesung, das 
wird eher ein "Überblick" -- für mehr werden die angepeilten 15 Minuten 
auch nicht reichen. Die Vorlesungen und Praktika von div. Universitäten 
sind bei weitem zu allgemein und zu umfangreich.

 -- stefan

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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