Author Topic: GAL16V8 and wincupl: replicate an output  (Read 1910 times)

0 Members and 1 Guest are viewing this topic.

Offline JBourkeTopic starter

  • Contributor
  • Posts: 15
  • Country: nz
GAL16V8 and wincupl: replicate an output
« on: November 28, 2020, 09:31:40 pm »
Hi all,

Just started to get my head around programmable logic so please be gentle :-) I have designed an Arduino shield that uses a GAL16V8 for address decoding logic. It all works fine but I need to add an additional output that mimics an existing one, as in out2 = out1. I can get it to work by applying the same set of out1 equations to out2 but that seems quite a waste (or am I saying something really dumb here :-) ). Any pointers are much appreciated.

John
 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 21611
  • Country: us
Re: GAL16V8 and wincupl: replicate an output
« Reply #1 on: November 28, 2020, 10:19:44 pm »
A waste of what? Isn't each output pin of a GAL hardwired to a block of logic?

Is there a particular reason you're using such an obsolete device rather than a modern CPLD?
 

Offline JBourkeTopic starter

  • Contributor
  • Posts: 15
  • Country: nz
Re: GAL16V8 and wincupl: replicate an output
« Reply #2 on: November 29, 2020, 03:43:51 am »
Good point tx, I suspected the waste argument wouldn't fly.

Yes there is a reason; the device in question is a peripheral to a vintage computer system, I want the various parts at least look like they are from that particular era. I couldn't find a suitable CPLD in the right form factor. If they still were available I would have used a PROM ;-)
 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 21611
  • Country: us
Re: GAL16V8 and wincupl: replicate an output
« Reply #3 on: November 29, 2020, 04:26:26 am »
Fair enough. Well if you've got it working then you're done. There's no reason to try to optimize it further, but if my recollection of GALs is correct you wouldn't be able to optimize it anyway since each physical output pin is hardwired to a logic block.
 

Offline gcewing

  • Regular Contributor
  • *
  • Posts: 202
  • Country: nz
Re: GAL16V8 and wincupl: replicate an output
« Reply #4 on: November 30, 2020, 05:42:42 am »
I need to add an additional output that mimics an existing one, as in out2 = out1.
If out2 = out1 always, why does it need to be a separate output?
 
The following users thanked this post: Simon_RL

Offline james_s

  • Super Contributor
  • ***
  • Posts: 21611
  • Country: us
Re: GAL16V8 and wincupl: replicate an output
« Reply #5 on: November 30, 2020, 06:28:16 am »
I need to add an additional output that mimics an existing one, as in out2 = out1.
If out2 = out1 always, why does it need to be a separate output?

I was wondering that too, but maybe it just makes the PCB layout easier? Or maybe it's a matter of drive strength?
 

Offline Moshly

  • Regular Contributor
  • *
  • Posts: 139
  • Country: au
  • What's wrong with this thing
Re: GAL16V8 and wincupl: replicate an output
« Reply #6 on: November 30, 2020, 07:26:15 am »
IF the pin is an unused output then its not wasting anything.
Just make the equation the same as the other pin.

OUTOLD   = A15 & A14 & A13;
OUTNEW   = A15 & A14 & A13;

If you make OUTNEW = OUTOLD then you will add 1 gate delay to the output.
 

Offline TomS_

  • Frequent Contributor
  • **
  • Posts: 851
  • Country: gb
Re: GAL16V8 and wincupl: replicate an output
« Reply #7 on: December 10, 2020, 08:45:25 am »
but that seems quite a waste

Its not a waste because each pin has its own dedicated product terms. You would be using one of those product terms to replicate the value of pin1 to pin2 anyway. So maybe it is more of a waste not to use as many product terms as you can.  ^-^

The difference is in the two attachments.

In one of them, you fold back the output of pin1 to the matrix and then route it out via pin 2, and in the other you simply duplicate the product term for both pins.

(edit: oops, the foldback term should have technically gone all the way back to the left side to the big circle, but you get the idea...)
« Last Edit: December 10, 2020, 09:07:51 am by TomS_ »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf