Simple Memory Decoder GAL

Topics relating to PALs, CPLDs, FPGAs, and other PLDs used for the support or creation of 65-family processors, both hardware and HDL.
User avatar
8BIT
Posts: 1787
Joined: 30 Aug 2002
Location: Sacramento, CA
Contact:

Simple Memory Decoder GAL

Post by 8BIT »

I have come up with a simple memory decoder that can be used as a building block for computer builders.

It consists of a 24 pin 0.3" wide DIP Lattice 22V10 GAL chip programmed to provide chips selects to a 32K ROM, 32K SRAM, and four IO Devices. It will also take the RW and PHI2 pins from the 6502/65816 and produce a /OE and /WE signal for the memories.

This one chip can be used to replace several standard logic chips and also provides flexibility in assigning IO addresses.

The standard map will look like this:

Code: Select all

$0000-$01FF - RAM
$0200-$020F - IO Device #1 (16 bytes)
$0210-$021F - IO Device #2 (16 bytes)
$0220-$022F - IO Device #3 (16 bytes)
$0230-$023F - IO Device #4 (16 bytes)
$0240-$02FF - unassigned (can be externally decoded for use)
$0300-$7FFF - RAM
$8000-$FFFF - ROM
Since the device is programmable, custom maps can easily be created.

Options include adding a second RAM chip select to allow for more RAM and less ROM, i.e. 48K RAM and 16k ROM.

The propagation delay is 10ns.

Here is the pinout for the standard configuration:

Code: Select all

       --------
PHI2  |1     24| Vcc
RW    |2     23| /OE
A15   |3     22| /WE
A14   |4     21| /RAM
A13   |5     20| /ROM
A12   |6     19| /IO1
A11   |7     18| /IO2
A10   |8     17| /IO3
A9    |9     16| /IO4
A8    |10    15| A4
A7    |11    14| A5
Gnd   |12    13| A6 
       --------
If anyone is interested, I will provide a programmed chip for $6 each plus shipping.

For those with programmers, I will make the source code available soon.

Contact me for more info.

Daryl
leeeeee
In Memoriam
Posts: 347
Joined: 30 Aug 2002
Location: UK
Contact:

Post by leeeeee »

If you move the outputs to pins 15 to 22 and use pin 23 as an input then the decoder will also fit in the 20V8 device.

Lee.
User avatar
8BIT
Posts: 1787
Joined: 30 Aug 2002
Location: Sacramento, CA
Contact:

Post by 8BIT »

Good suggestion, Lee.

However, those chips will not support ANDing A15 through A4 for the IO device selects as each output can have only 8 product terms.

The 22V10 supports up to 16 product terms per output. (it varies for each output)

However, a system that could have each device occupy 256 bytes would work. i.e.,

Code: Select all

$0000 - $7FFF - RAM
$80xx - Dev 1
$81xx - Dev 2
$82xx - Dev 3
$83xx - Dev 4
$8400-$FFFF - ROM


I cannot find a 10ns Lattice 20V8. My programmer won't work with an Atmel device but does fine with the Lattice devices. Do you know of a source for Lattice 20V8's?

I'm sure they would be much cheaper.

Daryl
leeeeee
In Memoriam
Posts: 347
Joined: 30 Aug 2002
Location: UK
Contact:

Post by leeeeee »

I'd forgotten that the 20V8 only allows 8 terms but in the past I've not found it a problem if outputs can be reused (remembering the increase in propagation delay).

E.g if you have ROM as $8400 to $FFFF then by using !ROM and A15 you still have six terms for other address lines, R/W and phase 2.

Lee.
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

GALs & Their PALs

Post by BigDumbDinosaur »

8BIT wrote:
I cannot find a 10ns Lattice 20V8. My programmer won't work with an Atmel device but does fine with the Lattice devices. Do you know of a source for Lattice 20V8's?
You're probably looking for a Lattice GAL20V8C-10LJN or similar (that number is a PLCC24 package). Mouser has three in stock. However, Lattice has EOLed much of their PLD line, so act fast if you want one..
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
8BIT
Posts: 1787
Joined: 30 Aug 2002
Location: Sacramento, CA
Contact:

