四时序电路状态分析
第四章
时序电路(Sequental Circuits)
4.3 同步时序电路
4.3.1 mealy和moore模型 I
mealy时序电路模型
moore时序电路模型
同步时序电路的记忆电路由触发器构成,存储与更新状态信息。
二组合逻辑模块对输入和触发器输出信息进行转换。输入逻辑产生对触发器的激励,输出逻辑则产生所需输出。
I
O
O
mealy和moore是时序电路最主要的二形式。
mealy时序电路的输出是I、S的函数。 Moore时序电路的输出仅是S的函数。
4.3.2 时序电路的表述。
逻辑图,术语,状态图,符号状态表,代码状态表,激励表,激励方程,定时波形图。 时序电路状态机制中所用变量术语:
输入变量:所有进入时序电路的外部变量。 输出变量:所有从时序电路发出的变量。 状态变量:触发器的输出,亦即时序电路的状态。 激励变量:触发器之输入。因其“激励”触发器改变而得名。激励变量就是触发器的J、K、R、S、D、T端,由输入组合逻辑对输入变量和状态变量逻辑运算产生。状态变量是激励变量的函数。
状态:触发器的内容及输出。时序电路的每个状态都必须是唯一的和不相互模糊。
时序电路的可能状态数 Y=2X(X:触发器数)。 时序电路的当前态(PS:Present state)、下态(NS: Next state)。
Clk
t-1
t
t+1
S
S t-1
S t
S t+1
触发器所表示的时序电路状态只在时钟沿改变,所以以时钟沿分割状态。
现态(当前态)PS:在t时段的状态变量值。 下态(次态)NS:相对于t时段,时钟沿后t+1时段的状态值。
例:简单状态表。
时序电路状态图(state diagram)
用抽象符号表示状态及其转换情况。 mealy型时序状态表示: 例:
X:输入变量。 Y:输出变量。 A、B:表示不同状态。 X/Z:表示 输入/输出。
Moore型时序状态表示:
例:JK触发器moore型状态图表示。
00,,10
Mealy和moore混合型时序状态表示。 例:一个输入变量X,二输出变量Y、Z。
(输出Z只与状态有关,输出Y与状态和X同时有关)
状态:A、B、C、D
输入变量个数决定每个状态转移线数,次态是其它态,也可是原态。
当输入变量较多时,为方便,有时只将状态图中转移到它态的转移线画出。 例:输入X、Y、Z
X/Y
××1
时序电路符号状态表(state table)
三栏:状态栏(电路所有出现状态);
次态栏(各态在各输入组态之次态); 输出栏(各态在各输入组态之输出)。
例:
X’XY X’
Y’
XY/Z
时序电路代码状态表(state table)
在时序电路电路实现时,代表状态的符号必须指定为代码才能在触发器中存储,称之为状态分配(making the state assignment)。
当状态被分配代码后,替代符号状态表中的符号
便生成代码状态表。
例:如上述时序电路状态分配如下:
注意:状态分配可存在不同方案,对电路的实现有影响,后章节讨论。
时序电路的激励表与激励方程。
从代码状态表可得在各种状态和输入组合情况下的触发器所应产生的输出变化,因此,当我们选定触发器后,便可导出每个触发器在所有各种状态和输入组合情况下对其所应产生的激励表。如把激励表中的状态变量、输入变量均作为组合电路的输入看待,则激励表就是求对触发器激励端的激励方程(函数、表达式)的真值表。从真值表自然可设计出激励电路。
则时序电路代码状态表为:
各类型触发器之激励表汇总如下:
(a) JK触发器
Q(t) 0 0 1 1 Q(t) 0 0 1 1
Q(t+1) 0 1 0 1
(c) D触发器 Q(t+1) 0 1 0 1
JK 0X 1X X1 X0 D 0 1 0 1
Q(t) 0 0 1 1 Q(t) 0 0 1 1
(b) SR触发器
Q(t+1) 0 1 0 1
(d) T触发器
Q(t+1) 0 1 0 1
SR 0X 10 01 X0 T 0 1 1 0
注意:
D触发器所需激励值与次态值永远相同,与现态值无关,其激励函数为: D=Q(n+1)
T触发器所需激励值取决于现态和次态的异或,激励函数为:
T
=Q(n)⊕Q(n+1)
例:上例,如选用D触发器,则D触发器的激励表与代码状态表相同,可导出D触发器的激励方程为: 输入变量排序:Fa、Fb、x、y。
Da=f(Fa,Fb,x,y)=
∑(5,13,9,7,15,10) ∑(4,5,3,7,15,2,6,14)
Db=f(Fa,Fb,x,y,)=Z=f(Fa,Fb,x,y)=
∑(11)
卡诺图化简得激励方程:
Da=Fa⋅Fb⋅x⋅y+Fa⋅x⋅y+Fb⋅y
Db=Fa⋅Fb+Fa⋅x+Fb⋅xZ=Fa⋅Fb⋅x⋅y
n
n+1
如选用T触发器,则把代码状态表中按Q与Q
同理上述过程,得T触发器激励方程:
Ta=f(Fa,Fb,x,y)=Tb=f(Fa,Fb,x,y)=
相同激励为0,不同激励为1生成T触发器激励表:
∑(5,7,8,12,14) ∑(2,3,12,13)
Ta=Fa⋅Fb⋅x⋅y+Fa⋅x⋅y+Fa⋅Fb⋅y+Fa⋅Fb⋅y
Tb
=Fa⋅Fb⋅x+Fa⋅Fb⋅x
同理,自行推导SR触发器激励方程:
Sa=Fb⋅y
Ra=Fb⋅x⋅y+x⋅y+Fb⋅y
Sb=Fa⋅x Tb=Fa⋅x
同理,自行推导JK触发器激励方程:
Ja=Fb⋅y
Ka=Fb⋅x⋅y+x⋅y+Fb⋅y
Jb=Fa⋅x Tb=Fa⋅x
激励逻辑实现成本
将上例激励方程逻辑实现可得:
JK:需6与、1或门 ,门输入线需16条。 SR:需6与、1或门,门输入线需16条。 T :需6与、2或门,门输入需线25条。 D :需6与、2或门,门输入线需21条。
通常,JK逻辑实现简单,因其激励存在多个任意项,激励方程可化更简,但需二输入端。
通常,应使门输入线尽量少,所用门电尽量少。 在可编程逻辑实现激励时,门输入线数尽量少是非常有用的。
逻辑实现图(略)。
4.3.3 时序电路分析。(书页159)
要求:根椐逻辑图找出对同步时序电路的输出和状态在输入和时钟作用下变化规律的直观准确的描述,从而得出电路的逻辑功能。
实际分析过程:由逻辑图找状态表、状态图,
需要的话,导出定时图。
分析步骤:
1. 分析电路组成:确定输入、输出变量、触发器的个数和类型。
根据触发器的类型可得知触发器的状态方程。根据触发器的个数可导出电路可能存在的状态,并与输入变量组合列出所需求出次态和输出的各种组态。
2. 据逻辑图列出触发器的激励函数和输出函数。
Et=f(It,St) Ot
=g(It,St
)
3. 将激励函数代入触发器的状态方程得到电路的次态方程。 Sn+1=H(In,Sn)
4. 根椐(2)(3)所得的时序电路次态方程和输出方程可求出所有组态对应之次态和输出,从而完成代码状态表。
5.由状态表画出状态图,需要时画出波形图。 6.根据状态表和状态图分析电路输出随输入变
化规律,找出电路的逻辑功能。
以上步骤可用下述框图表示。
图4.5 同步时序电路分析过程
例:分析下图时序逻辑电路。(书页162)
X
C
图4.6 例4.1时序电路
解:
(1) 两个J-K型触发器,输入X ,输出Z。
J-K 触发器的状态(特性)方程为: Qn+1
=JQ
n
n
+KQ
nn
电路状态:Q1Q2=00、01、10、11。 输入X=0,X =1。 共有八种组态。
(2)激励方程为: J1 J2
=xQ2 K1=x
=x K2=x+Q1
=xQ1Q2
输出方程为: Z得时序电路状态方程为: QQQQ
n+11
(3)根据(1)、(2),将激励方程代入特性方程
n
=xQ2Q1+xQ1=xQ2+
n
n
nnnnn
n+1
2
(x
n
+Q1
)Q
n2
整理得
n+11
=x=x
n
(Q(Q
n1
+Q2
n
) )
n+12
n
n1
+Q2
n
(4)根据状态方程和输出方程,可求得各种组态的次态和输出。结果得状态表。
现态 Q1nQ2n 00 01 10 11
次态Q1Q2 x=0 x=1 00 00 00 00
01 11 11 11
输出Zx=0 x=1 0 0 0 0
0 0 0 1
如用S00、S01、S10、S11分别表示电路四个状态,可得符号形式状态表。
现态 S(tn) S00 S01 S10 S11 次态S(tn+1) x=0 x=1 S00 S01 S00 S10 S00 S11 S00 S11
输出Z(tn)x=0 x=1 0 0 0 0 0 0 0 1
(5)据状态表可画出状态图。
0/0
(6)分析状态图,不难得出,该例是一个用来检测输入序列为1111的检测电路。即每当输入序列连续为4个和4个以上的1时,电路输出Z为1;其它情况输出均为0。
S00为收到1个和多个0状态。 S01为收到1个1状态。 S10为连续收到2个1状态。 S11为收到3个1和多个1状态。 此时输入为1时,输出为1。
图4.7 图4.6电路的状态图
求次态另种方法:
先由激励方程得到各种组态下各触发器激励端的激励值,再根据触发器的激励特性表导出触发器的次态,从而得到电路次态,如下表示。
现态
Q1nQ2n 00 00 01 01 10 10 11 11
输入 x 0 1 0 1 0 1 0 1 次态 Q1n+1Q2n+1
00 01 00 10 00 11 00 11 输出 Zn 0 0 0 0 0 0 0 1 触发器1 J1K1 01 00 01 10 01 00 01 10 触发器2 J2K2 01 11 01 11 01 10 01 10
例:分析下图所示电路。
(参考书页126-128)
QD
C
图4.8 时序逻辑电路分析举例
解:由逻辑图可知:四个D型触发器;没有
输入;四个输出Qa、Qb、Qc、Qd。Moore型电路。
(1)电路的激励方程为:
Da=Qa•Qb•Qc
Db=Qa
Dd
=Qc
Dc
=Qb
(2)触发器的状态方程为:
Qn+1
=D
n
(3)电路的状态方程为:
Qan+1=Qan•Qbn•Qcn
Qbn+1=Qan Qcn+1=Qbn Qdn+1=Qcn
(4)四个触发器,存在16种状态,依次编号为0-16。根据状态方程或D触发器特性表可求得每种状态对应的次态,得电路的状态表。电路的状态即是电路的输出。
现状态号
tn
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
现态 Qd Qc QbQa
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
次状态号 tn+1
1 2 4 6 8 10 12 14 1 2 4 6 8 10 12 14
次态 Qd Qc QbQa
0001 0010 0100 0110 1000 1010 1100 1110 0001 0010 0100 0110 1000 1010 1100 1110
激励值 Qd Qc QbQa
0001 0010 0100 0110 1000 1010 1100 1110 0001 0010 0100 0110 1000 1010 1100 1110
(5)由状态表可得状态图。
(6)分析状态图可知,电路开始无论处于任何状态,在时钟的作用下,最后只在四种状态下按序循环,我们称之为工作状态。工作状态的时序图如4.36所示。
CPQAQBQCQD
图4.10 图4.8电路时序图
图4.9 图4.8时序电路状态图
电路是一个顺序脉冲发生器,输出Qa、Qb、Qc、Qd按时间顺序依次产生宽度为时钟周期脉冲。可将其看作四分频率器。