Simple GAL16v8 question, please

Status
Not open for further replies.

kc9kep

Newbie level 5
Joined
May 30, 2023
Messages
8
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
66
Hello!

I'm a newbe at GAL programming.

I'm using a 16v8 gal as a simple I/O address decoder.

I used CUPL to develop the JED file.

The programmed GAL works as anticipated with one hitch ..

Pin 11 (/OE) doesn't control the outputs as I had expected. In other words, the GAL outputs always correctly decode the inputs as expected, regardless of the state of the OE pin-11.

I did not include the /OE pin in my CUPL equations because I assumed (apparently, incorrectly) that the /OE would simply operate similar to a 74ALS244 type IC.

Can someone tell me what I need to do to make the /OE pin operate? (Maybe just include /OE pin-11 in the equations?)

I'm sure the answer is obvious to someone who has done this before

Thanks
 

Hi,

decades ago I worked with GAL16V8. Are they still availbale?
(Why did you chose them? There are faster, low power, cheaper devices)

If I´m not mistaken:
* the OE path is distributed all over the chip for fast OE to OUTPUT propagation delay.
* For proper operation you need to include OE into your equations. (using the ".OE" extension)

Klaus
 

Dedicated /OE is only used in registered mode. Programmed OE function should be available in complex mode. Presume there's a respective CUPL syntax.
--- Updated ---

Yes, .OE as stated. Has to be specified for each output separately.
 

Klaus, thank you for your prompt reply! I am trying to recover (repair) a legacy system. The original used a 74S288 for a decoder :-(
 

Dedicated /OE is only used in registered mode. Programmed OE function should be available in complex mode. Presume there's a respective CUPL syntax.
--- Updated ---

Yes, .OE as stated. Has to be specified for each output separately.
Thank you for your prompt reply! I am trying to recover (repair) a legacy system. The original used a 74S288 for a decoder :-(
 

I finally got my G16V8 output-enable function to work.
It seemed that no matter where I placed the “.oe” extension in my equations, CUPL would not accept it and report an error.
Furthermore, pin 11 was always showing up as an output in the simulation.
I suspect the GAL needed to be in “register mode” but I didn't know if that would work for my simple boolean I/O decoder requirements. (I used simple “and”, “or” and inverters.)
I eventually found some data that instructed me to use the GAL16V8A for CUPL (I believe the letter “A” is for automatic implementation of registers?)
At any rate, the equations became very simple .. PIN 11 = E; ("E" for Enable) And to use it in an equation, I used "!E".
The following code is useless except for the fact that is compiles error free and the simulator shows that output-enable operates logically correctly
Thanks everyone!

Name OKTEL_2 ;
PartNo 00 ;
Date 5/30/2023 ;
Revision 01 ;
Designer Engineer ;
Company nickel electronics ;
Assembly None ;
Location ;
Device G16V8A ;

/* *************** INPUT PINS *********************/
PIN 2 = A0 ; /* */
PIN 3 = A1 ; /* */
PIN 4 = A2 ; /* */
PIN 5 = A3 ; /* */
PIN 6 = A4 ; /* */
PIN 11 = E ; /* */

/* *************** OUTPUT PINS *********************/
PIN 19 = IO_1 ; /* */
PIN 18 = IO_2 ; /* */

IO_1 = (A0 & !E);
IO_2 = (A0);
 

This doesn't look like tristate output enable as provided by original 74S288 but may serve your purpose though.
 

Hi,
I finally got my G16V8 output-enable function to work.
I don't think so.
OutputEnable switches the according output into "high impedance" state. This means it drives the pin neither LOW, nor HIGH. It doesn't drive at all. This never happens with your code. With your code the output always is a driven output.

It seemed that no matter where I placed the “.oe” extension in my equations, CUPL would not accept it and report an error.
Furthermore, pin 11 was always showing up as an output in the simulation.
Usually you would show what you have done (your code and the according error message)... so we can help you.

Furthermore, pin 11 was always showing up as an output in the simulation.
This makes no sense.
Pin11 of the GAL16V8 has not outpuut stage at all. It can be used as
* normal data input
* OE input
* or can be left unused
...never can it be an output

Klaus
 

Klaus .. yes .. agreed .. but that’s where /OE would show up in the CUPL simulator .. in the group of outputs along with my IO_1 and IO_2 outputs. Very confusing and frustrating and time consuming ..
 

Klaus .. I want you to know I appreciate your responses .. The important information that I had needed to understand is that the /OE pin *must* be included in the logic equations in order for GAL to operate.
I could go back and re-create my failed attempts and post them .. And I don't intend to be offensive, but I don't want to waist people's time, now that the circuit is working.
Would you suggest I post those unsuccessful attempts?
Thanks again ..
 

Hi,

For me: asking a serious question isn´t rude.

(But I see people here demanding that others should do their job. This may be rude.)

Klaus
 

I thought I would post some photos to show what i am doing.
First, the original hand drawn 74S288 decoder schematic, then the “new” GAL16V8 version (and, I could have integrated more gates into the new GAL), then, my equations, and finally a simulation, showing the effects of /EN going hi/low. ENA is pin-11, the pin I was having trouble with.
 

Attachments

  • IMG_1450.jpeg
    3.9 MB · Views: 136
  • IMG_1449.jpeg
    2.8 MB · Views: 153
  • IMG_1451.jpeg
    4.3 MB · Views: 160
  • IMG_1452.jpeg
    2.4 MB · Views: 141

Hi,

My comment to post#12.
This are more than 13MBytes of low quality photos.
I simply refuse to open them. They easily could be reduced to less than 1% without losing thread related informations.
Screen shot --> .PNG
Photos --> reduced to 800 pixel, --> .jpg, 30%. Online tools available.

Klaus
 

Sorry, but apparently I cannot edit my posting in order to provide ".png" versions ....
 

It's been a long long time since I used CUPL had to look for a reference on using it....
https://ece-classes.usc.edu/ee459/library/documents/CUPL_Reference.pdf

To use the enable you need to use extensions (see 1.2.4) the output enable would be controlled by an .OE extension.

The code you currently have looks like it is just driving the output low.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…