In this thread I'll share some thoughts on various ways to capture a 65816's Bank Address bits (A23 - A16). The conventional solution -- a 74xx373 (or '573) octal transparent latch -- is certainly workable. However, minor (or not-so-minor) variations will sometimes be a better fit for prevailing priorities and circumstances.
Attachment:
conventional latch.png [ 3.76 KiB | Viewed 3583 times ]
I'll begin with a minor variation. The diagram above shows the area of interest in a hypothetical '816 system. But if your plans don't include 16 MB of memory then you can save some PCB real estate by capturing only as many bank bits as you need. Three, two or perhaps even as few as one 1-bit latches (such as 74LVC1G373) may suffice for the job. And, as the photo below shows, the 1G devices are real space savers, even when a breakout board is used. (I talk about the "1G" series of tiny, 6-pin SMD devices
here.)
Attachment:
IMG_2756CrpTchLores.JPG [ 82.4 KiB | Viewed 2946 times ]
Attachment:
counter 'latch'.png [ 2.66 KiB | Viewed 3583 times ]
Shown above is another alternative to a '373/'573. Although the '190, '192, '193 etc aren't usually described as 4-bit latches they nevertheless can function as such (just tie the count and reset inputs to their inactive states).
One potential advantage is the slightly smaller package (16-pin, as opposed to 20 for a '373). Also notable is the polarity of the control input. Unlike a '373 or '1G373, the counter doesn't require an inverted version of PHI2. Sometimes that detail will hardly matter. But in other cases an inverter may not be available, or its prop delay may be deemed objectionable.
Speaking of the polarity of the control input, a '157 or '257 4-bit mux can also serve as a 4-bit latch, and you can have whichever polarity you prefer! As shown below, one set of inputs accepts new data and the other set recirculates what already appears on the chip's own outputs. I'm intrigued by this idea, and feel sure it is viable. However, I don't know how it could be
guaranteed to be reliable, given the limited detail in published specs. The necessary info simply isn't included.
Attachment:
157-257 'latch'.png [ 6.71 KiB | Viewed 2946 times ]
Using FET Switches and Tristate Buffers as LatchesThe scheme shown below bears consideration by anyone intent on running the '816
as fast as it can possibly run! Attachment:
tristate 'latch'.png [ 2.49 KiB | Viewed 3583 times ]
Whereas a conventional latch causes the Bank Address to be delayed according to the latch's propagation delay, the FET switch incurs only a tiny (usually sub-ns
) RC delay based on the ON Resistance of the FET and the capacitance of the load. Getting the Bank Address out sooner means the attached devices (eg: decoders and memory) can respond sooner, which may allow you to boost the clock rate. (Or instead you may wish to spend the extra timing margin by switching to slower, cheaper RAM's.)
As noted, the Bank bits miraculously travel through the FET switch with near-zero delay. We could wish the switch's OE input also acted instantly; but this isn't the case -- it is subject to conventional prop delays. However, this shouldn't be seen as a point against the FET approach. You'll be obliged to account for some sort of enable delay no matter what kind of latch you use. The "win" with the FET switch is getting the Bank Address out sooner.
As drawn, the circuit relies on the capacitance of the attached devices to maintain the Bank Address bits during the clock-high period -- presumably just a fraction of a microsecond. But if clock stopping is a requirement then you can consider attaching a 74ACT1071 or other bus-hold device to indefinitely maintain the bits. Here's a datasheet for the '1071, a 10-bit device. Its cousin the '1073 is 16-bit. (Be aware that, by design, these devices drive the bus weakly. They're not appropriate when significant DC loading is present.)
Attachment:
74act1071 10-bit bus-hold.pdf [483.31 KiB]
Downloaded 102 times
And here's a datasheet for one octal FET bus switch product. Other offerings include 74cb3t3245 and 74cbtlv3245, to name just a couple.
Attachment:
74cbt3245c.pdf [893.93 KiB]
Downloaded 108 times
Changing topic slightly, the bus-capacitance scheme will also work if the FET switch is replaced with an ordinary tri-state buffer (eg: 74xx244). Obviously the benefit of near-zero delay is lost, but the idea could be handy in an emergency. Maybe it's the weekend and you wanna quickly hack something together using only the stuff you already have on hand...
The point mentioned earlier about control signal polarity bears further discussion, but I won't go into detail in this post. Instead I'll simply point out that there may be drawbacks when an inverted clock signal ( /PHI2 ) is required.
-- Jeff