Hallo,
ich schreibe zurzeit an meiner Abschlussarbeit (seit einigen Wochen) und
soll dazu einen Framegrabber auf einem FPGA entwickeln, der ein
paralleles Videosignal über UDP/IP an einen PC schickt.
Ursprünglich war geplant dafür ein Kette von IP Cores zu nutzen, doch
jetzt haben wir (leider im Nachhinein) festgestellt, dass nicht alle
benötigten lizenzfrei sind. Und Lizenzen für Cores zu kaufen ist erst
mal nicht drin...
Mit den Xilinx Entwicklungsumgebungen und VHDL habe ich so gut wie keine
Erfahrung, habe mich aber nun doch darauf eingelassen und nun
festgestellt, dass alles schwieriger ist, als ich es mir vorgestellt
habe. Und auch in meinem Umfeld kennt sich keiner so richtig aus...
Nun meine Frage - denkt ihr, dass dieses Thema überhaupt in den nächsten
3-4 Monaten (für einen Newbie) zu schaffen ist (d.h. dass ein Bild über
UDP rausgesendet wird)?
Ein weiterer Gedanke ist nun das ganze mit einem MicroBlaze
Prozessorsystem aufzubauen. Könnt ihr mir ungefähr sagen, wie viel
Aufwand das wäre auf diese Weise ein UDP Stack usw. zu implementieren
und die Sache zum Laufen zu kriegen?
...sonst müsste ich das Thema irgendwie nochmal in eine andere Richtung
lenken...
Danke schon mal!
Fang schon mal am besten an gegen zu lenken.
Da müsstest du viel Zeit investieren, allein schon nur für die
Einarbeitung in VHDL. Dann kommt noch Microblaze dazu, bis du verstehst
wie du es anwendest und wozu es da ist...
Das müssten aber die Profs doch wissen, dass das so nichts wird, oder
nicht?
Ich habe selber mal den Microblaze verwendet, um Beispielsweise ein Bild
aus einer CF-Karte einzulesen, in den RAM abzuspeichern und über ein
Übertragungsprotokoll auf Anfrage loszuschicken. Und ich war kein
Newbie, trotzdem hat es gedauert, so mind. 1-2 Monate. Hatte aber als
RAM einen ext. DDR2, was auch noch Zeitintensiv war.
Übertragungsprotokoll war CameraLink.
Trotzdem wünsche ich dir viel Erfolg.
Cihan
Hi,
also ganz ehrlich, aus meiner Erfahrung (und ich bin schon ne ganze
Weile dabei) ist das in 3-4 Monaten sehr knackig, je nachdem wie weit Du
auf bestehende IP-Cores zugreifen kannst.
Ich würde mal eine Einkaufsliste der fehlenden Komponenten machen. Poste
die doch mal, dann kann Dir noch besser geholfen werden. Denn so kleine
Knackpunkte wie "Brauche ich DDR Memory oder nicht" können die
Entwicklungsdauer v.a. in Bezug auf Debugging um Monate verlängern.
Auf der CPU einen UDP-Stack zu implementieren, ist nicht so schwer. Das
knifflige wird vermutlich eher die Anbindung bzw. schon alleine ein
gutes Konzept um die Daten abrissfrei durch die verschiedenen Nadelöre
zu kriegen.
Ich habe so etwas ähnliches gemacht, allerdings für den Versand der
Bilddaten gleich einen embedded-Linux-Host eingesetzt um alle
Netzwerk-Sachen abzuhaken. Den uBlaze habe ich eher gemieden und
stattdessen auf der "Vorverarbeitung" eine ZPU rein zur Konfiguration
eingesetzt.
Da es ja wohl eine Arbeit und kein Produkt sein soll, einige Vorschläge
(aber keine Ratschläge :-) ), um der Geschichte akademische Würze zu
verleihen, aber die Komplexität etwas herunterzukochen:
1) Netzwerk weglassen und statt dessen USB FIFO nehmen (FX2). Das lässt
sich gut auf bestehenden Testboards entwickeln und es gibt viele
Referenzlösungen.
2) Mit Vorverarbeitung experimentieren:
a) 3x3-Filterkernel implementieren
b) Bayer-Demosaicing. Da es unzählige Bayer->RGB-Routinen gibt,
könntest Du alternativ von Bayer direkt in den Luma-Chroma-Farbraum
umrechnen, um z.B. schlussendlich sog. 'subsampled' YUV-Daten
auszugeben. Das ist nicht unspannend...
3) Bevorzugt OpenSource und herstellerunabhängige Komponenten verwenden:
a) z.B. statt closed "uBlaze" eine ZPU einbinden (siehe auch hier im
Forum)
b) generierte IPcores (Coregen) von Hand entwickeln (Vorsicht bei dual
clock FIFOs, das ist sehr knifflig)
Im Endeffekt leistest Du ja sicher irgendwo eine Eigenentwicklung und
steckst nicht nur Komponenten zusammen. Diese kleine Herausforderung
würde ich mir noch überlegen. So quasi als "Alleinstellungsmerkmal",
damit dir nicht gleich jeder entgegenschmetter: Gibt's schon!
Grüsse!
Vielen Dank schon mal für die Antworten.
Leider habe ich jetzt festgestellt, dass die Profs nur oberflächlich
Ahnung haben (Grundlagen VHDL, aber nicht darüber hinaus und auch keine
Erfahrung mit den Xilinx Entwicklungsumgebungen). Daher gehe ich auch
davon aus, dass sich der Prof das ein bisschen zu einfach vorgestellt
hat.
Ich will mal die Sache noch ein wenig konkretisieren:
Ich schreibe die Arbeit in einer Firma (die aber sonst eigentlich andere
Sachen macht - daher keine Erfahrung mit VHDL. Das Gerät ist als
Testgerät für Displays gedacht). Daher ist sie natürlich auch an einem
konkreten Ergebnis interessiert. Und das steckt auch wiederum einen
gewissen Rahmen.
So ist ein Entwicklungsboard bereits vorhanden (hat kein USB, dafür aber
einen Ethernet PHY). Daten sollen über 1Gigabe Ethernet rausgesendet
werden, was aufgrund der Datenrate (ca.70MByte/s) durchaus notwendig
ist.
Auf IP Cores kann ich leider nicht zurückgreifen und es wird auch - wie
es momentan aussieht - erst mal nicht möglich sein, welche zu kaufen.
Ein RAM sollte ursprünglich verwendet werden, nur habe ich gelesen, dass
dadurch viel Performance verloren gehen soll (bei der Datenrate). Denn
es wird ja fast wire speed benötigt. Die Frage ist dann nur, ob es ohne
RAM möglich ist (bzw ohne asynchronen FIFO).
Bearbeitet werden sollen die Daten nicht, sie sollen quasi im raw format
(als Bytearray) gesendet werden, um dann später am PC das Bild (keine
Bilddatei) pixelweise überprüfen zu können.
Wenn es nach mir geht soll es so einfach wie möglich werden. Ich weiß
nicht, ob das ein embedded Linux leichter macht (zudem ich kein Linux
user bin). Und genug um drüber zu schreiben hätte ich jetzt schon.
Soweit erst mal...
Naja wenn du kein Webinterface oder so habne willst.
Kann vileicht doch noch was werden ... mußt dich halt wirklich auf die
Basics konzentriern.
Also wirklich nur die RAW Daten auslesen, in ein Paket packen und
verschicken (als stream sozusagen), dazu noch nen paar sync Infos wann
ne neu Zeile Anfäng und wann ein neues Bild, den rest muß der PC machen.
Also ein Anzeigbares Bild darauß machen (Debayer und so).
Hi DS,
ohne die akademische Elite angreifen zu wollen: die meisten stellen sich
das zu einfach vor. Sie haben ja auch seltenst die Zeit, Aufgaben selbst
zu implementieren, geschweige denn mit alle 2 Jahren wechselnden Tools
auf dem Stand zu bleiben.
Wichtig ist auf jeden Fall eine gute Betreuung. Habe in der
Vergangenheit einige Studenten/Diplomarbeiten betreut und daher gut
mitbekommen, wie die Studis ab und an schwimmen. Das kann extrem
frustrierend sein, und gerade in externen Projekten mit limitierter
Betreuung durch die Firma werden auf die Weise viele Studis
richtiggehend verheizt. Darf ja die Firma auch nichts kosten, nech.
Insofern wäre ich vorsichtig damit, was Dir die 'Vorgesetzten' so an
Schwärmereien aufdrücken (wollen). Du verlierst ansich keinen Zacken aus
der Krone, wenn Du den Chefs eine gute Begründung und Abschätzung
liefern kannst, warum etwas nicht machbar oder wirtschaftlich ist.
Bei uns gabs damals auch Punkte für eine saubere Aufwandsabschätzung und
Evaluation der Risiken (sprich, Projektmanagement hatte min. 15%
Gewicht)
Zu deinen technischen Überlegungen: Du kannst auf jeden Fall mit dem
internen BlockRAM auskommen, wenn Du nicht grade den kleinsten Spartan3
einsetzt. Du brauchst ein paar Zeilenpuffer und etwas RAM für die
UDP-Pakete. Wenn Du bereits einen MAC-Block (mit RMII, etc.) hast,
könnte das mit den 3-4 Monaten klappen.
Auch wenn Du ev. einen fertigen DDR-Core (wie auf dem Spartan6) hast:
Das Problem wird dann u.U, eine gute abrissfreie Pufferung der Daten
hinzukriegen. Sehr aufwendig, deshalb würde ich externes RAM erst mal
absolut vermeiden.
Das ganze kannst Du auch komplett in der Simulation hochziehen, dann
weisst Du etwa was an Resourcen fällig wird.
Die Simulation kann allerdings mit einer freien Lizenz bei den meisten
Tools (isim, Modelsim) zur Tortur werden. Sind deshalb auf GHDL
ausgewichen (OpenSource).
Hoffe, mit Anregungen gedient zu haben :-)
Ich habe ein Ethernet-UDP ganz ohne IP-Core implementiert. Dazu muss man
- mit dem PHY kommunizieren (MDIO)
- dem PHY die richtigen Daten mitteilen (Vorspann 0x55) etc
- die korrekte CRC berechnen
- über allen darüber dann die UDP-Packet füllen und eine Ablaufsteuerung
implementieren.
Alles das wird einem Anfänger mindestens 3 Monate Kosten. Und darin ist
noch nichts vom Framegrabber und mit Bildern.
Framegrabben alleine vielleicht mit dem FPGA. Aber den UDP-Teil würde
ich lieber auf einem 'normalen' Prozessor abwickeln wollen.
Vielleich geht ja ein Zynq oder ein Altera SoC. Aber rein FPGA würde ich
nicht machen wollen. Zumal du keine Unterstützung von erfahrenen Leute
erwarten darfst.
Was soll denn das Gerät überhaupt machen?
Weil das kann alles auch ganz trivial sein, so wie Du das beschreibst,
oder aber auch hoch komplex.
Was Du machen kannst ist das Schwarz-Weiß BAS-Signal klemmen und
digitalisieren (LM1881 holt Dir die Sync-Signale raus) und dann an den
FPGA schicken. Der nimmt dann zum richtigen Zeitpunkt der Zeile 500-1000
Werte auf, und schickt die zusammen mit der Zeilennummer (und ggf.
Bildnummer) per Gigabit Ethernet raus. Macht 14400 Pakete pro Sekunde,
mit guten Gigabit Ethernet Karten im PC ist das kein Problem.
Bei Farbe kann es sein, dass Du einen PAL Dekoder brauchst. Der kann
primitiv einfach bis hoch komplex sein, je nach Anforderungen. Im
einfachsten Falle machst Du per DDS einen PLL, der sich immer am
Burstsignal nachsteuert (die zeitliche Position des Bursts schätzt Dir
freundlicherweise sogar schon der LM1881). Damit kannst Du dann das
QAM-Signal demodulieren. Wenn es besser sein soll, mittelst Du das mit
der vorherigen Zeile, modulierst es wieder für beide Zeilen und ziehst
es vom Helligkeitssignal ab.
Ist Dir die Datenmenge zu groß, so kannst Du mal alte Artikel von der
BBC durchlesen. Die haben da ihre Engineering Monographs und ähnliche
Publikationen. In den 1960ger-1980ger Jahren hatten die immer mal wieder
Artikel über einfache Bilddatenkompression. Ich glaube die konnten ein
Farbsignal mit relativ primitiver Technik auf grob 35 MBit komprimieren.
(und das ohne von PAL auf Komponenten zu gehen)
Framegrabbing per UDP über Microblaze geht nur, wenn der Frame selten
kommt ;) Ein 66MHz Microblaze mit Linux schafft bei mir mit viel Glück
so 3-4MB/s, und da hat die Netzwerkkarte (RTL8169) schon eine ganze
Menge Arbeit abgenommen. Mag mit dem rohen Xilinxstack ohne OS und
Spartan6 etwas schneller gehen, aber sicher nicht so, dass man auch nur
PAL-Frames bei 25fps zuverlässig los wird.
Wirklich gut läuft sowas nur ohne CPU. Das ist aber wirklich aufwendig
(BTDT, knapp 90MB/s IPv6-UDP in Hardware und die CPU schaut zu...) und
ohne gute VHDL-Kenntnisse und überhaupt allgemein Erfahrung im
Design/Test der Komponenten in der angegebenen Zeit sicher nicht
machbar. Wenn schon, solltest du das Ziel auf Subsystem einschränken und
das dann vernünftig machen. Das ist besser als vollständig, aber nicht
funktionierend...
Danke für die guten Beiträge, die helfen mir schon mal weiter. Lesen tu
ich in diesem Forum ab und zu aber diesmal habe ich zum ersten mal was
geschrieben und bin überrascht, wie schnell und konstruktiv die Antorten
kommen (das sieht im Xilinx Forum gaaanz anders aus...)
@Fitzebutze
Als FPGA habe ich einen Spartan 6 XC6SLX45
Wie ist das mit dem fertigen DDR Core auf dem Spartan 6 - ist das das
DDR, das der BSB Wizard im Xilinx Platform Studio automatisch erzeugt?
Ist der sofort einsetzbar und zugänglich über fertige Schnittstellen?
Ein Mac Core mit gmii (was der PHY braucht) stellt XPS zur Verfügung -
allerdings nicht lizenzfrei...
Simulation klingt für mich recht schwierig - wieder Tools, in die ich
mich einarbeiten muss. Ist das erforderlich oder geht das auch ohne
@PittyJ
Dass es nicht in Frage kommt, das System komplett selbst aufzubauen, hab
ich mir auch schon gedacht. Alleine die MAC Ebene zu programmieren, das
wäre schon eine eigene Bachelorarbeit.
Das Entwicklungsboard ist auch schon gekauft und da, also gibt es dort
keinen Spielraum.
@Christian Berger
Danke auch für deine ausführliche Antwort, allerdings geht sie in ein
etwas andere Richtung, du schreibst von Analogsignalen, deshalb nochmal
kurz etwas zur Eingangsseite:
Der Videostream kommt bereits digital und parallelisiert als RGB
Pixelstrom mit Synchronisationssignalen (vsync, hsync, de und pclk) an.
@Georg A.
Der Frame kommt häufig... 60fps. Allerdings kann bei dieser Datenrate
auch jedes zweite Bild weggelassen werden.
@der
Es gibt meines Wissens noch keine, die dieses Eingangsformat (vor dem
Deserializer) verarbeiten können (FTP Link III)
Der MAC im Spartan 6 ist doch aber ein hard-IP, da sollte man eigentlich
auch lizenzfreien Zugriff haben, jedenfalls wenn man ohne MicroBlaze
oder sowas arbeitet. Die UDP Pakete kann man auch in Logik basteln, der
µB wäre eh zu lahm.
Edit: Sorry, ich hab das mit PCIe verwechselt. S6 hat doch keinen MAC
eingebaut. Na dann wirds erst recht schwierig. Eventuell könntest du auf
Glasfaser gehen, wenn du das SP605 Board haben solltest. Dann kannst du
ja die Ethernet Frames direkt über die MGT Transceiver rauspusten.
D.S. schrieb:> Nun meine Frage - denkt ihr, dass dieses Thema überhaupt in den nächsten> 3-4 Monaten (für einen Newbie) zu schaffen ist
Nur, wenn du einen sehr erfahrenen und hochmotivierten Betreuer hast
und das Meiste deiner Freizeit investierst. Und: ein Viertel der Zeit
wirst du für die Dokumentation der Arbeit brauchen...
S.D. schrieb:> Simulation klingt für mich recht schwierig - wieder Tools, in die ich> mich einarbeiten muss. Ist das erforderlich oder geht das auch ohne
Ohne Simulation geht es nur, wenn du zufällig alle zighundert Parameter,
die du einstellen könntest, richtig einstellst. Rechne dir mal die
Wahrscheinlichkeit aus...
Nur kurz:
Es gibt seit Jahren einen Framegrabber, der sowas für CameraLink macht,
nannte sich Pleora iPort. Gibt es offensichtlich auch immer noch in
dieser Form. Der Gag an dem Teil war, dass es die Features des
eingebauten Intel-MAC voll ausnutzt und auf PC-Seite einen optimierten
Treiber nutzte, damit keine UDP-Pakete verloren gehn. Ist hier wohl aber
eher zweitrangige Info..
S.D. schrieb:> Als FPGA habe ich einen Spartan 6 XC6SLX45> Wie ist das mit dem fertigen DDR Core auf dem Spartan 6 - ist das das> DDR, das der BSB Wizard im Xilinx Platform Studio automatisch erzeugt?> Ist der sofort einsetzbar und zugänglich über fertige Schnittstellen?>
Der ist relativ einsetzbar, ist ein harter Silizium-Kern. Also nur
Konfiguration nötig, die ist aber u.U. schon knifflig genug.
Mit einem Trenz Gigabee lief das bei mir aber auf Anhieb.
> Ein Mac Core mit gmii (was der PHY braucht) stellt XPS zur Verfügung -> allerdings nicht lizenzfrei...>
Da gibt es was bei OpenCores..
> Simulation klingt für mich recht schwierig - wieder Tools, in die ich> mich einarbeiten muss. Ist das erforderlich oder geht das auch ohne
Absolut nicht ohne. Das Debugging kannst du ohne Simulation bei dieser
Komplexität so gut wie vergessen, oder es kostet dich weitere 7 Monate
:-)
Ich kann ansonsten GHDL sehr empfehlen, 'obwohl' kostenlos, ist es zur
Simulation von komplexen Systemen sehr gut geeignet. Nur wenn du
herstellerspezifische Blöcke verwendest, kann es Probleme geben. Mit dem
OpenSource-Ansatz haben wir bei einem Projekt viel Zeit gespart und sind
erst noch FPGA-unabhängig.
Gruss
Ich kann kaum begreifen, was ich hier an Zeit-Schätzungen lese. Entweder
lesen hier einige die Randbedinungen nicht richtig oder haben keine
Erfahrung. Fassen wir mal zusammen:
Der Autor möchte ....
- Daten über UDP-Protokoll mit 1GB versenden
- hat einen Spartan ohne CPU Kern und einen PHY ohne MAC
- darf keinen MAC kaufen
- möchte einen Microblaze einsetzen
- hat keine Erfahrung mit Xilinx
- hat keine Erfahrung mit Simulation
- keine Erfahrung mit Microblaze
Allein die Vorstellung, man könne mit einem Microblaze 1GB Bandbreite
schaffen, ist schon mal komplett irrig. Aber sowas von komplett irrig.
Da fehlt mal locker ein Faktor 5-10. Selbst mit einem Virtex und
Power-PC ist das kein Kinderspiel.
Ebenso daneben ist der Versuch, ohne jegliche Simulation einen
kompletten UDP-Stack implementieren zu wollen und sei es auch nur ein
mickriger. Dabei ist es eigentlich egal, ob man ihn selber vereinfacht
nachbaut oder einen fetten MAC nimmt und abspeckt. Wahrscheinlich ist es
auch egal, ob man ihn in Software oder FSMs baut: Ohne Simulation geht
das definitiv überhaupt nicht. *Chancenlos!*
Meine Rechung für einen Studenten sieht so aus:
Vorarbeiten:
1 Woche Lastenheft mit Projektleiter klären und Zeitplan machen
1 Monat ISE kennenlernen und Simulieren lernen
1 Monat Xlinx Probleme lernen und zu einem Compilat kommen
1 Monat high speed Designs und Constraints lernen
Dann:
1 Monat SPEC schreiben, dass man weiss, was man arbeiten wird
1 Monat PHY kennenlernen und ansteuern lernen
1 Monat Simulieren und Testen, bis der PHY ein einziges Paket ausspuckt
1 Monat UDP ausbauen, dass das Protokoll stabil läuft
1 Monat State Machines bauen, die den Ablauf steuern
Alternativ einfach den Xilinx MAC nehmen und sich 1 Monat in den
einarbeiten, 1 Monat Xilinx Probleme lösen.
Dann:
1 Monat timing optimieren, dass man die 1GB Bandbreite schafft
1 Monat Inbetriebnahme und Fehlersuche
1 Monat Bilddaten einlesen, Timing implementieren und verpacken
1 Monat Design umkrempeln, weil die Spartan-6 Krücke limitiert ist
Dann muss da irgendeine Steuerung drauf. Der Rechner muss ja den Grabber
irgendwie anwerfen und parametrieren. Also das Ganze nochmal in die
andere Richtung mit Lesen vom PHY.
1 Monat Leseprotokoll und Aufweiten der FSM.
1 Monat Inbetriebnahme und Fehlersuche des Gesamtsystems
2 Monate dokumentieren, was man gemacht hat
Ich sehe hier allein schon >1 Jahr, abzüglich eventueller Vorkenntnisse.
Ich rechne das Ganze noch *+20%* weil "*Anfänger* ohne Betreuung".
************************************************************************
**
Wenn Du sowas noch nicht gemacht hast, sitzt Du da in *1,5* Jahren noch
dran.
************************************************************************
**
Ich lasse mich aber gern eines Besseren belehren, dass Du es in einem
Jahr am Laufen hast.:-)
Mal ernsthaft:
Deine einzige Chance ist, eine existente Lösung zu nehmen und zu
modifizieren. Je mehr Fertiges Du irgendwo auftreiben kasst, desto
besser.
ABER:
Nur einfach Fertigteile zusammenzustecken, wird Dich nicht
weiterbringen, weil es ein oberflächliches Wissen ist, dass ohne Wert
bleiben wird. Das ist für Studenten komplett das Falsche. Wenn Du
wirklich so wenig Ahnung hast, musst Du die Basics lernen und das dauert
länger, als 3 Monate = 12 Wochen = 60 Tage. Allein die Bruttozeit bei
der Synthese eines TRiCore-MAC sind 30min+ je Lauf und Du wirst deren 50
brauchen, bis das geht. Das allein sind schon 3 komplette Tage Netto.
Wahrscheinlich hat er die Freeware von ISE und das langsame Schmalspur
ISIM und es ist deshalb ein S6 45.
**************************************
Leute, Leute, so langsam kapiere ich, warum unsere lieben Projektleiter
ständig die Entwicklungszeiten unterschätzen:
Meine lieben Kollegen Entwicklungsingenieure geben vollkommen
irrational kurze Zeiten weiter :-)
Wir alle wissen doch, welche Probleme da auftreten und wie schwierig das
für einen Anfänger ist!
Tach nochmal,
also ganz so schwarz wie Markus sehe ich es nicht, aber würde ihm
dennoch beipflichten. Hoffentlich ist auch dem 'Auftraggeber' klar, dass
ein solches Projekt als Produkt (mit entsprechender Qualität) min. ein
Jahr Entwicklung kostet.
Es gibt immer mal wieder ein paar echt gute Hacker, die in wenigen
Wochen gut funktionierenden Code schreiben und mit der richtigen
Betreuung und einem kleinen Kickstart in Form eines Basis-Systems an dem
sich alles gut debuggen lässt, durchaus in 3 Monaten ihre anspruchvollen
Pläne auch fertigkriegen (bei einem durchschnittlichen
14-Stunden-Labortag). Muss der TO selber wissen, ob er einer von der
Sorte ist :-)
Mit dem Microblaze den Durchsatz zu schaffen, sehe ich nicht so
problematisch. Stichwort DMA...die CPU macht dann nur noch den Verwalter
und kickt die DMA-Ströme zyklisch an bzw. inkrementiert
Ringbufer-Pointer. Mit einer CPU a la "*a++ = *b++" Daten herumschieben
sollte man auf einem FPGA sowieso nicht tun. Aber wie gesagt: Das System
sollte schon stehen, und der Betreuer muss sich damit auskennen.
Wenn letzterer beim Auftraggeber nicht zu finden ist oder wenn, dann
keine Zeit hat: no go. Das frustriert dann nur alle Teilnehmer. Da muss
man auch die Firmen in die Verantwortung/Pflicht nehmen.
Microblaze?? Niemals. Wir haben in einer Diplomarbeit mal mit dem
PowerPC auf dem Virtex 4 einen GbE UDP Stack implementiert. Das hat etwa
ein halbes Jahr in Anspruch genommen (keine Zeile VHDL vom Diplomanden,
nur EDK) und er musste den Stack selber schreiben, weil der beknackte
LwIP viel viel zu lahm war. Der PPC hat dann mit 450MHZ Taktfrequenz,
DMA über MCMP, riesigen Puffern und Checksum Offloading in Hardware
gerade so 110MB/s an den PC schaufeln können. Da war noch keinerlei
Interaktion mit der eigentlichen Hardware im Spiel. Ging auch nicht,
weil der Virtex nahezu komplett ausgelastet war. Mit einem MB schaffst
du vielleicht mit viel optimieren 100MBit.
Bei der Ausgangslage würde ich auch auf etwa 1 Jahr Arbeit tippen, wenn
man schnell lernt und sich durch den Xilinx Krempel durchbeißt. In einer
Abschlussarbeit in dem Umfang nicht machbar. Brich das ab und mach was
anderes. Ganz ernst gemeint. Du wirst damit niemals in der Zeit fertig.
Wieso hast du nicht vorher mal gefragt?
> Und auch in meinem Umfeld kennt sich keiner so richtig aus...
Das ist das K.O. Kriterium schlechthin. Gib die Arbeit ab, oder sorge
dafür, dass du "nur" eine Teilaufgabe lösen oder "nur" ein
realisierbares Konzept ausarbeiten musst.
Auch auf das Risiko hin, daß der folgende Hinweis kontraprodultiv ist,
da er in eine falsche Richtung führt: Ein Beispiel für die Erzeugung von
UDP-Frames per FPGA, allerdings in Verilog und (!) nur für 10 MBit,
findet man hier: http://www.fpga4fun.com/10BASE-T0.html
Mit der Zeitschätzung habt ihr bestimmt recht. Das klingt sehr
aufwendig. Aber auch eine Arbeit, die das gesteckte Ziel nicht erreicht,
kann sehr gut sein, indem man eben erstmal das Gesamtkonzept ausarbeitet
und je nach Zeit noch Teilprobleme exemplarisch löst und dann auf
Probleme hinweist und eine realistische Zeitschätzung ausarbeitet. Auch
ein Fehlversuch kann sehr lehrreich sein.
> indem man eben erstmal das Gesamtkonzept ausarbeitet
Das bedarf aber Vorwissen, d.h. sowas ähnliches muss man schonmal
gemacht haben. Ohne Kenntnisse in VHDL (insb. einer Menge verbockter
FPGA-Designs aka "Design-Erfahrung") wird das nix. Schau doch nur mal,
was hier an unzähligen "Mein Code tut nicht das, was er soll"-Postings
auftaucht und am Ende wars immer nur ein harmloses, unscheinbares und
gaaaanz langsames Signal irgendwo. Nur halt asynchron...
Das Framegrabberbeispiel strotzt nur so vor unterschiedlichen
Clock-Domains. Wie soll man da vernünftige (effiziente, verständliche,
zukunftssichere) Schnittstellen ausarbeiten, wenn man noch nie
persönlich in die Sch... gegriffen, tagelang Fehler gesucht und damit
ganz tief verinnerlicht hat, was in dem Bereich do's und don'ts sind.
Und die Fehler tauchen noch nicht mal in der Simulation auf...
> Auch ein Fehlversuch kann sehr lehrreich sein.
Aber nur, wenn die Chance besteht, den einen Fehler zu finden.
Ansonsten ist es maximal frustrierend, wenn man irgendwann zwischen
VHDL-Macken, FPGA-Macken, Tool-Macken, IP-Core-Macken und der eigenen
(falschen...) Vorstellung aufgerieben wird.
BTW: Ich hab sowas in meiner DA durch. VHDL (im Jahre '95 hatte da
KEINER meiner Betreuer eine Ahnung, ein DAler vorher ist schon grandios
gescheitert, war dann so eine hättekönntewennte-Arbeit), Xilinx+Synopsys
(Dreck meets Müll, der Design-Compiler war bei der Synthese im
wesentlichen damit beschäftigt, Stack-Traces für den Crashreport
auszugeben), zwei komplexe und brandneue ASICs (u.a. PCI-Bridge von PLX)
mit spassigen Bugs, ein rudimentäres Pflichtenheft (aka "soll vier Räder
haben und fahren") und völlig unterdimensionierte Workstations. Ich
hatte nur das Glück, vorher schon mit Schematic Entry und Xilinx privat
garbeitet zu haben und zu wissen, wie man lötet&fädelt. Zwei Monate
Verlängerung (=>8 statt 6) waren auch noch nötig. Dann gings so lala und
ich war mit den Nerven fertig.
Christian R. schrieb:> Microblaze?? Niemals. Wir haben in einer Diplomarbeit mal mit dem> PowerPC auf dem Virtex 4 einen GbE UDP Stack implementiert. Das hat etwa> ein halbes Jahr in Anspruch genommen
Hier haben sie gerade ein Optikprojekt zur Implementierung von Bilddaten
im HD-Bereich über GigE. Da sind 3 Leute dran ud 3 Monate geplant und
das sind Experten. Ich kann ungefähr abschätzen, wie aufwändig das wird,
da ich selber schon X over IP betrieben habe. Je nach Anspruch kann das
einige Wochen oder auch Monate dauern, das so zu implementieren, dass es
das tut, was man möchte. Wenn man mitgeringer Bandbreite auskommt ist
das recht einfach, behaupte ich mal.
Aber an die Grenze vom Gigabit Ethernet ranzukommen, ist schon ein
Gehaue!
In einem FPGA möchte ich das nicht machen.
>110MB
Das ist ja nicht schlecht, denke ich, zumal der PC am Ende kaum mehr
wegschaffen wird. Jedenfalls unter Windows nicht.
> >110MB> Das ist ja nicht schlecht, denke ich, zumal der PC am Ende kaum mehr> wegschaffen wird. Jedenfalls unter Windows nicht.
Zumindest Senden in dem Speedbereich geht auch mit den billigen
Realtek-GBit-Chips recht gut. Die haben netterweise 2 Sendequeues,
keine Ahnung, wofür das mal gedacht war. Die eine Queue kann ganz normal
ohne SW-Änderung vom OS bedient werden, die zweite kann man per FPGA mit
synthetischen Deskriptoren versorgen.
60fps wissen wir jetzt.
Es fehlen noch die Angaben über die Datenmenge eines Frames.
Also wieviel Pixel und mit wieviel Bit Auflösung.
Davon hängt es ab ob du mit dem internen FPGA Speicher überhaupt
auskommst.
oder hab ich das überlesen ...
S.D. schrieb:> Der Frame kommt häufig... 60fps. Allerdings kann bei dieser Datenrate> auch jedes zweite Bild weggelassen werden.
Daher wissen wir das. Ausgabeseitig min. 30 fps schreibt er.
Ändert aber nichts dran, dass das unmöglich von einem derart
unerfahrenen Diplomanden in dieser Zeit zu erledigen ist.
>> Ändert aber nichts dran, dass das unmöglich von einem derart> unerfahrenen Diplomanden in dieser Zeit zu erledigen ist.
Keine Frage.
Aber es lesen ja auch noch andere mit ... nicht so eng sehen;)
Es würd mich trotzdem noch die Pixeltaktrate und die Mgeabytes pro Frame
interessieren.
Ich hab nochmal durchgelesen und so verstanden.
Das geht darum Displays (auf Pixelfehler ?) zu überprüfen.
Das wäre direkt mit dem FPGA geschätzt einfacher und es müsste nur
gut/schlecht an den PC übertragen werden.
> > synthetischen Deskriptoren versorgen.> Was ist das und wozu sind die gedacht?
Die Realteks (und eigentlich alle modernen IO-Chips ala USB&Co) arbeiten
mit Varianten des Chained DMA. D.h. sie lesen aus dem Speicher eine
Struktur (Deskriptor) aus, die Art des Transfer und vorallem die
Quell/Zieladresse der Daten im Speicehr beinhaltet. Die Deskriptoren
sind dann entweder in einem Array hintereinander oder als verkettete
Liste aufgebaut.
Wenn man als PCI(e) Gerät selbst Speicher implementiert, kann man die
Deskriptoren natürlich auch "on-the-fly" erzeugen und damit den IO-Chips
recht einfach Transfers entlocken.
Ich habe vor kurzen ein FPGA Board gefunden, da ist ein Spartan 6 drauf
(günstig) und ein Cypress FX3 (USB 3.0) Somit überträgst Du die Daten
nicht per UDP sondern über USB 3.0.
Ein DDR3 Speicher ist auch schon drauf und es wird auch mit einem
Demoprogramm in VHDL ausgeliefert. Demnach ist man fast schon fertig :-)
Es sei denn es muss unbedingt über UDP gemacht werden.
Ich kann morgen mal den Link posten
Das board ist sicher nicht übel, wenn es um geringe Distanzen geht.
Daten aber quer durch die Halle zu schicken, geht oft nur über
vorhandene Ethernet-Einrichtungen.
Trotzdem: 360 MBytes/sec sind schon Spitze!
Bilder sind maximal so ca. 1400x600
60fps
24bit RGB
Board ist schon gekauft, da gibt es keinen Spielraum (Board von Trenz
mit Spartan 6)
Open Source ist leider auch recht wichtig, dafür darf das System aber so
einfach wie möglich sein.
Die Daten müssen leider über Ethernet raus, das ist das vorgegebene
Ziel. Die Daten sollen RAW (quasi als Bytearray) an den PC und nicht auf
dem FPGA ausgewertet werden.
Da ich schon mal weiß, dass ich eh nicht fertig werde - besteht
irgendwie auf "einfache" Weise die Möglichkeit im Rahmen einer
Machbarkeitsstudie irgendwie ein Bild in Form von Paketen auf den PC zu
bekommen? Würde auch reichen, wenn erstmal 1 Bild pro Sekunde geschickt
wird, also was wäre die einfachste Möglichkeit, das System in minimaler
Form aufzubauen ohne Rückkonfigurierbarkeit usw.? Da wäre ich über
Hinweise sehr dankbar.
Ich bin mir ziemlich sicher, dass ich vor einigen Monaten am Bahnhof
eine Zeitschrift in der Hand hatte, in der beschrieben wurde wie man mit
einem Mikrocontroller (ohne Ethernet) und ein paar
Gattern/Schieberegistern ein transmit-only 10BaseT Ethernet Gerät baut.
hi,
mein Einstieg in mein GBIT - Ethernetmodul, war 10MBIT-Sender von
fpga4fun.com. Ist in verilog und ich persönlich finde verilog auch
anfängerfreundlicher, aber das kann man auch schnell in vhdl übersetzen
wenns sein muss. außerdem erklärt er (autor) die grundlagen ganz gut.
Wenn du da 1-2 wochen dran sitzt, solltest du dein erstes udp-paket
versenden können und mit wireshark sehen können auch als anfänger. und
vllt noch ein tipp wovon du deinen prof überzeugen solltest, schafft
euch ne chipscope-lizenz an. für den ganzen fachbereich reicht eine
kostet 500 € etwa und wird das debbuggen um faktor 1000 oder mehr
vereinfachen. das prog is auch ziemlich einfach zu bedienen 1-2 tage
einarbeitung. achso noch was bei den datein für das spartan sp601 eval
board ist schon ne billige art von Gbit EMAC dabei (als source und
bitfile) oder eher eine art gmiicontroller mit preamble-,
streamerzeugung und crc32 berechnung. die kann man auf der website von
xilinx runterladen, das war mein 2ter schritt. aber ich würde nicht
versuchen die evalboard datein zu analysieren bevor du nicht das
fpga4fun projekt verstanden hast und zusätzlich dich in die
gmii-schnittstelle eingelesen hast (sollte so 2-3 tage dauern).
viel glück
Daniel schrieb:> 10BaseT Ethernet
das ist aber noch ein bissl was anderes: bei dem tempo kommen noch keine
fpga themen hoch wie timing, io, das geht dann in der tat mit einem
controller
D.S. schrieb:> Bilder sind maximal so ca. 1400x600> 60fps> 24bit RGB>
Das sind dann bei 30fps 75,6 MByte/sec, wenn ich richtig gerechnet habe.
Wenn du das Xilinx SP605 Board hast, da ist scheinbar ein Demo dabei und
hier:
http://wiki.treck.com/Xilinx_Test_Results.html
gibts auch Messwerte für die Übertragungs Geschwindigkeiten.
Theoretisch lässt sich vielleicht der VideoDma logic core irgendwie in
die Ethernet Demo reinfummeln. Aber keine Ahnung wie groß der Aufwand
ist und ob es funktioniert.
> Bilder sind maximal so ca. 1400x600> 60fps> 24bit RGB
Aeh.. 840kPixel ... 60 mal sind 50M Pixel wandeln .. zu 3 byte pro pixel
waeren dann ... 150M Byte/s.
Heftig. Und wohin sollen die ?
Hallo zusammen (hab mir jetzt endlich mal einen Login zugelegt),
ich bin jetzt gerade dabei das Konzept ein wenig umzukrempeln. Mein Plan
geht jetzt eher so in Richtung "praktische Machbarkeitsstudie". D.h. ich
will es irgendwie schaffen das Bild in der vorgegebenen Zeit (3 bis 3,5
Monate) in Form von Paketen auf dem PC anzeigen zu lassen. Das bedeutet,
dass das System nicht ausgereift sein muss, sondern so einfach wie
möglich implementiert werden soll. Das Ethernet soll erstmal nur in eine
Richtung gehen (Senderichtung), UDP/IP kann gerne feste Adressen haben
(gerne auch vorgefertigter Code), als Geschwindigkeit reicht es erstmal,
wenn nur 1-2 Bilder pro Sekunde ankommen, der Rest der Bilddaten kann
(erstmal) verworfen werden. Hauptsache der Datenstrom kommt erstmal
zustande. Wichtig ist noch, dass die Daten in einem externen RAM
zwischengespeichert werden.
Mein Plan sieht deshalb vorerst so aus, dass ich alles ohne
Prozessorsystem in der ISE mache. Freie IP Cores oder Programmbeispiele
sollen die Arbeit erleichtern. Den Eingang würde ich über den Xilinx
vid_in_to_axi4s Core lösen (habe ich bereits eingebunden), dann sollen
die Daten über den AXI4Stream in das externe RAM (mit einem IP Core, der
aus dem AXI4 Stream ein AXI4MM macht und vllt. ein weiterer Core, der
direkt auf den Speicher zugreift). Dann würde ich eine Instanz selbst
schreiben, die den Datenstrom nach dem Infrastruktur IP wieder entgegen
nimmt, in einzelne Bilder teilt und dann an die nächste Stelle
weitergibt (das ist dann die Sendeeinheit).
- Ist das in dieser Form sinnvoll, um die ganze Sache überhaupt erstmal
irgendwie umsetzen zu können?
- Wie ist das mit den AXI4 IP Cores, die von Stream auf Memory Mapped
umwandeln - welcher Core wäre für diese Aufgabe geeignet, ohne dass er
von einem Prozessor gesteuert werden muss? (VDMA oder Virtual FIFO
oder...? Wie ist das, wenn die Datenbreite (vom Dateneingang ja 24bit)
nicht mit der des FIFO IP übereinstimmt? Ist das wichtig?)
- Was hat es mit dem MIG Tool auf sich?
- Kann dann den Datenstrom vom AXI4Stream dann auf einfache Weise wieder
in Signale für den Ethernet Ausgang umwandeln?
Danke schon mal für eure Antworten!
>Mit den Xilinx Entwicklungsumgebungen und VHDL habe ich so gut wie keine>Erfahrung
das merkt man
D. S. schrieb:> Mein Plan> geht jetzt eher so in Richtung "praktische Machbarkeitsstudie".
etwas, was ich neuerding soft sehe - gerade bei Anfängern:
Es wird nichts mehr gebaut, sondern das Bauen analysiert und die
Vorgänge drum herum theoretisch untersucht - dies aber ausgerechnet von
denen, die nicht praktisch gearbeitet haben und keinen Überblick
besitzen und deshalb nur Informationen aus zweiter Hand sammeln.
Daher ist die Studie für die Tonne.
Früher haben diejenigen Systeme und Methoden analysiert, die selber 10
Jahre auf dem Buckel hatten. Heute analysieren die 25-jährigen die Welt
ud beraten dann Industrie und Management.
Gute Nacht!
P.S Deine "Machbarkeitsstudie" ist ja schon fertig. Wurde vom Forum hier
durchgeführt.
Lies das hier:
Beitrag "Re: Entwicklung Framegrabber - Aufwand & Umsetzbarkeit?"
und die folgenden Beiträge.
Du kannst es direkt in Deine Arbeit reinkopieren.
(Quellenangabe nicht vergessen)
Hallo Mark,
danke für deinen "hilfreichen" Eintrag, aber ich denke du hast
vielleicht meinen letzten Beitrag nicht richtig gelesen oder verstanden.
Ich hänge nun in dieser Arbeit drin und muss in der vorgegebenen Zeit zu
einem Ergebnis kommen. Mein Ziel ist es dabei nicht die Industrie zu
beraten sondern erstmal mein Studium fristgemäß abzuschließen. Wie man
so ein System aufbauen müsste (mit MicroBlaze-System und AXI Ethernet
Core usw.) habe inzwischen verstanden, genauso wie ich aber auch
verstanden habe, dass es auf diese Weise in der vorgegebenen Zeit nicht
machbar ist, besonders unter den gegebenen Vorraussetzungen.
Es geht jetzt hier nicht um ein ausgereiftes System, wie es in Serie
gehen würde, sondern darum, dass ich es auf einfache Weise in der Zeit
hinbekomme, um eben das Ziel (Bild wird auf PC angezeigt) irgendwie
erreiche.
Dabei wären mir wirklich kluge Ratschläge ehrlich gesagt lieber. Über
die Theorie weiß ich inzwischen genug, so eine Arbeit enthält aber eben
auch einen praktischen Teil und den will ich nun zu Stande bekommen.
Für den MIG Core habe ich passend zu meinem Board schon ein
vorgefertigtes Projekt vom Hersteller, das ich denke ich so übernehmen
könnte. Meine Hauptfrage für den Moment ist: Wie bekomme ich die Daten
von dem AXI4 Stream in den Speicher, ohne dass der Core dafür von einem
Prozessor gesteuert werden muss? (siehe meine Fragen in meinem letzten
Beitrag)
an Mark: Vielleicht etwas zu harsch, deine Kritik an den Studierenden.
Die Schuld würde ich eher den Bildungsinstitutionen geben. Die
Ausbildung wird z.T. immer theorielastiger, während die meisten
Studenten dank Bachelor/Master-Wahnsinn immer weniger Zeit haben, Dinge
wirklich zu verstehen und detailliert praktisch zu erarbeiten.
Aber die Diskussion wollen wir ja hier nicht anreissen.
Zu den anderen Fragen:
> - Ist das in dieser Form sinnvoll, um die ganze Sache überhaupt erstmal> irgendwie umsetzen zu können?
Ich würde mal mit einem ganz simplen Streaming anfangen, ohne Core und
ohne AXI-Gefuddel.
> - Wie ist das mit den AXI4 IP Cores, die von Stream auf Memory Mapped> umwandeln - welcher Core wäre für diese Aufgabe geeignet, ohne dass er> von einem Prozessor gesteuert werden muss? (VDMA oder Virtual FIFO> oder...? Wie ist das, wenn die Datenbreite (vom Dateneingang ja 24bit)> nicht mit der des FIFO IP übereinstimmt? Ist das wichtig?)> - Was hat es mit dem MIG Tool auf sich?
Damit generierst du das DDR2(3) memory interface.
> - Kann dann den Datenstrom vom AXI4Stream dann auf einfache Weise wieder> in Signale für den Ethernet Ausgang umwandeln?
Ansich schon, dafür gibts auch fertige IPs zur Anbindung eines PHY über
RMII o.ä.
Aber ohne Soft-Core würde ich keinen UDP-Stack anfangen. Und DMA
brauchst du dafür auch.
Hier mal 'meine' Einkaufsliste, die ich für eine USB-Lösung brauche:
- Vorverarbeitungsmodul
- Soft CPU (ZPU)
- DMA-Controller, zweikanalig
Bei dir käme dazu:
- EMAC-Treiber (PHY)
- UDP-Engine
Im Prinzip ist der DMA nur dazu da, Header von der CPU aus abzuschicken.
Alles andere geht bei mir ohne DDR RAM. Das geht im Prinzip mit UDP
auch, schau mal, ob du DDR2 vermeiden kannst, das spart dir schon viel
Aufwand.
Wenn Du jede Zeile als einzelnes UDP-Paket raushaust, solltest Du da zum
Ziel kommen.
Grüsse!
D. S. schrieb:> Ich hänge nun in dieser Arbeit drin und muss in der vorgegebenen Zeit zu>> einem Ergebnis kommen.
Da ist natürlich was dran. Allerdings waren meine Einwände schon ernst
gemeint: Das Thema Machbarkeit wurde ja nun hinlänglich behandelt. Die
Frage ist nun, was da jetzt noch für ein Lerneffekt bei rauskommt.
Fitzebutze schrieb:> Die Schuld würde ich eher den Bildungsinstitutionen geben. Die> Ausbildung wird z.T. immer theorielastiger, während die meisten> Studenten dank Bachelor/Master-Wahnsinn immer weniger Zeit haben, Dinge> wirklich zu verstehen und detailliert praktisch zu erarbeiten.
100% d'accord. Mein Einwand war auch nicht allein in Richtung des
Betroffenen gerichtet. Allerdings sehe ich auch hier zwei Themen:
1) Einerseits proklamieren die Hochschulen "praktische" Ausbildung, sind
dann aber nicht gewillt und in der Lage, das zu leisten. Haben die dort
Xilinx erklärt? Haben sie Simulieren erklärt? Wahrscheinlich nicht. Der
Betreuer hat ja offenbar nicht mal einen Überblick.
2) Andererseits macht es keinen Sinn, Studenten konkretes Wissen zu
vermitteln, dass nur ein Teil wird brauchen können. Der Sinn der
Hichschule ist ein anderer: Grundlagen erklären! Ob man das als Theorie
oder Praxis einstuft, bleibt der Interpreation überlassen. Ich für
meinen Teil hätte erwartet, dass man dem Studenten erklärt, was
Einsynchen ist, wie grundsätzliche Schaltungen arbeiten, wie man eine
Simulation mit Testrahmen aufsetzt (dann kriegt er das für jeden
beliebigen späteren Anwendungsfall hin, egal ob C oder Verilog).
Dann würde eine Abschlussarbeit folgen, die diese gesamten Grundlagen
auch abprüft: Messsystem auslegen, ADC dran, SFDR berücksichtigen,
Filtern, Dezimieren, Aufbereiten, Speichern und das Ganze auf einem
technisch einfachen Pfad. Das aber wird aber nicht gemacht. Stattdessen
greift man zu einem Projekt, das viel zu gross angesetzt ist, viel
Wissen nicht benötigt wird und münzt es dann noch um in eine
theoretisches Analyseprojekt. Da kommen dann immer mehr "Theoretiker"
raus mit dünnem Wissen, denen viele Zwischenschritte fehlen.
In jedem Fall ist es komplett Banane, einen Studenten mit so einer
Aufgabe zuzuknallen, die keinesfalls zu bewältigen ist, weder vom Umfang
her noch von der Komplexität her. Wer hat sich das ausgedacht?? Eine
"studie" zu dem Thema, wie man das machen könnte, ist etwas komplett
anderes. Das hätte man ja von vorn herein so planen können, wobei ich
inhaltlich infrage stelle, ob das sinnvoll ist, wenn ein Studi mit einer
Abschlussarbeit glänzt, inder er ausgforscht hat, wie man etwas machen
könnte. Das grenzt dann wieder an Unterforderung und riecht nach
"Theoretiker" der zu realem Arbeiten nicht taugt. So könnten das die
Firmen sehen. (und das tun sie!)
Dr. Schnaggels schrieb:> Das ist so als würde man von einem Fahrschüler verlangen, eine Studie>> über optimalen Fahrstil zur Reduzierung des Bezinverbrauchs anzufertigen
und geplant war ja sogar, ein halbes Getriebe zu basteln. Ich würde
ohnehin erstmal Lego empfehlen, um zu probieren was geht.
Neuerdings gibt es ja sogar Lego für FPGAs:
http://embdev.net/topic/266406#2775146
Ingenieur schrieb:> Neuerdings gibt es ja sogar Lego für FPGAs:> http://embdev.net/topic/266406#2775146
Naja, als Ingenieur sollte man eigentlich (selbst als Neuling) in der
Lage sein, mit "Lego Technic" zu arbeiten, und nicht auf "Duplo"
zurückgreifen müssen...
(sorry, OT, werde meinen Schnabel halten)
Hallo zusammen,
vielen Dank bis hierher für eure Antworten, Fazit für mich ist: Ich muss
so weiter machen und werde versuchen das irgendwie zu schaffen, wenn
auch in vereinfachter Form. Für weitere Fragen werde ich weiter(e)
Beiträge erstellen, denn hier zu diskutieren, wie eine Abschlussarbeit
auszusehen hätte, hilft mir im Moment nicht weiter. Jetzt muss ich da
durch. Würde mich freuen, wenn ihr mir auch in Zukunft noch bei der ein
oder anderen Frage weiterhelfen könnt.
Vielen Dank für die vielen konstruktiven Rückmeldungen!
Dr. Schnaggels schrieb:> Du kannst jederzeit Fragen stellen. Wir werden uns bemühen, Dich zu>> unterstützen.
Das wird eine lange Danksagung auf dem Deckblatt.