Professional Documents
Culture Documents
CH 11
CH 11
REGISTERS
SHIFT REGISTERS
SYNCHRONOUS COUNTERS
FOR EACH MODULE WE SHOW:
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
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 2 f0; 1g
OUTPUT: (z ; z ); zi 2 f0; 1g
1 0
STATE: (s ; s ); si 2 f0; 1g
1 0
INITIAL STATE: (s ; s ) = (0; 0)
1 0
Y = y x0 y x
1 1 0 Y = y x0 y 0 x
0 0 1
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;
Y =y 1 0 Y = y0 LD = x
0 1
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
Control s(t + 1) = z (t + 1)
NONE 0101
LOAD 1110
LEFT xl = 0 1010
LEFT xl = 1 1011
RIGHT xr = 0 0010
RIGHT xr = 1 1010
CTRL c c
1 0
NONE 0 0
LEFT 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
MUX MUX MUX MUX
c1
c0
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 (t + 1) = x(t)
1
si(t + 1) = si (t)
+1 for i = n 2; : : : ; 0
s (t + 1) = x(t)
7
z(t)
x(t) x(t-8)
CTRL 8-bit SHIFT REGISTER
CLK
Figure 11.11: IMPLEMENTATION OF NETWORK IN Example 11.2
8
if s(t) = 01101110 and x(t) = 1
z (t) = 01
><
>: 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 2 f0; 1g
OUTPUTS: z 2 f0; 1; : : : ; p 1g
TC 2 f0; 1g
STATE: s 2 f0; 1; : : : ; p 1g
FUNCTION: STATE TRANSITION AND OUTPUT FUNCTIONS
s(t + 1) = (s(t) + x) mod p
z (t) = 8s(t)
>< 1 if s(t) = p 1 and x(t) = 1
TC (t) = >: 0 otherwise
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
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
CNT = x
8
if (s = k 1) and (x = 1)
LD = 01
><
>: otherwise
I=0
TC = 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)
CNT = x
8
if (s = b) and (x = 1)
LD = 01
><
>: otherwise
I=a
1/0
clear
S3 S2 S1 S0 CLR
s2
s3
0 0 0 1
TC
CNT = x
8
if TC = 1
LD = 01 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)
a) STATE DIAGRAM OF MODULO-k FREQUENCY DIVIDER; b) MODULO-9 FREQUENCY DIVIDER AND ITS
Figure 11.19:
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
S1 3
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.
8
if s(t + 1) = (s(t) + 1) mod p and x = 1
CNT = 01 otherwise
><
>:
8
1 if s(t + 1) 6= s(t) and
>>
><
LD = 6 (s(t) + 1) mod p and x = 1
s(t + 1) = >>
0 otherwise >:
8
I = s(t + 1) ifotherwise
LD = 1
><
>:
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
CNT = S a S S S b S c0 S
0 1 2 3 4 5
LD = 8>CNT 0
>> (0; 0; 0; 0) if S a0 S b
0 6
(I ; I ; I ; I ) = <>> (0; 0; 0; 1)
3 2 1 0 if S c S b0
4 6
>: (0; 0; 1; 1) if S b03
I 0 = Q Q Q0 Q b0
0 2 1 2
OUTPUT z
z = Q Q b0
1 0
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 2 Q’
0 1
CASCADE COUNTERS
8
>< 1 if (s = p 1) and (CNT = 1)
TC = >: 0 otherwise
CLK
LOAD
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
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)