Your explanations are helping to relieve my confusion and starting to jar my memory from 3 to 4 years ago. We're getting there, so thanks for the help so far. Unfortunately, I still have questions.
Quote:
To address the first question - the timing of the Bank Address outputs - the reality is that the '816 drives those outputs as soon as it can after falling phi2. That is, they are not driven prior to the rising edge, but driven after the falling edge. It's just that (according to the worst-case figures in the datasheet), "as soon as it can" is not terribly quick, and the 30ns figure given is getting close to the 35ns minimum phi1 time. If you're not in worst case situations, and if you're running slower - say 12MHz - then the BA output might be at 20ns and the rising phi2 at 41ns or so.
Still, the processor itself controls the hold time for RWB and the address bus after the negative edge of PHI2 has elapsed... how does it "know" that 10ns has elapsed and it's "time to release the address bus, and time to tell the memory or I/O to release the data bus"? (Preliminary Answer according to
these lecture slides: buffers. Before this point in my life I've never had to design a circuit where hold time was a concern or would need to change before the next clock edge. Example- a ripple counter, provided the clock speed is reasonable- won't have these problems.)
Quote:
It may be that you momentarily confused the setup constraint on a flop's input with the clock-to-Q propagation time for its output. I know this is easily done because I've done it myself.
Indeed... and glad to know I'm not the only one who has done so.
Quote:
and a 30ns worst case clock-to-Q time (property)
I'm sorry, where is this listed? Are you talking about tBAS, which says it's 33ns? Also, If Wikipedia is to be believed,
setup time for a flip flop is the "The minimum amount of time that the bus should be stable on a flip-flop inout before the value is sampled on the clock edge".
The timing diagram in the image above seems to use setup time as "The maximum amount of time it takes for the bus to stabilize" for tBAS and tADS, and then goes and uses setup time as "The minimum amount of time that the bus should be stable before the value is sampled on the next clock edge" for tDSR. However, the datasheet appears to be consistent in this regard- since tBAS and tADS are given maximums and tDSR is only given as a minimum. I presume, that If you know one, you can calculate the other based on the half-period of PHI2. The tBAS and tADS maximums don't
appear to describe clock-to-Q times... or am I mistaken?