6.3 同步时序逻辑电路的设计注:只要求用门电路和触发器设计同步时序逻辑电路
6.3.1 一般设计步骤(分析的逆过程)
1) 画出原始状态图 —— 确定电路的输入、输出变量,以及电路应当包括的状态个数,状态转换
2) 状态图化简 —— 合并等价状态等价状态:输入相同的情况下?输出相同、次态也相同
S0 S1
S2S3
0/0
1/1
1/00/00/0
1/1
1/0
0/0
输入 X=0时输入 X=1时
S3,S2等价 S0
S1S2
1/0
0/0
1/0
0/0
1/1
0/0
3) 状态编码,填入状态图,写出状态表
4) 选择触发器类型和个数类型应该考虑器件型号是否容易得到,类型应该尽量少假设电路中共有 M个状态,由于每个触发器只能表示一位二进制数字,总共需要的触发器数目 n有
2n-1 < M ≤2n
5) 根据状态表以可以求出对应触发器的驱动表,进而求出电路的输出方程和驱动方程 ( 根据次态方程求驱动方程 )
6) 检查自启动能力,画逻辑电路图例 1:脉冲序列检测器,连续输入 110时,电路输出 1,
否则输出为 0
1)确定输入输出变量,确定原始状态图电路必然有一个输入 X,一个输出 Z。
要确定已经输入了 110,电路应该能够记忆“已经输入了一个 1,两个 1,110”三种状态。所以电路应该有 4个状态
S0 S1
S3 S2
S0:输入为 0(初始状态 )
S1:输入了 1
S2:输入了 11
S3:输入了 110
1/0
1/0
0/1
0/0 1/0
0/0
0/0
1/0
符合要求的序列,S0?S1?S2?S3
得到原始状态图?化简
2) 化简状态图
S0 S1
S3 S2
1/0
1/0
0/1
0/0 1/0
0/0
0/0
1/0
S0,S3是等价状态
S0 S1
S2
1/0
1/0
0/1
0/0
0/0
1/0
3) 编码,状态图,状态表 S0=00,S1=01,S2=11
00 01
11
Q1Q0
X
0 1
0 0 0 0 / 0 0 1 / 0
0 1 0 0 / 0 1 1 / 0
1 1 0 0 / 1 1 1 / 0
4) 选择触发器 —— 共三种状态,所以需要两个触发器。可以选 JK触发器
nnn QKQJQ 1
0X0X
0XX1
X1X0
1X1X
1XX0
X0X0
011111
011101
010001
100110
000100
000000
ZQ0n+1Q1n+1Q0nQ1nX
输出次态现态输入
K0J0K1J1
驱动信号根据次态表,倒推出驱动表来
1 0
X 1
1 X
X 0 0XQ JK
0X0X
0XX1
X1X0
1X1X
1XX0
X0X0
011111
011101
010001
100110
000100
000000
ZQ0n+1Q1n+1Q0nQ1nX
出次态现态入
K0J0K1J1
驱动信号
0X0X
0XX1
X1X0
1X1X
1XX0
X0X0
0111
0101
0001
1110
0100
0000
ZQ0nQ1nX
出现态入
K0J0K1J1
驱动信号 J0
XXX11
XXX00
10110100
Q1Q0
X
J0=X
K0
X00X1
X11X0
10110100
Q1Q0
X
K0=X
J1
XX101
XX000
10110100
Q1Q0
X
J0=XQ0
K1
X0XX1
X1XX0
10110100
Q1Q0
X
K1=X
Z
X0001
X1000
10110100
Q1Q0
X Z=XQ
1
5) 得到驱动方程和输出方程
6) 逻辑电路图


1
101
00;
QXZ
XKXQJ
XKXJ
X &
CP
1J
1K
C1
1J
1K
C1Q0 Q1
&
Z
7) 检查自启动能力,当电路进入无效状态,是否可以恢复到有效
S0 S1
S2
1/0
1/0
0/1
0/0
0/0
1/0
00 01
11


