Professional Documents
Culture Documents
CH 11
CH 11
• REGISTERS
• SHIFT REGISTERS
• SYNCHRONOUS COUNTERS
• SPECIFICATION
• IMPLEMENTATION WITH FFs AND GATES
• BASIC USES
• HOW TO IMPLEMENT LARGER MODULES
Data input x
Control inputs n
LD (Load)
CLK REGISTER
CLR (Clear)
n
Data output z
Figure 11.1: n-BIT REGISTER MODULE
(0 . . . 0) if CLR(t) = 1
z(t) = s(t)
x3 x2 x1 x0
1 0 1 0 1 0 1 0
MUX MUX MUX MUX
LD
CLK
CLR
D D D D
Q’ Q Q’ Q Q’ Q Q’ Q
z3 z2 z1 z0
Figure 11.2: IMPLEMENTATION OF 4-BIT REGISTER.
Clock CLK
Load LD
Input x
Output z
tp propagation delay
INPUT: x ∈ {0, 1}
OUTPUT: (z1, z0), zi ∈ {0, 1}
STATE: (s1, s0), si ∈ {0, 1}
INITIAL STATE: (s1, s0) = (0, 0)
PS Input
x=0 x=1
00 00 01
01 01 11
11 11 10
10 10 00
NS
z(t) = s(t)
Y 1 = y 1 x0 y 0 x Y0 = y0x0 y10 x
x x’ y 1 y’1
y1
x’
D flip-flops
y0 Y1
x y1
Y0
y0
y0
x’
y’1 CLK
x
(a)
Figure 11.4: NETWORKS FOR Example 11.1: a) NETWORK WITH STATE CELLS;
Y1 = y 0 Y0 = y10 LD = x
Y1 LD
y1
Y0 Register y0
CLR
CLK
(b) 0
Figure 11.4: NETWORKS for Example 11.1: b) NETWORK WITH STANDARD REGISTER MODULE
x n-1 x n-2 x0
xr xl
CLK n-1 n-2 0
CTRL
2
z n-1 z n-2 z0
Figure 11.6: PARALLEL-IN/PARALLEL-OUT BIDIRECTIONAL SHIFT REGISTER
(sn−2, . . . , s0, xl ) if CT RL = LEF T
(x , s
r n−1 , . . . , s1 ) if CT RL = RIGHT
z=s
CT RL c1 c0
N ON E 0 0
LEF T 0 1
RIGHT 1 0
LOAD 1 1
x3 x2 x1 x0
xl
xr
3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0
D D D D
Q Q Q Q
CK
z3 z2 z1 z0
z(t) = x(t − n)
xr
CLK n-1 n-2 0
CTRL
z
(a)
Figure 11.8: COMMON UNIDIRECTIONAL SHIFT REGISTERS: a) SERIAL-IN/SERIAL-OUT
x n-1 x n-2 x0
xr
CLK n-1 n-2 0
CTRL
z n-1 z n-2 z0
(c)
Figure 11.8: COMMON UNIDIRECTIONAL SHIFT REGISTERS: c) SERIAL-IN/PARALLEL-OUT
xr
CLK n-1 n-2 0
CTRL
(a) z
x n-1 x n-2 x0
xr
CLK n-1 n-2 0
CTRL
z n-1 z n-2 z0
(c)
CTRL CTRL
2 z
z n-1 z n-2 z0
• BIT-SERIAL OPERATIONS
x 31 x 30 x0
CLK 31 30 0 Operand X
Clock
CTRL Action
2 Cycle
y 31 y 30 y0 1 Load,
clear carry FF
carry-in
FA
Result Z
carry-out sum
Q D 31 30 0
CLK
Q’ CTRL
z 31 z 30 z0
CLR
sn−1(t + 1) = x(t)
si(t + 1) = si+1(t) for i = n − 2, . . . , 0
s7(t + 1) = x(t)
si(t + 1) = si+1(t) for i = 6, . . . , 0
z(t) = x(t)s0(t)
z(t)
x(t) x(t-8)
CTRL 8-bit SHIFT REGISTER
CLK
Figure 11.11: IMPLEMENTATION OF NETWORK IN Example 11.2
1 if s(t) = 01101110 and x(t) = 1
z(t) =
0 otherwise
x
CTRL 8-BIT SHIFT REGISTER
CLK
z
Figure 11.12: IMPLEMENTATION OF NETWORK IN Example 11.3
CTRL
CLK serial-in
8-BIT SHIFT 8-BIT SHIFT 8-BIT SHIFT 8-BIT SHIFT (left shift)
serial-in REGISTER REGISTER REGISTER REGISTER
(right shift) 7 0 7 0 7 0 7 0
serial-out serial-out
(left shift) (right shift)
• MODULO-p COUNTER
s(t + 1) = (s(t) + x) mod p
(state/output) 1/1
s/z
INPUT: x ∈ {0, 1}
OUTPUTS: z ∈ {0, 1, . . . , p − 1}
T C ∈ {0, 1}
STATE: s ∈ {0, 1, . . . , p − 1}
• UP or DOWN COUNTERS
0 0 0 1
CLK xl
3 2 1 0
LOAD
x
(COUNT)
0 1 0 0 State = 2
(a) z3 z2 z1 z0
0 0 0 0
xl
CLK
3 2 1 0
LOAD
x
(COUNT)
0 0 1 1 State = 2
(b) z3 z2 z1 z0
(s(t) + 1) mod 16 if CN T = 1 and LD = 0
s(t) otherwise
1 if s(t) = 15 and CN T = 1
T C =
0 otherwise
Outputs
Clear
Terminal
S3 S2 S1 S0 CLR
count
Count enable
TC MODULO-16 CNT
COUNTER
CLK
I3 I2 I1 I0 LD
Load inputs
Inputs
Figure 11.16: A MODULO-16 BINARY COUNTER WITH PARALLEL INPUT
CN T = x
1 if (s = k − 1) and (x = 1)
LD =
0 otherwise
I = 0
T C = LD
0/0
1/0
1/0 1/0
0 1 k-1 k 14 15
1/1
(a)
clear
S3 S2 S1 S0 CLR
CLK
MODULO-16 CNT x
State 9 10 11 0 1
COUNTER
CLK
I3 I2 I1 I0 LD LD(TC)
s0
s1
s3
0 0 0 0
TC (b)
Figure 11.17: a) STATE DIAGRAM OF MODULO-k COUNTER (1 ≤ k ≤ 16); b) MODULO-12 COUNTER AND ITS TIME
BEHAVIOR (x = 1)
CN T = x
1 if (s = b) and (x = 1)
LD =
0 otherwise
I = a
1/0
clear
S3 S2 S1 S0 CLR
s2
s3
0 0 0 1
TC
CN T = x
1 if T C = 1
LD =
0 otherwise
I = 16 − k
z = TC
z TC MODULO-16 CNT x
0/0 0/0 0/0 0/0 COUNTER
1/1 CLK
I3 I2 I1 I0 LD
(a)
0 1 1 1
CLK
State 13 14 15 7 8 13 14 15 7
z(TC)
(b)
Figure 11.19: a) STATE DIAGRAM OF MODULO-k FREQUENCY DIVIDER; b) MODULO-9 FREQUENCY DIVIDER AND ITS
TIME BEHAVIOR (x = 1)
• STATE REGISTER
ENTRANCE
SENSOR UP
CLK COUNTER
EXIT DOWN
SENSOR MAX NUMBER
OF SPACES
COMPARATOR
> <
(a)
Sequence of actions:
CLEAR
0
0: CLEAR ALL REGISTERS 1 INPUT A
DECODER
COUNTER
modulo-6
BINARY
1: INPUT A 2 INPUT B
2: INPUT B
3
3: COMPUTE COMPUTE
4
4: COMPUTE
CLK 5 OUTPUT C
5: OUTPUT C
(b)
S Q TS0
0 R Q’ CLK0
Binary Counter
1 S0
BINARY DECODER
Modulo-4
CLK2
Binary Counter
S0 2
TS1
Modulo-8
S Q
S1 3 S1
CLK4
4
S2 R Q’
5
6
CLK
7 S Q TS2
CLK
R Q’
CLK CLK0
7 0 1 2 3 4 5 6 7 0
State CLK2
TS0 CLK4
TS1
(b)
TS2
(a)
Figure 11.21: EXAMPLES OF NETWORKS FOR GENERATING a) TIMING SIGNALS; b) CLOCKS WITH DIFFERENT FREQUEN-
CIES.
Output
Combinational z
Network
s
n
CLK
n
Modulo- 2
Combinational
CNT Counter
Network for
x CNT(Count)
LD
n I
Combinational Combinational
Network for Network for
LD(Load) Parallel Inputs
Figure 11.22: IMPLEMENTATION OF SEQUENTIAL SYSTEM WITH COUNTER AND COMBINATIONAL NETWORKS.
1 if s(t + 1) = (s(t) + 1) mod p and x = 1
CN T =
0 otherwise
1 if s(t + 1) 6= s(t) and
LD = s(t + 1) 6= (s(t) + 1) mod p and x = 1
0 otherwise
s(t + 1) if LD = 1
I =
− otherwise
a’/0
S0
a/0 b/0
S1 S6
b’/0
-/0 -/0
S2 c/0 S5
-/0
c’/0
b’/1 S3 S4
b/0
0
LD = CN T
0
(0, 0, 0, 0) if S 0 a S6 b
(I3, I2, I1, I0) = (0, 0, 0, 1) if S4c S6b0
(0, 0, 1, 1) if S 3 b0
OUTPUT z
z = Q 1 Q0 b0
Q Q Q Q
3 2 1 0
a 0
1 1
1 2 CK
Modulo- 16
b 3 CNT Counter
MUX
c’ 4
LD I I I I
1 5 3 2 1 0
0 6
0 0
d.c. 7
2 1 0
Q Q Q
2 1 0
Q
1
Q z
0
b’
Q b’ Q Q’
0 2 1
• CASCADE COUNTERS
1 if (s = p − 1) and (CN T = 1)
T C =
0 otherwise
0 otherwise
CLK
LOAD
(s(t) + 1) mod p if CEF = 1 and CN T = 1
s(t + 1) =
s(t) otherwise
0 otherwise
T ≥ ttc + tsu + tp
COMBINING
T ≥ max(ttc + tsu + tp, ((k − 2)ttc + tsu + tp)/p)
p-1 0
Q (1)
p-1 0
Q (k-2)
TC (0)
tp
CNT (k-1)
Time available to propagate TC t su
r r+1
Q (k-1)
(a)
p-2 p-1 0
Q (1)
TC (0)
= CEF
TC (1)
CNT (k-1)
tp t su
(b)
000, 111, 222, 333, 444, 555, 666, 077, 108, 210, 321, 432, ...
x CNT
Modulo-7
Modulo-(7x8x9)
COUNTER COUNTER
CNT
Modulo-8
COUNTER
CLK
CNT
Modulo-9
COUNTER
0 otherwise
• OUTPUT OF THE SYSTEM: z(t) = p(t) · T C(t)
INITIALIZE
MODULO - k TC
check
COUNTER
z(t)
PATTERN
x(t)
RECOGNIZER p
CLK
(a)
t 0 1 2 3 4 5 6 7 8 9 10 11
x 5 3 7 4 1 0 3 7 4 3 7 4
TC 0 0 1 0 0 1 0 0 1 0 0 1
p 0 0 0 1 0 0 0 0 1 0 0 1
z 0 0 0 0 0 0 0 0 1 0 0 1
MODULO - k TC
check
COUNTER
z(t) MODULO - N
COUNTER
PATTERN
x(t)
RECOGNIZER p
Count
of instances of P
CLK
(b)