🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: sci.electronics
Article #10949

Re: GAL tristate question

#10949
From: Juerg Stettbacher
Date: Thu, 01 Oct 1992 09:56
50 lines
2635 bytes
John Haddy (johnh@macadam.mpce.mq.edu.au) wrote:
: 
: We've relatively recently started using GAL's from Lattice in our designs. For,
: the first time, our latest project had cause to use the tri-state feature of
: 16V8's and 22V10's (i.e. having a product term control the .OE line).
: 
: We use CUPL to compile the source to a JEDEC file, and a Logical Devices ALLPRO
: to program them.
: 
: The problem is: while the pins without .OE control function perfectly, those
: which we do wish to tri-state don't seem to. 
: 
: In one case, an output should go Hi-Z when a switched input is active. However,
: the line stays permanently high, and cannot be pulled low with a resistor to
: ground. 

Hi John

The GAL 16V8 and 20V8 have output logic macrocells (OLMC). These cells can be
configured in different ways using the flags SYN, AC0, AC1(n):

   - SYN = 1, AC0 = 1, AC1 = 1: Combinational output.
     OE- not in use. Output driver controlled by a product term (from logic 
     matrix).
   - SYN = 1, AC0 = 1, AC1 = 0: Cell disabled.
   - SYN = 0, AC0 = 1, AC1 = 1: Combinational output in registered mode.
     OE- not in use for this cell. Output driver controlled by product term.
   - SYN = 0, AC0 = 1, AC1 = 0: Registered mode.
     Output driver controlled by OE- pin.
   - SYN = 1, AC0 = 0, AC1 = 0: Combinational output.
     Output driver allways active.
   - SYN = 1, AC0 = 0, AC1 = 1: Input pin.
     Output driver allways turned off.
   - SYN = 0, AC0 = 0, AC1 = 1: Input pin.
     Output driver allways turned off.
   - SYN = 0, AC0 = 0, AC1 = 0: Combinational output.
     Output driver allways turned on.

In fact there are some more differenced between the operation modes as 
described above (the pin feedback as an example). Furthermore the 8 OLMC
are not all identical. Check a data book about this.

How to program the SYN, AC0 and AC1(n) flags? Check the description of
your programming tool. (Sorry I use a different one.)
As far as I know, most tools use extentions within the pin definition
section of your source code.


Good luck
juerg at ethz switzerlan
Technical Details
Message-ID: <1992Oct1.095659.6080@bernina.ethz.ch>
Path: arc1-ca.pugleaf.net!sparky!uunet!news.univie.ac.at!chx400!bernina!isibee7!stettbac
References: <1992Sep30.224651.16459@mailhost.ocs.mq.edu.au>

Show Full Headers
Complete Article Headers
Newsgroups: sci.electronics
Path: arc1-ca.pugleaf.net!sparky!uunet!news.univie.ac.at!chx400!bernina!isibee7!stettbac
From: stettbac@isibee7 (Juerg Stettbacher)
Subject: Re: GAL tristate question
Message-ID: <1992Oct1.095659.6080@bernina.ethz.ch>
Sender: news@bernina.ethz.ch (USENET News System)
Organization: Swiss Federal Institute of Technology (ETH), Zurich, CH
X-Newsreader: TIN [version 1.1 PL6]
References: <1992Sep30.224651.16459@mailhost.ocs.mq.edu.au>
Date: Thu, 1 Oct 1992 09:56:59 GMT
Lines: 50