Hallo euch allen,
seit einiger Zeit habe ich eine Idee für ein FPGA-Dev-Board, was ich
"Mister für Arme" nenne. Es soll einen Lattice ecp5 mit 85k
Logikelemente haben. Diesem stehen meiner Vorstellung nach 64MB oder
128MB SDRAM (ich tendiere zu 128MB) bei. Dazu soll ein Connector für ein
Raspberry Pi dazukommen, über denn man diesen programmieren und flashen
kann. Theoretisch könnte man auch einen Mikrocontroller nehmen, aber in
der Situation, in der wir uns befinden, wäre das etwas problematisch.
Aber Raspberry Pi's wären da einfacher, weil 1. viele haben noch
mindestens einen zu Hause und 2. hier und da ist noch was zu bekommen
ist, zwar nicht zum aller günstigsten Kurs, aber aber auch nicht Region
Niere verkaufen. 3. Man kann Notfalls auch einen anderen SBC nehmen, nur
muss man auf das Pinout achten. Desweiteren hat man dadurch ein
"All-in-one"-System, wo man darauf alles nötige hat. Das ganze ist
Primär ein Dev-Board, aber der soll wie anfangs erwähnt ein "Mister für
Arme" sein, also es soll auch auf Retro-Gamer abzielen. Man könnte jetzt
fragen, warum noch so ein System, aber die die Antwort ist im "Mister
für Arme". Ein DE-10 Nano hat mal etwa 130€ gekostet, inwischen aber ehr
200€. Hinzu kommt, das man paar Sachen kaufen muss, wenn man es wirklich
in voll ausnutzen will wie RAM und dem IO-Board mit SD-Kartenslot. Ich
ziele auf 50€ bis 70€ ab, deswegen "für Arme". Ein großen Teil der
Kosten nimmt der ECP5 mit 30€ ein, der RAM je nach Größe im Schnitt 10€
(wenn man mit 64MB geht). Mit dem RAM könnte man auch gucken, ob man
nicht die Module vom Mister nicht nimmt oder Notebook SDRAM. Ich hab mir
gedacht, man könnte noch zusätzlich einen ICE40 FPGA mit 1k
Logikelementen, der primär für die Komunikation zwischen Raspberry Pi,
ecp5 FPGA, Gamecontrollern und Displays verantwortlich ist. Ich hab mir
gedacht, das man so ein Parallel RGB, VGA und SPI Display am Pi haben
kann, worauf der Pi und der FPGA zugreifen können, ohne das jedes mal
ein Teil des FPGA nur für diese Interfaces draufgehen. (Warum
SPI-Display? Damit man auch ein Handheld bauen kann). Oder man kann die
GPIOs des Pi's komplett an den ecp5 durchreichen (Der ICE40 übernimmt
dann aber immer noch die Displaycontroller). Der ICE40 ist nur eine
optionale Überlegung, aber der kostet nur 3 bis 4 Euro, aber es sind
zusatzkosten, aber ich bin mir da nicht sicher. Diese paar Euro könnte
man einsparen, oder in den Ram stecken.
Was ist eure Meinung dazu? Habt ihr weitere Ideen?
R4pt0r schrieb:> Was ist eure Meinung dazu?
Zum Booten des FPGAs einen dreiviertel GHz-Rechenboliden getaktet mit
einer Frequenz, von der ein FPGA nur träumen kann? Auf die Idee wäre ich
jetzt nicht auf Anhieb gekommen.
> man könnte noch zusätzlich einen ICE40 FPGA mit 1k Logikelementen
Hat das FPGA zu wenig Pins/Balls?
> der primär für die Komunikation zwischen Raspberry Pi, ecp5 FPGA,> Gamecontrollern und Displays verantwortlich ist.
Wenn ich einen annähernd GHz Rechner drauf habe, dann darf da nicht ein
kleines FPGA als Bremse in Richtung des "eigentlichen" FPGAs drin sein.
Sondern da muss ich mit einem anständig schnellen Bus auf dem Niveau von
PCIe mit dem FPGA kommunizieren können.
> Ich ziele auf 50€ bis 70€ ... ECP5 mit 30€ .. RAM im Schnitt 10€
Die restlichen Bauteile, die Platine, die Bestückung, der Test, das
Handling und die Entwicklung von Beispielanwendungen zum "Anfixen"
dürfen dann 10€ kosten?
Und das bei relativ geringen zu erwartenden Stückzahlen...
Ich denke, du musst da mal deine Träume strukturieren, ein Factsheet
oder Datenblatt daraus machen und herumfragen, ob jemand sowas brauchen
könnte und was es ihm wert wäre.
Faustregel Herstellungskosten x4 = Verkaufspreis um nach
Entwicklungskosten und Vertriebskosten noch ein bisschen zu verdienen.
Selbst wenn Du freiwillige Mitstreiter findest und auf Gewinn
verzichtest wirst du wahrscheinlich die aktuellen Preise für einen DE-10
Nano nicht unterbieten können. Und da selten der erste Schuß sitzt
rechne mit vierstelligen Kosten für Prototypen und langen Verzögerungen.
Mit Pech ist die Chipkrise vorbei bevor du fertig bist.
Es gibt bereits die ul3xs von Radiona (hinter denen ein gewaltiges Team
steckt). Die wuerde ich mir erst mal genau ansehen, Komplexitaeten
abschaetzen, und dann nochmal ueber die Buecher gehen, denn die Rechnung
stimmt so nicht.
Alle me-too-Ansaetze, die nicht 'keep it simple' sind, sind gemaess den
obigen Hinweisen einiger Kommentatoren typischerweise zum Scheitern
verurteilt. Apropos: Wenn ich schon RPi lese, ist bei mir das Interesse
schnell verflogen.
Wer etwas so schlecht dokumentiertes wie einen RPi an einen FPGA
anschliessen will, hat nicht alle Latten am Zaun.
Und Lattice hat bei mir sowieso Hausverbot!
Frohe Weinachten!
Lothar M. schrieb:> Wenn ich einen annähernd GHz Rechner drauf habe, dann darf da nicht ein> kleines FPGA als Bremse in Richtung des "eigentlichen" FPGAs drin sein.> Sondern da muss ich mit einem anständig schnellen Bus auf dem Niveau von> PCIe mit dem FPGA kommunizieren können.
Ein guter Einwand. Aber nur der Raspberry Pi 4 Compute Module hat PCIe
und ich werde einen ecp5 ohne SERDES nehmen. Theoretisch könnte man eine
Variante machen, die so ein Compute Module aufnimmt, aber 1. ich hab
kein Compute Module 4, und 2. Viel Spas eines zu bekommen, sind
weitestgehend vergriffen oder extrem teuer.
Lothar M. schrieb:> Die restlichen Bauteile, die Platine, die Bestückung, der Test, das> Handling und die Entwicklung von Beispielanwendungen zum "Anfixen"> dürfen dann 10€ kosten?
Ich will auf dem Board neben dem FPGA, Flash, Connectoren und
Spannungsversorgung und eventuell dem eventuellen DRAM nichts weiteres
draufpacken. Kein Gyroskop, grosartig LEDs oder onboard Display.
Vielleicht ein DAC für VGA, aber dieser wird mit Widerständen gelöst,
die wo anders auch auf dem Board zu finden sein werden.
Lothar M. schrieb:> Hat das FPGA zu wenig Pins/Balls?
Stimmt auch wieder, also ICE40 weg.
Cartman schrieb:> Wer etwas so schlecht dokumentiertes wie einen RPi
Der SoC ist nicht der am beste dokumentierte von allen, aber dafür
Support in Form von Software (OS und Co) gut. Die ganzen China-Boards
mit ihren Allwinner (und Rockchip) SoC's haben besser dokumentierte
SoC's, aber wenn es um Sofware geht, naja. Und andere SoC's wie von NXP
sind auf Boards, wo beim Preis noch eine 0 am Ende dazu kommt.
Cartman schrieb:> einen RPi an einen FPGA> anschliessen will, hat nicht alle Latten am Zaun.
Dann sind so einige, die nicht mehr alle Latten am Zaun haben wie der
Macher von diesem Board:
https://blackmesalabs.wordpress.com/2017/02/07/icezero-fpga-board-for-rasppi/
oder von diesem Board:
http://icoboard.org/Cartman schrieb:> Und Lattice hat bei mir sowieso Hausverbot!
Bei mir nicht. Die ICE40 und ECP5 FPGAs sind die einzigen mir einer
vollständigen Open Source Toolchain, weswegen ich bei meinem Board den
ECP5 nehme und nicht mit etwas anderen.
> der Macher von diesem Board
Ein oder zwei Schwalben machen noch keinen Sommer.
> einer vollständigen Open Source Toolchain
Was soll daran besser als Quartus Pro 21.4 sein?
Weil es Open ist? Hast du es schon mal selber gebaut?
Weil man im Quelltext suchen muss, was die Dokumentation
nicht hergibt?
> Zum Booten des FPGAs einen dreiviertel GHz-Rechenboliden getaktet mit> einer Frequenz, von der ein FPGA nur träumen kann? Auf die Idee wäre ich> jetzt nicht auf Anhieb gekommen.
Vielleicht soll es ja unter Python laufen. :-D
Mir leuchtet ja der Sinn irgendwelcher Hersteller/Demo-Boards fuer
Firmen oder Studenten ein. Aber so auf Bastlerlevel, sollte man da nicht
zuerst mal klaeren
was man genau mit dem Board machen will? Also die Frage nach dem Sinn
des Lebens?
Hinzu kommt noch das ich moeglichst kleine Boards die man mit
Pfostenstecker
irgendwo draufstecken kann dann sinnvoller finde. Einfach deshalb weil
der FPGA Kram ja teuer und intellektuell aufwendig ist und man denn dann
auf mehrere eigene Bastelboards stecken kann.
Olaf
Ich hab den Schaltplan für die erste Version gemacht. Ich hab als Basis
mitunter den Schaltplan vom Hackaday Badge 2019 und die Checkliste von
Lattice (aber nur einen kleinen Teil davon, weil ich die nicht-5G
Variante nehme und das meiste auf die SERDES eingeht, die aber ihr nicht
gibt). Ich habe für diese Version keinen RAM, damit ich eine
Fehlerquelle weniger habe und damit ich das Board etwas "algemeiner"
verwenden kann. Stromversorgung sind für das erste für 3.3v und 2.5v
klassische AMS1117 (oder was man so grad bekommt). Leider gibt es keine
AMS1117 für 1.1v und 1.2v sind ausserhalb von den 5%, also werde ich
testweiße den M3406 nehmen. Ich hatte ursprünglich die kurz Idee, einen
AMS1117-1.5 oder AMS1117-1.2 zu nehmen und dahinter eine Schottky-Diode
zu hängen, damit ich auf 1.1v etwa komme, aber paar Sekunden später hab
ich mich dagegen entschieden. Fürs erste hab ich im Schaltplan den ECP5
in csfBGA-285 drinnen, aber überlege denn gegen einen in caBGA-381 zu
tauschen.
Ich wollte nur fragen, ob ich im Bereich der "Config"-Pins und dem Flash
und eventuell gravierendes übersehen habe und ob ich bei denn Pins
eventuell etwas übersehen habe (das bestimmte Pins nicht genutzt werden
dürfen), Pinout aber in dem Bereich wird sich (garantiert)ändern, damit
ich nicht eine Leiterbahn "quer" über die ganze Platine ziehen muss.
Der Schaltplan ist noch nicht aufgeräumt, deswegen ist noch einiges
"zusammengeknubelt".
R4pt0r schrieb:> ürs erste hab ich im Schaltplan den ECP5> in csfBGA-285 drinnen,
Der hat doch 0.5mm Pitch, das willst Du nicht ohne Not (macht die
Platine teuer).
Natürlich nicht, aber guck dir den Schaltplan an. Das sieht nicht so
wirklich ernst gemeint aus. Die paar Kondensatoren an den Versorgungen
sind eher ein schlechter Witz. Kein ESD Schutz an den IOs wie den PMODs.
Keine Schutzbeschaltung für VCC, keine Bauteilbezeichnungen für die
Taktgeber, Flash, ... da kann man dann auch nicht prüfen ob die Pegel
passen.
Ist eben ein Anfang, aber da wird sich noch einmal Alles ändern.
Solange Du nicht definierst, welches Retro du darauf machen willst und
welches nicht, wird das nix mit einer sauberen und preisbewussten
Konstruktion. Dein Ansatz, keine dedizierte CPU vorzusehen sondern diese
mit einem FPGA nachzustellen ist bekanntermassen die teuere Variante.
Also, lege fest welche Systeme du nachstellen willst, IMHO sollte man
dazu mindestens eine Entscheidungslinie zwischen 8 bit und 16 bit legen.
Also zwischen Commodore C64 als 8 bit system und Commodore aMIGA 500.
Natürlich kann man auch noch in richtung 32bis systeme wie Acorn
Archimedes oder Amiga 3000 schielen, aber spätestens dann sprengt die
Einschränkung auf CPU-Emulation den Kostenrahmen und es führt nicht
wirklich ein (kostengünstiger) Weg an einer halbwegs originallen (ASIC)
32bit CPU wie 68020 oder 68040 (FPU) vobei. So mal zur Einordnung, so
ein 68040 hat ca. 16 mal soviel Transistoren wie ein 68000 und schon ein
68000 braucht einen mittel- bis großen LowEnd FPGA zum Nachbau.
Hast Du schon mal eine Probesynthese einer Retro-geeigneten 16bit CPU
für den Lattice durchgeführt? Oder wenigstens für das 8 bit urgestein
6502? Manchmal scheitert es schon an der Anzahl der IO-Pins, während der
6502 im 40-Pin Gehäuse daher kommt, ist es beim 68020 eines mit 169
Anschlüßen.