Lecture #19 - Flip-Flops and Registers

Flip-Flops and Registers
(Lecture #19)
The slides included herein were taken from the materials accompanying
Fundamentals of Logic Design, 6th Edition, by Roth and Kinney,
and were used with permission from Cengage Learning.
Flip-Flops
(continued)
Spring 2011
ECE 331 - Digital System Design
2
SR Flip-Flop
●
●
●
The SR Flip-Flop has three inputs
–
Clock (Ck) --- denoted by the small arrowhead
–
Set (S) and Reset (R)
Similar to an SR Latch
–
S = 1 sets the flip-flop (Q+ = 1)
–
R = 1 resets the flip-flop (Q+ = 0)
Like the D Flip-Flop, the Q output of an SR Flip-Flop
only changes in response to an active clock edge.
Spring 2011
–
Positive edge-triggered
–
Negative edge-triggered
ECE 331 - Digital System Design
3
SR Flip-Flop
S
0
0
R
0
0
Q
0
1
Q+
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
not
allowed
}
}
}
Q+ = Q
store
Q+ = 0
reset
positive edge-triggered
SR Flip-Flop
Q+ = 1
set
State change occurs
after active Clock edge
Spring 2011
ECE 331 - Digital System Design
4
SR Flip-Flop (master-slave)
SR Latches
Enabled on opposite levels of the clock
Spring 2011
ECE 331 - Digital System Design
5
SR Flip-Flop: Timing Diagram
Spring 2011
ECE 331 - Digital System Design
6
JK Flip-Flop
●
●
●
The JK Flip-Flop has three inputs
–
Clock (Ck) --- denoted by the small arrowhead
–
J and K
Similar to the SR Flip-Flop
–
J corresponds to S:
J = 1 → Q+ = 1
–
K corresponds to R:
K = 1 → Q+ = 0
Different from the SR Flip-Flop in that the input
combination J = 1, K = 1 is allowed.
–
Spring 2011
J = K = 1 causes the Q output to toggle after an
active clock edge.
ECE 331 - Digital System Design
7
JK Flip-Flop
}
}
}
}
Q+ = Q
store
Q+ = 0
reset
Q+ = 1
set
+
Q = Q'
Spring 2011
Characteristic Equation:
Q+ = J.Q' + K'.Q
toggle
ECE 331 - Digital System Design
8
JK Flip-Flop (master-slave)
SR Latches
Enabled on opposite levels of the clock
Spring 2011
ECE 331 - Digital System Design
9
JK Flip-Flop: Timing Diagram
Spring 2011
ECE 331 - Digital System Design
10
T Flip-Flop
●
●
●
The Toggle (T) Flip-Flop has two inputs
–
Clock (Ck) --- denoted by the small arrowhead
–
Toggle (T)
The T input controls the state change
–
when T = 0, the state does not change (Q+ = Q)
–
when T = 1, the state changes following an active
clock edge (Q+ = Q')
T Flip-Flops are often used in the design of counters.
Spring 2011
ECE 331 - Digital System Design
11
T Flip-Flop
Characteristic Equation:
Q+ = T.Q' + T'.Q = T xor Q
Spring 2011
ECE 331 - Digital System Design
12
T Flip-Flop: Timing Diagram
Spring 2011
ECE 331 - Digital System Design
13
Building a T Flip-Flop
Spring 2011
ECE 331 - Digital System Design
14
Asynchronous Control Signals
Spring 2011
ECE 331 - Digital System Design
15
Asynchronous Control Signals:
Timing Diagram
Spring 2011
ECE 331 - Digital System Design
16
D FF with Clock Enable
Spring 2011
ECE 331 - Digital System Design
17
Flip-Flops in VHDL
Spring 2011
ECE 331 - Digital System Design
18
JK Flip-Flop
architecture JKFF of JKFF_entity is
signal
FF
Clk
Qint: std_logic;
begin
Q <= Qint;
Qnot <= not (Qint);
process (Clk)
begin
if Clk'event and Clk = '0' then
Qint <= (J and not (Qint)) or (not (K) and Qint);
end if;
end process;
end architecture;
Spring 2011
ECE 331 - Digital System Design
19
D FF with Asynchronous Inputs
Clk
process (Clk)
begin
if ClrN = '0' then Q <= 0;
elsif PreN = '0' then Q <= 1;
elsif Clk'event and Clk = '1' then
Q <= D;
end if;
end process;
Spring 2011
ECE 331 - Digital System Design
20
Registers
Spring 2011
ECE 331 - Digital System Design
21
Registers
Several D flip-flops may be grouped together with a common
clock to form a register. Because each flip-flop can store one
bit of information, a register with n D flip-flops can store n bits
of information.
A load signal can be ANDed with the clock to enable and
disable loading the registers.
A better approach is to use registers with clock enables if
they are available.
Spring 2011
ECE 331 - Digital System Design
22
Register: 4 bits
Spring 2011
ECE 331 - Digital System Design
23
Data Transfer between Registers
●
Data transfer between registers is a common
operation in computer (i.e. digital) systems.
●
Multiple registers can be interconnected using
tri-state buffers.
●
Data can be transferred between two registers
by enabling the proper tri-state buffer.
Spring 2011
ECE 331 - Digital System Design
24
Data Transfer between Registers
Spring 2011
ECE 331 - Digital System Design
25
Register with Tri-state Output
Spring 2011
ECE 331 - Digital System Design
26
Data Transfer using Tri-state Bus
Spring 2011
ECE 331 - Digital System Design
27
Shift Register
A shift register is a register in which binary data can be stored
and shifted either left or right. The data is shifted according to
the applied shift signal; often there is a left shift signal and a
right shift signal.
A shift register must be constructed using flip-flops (i.e. edgetriggered devices); it cannot be constructed using latches or
gated-latches (i.e. level-sensitive devices).
Spring 2011
ECE 331 - Digital System Design
28
Shift Register: 4 bits
Spring 2011
ECE 331 - Digital System Design
29
Shift Register (4 bits): Timing Diagram
Spring 2011
ECE 331 - Digital System Design
30
8-bit SI SO Shift Register
Spring 2011
ECE 331 - Digital System Design
31
4-bit PI PO Shift Register
Spring 2011
ECE 331 - Digital System Design
32
4-bit PI PO Shift Register: Operation
Spring 2011
ECE 331 - Digital System Design
33
Registers in VHDL
Spring 2011
ECE 331 - Digital System Design
34
4-bit Shift-Right Register
process (Clock)
begin
if (Clk'event and Clk = '1') and Shift = '1' then
Q3 <= SI after 8 ns;
Q2 <= Q3 after 8 ns;
Q1 <= Q2 after 8 ns;
Q0 <= Q1 after 8 ns;
SO <= Q0 after 8 ns;
end if;
end process;
Spring 2011
ECE 331 - Digital System Design
35
Parallel Adder with Accumulator
Spring 2011
ECE 331 - Digital System Design
36
Parallel Adder with Accumulator
In computer circuits, it is frequently desirable to store one
number in a register (called an accumulator) and add a
second number to it, leaving the result stored in the register.
Spring 2011
ECE 331 - Digital System Design
37
n-bit Parallel Adder with Accumulator
Spring 2011
ECE 331 - Digital System Design
38
Loading the Accumulator
Before addition in the previous circuit can take place, the
accumulator must be loaded with X. This can be
accomplished in several ways. The easiest way is to first
clear the accumulator using the asynchronous clear inputs
on the flip-flops, and then put the X data on the Y inputs to
the adder and add the accumulator in the normal way.
Alternatively, we could add multiplexers at the accumulator
inputs so that we could select either the Y input data or the
adder output to load into the accumulator.
Spring 2011
ECE 331 - Digital System Design
39
Adder Cell with Multiplexer
Spring 2011
ECE 331 - Digital System Design
40
Questions?
Spring 2011
ECE 331 - Digital System Design
41