Design Procedure Determine the required number of inputs and outputs and assign letter symbols to them. Derive the truth table that defines the required relationship between inputs and outputs. Obtain the Boolean function. Draw the logic diagram. Verify the correctness of the design.
Example Design a circuit that converts a BCD codeword to its corresponding excess-3 codeword. We need 4 input variables and 4 output variables. Let us designate the 4 input binary variables by the symbols A, B, and C and D, and the four output variables by w, x, y, and z. The truth table relating the input and output variables is shown below:
Note that the outputs for inputs 1010 through 1111 are don't care.
Multiplexers A combinational circuit that selects info from one of many input lines and directs it to the output line. The selection of the input line is controlled by input variables called selection inputs. They are commonly abbreviated as “MUX”.
Combinational circuit implementation using MUX We can use Multiplexers to express Boolean functions also. Expressing Boolean functions as MUXs is more efficient than as decoders. First n-1 variables of the function used as selection inputs; last variable used as data inputs. If last variable is called Z, then each data input has to be Z, Z’, 0, or 1.
Sequential Logic Combinatorial components: the output values are computed only from their present input values. Sequential components: their output values are computed using both the present and past input values. Sequential circuits can contain only a finite number of states finite state machines Synchronous and Asynchronous
Sequential Circuits Contains Memory Elements Asynchronous sequential circuits change their state and output values when input changes Synchronous sequential circuits change their output values at fixed points of time, which are specified by the rising or falling edge of a clock signal Clock period is the time between successive transitions in the same direction Active high – state changes occur at the clock’s rising edge( on higher voltage) Active low – state changes occur at the clock’s falling edge( on lower voltage)
4 Basic types of Flip-Flops SR, JK, D, and T JK ff has 2 inputs, J and K need to be asserted at the same time to change the state D ff has 1 input D (DATA), which sets the ff when D = 1 and resets it when D = 0 T ff has1 input T (Toggle), which forces the ff to change states when T = 1 SR ff has 2 inputs, S (set) and R (reset) that set or reset the output Q when asserted
Gated D-Latch Ensures S and R inputs never equal to 1 at the same time Useful in control application where setting or resetting a flag to some condition is needed Stores bits of information Constructed from a gated SR latch and a Data latch
Recap - Sequential Systems Example: –Design a D FF with a JK FF and AND, OR, NOT gates: D To Be Designed JQ Q’ CLK K
Sequential Systems - Cont. D(t) 0- 1- -1 -0 JK 0 1
Sequential Systems - Cont. D Q 01--01--- D Q - --10--10 J = D K = D’ D JQ Q’ CLK K
Analysis of Sequential Systems Goal: –Decide the timing and functional behavior from the implementation of a sequential system composed of FFs and logic gates Types: –Functional analysis –Timing analysis
D Flip-Flop Characteristics : Synchronous Avoids the instability of RS flip-flop Retains its last input value To set the ff, place 1 on D input and pause the CK input To reset, place 1 on D input and pause the CK input DQ+Q+ 0101 0101 Q + = Next State
T Flip-Flop TQ+Q+ 0101 Q Q’ T = 1 force the state change T = 0 state remain the same
JK – Flip Flop J – Set K – Reset J = K = 0 – output does not change J = K = 1 – invert the outputs
How to use JK to implement D Flip-Flop DQ+Q+ 0101 0101 J KQ+Q+ 0 0 1 1 0 1 Q 0 1 Q’ D ff’s property: When in = 0, the out(Q + ) = 0. When in = 1, the out(Q+) is 1 invert K D
How to use JK to implement T Flip-Flop TQ+Q+ 0101 Q Q’ J KQ+Q+ 0 0 1 1 0 1 Q 0 1 Q’ T ff’s property: When in = 0, the out(Q + ) = no change When in = 1, the out(Q+) is = complement No change State change T
How to use D to implement JK Flip-Flop KQ 00 01 11 10 J 0 1 0( Q ) 1( Q ) 0 0 1 1 0( Q’ ) 1( Q’ ) J KQ+Q+ 0 0 1 1 0 1 Q 0 1 Q’ DQ+Q+ 0101 0101 D = JQ’ + K’Q (Q ) = no state change (Q’) = state change
How to use D to implement JK Flip-Flop D = JQ’ + K’Q J K
How to use T to implement JK Flip-Flop KQ 00 01 11 10 J01J01 0 0 1 0 1 0 1 1 J KQ+Q+ 0 0 1 1 0 1 Q 0 1 Q’ TQ+Q+ 0101 Q Q’ T = KQ + JQ’
How to use T to implement JK Flip-Flop T = KQ + JQ’
How to use D to implement T Flip-Flop TQ+Q+ 0101 Q Q’ Q + 0 1 T 0 1 0 1 1 0 D = TQ’ + T’Q DQ+Q+ 0101 0101
How to use D to implement T Flip-Flop D = TQ’ + T’Q T
How to use T to implement D Flip-Flop TQ+Q+ 0101 Q Q’ DQ+Q+ 0101 0101 T = DQ’ + D’Q Q + 0 1 D01D01 0 1 1 0
How to use T to implement D Flip-Flop T = DQ’ + D’Q D
SR-Flip Flop Asynchronous If S=0 and R=1, Q is set to 1, and Q’ is reset to 0 IF R=0 and S=1, Q is reset to 0, and Q’ is set to 1 If S=1 and R=1, Q and Q’ maintain their previous state If S=0 and R=0, a transition to S=1, R=1 will cause oscillation
Instability RS flip-flops can become unstable if both R and S are set to 0 All sequential elements are fundamentally unstable under certain conditions –Invalid transitions –Transitions too close together –Transitions at the wrong time
Edge and level-triggered Flip Flop Digital circuit often form loops, flip-flops oscillations can Oscillation will not occur because by the time an output change cause an input change, the activating edge of the CK signal will be gone Positive edge triggered – ff responds to a positive going edge of clock Negative edge triggered – responds to a negative-going edge
Positive-edge-triggered D Flip-Flop When CLK=0 the master latch is open and the content of D is transferred to QM When CLK=1 the master is closed and its output is transferred to the slave Master and slave latches are never enabled at the same time