The FlipFlops use a significant amount of parts so the fewer, the better !
There is not much to do for the receive part but the emitter could get a little fewer latches. The initial design uses 3 latches per bit, or 24 latches (72 transistors overall). 8 latches are required for the emit buffer anyway (24T). Using a Johnson counter can create the semi-decoded system, with 5 stages or 10 states, one for each bit as well as the start and stop bits.
A binary counter would not save much because that would require 4 latches, not far from 5, and the binary decoder uses gates as well : I have covered binary selectors (MUX trees) at From XOR to MUX already and each bit requires 3 transistors in average. So it's roughly equivalent (though less delicate than Flip Flops)...
The 10 outputs of the Johnson counter will directly select one bit to output (there would be 8 ANDs and a big OR) and the Johnson counter would use the technique explained at Reduction by mirroring: the clock pulse ripples through RC cells to trigger successive pulses. This saves transistors because there is no need of a Master/Slave duplicated configuration. That's 4T per bit, or 20 for a 5-stages Johnson counter. Total (for the datapath) : 20+24=44T (including 5 complementary). The big AND/OR is not counted... There might be a need for a latch at the output to prevent spurious pulses, because the ripple will be nasty...
Oh and I recently heard about http://www.6502.org/users/dieter/uart/ :-)
Tx is "simpler" because it doesn't require synchronisation with the receiver so it's easier to start with.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.