6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Sep 21, 2024 11:48 am

All times are UTC




Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Mon May 24, 2021 9:12 am 
Offline
User avatar

Joined: Fri Dec 12, 2003 7:22 am
Posts: 259
Location: Heerlen, NL
I just ordered a PCB of my first own 65816 project. It has 1 MB of SRAM on board and I'm still working on its BIOS. But I'm thinking of the future already where I could need more than 1 MB of RAM. I came up with three possibilities and of two I have no idea if they would work:
1) Up to 30 512K*8 SRAM ICs. I don't see why this shouldn't work. Just the amount of ICs needed.
2) I have some old 5V 16 MB EDO-DRAMs laying around. But a kind of refresh circuit would be needed.
3) Is there any bigger 3V3 SRAM around? Being a real 5V addict I never had a good look at this type of RAM so I simply don't know.
Any pointer is welcome, thank you in advance!

_________________
Code:
    ___
   / __|__
  / /  |_/     Groetjes, Ruud
  \ \__|_\
   \___|       URL: www.baltissen.org



Top
 Profile  
Reply with quote  
PostPosted: Mon May 24, 2021 9:18 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8510
Location: Southern California
In 3.3V you can get 2Mx8 (last I looked). I think 512Kx8 is the densest in 5V, at least without going to BGA. My 4Mx8 SRAM 10ns 5V modules put four 512Kx8 ICs in SOJ on each side. See the front page of my site.

_________________
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?


Top
 Profile  
Reply with quote  
PostPosted: Mon May 24, 2021 2:19 pm 
Offline
User avatar

Joined: Fri Dec 11, 2009 3:50 pm
Posts: 3367
Location: Ontario, Canada
Ruud wrote:
Any pointer is welcome, thank you in advance!

I find the parts search function on the Digikey website to be substantially better than any other I've seen. I suggest you use it to evaluate the RAM that's out there (even if you don't plan to purchase from them).

BTW: I have the same advice for anyone else, searching for any kind of chip. Be sure to run your requirements through the filters on Digikey. There's a good chance you'll find parts which you had no idea existed.

-- Jeff

_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html


Top
 Profile  
Reply with quote  
PostPosted: Mon May 24, 2021 7:35 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8390
Location: Midwestern USA
Alliance makes a 2MB SRAM, but it's relatively slow and comes only in TSSOP and BGA.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Mon May 24, 2021 7:36 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8390
Location: Midwestern USA
Dr Jefyll wrote:
Be sure to run your requirements through the filters on Digikey. There's a good chance you'll find parts which you had no idea existed.

Ditto with Mouser. In both cases, punching in "SRAM" produced over 20,000 potential products.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Tue May 25, 2021 9:13 am 
Offline

Joined: Mon Sep 14, 2015 8:50 pm
Posts: 110
Location: Virginia USA
Here's a listing of Alliance memory products:

https://www.alliancememory.com/products ... ous-srams/

Cheers,
Andy


Top
 Profile  
Reply with quote  
PostPosted: Tue May 25, 2021 11:26 am 
Offline

Joined: Fri Dec 21, 2018 1:05 am
Posts: 1108
Location: Albuquerque NM USA
Ruud wrote:
2) I have some old 5V 16 MB EDO-DRAMs laying around. But a kind of refresh circuit would be needed.

DRAM controller can be implemented in CPLD to interface to 16MB SIMM stick which are cheaply available used. The biggest drawback is the top speed of CPU is limited to about 8Mhz with the common 60ns SIMM.
Bill


Top
 Profile  
Reply with quote  
PostPosted: Tue May 25, 2021 12:16 pm 
Offline
User avatar

Joined: Fri Dec 12, 2003 7:22 am
Posts: 259
Location: Heerlen, NL
Thank you all for your help!

_________________
Code:
    ___
   / __|__
  / /  |_/     Groetjes, Ruud
  \ \__|_\
   \___|       URL: www.baltissen.org



Top
 Profile  
Reply with quote  
PostPosted: Tue May 25, 2021 12:58 pm 
Offline
User avatar

