dev-zzo / jedisasm

JEDEC decompiler for selected SPLD devices

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JEDisasm

This tool is a JEDEC decompiler for selected SPLD devices.

The tool should run under any version of Python 3.

What's this for?

The tool allows turning a compiled or dumped SPLD fuse map, in the form of a JEDEC JESD3 file, back into a human-readable set of equations.

From this:

DD PAL16L8/A/A-2/A-4*
QP20*
QF2048*
G0*
F0*
L0     00000000000000000000000000000000*
L32    00000000000000000000000000000000*
L64    00000000000000000000000000000000*
L96    00000000000000000000000000000000*
L128   00000000000000000000000000000000*
L160   00000000000000000000000000000000*
L192   00000000000000000000000000000000*
L224   00000000000000000000000000000000*
L256   00000000000000000000000000000000*
L288   00000000000000000000000000000000*
L320   00000000000000000000000000000000*
L352   00000000000000000000000000000000*
L384   00000000000000000000000000000000*
L416   00000000000000000000000000000000*
L448   00000000000000000000000000000000*
L480   00000000000000000000000000000000*
L512   00000000000000000000000000000000*
L544   00000000000000000000000000000000*
L576   00000000000000000000000000000000*
L608   00000000000000000000000000000000*
L640   00000000000000000000000000000000*
L672   00000000000000000000000000000000*
L704   00000000000000000000000000000000*
L736   00000000000000000000000000000000*
L768   11111111111111111111111111111111*
L800   11111110111111111111111101110101*
L832   00000000000000000000000000000000*
L864   00000000000000000000000000000000*
L896   00000000000000000000000000000000*
L928   00000000000000000000000000000000*
L960   00000000000000000000000000000000*
L992   00000000000000000000000000000000*
L1024  11111111111111111111111111111111*
L1056  11111111111011111111111111111111*
L1088  10111111111111111111111111111111*
L1120  11111011111111111111111111111111*
L1152  11111111101111111111111111111111*
L1184  00000000000000000000000000000000*
L1216  00000000000000000000000000000000*
L1248  00000000000000000000000000000000*
L1280  11111111111111111111111111111111*
L1312  11111111111011111111111111111111*
L1344  10111111111111111111111111111111*
L1376  11110111011110111111111111111111*
L1408  11110111011111111011111111111111*
L1440  00000000000000000000000000000000*
L1472  00000000000000000000000000000000*
L1504  00000000000000000000000000000000*
L1536  11111111111111111111111111111111*
L1568  11111111111011111111111111111111*
L1600  01111011111111111111111111111111*
L1632  01111111011110111111111111111111*
L1664  01111111011111110111101111111111*
L1696  00000000000000000000000000000000*
L1728  00000000000000000000000000000000*
L1760  00000000000000000000000000000000*
L1792  00000000000000000000000000000000*
L1824  00000000000000000000000000000000*
L1856  00000000000000000000000000000000*
L1888  00000000000000000000000000000000*
L1920  00000000000000000000000000000000*
L1952  00000000000000000000000000000000*
L1984  00000000000000000000000000000000*
L2016  00000000000000000000000000000000*
C4203*

Into this -- with added pin names from schematics:

Pin  1 = PIN01;
Pin  2 = !AT1;
Pin  3 = !AT2;
Pin  4 = !AT3;
Pin  5 = !AT4;
Pin  6 = !AT5;
Pin  7 = !AT6;
Pin  8 = FC2;
Pin  9 = FC1;
Pin 10 = gnd;
Pin 11 = FC0;
Pin 12 = PIN12;
Pin 13 = !IPL0;
Pin 14 = !IPL1;
Pin 15 = !IPL2;
Pin 16 = !INTA;
Pin 17 = !AT0;
Pin 18 = !AS;
Pin 19 = PIN19;
Pin 20 = vcc;

INTA =
    AS & FC2 & FC1 & FC0;

IPL2 =
    AT0
  # AT1
  # AT2
  # AT3;

IPL1 =
    AT0
  # AT1
  # !AT2 & !AT3 & AT4
  # !AT2 & !AT3 & AT5;

IPL0 =
    AT0
  # !AT1 & AT2
  # !AT1 & !AT3 & AT4
  # !AT1 & !AT3 & !AT5 & AT6;

Very useful for debugging or exploring old things. :-)

Supported devices

Currently, the following devices should be supported in full:

  • GAL16V8
  • PALCE16V8
  • PAL16L8

The output is produced in CUPL compatible format.

Running the tool

Is super easy: just provide the device name (e.g. GAL16V8) and the JEDEC file name. The tool will then print out the pin assignments and equations.

You can also provide a pin name declaration file -- it should be named exactly like the JEDEC file but with the .pin extension. The file will be a text file and contain one pin name per line, gnd and vcc inclusive. Some pins can be omitted; they will be assigned an autogenerated name. Pin names, specifically inputs, can be prepended with the ! sign to let the tool know they are active low. Outputs polarity will be deduced automatically.

About

JEDEC decompiler for selected SPLD devices

License:MIT License


Languages

Language:Python 100.0%