[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [N8VEM-S100:2856] Help Programming PAL's/GAL's



Hi John,

 

It’s a long time since I’ve used GALs – but I agree they are very useful as glue logic.  I’ve been longing to step up to FPGAs and CPLDs but haven’t yet found the time to conquer the learning curve.

 

I used to use a free National Semiconductor package known as “Opal Jr” (or similar name).  The compiler was a DOS command-line tool called “eqn2jed”.  It came with some helpful tutorial/how-to files.  It should be findable on the web – it looks like it can be downloaded from this link (which I haven’t tested) -> http://www.uchobby.com/index.php/2008/03/30/gals-for-electronics-hobby/  I was able to get going with GALs using this package as my only resource.

 

If need be, I can go through some old backup disks and find eqn2jed and some sample EQN files for you.

 

The biggest problem I had with GALs was that the programmer I was using (a kit design from Elektor Electronics in the early 90s) was very fussy about which GALs it would support – some speeds, some manufacturers, etc just would not work with it (even within the 16V8 family).  So I am interested to hear whether the VP-290 is a more reliable solution.

 

Malcolm.

 

From: monahanz [mailto:mon...@vitasoft.org]
Sent: Saturday, 22 March 2014 3:32 PM
To: n8vem...@googlegroups.com
Subject: [N8VEM-S100:2856] Help Programming PAL's/GAL's

 

Has anybody in this group had experience in the past programming simple GAL’s.

 

I am a total beginner trying to work with these potentially useful chips.  While primitive today compared to FPGA’s etc.  these 20-24 pin DIP GAL16V8’s or GAL22V10’s really can simplify an S-100 board when we go to 32bit and higher CPU’s, DRAM etc.  They are readily available from the likes of Jameco for ~2$ and are completely reprogrammable.

 

I just got a Wellon VP-290 to program them.  A long story in itself, the first unit had a bad power connection.  Anyway two weeks later I actually got going.

There are two DOS style languages used to write “.JED” files to program these things.  Oldest is ABLE more recent is PALASM4.  Well documented on the web with some decent downloads. 

Both require MSDOS to run.  After much screwing around I got both to run in Windows 64bit V8.1 using DOSBox (http://www.dosbox.com/download.php?main=1) great program BTW.

 

To test the whole system (and my knowledge of PALASM) I wrote the following short program for a simple PAL/GAL16V8:-

 

;PALASM Design Description

 

;---------------------------------- Declaration Segment ------------

TITLE    xxx

PATTERN  xxx

REVISION xxx

AUTHOR   jm

COMPANY  vs

DATE     03/21/14

 

CHIP  _test1  PALCE16V8

 

;---------------------------------- PIN Declarations ---------------

PIN  2          x                                     COMBINATORIAL ;

PIN  3          y                                     COMBINATORIAL ;

PIN  4          z                                     COMBINATORIAL ;

PIN  12         a                                     COMBINATORIAL ;

PIN  13         b                                     COMBINATORIAL ;

PIN  14         c                                     COMBINATORIAL ;

PIN  15         d                                     COMBINATORIAL ;

PIN  16         e                                     COMBINATORIAL ;

PIN  17         f                                     COMBINATORIAL ;

PIN  18         g                                     COMBINATORIAL ;

PIN  19         h                                     COMBINATORIAL ;

 

;----------------------------------- Boolean Equation Segment ------

EQUATIONS

/a = /x  * /y  * /z

/b = /x  * /y  *  z

/c = /x  *  y  * /z

/d = /x  *  y  *  z

/e =  x  * /y  * /z

/f =  x  * /y  *  z

/g =  x  * y   * /z

/h =  x  * y   *  z

 

This when run through PALASM4 gave the following .JED file for the programmer.

PALASM4  PAL ASSEMBLER   - MARKET RELEASE 1.5a (8-20-92)

(C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992

 

 

TITLE   :xxx                      AUTHOR :jm                      

PATTERN :xxx                      COMPANY:vs                       

REVISION:xxx                      DATE   :03/21/14                

 

[1][1]

PAL16V8

_TEST1*

QP20*

QF2194*

G0*F0*

L0000 01110111011111111111111111111111*

L0032 00000000000000000000000000000000*

L0064 00000000000000000000000000000000*

L0096 00000000000000000000000000000000*

L0128 00000000000000000000000000000000*

L0160 00000000000000000000000000000000*

L0192 00000000000000000000000000000000*

L0224 00000000000000000000000000000000*

L0256 01110111101111111111111111111111*

L0288 00000000000000000000000000000000*

L0320 00000000000000000000000000000000*

L0352 00000000000000000000000000000000*

L0384 00000000000000000000000000000000*

L0416 00000000000000000000000000000000*

L0448 00000000000000000000000000000000*

L0480 00000000000000000000000000000000*

L0512 01111011011111111111111111111111*

L0544 00000000000000000000000000000000*

L0576 00000000000000000000000000000000*

L0608 00000000000000000000000000000000*

L0640 00000000000000000000000000000000*

L0672 00000000000000000000000000000000*

L0704 00000000000000000000000000000000*

L0736 00000000000000000000000000000000*

L0768 01111011101111111111111111111111*

L0800 00000000000000000000000000000000*

L0832 00000000000000000000000000000000*

L0864 00000000000000000000000000000000*

L0896 00000000000000000000000000000000*

L0928 00000000000000000000000000000000*

L0960 00000000000000000000000000000000*

L0992 00000000000000000000000000000000*

L1024 10110111011111111111111111111111*

L1056 00000000000000000000000000000000*

L1088 00000000000000000000000000000000*

L1120 00000000000000000000000000000000*

L1152 00000000000000000000000000000000*

L1184 00000000000000000000000000000000*

L1216 00000000000000000000000000000000*

L1248 00000000000000000000000000000000*

L1280 10110111101111111111111111111111*

L1312 00000000000000000000000000000000*

L1344 00000000000000000000000000000000*

L1376 00000000000000000000000000000000*

L1408 00000000000000000000000000000000*

L1440 00000000000000000000000000000000*

L1472 00000000000000000000000000000000*

L1504 00000000000000000000000000000000*

L1536 10111011011111111111111111111111*

L1568 00000000000000000000000000000000*

L1600 00000000000000000000000000000000*

L1632 00000000000000000000000000000000*

L1664 00000000000000000000000000000000*

L1696 00000000000000000000000000000000*

L1728 00000000000000000000000000000000*

L1760 00000000000000000000000000000000*

L1792 10111011101111111111111111111111*

L1824 00000000000000000000000000000000*

L1856 00000000000000000000000000000000*

L1888 00000000000000000000000000000000*

L1920 00000000000000000000000000000000*

L1952 00000000000000000000000000000000*

L1984 00000000000000000000000000000000*

L2016 00000000000000000000000000000000*

L2048 00000000000000000000000000000000*

L2080 00000000000000000000000000000000*

L2112 00000000000000001111111111111111*

L2144 11111111111111111111111111111111*

L2176 111111111111111110*

C2701*



0C22

 

Sorry about the detail output. There is a reason as we shall see below.

 

OK so I “burned” a Lattice GAL16V4 (or a PALACE16V8 as AMD called them) with the Wellon VP-290 and all seems to go fine.

At least it said verify OK.

 

 

 

 

 

Now the above pins should come out to be:-

        ._____    _____.

        |     \__/     |

        |  1        20 | VCC

      X |  2        19 | H

      Y |  3        18 | G

      Z |  4        17 | F

        |  5        16 | E

        |  6        15 | D

        |  7        14 | C

        |  8        13 | B

        |  9        12 | A

        | 10        11 |

        |______________|

 

When I put the chip in a test breadboard with resistor/ LED’s on A-H pulled high I find that by grounding/pulling high combinations of X, Y & Z the following combinations work:-

 

/a = /x  * /y  * /z

/b = /x  * /y  *  z

/f =  x  * /y  *  z

/g =  x  * y   * /z

/h =  x  * y   *  z

 

However to my complete surprise the following combinations never light any LED’s.

 

/c = /x  *  y  * /z

/d = /x  *  y  *  z

/e =  x  * /y  * /z

 

I’m at a total loss to understand why.

Either the software is writing the wrong code, the programmer is not reading the .JED file correct or I am somehow miss-understanding how these GAL’s should work.

 

Unfortunately I don’t understand how these .JED files are formatted so I’m not 100% sure it is correct or somehow there is a newer .JED file format the programmer requires.

 

If it helps, this is just one example of several equation files I have tried.  Never did I have success with an M-DOS ABLEJr generated .JED file v

 

Has anybody got any suggestions?

 

--
You received this message because you are subscribed to the Google Groups "N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem-s100+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.