Ich finde es interessant, dass ich hier bezüglich des FPGA 6502 nur eine Bitte melde dich an, um diesen Link zu sehen. finde jedoch kein Diskussionsthread ![]()
Bitte melde dich an, um diesen Link zu sehen.
Würde so etwas nicht im C64 funktionieren?
Es gibt 24 Antworten in diesem Thema, welches 3.799 mal aufgerufen wurde. Der letzte Beitrag (
Ich finde es interessant, dass ich hier bezüglich des FPGA 6502 nur eine Bitte melde dich an, um diesen Link zu sehen. finde jedoch kein Diskussionsthread ![]()
Bitte melde dich an, um diesen Link zu sehen.
Würde so etwas nicht im C64 funktionieren?
Würde so etwas nicht im C64 funktionieren?
Nein.
Ich finde es interessant, dass ich hier bezüglich des FPGA 6502 nur eine News finde jedoch kein Diskussionsthread
Google schon ![]()
Bitte melde dich an, um diesen Link zu sehen.
Ein 6502 ist kein 6510, aber die Port Bits könnte man hinzufügen. Aber schneller läuft er im C64 trotzdem nicht (ohne von einem echten 6502-Core wegzugehen), weil der VIC den Takt angibt (und der sich wiederum am Videostandard orientiert)
Würde so etwas nicht im C64 funktionieren?
Klar, man müsste das Projekt nur auf 6510 statt 6502 und die andere Speicherbelegung anpassen.
man müsste das Projekt nur auf 6510 statt 6502 und die andere Speicherbelegung anpassen.
Wie greift der VIC dann auf seinen 16 kB-Bereich (innerhalb des FPGA) zu? Oder blendest du das aus und definierst es als "I/O", damit die CPU es extern (und damit mit 1 MHz) anspricht? Dann bleibt der Geschwindigkeitsvorteil nur noch für (interne) Berechnungen.
Wie greift der VIC dann auf seinen 16 kB-Bereich (innerhalb des FPGA) zu?
Gar nicht, der greift natürlich weiter auf das reguläre RAM zu.
Oder blendest du das aus und definierst es als "I/O", damit die CPU es extern (und damit mit 1 MHz) anspricht?
Das ist eine von mehreren Möglichkeiten. Eine andere wäre ein Write-Buffer (oder gar ein Writeback-Cache), damit die CPU nicht auf jeden einzelnen Schreibzugriff warten muss - meines Wissens macht die SuperCPU sowas in der Richtung.
Das Chameleon implementiert die Luxuslösung: Das reguläre RAM wird komplett weggeblendet und dem VIC immer Just-in-Time aus dem FPGA/Modul-Speicher das gerade benötigte Byte geliefert. Das bräuchte aber etwas mehr Signale als man am CPU-Sockel zur Verfügung hat.
Dann bleibt der Geschwindigkeitsvorteil nur noch für (interne) Berechnungen.
Das kann ja durchaus einiges sein.
Das funktioniert alles aber nicht mit *dieser* CPU. Es scheitert schon an sowas banalem wie dem Bankswitching.
Dazu gab es schon einen Diskussions-Thread im letzten Jahr, unzwar hier:
[Linl: Bitte melde dich an, um diesen Link zu sehen.]
Und im Forum vom "Verein zum Erhalt klassischer Computer e.V." wurde die 100 MHz CPU schon im September 2020 erwähnt.
[Link: Bitte melde dich an, um diesen Link zu sehen.]
Das funktioniert alles aber nicht mit *dieser* CPU. Es scheitert schon an sowas banalem wie dem Bankswitching.
Du hast dir nicht die Mühe gemacht, die umfangreiche Beschreibung zu dem Projekt zu lesen, oder? Da gibts sogar eigene Abschnitte zu den Themen Video-RAM und Bankswitching.
Das funktioniert alles aber nicht mit *dieser* CPU. Es scheitert schon an sowas banalem wie dem Bankswitching.
Du hast dir nicht die Mühe gemacht, die umfangreiche Beschreibung zu dem Projekt zu lesen, oder? Da gibts sogar eigene Abschnitte zu den Themen Video-RAM und Bankswitching.
Doch, doch. Ich frage mich z. B nur, wie die CPU in ihrem Sockel an /EXROM und /GAME rankommt, so als erste Hürde ... davon steht leider nichts im Dokument.
Dass man das nachbauen kann bezweifelt ja niemand. Irgendwann hat man dann auch noch das PLA integriert und zieht Strippen ... und fragt sich dann, wieso man es nicht gleich so wie das Chamaeleon oder die Super-CPU macht.
Der C64 ist eben genau kein "typisches" 6502-System wie die CBMs oder der VC-20. Aber ich lasse mich gerne überraschen.
Irgendwann hat man dann auch noch das PLA integriert und zieht Strippen
Korrekt, denn sonst könnte man ja die Bankinglogik nicht nachbilden.
und fragt sich dann, wieso man es nicht gleich so wie das Chamaeleon oder die Super-CPU macht.
Am Modulport sind nun mal manche Dinge einfacher und andere Dinge komplizierter. Schon mal versucht, mit Chameleon oder aktiver SuperCPU auf den Datasettenport zuzugreifen?
Richtig. Ob das je in einem C64 laufen kann/wird ist fraglich...
Die 65010 CPU hat noch einen zusätzlichen AEC Eingang, über den das VI" II bei der CPU den Bus-Zugriff sperren kann, währen die VIC II auf den Bus zugreift.
[6510 = 6502 + 6 Bit I/O + TriState - RDY/Sync pin ...]
Das könnte man bestimmt auch in das FPGA design anpassen, aber aufgrund der C64-Komponenten, die nur 1 MHz vertragen, müssten noch weitere Hardware-Anpassungen/Ergänzungen addiert werden. Ob dabei etwas sinnvolles herauskommt ist eher fraglich.
Um wirklich mit voller CPU Geschwindigkeit arbeiten zu können, müsste man sozusagen ein dem Mega65 Computer ähnliches Projekt neu starten.....
aber aufgrund der C64-Komponenten, die nur 1 MHz vertragen, müssten noch weitere Hardware-Anpassungen/Ergänzungen addiert werden.
Die Sache mit dem ~1MHz Originalsystemtakt ist ja in einem Apple II oder CBM 8032 nicht anders, warum muss es dann gerade beim C64 angepasst werden?
Nun, für den Betrieb im C64 sind noch Modifikationen und Ergänzungen notwendig (siehe Unterschiede 6502<=>6510).
Die CPU hat zwar 64kb Arbeitsspeicher auf dem fpga Chip (für RAM und ROM Caching).
Jedoch müsste das VIC II auf diesen FPGA internen Arbeitsspeicher zugreifen können (=> der C64 Arbeitsspeicher müsste deaktiviert werden).
Ausserdem müsste die CPU beim Zugriff auf Peripherie-Chips (z.B. 6520, VIC II, SID, usw.) auf 1 MHz gedrosselt werden.
Die Speichefkonfiguration ist wegen dem ROM Caching im RAM mit nur 64kb für RAM und ROM-Cache nicht voll kompatibel (C64: 64kb RAM + 20kb ROM). D.h. das ROM Caching miüste aus Kompatibilitätsgründen deaktiviert werden, sodass ROM-Zugriffe ebenfalls nur mit 1 MHZ möglich wären.
[Hinweiss: Drosselung auf 1 MHZ bedeutet 1% Geschwindigkeit]
Alle Informationen zu allen Projektinformationen inkl. aller Dateien findet ihr .pdf-Document im Post Bitte melde dich an, um diesen Link zu sehen..
Wenn jemand Lust und Zeit hat alle diese Kompatibilitätsänderungen im FPGA Design zuv addieren, dann los. Die Community wird danken...
Nun, für den Betrieb im C64 sind noch Modifikationen und Ergänzungen notwendig
Natürlich, aber wenn ich die Kommentare hier lese habe ich immer wieder das Gefühl, dass manche Poster hier das Ding für einen 6502 mit 100MHz externem Takt und sonst nichts halten. Dabei hat der Projektautor sich doch so viel Mühe gegeben, Implementierungsdetails wie das Bitte melde dich an, um diesen Link zu sehen., die Unterstützung von Bitte melde dich an, um diesen Link zu sehen. und auch clevere Dinge wie Bitte melde dich an, um diesen Link zu sehen. für zeitkritischen I/O-Code zu beschreiben.
Ich zerrede ja auch gerne Projekte, aber Sachen als Problem darzustellen, die dort für andere Zielsysteme schon gelöst wurden bringt doch irgendwie nix.
(und es wäre nicht mal der ersten interne C64-CPU-Beschleuniger...)
Es ging mir bei meinen Kommentaren nicht darum das supertolle, fantastische Projekt zu zerreden. Ich bin selbst total begeistert von diesem fantastischem Project.
Vielmehr ging es mir darum Hinweise zu geben, welche Probleme bei einer Implementierung als C64 interne Beschleunigungskarte noch gelöst werden müssten, damit man eine höchstmögliche Kompatibilität im C64 erreichen kann.
Evtl. wäre eine einfachere Implementierung der 65F02 CPU möglich, wenn man als Basisidee die Implementierung der CMD-Super-CPU als Vorlage nimmt. Das wäre wahrscheinlich der beste Weg mit dem man technisch, ohne große Änderungen, eine Turbokarte für den C64 realisieren kann.
Die Speichefkonfiguration ist wegen dem ROM Caching im RAM mit nur 64kb für RAM und ROM-Cache nicht voll kompatibel (C64: 64kb RAM + 20kb ROM). D.h. das ROM Caching miüste aus Kompatibilitätsgründen deaktiviert werden, sodass ROM-Zugriffe ebenfalls nur mit 1 MHZ möglich wären.
Ich hab da keine Ahnung von, aber könnte man das FPGA-Design nicht dahingehend erweitern, dass es in diesem - ich nenne ihn jetzt mal 65f10 - auch diese 64kb RAM + 20kb ROM gäbe?
dass es in diesem - ich nenne ihn jetzt mal 65f10 - auch diese 64kb RAM + 20kb ROM gäbe?
Das gegenständliche FPGA hat nur 64kB RAM. Man müsste also ein anderes FPGA nehmen.
(und es wäre nicht mal der ersten interne C64-CPU-Beschleuniger...)
Richtig, und wenn man sich ansieht, was da für ein Aufwand getrieben wurde mit welchem Resultat, ist die Ausgangsfrage eigentlich beantwortet.
Der C64 eignet sich eher schlecht für solche "Aufrüstlösungen". Der Aufwand geht deutlich über die oben vorgestellte Lösung hinaus.
Übrigens: Das mit dem 64 KByte XILINX FPGA Limit ist nicht so ganz richtig:
Es gibt eine XILINX FPGA Limitierung für generierten RAM Speicher auf auf max. 65,536 (64k) Speicherworte mit einer Bitbreite von 1 - 1024 Bits. Bei 64k x 8 Bit ergibt sich daraus 64 KByte; Bei 64k x 16 Bit => 128 KByte; ... Bei 64k x 1024 Bit theoretisch 8 MByte....
Siehe "Distributed Memory Generator" [Link: Bitte melde dich an, um diesen Link zu sehen.]
6