Joined: Wed Feb 14, 2018 2:33 pm
Posts: 1467
Location: Scotland
Ruud wrote:
I just ordered a PCB of my first own 65816 project. It has 1 MB of SRAM on board and I'm still working on its BIOS. But I'm thinking of the future already where I could need more than 1 MB of RAM. I came up with three possibilities and of two I have no idea if they would work:
1) Up to 30 512K*8 SRAM ICs. I don't see why this shouldn't work. Just the amount of ICs needed.
2) I have some old 5V 16 MB EDO-DRAMs laying around. But a kind of refresh circuit would be needed.
3) Is there any bigger 3V3 SRAM around? Being a real 5V addict I never had a good look at this type of RAM so I simply don't know.
Any pointer is welcome, thank you in advance!


I'm just curious about your planned use for all that RAM, although I have to say there is one application where the 512KB of RAM I have in my Ruby816 board just isn't enough - it's also not at all fast when doing what it needs with all that RAM (compiling the compiler) and my system is running at 16Mhz...

This is your ATX board, I presume? It might make a good platform for my Ruby BCPL OS, but at 4Mhz.. Yet, I know that if I had my system able to edit and compile code back in the early 80's, even at 4Mhz I'd be happy, but today even at Ruby's 16Mhz it's sometimes frustrating!

Cheers,

-Gordon

_________________
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/


Top
 Profile  
Reply with quote  
PostPosted: Tue May 25, 2021 4:55 pm 
Offline
User avatar

Joined: Sat Sep 29, 2012 10:15 pm
Posts: 899
Placing 30 SRAM chips on a PCB is doable but requires a little planning:
* Decoder needs to be fast;
* Drive characteristics need to be considered, possibly need transceivers;
* decoupling and termination of the substantial bus

_________________
In theory, there is no difference between theory and practice. In practice, there is. ...Jan van de Snepscheut


Top
 Profile  
Reply with quote  
PostPosted: Tue May 25, 2021 5:31 pm 
Offline
User avatar

Joined: Wed Feb 14, 2018 2:33 pm
Posts: 1467
Location: Scotland
enso wrote:
Placing 30 SRAM chips on a PCB is doable but requires a little planning:
* Decoder needs to be fast;
* Drive characteristics need to be considered, possibly need transceivers;
* decoupling and termination of the substantial bus


Vertically stack them and bring out the select signals...or 3 stacks of 10, etc.

I'd insert a ;-) here but it's been done - although I only vertically stacked 2 myself...

-Gordon

_________________
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/


Top
 Profile  
Reply with quote  
PostPosted: Wed May 26, 2021 7:32 pm 
Offline
User avatar

Joined: Fri Dec 11, 2009 3:50 pm
Posts: 3367
Location: Ontario, Canada
Regarding very large SRAM arrays for '816, here are some ideas I was doodling with a few years back. Details could vary, but I'll explain the principles I had in mind.

Attachment:
'816 16-MB scheme v0.1.png
'816 16-MB scheme v0.1.png [ 24.16 KiB | Viewed 836 times ]

I consider speed a priority, and there are 32 half-megabyte RAM chips. We could drive the 32 chip selects from the outputs of four '138 decoders, then put another decoder upstream to select one of the four, but that'd be unacceptably slow. Instead, I relied heavily on the 1G series of single gates (which I talk more about here). The defining feature of these little guys is their speed -- the maximum prop delays are only about 3 ns. :shock:

I used two address latches to capture the Bank Address, one that inverts and one that doesn't. Thus, without resorting to putting inverters in the path, we have both active-low and active-high versions of A23-A16 available. And a three-input 1G gate can use the true and inverted address lines to pick out a space that's one-eighth of the total amount... all in just a few ns !

One-eighth is still too coarse, and it means there'll always be a row of four chips which all get a Chip Select at once. But you'll notice WE and OE are directed only to the appropriate column of IC's. There'll still be some power wasted by the three IC's which are selected but not accessed. It's a tradeoff of this particular implementation of the row/column approach... but OTOH it's the row/column approach which lets us avoid a "slow as molasses" cascade of 138's.

