6502.org
http://forum.6502.org/

Simple Memory Decoder GAL
http://forum.6502.org/viewtopic.php?f=10&t=1668
Page 1 of 4

Author:  8BIT [ Tue Oct 19, 2010 7:35 pm ]
Post subject:  Simple Memory Decoder GAL

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:
$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:
       --------
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

Author:  leeeeee [ Tue Oct 19, 2010 8:18 pm ]
Post subject: 

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.

Author:  8BIT [ Tue Oct 19, 2010 8:50 pm ]
Post subject: 

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:
$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

Author:  leeeeee [ Tue Oct 19, 2010 9:20 pm ]
Post subject: 

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.

Author:  BigDumbDinosaur [ Tue Oct 19, 2010 11:27 pm ]
Post subject:  GALs & Their PALs

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..

Author:  8BIT [ Wed Oct 20, 2010 12:31 am ]
Post subject: 

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

Author:  GARTHWILSON [ Wed Oct 20, 2010 12:43 am ]
Post subject: 

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.

Author:  ElEctric_EyE [ Wed Oct 20, 2010 12:48 am ]
Post subject: 

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

-EyE

Author:  8BIT [ Wed Oct 20, 2010 4:31 am ]
Post subject: 

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

Author:  BigDumbDinosaur [ Wed Oct 20, 2010 4:40 am ]
Post subject: 

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?

Author:  8BIT [ Wed Oct 20, 2010 4:44 am ]
Post subject: 

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

Daryl

Author:  BigDumbDinosaur [ Thu Oct 21, 2010 4:11 am ]
Post subject: 

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.

Author:  8BIT [ Thu Oct 21, 2010 5:05 am ]
Post subject: 

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.

Author:  8BIT [ Thu Oct 21, 2010 5:10 am ]
Post subject: 

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

Author:  PontusO [ Thu Oct 21, 2010 12:00 pm ]
Post subject: 

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

Page 1 of 4 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/