Page 623 - Engineering Digital Design
P. 623

12.4 SHIFT-REGISTER COUNTERS                                         593


                  ring counter of Fig. 12.32b can be expanded to an 8-bit, 1-hot ring counter by cascading
                  two USRs as in Fig. 12.7. But without parallel loading a 1-hot state, the self-correction
                  logic becomes L = BCDEFGH, a fan-in of 7 for a single gate. Thus, self-correction takes
                  place within seven clock pulses. Generally, an n-bit ring counter will self-correct within
                  n — l clock pulses. For such counters and where permitted, the CMOS NOR gate, shown
                  in Figure 8.46, is preferred since it operates free of fan-in limitations. Alternatively, any bit
                  pattern can be parallel loaded into an n-bit ring counter and circulated with self-correction.
                    The advantage of the ring counter is that it provides glitch-free decoded outputs directly
                  from the flip-flops. This means that one and only one flip-flop is active for each state of the
                  1-hot sequence. This feature can be very useful for timing sequence generation in control
                  applications. A down side to the ring counter is that it does not encode its states as efficiently
                  as binary counters — one flip-flop must be used for each state. Considered next is a type
                  of counter that can generate twice as many states as the ring counter but with only a minor
                  increase in overall hardware.

                  12.4.2 Twisted Ring Counters

                  A counter that circulates a creeping code, such as that in Column (7) of Table 2.10 in
                  Subsection 2.10.1, is called a twisted ring counter, or sometimes called a Johnson counter.
                  The "twist" aspect of this counter is created simply by interposing an inverter in the feedback
                  line of a standard ring counter or by tapping the feedback line off of the active low output
                  of the flip-flop. Shown in Fig. 12.33a is the state diagram for a 4-bit twisted ring counter
                  together with the required branching action for a USR design of this counter. The PS/NS
                  table for this counter, given in Fig. 12.33b, indicates that a left shift of A generates the next
                  state for each of the eight states in the sequence. This is shown more vividly in the K-map
                  of Fig. 12.33c for L, the left-shift serial input of a USR. Notice that all eight extraneous
                  states are assigned a don't-care symbol.
                    A USR design of this twisted-ring counter is given in Fig. 12.33d. Notice that it is initial-
                  ized into the 0000 state, which is one of eight states of the creeping code sequence. Thus,
                  once initialized the counter will cycle through the creeping code states — that is, unless the
                  unexpected occurs and the counter is caused to enter an extraneous state. To avoid this po-
                  tential problem, the counter can be made self-correcting. But to do this requires additional
                  logic, as was the case for the ring counter of Fig. 12.32b.
                    The twisted ring counter of Fig. 12.33d can be made self-correcting by making use of
                  the shift left and parallel load capability of the USR. Shown in Figs. 12.34a and 12.34b
                  are the K-maps for S 0 and L of the USR. Here, left-shifting of the eight creeping code
                  states is the same as in Fig. 12.33c, except that state 0 along with states 2, 4, and 6 are
                  parallel loaded into the 0001 state. Also, the remaining five extraneous states (0101, 1001,
                  1010, 1011, and 1101) are shifted left an A eventually to states 2, 4, or 6, where they are
                  subsequently parallel loaded into state 0001. Up to n — 1 = 3 clock pulses are necessary
                  for the self-correction of this counter shown configured with the USR in Fig. 12.34c.
                    Twisted ring counters of any size can be designed. By cascading k 4-bit USRs, a twisted
                  ring counter of 4k bits results that will sequence through 8fc creeping code states. For these
                  counters the external logic maintains the same form, namely L = A and SQ = QMSB •
                  QLSB, for self-correction. If self-correction is neglected, then So = Q as in Fig. 12.33d.
                  The advantage of the twisted ring counter over its cousin, the standard ring counter, is
                  that 2n states are generated for n flip-flops as opposed to n states for the ring counter.
   618   619   620   621   622   623   624   625   626   627   628