GARTHWILSON wrote:
akohlbecker wrote:
Unfortunately, the 65C816 requires an AC chip for at least the bank address latching as well as the associated logic, as the timing margin is pretty thin (10ns to latch after rising edge of clock).
The 74HC573's required input data hold time is guaranteed to be no more than 5ns, and 2ns is typical. My 74AC data book is not clear on this, but it appears to be saying that the data input could even start to change up to a whole nanosecond before the latch enable, and it would still keep the right value at the output.
We must be looking at a different datasheet. TI's one here
https://www.ti.com/lit/ds/symlink/cd74hc573.pdf specifies 10ns for the hold time over temperature at 5V. It could work if your LE signal is directly taken from a clock flip-flop and you have no additional logic for it (ie you don't use RDY)
GARTHWILSON wrote:
Quote:
For the RAM, go with a slow, 55ns one before attempting to increase the speed.
I think what we're talking about here is output edge rate, rather than access time. They're two separate things. Without looking through a lot of data sheets again, I don't remember ever seeing the output edge rates specified on SRAMs. Have you?
BigDumbDinosaur wrote:
Why? The RAM's speed has nothing to do with circuit performance, unless the RAM is too slow. With most SRAM, output transition rate has little relation to the speed rating.
I guess I made a shortcut here, to me an 62256 that goes to max 55ns must be of an older generation and thus have slower edges than the 71256SA that goes to 12ns, but you're right it is not technically specified.
BigDumbDinosaur wrote:
No pullup resistor is required on RWB, as that output is driven in both directions—it's not an open-collector output.[/color]
It is useful if you use Bus Enable as this pin is tri-stated, but not required.
BigDumbDinosaur wrote:
Quote:
Having VDA, VPA be a part of the address decoding works but I would argue it is better to incorporate it into the read-write pulses.
No sir!
VDA and/or
VPA is/are asserted midway during Ø2 low. At that time, the 816 will drive the data bus with the bank bits. Just how would using either/both of those signals to qualify read/write be helpful?
Asserting
/RD during Ø2 low will cause severe data bus contention, making the system unstable at best, and DOA at worst. Asserting
/WD during Ø2 low will create an opportunity for a wild write due to insufficient address bus setup time. During a write cycle,
RWB goes low (according to the timing diagram) when
VDA and/or
VPA is/are asserted. However, that doesn't mean the rest of the hardware has “settled” following address bus setup. Also, asserting
/WD before the rise of the clock means you are momentarily writing the bank bits to the addressed device, which is probably not a good idea.
Either reading and writing must be qualified with Ø2 or in lieu of such qualification, a bus transceiver must be used to isolate RAM, ROM and I/O hardware from the data bus whilst Ø2 is low. The “ideal” configuration is qualification with Ø2, along with a bus transceiver to deal with a small window of opportunity for contention to occur as the 816 “turns around” the data bus during a read cycle.
Caveat: nothing going to 65xx peripherals, e.g., 65C22, should be qualified by Ø2. Those devices “understand” the 65xx bus cycle and won't try to read or write during Ø2 low. In an 816 system, use of (as a minimum)
VDA to qualify addresses to 65xx silicon is sufficient to avoid timing contretemps. Absolutely do not qualify addresses with Ø2. You’ll be disappointed with the results.
Never said anything about not qualifying them with the clock also
Here is my circuit simulation for read/write pulses (with VA here being VDA OR VPA).
Attachment:
Screenshot 2022-02-27 at 08.39.03.png [ 432.58 KiB | Viewed 822 times ]