Page 144 - Bebop to The Boolean Boogie An Unconventional Guide to Electronics Fundamentals, Components, and Processes
P. 144

Using Primitive Logic Functions to Build More Complex Functions   125
                                                                                         4. PI
                                                                                         4 [I1
                                   I                  I  I




















                                    Figure 11-19. SIP0 shift register


            value that used to be in dff[l]  is loaded into dff[Z],  and the value that used to be
            in dff [Z] is loaded into dff [3].
               This may seem a bit weird and wonderful the first time you see it, but the
            way in which this works is actually quite simple (and of  course capriciously
            cunning). Each flip-flop exhibits a delay between seeing an active edge on its
            clock input and the ensuing response on its s, output. These delays provide
            sufficient time for the next flip-flop in the chain to load the value from the
            previous stage before that value changes. Consider an example waveform
            where a single logic I value is migrated through the shift register (Figure 11-20),
               Initially all of the flip-flops contain don’t know X values. When the -clear
            input goes to its active state (logic 0)’ all of the flip-flops are cleared to 0.
            When the first active edge occurs on the clock input, the serial-in  input is I,
            so this is the value that’s loaded into the first flip-flop. At the same time, the
            original O value from the first flip-flop is loaded into the second, the original O
            value from the second flip-flop is loaded into the third, and the original O
            value from the third flip-flop is loaded into the fourth.
               When the next active edge occurs on the clock input, the 5eriaI-in  input
            is 0, this is the value that’s loaded into the first flip-flop. At the same time,
                so
            the original 1 value from the first flip-flop is loaded into the second, the 0 value
            from the second flip-flop is loaded into the third, and the 0 value from the
            third flip-flop is loaded into the fourth.
   139   140   141   142   143   144   145   146   147   148   149