Moin allesamt, ich bin auf der Suche nach einem Dev-Board mit iCE40 und SDRAM. Genauer gesagt: * der FPGA soll komplett mit Open-Source-Tools synthetisierbar und programmierbar sein. Soweit ich weiß, trifft das aktuell nur auf iCE40 zu. * es soll viel RAM auf dem Board sein, in einer Größenordnung, wie man ihn nur bei SDRAM und nicht bei SRAM findet. Wenn möglich, DDR-SDRAM. Randbedingungen: * die Open-Source-Toolchain ist ein "muss" im Sinne dieser Frage, da ich ansonsten zig Boards zur Auswahl hätte und nicht fragen müsste. * Boards mit 8 MBit SRAM habe ich gefunden, aber das ist mir zuwenig. 8 MByte sollten es minimum sein. * das Interface zum SDRAM direkt in Verilog (ohne MIG o.ä.) zu bauen ist kein Problem, das habe ich schonmal gemacht. Vielen Dank vorab.
Mit Xilinx Artix soll das inzwischen auch gehen. Bitte halte uns auf dem Laufenden.
Du kannst auch nach Boards mit dem Lattice ECP5 FPGA gucken, zB https://radiona.org/ulx3s/ Auf https://symbiflow.github.io/ gibt es eine Übersicht von Open Source Tools und den unterstützen FPGAs.
Vielen Dank schon mal für die Antworten. Die Unterstützung für Xilinx 7 ist laut deren Website sehr rudimentär. Außerdem gibt es glaube ich noch keine Abschätzung, ob man da rechtlich eine Chance gegen Xilinx hat bzw. wie deren Haltung zu dem Projekt ist. Bei Lattice ist zumindest von IceStorm bekannt, dass es geduldet wird. Die ECP5-Unterstützung sieht aber interessant aus. Da gibt es zwar auch noch Lücken in der Unterstützung von FPGA-Features, aber z.B. DDR-I/O wird angeblich schon unterstützt. Das könnte also klappen. Wenn doch noch jemand ein entsprechendes ICE40-Board findet, immer her damit :)
Also wenns auch ein ECP5 sein darf, dann vielleicht das OrangeCrab? https://github.com/gregdavill/OrangeCrab Ist aber wohl nicht so ganz billig...
Nicht ganz die gewünschten 8 MByte SDRAM, sondern nur 2, dafür aber hübsch billig: Colorlight 5A-75B https://github.com/q3k/chubby75/tree/master/5a-75b Gibt es für etwa 20 EUR inkl. Versand bei Aliexpress. Man braucht noch ein JTAG-Interface, z.B. einen mit FTDI, und wenn man Inputs möchte, muss man die installierten Levelshifter runterlöten. Ist aber nen nettes Board zu spielen. Der ECP5 ist deutlich mächtiger als die ice40 und genauso problemlos mit yosys+nextpnr zu verwenden.
Hier mal ein Zwischenstand: Das OrangeCrab liegt vor mir. Das mitgelieferte LED-Hello-World sowie ein eigenes, welches auch Block-RAM benutzt, laufen sauber. Das heißt, die Toolchain (Yosys, Nextpnr/Trellis usw.) funktioniert. Dieses Board ist, verglichen mit dem was ich sonst kenne (XESS und Spartan 3E Starter Kit), sehr benutzerfreundlich: - man muss nicht erst einen langwierigen Lizenzprozess für die Toolchain durchlaufen und diese funktioniert um Welten besser - Verbindung mit dem PC geht über ein Micro-USB-Kabel - Man braucht keine weitere Stromversorgung, USB reicht - Keine weiteren Kabel (z.B. JTAG) nötig. Man versetzt das Board beim Anschließen per Knopf-halten in den Programmiermodus und lädt den Bitstream dann per USB runter - Das Programm für die Bitstream-Übertragung ist bei der Toolchain mit dabei, man muss es nicht erst selbst compilen und man muss auch nicht an irgendwelchen "cable drivers" rumfrickeln, die dann nur ab und zu funktionieren - Der Programmiermodus und der Upload werden durch verschiedene Blinkmuster der LED signalisiert - der Bitstream wird grundsätzlich in den Flash geschrieben und ist dann später beim Power-on da (z.B. später nur USB an der Steckdose). Dafür muss man keine Extraschritte durchführen. Flashen dauert natürlich etwas länger als nur den FPGA zu programmieren, aber das geht in der Gesamtzeit des Buildprozesses (Synthese + PNR) unter. Nachteile: - der Preis ist sicher für einige zu hoch. Er ist aber vermutlich für die Materialkosten, Fertigungskosten und den Aufwand des Erbauers gerechtfertigt. Persönlich hoffe ich, dass das Board Erfolg hat und der Preis noch runtergeht. - man hat wenig Peripherie (1 LED, 1 Button, USB, RAM, Flash, SD, kann sein dass ich noch was vergessen habe). Alles weitere muss man selbst dranlöten, was für den löt-Unerfahrenen natürlich die Gefahr birgt, bei einem Fehler >100€ zu schrotten. - den FPGA Programmieren geht out of the box nur, indem man das Kabel abzieht und wieder einsteckt, um den Programmiermodus zu aktivieren. Grund ist, dass man bei einem eigenen Design den Pushbutton ja anderweitig verwenden will. Da ich den Button nicht brauche (ich will da PS/2 Keyboard und VGA dranbringen), werde ich langfristig eine Brücke bauen, so dass der Pushbutton auch ohne Einstecken den Programmiermodus aktiviert. - für den Preis kommt das Board ohne Gehäuse oder auch nur "Füße" / Abstandhalter und ist dementsprechend etwas empfindlich in der Handhabung. Für den Versand war es aber gut gepolstert und ESD-geschützt. Und zwei kleine Stolpersteine mit der Toolchain, die ich vor allem hier hinschreibe, falls noch jemand drüber stolpert: - es gibt eine unverständliche Fehlermeldung, wenn das Design zu groß für den FPGA ist ("could not expand" oder sowas) - es werden keine Initialwerte für die Ausgaberegister von Block-RAMs unterstützt. Die habe ich nie gebraucht und werde ich auch vermutlich nie, aber mein Verilog-Generator hat sie routinemäßig rausgehauen, was dann dazu führt, dass das Design nicht auf Block-RAMs gemappt werden kann, stattdessen Distributed RAM benutzt und in den Fehler für ein zu großes Design rennt. Fazit: Das OrangeCrab ist super und kann ich nur weiterempfehlen! Erfahrungsberichte mit dem DDR3-SDRAM und der entsprechenden Unterstützung in den I/O-Blocks des FPGA kommt dann, wenn ich soweit bin.
Gerd E. schrieb: > hübsch billig: > > Colorlight 5A-75B > https://github.com/q3k/chubby75/tree/master/5a-75b Was spräche denn dagegen diese boards zu kaskadieren? Die müssen nur nur an denselben Bus und einen ADR-Code haben, so wie wir das früher mit RAMs gemacht haben. @TE: Ich wäre in diesem Fall eher für SRAM wegen des Zugriffs und des Wegfalls der Notwendigkeit eines Controllers. Für eigene Zwecke habe ich mir vor Jahren einst einen RAM-Stapel gebaut, der 32 SRAMs für PLDs verschaltet hatte. Die ADR wurde parallel oder über ALE vorgegeben. Lief dann als nichtflüchtiger Speicher an einemCPU System. Zugriff: 100 MHz 2 wait states als pipeline. Der RAM-Stapel war per Batterie gepuffert und funktionierte wie eine Festplatte.
> @TE: Ich wäre in diesem Fall eher für SRAM wegen des Zugriffs und des > Wegfalls der Notwendigkeit eines Controllers. > > Für eigene Zwecke habe ich mir vor Jahren einst einen RAM-Stapel gebaut, > der 32 SRAMs für PLDs verschaltet hatte. Die ADR wurde parallel oder > über ALE vorgegeben. Lief dann als nichtflüchtiger Speicher an einemCPU > System. Zugriff: 100 MHz 2 wait states als pipeline. Der RAM-Stapel war > per Batterie gepuffert und funktionierte wie eine Festplatte. Es übersteigt definitiv meine Fähigkeiten, SRAM (oder sonst irgendwas) so zu kaskadieren, dass ich da noch 100 MHz rausholen kann. Beim OrangeCrab ist die Verkabelung schon auf dem Board. Der Controller ist ja nur noch Software (oder wie man scheinbar jetzt sagt, "Gateware"), das kann ich besser. Die Anbindung vom DDR(1)-SDRAM auf dem S3E-Starter war wie gesagt kein Problem und die paar Logikblöcke für den Controller investiere ich gern dafür. Außerdem hat der RAM beim OC eine Größe von 1 GBit. Wenn man das mit SRAM nachbaut, geht das ja auch ganz schön ins Geld ;) Nebenbei: Der Controller für DDR3 ist, wie ich gerade lernen muss, nicht mehr ganz so einfach zu bauen, deshalb gebe ich, sobald er läuft, auch gerne ein paar Tipps an Nachahmer.
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.