异步时序电路是指在时序电路中,没有统一的同步时钟脉冲。前面学过的同步时序电路是电路中的触发器在统一的时钟脉冲下发生状态更新的时序电路,电路中的逻辑门和触发器的延时之和必须小于时钟周期,所以在下一个时钟脉冲到来时,电路已经处于稳定状态;而异步时序电路没有统一的时钟,电路状态的改变由它外部输入信号的变化引起。由于没有同步的时钟,异步时序电路通常比具有相同功能的同步时序电路的速度快,但是设计起来更加复杂。
异步时序电路大体可以分为脉冲异步时序电路和电位异步时序电路两类。在脉冲异步电路中,记忆元件通常是触发器,输入信号通常是脉冲,而电位异步电路的记忆元件一般是由带反馈的门电路组成,有时也用触发器,输入的是电平信号。
本章主要内容
& 异步时序电路与同步时序电路的区别
& 脉冲异步时序电路的分析与设计方法
& 电位异步时序电路的分析与设计方法
& 异步时序电路中的竞争和冒险现象
脉冲异步时序电路一般采用触发器作为记忆元件,其内部电路状态的改变取决于输入的脉冲信号的改变,为了确保电路能够可靠地工作,以及电路状态的转换可以预测,电路上的输入脉冲必须满足以下两个条件。
· 不允许在两条或两条以上的的输入信号线上同时加输入脉冲。这是因为输入脉冲之间的时间偏移会导致电路状态的混乱。
· 当前一个脉冲到来所引起的电路响应完全结束后,才允许第二个输入脉冲到来。
在分析与设计脉冲异步时序电路时,还要注意它与同步时序电路的区别。
· 在同步时序电路中,CP不作为控制输入函数,只是统一地加入时钟脉冲;而在异步脉冲时序电路中,CP要作为控制输入函数来考虑。
· 脉冲异步电路的状态转换表要比同步时序电路的简单,因为在同一时刻只有一个脉冲信号输入。
由第二个区别可知,脉冲异步电路的触发器的激励表可以化简。在前面学习异步计数器时提到过,在激励表中不存在脉冲信号的地方不会发生电路状态的转换,所以控制输入端的输入信号也就无关紧要,所以对应的表格里填d。只有在存在脉冲信号的时刻,才按照同步时序电路的方法填写激励表,如表7-1所示。
表7-1 脉冲异步电路激励表
Q Q* |
CP J K |
Q Q* |
CP J K |
0 0 0 1 |
0 d d 1 1 d |
1 0 1 1 |
1 d 1 0 d d |
下面我们分别来介绍脉冲异步电路的分析与设计方法。
举例说明脉冲异步电路的分析过程。
【例7-1】 分析如图7-1所示的脉冲异步电路。
图7-1 某脉冲异步电路逻辑电路图
解:分析过程一般分为5个步骤。
① 根据电路图写出控制输入函数和输出函数。
CP1↓=X,J1=K1=1
CP2↓=Q1',J2=K2=1
CP3↓=Q2',J3=K3=1
Z=XQ1'Q2'Q3'
其中,CP↓表示触发器为下降沿触发。CP↓=1表示脉冲信号出现了1→0的有效跳变。
② 写出电路的状态方程。
该电路的状态方程是:当CP↓=1时,
Q1*=J1Q1'+K1'Q1=Q1'
Q2*=J2Q2'+K2'Q2=Q2'
Q3*=J3Q3'+K3'Q3=Q3'
当CP↓=0时,电路状态保持不变。
③ 作出电路的状态转换表,如表7-2所示。
表7-2 脉冲异步电路状态转换表
输入 X |
现态 |
新态 |
输出 Z | ||||
Q3 |
Q2 |
Q1 |
Q3* |
Q2* |
Q1* | ||
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
续上表 | |||||||
输入 X |
现 态 |
新 态 |
输出 Z | ||||
Q3 |
Q2 |
Q1 |
Q3* |
Q2* |
Q1* | ||
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
在填状态转换表时,要注意只有在存在脉冲信号的跳变时,电路才会发生状态变化,否则状态保持不变。
④ 作出电路的状态转换图与波形图,如图7-2所示。
(a)状态转换图 (b)波形图
图7-2 脉冲异步电路的状态转换图与波形图
⑤ 分析电路逻辑功能。由以上的分析可见,该电路共有8个状态,且在输入脉冲的作用下依次递减,当状态Q3Q2Q1=000时,新态为111且输出为1,表示借位。所以该脉冲异步电路是一个八进制减法计数器。
【例7-2】 分析如图7-3所示的脉冲异步电路。
图7-3 某脉冲异步电路逻辑电路图
解:① 根据电路图写出控制输入函数和输出函数。
CP1=XQ2,D1=Q1'
CP2=X,D2=Q1'
Z=XQ1Q2
② 写出电路的状态方程。
当CP=1时,
Q1*=D1=Q1'
Q2*=D2=Q1'
当CP=0时,电路状态保持不变。
③ 作出电路的状态转换表,如表7-3所示。
表7-3 脉冲异步电路状态转换表
输入 |
现态 |
新态 |
输出 |
输入 |
现态 |
新态 |
输出 | ||||
X |
Q2 |
Q1 |
Q2* |
Q1* |
Z |
X |
Q2 |
Q1 |
Q2* |
Q1* |
Z |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
④ 作出电路的状态转换图和工作波形图,如图7-4所示。
(a)状态转换图 (b)波形图
图7-4 脉冲异步电路状态转换图与波形图
⑤ 分析电路逻辑功能。
由状态转换图可见,该脉冲异步电路是一个三进制异步计数器,且电路不能自启动。当Q2Q1=01时,电路无法再进入有效循环。
以上介绍了脉冲异步电路的分析方法。可见,与同步时序电路的不同之处在于,在写电路的控制输入函数时,要写出CP的函数表达式,而且在填写状态转换表时,要先考虑是否存在有效的脉冲信号,没有脉冲信号到来时,电路保持原态;有脉冲信号时,才按照同步时序电路的方法填表。
脉冲异步电路的设计方法与同步时序电路的设计很相似,不同之处在于脉冲异步电路要把CP作为控制输入函数来考虑。下面给出设计脉冲异步电路的一般步骤。
(1)作出原始状态图和原始状态表。
(2)状态化简。
(3)状态分配。
(4)选定触发器,用卡诺图化简后写出控制输入函数和输出函数的表达式。
(5)画出逻辑电路图。
下面举例来说明设计过程。
表7-4 二进制加法/减法计数器状态转换表
|
图7-5 二进制加法/减法计数器原始状态转换图
【例7-3】 用D触发器设计一个二进制加法/减法计数器。电路的输入线X上加的是串行随机输入脉冲,还有一条输入线M上加电位0或1来控制电路。当M=0时,电路为加法计数器;当M=1时,电路为减法计数器。
解:① 根据题意作出原始状态转换图如图7-5所示,状态转换表如表7-4所示。对于输入X,只需考虑当X=1时的情况。
② 状态化简。由状态转换表可见,这已经是最简的状态表了。
③ 状态分配。用两位二进码给各电路状态赋值如表7-5所示,则可将表7-4改写为表7-6所示。
表7-5 二进制加法/减法计数器状态分配表 表7-6 二进制加法/减法计数器状态转换真值表
状态 Q Q2Q1 A B C D 0 0 0 1 1 0 1 1 现态 Q2 Q1 输入XM 10 11 0 0 0 1 1 0 1 1 01 10 11 00 11 00 01 10
④ 根据状态转换真值表,用卡诺图化简得到控制输入函数的表达式。在填写CP的卡诺图时要注意,当X=0时,无脉冲信号,所以CP对应的方格全部填0。当X=1时,CP对应的值要看状态转换真值表中对应的状态有没有发生变化,若有则填1,无则填0。在填写D的卡诺图时,当CP=0时,填d;CP=1时,才填Q变化所需要的D值,如图7-6所示。
(a)CP1 (b)CP1 (c)D1 (d)D2
图7-6 卡诺图
化简得到控制输入逻辑函数表达式为:
CP1=X,D1=Q1'
CP2=Q1'XM+Q1XM',D2=Q2'
⑤ 画出逻辑电路图如图7-7所示。
【例7-4】 设计一个脉冲异步电路,该电路有两条输入线X1和X2,一条输出线Z,只有在序列X1—X2—X1—X2的最后一个脉冲X2出现时,输出才会从0跳变到1。在输出从0跳变到1以后,只有出现下一个X1脉冲时,输出才会从1复位到0。
解:由题意,可画出该电路的波形图,如图7-8所示。
图7-7 二进制加法/减法计数器逻辑电路图 图7-8 脉冲异步电路波形图
① 作出原始状态图和状态转换表。
根据题意,设A为初始状态,输出为0。如果输入一个X1脉冲,则进入状态B,输出仍为0;如果输入的是X2脉冲,则保持状态A,输出为0。状态B表示接收到一个X1脉冲。当系统处于状态B,若再收到一个X1脉冲,则状态停留在B,输出为0;若收到一个脉冲X2,则状态变为C,输出为0。状态C表示系统接收到X1—X2脉冲序列。当系统处于状态C时,若收到一个脉冲X2,则状态回到A,输出为0;若收到一个脉冲X1,电路进入状态D,输出为0。状态D表示收到脉冲序列X1—X2—X1。当电路处于状态D,若再收到一个脉冲X1,则电路回到状态B,输出为0;若收到一个脉冲X2,则电路进入状态E,输出为1。状态E表示电路接收到脉冲序列X1—X2—X1—X2。当电路处于状态E时,若收到一个脉冲X1,则电路回到状态B,输出Z=0;若收到一个脉冲X2,电路仍停留在状态E,输出仍为1。其状态转换图如图7-9所示。
表7-7 脉冲异步电路状态转换表 现态 次态 输出 X1 X2 Z A B A 0 B B C 0 C D A 0 D B E 0 E B A 1
对应状态转换图,可以列出状态转换表,如表7-7所示。
图7-9 脉冲异步电路状态转换图
② 状态化简。
该状态表已经是最简的,无需再化简。
③ 状态分配。
该电路共有5个状态,因此需要3个状态变量。根据前面在学习同步时序电路时所学过的状态分配原则来进行状态分配。
根据原则1,应给AC、AE、CE、AB、DE、BD分配以逻辑相邻的二进制代码。
根据原则2,应给AB、BC、AD、BE分配以逻辑相邻的二进制代码。
图7-10 状态分配卡诺图 |
综合考虑后一种分配方案,如卡诺图7-10所示。
④ 求控制输入函数和输出函数。
列出编码后的状态转换激励表如表7-8所示。
表7-8 脉冲异步电路状态转换激励表
现态 Q3Q2Q1 |
新态Q3*Q2*Q1* |
输出 Z |
CP3CP2CP1 |
D3D2D1 | |||
X1 |
X2 |
X1 |
X2 |
X1 |
X2 | ||
000 001 010 011 100 |
001 001 001 001 010 |
000 100 011 011 000 |
0 0 0 1 0 |
001 000 011 010 110 |
000 101 001 000 100 |
dd1 ddd d01 d0d 01d |
ddd 1d0 dd1 ddd 0dd |
用卡诺图化简(这里的卡诺图要用到五变量卡诺图的化简,略去不画,请读者重点学习设计过程),可以得到控制输入函数和输出函数的逻辑表达式为:
CP3=X1Q3+X2Q1+X2Q3, D3=X2Q3'Q2'
CP2=X1Q2+X1Q3, D2=X1Q3
CP1=X1+X2, D1=X1Q3'+X2Q2
Z=Q3'Q2Q1
⑤画出逻辑函数电路图,如图7-11所示。
图7-11 脉冲异步电路逻辑电路图