Guten Abend allerseits Ich habe beschlossen, mich auch mal etwas näher mit FPGAs zu beschäftigen. Und da ich kein passendes Evaluationsboard finde (die meisten Boards, die ich so gefunden habe, sind eher für Übungen die mich recht wenig interessieren) hatte ich vor, auch mit FPGAs genauso anzufangen wie ich es bei Mikrocontrollern gemacht habe: Ich baue mir einfach selber was zum Lernen. Ich würde am liebsten mit FPGAs von Lattice anfangen, da scheint mir die Lizensierung fürs Hobby am einfachsten und sinnvollsten zu sein. Es gibt - bisher - zwei Dinge, an denen ich mich versuchen will (in dieser Reihenfolge): 1. Etwas Signalverarbeitung auf mehreren Kanälen und damit eine anständige Leistungsmessung zu bauen. 2. Ethernet-Verkehr mitschneiden und gegebenenfalls manipulieren können. Jetzt stehe ich vor dem Problem: wie wähle ich denn einen halbwegs passenden FPGA aus? Wieviele LUTs brauche ich für eine FFT mit, keine Ahnung, sagen wir mal 16 Bit und 10kS/s auf sechs Kanälen? Und was sind eigentlich so die aktuellen Serien? Ich lese mich gerade etwas in den MachXO3D ein - wären die passend oder stehen die kurz vor der Abkündigung?
Für die ersten Schritte ist es egal, ob der FPGA abgekündigt ist oder nicht. Demo-Board besorgen und ausprobieren.
> da scheint mir die > Lizensierung fürs Hobby am einfachsten und sinnvollsten zu sein Eher nicht. Siehe ispLever. Als relativ stabil wuerde ich eher Altera/Intel und Xilinx ansehen. Lattice kaeme mir nicht ins Haus. > wie wähle ich denn einen halbwegs passenden FPGA aus? Man schreibt seine Beschreibung und laesst das Tool arbeiten. Da kommen dann die verwendeten LUTs, Multiplizierer und RAMs im Report. > eher für Übungen die mich recht wenig interessieren Auch der Pianist faengt mit Fingeruebungen an. > Ich baue mir einfach selber was zum Lernen. Damit machst du dir voellig unnoetig einen Nebenschauplatz auf. Und mit den Dingen die du vorhast, wird das Board mit Sicherheit schon etwas komplexer, und damit fehlertraechtiger. Fuer die ersten Schritte tust du dir damit keinen Gefallen.
Wühlhase schrieb: > 1. Etwas Signalverarbeitung auf mehreren Kanälen und damit eine > anständige Leistungsmessung zu bauen. > 2. Ethernet-Verkehr mitschneiden und gegebenenfalls manipulieren können. Das hier https://www.latticesemi.com/Products/DevelopmentBoardsAndKits/ECP5VersaDevelopmentKit.aspx kann das - von der Hardware. Ein Board in der Art selber bauen empfiehlt sich für den Anfang eher nicht, Gründe siehe 'oerks'. Da der ECP5 von yosys/nextpnr recht gut unterstützt wird, hat man auch den Aerger mit auslaufenden Lizenzen nicht. Gibt dazu 'legale' fertige Docker container, so dass man sich auch das Gefrickel mit der Installation spart.
Wühlhase schrieb: > Ich baue mir einfach selber was zum Lernen. Würde ich auf keinen Fall empfehlen. Kauf ein Evalboard und schau es dir genau an. Dann kannst du immer noch selber was basteln. Sonst ist das wie wenn du eigentlich Fahrradfahren lernen willst, dir aber das zugehörige Fahrrad selber zusammenbastelst. Wenn verfügbar kaufe ich immer Evalboards zum Kennenlernen der Bausteine, der gesamten Plattform und der Toolchain. > Es gibt - bisher - zwei Dinge, an denen ich mich versuchen will (in > dieser Reihenfolge): Vor solcherartiges Ansinnen solltest du aber unbedingt die Grundlagen des Hardwaredesigns setzen. Denn sonst bastelst du da letztlich einfach einen Softcore aufs FPGA und "programmierst" den dann wieder in C, so wie du es kennst und gewohnt bist. > 1. Etwas Signalverarbeitung auf mehreren Kanälen und damit eine > anständige Leistungsmessung zu bauen. In welchem Frequenzbereich? > 2. Ethernet-Verkehr mitschneiden Dafür gibts doch Wiresharc... > und gegebenenfalls manipulieren können. Wie "manipulieren"? Inline, am "lebenden Bit"? Dann musst du doch das Protokoll auswerten und die Daten darin ändern. Dazu brauchst du Wissen über diese Daten. Aber eigentlich hören sich beide Aufgaben für mich im Grunde nicht nach "löse ich mit einem FPGA" an... > Und was sind eigentlich so die aktuellen Serien? Ich lese mich gerade > etwas in den MachXO3D ein - wären die passend oder stehen die kurz vor > der Abkündigung? Warum sollten die abgekündigt werden? Gibts schon MachXO6? > in den MachXO3D ein - wären die passend Wofür brauchst du das "D"? oerks schrieb: > Lattice kaeme mir nicht ins Haus. Kein Problem mit Lattice. Das Gehampel mit der Toolchain gabs bei Xilinx auch.
Wühlhase schrieb: > Jetzt stehe ich vor dem Problem: wie wähle ich denn einen halbwegs > passenden FPGA aus? Wieviele LUTs brauche ich für eine FFT mit, keine > Ahnung, sagen wir mal 16 Bit und 10kS/s auf sechs Kanälen? Zur Auswahl: Schau dir im Manual an, wie knifflig die diversen Konfigurations-Prozeduren so sind. Schließlich kannst du ein FPGA nur dann zum Leben erwecken, wenn du es nach dem Einschalten des Netzteils erst einmal konfigurierst. Und je komplexer und mit Sicheheits-Zeug (über-)beladen das ist, desto schwieriger wird dieses Unterfangen - was dich wohl dazu leiten wird, deine Auswahl einzuschränken. Zu den LUT's: oftmals hängt das von den verbauten Sonder-Logiken ab (Akkus, Schieberegister usw.) - da kannst du mit der ISE probieren, in welchen Chip dein Projekt hinein paßt. W.S.
Wühlhase schrieb: > Ich baue mir > einfach selber was zum Lernen. Kann man machen, habe ich gemacht, ist aber ein fettes weiteres Thema das erstmal vom FPGA ablenkt. Wühlhase schrieb: > 1. Etwas Signalverarbeitung auf mehreren Kanälen und damit eine > anständige Leistungsmessung zu bauen. Das ist eine wunderbare Aufgabe. Definiere was du an Eingängen haben willst, also Abtastrate, Auflösung, ... selber bauen lohnt auch da nur wenn man lernen möchte, sonst musst du einmal durch das ganze Analogdesign durch ... Und dann braucht man da vermutlich keinen FPGA außer das sind viele Eingänge, hohe Abtastrate, ... Wühlhase schrieb: > 2. Ethernet-Verkehr mitschneiden und gegebenenfalls manipulieren können. Sieht schon sportlicher aus. Aber die Frage ist wieso FPGA? Bei hohen Datenraten oder zeitkritischen Dingen ist ein FPGA sinnvoll. Du kannst beide AUfgaben, wie Lothar schrieb, durch eine CPU im FPGA und C Code erschießen. Dazu musst du nix selber können. Du klickst nur Blöcke zusammen und am Ende programmierst du einen uC. Wenn du was zum Thema FPGA lernen willst ist das aus meiner Sicht nicht sinnvoll. Da solltest du wirklich tiefer eintauchen und in einer Hardwarebeschreibungssprache dein eigenes Design hochziehen. Wühlhase schrieb: > Jetzt stehe ich vor dem Problem: wie wähle ich denn einen halbwegs > passenden FPGA aus? Du beschreibst dein Design, lässt das simulieren bis du keine Fehler mehr findest und dann wirfst du das durch die Synthese. Da kommt dann raus wie viel das von was braucht. Aber zum Lernen würde ich ein Eval Board nehmen, dann kannst du auch schon vorher auf die Hardware gehen und dort Dinge ausprobieren. Ausserdem ist es nicht verkehrt einen dickeren FPGA zu nehmen weil man vielleicht irgendwann noch Funktionalität dazubauen möchte.
Lothar M. schrieb: > Sonst ist das wie wenn du eigentlich Fahrradfahren lernen willst, dir > aber das zugehörige Fahrrad selber zusammenbastelst. Genau so haben wir das gemacht: Man Vater hat aus alten Teilen ein für mich passendes Rad zusammengebaut, als ich 5 wurde, mich draufgesetzt und angeschoben. Ich kam 100m weit, dann habe ich mich hingelegt. Nach dem zweiten Versuch bin ich sicher 2 Jahre sturzfrei gefahren. Mit 9 habe ich angefangen, selber zu bauen, mit 10 kamen die ersten Rennen. So ging das Jahr für Jahr weiter. Das erste Rad, dass ich nicht zusammengebaut habe sondern komplett vor die Haustür gestellt bekam, wurde vom Sponsor geliefert. Das machte Probleme beim schnellen Kettenwechsel, die Schaltung hing andauernd und hatte schon mitten in der ersten Saison einen Gabelbruch. Das war das erste und letzt Bianchi in meinem Leben. Danach kam Panasonic+Shimano. Dazu mal eine Frage: Warum bauen die Japaner eigentlich keine FPGA`s?
Erstmal danke für die Rückmeldungen von euch. So wie ich die Sache sehe, werde ich wohl erstmal beim Simulator bleiben und dann erst abschätzen, wie dick der FPGA mindestens sein muß. Wenn er fünfzehn statt zehn Euro kostet ist das kein Problem, wenn er zu klein ist und einer für 20 Euro besser gewesen wäre, ist das blöd. Zum Hardwarebau: Ich habe mal eine Platine mit einem AD-Wandler (16 Bit, 8x100MS/s, inkl. Analoggeraffel) und einem Trenz-Board gebaut...irgendein Artix war da drauf. Ich hab mir damals die Schaltung vom FPGA-Board durchaus genau angesehen - das sind schon recht umfangreiche Schaltungen, aber nichts wovor ich mich fürchten würde. Ich habe noch nicht viele High-Speed-Platinen gebaut, aber ich denke ich hab da mittlerweile doch ein wenig Ahnung was ich zu tun habe. Danke dennoch für den Hinweis mit dem ECP5...das kannte ich noch nicht. Da ist zwar vieles drauf was ich nicht unbedingt brauche - und leider kein SRAM - ich werds aber trotzdem mal im Auge behalten. Kann man das Teil auch mit Open Source-Werkzeugen programmieren, oder darf ich die Diamondlizenz nach einem Jahr per Einwurf großer Scheine verlängern? Ich habe mich ein wenig mit VHDL befasst...nicht viel und nur theoretisch, aber ich denke nicht das ich einen Softcore auf den FPGA schieben und dann in C programmieren werde. Und ein paar Grundlagen was Logik angeht sind auch noch da...sicher, einiges muß ich nochmal auffrischen, aber ich fange nicht bei null an. Aber wie gesagt...das Thema Hardware werde ich wohl noch etwas verschieben und mich erstmal im Simulator austoben. Danke.
Wühlhase schrieb: > Danke dennoch für den Hinweis mit dem ECP5...das kannte ich noch nicht. > Da ist zwar vieles drauf was ich nicht unbedingt brauche - und leider > kein SRAM - ich werds aber trotzdem mal im Auge behalten. > Kann man das Teil auch mit Open Source-Werkzeugen programmieren, oder > darf ich die Diamondlizenz nach einem Jahr per Einwurf großer Scheine > verlängern? Geht alles mit yosys. Nur echtes Dualport-RAM macht Probleme, das wird nicht richtig synthetisiert. Der ECP5-45 hat einiges an internem Block-RAM, reicht für zweimal Ethernet und CPU-Kern. Vermutlich fängst du aber erst mal mit dem Blinky an. Siehe auch https://github.com/hackfin/hdlplayground, da sind lauffähige Tutorials dabei. Um das Board zu programmieren muss man sich allerdings mit der Docker-Umgebung vertraut machen. Ansonsten läuft die Simulation online.
oerks schrieb: >> da scheint mir die >> Lizensierung fürs Hobby am einfachsten und sinnvollsten zu sein > > Eher nicht. Siehe ispLever. > Als relativ stabil wuerde ich eher Altera/Intel und Xilinx ansehen. > Lattice kaeme mir nicht ins Haus. Lattice ist mit der Lizensierung nervig ... Seit Jahrzehnten muss man, um eine Lizenz zu beantragen, die MAC mit Bindestrichen angeben und sie haben es nie für nötig gehalten, auch Doppelpunkte (und diese im Backend durch Bindestriche zu ersetzen) zu erlauben. Kotzt mich immer wieder an ;-) Zusätzlich ist deren Software auch noch grottig schlecht. Für kleinere Dinge kann man mittlerweile die ice40 (zB icebreaker-board mit ice40up5k) empfehlen. "Kleinere Dinge" sind ... in den ice40up5k passt zB ein ganzer Risc-V mit Peripherie (GPIOs, UART, ...). Sowas in der Größenordnung. Die Opensource-Toolchain funktioniert mittlerweile echt super! Ansonsten würde ich zu Xilinx oder Altera/Intel raten. Bei Trenz gibt es das nette CYC1000 Board. Mit unter 20€ sehr günstig, aber hat 25kLE was recht großzügig ist. Das wären so meine low-cost Empfehlungen.
Wühlhase schrieb: > Aber wie gesagt...das Thema Hardware werde ich wohl noch etwas > verschieben u Warum bleibst du nicht bei den Trenzmodulen? Die nehme ich auch. Die sind noch mit am Besten dokumentiert.
> die MAC mit Bindestrichen angeben > FEATURE LSC_ADVANCED ... > ... HOSTID=ANY keine Bindestruche und kwT.
Wühlhase schrieb: > oder darf ich die Diamondlizenz nach einem Jahr per Einwurf großer Scheine > verlängern? Die Lizenz ist einfach auf ein Jahr begrenzt. Danach kannst du dir wieder eine gratis Lizenz für ein Jahr holen. Microchip/Microsemi macht das auch so. Ist wohl so eine poort-mans Methode um zu sehen, wie viele aktive Entwickler es so gibt und um an deren E-Mail Adressen zu kommen. Der Hinweis, das ispLever ohne Vorwarnung kostenpflichtig geworden ist, ist korrekt. Sicherlich nervt das, wenn man diese Bausteine Hobbymässig nutzt. Vielleicht mal den Lattice FAE anschreiben und etwas auf die Tränendrüse drücken. Mampf F. schrieb: > Zusätzlich ist deren Software auch noch grottig schlecht. [...] > Ansonsten würde ich zu Xilinx oder Altera/Intel raten. Was passt dir am jetzigen Diamond nicht? Habe ein paar Jahre damit gearbeitet und war im Vergleich zu den anderen nicht besonders viel besser aber auch nicht nerviger. Ich geh jetzt mal unseren Make/TCL build flow migrieren von Vivado 2019.1 auf 2020.2. Irgendein Fileformat ist jetzt ein anderes. Mal reinknien...
Christoph Z. schrieb: > Ich geh jetzt mal unseren Make/TCL build flow migrieren von Vivado > 2019.1 auf 2020.2. Irgendein Fileformat ist jetzt ein anderes. Mal > reinknien... Könntest Du als Dienstleistung anbieten. Ich kenne einige, die dafür Bedarf hätten.
Wenn ich daran denke wie oft hier solche Fragen gestellt werden. Wann möchte mal jemand ein FPGA Board Finder entwickeln? :D Eine Weboberfläche wo man seine Kriterien angeben kann und dann werden passende FPGA Boards angezeigt. Scheint etwas zu sein was die FPGA Welt unbedingt braucht.
FPGAKönig schrieb: > Scheint etwas zu sein was die FPGA Welt unbedingt braucht. Nur die Trott* auf dieser Welt, die anderen verstehen die intensive eigene Suche nach dem passenden Board als erste Schritte zum Verständnnis dieser Technologie. PS: OK, aber manche leben immer noch in der infantilen Vorstellunge man könne sich einen Partner fürs Leben wie bei Pizzalieferanten aus der Liste der Zutaten zusammenklicken. Deshalb gehen Webseiten zur Coitus-Anbahnung wie 'Elite Partner' nie die zahlenden Kunden aus ...
Wühlhase schrieb: > Jetzt stehe ich vor dem Problem: wie wähle ich denn einen halbwegs > passenden FPGA aus? Wieviele LUTs brauche ich für eine FFT mit, keine > Ahnung, sagen wir mal 16 Bit und 10kS/s auf sechs Kanälen? Das alles hängt von deiner Planung ab. Bei 6x 10 KSPS kannst du ne Menge an LUTs einsparen durch Iterationen etc. also sequentielles Abarbeiten von Filtern etc. - aber immer unter der Voraussetzung, daß du deine Logik klug planst. Für's Grobe kannst du ohne Bauteile zu kaufen deine Ideen trocken prüfen, indem du in dem jeweiligen Projekt den jeweils größten Chip vereinbarst und alles durchlaufen läßt. Wenn alles paßt und du bis zum fertig generierten Jedec-File kommst, kannst du im zugehörigen Statusbericht lesen, wieviel an vorhandener Logik genutzt wurde. Davon ausgehend kannst du dann entscheiden, ob dein Projekt mit dieser FPGA-Familie überhaupt umsetzbar ist und welches 'Familienmitglied' du zumindest nehmen müßtest. Aber merke dir, daß gerade solche Projekte, die DSP-Funktionalität enthalten, mit manchen FPGA-Familien überhaupt nicht machbar sind, währen sie bei einer anderen Familie schon mit dem kleinsten FPGA machbar sind. W.S.
W.S. schrieb: > Aber merke dir, daß gerade solche Projekte, > die DSP-Funktionalität enthalten, mit manchen FPGA-Familien überhaupt > nicht machbar sind, währen sie bei einer anderen Familie schon mit dem > kleinsten FPGA machbar sind. Aha, welche Familie ist den so DSP-(un)/freundlich? Und was passt dann in das kleinste FPGA? Bei 6x 10 kSps wuerde ich noch reelle Chancen sehen, dass das sogar in einen (kleinen) Cyclone I passt, der noch nicht mal einen Hardwaremultiplizierer hat. Das man dann mit den in der Hardware realisierbaren Multiplizierern "iterieren" oder "muxen' muss, ist ja bei 100 µs auch kein grosses Problem.
oerks schrieb: > Aha, welche Familie ist den so DSP-(un)/freundlich? Kommt auf die Anforderungen an. oerks schrieb: > Bei 6x 10 kSps Da fehlen noch echt viele Details. Wenn damit nix gemacht werden muss mit den Abtastwerten dann braucht es auch keine DSPs. Wenn da irre lange FIRs gerechnet werden sollen dann braucht es sogar viele DSPs. oerks schrieb: > Und was passt dann in das kleinste FPGA? Kommt drauf an was man will. Da passen schon einige Multiplizierer rein. Abhängig von Pipeline oder in einem Takt, Breite, ... Das kannst du aber alles selber ausprobieren, ganz ohne Hardware. Einfach beschreiben, die Herstellerwerkzeuge bauen lassen und gucken was die so an Hardware haben wollen.
> Da fehlen noch echt viele Details. ...: > brauche ich für eine FFT mit, keine > Ahnung, sagen wir mal 16 Bit und 10kS/s auf sechs Kanälen? > Das kannst du aber alles selber ausprobieren, ganz ohne Hardware. > Einfach beschreiben, die Herstellerwerkzeuge bauen lassen und gucken was > die so an Hardware haben wollen. Das schrieb ich auch schon. Meine Frage war auch eher an W.S. gerichtet.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.