Alright, I have a few questions and suggestions. I'll begin with one that's fairly minor. Would it be acceptable to replace the oscillator with one that's half the frequency -- IOW, go from 28 Mhz (approx) to 14 MHz? That'd mean your CLK14 signal would be taken from the oscillator, not from one of the 'HC4040 counter outputs.
What is driven by CLK14? It would end up with the same duty cycle as the osc. -- ie,
roughly 50:50 but not necessarily
exactly 50:50. Do you know if that would matter? As you may've guessed, I'd like to replace the 'HC4040 divider circuit. Some sort of
synchronous divider will be more appropriate than using a 4040
ripple counter, whose outputs don't change in unison. And, more options become available if the new divider doesn't have to supply CVLK14, only CLK7 and CLK3.5.
Quote:
Initially I just gated !RWB with Phi2 to generate a write-enable, but later found that cutting it to only the first half gave me more timing leeway on level-sensitive logic.
Okay, there are various ways of shortening write-enable so it only occupies the first half of the Phi2-high period. But shortening write-enable may not be necessary if you can instead find a way to shift its phase somewhat so the trailing edge happens a tad sooner, relative to CLK3.5 aka Phi2. Here are some options for that:
Attachment:
gating mod01.png [ 29.78 KiB | Viewed 1316 times ]
At "A" you could reduce the propagation delay substantially by replacing each AND-plus-Inverter with a NAND. And/or you could use AHC series parts here instead of HC -- this is something you could easily test, as the chips are socketed.
Another way to delay the phase somewhat is to break the circuit at "B" and insert two inverters or a single non-inverting gate such as AND or OR. And (although I didn't show this) it's not only the CPU that'd get the delayed phase; the VIA would, too, and really everything using Clk3.5
except the tinted area at A.
BTW, no matter how you derive the Phi2 sent to the CPU, it's best to have abrupt rise/fall times there. It's far from ideal that you're presently using an HC series device (the 4040) to drive the CPU's Phi2 input... and
also driving the VIA Phi2 input and some other stuff!
An AC series device would do a far better job of driving all that, but a few simple caveats apply when using AC. If you prefer to stick with HC -- not really
recommended, but you have, after all, gotten things working!
-- then I suggest you dedicate one HC output whose only job is to drive the CPU -- nothing else. Probably the VIA could also benefit from this treatment for its Phi2 input. In both cases Phi2 is interpreted with significance attached to rising/falling edges. In contrast, abrupt rise/fall times aren't as important for those logic inputs which are merely level sensitive.
-- Jeff