Post by 8BIT »

I saw that one. I want to stick to DIP packages, especially for beginners. My hope is to make available something that can help someone new get started easily, or help a more experienced user get faster clock speeds.

There are over 700 10ns DIP parts in stock for $5 in qty over 25 so I know they won't disappear tomorrow (maybe next month though).

If anyone can find a Lattice 20V8 (DIP) in qty over 25, please let me know. I would like to add those as a cheaper solution.

thanks

Daryl
User avatar
GARTHWILSON
Forum Moderator
Posts: 8773
Joined: 30 Aug 2002
Location: Southern California
Contact:

Post by GARTHWILSON »

This is exactly one of the types of things I'm excited to see coming from our new informal consortium.  Daryl, after the designs seem stable and there don't seem to be any more requests for changes, I would suggest giving them your own brand name and unique part numbers for others to refer to them to in discussions and parts recommendations.  Document them well on your website and make it easy for hobbyists doing searches to find them.
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
ElEctric_EyE
Posts: 3260
Joined: 02 Mar 2009
Location: OH, USA

Post by ElEctric_EyE »

I had the same problem with Atmel's version of the 20V8 in my G540 programmer.

-EyE
User avatar
8BIT
Posts: 1787
Joined: 30 Aug 2002
Location: Sacramento, CA
Contact:

Post by 8BIT »

I have compiled the logic for the default configuration for a 22V10.

Here is a schematic picture of the equivalent circuit:
Image

Each output will have a maximum of 10ns propagation delay from the inputs.

Daryl
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Post by BigDumbDinosaur »

8BIT wrote:
I have compiled the logic for the default configuration for a 22V10.

Here is a schematic picture of the equivalent circuit:
Image

Each output will have a maximum of 10ns propagation delay from the inputs.

Daryl
Are you going to post the ABEL or VHDL for it as well?
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
8BIT
Posts: 1787
Joined: 30 Aug 2002
Location: Sacramento, CA
Contact:

Post by 8BIT »

Yes, I just need to clean it up and add enough comments to make it easy to understand and modify.

Daryl
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Post by BigDumbDinosaur »

8BIT wrote:
If anyone can find a Lattice 20V8 (DIP) in qty over 25, please let me know. I would like to add those as a cheaper solution.
Quest Components has some 20V8s in 10 ns. Look at this.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
8BIT
Posts: 1787
Joined: 30 Aug 2002
Location: Sacramento, CA
Contact:

Post by 8BIT »

BigDumbDinosaur wrote:
8BIT wrote:
If anyone can find a Lattice 20V8 (DIP) in qty over 25, please let me know. I would like to add those as a cheaper solution.
Quest Components has some 20V8s in 10 ns. Look at this.
Thanks for the link. I'll keep those on my radar.
User avatar
8BIT
Posts: 1787
Joined: 30 Aug 2002
Location: Sacramento, CA
Contact:

Post by 8BIT »

I have completed development for the 22V10 memory decoder, now named DEC-1.

I plan to revamp my website in the next week or so, but in the mean time, here is a zip file with the source, object, and docs I have compiled.

thanks

Daryl
PontusO
Posts: 43
Joined: 22 Jul 2004
Location: Sweden
Contact:

Post by PontusO »

Daryl,

Maybe I misunderstood your statement regarding anding terms but this is as far as I know: Each product term in a 20V8 is essentially a 32-input AND gate. Allowing you to create AND equations featuring every combination of all inputs to any one of the 8 product term (OR) inputs. You should have no problems creating very complex address schemes using a 20V8 device, or a 22V10 for that matter.

Edit: Which you already knew as I could see from the source code. Never mind my comment :oops:

/Pontus
Post Reply