1
101
00;
QXZ
XKXQJ
XKXJ
)(
)(
10
110
1
1
11
1
0
nn
nnnn
nnn
QQX
XQQXQQ
XXQQXQ



10
X=0?Z=1,Q0=Q1=0
0/1
X=1?Z=0,Q0=1,Q1=1
1/0
输入不是 110,也输出 1,错误
Z
X0001
X1000
10110100
Q1Q0
X Z=XQ
1
原因,X=1
当 Q1Q0=10,输入 X=0时,输出为 1
改成,Z=XQ1Q0
不能自启动的原因就是对卡诺图中的 X做了不恰当的包围。应该回头改变 X的取值,也就是把 X包围入圈,或者不包围入,
再次检查。
X &
CP
1J
1K
C1
1J
1K
C1Q0 Q1
&
Z
改成,Z=XQ1Q0
能否在设计中就考虑自启动能力呢?
S0 S1
S3 S2
1/0
1/0
0/1
0/0 1/0
0/0
0/0
1/0
S0,S3是等价状态
S0 S1
S2
1/0
1/0
0/1
0/0
0/0
1/0
3) 编码,状态图,状态表 S0=00,S1=01,S2=11
00 01
11
Q1Q0
X
0 1
0 0 0 0 / 0 0 1 / 0
0 1 0 0 / 0 1 1 / 0
1 1 0 0 / 1 1 1 / 0
自启动设计方法
011111
011101
010001
100110
000100
000000
ZQ0n+1Q1n+1Q0nQ1nX
输出次态现态输入
K0J0K1J1
驱动信号电路工作顺序,X,Q1n,Q0n? J1K1J0K0,Z? Q1n+1,Q0n+1
直接先求次态方程 Qn+1=f(X,Qn),再回推出 JK,驱动方程
Q1Q0/Z
XX/X11/011/001/01
XX/X00/100/000/00
10110100
Q1Q0
X
Q1Q0/Z
XX/X11/011/001/01
XX/X00/100/000/00
10110100
Q1Q0
X
1 1 / 00 0 / 11 1
1 1 / 00 0 / 00 1
0 1 / 00 0 / 00 0
10X
Q1Q0
与状态表相同注意 XX/X的方格对应输入就是无效状态 10,对应状态表中省略的一行不能为 10
必须等于 0
X X / XX X / X1 0
应该使无效状态的次态能够转入有效状态 00,01,11其中之一,输出 Z能满足要求等于 0?化简画圈时注意
Q1Q0/Z
XX/X11/011/001/01
XX/X00/100/000/00
10110100
Q1Q0
X
不能为 10 必须等于 0
Q0
X1111
X0000
10110100
Q1Q0
X
Q1
X1101
X0000
10110100
Q1Q0
X
Z
X0001
X1000
10110100
Q1Q0
X=0
=0
=0
=1
=0
=0
=00/0
=01/0
Q1n+1=XQ0n Q0n+1=X Z=XQ1Q0
Q0
X1111
X0000
10110100
Q1Q0
X
Q1
X1101
X0000
10110100
Q1Q0
X
Z
X0001
X1000
10110100
Q1Q0
X=1
=1
=0
=1
=1
=0
=10/1
=11/0
Q1n+1=XQ0n+Q1nQ0n Q0n+1=X Z=XQ1
Q1n+1=XQ0n
Q0n+1=X
Z=XQ1Q0
nnn QKQJQ 1
nnnnn
nnnnnnnn
XQQXQQXQ
QXQQXQQQXQQ
0000
1
0
1010110
1
1
)(
)()())((


J0 K0
J1 K1



01
00
0101;
QQXZ
XKXJ
XQKXQJ
nn
JK触发器:
D触发器,Qn+1=D
D1=XQ0n
D0=X
Z=XQ1Q0
小结:
同步时序逻辑电路的设计实际就是 求驱动方程 Y和输出方程 Z。
先根据需求得到状态表和状态图:实际是得到了输入为 X,Qn,输出为 Qn+1,Z这四个变量的真值表选定触发器:其实是确定 触发器的特性方程 Qn+1=f (Qn,Y)
需要把 Y表示成为 f (X,Qn)形式 。
使用组合逻辑设计的方法可以确定 输出方程 Z=f(X,Qn)
第一种设计方法 (课本上 ):
根据 Qn+1=f (Qn,Y)?Y=f’ (Qn,Qn+1)获得输入为 X,Qn 输出为 Qn+1,Z,Y的五个变量的真值表,以组合逻辑电路的设计方法得到 Y=f(X,Qn)
自启动设计方法:
不获取 Y的真值表,根据状态表 (X,Qn,Qn+1,Z)得到次态方程 Qn+1=F(X,Qn),用逻辑代数得到
F(X,Qn)=f(Qn,Y)? Y=f(X,Qn)
8,4,2,1 B CD 真值表二-十进制 十进制
Q
D
Q
C
Q
B
Q
A
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
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
10 0 0 0 0
从 BCD的编码规律出发设计
8421二-十进制同步计数器电路没有输入和输出,
在 CP作用下,改变状态。
需要的是求驱动方程 Y
XXXXXXXX0000100110
XXXXXXXXXXXXXXXX11
011110000110010101
001101000010000100
10110100
Q3Q2Q1Q0
Q3Q2
Q1Q0
XX0110
XXXX11
010001
000000
10110100
Q3
Q3Q2
Q1Q0
1 0 1 0
0 1 XX0010
XXXX11
101101
010000
10110100
Q2
Q3Q2
Q1Q0
1 1 0 1
1 0
1101 0100 1000 0110
0100 1011
0120313 QQQQQQ n
012
1202
1
2
QQQ
QQQQQ n

可以自启动下一页
XX0010
XXXX11
101001
101000
10110100
Q1
Q3Q2
Q1Q0
XX0110
XXXX11
100101
100100
10110100
Q0
Q3Q2
Q1Q0
0 0 0 1
0 1
1 0 0 0
0 1
0130111 QQQQQQ n
010 QQ n
若用 JK触发器构成则需要变换成 JK特性方程形式
301203012
330120301203
1
3
)()(
)(
QQQQQQQQQ
QQQQQQQQQQQQQ n


210201012120212 )( QQQQQQQQQQQQQQ n
101300130111 QQQQQQQQQQQ n
00010 01 QQQQ n
01203
30123 )(
QQQQK
QQQQJ

01102
012
QQQQK
QQJ

01301 ; QKQQJ
J0=K0=1
上一页工作波形
D2 D3 D4,Q2 Q3 Q4波形略
Q1
Rd
D1
cp
cp
CP
D
Q0
Q1
Q2
Q3
① ② ③ ④ ⑤ ⑥ ⑦ ⑧
D
cp
Q0 Q1 Q2 Q3
RD
1 1 0 1
1
1 1
1
1
1
0
1
0
1
1
0
0
1
1
1
4个脉冲以后可从 Q0~ Q3并行 输出 1101
8个脉冲以后可从 Q3串行输出 1101
D
cp
Q0 Q1 Q2 Q3
RD
74LS194功能表输入
Cr
清零
CP
时钟
01 S S
制控串行输入 并行输入号序输出
RL D D
右移左移 3210 DDDD 3210 QQQQ
说明功能
1
2
3
4
5
6
7
8
0
1
1
1
1
1
1
1
×
1






× ×
× ×
1 1
1 0
1 0
0 1
0 1
0 0
× ×
× ×
× ×
1 ×
0 ×
× 1
× 0
× ×
××××
××××
D0 D1 D2 D3
××××
××××
××××
××××
××××
0 0 0 0
Q00 Q10 Q20 Q30
D0 D1 D2 D3
Q1n Q2n Q3n 1
Q1n Q2n Q3n 0
1 Q0n Q1n Q2n
0 Q0n Q1n Q2n
Q00 Q10 Q20 Q30
除清持保并行置数串入左移串入左移串入右移串入右移持保态序
Q3Q2Q1Q0
1
2
3
4
5
6
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
态序 序列 Q2 Q1 Q0 D0
0 0 0 0 1
1 0 0 0 1 0
2 0 0 1 0 1
3 0 1 0 1 1
4 1 0 1 1 1
5 0 1 1 1 0
6 1 1 1 0 0
7 1 1 0 0 0
8 1 0 0 0 1
1 1 1
1
00 01 11 10
0
1
Q1Q0
Q2
态序 序列 Q3Q2Q1Q0 D0
0 1 1 1 1 0
1 1 1 1 1 0 0
2 1 1 1 0 0 0
3 1 1 0 0 0 1
4 1 0 0 0 1 0
5 0 0 0 1 0 0
6 0 0 1 0 0 1
7 0 1 0 0 1 1
15 0 1 1 1 1 0
8 1 0 0 1 1 0
9 0 0 1 1 0 1
10 0 1 1 0 1 0
11 1 1 0 1 0 1
12 1 0 1 0 1 1
13 0 1 0 1 1 1
14 1 0 1 1 1 1
⊙? ⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑
~ ←→↑↓
☆★○●
⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽
①②③④⑤⑥
例,EDCBAF
iV
F
R
D1
D2
DR DS
&G1 &G2
Q Q
DR DS
ET
EP