Dies ist mein erster Blick auf FPGA, aber ein starker Hintergrund in der Softwareentwicklung. Ich möchte ein Board kaufen, mit dem ich lernen kann, möchte aber irgendwann einen Z80-basierten Computer im Stil der frühen 80er Jahre betreiben können (denken Sie an das TRS80-Modell, sage ich).
Ich habe mir Spartan 3E- und Spartan 6-Boards angesehen, bin mir aber hinsichtlich der Leistungs- / Kapazitätsunterschiede nicht sicher.
Was ich denke, ist ungefähr so:
- Genug Platz für:
- simulierte Z80 mit dem OpenCores T80 Softcore.
- simulierte integrierte Peripheriegeräte wie Videocontroller, Soundcontroller (einfach 1 Bit), Diskettencontroller
- Vielleicht ein paar Picoblaze-Controller, um integrierte Tasten für die Auswahl von Diskettenbildern usw. zu verwenden.
- VGA-Anschluss (16 Farben würden ausreichen, 256 Bonus)
- PS2-Tastaturanschluss
- Genug Onboard-Flash für eine Reihe von virtuellen Diskettenabbildern und System-ROMs (16 MB sollten ausreichend sein)
- Auf dem Borddisplay wäre LCD schön, 4x7-Segment-LED würde wahrscheinlich ausreichen.
- Eine Art Flash-Kartensteckdose wäre schön, aber nicht erforderlich.
- Stromanschluss zum Stromnetz, wahrscheinlich über ein Netzteil.
Dies sind die Boards, über die ich derzeit nachdenke:
- Nexys ™ 3 Spartan-6 FPGA-Karte
- Spartan 3E Starter Board
- Spartan 3E-1600 Development Board
- Basys ™ 2 Spartan-3E FPGA-Karte (500K) + 16M Flash pMod
- Basys ™ 2 Spartan-3E FPGA-Karte (1200K) + 16M Flash pMod
EDIT: Ich habe gerade bemerkt, dass die Basys keinen integrierten RAM haben, daher würde ich mich auf den FPGA-RAM beschränken - nicht ideal.
Ich bin mir nicht sicher, wie viel Platz nach dem Laden des T80-Softcore übrig bleibt. Jeder Rat sehr geschätzt.
Antworten:
Während ehrgeizige Ziele nett sind, ist mein Rat, kleiner anzufangen. Viel kleiner. Das von Ihnen vorgeschlagene Projekt wäre für einen fortgeschrittenen FPGA-Designer schwierig und für einen Anfänger fast unmöglich. Ich bin ein großer Befürworter von FPGAs und würde gerne sehen, dass Sie Erfolg haben. Wenn Sie mit einem so ehrgeizigen Projekt beginnen, wird dies wahrscheinlich zu viel Frustration führen und wahrscheinlich das FPGA-Design ganz aufgeben.
Lassen Sie es mich in Software-Begriffen ausdrücken: Dieses Projekt wäre wie jemand, der noch nie einen kompletten C-Compiler geschrieben hat - von Grund auf neu.
Fangen Sie kleiner an und Sie werden viel glücklicher sein.
Bearbeiten: Sachen unten hinzugefügt.
Trotzdem ist es schwierig, eine gute Empfehlung für ein Board abzugeben. Der Grund dafür ist, dass jedes Board, das ich jemandem ohne FPGA-Erfahrung empfehlen würde, absolut nicht dasselbe Board ist, das ich für ein CPU-Projekt empfehlen würde. Ein Board für Anfänger kostet möglicherweise 50 bis 100 US-Dollar, während ein Board für CPU + VGA + Flash_Card + 1000 bis 2000 US-Dollar kostet.
Es besteht auch die große Chance, dass Sie Ihre Meinung ändern und später ein anderes Projekt durchführen möchten, wenn Sie ein paar einfache FPGA-Designs erstellt haben.
Meine Empfehlung ist dann, dass Sie zuerst ein einfaches Board in der Preisklasse unter 100 US-Dollar kaufen. Wenn Sie dann bereit sind, ein größeres Projekt in Angriff zu nehmen, können Sie ein teureres Board kaufen, das genau Ihren Wünschen entspricht (was auch immer das gerade ist).
Das Board, das mir gefällt, ist das folgende: http://www.xilinx.com/products/boards-and-kits/AES-S6MB-LX9.htm
Es ist kostengünstig, verwendet ein Teil der aktuellen Generation, stammt aus einem Tier-1-Hersteller und kann sogar einige einfache CPU-Aufgaben erledigen.
quelle
Hmmm, leider ist es vhdl, ich wollte mit verilator oder icarus verilog beginnen. Verwenden Sie stattdessen vielleicht ghdl. Der erste Vorschlag ist, eine Simulationsumgebung in Betrieb zu nehmen und dort mit dem Bau dieses Dings zu beginnen.
Bevor Sie sich für ein FPGA-Board entscheiden, müssen Sie ein Gefühl dafür bekommen, wie groß dieses sein wird. Die verschiedenen Tools sind kostenlos oder kostenlos, wenn Sie Ihre E-Mail-Adresse und einige andere Informationen opfern. Probieren Sie Gitter-, Altera-, Xilinx- usw. Werkzeuge aus. Beginnen Sie streng mit dem T80-Kern und einigen dieser Ziel-Fpgas, die Sie betrachten. Ich vermute, dass all das, was Sie hinzufügen möchten, die prozentuale Gesamtzahl, die Sie bei der Implementierung des T80-Kerns erhalten, erheblich erhöhen wird. Ich wette, Kern allein, Sie werden in der Lage sein, einige der Kandidaten zu eliminieren.
Vielleicht ist das fpgaarcade-Board, das in irgendeiner Form den T80-Kern verwendet hat, genau das, wonach Sie suchen ... Wenn es verfügbar ist.
Ich muss dem anderen David vollkommen zustimmen. Wenn Sie noch kein professioneller Fpga / Board-Entwickler sind, fangen Sie hier nicht an. Sie sehen sich vielleicht jahrelange Arbeit an und werden wahrscheinlich mehrere Multi-Tausend-Dollar-Boards kaufen Zerstören Sie sie mit Fehlern usw. Wenn Sie über diese Art von Geld verfügen, sollten Sie vielleicht einen Berater beauftragen, der Sie durch den Prozess führt. Oder lassen Sie ein Board nach Spezifikation bauen.
Mehr Leistung für Sie, wenn dies wirklich etwas ist, das Sie tun möchten. Seien Sie einfach schlau, beginnen Sie mit dem Kern und einigen einfachen Programmen, die einige LEDs blinken lassen und sich langsam von dort nach oben arbeiten. Ich kann die Simulationsroute nur empfehlen. Abgesehen von der sofortigen Befriedigung sollten Sie sich nicht mit Silizium beschäftigen, bis Sie weiter die Straße hinunter sind. Bis dahin haben Sie mehr vom Design und können die Werkzeuge verwenden, um zu sehen, in was es passen könnte. Wenn Sie dieses Ding in der Simulation nicht zum Laufen bringen können, werden Sie es wahrscheinlich nicht in Silizium zum Laufen bringen.
quelle
Wenn Sie Computer mit Videoausgang simulieren möchten, versuchen Sie, etwas mit einer angemessenen Menge an RAM zu erhalten, da Sie es sowohl für den System- als auch für den Videospeicher benötigen. Natürlich ist ein eingebauter Anschluss für VGA hilfreich. Wenn Sie jedoch einige frühe Systeme zeitgetreu simulieren möchten, müssen Sie möglicherweise ein Composite-Video durch Aufpfropfen auf einen DAC oder sogar einen R2R-Widerstands-DAC erstellen.
Wählen Sie dann möglicherweise die größte auf dem Board verfügbare Gate-Count-Chip-Option aus , die von der kostenlosen Version der FPGA-Tools unterstützt wird . Die größeren Chips haben implizit mehr Block-RAM (ich habe viele Designs gesehen, die eher von diesem als von der Gate-Anzahl abhängen). Sie befinden sich jedoch möglicherweise in einem Anwendungsgebiet, in dem externer RAM und ein kleineres FPGA billiger sind als ein FPGA, das groß genug ist, um alles zu erledigen .
Flash-Speicher können jederzeit später eingepfropft werden - beispielsweise eine Multi-Gigabyte-SD-Karte, die im SPI-Modus angeschlossen ist.
Im Allgemeinen fallen FPGA-Boards in die Klasse von 100 bis 200 US-Dollar und dann in die wirklich teure Klasse. Mit einem der ersteren können Sie wahrscheinlich einige Fortschritte erzielen.
quelle
Ich war das Originalplakat dieser Frage, aber ich muss nicht angemeldet gewesen sein oder noch kein Konto erstellt haben ...
Am Ende habe ich das Projekt für 4 oder 5 Monate beiseite gelegt, mich dann aber für das Nexys3-Board entschieden und jetzt einen Microbee-Computer in Betrieb genommen. Sie können darüber hier lesen: http://www.toptensoftware.com/fpgabee .
Alles in allem war ich sehr zufrieden mit dem Nexys3, es handhabt den T80-Kern mit genügend Platz, es war nicht zu teuer (250 US-Dollar) und hat alles, was ich brauche (und mehr).
Die größte Enttäuschung ist, dass ich die USB-HID-Tastaturschnittstelle nicht zum Laufen bringen konnte, und obwohl ich immer noch mit Digilent darüber diskutiere, vermute ich, dass es nur mit einigen Tastaturen funktioniert und ich konnte es nicht Finde eine, die kompatibel ist (ich habe jetzt ungefähr 8 verschiedene Tastaturen ausprobiert). Es gibt keine Referenzdesigns dafür, die Peripherietests testen die Tastatur nicht und ich habe von anderen gelesen, die die gleichen Probleme haben.
quelle