The address inputs of all 32 RAM's are connected in parallel, which unfortunately adds up to a substantial capacitive load. I don't know of a good remedy for that, but I have shown an alternative to having the data IO pins of all 32 RAM's connected in parallel.

It's optional. The decision to split the bus and include two '245 transceivers (as shown) isn't baked in -- you could use 1, 2 or 4 transceivers. By splitting the bus and using 2 or 4 you increase the chip count somewhat but you reduce by 1/2 or 3/4 the bus capacitance that needs to be charged and discharged each cycle. Reduced capacitance improves speed and reduces power consumption and the effects of ground bounce in the system. (Speaking of ground bounce: with a large memory array you REALLY don't wanna use an '816 that's in DIP. Choose an alternative package -- one that has multiple ground and power pins.)

Then there's the matter of decoding IO addresses (see diagram below). Once again I've used the tiny, 3-input gates, as they can triple the input capability of a '138 or '521 and there's minimal added delay (3 ns). As drawn, the logic wants all of its inputs to be zero, but you can easily customize to detect other addresses.

You'll notice in the diagram above that the IO-SPACE\ signal doesn't prevent Chip Select from reaching the RAM chips. Instead it merely prevents OE from being issued, and that means the decoder timing margin is favorable (because in any case OE won't try to go true until PHI2 rises).

I've made no provision for ROM access. That's partly because I ran out of time, but also because I think it's better to use a Blind Loader or similar scheme which simply initializes RAM at powerup and before the full clock rate is applied. I'll add some links to loaders later.

Regarding the splitting the bus and using more than one '245: probably you'll connect your IO devices to one of the two (or four) sub-buses. The alternative is to connect the IO to its own '245 attaching to AD7-AD0. (Or connect the IO directly to AD7-AD0, but the '245 approach is more forgiving.)

Something else I overlooked re multiple 245's is the concern that a RAM data bus could float to invalid levels (thus increasing power consumption) if left un-accessed for too long. Maybe I worry too much. :roll: But as a solution you could either install bus-hold devices or re-jig things so it's A0 (not A23) which selects between the buses. Then then you'd be almost certain that neither could remain un-accessed for too long.

BTW, when mixing modern TTL-output-level RAM's with WDC CPU's always remember to use a"T" variant (such as 74ACT) for your 245's.

-- Jeff

Attachment:
'816 IO-decode.png
'816 IO-decode.png [ 9.35 KiB | Viewed 885 times ]

_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html


Last edited by Dr Jefyll on Thu May 27, 2021 3:44 am, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Wed May 26, 2021 9:07 pm 
Offline
User avatar

Joined: Sat Sep 29, 2012 10:15 pm
Posts: 899
Thank you, DrJefyll. The 1Gs are very curious devices.

I am looking forward to your update on loaders, especially your progress with the really minimal ones. I agree that the key to a fast 65xx(x) system is getting rid of ROM altogether.

_________________
In theory, there is no difference between theory and practice. In practice, there is. ...Jan van de Snepscheut


Top
 Profile  
Reply with quote  
PostPosted: Thu May 27, 2021 6:07 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8390
Location: Midwestern USA
enso wrote:
Thank you, DrJefyll. The 1Gs are very curious devices.

The 1Gs are also tiny. The largest package in that series offered by TI is SOT-23, which has a 0.65mm (0.0256") pin spacing, about 1/2 the spacing of an SOIC package. Good luck with manually soldering that.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Thu May 27, 2021 6:28 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8510
Location: Southern California
BigDumbDinosaur wrote:
enso wrote:
Thank you, DrJefyll. The 1Gs are very curious devices.

The 1Gs are also tiny. The largest package in that series offered by TI is SOT-23, which has a 0.65mm (0.0256") pin spacing, about 1/2 the spacing of an SOIC package. Good luck with manually soldering that.

Actually they're .95mm, or .0374" pin spacing, so not quite as bad.


Attachments:
SOT23-5pkgOutline.gif
SOT23-5pkgOutline.gif [ 34.89 KiB | Viewed 830 times ]

_________________
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?
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 37 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: