6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Thu Nov 21, 2024 11:21 pm

All times are UTC




Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: Wed Jul 12, 2023 9:58 am 
Offline
User avatar

Joined: Mon Aug 30, 2021 11:52 am
Posts: 287
Location: South Africa
A question prompted by Garth's comment in the Newbie forum:
GARTHWILSON wrote:
On the '816, there's the matter of data-bus contention.  A '245 on the data bus will prevent this, although it, too, needs to enable its outputs only when Φ2 is high.  It takes care of the possibility that something else on the bus whose OE\'s are gated by Φ2 don't turn off soon enough when the '816 tries to put the bank address out on the bus, or the possibility of something out there responding with data before the '816 quits asserting the bank address.  Jeff's excellent topic is at viewtopic.php?f=4&t=2438 .
And Jeff's linked topic "Managing the 65816 multiplexed bus".

Once PHI2 is brought low does the '816 not drive the data bus for the next 10ns after?

The datasheet would seem to say it does not as the the Read Data Hold Time runs 10ns into the new cycle. Jeff's topic agrees but is there a measurable answer?
Attachment:
Read Data Hold Time.png
Read Data Hold Time.png [ 155.86 KiB | Viewed 431 times ]
My own adventures show that the address bus is driven to the new address within about 10ns. So then does that imply the bank address driven onto the data bus in a similar time?

Cheers,
Andrew


Top
 Profile  
Reply with quote  
PostPosted: Wed Jul 12, 2023 11:55 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10985
Location: England
I would expect the data and address outputs to be driven at pretty much the same time - if they have different loading then they may respond at different rates.

I think you know this, but note that "read data hold time" is the requirement on other chips, during a read cycle, not to change the logical value on the bus until 10ns after the clock falls. In practice, such chips will have a chip enable or output enable which will go low as a function of the address decoding and/or the clock, and may stop driving sooner or later than this. As a bus won't spontaneously change rapidly when no longer driven, what's usually the important point is that no other driver is enabled too soon after the clock falls.


Top
 Profile  
Reply with quote  
PostPosted: Wed Jul 12, 2023 1:12 pm 
Offline
User avatar

Joined: Fri Dec 11, 2009 3:50 pm
Posts: 3367
Location: Ontario, Canada
Hi, Andrew. Figure 4-1 (which you included in your post) shows the last portion of one cycle and the entirety of the cycle that follows.

The third trace from the top illustrates data bus activity during read cycles. We see read data from the mobo's memory or IO, which we expect to cease driving soon after Phi2 falls. (But not too soon, as we'll see.) Shortly thereafter, the '816 begins driving, applying the Bank Address onto the bus.

The fourth trace from the top illustrates data bus activity during write cycles. We see write data from the '816; then, shortly after Phi2 falls, the '816 continues driving but a transition occurs, and eventually it is a valid Bank Address that appears.

Quote:
Once PHI2 is brought low does the '816 not drive the data bus for the next 10ns after?

The datasheet would seem to say it does not as the the Read Data Hold Time runs 10ns into the new cycle.

You've annotated the read data trace, and yet your question asks about the '816 driving. For a read cycle, the '816 doesn't drive data on the bus; the mobo does! So, I'm not sure I understand the question.

The mobo is expected to maintain read data on the bus for at least 10 ns after Phi2 falls; that's what the tDHR spec is expressing. Hope this helps,

-- 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: Wed Jul 12, 2023 2:15 pm 
Offline
User avatar

Joined: Mon Aug 30, 2021 11:52 am
Posts: 287
Location: South Africa
BigEd wrote:
note that "read data hold time" is the requirement on other chips, during a read cycle, not to change the logical value on the bus until 10ns after the clock falls.
That's what got me thinking; I thought I didn't respect tDHR and just and disabled the SRAMs /OE by NANDing RWB and PHI2 together. I didn't. I did something worse. I left the SRAM /OE active the entire time RWB was high (with /CS tied to GND). Ouch.

Dr Jefyll wrote:
You've annotated the read data trace, and yet your question asks about the '816 driving. For a read cycle, the '816 doesn't drive data on the bus; the mobo does!
Yup, that's my question. During a read does the '816 drive the bank address onto the data pins immediately after tDHR (even if it's the old BA from the previous cycle). Or do the data pins stay high impedance (from the read) until the BA is valid?

Reflecting after typing this out it must be the second. Why would WDC put effort into driving the 'garbage' onto the data pins after a read and then later change that to the correct BA? They wouldn't, they'd just be causing a potential bus collision for a reason that only exists in my own head.

Thanks for the replies! You've cleared up my thoughts.


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

All times are UTC


Who is online

Users browsing this forum: Google [Bot] and 43 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: