Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Have considered only combinational circuits in which circuit outputs are determined
entirely by current circuit inputs.
We can include storage elements into a circuit that act like memory and store a
system state.
combinatorial
inputs circuit outputs
memory state
elements
Outputs are then a function of both the current circuit inputs and the system
state.
combinatorial
inputs circuit outputs
storage state
elements
clock/
control
clock/
control
The clock/control connects to the storage elements which are latches or flip-flops.
They can control when things happen because their transition from 0-> 1 and from
1 -> 0 occur at discrete instances in time.
The 0 -> 1 transition is often called the rising edge of the clock.
The 1 -> 0 transition is often called the falling edge of the clock.
1
clock
0
They operate based on whether signals are at logic levels 0 or 1, not on logic
transitions from 0 -> 1 or 1 -> 0.
Latches are not really too useful for synchronous sequential circuits (they are for
asynchronous circuits), but form the basis from which flip-flops are built.
R (reset) Q
S (set) !Q
In general (one exception, see below), the outputs are complements of each other
(this is why they are labeled Q and :Q):
When S=1, R=0 the output is Q=1, :Q=0 and the circuit in the set state.
When S=0, R=1 the output is Q=0, :Q=1 and the circuit in the reset state.
So, S=1 (active high) implies set (Q=1) and R=1 (active high) implies reset (Q=0).
When S=0, R=0 the output holds at its previous value (storage).
S (set) Q
R (reset) !Q
In general (one exception, see below), the outputs are complements of each other
(this is why they are labeled Q and :Q):
When S=0, R=1 the output is Q=1, :Q=0 and the circuit in the set state.
When S=1, R=0 the output is Q=0, :Q=1 and the circuit in the reset state.
So, S=0 (active low) implies set (Q=1) and R=0 (active low) implies reset (Q=0).
When S=1, R=1 the output holds at its previous value (storage).
So, it works similar to the NOR implementation, but the input values are reversed for
each of the different cases.
E&CE 223 Digital Circuits and Systems Page 9
Latch With Control Input (i.e., Gated Latch)
S
Q
C
!Q
R
S
Q
C
!Q
R
The inputs to the latch are both 1 which puts the SR latch into hold state.
The latch outputs will not change regardless of S and R values.
S
Q
C
!Q
R
The S and R inputs will reach the latch and we can analyze the behavior.
The NAND gates at the input to the latchresult in active high inputs:
We must avoid the undesirable situation in which we cannot determine what the
output of the latch will be…
The solution is to construct a latch where S and R can never have the same
value.
D
Q
C
!Q
S Q S Q
C
R R
Note: as illustrated, this means the inputs are active high; i.e., we set when S=1 (and
R=0) and we reset with R=1 (and S=0).
S Q S Q
C
R R
Note: as illustrated, this means the inputs are active low; i.e., we set when S=0 (and
R=1) and we reset with R=0 (and S=1).
D Q
Note: For a D Latch, the control input is required, since it is via the control input that
we have the hold state.
Latches do not allow for precise control because they are level sensitive.
Consider a D-Latch with the clock signal connected to the control input.
Output of the latch can change anytime while the clock is at its active level.
This creates an interval in time over which the state, or output, of the memory
element can change rather that an instant in time at which the state, or output, of
the memory element can change.
It would be better to only allow the output to change when the clock edge makes a
transition from 0 ! 1 (rising edge triggering) or 1 ! 0 (falling edge triggering). This
gives even more precise control!
Response to positive level (a latch) – large window of time for output to change.
Positive Edge Triggering. The input to the flip-flop just before the clock changes
from 0 ! 1 causes the output to change just after the clock changes from 0 ! 1.
Negative Edge Triggering. The input to the flip-flop just before the clock changes
from 1 ! 0 causes the output to change just after the clock changes from 1 ! 0.
We can make a negative edge triggered D-type flip-flop (DFF) using two D latches.
We connect the clock input to the control input of the first latch (master),
and the inversion of the clock input to the control input of the second latch
(slave).
D Latch D Latch
(master) Y (slave)
D D Q D Q Q
CLOCK C C
D Latch D Latch
(master) Y (slave)
D D Q D Q Q
CLOCK C C
While CLK=1, Y will follow input D via the master latch, but Q will not follow Y (it
is in hold state) and will hold its current value.
When CLK=0 (at the moment of change), Y will be disconnected from D and will
hold its current value. Q will follow Y via the master latch.
The effect is that the value of D just prior to the falling edge of the clock will
get “transferred” to the output Q just after the falling edge of the clock.
We can make a positive edge triggered DFF simply by changing the inversion of the
clock signal
Output of master latch, Y, follows D when clock is low (slave in hold).
Output of slave latch, Q, follows Y when clock is high (master in hold).
D Latch D Latch
(master) Y (slave)
D D Q D Q Q
CLOCK C C
Note the indication of the clock input and the change to the symbols (vs. a D
latch) to indicate edge-triggering.
D Q
S
Q
R !Q
CLK
When CLK=0, both S=1 and R=1 and the output latch will hold its state.
1 hold
S
Q
0 R
1
CLK !Q
When D=0 and CLK = 0 ! 1, R = 1 ! 0 and the output latch goes into its reset
state (Q=0).
Further changes in D while CLK=1 cannot change R and Q=D just after
clock changes.
1 reset
S
Q Q->0
0->1 1->0
R !Q
CLK
0 1
D
When D=1 and CLK = 0 ! 1, S = 1 ! 0 and the output latch goes into its set state
(Q=1).
Further changes in D while CLK=1 cannot change S and Q=D just after
clock changes.
1
set
1->0
S
Q Q->1
0->1 1
R !Q
CLK
1 0
D
Sometimes flip-flops will have additional, asynchronous control inputs that force
the output Q to a particular value.
The output will remain 1 as long as the set input is active (changes in D and CLK
are ignored).
The output will remain 0 as long as the reset input is active (changes in D and
CLK are ignored).
reset/
hold
S1 0
Q
0/1 R !Q
CLK
1
D
1
RESET 0
D S Q
D S Q
The characteristic table shows what the next flip-flop output value will be given
the current flip-flop input value after the clock makes its active edge
transition.
For a DFF, the output value becomes the input value when the clock makes its active
edge transition.
Another type of flip-flop that has a different behavior when compared to a DFF.
T Q
T Q
So with a TFF, the output toggles (or flips) its value if the input is T=1, otherwise it
remains the same.
We can actually build a TFF using a DFF and a 2-input XOR gate.
D Q Q T Q
T
CLOCK
Again, another type of flip-flop that has different behavior compared to a DFF or to
a TFF.
J Q
J Q
We can derive the characteristic equation for the JKFF (I find it easy to explain via
a K-Map):
JK
Q(t) 00 01 11 10
0 0 0 1 1
1 1 0 0 1
We can actually build a JKFF using a DFF and some other gates.
J
J Q
D Q Q
K K
CLOCK
There are some important things to understand when we go to actually make and
implement a circuit with flip-flops.
In reality, it takes time for gates to change their output values according to the
input values – i.e., there are propagation delays due to resistance, capacitance, etc.
The setup time of a flip-flop is the amount of time that the data inputs need to
be held stable (not changing) PRIOR to the arrival of the active clock edge.
The hold time of a flip-flop is the amount of time that the data inputs need to
be held stable (not changing) AFTER the arrival of the active clock edge.
Clock-To-Output (TCO):
The clock-to-output time of a flip-flop is the amount of time it takes for the
output to become stable (at its new value) AFTER the arrival of the active
clock edge.
If these timing specifications are not met, then it is possible that the flip-flop will
not behave as expected.
That is, if we don’t observe setup and hold times at the data inputs, then our output
might not change as expected.
That is, if we don’t wait long enough (clock-to-output time) for the output to change,
then we might use an incorrect value.
These timing parameters (as we will see later) have an influence on how fast we
can clock a circuit.
TCO
D Q
TSU TH
CLOCK