Hello, Guest the thread was called40k times and contains 219 replays

last post from WalkThatWay at the

c64 Redesign (Mainboard)

  • > Und machen uns mal Gedanken drüber, wies gehen könnte.
    Okay.


    Zuerst: Ja, ich weiß, dass ein FPGA die geeigneteste Lösung wäre. Aber das kann man sicher nicht von heute auf morgen lernen. Und so richtig billig wäre der Einstieg wahrscheinlich nicht.


    Also bleibe ich bei den _mir_ zugänglichen Lösungen, und da das Spinnen ja hier ausdrücklich erlaubt wurde: Ich stelle mal die Behauptung auf, dass man 6510 und 6526 mit preiswerten, z.B. ARM-basierten Controllern nachbilden kann. (Spontan: 6510 = LPC 2103, 3,80 Euro, 16k Flash, 70 MHz - CIAs je einen 2101, 2,55 Euro, 8k Flash, 70 MHz). Durch die 6502-Emulation auf einem ARM, die ich gerade implementiere, glaube ich, das recht gut einschätzen zu können.


    Beim 6510 würde die Emulation halt genau das zu der Zeit machen, was der Prozessor auch macht, die Abweichungen beträgen imho weniger als 100 ns. Durch die 32-Bit-Register des ARM kann man z.B. den Adressbus mit einem Zugriff setzen. Den Zustand des 6510 kann man ständig in den Registern halten, weil der ARM ja sonst nichts macht. Das ganze wäre eben eine große Schleife + Sprungtabelle + wieder zurück. Externe IRQs müsste man entweder ARM IRQs überlassen oder pro Taktzyklus pollen.... naja vielleicht liegt da noch der Hase im Pfeffer.


    Ich kenn den 8051 nicht, der oben angesprochen wurde. Aber bis jetzt habe ich auf dem ARM nie mehr als ca. 5 Instruktionen (Netto) für einen 6502-Befehl gebraucht. (14 ns je Instruktion bei 70 MHz aus RAM). Was sauhund schon meinte: Was nicht geht, wird ganz unsportlich mit MHz erschossen ;-)


    Die CIAs könnte man vielleicht mit dem kleinen Controller abhandeln. Hier wird der Code kleiner aber wesentlich fieser: Hier gibt es Latches etc. die naturgemäß schwer in Software abbildbar sind. Wenn die Zeitfenster hier auch mindestens 100 ns sind, ließe sich das vielleicht auch bewerkstelligen. Timer hat man ja wenigstens in Hardware.


    Hab nicht nachgesehen, ob diese alten LPCs auch 5V-tolerante I/Os haben. Vielleicht könnte man dann solche Nachbauteile auch mit original-Peripherie testen.


    So, genug gesponnen. Ich hab nicht vor, diese Sachen jetzt anzugehen. Aber wer weiß, wenn tatsächlich jemand einen solchen Weg verfolgen wollte, wäre ich bei dem Wahnsinn mit dabei. Obwohl es fast sinnfrei wäre...


    Und nochmal zur Sicherheit: VIC im Mikrocontroller - nö

  • Quote

    Externe IRQs müsste man entweder ARM IRQs überlassen oder pro Taktzyklus pollen.... naja vielleicht liegt da noch der Hase im Pfeffer.


    irq als irq...und nmi als fiq ... könnte gehen. vielleicht. :)


    Quote

    Aber bis jetzt habe ich auf dem ARM nie mehr als ca. 5 Instruktionen (Netto) für einen 6502-Befehl gebraucht. (14 ns je Instruktion bei 70 MHz aus RAM).


    jau, das klingt richtig...ich hab mir damals zum gba coden auch ne macro-sammlung gebaut die 6502 nach arm übersetzt, und sooo wild war das nun nicht.

  • Pro Wafer kann man mit mehr als 1000 funktionierenden ICs rechnen.

    Ich hatte doch den Cost Estimator in Posting 135 verlinkt. Da steht eigentlich alles drin; fast 1000 Dies pro Wafer, Wafer 1000 Euro. Ist nur halt angesichts von z.B. Setup-Kosten für die Straße von rund 50000 Euro, Belichtungsmasken (rund 80000 Euro) etc. etc. nicht ganz so relevant. Das ist doch der Punkt: Der Wafer kostet fast nichts, die einmaligen Kosten sind riesig, also nix mit Kleinserien.


    Das mit den ARMs klingt interessant. Wusste gar nicht, dass die auch so billig sind. Wobei wie skoe schon sagte das eigentlich angesichts der alles-in-ein-FPGA-Lösung unnötig kompliziert und unflexibel ist.

  • Es gibt Kleinserienangebote für ASIC von Foundries, bei denen du keinen eigenen Maskensatz kaufen musst Multi Projekt Wafer = MPW). Auf jedem Wafer befinden sich dann Produkte von mehreren Kunden. Dadurch sinken die anteiligen Maskenkosten dramatisch. Natürlich mußt du dann wieder mehr Wafer abnehmen um auf Stückzahlen zu kommen. Setupkosten für die Linie ? Keine Ahung was das sein soll. Natürlich nimmst du einen Prozess, der ständig gefahren wird. Wenn erst die Fab umgebaut (?) werden muss um deine Produkte zu fertigen, dann bist du verloren.


    Übrigens gibt es ein europäisches Verbundprojetk, bei denen Universitäten Kleinstserien-ASICs (nicht kommerziell) bei europäischen Herstellern für wenige Tausend Euro fertigen können (stichwort Europratice). Ich habe früher selber einen ASIC im Rahmen meiner Promotion fertigen lassen und mehr als eine handvoll hat es davon nie gegeben. Das Problem ist nur, dass dieses Angebote nur für nicht-kommerzielle Produkte gelten. Sobalt man damit Geld machen will, hat man den vollen Preis zu zahlen und alleine eine Linzenz der Standarddesignsoftware Cadence kostet mehr als 100kEuro. Im Rahmen von Europractice bekommen die Unis sie fast geschenkt.

  • Bezüglich Teile Ersatz mit Controller


    Hey Leute, eure Anstrengungen in Ehren, der SwinSID ist ja auch ziemlich erstaunlich finde ich. ABER ...



    Ist es wirklch das Ziel einzelne Chips zu emulieren? Das ist zwar nett wenn einem mal die Bauteile ausgehen und ich einen original C64 erhalten will, aber sind wir nicht von einem C64 Ersatz Projekt ausgegangen?


    Ich dachte eher an einen Komplett Ersatz. Eine Blackbox (egal was drin werkelt) der sich exakt wie ein C64 verhält. Alle Anschlüsse müssen vorhanden sein damit man alles an vorhandener Hardware weiter verwenden kann.


    -------


    Das einzige was Sinn macht in der Richtung ist die CPU, denn wie soll ich sonst den Controlport in Hardware bekommen.


    Aber wenn man zb. einen CIA komplett emuliert, wozu soll man dann den Adress und Datenbus samt Chip Select mit emulieren? Der CPU Ersatz und die CIA bzw. SID können auch anderst kommunizieren oder vielleicht überhaupt Teil der CPU Emulation werden (falls dies einfacher ist).

  • Wenn ich zum Beispiel an die 1541U denke, was wurde im vorfeld an der Vorauszahlung sich aufgeregt, zweifel an der Person oder auch an der funktion, mitbewerber haben versucht ihre produkte zu schützen und es wurde viel dummes zeug gepostet.


    Da war das Produkt ansich aber schon mehr als spruchreif. Der Unterschied zur z.B. 1541U ist der, dass die breite Öffentlichkeit in Form von z.B. Internetforen erst davon erfahren hat, als Gideon schon in der Entwicklung ´ne ganze Menge vorzuweisen hatte.

  • Aber wenn man zb. einen CIA komplett emuliert, wozu soll man dann den Adress und Datenbus samt Chip Select mit emulieren?

    Die Busse braucht man sowieso, dann kann man sie auch gleich kompatibel halten.
    Ich hab's glaube ich erst dreimal geschrieben, also nochmal:
    Syntiacs FPGA-64 macht das schon so.

    ...und siehe da, welche Ports hat das Ding?


    ...also alle Signale, die die normale CIA auch hat, inklusive Chip Select und so weiter.


    Die CIA ist übrigens gerade mal 17k in VHDL bzw. etwas über 600 Zeilen lang, davon 150 Zeilen triviale Portdefinitionen; der Rest sind Beschreibungen von 11 Prozessen; der längste Prozess ist der für die Timer an sich mit etwa 140 Zeilen. Zum Vergleich: Die ciacore.c in VICE sind 47k in C (etwa 1400 Zeilen) und ziemlich unleserlich.


    Das geht direkt mit den anderen Chips so weiter: Der VICII sind 43k VHDL, aber etwa 230k C.

  • Diddl: Du hattest in Posting 146 von einer Black Box geredet, die auch keine kompatiblen Busse benutzen würde. Ich gehe mal davon aus, dass das nur als FPGA Sinn macht, denn wenn man das per Microcontroller (= komplette Emulation in einem Microcontroller) macht, kann man auch gleich VICE auf einen Microcontroller portieren, wenn man keinen Wert auf die Hardwarekompatibilität legt.


    Ein FPGA kostet glaube ich sowas im Bereich von 20-30 Euro (aus dem Gedächtnis); das DE1 (fertiges Board inkl. FPGA) kostet etwa 120 Euro; die Minimig 160 Euro.


    Ein neu designtes Mainboard mit Microcontrollern statt der alten Chips inkl. aller passiven Bauteile kostet sicher auch nicht weniger, und auch ein altes Board mit Microcontrollern+Adapterplatinen wird nicht wesentlich drunter liegen, ist aber im Vergleich überhaupt nicht flexibel (wenn's auch natürlich den viel höheren Geek-Qutienten = Arbeitsaufwand/Sinnhaftigkeit hat ;) ).

  • > Die Busse braucht man sowieso, dann kann man sie auch gleich kompatibel halten.
    z.B. Wenn man auch den Expansionsport haben will.


    > Ein neu designtes Mainboard mit Microcontrollern statt der alten Chips inkl.
    > aller passiven Bauteile kostet sicher auch nicht weniger
    Stimmt, nicht zuletzt weil die Leiterplatte größer werden würde. Und im Gegensatz zu FPGAs und Controllern werden die wohl nicht rapide im Preis sinken.


    Aber auch der diskrete Ansatz hat Vorteile:
    - Bei entsprechenden Ansätzen beliebige Kombinationsmöglichkeiten aus alten und neuen Komponenten
    - In Hobbyfreundliche Häppchen aufteilbar
    - Grundstruktur des Gerätes bleibt sichtbar, klingt albern, ist aber charmant
    - Es gibt schon ein paar FPGA-Projekte, zu denen ich in in den nächsten Monaten nicht beitragen könnte...


    Solch ein Projekt mit Mikrocontrollern umzusetzen hätte vielleicht eine Laufzeit von 2 Jahren. Und wenn das fertig wäre, gäbe es wahrscheinlich keinen Vorteil mehr gegenüber FPGAs. Deshalb habe ich persönlich auch erstmal nur gedanklich teilgenommen.


    Trotzdem nochmal zurück dazu:
    > auch ne macro-sammlung gebaut
    Genau so sieht meine (und sicher jede andere) auch aus, deshalb ist es im Moment ca. 10 bis 15 k Code. Bei einer Emulation wie dieser hier würde man sicher zwischen Fetch und Execution klar trennen (müssen), und das nicht pro Instruktion ausmakroisieren. Dann würde der LPC für 2,55 auch schon reichen.


    > irq als irq...und nmi als fiq ... könnte gehen.
    An IRQ und FIQ hatte ich auch erst gedacht. Noch besser geeignet sind vielleicht die Timer Capture Inputs. Bei konfigurierten Pegeländerungen ein bestimmten I/O-Leitungen wird der momentane HW-Timer in einem Register abgelegt. Vor dem nächsten Fetch könnte man die dann auswerten, um zu sehen, wo man herfetchen sollte.


    Hab gerade mal http://www.mikrocontroller.net/articles/FPGA aufgemacht, Mal sehen, ob ich meine Hämmschwelle abbauen kann. Heute abend kommen dann vielleicht ein paar Fragen...

  • (Lesend) Mhhh, so richtig meine Welt ist das nicht. Aber nach einer Stunde sollte man auch noch nicht aufgeben.... Also lade ich gerade das WebPack ISE dingens herunter. Man, 4 GB. Das muss ja viel können...


    Quote

    Vielleicht sollte man dafür mal eni hoffentlich etwas dauerhafteres Archiv machen (nix zip auf irgendeiner privaten Homepage, sondern bitte Sourceforge oder ähnliches)...


    Klingt vernünftig. Irgendwann kann man dann die Puzzleteile zusammenfügen. Meine 0,3% FPGA-Wissen lassen mich vermuten, dass das im Prinzip einfacher sein sollte als bei Software.


    Ich hab immer Skrupel, Sachen wiederzuveröffentlichen, bei denen ein Copyright aber keine Lizenz drübersteht. Würden Peter Wendrich, Jan Derogee und Marco Groeneveld denn zustimmen, ihre Werke unter eine definierte Lizenz zu stellen, z.B. BSD, GPL oder so? Wie z.B. die Cores auf opencores.org


    (Installing ISE Design Tools... 38%)


    Wieviel Platz (Oder Gatter oder Zellen oder was auch immer) braucht der FPGA64 auf einem XC3S400? Würde sich der Platz merklich verringern, wenn die ROM-Images nicht mit einkompiliert (passt das Wort? Ich komm aus einer anderen Welt...) wären? Liegen die 64 k RAM eigentlich auch da drauf oder extern? Mhhh, der Block-RAM reicht eigentlich nicht. Aber 0,3% sind sicher zu wenig, dass zu verstehen.


    So, ich spinne noch ein bisschen, dass macht Spaß: Wer eine High-End-Maschine haben möchte, ist vermutlich bei einem C-One gut aufgehoben. Wolfgang Wendrichs Core scheint sich ja richtig aktiv zu entwickeln.


    Für mich wäre eine kleine Wohnzimmer-Computing-Box interessant. Etwas kompatibler als das DTV und mit eingebautem SD-Karten-Laufwerk, aber nicht so umfangreich wie der C-One. Sowas wie das sd2iec oder eine Art 1541U-light (die legendäre open1541 ;-) mit reinpacken. Diskwechsel-Menü per OSD...


    Wie könnte sowas aussehen? XC3S400 zu 24 Euro, SD-Connector, einen kleinen Mikrocontroller für 5 Euro, um den FPGA vom FAT-Geraffel zu entlasten und um den FPGA von der SD-Karte zu konfigurieren. Einen 128x8 oder 256x8 SRAM für RAM und ROM. Die ROMs auf SD-Karte und bei Hochlauf rüberschaufeln. PS2-Tastatur und Maus wären nicht schlecht. Unsinn? Oder machbar? Schafft man das für Bauteile + Leiterplatte für ca. 50 Euro? Ach, hab den Expansionsport für das kommenda Game-Highlight vergessen...


    (Installing ISE Design Tools... 52%)


    Mhhh, ist mir schon fast ein bisschen peinlich, dass viele Phantasieren. Aber vielleicht treibe ich die Diskussion damit etwas voran, damit Ace sich freut ;-P

  • Für mich wäre eine kleine Wohnzimmer-Computing-Box interessant. Etwas kompatibler als das DTV und mit eingebautem SD-Karten-Laufwerk, aber nicht so umfangreich wie der C-One. Sowas wie das sd2iec oder eine Art 1541U-light (die legendäre open1541 ;-) mit reinpacken. Diskwechsel-Menü per OSD...


    Wie könnte sowas aussehen? XC3S400 zu 24 Euro, SD-Connector, einen kleinen Mikrocontroller für 5 Euro, um den FPGA vom FAT-Geraffel zu entlasten und um den FPGA von der SD-Karte zu konfigurieren. Einen 128x8 oder 256x8 SRAM für RAM und ROM. Die ROMs auf SD-Karte und bei Hochlauf rüberschaufeln. PS2-Tastatur und Maus wären nicht schlecht. Unsinn? Oder machbar? Schafft man das für Bauteile + Leiterplatte für ca. 50 Euro? Ach, hab den Expansionsport für das kommenda Game-Highlight vergessen...


    Installing ISE Design Tools... 52%


    Klingt wie Musik in meinen Ohren. Genau so etwas wünsche ich mir auch!! Selbst wenn es 70€ kosten wird.


    Man könnte nur noch den SwinSID mit einbauen, oder ist das FPGA SID besser?

  • Die Idee ARM Conroller hört sich gut an, in einem DIL Gehäuse oder großen SMD Gehäuse ist es mit Adapterleiterplatte als Ersatzteil zu verwenden.
    und als kleines TSOP gehäuse für die Bastler die einen C64 auf kleinster Bauform unterbringen wollen.
    Und eine einfache und Billige Entwicklungsumgebung.


    Die FPGA Lösung hat auch ihren reiz, aber die programmierung und entwicklung ist aufwendiger.


    Die ASIC Lösung ist der Heilige Grahl, eine 100% Pinkompatible Lösung, mit einem Hohen Risiko das der erste Produktions schuss schiefgeht.




    Mein Angebot:


    Falls jemand die Software Entwicklung übernimmt, würde ich mich fürs Testen, Löten von Testhardware, und falls der "Serienstatus" ereicht wird würde ich auch versuchen "Shadowolf like" bausätze zusammenzustellen und die Chips zu programmieren.

  • Quote

    um den FPGA vom FAT-Geraffel zu entlasten und um den FPGA von der SD-Karte zu konfigurieren


    Das ist genau das was mich am Minimig stört. Das FAT-Geraffel läßt sich sehr gut mit einer 2. CPU im FPGA handhaben. Meine Idealvorstellung ist ein kleiner ATMEGA der von der SD-Karte die Konfigdaten nutzt um den FPGA zu konfigurieren und sich dann abschaltet. Alles weitere macht der FPGA.
    Beim Minimig ist das leider nicht so:
    Wenn jemand für das MINIMIG-Board einen C64 Core oder was anderes anpassen möchte muß er auch den PIC für die Floppyemu umprogrammieren. Viel einfacher wär es wenn die Floppyemu auch im FPGA gemacht wird. So habe ich es auch bei meiner MINIMIG-Adaption für das DE1-Board gemacht. Nur zur Info: da ist das Schreiben in ein ADF-File schon lange kein Thema mehr. Aber beim original Minimig scheint es ja da massive Probleme zu geben.


    Aber der SID im FPGA ist wirklich noch ein Problem.
    Viele Grüße
    TobiFlex

  • Quote

    Die Idee ARM Conroller hört sich gut an, in einem DIL Gehäuse oder großen SMD Gehäuse ist es mit Adapterleiterplatte als Ersatzteil zu verwenden.


    Du hast die Wahl zwischen 0,5 mm LQFP (ca. 10 x 10 mm) und TSOP. Des DILs Tage scheinen auch im Hobby-Bereich gezählt zu sein.


    Quote

    Und eine einfache und Billige Entwicklungsumgebung.


    Das finde ich so toll am LPC. Braucht man nichtmal ein Programmiergerät, nur einen UART-Pegelwander oder USB-Adapter. Das soll keine Werbung sein, sondern schlichte Freude.


    Quote

    Mein Angebot


    Wenn man (wer auch immer) nicht alleine dasteht, ist das ein unglaublicher Motivationsschub. Gilt das für wie auch immer die Lösung aussieht?

  • Quote

    Das FAT-Geraffel läßt sich sehr gut mit einer 2. CPU im FPGA handhaben.


    Genau das ist ein Problem von mir mit FPGAs. Was "kostet" denn die zweite CPU auf dem FPGA? Was bedeuten 400.000 Gates in der Praxis?


    Wenn der externe Controller eher stört als nutzt, vielleicht ist das Design nur nicht so toll?


    Mein Gedanke war, die Schnittstelle zwischen FPGA und Controller auf die Ebene open/seek/read/write zu legen und natürlich die eigentliche Floppy-Emu (6503, VIAs, Disk rotation etc.) im FPGA zu haben.


    Wenn ein FPGA aber kein (Größen-)Problem damit hat, das _alles_ mitzumachen, stimme ich Dir (in Ermangelung von Detailwissen) zu.

  • (Lesend) Mhhh, so richtig meine Welt ist das nicht. Aber nach einer Stunde sollte man auch noch nicht aufgeben.... Also lade ich gerade das WebPack ISE dingens herunter. Man, 4 GB. Das muss ja viel können...
    (Installing ISE Design Tools... 52%)


    Und, hat die Installation geklappt? Bei mir warens (mit etwas langsamerem DSL-Anschluß und etlichen Ehrenrunden (Fehlermeldung bei 2x 93% + 2x 96%, jeweils mit neuem Versuch weiter bei 44%...) etwa 20h Installationszeit. Aber es läuft jetzt, incl. CPLD-Programmierung. Bloß: ohne das Buch hätte ich wahrscheinlich die erste Testdatei nicht compiliert / gefittet bekommen.

  • Ich kenn mich jetzt nur mit den ALTERA-Bausteinen aus. Da gibt es z.B. den EP3C10E144C8N. Der ist in einem lötbaren Gehäuse, hat 10000LCs (Logiczellen) und kostet bei Farnell 18€.
    Zum Resourcenverbrauch:
    CPU 6502 ca. 700LC's
    CPU Z80 ca. 1800LC's
    CPU 68000 ca. 3400LC's (damit meine ich meinen TG68 ;-)
    C64 Core inclusive 6502 ca. 5000 LC's
    Amiga core (minimig mit tg68 ) ca. 12000LC's


    Und der EP3C10 ist für heutige Verhältnisse ein kleiner FPGA.


    Viele Grüße
    TobiFlex

  • Eine Schwierigkeit bei Soft CPUs in FPGA ist die Toolchain fürs Programmieren. Also Debugger und C-Compiler. Meines Wissens nach bietet kostenlos nur Lattice eine brauchbare Lösung an. Die Altera und Xilinx Cores (MicroBlaze, Nios ...) sind glaube ich unerschwinglich, so dass man alles in Assembler machen muss. Oder kennt hier jemand einen Soft Core für nen FPGA der kostenlos ist, in C programmiert werden kann und bei dem Debugging möglich ist ?