Paging Old But Not Dead Engineers: Programming PAL Devices

OK, I know PALs are obsolete. But I have obtained a few PAL16L8 devices and I have a ChipMax programmer that is compatible with them. It seems to want JED files (JEDEC?) to program the device. Can anyone recommend a good piece of software that can be used to program TI PAL16L8s? I have tried WinCPUL and got one definition file to compile but WinCPUL seems to want to output for Atmel devices only and I don't see JED format listed. I haven't tried PALASM 4 V1.5 yet but that is next. I see that is here: http://www.engr.uky.edu/~melham01/ee481/software.htm I think I would rather use WinCPUL. Does anyone know how to get it to output JED files for a PAL16L8? Or is there a way to do your logic in Logic Friday/Espresso and get the JEDEC from that? Wouldn't that be too damn easy... Or am I totally on the wrong track?

P.S. I was thinking about seeing if it is possible to make a 2 package 7 bit to 16 segment CA decoder. 7 bits in on each of the two packages, 8 segments each out, each does half the work. The specific part is TIBPAL16L8A. Hopefully the outputs can sink enough current to light a sement.

Thank you.

I used to use PALs, like GAL22V10, ages ago. I don't even remember what software was used anymore.
State machines too, like Philips PLUS405 type parts
http://noel.feld.cvut.cz/hw/philips/acrobat/8043.pdf

"I was thinking about seeing if it is possible to make a 2 package 7 bit to 16 segment CA decoder. "

Why? Why why why? Why?
You're going to need an array to store your fonts. Just make it an int array and shift it out to two TPIC6B585 (or 6C595 or 6D595, check prices & current requirements) open drain shift registers. Use SPI.transfer to shift it out fast.

CrossRoads:
I used to use PALs, like GAL22V10, ages ago. I don't even remember what software was used anymore.
State machines too, like Philips PLUS405 type parts
http://noel.feld.cvut.cz/hw/philips/acrobat/8043.pdf

"I was thinking about seeing if it is possible to make a 2 package 7 bit to 16 segment CA decoder. "

Why? Why why why? Why?
You're going to need an array to store your fonts. Just make it an int array and shift it out to two TPIC6B585 (or 6C595 or 6D595, check prices & current requirements) open drain shift registers. Use SPI.transfer to shift it out fast.

I get it. I just need something to implement on it. If not that, then it will be some other logic function. The point is to program the PAL and prove that it works. This would be an easy proof, a couple of hex code switches, pullups, the two PALs, a 16 segment display. Enter a 41 on the switches, get an A, enter a 5D, get a ], etc. Obviously many codes would not be able to be resolved on a 16 segment display but that is beyond the point anyway.

Part like this?

Looks like you can buy them still.

Well, good luck with it.

Many years ago there were "Standard Libraries" created by the mfr just for that purpose... Before uPorc's became so 'common' PAL's were the only answer for simple combinatorial logic, Still are but Boy how they've grown... ARM Processor cores in gate array's. I was Lazy, I did it with an Eprom and a latch... You can put a lot of Characters in a 2708 just with 8 address lines.

Doc

CrossRoads:
Part like this?
http://www.ti.com/lit/ds/symlink/pal16r8am.pdf

Specifically:

http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=PAL16L8+&langId=-1&storeId=10001&productId=28020
http://www.jameco.com/Jameco/Products/ProdDS/28020.pdf

Good for current sink - 24mA
Not so good for current source - 3.2mA

CrossRoads:
Good for current sink - 24mA
Not so good for current source - 3.2mA

I think that will do well with CA 16 segment displays. Provide +5V to the anode, use the PAL as the low side, basically active low on the outputs.

Yes.

The old tool was called "PALASM", from MMI.
It looks like its still around, in source form (Fortran !), or as a dos program that may or may not work on modern oses.

PALs are very power hungry, by modern standards.

I guess I am going to try to install PALASM, it doesn't look friendly like WinCUPL. PALASM is a DOS program installed from 5 "discs" so hopefully I can extract them into directories rather than try to install a disc drive :(. WinCUPL is friendly, but it seems to be Atmel targets only. Again, if anyone has any expertise I would love to hear about the best way to do this. Thanks.

http://www.engr.uky.edu/~melham01/ee481/software.htm

Maybe my hangup is trying to use the TI devices that I already have. WinCPUL compiles fine but only compiles for Atmel devices. One target is the Atmel ATF16V8B. This is a 90 cent device at Newark as a DIP. Maybe I should cut my losses and buy a dozen of these and just use Atmel's free (and very nice) compiler. It's the least I can do for them to help them get rid of this NOS nobody wants anyway. What say you?

There are some test files on the interwebs that compile up nicely. Pretty sure my ROM burner will work with these, the ATF16V8B is on the supported device list.

Test file:

Name Example4;
Partno example4.pld;
Date 06/01/98;
Revision 01;
Designer Bruce Hoeppner;
Company EECE143;
Assembly PLD Source Code;
Location EN365;
Device G16V8;
/*******************************************************/
/* Example program to implement the sequential circuit*/
/* in CUPL programming language using State Machines */
/* */
/* */
/*******************************************************/
/* Allowable Target Device Types: */
/*******************************************************/

/** Inputs **/
Pin 1 = clock;
Pin 2 = s; /* combinational data input */
Pin 11 = !enable;
/** Outputs **/
Pin [14..15] =[Q1..0];
Pin 19 = found; /* combinational output
*/
/** Declarations and Intermediate Variable Definitions **/
field state = [Q1..0];
$define S0 'b'00
$define S1 'b'01
$define S2 'b'10
$define S3 'b'11

/** State Machine **/
SEQUENCE state {
present S0 if s next S0;
default next S1;
present S1 if s next S2;
default next S1;
present S2 if s next S3;
default next S1;
present S3 if s next S0 out found;
default next S0;
}
/** End of example4.pld source code **/

output:

CUPL(WM)        5.0a  Serial# 60008009
Device          g16v8ms  Library DLIB-h-40-11
Created         Thu Sep 06 10:09:06 2012
Name            Example4
Partno          example4.pld
Revision        01
Date            06/01/98
Designer        Bruce Hoeppner
Company         EECE143
Assembly        PLD Source Code
Location        EN365
*QP20 
*QF2194 
*G0 
*F0 
*L00000 01111111111111111101110111111111
*L01024 11111111111111111110110111111111
*L01056 10111111111111111111111011111111
*L01280 01111111111111111110110111111111
*L01312 01111111111111111101111011111111
*L02048 10001100011001010111100001100001
*L02080 01101101011100000110110001100101
*L02112 00110100011100111111111111111111
*L02144 11111111111111111111111111111111
*L02176 111111111111111101
*C1E1E
*A5D1