Hallo zusammen, vorab, ich betreibe das Ganze als Hobby, komme also nicht aus der Elektronikwelt, habt Mitleid :) Zu meiner Frage, ich habe hier ein altertümliches Modul für den guten alten Commodore C64, welches einen Baustein (82S129) besitzt. Diese sind ja heute so gut wie nicht mehr verfügbar. Ich habe ein Image dieses Bausteins um diesen mit einer nachgebauten aktuelleren Variante zu ersetzen. Im www sind vielerlei Anleitungen diesbezüglich vorhanden, z.B. diesen mit einem GAL zu ersetzen. Nun habe ich eine Variante gesehen, wo man mittels CPLD diesen Baustein "nachgebaut" hat, speziell im Arcademaschinenbereich sehr gefragt. Wäre jemand in der Lage, mich hierbei zu unterstützen ? Vielen Dank Michael
Mit einem 36-Makrozellen einen 1kbit-PROM nachbauen zu wollen ist ziemlich sinnfrei. Nimm ein paralleles EEPROM oder EPROM.
1N 4. schrieb: > Mit einem 36-Makrozellen einen 1kbit-PROM nachbauen zu wollen ist > ziemlich sinnfrei. Hängt vom Inhalt ab. PROMs hat man früher gerne als Logik-Ersatz verwendet, da wird das meistens passen.
A. K. schrieb: > 1N 4. schrieb: >> Mit einem 36-Makrozellen einen 1kbit-PROM nachbauen zu wollen ist >> ziemlich sinnfrei. > > Hängt vom Inhalt ab. PROMs hat man früher gerne als Logik-Ersatz > verwendet, da wird das meistens passen. Ja, ist auch hier der Fall. Mir fehlt nur der Ansatz, das weitere Vorgehen..... Muss ich das Image zerpflücken ? Wie komme ich an die Logik, die in dem Image verdrahtet ist heran ?
> Hängt vom Inhalt ab. PROMs hat man früher gerne als Logik-Ersatz > verwendet, da wird das meistens passen. Klingt nach ner Menge Spass, den Inhalt in Logikterme zu übersetzen :)
1N 4. schrieb: >> Hängt vom Inhalt ab. PROMs hat man früher gerne als Logik-Ersatz >> verwendet, da wird das meistens passen. > > Klingt nach ner Menge Spass, den Inhalt in Logikterme zu übersetzen :) Elgen hat ein Tool geschrieben um diese Dumps von Proms in Equations umzuwandeln, würde das schon helfen ? http://elgensrepairs.blogspot.de/2014/03/using-gals-to-replace-small-sparse.html Im Anhang sieht man, was das Tool nach dem Umwandeln ausspuckt.
> Elgen hat ein Tool geschrieben um diese Dumps von Proms in Equations > umzuwandeln, würde das schon helfen ? Na damit ist es doch kein Problem das in ein CPLD zu packen. Weiß nicht, was Xilinx ISE anbietet, bei Altera hätte ich das in etwas Verilog verpackt und fertig.
Moin, Michael S. schrieb: > Ja, ist auch hier der Fall. Mir fehlt nur der Ansatz, das weitere > Vorgehen..... Muss ich das Image zerpflücken ? Wie komme ich an die > Logik, die in dem Image verdrahtet ist heran ? Hast du denn eine Beschreibung zum Image? Das pfiffige an dem Ding ist halt, dass es noch einen Tristate kennt. Das kann man gut in einem kleinen Flash-basierten FPGA machen (zB gleich mit einem MachXO2 breakout board). Das von dir genannt CPLD ist schon etwas in die Jahre gekommen, ganz zu schweigen von GALs. Die Logik des Chips umzusetzen ist wenig Arbeit, wenn du den Aufbau des Image (vermutlich 8 bit pro Nibble wegen Tristate) kennst. Poste doch sonst mal das Image, bestimmt lässt sich das raten.
1N 4. schrieb: >> Elgen hat ein Tool geschrieben um diese Dumps von Proms in Equations >> umzuwandeln, würde das schon helfen ? > > Na damit ist es doch kein Problem das in ein CPLD zu packen. Weiß nicht, > was Xilinx ISE anbietet, bei Altera hätte ich das in etwas Verilog > verpackt und fertig. Das klingt ja einfach, doch mit der Umsetzung hapert es :) Anbei das Image des Bausteins. Leider habe ich keine weitere Beschreibung....
:
Bearbeitet durch User
Michael S. schrieb: > 1N 4. schrieb: >>> Hängt vom Inhalt ab. PROMs hat man früher gerne als Logik-Ersatz >>> verwendet, da wird das meistens passen. >> >> Klingt nach ner Menge Spass, den Inhalt in Logikterme zu übersetzen :) > > Elgen hat ein Tool geschrieben um diese Dumps von Proms in Equations > umzuwandeln, würde das schon helfen ? > > http://elgensrepairs.blogspot.de/2014/03/using-gals-to-replace-small-sparse.html > > Im Anhang sieht man, was das Tool nach dem Umwandeln ausspuckt. Bei einem kompletten angehängten Listing könnte man sicherlich mehr sagen.
> > Bei einem kompletten angehängten Listing könnte man sicherlich mehr > sagen. Habe die Datei mit den EQ jetzt gerade nicht hier. Lade es später hoch
Sieht doch schlüssig aus. Ich lag nur falsch mit dem Tristate PER Pin, der ist offenbar global. Also eine klassische ROM-Tabelle, die passt noch ins kleinste FPGA ins Distributed RAM. Des Retro-Feelings wegen wäre natürlich ein Foto des Moduls noch spannend...
Wenn tatsächlich Logikterme vorliegen, ist ein kleiner CPLD wohl weniger Kanonen auf Spatzen als ein FPGA. Schon wegen der 5V-Kompatibilität.
Martin S. schrieb: > Sieht doch schlüssig aus. Ich lag nur falsch mit dem Tristate PER Pin, > der ist offenbar global. Also eine klassische ROM-Tabelle, die passt > noch ins kleinste FPGA ins Distributed RAM. > Des Retro-Feelings wegen wäre natürlich ein Foto des Moduls noch > spannend... Das ist doch machbar :) Bin gerade nicht zu Hause, reiche ich definitiv nach.....
Gurbea schrieb: > Sieht nach einem einfachen Satz von Gleichungen aus. Ja genau, diese Gleichungen lade ich nachher mal hoch, die aus dem Image entstanden sind. Ich habe mich noch nicht mit der Xilinx Software beschäftigt, Sinn und Zweck soll später sein, dass der XC9536 aufs dem Cartridge fest verdrahtet wird wie der 82S129, ich denke man kann dann auch in der Software sagen, wo die Ein/-Ausgänge liegen ? Ich korrigiere, wird dann vielleicht doch ein XC9536XL :)
:
Bearbeitet durch User
Hier hat das auch schonmal jemand gemacht, habe bisher noch keine Antwort. Würde mich freuen wenn ich da mal weiterkäme. Offensichtlich gibt es die XC9536 auch in verschiedenen Geschwindigkeiten, hier wurde der 15C verwendet. Keine Ahnung ob das einen Einfluss hat, Fragen über Fragen. http://www.biltronix.com/CCPU_Custom_Chip_Replacements.html
https://www.c64-wiki.de/wiki/SuperPLA Das gibts doch alles schon seit Jahren und auch weitere open source Projekte zur PLA (gidf), warum das Rad schon wieder mal neu erfinden? ;)
So sieht das bin nach der Umwandlung aus....blickt da jemand durch :)?
Einfachste Lösung: ausprobieren. D.h. Image hintereinander als case in VHDL hinschreiben und durchlaufen lassen. Irgendetwas sagt mir, dass im CPLD danach noch massenweise Platz ist.
Michael S. schrieb: > So sieht das bin nach der Umwandlung aus....blickt da jemand durch :)? Da es 256 Eingänge (A0 - A7) und 4 Ausgänge (D0 bis D3) sind, gibt es vier Gleichungen mit je nominell 256 UND-Termen, die ODER-verknüpft sind. Siehe zu, dass du ein Tool findest, das die Gleichungen weiter reduziert. Auf die Schnelle*1 kannst du dir WinCUPL*2 ziehen und den Wust dort eingeben. Versuchen kannst du es mit einem AT1502AS CPLD von ATMEL. [1] Vielleicht hat auch ein Mitleser ein Tool, um die Angelegenheit zu erledigen. [2] http://www.atmel.com/tools/wincupl.aspx
Für D0 wirft die obige Seite folgendes aus (Quine-McCluskey-Optimierung):
1 | A0 ∧ ¬A1 ∧ ¬A4 ∨ |
2 | ¬A1 ∧ A2 ∧ A5 ∧ A6 ∧ A7 ∨ |
3 | ¬A0 ∧ A1 ∧ ¬A2 ∧ ¬A6 ∨ |
4 | A0 ∧ ¬A3 ∧ ¬A4 ∨ |
5 | A3 ∧ ¬A4 ∧ A5 ∧ A6 ∨ |
6 | ¬A2 ∧ A4 ∧ A5 ∧ A7 ∨ |
7 | ¬A0 ∧ A1 ∧ A3 ∧ A4 ∧ A5 ∧ ¬A6 ∨ |
8 | ¬A1 ∧ A2 ∧ A3 ∧ ¬A4 ∧ A5 ∨ |
9 | ¬A1 ∧ ¬A3 ∧ A4 ∧ A5 ∨ |
10 | A2 ∧ ¬A4 ∧ A5 ∧ A6 ∨ |
11 | A1 ∧ ¬A2 ∧ ¬A5 ∨ |
12 | A0 ∧ A2 ∧ ¬A4 ∨ |
13 | ¬A6 ∧ ¬A7 ∨ |
14 | ¬A5 ∧ ¬A7 ∨ |
15 | ¬A3 ∧ ¬A7 ∨ |
16 | A0 ∧ ¬A5 ∨ |
17 | ¬D0 |
Gurbea schrieb: > Für D0 wirft die obige Seite folgendes aus > (Quine-McCluskey-Optimierung): > > Also müsste ich das für D0 - D4 optimieren? Und dann? Sorry für diese vielen Fragen
Michael S. schrieb: > Gurbea schrieb: >> Für D0 wirft die obige Seite folgendes aus >> (Quine-McCluskey-Optimierung): >> >> > > Also müsste ich das für D0 - D4 optimieren? Und dann? Sorry für diese > vielen Fragen Das ist die Optimierung (für D0). Du musst dies nur für D1 bis D3 auf der oben genannten Seite noch durchführen. Was bei der Optimierung herauskommt (siehe oben), schreibst du dann z. B. in WinCUPL. Die Gleichung oben sieht auf den ersten Blick etwas putzig aus. Sie muss noch an das verwendete Programm angepasst werden.
1 | D0 = A0 & !A5 |
2 | # |
3 | !A3 & ! A7 |
4 | |
5 | usw. |
1 | ∧ in & UND |
2 | ∨ in # ODER |
3 | ¬ in ! NICHT |
Ich habe das mit der alten Xilinx Software probiert, passt locker rein.
1 | Design Name: prom1 Date: 8-30-2017, 8:43PM |
2 | Device Used: XC9536-7-VQ44 |
3 | Fitting Status: Successful |
4 | |
5 | **************************** Resource Summary **************************** |
6 | |
7 | Macrocells Product Terms Registers Pins Function Block |
8 | Used Used Used Used Inputs Used |
9 | 4 /36 ( 11%) 21 /180 ( 11%) 0 /36 ( 0%) 12 /34 ( 35%) 16 /72 ( 22%) |
Die Gleichungen werden auch optimiert:
1 | ; Implemented Equations. |
2 | |
3 | /O0 = "I<4>" * /"I<3>" * "I<2>" * "I<1>" * "I<5>" * "I<7>" |
4 | + "I<4>" * "I<2>" * "I<1>" * "I<0>" * "I<5>" * "I<7>" |
5 | + "I<4>" * "I<2>" * "I<1>" * "I<5>" * "I<6>" * "I<7>" |
6 | + /"I<4>" * /"I<3>" * /"I<1>" * /"I<0>" * /"I<6>" * "I<7>" |
7 | + "I<4>" * "I<3>" * "I<2>" * /"I<1>" * "I<5>" * /"I<6>" * "I<7>" |
8 | ;Imported pterms FB2_3 |
9 | + "I<2>" * /"I<0>" * /"I<5>" * "I<7>" |
10 | + /"I<1>" * /"I<0>" * /"I<5>" * "I<7>" |
11 | + "I<4>" * "I<3>" * "I<5>" * "I<6>" * /"I<7>" |
12 | + /"I<4>" * "I<2>" * "I<1>" * /"I<0>" * /"I<6>" * "I<7>" |
13 | ;Imported pterms FB2_5 |
14 | + /"I<4>" * /"I<2>" * /"I<1>" * /"I<0>" * /"I<6>" * "I<7>" |
15 | + /"I<4>" * /"I<3>" * /"I<2>" * /"I<0>" * "I<5>" * "I<6>" * "I<7>" |
16 | + /"I<4>" * "I<3>" * /"I<2>" * "I<1>" * "I<0>" * |
17 | "I<5>" * /"I<6>" * "I<7>" |
18 | |
19 | /O1 = /"I<4>" * /"I<3>" * "I<0>" * "I<5>" * "I<6>" * "I<7>" |
20 | + /"I<4>" * "I<3>" * "I<2>" * "I<0>" * "I<5>" * /"I<6>" * "I<7>" |
21 | + /"I<4>" * "I<3>" * /"I<1>" * "I<0>" * "I<5>" * /"I<6>" * "I<7>" |
22 | + "I<4>" * "I<3>" * /"I<2>" * "I<1>" * "I<0>" * |
23 | "I<5>" * /"I<6>" * "I<7>" |
24 | |
25 | /02 = "I<2>" |
26 | + /"I<7>" |
27 | + "I<4>" * "I<3>" * "I<1>" * "I<0>" * "I<5>" * /"I<6>" |
28 | |
29 | /O3 = /"I<1>" * "I<7>" |
30 | + /"I<4>" * "I<3>" * /"I<2>" * "I<0>" * "I<5>" * |
31 | /"I<6>" * "I<7>" |
Wie willst du den CPLD programmieren?
> Siehe zu, dass du ein Tool findest, das die Gleichungen weiter > reduziert. Ach, 4 KV-Diagramme sind nicht die Welt :)
pegel schrieb: > Wie willst du den CPLD programmieren? Den Baustein würde ich mit einem Flashcat USB programmieren. Oha, ich sehe, ich muss noch mehr lesen..... Hast Du die equations aus der textdatei eingefügt ?
Michael S. schrieb: > Flashcat USB Kenne ich nicht, aber wenn du mir sagst welchen Baustein du nehmen willst, wie die Pin Belegung sein soll und welche Programmdatei (jed,svf) dazu benötigt wird, könnte ich dir die geben. Michael S. schrieb: > Hast Du die equations aus der > textdatei eingefügt ? Ja, aus den Report files.
pegel schrieb: > Michael S. schrieb: >> Flashcat USB > > Kenne ich nicht, aber wenn du mir sagst welchen Baustein du nehmen > willst, wie die Pin Belegung sein soll und welche Programmdatei > (jed,svf) dazu benötigt wird, könnte ich dir die geben. > > Michael S. schrieb: >> Hast Du die equations aus der >> textdatei eingefügt ? > > Ja, aus den Report files. Wow, vielen Dank! das würde mir richtig helfen. Ich würde den XC9536XL nehmen, die Pinbelegung wäre nebensächlich, ERST einmal. Die Platine muss sowieso angepasst werden. Mich würde aber auch interessieren wie Du das genau gemacht hast, Step by Step, dann könnte ich das in Zukunft selbst machen.
Guten Morgen, wie ich schrieb habe ich die "alte Xilinx Software" verwendet. Da gab es noch so hilfreiche Mittel wie den LogiBLOX Modul Generator. Damit konnte man einfach ein ROM erstellen und die Daten einlesen. Hat aber mit Lizenz zu tun und deshalb etwas schwierig. Es ist lobenswert das du es selbst machen möchtest, deshalb ist die neue Software sicher die erste Wahl. Da ich nur alle paar Jahre noch etwas mit CPLD mache hoffe ich hier nicht vor den Profis zerrissen zu werden. Bei mir geht es nur mal um einen XC95xx(XL), deshalb reicht das WebPACK 4.2 vollkommen aus. Ist nicht so gigantisch wie die ganz Neuen und der Download ist nur 112 MB groß. Wenn du das benutzen möchtest kann ich gern weitere Tips geben. Außer wie gesagt ein Profi möchte die Leitung übernehmen.
> > Wenn du das benutzen möchtest kann ich gern weitere Tips geben. > > Außer wie gesagt ein Profi möchte die Leitung übernehmen. Vielen Dank für das Angebot! Ich werde das nachher mal installieren und mich später dazu nochmal melden. Für mich ist es das erste mal das ich mich damit beschäftige, mir fehlt das ein oder andere, aber das hole ich nach. Der versuch, das mit einem GAL zu regeln schlug leider fehl, da dieser für diesen Zweck nicht genug Kapazität hat, daher der Wechsel auf den XC9536XL. Des Weiteren finde ich CPLDs/FPGAs sehr interessant weil eben ein anderer Ansatz in der Programmierung verfolgt wird. Ich melde mich nachher nochmal, oder könnte ich dich hier irgendwie per Message kontaktieren ? Du bist als Gast angemeldet, denke das wird nicht gehen, oder ?
Ich habe eben noch mal in die 4.2 rein gesehen und muss gestehen das ich nur sehr holperig voran komme da ich mich wirklich nicht viel damit beschäftigt habe. Aber auch wenn es viel bessere als mich dafür gibt, würde ich weiter helfen wenn es mir möglich ist.
Michael S. schrieb: aber das hole ich > Der versuch, das mit einem GAL zu regeln schlug leider fehl, da > dieser für diesen Zweck nicht genug Kapazität hat, daher der Wechsel auf > den XC9536XL. der *XL ist kein richtiger 5V-Typ. ich bezweifle das du damit allein (ohne Pegelwandlung) passende C64-Elektronik nachbauen kannst. XC95* ohne XL wäre IMHO die bessere Wahl.
Bitwurschtler schrieb: > Michael S. schrieb: > aber das hole ich > >> Der versuch, das mit einem GAL zu regeln schlug leider fehl, da >> dieser für diesen Zweck nicht genug Kapazität hat, daher der Wechsel auf >> den XC9536XL. > > der *XL ist kein richtiger 5V-Typ. ich bezweifle das du damit allein > (ohne Pegelwandlung) passende C64-Elektronik nachbauen kannst. XC95* > ohne XL wäre IMHO die bessere Wahl. Ja, habe gesehen das der auf 3.3V läuft, habe beide Varianten da.
pegel schrieb: > Hast du eine WebPACK Version installiert? Bin noch auf der Arbeit, da habe ich leider nicht die Möglichkeit, kann ich leider erst heute Nachmittag/Abend.
Bitwurschtler schrieb: > der *XL ist kein richtiger 5V-Typ. ich bezweifle das du damit allein > (ohne Pegelwandlung) passende C64-Elektronik nachbauen kannst. XC95* > ohne XL wäre IMHO die bessere Wahl. XLs können nur 3V3 ausgeben, aber alle C64-Chips lassen sich damit ansteuern. Für meine Retroprojekte habe ich so schon 6510, 6526, 6581 und 6569 angesteuert. Bei den RAM/ROM-Bausteinen und beim PAL musst du nochmal in den Datasheets nachschauen. Da ich aber mal für den Expansionport eine Erweiterung zusammengebaut habe (9572XL), die auf den Speicher zugriff, müsste auch dort XLs arbeiten. Ein Problem der XL-Bausteine bleibt aber: sie brauchen eine 3V3-Speisung.
pegel schrieb: > Gut, vielleicht bis dann... Bei mir ist Hopfen und Malz verloren, ich finde nicht einmal die Software :)
Welche möchtest du denn? Bei Xilinx musst du dich erst registrieren, habe ich auch gemacht, allerdings so anonym wie hier ;)
Das webpack, wovon du oben gesprochen hast. Das aktuellste ist ja 14.7 Allerdings ist der Download etwas größer.
:
Bearbeitet durch User
https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools/archive.html Von dort habe ich die 4.2 mit SP3. Allerdings fehlt der Simulator aus Lizenzgründen. Müsste man mal sehen ob der in einer Version noch dabei ist. Habe ich nie vermisst da ich die alte Version habe, die kann ich aber nicht weitergeben.
pegel schrieb: > https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools/archive.html > > Von dort habe ich die 4.2 mit SP3. > Allerdings fehlt der Simulator aus Lizenzgründen. > Müsste man mal sehen ob der in einer Version noch dabei ist. > > Habe ich nie vermisst da ich die alte Version habe, die kann ich aber > nicht weitergeben. ich nehme mal die 4.2 sp3
Dann hast du aber keinen Simulator. Ich habe eine temporäre mail eingerichtet l1915098@mvrht.net bei Bedarf können wir die Kommunikation damit fortsetzen.
pegel schrieb: > Dann hast du aber keinen Simulator. > > Ich habe eine temporäre mail eingerichtet > > l1915098@mvrht.net > > bei Bedarf können wir die Kommunikation damit fortsetzen. hmmmh, meine mail kam zurück
pegel schrieb: > Müsste eigentlich gehen, probier noch mal. Address not found Your message wasn't delivered to l1915098@mvrht.net because the address couldn't be found. Check for typos or unnecessary spaces and try again.
Ups. "Die Website ist derzeit auf Grund von Wartungsarbeiten abgeschaltet." Die funktioniert: puqyh@mail22.club
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.