Hi, hier mal ein kleines Projekt von mir: https://github.com/abnoname/iceZ0mb1e Es handelt sich um ein FPGA SoC (System on Chip), welches 100% auf open source Komponenten (nur copyleft Lizenzen) und Toolchains basiert. Das Makefile baut folgendes: - Firmware in C mit SDCC - Hardware Design mit yosys/arachne-pnr Als Targets werden folgende Systeme unterstützt: - Lattice iCE40 HX8K - Lattice iCE40 UltraPlus 5k (http://gnarlygrey.atspace.cc/development-platform.html) Das SoC hat zur Zeit folgende Komponenten: - TV80 (Z80 CPU) - 8kB ROM - 8kB SRAM - UART - GPIO - i2C Master - SPI Master Die Demo Firmware steuert ein SSD1306 OLED per i2C an und liest einen SPI Flash, sowie eine i2C RTC aus. Die Diagnoseausgaben kommen über UART. Die Installation der Toolchains ist in der Readme beschrieben. VG Franz
Und? Welches ist der Zweck des ganzen? Nur um einen Soft-Z80 zu demonstrieren? Wenn schon, dann hätte ich eher an einen kompletten ZX-Spectrum-Nostalgienachbau gedacht. W.S.
W.S. schrieb: > Wenn schon, dann hätte ich eher an einen kompletten > ZX-Spectrum-Nostalgienachbau gedacht. Mag sein, aber das wäre nix Neues: https://github.com/sorgelig/ZX_Spectrum-128K_MIST
Franz N. schrieb: > - UART Ist der Softwareseitig mit einem historischen Zilog-UART kompatibel? Ich würde vorschlagen, auch noch einen Timer mit ins SoC zu nehmen. Philipp
Wäre es leicht möglich, die Grenze zwischen ROM und RAM zu verschieden. 10 KB ROM bei 6 KB RAM würden mir eher zusagen (ideal wären 32 KB ROM, aber dazu ist der HX8K wohl zu klein). Wenn man auf mehr ROM käme und mit Timer wäre das perfekt für mich, um Benchmarks (Whetstone, Dhrystone, etc) darauf auszuführen, unter Verwendung ausschließlich freier Software. Und soweit ich sehe, ist die nötige Software sogar schon in Debian enthalten, was es noch einfacher macht. Um code size / speed regressions in SDCC zu vermeiden habe ich ein paar Skripte geschrieben, die solche Benchmarks mit verschiedenen SDCC-Versionen kompilieren und ausführen (das ergibt dann solche Graphen wie im Anhang). Bisher wird das nur für das stm8- und mcs51-Backend gemacht. Für z180 hatte ich eigentlich vor ein Z180-Stamp Modul zu verwenden (die Platine liegt noch unbestückt herum). Aber dein Projekt dürfte eine deutlich einfachere Lösung bieten, dann halt für das z80-backend. Philipp P.S.: Wie kann ich das erste Bild (das ohne Beschriftung der x-Achse) löschen?
:
Bearbeitet durch User
Philipp Klaus K. schrieb: > Aber dein Projekt dürfte eine deutlich > einfachere Lösung bieten, dann halt für das z80-backend. Du benchmarkst damit aber den T80 (bzw. hier den TV80)und dessen Speicheranbindung. Ist prinzipiell auch o.k. hat aber nicht mehr unbedingt viel mit den Z80 zu tun. @Franz: Wie schnell (MHz) kann das Soc auf dem ice40 eigentlich rennen?
Viktor schrieb: > Philipp Klaus K. schrieb: >> Aber dein Projekt dürfte eine deutlich >> einfachere Lösung bieten, dann halt für das z80-backend. > Du benchmarkst damit aber den T80 (bzw. hier den TV80)und dessen > Speicheranbindung. Ist prinzipiell auch o.k. hat aber nicht mehr > unbedingt viel mit den Z80 zu tun. Laut Autor des TV80 gilt: "The TV80 is a Verilog implementation of a microprocessor that approximately matches the cycle-to-cycle behavior of the Zilog Z80." Das ausreichen, damit deutliche Verbesserungen / Verschlechterungen bei Benchmarkscores sich bei Z80 und TV80 gleichermaßen zeigen. Beim mcs51-Backend verwende ich auch einen SiLabs C8051, keinen originalen Intel 8051. Philipp
W.S. schrieb: > Wenn schon, dann hätte ich eher an einen kompletten > ZX-Spectrum-Nostalgienachbau gedacht. Während du denkst, schaffen andere etwas... Der Klassiker in diesem "Forum". Es gibt hunderte FPGA Retro Rechner - was will ich da nochmal aufgießen? Ziel war wie im Text beschrieben einen minimalistischen SoC mit 100% freier Toolchain und Sourcen zu haben. Kompatibilität war egal -> C HAL. Die Umgebung hier liefert vom C+Verilog bis zum FPGA Bitstream alles aus open source Technik. Dazu sollte alles copyleft lizensierbar sein. Navre und Co sind GPL. Hier ist ein SoC mit Risc V. Da kommt auch alles offen daher: https://github.com/cliffordwolf/icotools/tree/master/icosoc aber das ist ne andere Liga. Philipp Klaus K. schrieb: > Ist der Softwareseitig mit einem historischen Zilog-UART kompatibel? Nein, derzeit ist das die UART16540 aus dem TV80 Paket. > Ich würde vorschlagen, auch noch einen Timer mit ins SoC zu nehmen. Kommt noch. Philipp Klaus K. schrieb: > Wäre es leicht möglich, die Grenze zwischen ROM und RAM zu verschieden. > 10 KB ROM bei 6 KB RAM würden mir eher zusagen (ideal wären 32 KB ROM, > aber dazu ist der HX8K wohl zu klein). Man kann derzeit nur die Adressbusbreiten für die Speicher ganzzahlig konfigurieren. Mit dem Ulraplus gibt es dedizierten internen RAM. Da ist mehr als im HX8K möglich. Viktor schrieb: > @Franz: Wie schnell (MHz) kann das Soc auf dem ice40 eigentlich rennen? Wie schnell habe ich noch nicht probiert. Momentan läuft das auf allen Boards mit 12MHz. VG Franz
Beitrag #7511779 wurde von einem Moderator gelöscht.
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.