Hallo, vermutlich kennen wir uns :-) Schön, dass Du das Beispiel
ausprobieren möchtest, hast Du die .xdc einfach so übernommen oder noch
irgendwie bearbeitet?
Edit: Im angehängten .zip ist noch die unveränderte .xdc
Ja wie ist das eigentlich, in meinem XADC Beispiel musste ich die
XADC-Ports gar nicht in der .xdc angeben. Die tauchen da einfach nicht
auf. Ich weiß nicht wie man die da erklärt aber Du könntest die anderen
Ports der gleichen Bank auf 1,8V setzen. So hatte ich das im Beispiel
"nexys4_xadc_minimal.zip" mit dem UART_RXD_OUT gemacht.
Hier http://nas.gus.tl/fpga/ sind übrigens die Beispiele. Das lief im
Rahmen eines Uni-Workshops.
Hallo Gustl,
ich hab dein VGA Beispiel als Basis verwendet, den AD-Wandler verwende
ich ohne AXI Interface. Als Beispiel habe ich deinen AD-Wandler mit UART
verwendet. Ich schaue mal in den Constrains ob ich den AD-Wandler auf
3.3V legen kann.
Gruß
MD
Sehr gut! Nur aus Interesse:
Bist Du von der Uni Regensburg? Wenn ja, wir werden dort jetzt im
Wintersemester wieder etwas mit FPGA machen. Geplant ist bisher, dass
die Teilnehmer Projekte vorschlagen, wir uns dann eines heraussuchen, in
kleine Blöcke zerteilen und die nach und nach als "Hausaufgabe" stellen.
Das wird dann einmal die Woche während der Veranstaltung (und im
Uni-Forum) besprochen. Vermutlich wird es sowas wie das was Du jetzt vor
hast, also Daten irgendwie erfassen, verarbeiten, anzeigen oder
irgendwie ausgeben. Und das mit dem Nexys4 Board. Ich fände z. B. ein
einfaches Videospiel gesteuert mit dem verbauten Beschleunigungssensor
ganz nett.
Hi gustl,
ich bin von BIO/ VKL...wir haben einen Versuch im Fliegen bei dem wir
ein Monitormuster in Abhängigkeit des AD Wertes verändern...die AD Werte
sollen auch abgespeichert werden.
Ich habe den Fehler gefunden, lag in den Constrains.
Ciao ciao
MD
Gustl B. schrieb:> Geplant ist bisher, dass> die Teilnehmer Projekte vorschlagen, wir uns dann eines heraussuchen, in> kleine Blöcke zerteilen und die nach und nach als "Hausaufgabe" stellen.
Macht am Besten was mit Messtechnik, Sensorik und löst elektronische
Problem. Nicht viel geklicke mit viel output, wo am Ende der Lerneffekt
minimal und der Gebrauchswert Null ist, wie bei Vielem, was da
gebrutzelt wird. Vor allem bitte nicht den 5000sten Musikerzeuger :-)
Ich werde mich nach den Wünschen der Teilnehmer richten.
Signalverarbeitung und Regelung hat halt als Voraussetzung, dass man das
mal gelernt hat. So nebenbei an einem Termin kann ich das nicht
abfrühstücken. Aber welche motivierende Projektvorschläge gibt es denn
die man mit Anfängern in einem Semester schaffen kann? Mir geht es drum,
dass die Hardwaredenkweise gelernt wird und weniger darum fertige IP
Blöcke zusammenzuklicken. Das funktioniert nämlich auch nur wenn man
versteht was da passiert. Man könnte einen Microblaze verbauen und dann
alles im SDK mit C machen, aber das ist nicht Sinn der Sache.
Das Problem an Messtechnik und Sensorik ist, dass das erstmal nur die
Datenerfassung ist. Was macht man dann damit? Man könnte Signalverläufe
auf VGA anzeigen wie beim Oszi oder ein einfaches Videospiele damit
steuern. Oder eben Audioausgabe. Wieso eigentlich nicht? Z. B. den
Beschleunigungssensor als Eingabe für ein Effektgerät verwenden.
Ich nehme gerade an einem Kurs teil, der ungefähr wie folgt strukturiert
ist:
- Lab 1: State Machine (Mealy und Moore,
Sequenzerkenner für beides implementieren), nur Simulation
- Lab 2: PS/2 Keyboard Controller (auf dem Nexys4 ist ein PIC drauf,
der USB-HID auf PS/2 umsetzt) und Siebensegmentanzeigen
- Lab 3: ALU (Plus, Minus, Modulo-3, jeweils mit/ohne Vorzeichen)
- Lab 4: VGA und "Taschen"rechner (Tastatur - ALU - Bildschirm)
Der nächste Schritt wäre dann Speicher, dass man mehrere
Rechenoperationen in einem Stack abspeichern kann, bevor man sie in
umgekehrter Reihenfolge ausführt. Wenn dann noch Zeit ist, kann man die
ALU z.B. Pipelined machen etc.
Um Datenerfassung und -verarbeitung geht es in unserem Kurs allerdings
explizit nicht. Die Zeit reicht nicht für beides.
S. R. schrieb:> Die Zeit reicht nicht für beides.
Genau. Der Kurs bei Dir geht vermutlich mehr um Rechnerarchitektur. Das
kann ich hier auch nicht als Voraussetzung verlangen und auch nicht
nebenbei noch vermitteln.
Schreibt ihr das alles selber in VHDL oder verwendet ihr viele fertige
Blöcke?
Der Kurs ist eine Einfühung in VLSI-Design, hat also nichts mit
Rechnerarchitektur zu tun (dafür gibt es im Studiengang ein Extra-Fach,
aber da ich dort nicht studiere, weiß ich darüber nichts weiter).
Explizit ging es um Register, Kombinatorik und Zustandsautomaten, aus
denen dann Funktionalität zusammengebaut wurde.
Bis Lab 3 haben wir alles selbst in VHDL geschrieben, aber mit
vorgegebener Struktur (leere Blöcke). Fertige IP wird nur für Speicher
(von Xilinx) und für VGA (vom Kursleiter, nicht zwingend) benutzt.
Ah ok. ALU klang jetzt eher danach zu lernen wie eine CPU funktioniert
und generell Rechner aufgebaut sind. Aber auch das ist sehr lehrreich
wenn man Digitalschaltung lernen möchte.
S. R. schrieb:> Bis Lab 3 haben wir alles selbst in VHDL geschrieben, aber mit> vorgegebener Struktur (leere Blöcke). Fertige IP wird nur für Speicher> (von Xilinx) und für VGA (vom Kursleiter, nicht zwingend) benutzt.
So möchte ich das auch halten, also IP Blöcke nur um zu zeigen wie man
auch mit sowas umgeht, ist ja heute fast alles AXI ...
Nein, unsere "ALU" ist rein kombinatorisch mit nem Multiplexer hinten
dran. Aber mit einer ALU als Konzept kann man den Unterschied zwischen
Control Path und Data Path gut verdeutlichen.
Für Modulo-3 wurde übrigens absichtlich kein Algorithmus vorgegeben (bis
auf die Vorgabe, dass es einer mit shifts sein muss), sondern das
selbstständige Suchen und Implementieren gehörte dazu. Gleiches gilt für
das optionale Lab 5, wo man eine Wurzelfunktion in die ALU
implementieren muss.
S. R. schrieb:> Wurzelfunktion in die ALU implementieren
[...]
> unsere "ALU" ist rein kombinatorisch
'Wurzelfunktion' und 'rein kombinatorisch' klingt für mich nach einem
riesigem Gattergrab. Wie sind denn die Bitbreiten eurer ALU? 4 Bit?
Duke
Duke Scarring schrieb:> 'Wurzelfunktion' und 'rein kombinatorisch' klingt für mich nach einem> riesigem Gattergrab. Wie sind denn die Bitbreiten eurer ALU? 4 Bit?
Das war missverständlich. Die bisherige ALU hat ist 8 Bit breit, rein
kombinatorisch und kann keine Wurzeln.
In einer späteren Aufgabe sollen wir eine Wurzelfunktion hinzufügen,
haben aber eine Ressourcenbegrenzung und werden die ALU getaktet
aufbauen - sonst geht's nicht.
Gustl B. schrieb:> Das Problem an Messtechnik und Sensorik ist, dass das erstmal nur die> Datenerfassung ist. Was macht man dann damit? Man könnte Signalverläufe> auf VGA anzeigen wie beim Oszi oder ein einfaches Videospiele damit> steuern. Oder eben Audioausgabe. Wieso eigentlich nicht? Z. B. den> Beschleunigungssensor als Eingabe für ein Effektgerät verwenden.
Du musst Dich fragen, was die Kinderlein lernen sollen:
- Projektabwicklung? -> Requirements machen lassen, PH, schreiben
lassen
- Signalverarbeitung -> Mathe formulieren, getakteten Algo hinscheiben
- VHDL-Programmierung -> Einfaches Problem mit dynamischer VHDL-Struktur
- FPGA-Probleme -> Elektronik, Spannungen, Bänke, LVDS
- C-Programmierung? -> PICOblace drauf, SOC, viel Klicken, Busse
- Inbetriebnahme -> Testplan, Selbst-Test-Integration,
eigentich müssten die ALLEs lernen. Bei den Mischprojekten kommt aber
das, was wirklich interessant und wichtig ist, nämlich der erste und der
letzte total zu kurz.
Heraus kommen aus den Hochschulen im Moment viele FPGA-Dünnbrettbohrer,
die mit MATLAB und EDK große Signalverarbeitungsprojekte anwerfen, die
gewaltig aussehen, aber niemals nicht funktionieren, weil sie falsch
geplant, nicht konzeptioneirt sind und niemals in Betrieb zu kriegen
sind.
Das ist vielfach zu oberflächlich!
Tja, da hast Du Recht. Aber wir haben nur ein Semester und zwei Stunden
je Woche. Ich würde das auch echt gerne in mehr Zeit machen aber das ist
eine Uni, keine FH. Wir haben sowieso großes Glück, dass wir das an der
Physik Fakultät machen dürfen. Informatik gibt es bei uns nicht.
Ich möchte soweit kommen, dass die Teilnehmer die Grundlagen verstanden
haben und selber kleine Projekte bauen können. Für alles Weitere müssen
Interessierte dann selber Zeit investieren.
Dann musst du dich halt auf irgendwas spezialisieren, und unter den
gegebenen Bedingungen ist eine Kombination aus "Kombinatorik",
"Register" und "fertige IP einbinden" durchaus sinnvoll. Für "sinnvolle
IP selbst entwickeln" reicht die Zeit nicht.
Das ist dann zwar oberflächlich, aber wenigstens nützlich. Die
Alternative wäre ein Kurzvortrag zu jedem Thema, welches vom Niveau
nicht über das durchschnittliche Blog hinausgeht und in der Klausur auf
"auswendig lernen und aufschreiben" hinausläuft.
Also Klausur gibt es nicht, soll nur die Teilnehmer motivierten und ein
paar Grundlagen vermitteln. Also den Einstieg ins Thema etwas begleiten.
Wir sehen halt dass bei uns in der Physik für einige Aufgaben FPGAs
verwendet werden, es aber keine Veranstaltung dazu gab. Die die das
verwendet haben haben sich das also selbst beigebracht wie ich ja auch.
Und damit das etwas weniger steinig wird gibt es jetzt einen Kurs.
Gustl B. schrieb:> Die die das> verwendet haben haben sich das also selbst beigebracht wie ich ja auch.
Was wird denn da gemacht und mit welchem Ziel? Wäre es nicht sinnvoller,
erst die Grundlagen zu erörtern und dann die Anwendung zu starten?
Ich hatte auch zu dem Thema wieder eine Diskussion mit meinem Neu-Boss,
der in die Firma eingestiegen ist und früher Vorlesungen in Friedberg
gehalten hat: Auch er bemängelt, daß heute viel zu viel Masse gemacht
wird und die Studenten aufgeblasene Projekte durchziehen, die nach viel
aussehen und wenig bringen, weil sehr oberflächlich durchgezogen. Am
Ende kommen Studenten heraus, die alle sehr viel können, aber nichts
richtiges. Ich fände es besser, wenn man weniger machen würde und das
dann vertiefter.
Weltbester FPGA-Pongo schrieb im Beitrag #4777302:
> Was wird denn da gemacht und mit welchem Ziel? Wäre es nicht sinnvoller,> erst die Grundlagen zu erörtern und dann die Anwendung zu starten?
Das wäre bestimmt sinnvoller, aber darauf haben wir keinen Einfluss.
Hier in der Physik gibt es eben Arbeiten teilweise mit Abschluss
(Master/Diplom) oder auch einfach so muss etwas gebaut werden und da
fällt die Wahl eben auch manchmal auf einen FPGA. Das sind aber
Physiker, die haben nichts zu dem Thema gelernt. Und weil da aber dann
der FPGA verwendet werden soll oder es eben nicht anders geht, bringen
sich die das dann auch bei.
Die Ziele sind sehr unterschiedlich, also von Bilderkennung und
Messwerterfassung bis zur Verwendung eines einzelnen MMCM von Xilinx
weil man den zur Laufzeit rekonfigureiren kann und davon auch mehrere im
FPGA hat.
Jetzt in dem Kurs versuchen wir die Grundlagen beizubringen was aber
auch schwer ist in einem Semester und nur 1,5 Stunden je Woche. Ganz
trocken soll das ja auch nicht sein.