This tool is a JEDEC decompiler for selected SPLD devices (PAL16/GAL16).
Usage examples:
set JEDISASM_REGROUP=1 && python .\jedisasm.py GAL16V8 .\nucleon_video_forming_16v8.jed > .\nucleon_video_forming_16v8.pld
python .\jedisasm.py PAL16L8 .\examples\J102-U14-PAL16L8.JED > .\examples\J102-U14-PAL16L8.PLD
To compile PLD back to JED one could use free old Atmel WinCUPL.
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. :-)
Currently, the following devices should be supported in full:
- GAL16V8
- PALCE16V8
- PAL16L8
The output is produced in CUPL compatible format.
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.