6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Nov 23, 2024 8:13 am

All times are UTC




Post new topic Reply to topic  [ 6 posts ] 
Author Message
PostPosted: Thu Aug 30, 2018 6:42 pm 
Offline
User avatar

Joined: Wed Aug 17, 2005 12:07 am
Posts: 1250
Location: Soddy-Daisy, TN USA
I've seen designs that fully qualify a memory read/write into two separate pins (/MRD and /MWR).

For example, Daryl's SBC 2.5 does this using the R/W and CLK2 inputs. That way, you avoid writing to RAM while O2 is low.

But I was wondering...if using a CPLD for memory decoding, would you still recommend putting read/write into two separate pins? Or, would making a "virtual" R/W pin be good enough?

I was thinking the virtual R/W pin could act like the normal R/W but this one would be controlled by the CPLD. In fact, could you not use a global clock for PH2 and another global clock for R/W? That way, the CPLD would only need one I/O pin for the new R/W.

Thanks for any tips.

_________________
Cat; the other white meat.


Top
 Profile  
Reply with quote  
PostPosted: Thu Aug 30, 2018 7:06 pm 
Offline
User avatar

Joined: Tue Oct 25, 2016 8:56 pm
Posts: 362
You could setup your CPLD to do the address decoding, but qualify the ~CE outputs by PHI2. Then the inputs on your RAM (etc) could be arranged ~RE -> Ground, ~WE -> R/~W, assuming that your RAM chip's ~WE overrides ~RE, which in my experience they usually do. This would indeed save you a three pins on your CPLD - since you wouldn't need an R/~W in, nor ~RE & ~WE out.

The main downside is that most RAMs and ROMs i've seen take less time for their output to settle from ~RE/~WE than they do from ~C,E so, depending on your clock speed, it can be advantageous to allow ~CE to go low whilst PHI2 is still low, so that the RAM has maximum time to respond to the ~CE. This means your minimum access time becomes the RE/WE-to-valid time rather than the CE-to-valid time.

_________________
Want to design a PCB for your project? I strongly recommend KiCad. Its free, its multiplatform, and its easy to learn!
Also, I maintain KiCad libraries of Retro Computing and Arduino components you might find useful.


Top
 Profile  
Reply with quote  
PostPosted: Thu Aug 30, 2018 7:10 pm 
Offline
User avatar

Joined: Tue Mar 05, 2013 4:31 am
Posts: 1385
I used an Atmel ATF22V10CQZ as a single glue logic chip in my last SBC project. It handled address decoding for RAM, EEPROM and 5- 32-byte wide I/O selects... plus qualified /MRD and /MWR signals based on the CPU CLK and R/W as inputs. I used a NXP UART for console/timer, which has separate /RD and /WR signals, so separate signals are requred. I used the same (signals) for RAM, EEPROM (with a write protect jumper) and the UART. I also have these signals on the expansion bus connector for additional I/O devices.

_________________
Regards, KM
https://github.com/floobydust


Top
 Profile  
Reply with quote  
PostPosted: Thu Aug 30, 2018 7:43 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8507
Location: Midwestern USA
Alarm Siren wrote:
You could setup your CPLD to do the address decoding, but qualify the ~CE outputs by PHI2.

Qualifying /CE with Ø2 is not a recommended practice. For best performance, reads and writes should be the only thing qualified with Ø2.

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


Top
 Profile  
Reply with quote  
PostPosted: Fri Aug 31, 2018 6:23 am 
Offline
User avatar

Joined: Tue Oct 25, 2016 8:56 pm
Posts: 362
BigDumbDinosaur wrote:
Alarm Siren wrote:
You could setup your CPLD to do the address decoding, but qualify the ~CE outputs by PHI2.

Qualifying /CE with Ø2 is not a recommended practice. For best performance, reads and writes should be the only thing qualified with Ø2.

I did explain that point in the rest of my post, nevertheless it is possible.

_________________
Want to design a PCB for your project? I strongly recommend KiCad. Its free, its multiplatform, and its easy to learn!
Also, I maintain KiCad libraries of Retro Computing and Arduino components you might find useful.


Top
 Profile  
Reply with quote  
PostPosted: Sat Sep 01, 2018 5:11 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8507
Location: Midwestern USA
Alarm Siren wrote:
BigDumbDinosaur wrote:
Alarm Siren wrote:
You could setup your CPLD to do the address decoding, but qualify the ~CE outputs by PHI2.

Qualifying /CE with Ø2 is not a recommended practice. For best performance, reads and writes should be the only thing qualified with Ø2.

I did explain that point in the rest of my post, nevertheless it is possible.

Doing a swan dive off a high voltage tower is possible as well, and also not recommended. :D

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


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 7 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:  
cron