Kennt jemand eine komplette Implementierung für einen CP/M fähigen Computer auf FPGA? Am besten noch in Verilog geschrieben... Ich interessier mich derzeit grade sehr für das Thema. Auf opencores.com hab ich das Intel 8080 Projekt von Scott Moore gefunden. Was ich toll an jenem Code finde - in dem Verilog Quelltext wird ausgiebig Gebrauch von Präprozessor Strings gemacht, dadurch ist der Verilog-Code sehr gut lesbar. Was ich an dem Projekt richtig doof finde - das "Repository" ist eine regelrechte Müllhalde. Alles ist in 'zig Versionen abgelegt, ein bunter Mix aus Quelltexten und Dateien die von der Xilinx Entwicklungsumgebung stammen. Anhand der Dokus bleibt es für mich unklar, ob das Projekt "nur" die CPU umfasst oder doch einen kompletten CP/M Computer. Bestimmte weitere Komponenten sind offenbar dabei. Unklar allerdings auch welches File die Top-Level-Instanz des Projekts enthält. Hab den Autor mal angeschrieben. Bis der antwortet hier mal die Frage in die Runde - kennt jemand dieses Projekt oder vielleicht ein (anderes/besseres) Projekt für ein CP/M fähiges System auf FPGA?
Hallo, meinen aktuellen Projekt ist eine FPGA-Implementation eines Retro-Computers. Es ist eine TRS-80-ähnliches System aus 80-er Jahren, welche in einem Uni in Moskau entwickelt wurde ("Korvet PK8020" http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D1%80%D0%B2%D0%B5%D1%82_%28%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%29). Der hat CP/M-80 als Betriebsystem. Als Entwicklungsplatform verwende ich Altera's DE1 Board und schreibe mit VHDL. Zurzeit arbeite ich an einem Floppy-Disk-Controller. An sich läuft der Controller schon, nur eine art "GUI" für Diskimage-Auswahl muss noch rein. Projekt ist offen und wird bald auf meine Internetseite veröffentlicht. Vielleicht kannst du davon etvas gebrauchen... MfG aus Westerwald
Vielen Dank! Ich hab mir gerade ein Altera DE1 Board bestellt und werde dieses Projekt mit großem Interesse verfolgen! Ansonsten hab ich - abseits des Themas FPGA - heute dieses wunderschöne bunte Breadboard Projekt entdeckt: http://searle.hostei.com/grant/cpm/ ich glaub dieses Projekt muss ich die Tage mal ganz genau unter die Lupe nehmen. Gibt leider keine Teile-Liste, und manche Details sind Geschmacks-Sache. Aber der Breadboad-Aufbau gefällt mir. Ich glaub ich werd erst mal so einen Breadboard CP/M Computer ins Auge fassen bevor ich mit ner FPGA Variante Ernst mache... ;)
doch noch mal 'ne Frage zu meinem Anliegen ganz oben - von dem 8080 Projekt von Scott Moore hab ich bisher ein grundlegendes Verständnis zu paar Teilen (Prozessor, Terminal-Emulation) aber ich durchschaue die Grundstruktur des Projekts noch nicht, also was die Top-Level-Instanz ist, welche anderen Files eingebunden werden usw. Offernbar wird nichts mit `include gemacht sonderen das Projekt ist per Xilinx-Entwicklungsumgebungs-Klickibunti-Schweinkram strukturiert. Der Autor schreibt ja auch, dass sich der ganze Müll, verzeihung - die Projektstruktur - offenbart, wenn man es in die Xilinx Entwicklungsumgebung lädt. Also wär meine schlechteste Idee, mich bei Xilinx zu registriern, paar Gigabyte Software runterzuladen und zu installieren, nur um mal in das Projekt reinzuschauen, was oben und was unten ist. Nen Haufen Aufwand und Zeugs was ich nie wieder brauche. Hat jemand nen Tip, wie man in einem Xilinx Projekt die Struktur auch so rausbekommt - gibts da eventuell eine Datei aus der man die Struktur und die Anhängigkeiten der Quelltexte mit etwas gutem Willen auslesen kann?
Die cpu8080-Core habe ich in meinem Projekt früher verwendet. Klappt auch ganz gut, nur die Timings sind nicht wie beim echten i8080. Deswegen verwende ich nun eine andere 8080-Core. cpu8080 ist eigentlich sehr verständlich geschrieben und ich hatte keinerlei Schwierigkeiten es zum laufen zu bekommen. Habe allerdings Altera's Quartus benutzt. Mit Xilinx wird's genau so gut laufen! MfG
sorry, Missverständnis. Die Quelltext-Datei des Projekts cpu8080 die die CPU darstellt ist wirklich super übersichtlich geschrieben. Allerdings hatte ich nach Lesen der Doku den Eindruck, dass das Projekt einen kompletten CP/M-fähigen Computer modelliert (irre ich mich da womöglich?). Und da hatte ich mich festgefahren im Verständnis, wie die Komponenten zusammengefasst werden.
Micha schrieb: > Hab den Autor mal angeschrieben. Bis der antwortet hier mal die Frage in > die Runde - kennt jemand dieses Projekt oder vielleicht ein > (anderes/besseres) Projekt für ein CP/M fähiges System auf FPGA? Hallo Micha, bei den Recherchen zu dem Artikel http://www.mikrocontroller.net/articles/Retrocomputing_auf_FPGA bin ich auch über CP/M Projekte gestolpert, hab mich aber nicht in diese vertieft. Möglicherweise nur Absichtserklärungen. Von dem Amateurfunkcomputer AC-1 weiss ich das das Orginal CP/M kann (http://www.kc85emu.de/scans/fa0489/AC1.htm) und das es einen FPGA-Nachbau gibt: http://www.ac1-info.de/galerie/hein_andreas/hein.htm Vioelleicht kommst Du ja mit diesem Projekt deinem Ziel näher. Für CP/M benötigts du eine Z80 kompatible CPU, Tastatur, Firmware, 16k+ RAM, Zeichensatzgrafik und Diskettenlaufwerk resp Emulation. Bis auf das Laufwerk findest du dergleichen in dem SVN-Depot des oben erwähnten Artikels (Z1013 Nachbau). Als CPU wird der T80 core eingesetzt, der zuverlässig tut. Sourcen werden per make zusammengebastelt, sollte also nachvollziehbar sein. MfG,
Micha schrieb: > Allerdings hatte ich nach Lesen der Doku den Eindruck, dass das Projekt > einen kompletten CP/M-fähigen Computer modelliert Wie soll man das verstehen? Also, ein CP/M-Rechner ist ein 8080 oder Z80 plus 64 K RAM plus etwas Software für den Prozessor (CCP, BDOS, BIOS). Das war's - soweit das Allgemeine reicht. Natürlich kann und sollte man auch ne Tastatur und einen Textbildschirm und einen wie auch immer gearteten Massenspeicher dran haben, aber das ist ne Ausführungsfrage, die im BIOS erledigt wird - und nicht abhängig vom CP/M. Eigentlich sollte man diese doch recht separaten Bestandteile im Quellen-"Misthaufen" finden können, oder? W.S.
genau so ist es - ne PS/2 Ansteurung, ein (glaubich?) Siegler/Lear S3A Terminal und Ram/Rom sind in dem Projekt neben der 8080 CPU jeweils als Dateien enthalten, mir ist nur momentan nicht klar wie das alles zusammengefasst wird bzw was die Top-Level-Instanz ist und was die so alles sonst noch definiert.
Micha schrieb: > das "Repository" ist eine > regelrechte Müllhalde. Zeige mir bitte mal ein einziges REP auf open cores, dass diesen Ausdruck nicht verdient. Ich beobachte diese Plattform seit 10 Jahren und habe nie keinen einzigen Core nicht dort gefunden, den ich irgendwo hätte einsetzen können. W.S. schrieb: > Also, ein CP/M-Rechner ist ein 8080 oder Z80 plus 64 K RAM plus etwas > Software für den Prozessor Oder kurz gesagt: Ein Commodore 128 :-)
viel Erfahrung hab ich noch nicht, aber so pauschal möchte ich da nicht zustimmen. Im gegebenen Fall (dem cpu8080 Core) konnte ich die CPU als Verilog Datei identifizieren, der Quelltext ist wirklich super strukturiert und gut lesbar. Hab einiges gelernt beim Lesen im CPU-Quelltext, u.A. die intensive Verwendung von `define Anweisungen, die Trennung in CPU und ALU Module war auch sehr lehrreich. Möchte den CPU-Code fast als Lehrbeispiel bezeichnen. Inzwischen bin ich bei ersten Versuchen, die CPU in ein eigenes Projekt einzubinden. Sieht ganz erfolgversprechend aus. Ich komm' mir nur ziemlich doof vor, weil ich die Projektstruktur von cpu8080 (jenseits des CPU Moduls) nicht verstehe. Da sind weitere Quelltexte, die in Summe wahrscheinlich einen Computer ergeben. Aber das ist für mich regelrecht unbegreiflich: Wie kann jemand einerseits so sauberen Code schreiben und dann so ein Müllprojekt zusammenschieben? Ist mir völlig schleierhaft...
Jürgen Schuhmacher schrieb: > und habe nie keinen einzigen Core nicht dort gefunden, den ich irgendwo > hätte einsetzen können. Dreimal verneinen, da Blick ich nicht mehr durch. Hast du nun einen Core gefunden, den du einsetzen konntest, oder nicht? ;-). Ich jedenfalls habe dort noch nie einen Core gefunden, den ich einsetzen konnte... FPGA'ler
> Ich jedenfalls habe dort noch nie einen Core > gefunden, den ich einsetzen konnte... tg68 Beitrag "TG68 - Ab sofort 68000 als Open Source!"
Stimmt nicht. Ich habe mehrere SoftCores von "opencores" ausprobiert: Plasma, T80, T65, cpu8080, ZPU. Alle haben auch gut funktioniert. Mit "Plasma" laufen maine aktuelle Projekte. Letztens habe ich für meinen Altium NanoBoard NB3000AL eigene Firmware für Host-FPGA geschrieben. Das Board kann im Originalzustand nur mit Altium-Software angesprochen werden. Ich habe Plasma als SoftCore am laufen. Kleine Lib für CY7C68001 gescrieben und ein Paar Tools mit libusb. Jetzt kann ich über JTAG-Anschluss mittels USB Blaster auf beide FPGA's zugreifen und über eingebaue Programmierschnittstelle user-FPGA (ep3c40) in 2.5 Sekunden programmieren. Und das ohne Altium Designer (Lizenz abgelaufen). Habe noch ein Paar Ideen die Firmware zu erweitern. Bis jetzt keinerlei Probleme mit Plasma-Core gehabt. Kann nur weiterempfehlen! Klein und schnell! Dazu kommt noch vollständige GCC-Kompiler (C und C++) mit Newlib. Was will man mehr??? MfG aus Westerwald
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.