82S129 mit XC9536 "nachbauen"

OP #5126963
Lesenswert?

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
OP #5127012
Lesenswert?

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 ?
OP #5127027
Lesenswert?

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.
Angehängte Dateien:
#5127044
Lesenswert?

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.
OP #5127071
Lesenswert?

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....
Angehängte Dateien:
Gast #5127079
Lesenswert?

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.
OP #5127161
Lesenswert?

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.....
OP #5127174
Lesenswert?

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 :)
Gast #5127589
Lesenswert?

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
Gast #5127606
Lesenswert?

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
Gast #5127666
Lesenswert?

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
Gast #5127674
Lesenswert?

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?
OP #5128037
Lesenswert?

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.
Gast #5128065
Lesenswert?

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.
OP #5128111
Lesenswert?

>
> 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 ?
Gast #5128123
Lesenswert?

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.
Gast #5128358
Lesenswert?

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.
OP #5128370
Lesenswert?

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.
Gast #5128413
Lesenswert?

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.
OP #5128966
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren