§ 4 典型的同步时序逻辑电路中规模集成电路 (MSI)的同步时序逻辑
§ 4.1 计数器
§ 4.2 寄存器
§ 4.3 移位寄存器同步时序电路设计
画原始状态图,
这一步是关键,一定要画全;要考虑到从每个状态出来所有的输出情况。
画原始状态表
状态化简,状态分配要求:状态化简直接从原始状态表观察状态分配为二进制或循环码
求控制函数和输出函数主要要求,D触发器控制函数
画逻辑图
,不完全确定状态的同步时序电路设计,不要求
§ 4.1 计数器 (Counter)
计数器的设计考虑
快速进位逻辑
Load(并行预置数)
扩展(组成多位,低位计满高位才计数)
清零方式(同步 /异步)
D触发器实现 4位二进制计数器的进位逻辑
Q
D CP
Q
D CP
Q
D CP
Q
D CP
CK

+ +
QQQQ
Q0 Q1 Q2 Q3
32103
2102
101
00
QQQQD
QQQD
QQD
QD



原则:逻辑结构清晰,尽量公用部分控制函数尽量少用 Q(Q驱动外电路 )
快速进位表达式例 2:十进制计数器设计
N Q3 Q2 Q1 Q0
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
0001 0010 0100 0011
0101 0110 1000 0111
x x x x
1001 0000 x x
Q1Q0
Q3Q2
00
01
11
10
00 01 11 10
Q’3Q’2 Q’1Q’0 (D3D2 D1D0)
十进制计数器的原始状态表
0 0 0 0
0 0 1 0
x x x x
1 0 x x
Q1Q0
Q3Q2
00
01
11
10
00 01 11 10
000
0311
0122
0120333
1



KJ
QQKJ
QQKJ
QQQQQKJ
Q’3
用 J-K触发器实现,原始状态表分解,
0x 0x 0x 0x
0x 0x 1x 0x
x x x x
x0 x1 x x
Q1Q0
Q3Q2
00
01
11
10
00 01 11 10
J3K 3
x
x
1
0
0 0 0
0 1 1
1 0 x
1 1 x
KQn Qn+1 J
J-K触发器激励表
(J2K 2,J1K 1,J0K 0等略 )
保持 0
保持 1 置 0
置 1
快速进位表达式
§ 4.1 计数器 (Counter)
Load(并行预置数)功能
–Load=0 Load A,B,C,D
–Load=1 Count
Load控制可以为二通道数据选择器
§ 4.1 计数器 (Counter)
扩展功能
2片 4位 Counter?8位 Counter
规则:
– 低位片未计满,则高位片不能计数
– 低位片记满后来 CK,两片一起动
设置标志位 RC (Ripple Carry)
– 二进制计数器 RC=QAQBQCQD
– 十进制计数器 RC=QAQBQCQD
– 允许(禁止)端:
T (Trickle) 串行控制
P (Parallel) 并行控制
§ 4.1 计数器 (Counter)
具有扩展功能的计数器清零 (异步 )X X X 0 X
Count1 1 1 1
Load
0 1 1 1 X
_
P T L RD CK
功能
X X 0 1?
Hold
X 0 1 1 X FF Hold,RC=0
§ 4.1 计数器 (Counter)
P RC0
T CK
P RC1
T CK
P RC2
T CK
“1”
“1”
CK
串行扩展,RC逐片传送
(低位 ) (高位 )
d0 d4
T0,0111,0000
T1,1111,0000 (RC0=1)
T2,0000,1000
d0 d4 d8
T0,0111,1111,0000
T1,1111,1111,0000(RC0,RC1=1)
T2,0000,0000,1000
§ 4.1 计数器 (Counter)
清零方式
_
–不依赖于 CK,使用 RD异步清零
___
–CLR=0,不立即清零,等 CK到来清零
–清零可以用于改变计数器的进制
___
P T L CLR CK
清零(同步 )X X X 0 ↑
§ 4.1 计数器 (Counter)
例,16进制?10进制异步清零
QAQBQCQD=0101
_
RD
QAQBQCQD
___
CLR
QAQBQCQD
同步清零
QAQBQCQD=1001
§ 4.1 计数器 (Counter)
使用异步清零实现的缺点:
–存在过渡态 1010
CK
QA
QB
QD
0 1 2 3 4 5 6 7 8 9
QB出现尖峰,QD的,1”被延长特殊电路结构的计数器
Q
CP DQ
Q
CP DQ
Q
CP DQ
Q
CP DQ
Q
CP DQ
Q
CP DQ
CP
CP
Q0Q1Q2
Q2 Q1 Q0
环形计数器
(循环移位 )
D0= Q2,格雷码计数器
Q
CP DQ
Q
CP DQ
Q
CP DQ
Q0Q2 Q1
CP
Q0
Q1
Q2
异步减 1计数器
CP
Q
J CP K
Q Q
J CP K
Q Q
J CP K
Q
“1”
CP
“1”,1”
CP
Q0
Q1
Q2
Q2 Q1 Q0
异步加 1计数器。
异步时序电路的特点:没有统一的时钟 CP,某些位的时钟是由触发器的输出依次传递的,因此计数器速度较慢。
计数器的自启动设计
Q
CP D
Q Q
CP D
Q Q
CP D
Q
CP
Q2 Q1 Q0
D2= Q1
D1= Q0
D0= Q2
000 001
110 111
011
100 010 101
当触发器的可能状态比有效的计数序列多的情况下,计数器启动时有可能进入无效计数序列。此时需要修改设计,使得电路能够自启动。
3位格雷码计数器存在两个计数循环。
如果将触发器清 0,可以计数格雷码序列。
Q
CP D
Q Q
CP D
Q Q
CP D
Q
CP
Q2 Q1 Q0
12
01
2100
QD
QD
QQQD

计数器的自启动设计修改设计后可以自动进入循环
000 100
011 111101
110
010 001
能够自行进入工作循环的 3位格雷码计数器计数器的自启动设计
000 100
011 111
101
110
010
001
如果按照这个状态图设计,电路结构会简单吗?
计数器的自启动设计
001
1
0
00 1101 10
011 111
100110000 xxx
xxx
Q2
Q1
Q0
D2D1D0
原始状态图
001
1
0
00 1101 10
011 111
100110000 01x
10x
Q2
Q1
Q0
D2D1D0
修改的状态图保持 D2 D1不变的情况下得到上图。
101也可以转到 011状态,
但表达式更复杂。
100
010
§ 4.2 寄存器 (Register)
寄存器的作用
–在计算机中用于存储指令、数据、运算结果
–寄存器的数量多少,是计算机结构的重要区别
–外存、内存、缓存、寄存四类中,寄存器速度最快,但容量最小
寄存器的操作读 /写 /清零,能控制读 /写的触发器、锁存器
§ 4.2 寄存器 (Register)
_ Q
RD
D CP
_ Q
RD
D CP
_ Q
RD
D CP
_ Q
RD
D CP
CK_
RD
D3 D2 D1 D0
Q3 Q2 Q1 Q0
(1) 4D触发器构成的寄存器
0 X
1
0 0 0 0
D3 D2 D1 D0?
_
RD CP Q3 Q2 Q1 Q0 CK和 R
D加驱动器的目的是减少对外的负载
§ 4.2 寄存器 (Register)
(2) 具有 Hold功能的 4D寄存器
–功能表:
00 X X X
D1 0 D
Qn1 1 X
Qn+1
_ _
RD E CK D
异步置零
Store
Hold
§ 4.2 寄存器 (Register)
_ Q
RD
D CP
_ Q
RD
D CP
_ Q
RD
D CP
_ Q
RD
D CP
CK_
RD
D3 D2 D1 D0
Q3 Q2 Q1 Q0
+ + + +
_
E
具有 Hold功能的 4D寄存器
§ 4.2 寄存器 (Register)
应用:
把来自数据总线的数据送入 4个寄存器中指定的一个。
应该用具有 Hold功能的寄存器,只有一个接收,其余 3个处于 Hold状态。
D0
D1
D2 _
D3 E
§ 4.2 寄存器 (Register)
D0
D1
D2 _
D3 ED0
D1
D2 _
D3 ED0
D1
D2 _
D3 E
A Y0
B Y1
_ Y2
E Y3
_
E
Adr
Reg0
Reg1
Reg2
Reg3
D0
D1
D2 _
D3 E
Q0
Q3
Q0
Q3
Q0
Q3
Q0
Q3
(触发器中没有画 CK,RD,它们应该都要接到触发器上)
§ 4.2 寄存器 (Register)
使用没有 Hold功能的寄存器能实现这一功能吗?
可以用译码器作为时钟 CK的分配器
CK CKCKCK
A Y0
B Y1
_ Y2
E Y3
Adr
CK
§ 4.2 寄存器 (Register)
缺点:在 CK= 0期间,A,B的变化可能会在译码器的输出导致尖峰,寄存器会把这种尖峰信号作为触发器的 CK处理,
导致不该变化的寄存器发生变化。
一般不采用这种方案,因为 CK是整个系统的总指挥,不能随便加工。
§ 4.2 寄存器 (Register)
(3) 具有 Hold功能的双输入寄存器
–功能表:
00 X X X
DA1 0 0
DB
1 1 X
_ _
RD E S CK
异步置零
Store A
Hold
Q
1 0 1?
Hold
Store B
§ 4.2 寄存器 (Register)
(4)有输入输出使能的 4位寄存器
–功能表:
–实现有选择的输入和输出
00 X X X 0
D
1 1 X 0 Q0
1 0 D 0
_ _ __
RD E CK D OE
Q
X X X X 1 Z
§ 4.2 寄存器 (Register)
结构:
Q
D CP
Q
+
_
E
D
Q __
OE
双向总线寄存器
§ 4.2 寄存器 (Register)
组成双向总线寄存器
E
D0 Q0
D1 Q1
D2 Q2
D3 __ Q3
OE
E
Q0 D0
Q1 D1
Q2 D2
Q3 __ D3
OE
I/O Bus
___
Rec/Dri
输出总线输入总线
§ 4.3 移位寄存器 (Shift Register)
(1)串入、串出 /并出的右移 Shift Reg
D Q
CP
D Q
CP
D Q
CP
D Q
CP
Di
CP
串出并出串入应用:串行变并行 (如果要并行变串行,应该有并行输入功能 )
§ 4.3 移位寄存器 (Shift Register)
4.2.1串 /并入、串 /并出的双向 Shift Reg
–功能表,
置,0”0 X X X
Hold1 0 0 ↑
Shift Right
1 0 1 ↑
_
RD S0 S1 CK 功能
1 1 0 ↑
Shift Left
1 1 1 ↑ Load(Store)
§ 4.3 移位寄存器 (Shift Register)
结构设计:寄存器+数据选择器
Q __
D RD CP
+
S R Hold Store S L
Qi Di
右位 Q左位 Q
Qi
S0
S1
§ 4.3 移位寄存器 (Shift Register)
移位寄存器型序列信号发生器 (又称 SR
型计数器 )
–例:能产生如下计数顺序的计数器
Q0 Q1 Q2 Q3
0 0 0 0
1 0 0 0
1 1 0 0
1 1 1 0
1 1 1 1
0 1 1 1
0 0 1 1
0 0 0 1
4位格雷码计数器
§ 4.3 移位寄存器 (Shift Register)
能产生四个信号序列:
–Q0,0 1 1 1 1 0 0 0,0 1 1 1 1 0 0 0,...
–Q1,0 0 1 1 1 1 0 0,0 0 1 1 1 1 0 0,...
–Q2,0 0 0 1 1 1 1 0,0 0 0 1 1 1 1 0,...
–Q3,0 0 0 0 1 1 1 1,0 0 0 0 1 1 1 1,...
§ 4.3 移位寄存器 (Shift Register)
实际上计数顺序由移位产生:
Q0 Q1 Q2 Q3
0 0 0 0
1 0 0 0
1 1 0 0
1 1 1 0
1 1 1 1
0 1 1 1
0 0 1 1
0 0 0 1
取反
§ 4.3 移位寄存器 (Shift Register)
设计 DR的输入
S0 DR
S1
_
CK RD Q0 Q1 Q2 Q3
组合逻辑电路
“1”
“0”
§ 4.3 移位寄存器 (Shift Register)
加电工作后要清零
若工作循环中无状态,0000”,加电后状态随机。可能无法进入工作循环:
–1010?1101?0110?1011?0101?0010
1001?0100?1010?...
可以预先指定一个工作循环中的数据
§ 4.3 移位寄存器 (Shift Register)
四位格雷码计数器相当于,,除法器8?
CK
T’
T
Q0
Q1
Q2
Q3
§ 4.3 移位寄存器 (Shift Register)
除法器10?
DR
Q0Q1Q2Q3
DR
Q0Q1Q2Q3
类似的可以做出偶数分频
§ 4.3 移位寄存器 (Shift Register)
除法器6?
S0 DR
S1
_
CK RD Q0 Q1 Q2 Q3
右移产生序列 000111,000111
§ 4.3 移位寄存器 (Shift Register)
除法器5?
Q0 Q1 Q2
0 0 0
1 0 0
1 1 0
1 1 1
0 1 1
0 0 1
11100,11100,...
S0 DR
S1 _
CK RD Q0 Q1 Q2
右移清零开始时清零,进入循环后跳过 000
2? 4? 6?
§ 4.3 移位寄存器 (Shift Register)
例:设计产生如下表所示序列的电路
Q0 Q1 Q2 Q3
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
S0 DR
S1 _
RD Q0Q1Q2Q3
工作前要 Load工作循环中的一个状态
§ 4.3 移位寄存器 (Shift Register)
这种设计存在非工作循环:
0000 1111
0011
1001
0110
1100
§ 4.3 移位寄存器 (Shift Register)
移位寄存器型信号发生器
设计方法:
–能确定与 DR相连的组合逻辑函数
–无堵塞:能自行进入工作循环
用途:
–通讯设备的同步系统中,需要产生一些顺序码,用于设备间的同步
–复杂的控制系统,需要有特定的信号序列
§ 4.3 移位寄存器 (Shift Register)
例:设计产生信号序列 101000,101000...
–确定移位寄存器的位数 n
–使 2n≥m。
–信号序列 m=6,n>=3
–先取 n=3,状态中有 010
相同状态
Q0 Q1 Q2
1 0 0
0 1 0
1 0 1
0 1 0
0 0 1
0 0 0
§ 4.3 移位寄存器 (Shift Register)
再取 n=4
Q0 Q1 Q2 Q3
1 0 0 0
0 1 0 0
1 0 1 0
0 1 0 1
0 0 1 0
0 0 0 1 无相同状态
§ 4.3 移位寄存器 (Shift Register)
做卡诺图:
0ΦΦ1
ΦΦΦΦ
ΦΦ00
1Φ0Φ
Q0 Q1 Q2 Q3
1 0 0 0
0 1 0 0
1 0 1 0
0 1 0 1
0 0 1 0
0 0 0 1
Q1
Q0 00 01 11 10Q3Q2
00
01
11
10
3131 QQQQD R
DR影响的是 Q0,因此只要确定 Q0的次态
§ 4.3 移位寄存器 (Shift Register)
得到逻辑图:
S0 DR
S1 _
RD Q0Q1Q2Q3
右移
有无堵塞?
§ 4.3 移位寄存器 (Shift Register)
存在非工作循环:
Q3Q2Q1Q0
工作循环
§ 4.3 移位寄存器 (Shift Register)
需要改动设计:
–在 DR端加逻辑电路,使之经过若干个 CK
之后能进入工作循环。
–取某个非工作循环状态,e.g,0000
–令 0000?1000
–修改卡诺图
§ 4.3 移位寄存器 (Shift Register)
0ΦΦ1
ΦΦΦΦ
ΦΦ00
1Φ01
Q1
Q0 00 01 11 10Q3Q2
00
01
11
10
21031 QQQQQD R
0000状态后进入工作循环 1000,
Q0 Q1 Q2 Q3
1 0 0 0
0 1 0 0
1 0 1 0
0 1 0 1
0 0 1 0
0 0 0 1
0 0 0 0
§ 4.3 移位寄存器 (Shift Register)
修改后的工作循环:
习题:
5.12,5.15,5.34
星期二下午加一次答疑。
地点,8区 4楼