第6章时序逻辑电路(全)

更新时间:2023-03-13 21:03:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第6章 时序逻辑电路

内容摘要

本章系统讲授时序逻辑电路的基本工作原理和分析、设计方法。从电路结构和逻辑功能等方面概要地讲述了时序逻辑电路的特点、分类及其逻辑功能的表示方法。详细介绍了时序逻辑电路电路的具体分析方法和步骤。重点讲述了同步时序逻辑电路的设计方法和设计步骤,包括原始状态表的建立、状态表的化简、状态分配、求取驱动方程等。分别介绍了计数器、寄存器、顺序脉冲发生器及序列信号发生器等各类常用中规模时序集成逻辑器件的工作原理和使用方法。

6.1 时序逻辑电路概述

6.1.1 时序逻辑电路特点

逻辑电路有两大类:一类是组合逻辑电路;另一类是时序逻辑电路。组合逻辑电路的输出只与当时的输入有关,而与电路以前的状态无关。时序逻辑电路是一种与时序有关的逻辑电路,它以组合电路为基础,又与组合电路不同。时序逻辑电路的特点是,在任何时刻电路产生的稳定输出信号不仅与该时刻电路的输入信号有关,而且还与电路过去的状态有关。所以时序逻辑电路都是由组合电路和存储电路两部分组成。下面分析图6-1所示的电路说明时序逻辑电路的特点。

电路由两部分组成:一部分是由一位全加器构成的组合电路,一部分是由D触发器构成的存储电路。Ai,Bi为串行数据输入,Si-1为串行数据输出。A0,B0作为串行数据输入的第一组数送入全加器,产生第一个本位和输出S0及第一个进位输出C0,当CP上升沿到达时,C0作为D触发器的驱动信号到达Q端,成为全加器第二次相加的Ci-1信号。可见,全加器执行Ai,Bi,Ci-1三个数的相加运算,D触发器负责记录下每次相加后的进位结果。由以上分析可知,图6-1的逻辑功能是串行加法器。它的结构、特点与组合电路完全不同。

时序逻辑电路的结构如图6-2所示,它由组合逻辑和存储电路两部分构成。图中X(x1,x2,…,xi)为时序电路的外部输入;Y(y1,y2,…,yj)为时序电路的外部输出;Q(q1,q2,…, ql)为时序电路的内部输入(或状态);Z(z1,z2,…,zk)为时序电路的内部输出(或称驱动)。

时序电路的组合逻辑部分用来产生电路的输出和驱动,存储电路部分是用其不同的状态(q1,q2,…, ql)来“记忆”电路过去的输入情况。时序电路就是通过存储电路的不同状

qlAiBiCi-1∑CICOFFCiSiQQ'1D1C图6-1串行加法器CP...xi...q......组合逻辑...x1yy1j1z存储电路1zk态,来记忆以前的状态。设时间t时刻记忆元件的状态输出为Q (q1,q2,…,ql),称为时序电路的现态。那么,在该时刻的输入X及现态Q的共同作用

图6-2 时序逻辑电路结构...下,组合电路将产生输出Y及驱动Z。而驱动用来建立存储电路的新的状态输出,用图6-2

**所示时序电路逻辑功能的一般表达式为q1*,q2,...,ql表示,称为次态。

这样时序电路可由下述表达式描述:

yn?fn(x1,x2,...,xi,q1,q2,...,ql) n=1,2,…,j (6-1)

zp?zp(x1,x2,...,xi,q1,q2,...,ql)

p=1,2,…,k (6-2) m=1,2,…,l (6-3)

qm?qm(x1,x2,...,xi,q1,q2,...,ql)

*式(6-1)称为输出方程,式(6-2)称为驱动方程(或激励方程),式(6-3)称为状态方程。上述方程表明,时序电路的输出和次态是现时刻的输入和状态的函数。需要指出的是,状态方程是建立电路次态所必需的,是构成时序电路最重要的方程。

6.1.2 时序逻辑电路分类

时序电路可以分为两大类:同步时序电路和异步时序电路。同步时序电路中,电路的状态仅仅在统一的时钟信号控制下才同时变化一次。如果没有时钟信号,即使输入信号发生变化,它可能会影响输出,但不会改变电路的状态。

在异步时序电路中,存储电路的状态变化不是同时发生的。这种电路中没有统一的时钟信号。任何输入信号的变化都可能立刻引起异步时序电路状态的变化。

此外,有时还根据输出信号的特点将时序电路划分为米利(Mealy)型和穆尔(Moore)型两种。米利型电路的输出信号不仅取决于存储电路的状态,而且还取决于输入变量。米利型电路的输出是输入变量和现态的函数。而在穆尔型电路中,输出信号仅仅取决于存储电路的状态。可见,穆尔型电路只不过是米利型电路的一种特例而已。

鉴于时序电路在工作时是在电路的有限个状态之间按一定的规律转换的,因此在有些文献中又将时序电路称为有限状态机(Finite State Machine)或算法状态机(Algorithmic State Machine)。它是一个从实际中抽象出来的数学模型,用来描述一个系统的操作特性。

由于时序逻辑电路与组合逻辑电路在结构和性能上不同,因此在研究方法上两者也有所不同。组合电路的分析和设计所用到的主要方法是真值表,而时序电路的分析和设计所用到的工具主要是状态转换表(简称状态表)和状态图。

6.1.3 时序电路逻辑功能表示方法

时序电路中用“状态”来描述时序问题。使用“状态”概念后,我们就可以将输入和输出中的时间变量去掉,直接用表示式来说明时序逻辑电路的功能。所以“状态”是时序电路中非常重要的概念。

我们把正在讨论的状态称为“现态”,用符号Q表示;把在时钟脉冲CP作用下将要发生的状态称为“次态”,用符号Q*表示。描述次态的方程称为状态方程,一个时序电路的主要特征是由状态方程给出的,因此,状态方程在时序逻辑电路的分析与设计中十分重要。 用于描述时序电路状态转换全部过程的方法主要是状态表和状态图。它们不但能说明输出与输入之间的关系,同时还表明了状态的转换规律。两种方法相辅相成,经常配合使用。

一、状态表

在时序电路中状态转换关系用表格方式表示,称为状态表。具体做法是将任意一组输

入变量及存储电路的初始状态取值,代入状态方程和输出方程表达式进行计算,可以求出存储电路的下一状态(次态)和输出值;把得到的次态又作为新的初态,和这时的输入变量取值一起,再代入状态方程和输出方程进行计算,又得到存储电路新的次态和输出值。如此继续下去,将全部的计算结果列成真值表的形式,就得到了状态表。

例6-1 用状态表来表示图6-3所示米利型时序电路。

x“1”1TC1Q1Q1'1TC1Q2Q2'yCP图6-3 例6-1米利型时序电路

解 该电路的输入为x,输出为y?xQ2',设触发器Q2和Q1的初始状态为Q2Q1?00。若x=0,则当第一个CP脉冲到来时,由于T1=1,触发器Q1翻转为1,而T2=0,触发器Q2保持0不变,即Q2 Q1转换为01,输出y=0;同理,第二个CP脉冲到来时,Q2 Q1转换为10,y=0;第三个脉冲到来时,Q2 Q1转换为11,y=0。依次类推,当x=0时,Q2 Q1的状态转换规律为00?01?10?11?00?...,输出y总为0。

同理可以分析出,当x=1时,Q2 Q1的状态转换规律为00出y相应为1?0?0?1?1?...。

?11?10?01?00?...,输

表6-1 例6-1的状态表

该电路内部状态有四个:00,01,10和11,分别用状态q0,q1,q2和q3来表示。由此列出状态表如表6-1所列。

表格上方从左到右列出输入的全部组合,表格左边从上到下列出电路的全部状态作为现态,表格的中间列出对应不同输入和现态下的次态和输出。如表格中间部分的第二行第一列的单元格表示,处于状态q1(Q2 Q1=01)的时序电路,当输入x=0时,输出y=0,在时钟脉冲CP的作用下,电路进入次态q2(Q2 Q1=10)。

例6-2 用状态表来表示图6-4所示穆尔型时序电路。

“1”1TC1Q1Q1'1TC1Q2Q2'现 态 q0 q1 q2 q3 输入 x 0 q1/0 q2/0 q3/0 q0/0 1 q3/1 q0/1 q1/0 q2/0 yxCP图6-4 例6-2的穆尔型时序电路

解 该电路的工作情况与图6-3相同。输出y=Q2Q1,它与电路的输入x无关,而只与电路的状态有关,因此是一个穆尔型时序电路。当输入x=0时,Q2Q1的状态转换规律为

00?01?10?11?00?...,相应的输出

的状态转换为00?11?10?01?00y为0?0?0?1?0?...;当输入x=1时,Q2 Q1

?...,相应的输出y为0?1?0?0?0?...。同样,

该电路内部状态有四个:00,01,10和11,分别用状态q0,q1,q2和q3来表示。

由此列出状态表,如表6-2所示。

表6-2 例6-2的状态表

由于穆尔型时序电路的输出y仅与电路的状态有关,所以将输出单独作为一列,其值完全由现态确定。以表6-2中第二行(现态为q1的行)为例说明时序电路状态表的读法:当电路处于状态q1(Q2 Q1=01)时,输出y=0。若输入x=0,在时钟脉冲CP的作用下,电路进入次态q2(Q2 Q1=10);若输入x=1,则在时钟脉冲CP的作用下,电路进入次态q0(Q2 Q1=00)。

二、状态图

在时序逻辑电路中状态转换关系用图形方式表示,称为状态图(或状态转换图)。 米利型时序电路的状态图如图6-5所示。在状态图中,每一个状态qi用一个圆圈表示,用带箭头的直线或弧线表示状态的转换方向,并把引起这一转换的输入条件和相应的输出条件标注在有向线段的旁边(x/y)。例如,可将图6-3所示电路的状态表描述为图6-6所示的状态图。

x/yq穆尔型时序电路的状态图中,输出y与状态q写在qii+1现态 q0 q1 q2 q3 输入x 0 q1 q2 q3 q0 1 q3 q0 q1 q2 输出y 0 0 0 1 一起,表示y只与状态有关,即在圆圈内标以q/y;输入仍标在有向线段的旁边。上例图6-4电路的状态图如图6-7所示。

0/0图6-5米利型电路状态图0q0/00q1/11/11/01/0q/00q/01110/001110q3q0/02q/13q/020图6-6 例6-1电路的状态图

图6-7 例6-2电路的状态图

6.2 时序逻辑电路的分析

时序逻辑电路的分析,就是对于一个给定的时序逻辑电路,研究在一系列输入信号作用下,电路将会产生怎样的输出,进而说明该电路的逻辑功能。

6.2.1 同步时序逻辑电路分析

同步时序电路分析的一般步骤:

(1) 从给定的逻辑电路图中写出各触发器的驱动方程(即每一触发器输入控制端的函数表达式,有的书也称为激励方程)。

(2) 将驱动方程代入相应触发器的特性方程,得到各触发器的状态方程(又称为次态方程),从而得到由这些状态方程组成的整个时序电路的状态方程组。

(3) 根据逻辑电路图写出输出方程。

(4) 根据状态方程、输出方程列出电路的状态表,画出状态图。 (5) 对电路可用文字概括其功能,也可做出时序图或波形图。

例6-3 分析如图6-8所示时序逻辑电路。

x“1”1JC11KCPQ1Q1'1JC11KQ2FQ2'

解 该时序电路由2个JK触发器和门电路构成,为同步时序电路,因此时钟脉冲CP方程可以省略。

(1)由给定电路图写出驱动方程 驱动方程:??J1?K1?1?J2?K2?x?Q1图6-8 例6-3的时序逻辑电路 (6-4)

(2)将驱动方程代入相应触发器的特性方程,求各触发器的状态方程

*??Q1?J1?Q1'?K1'?Q1?Q1'?*??Q2?J2?Q2'?K2'?Q2?x?Q1?Q2 (6-5)

(3)根据逻辑电路图写出输出方程为

F?((x?Q1?Q2)'?(x'?Q1'?Q2')')'?x?Q1?Q2?x'?Q1'?Q2'

(6-6)

(4)为便于画出电路的状态图,由状态方程和输出方程列出状态表,如表6-3所示。 根据表6-3可以画出对应的状态图,如图6-9所示。

表6-3 例6-3电路的状态表

Q2Q1/F x **Q2Q1 00 01/1 11/0 01 10/0 00/0 11 00/0 10 Q2Q1x/F0/1001/00/01/01/01/1010/00 1 11/0 10/1 01/0 110/010图6-9 例6-3电路的状态图

(5)由状态图可看出,该时序电路是一个模4的可逆计数器。当x=0时,实现模4加法计数,在时钟脉冲CP作用下,Q2 Q1从00到11递增又返回00,每经过4个时钟脉冲后,电路的状态循环一次。同时在输出端F输出一个进位脉冲。当x=1时,电路进行减1计数,

实现模4减法计数器功能,F是借位输出信号。

电路的时序波形如图6-10所示。

CPxQ1Q2F图6-10 例6-3电路的时序图

例6-4 时序电路如图6-11所示,试分析其功能。

1DC1Q1Q1'1DC1Q2Q2'1DC1Q3Q3'CP

解 该电路为同步时序电路。电路的驱动方程为 D1?Q3'; D2?Q1; D3?Q2 (6-7) 状态方程为 Q1*?Q3';

Q*2图6-11 例6-4的时序逻辑电路?Q1; Q3?Q2

* (6-8)

***电路初始状态设为Q3Q2Q1?000,代入式(6-7)和式(6-8)求出电路的次态Q3Q2Q1?001,

将这一结果作为新的现态,按同样方法代入式(6-7)和式(6-8)求得电路新的次态,如此

***继续下去,直至次态Q3Q2Q1?000,返回了最初设定的初始状态为止。最后检查状态表是否

包含了电路所有可能出现的状态。检查结果发现根据上述计算过程列出的状态表中只有6种状态,缺少Q3Q2Q1?010和Q3Q2Q1?101两个状态。将这两个状态代入式(6-7)和式(6-8)计算,将计算结果补充到状态表中,得到完整的状态表,如表6-4所示。画出电路状态图,如图6-12所示。

表6-4 例6-4电路的状态表 Q3 Q2 Q1 Q3* Q2 *Q1*

0000010110100 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0

Q3Q2Q1100110111101图6-12例6-4电路的状态图由状态图可以看出,若电路进入Q3Q2Q1?010或Q3Q2Q1?101状态时,它们自身成为一个无效的计数序列,经过若干节拍后无法自动返回正常计数序列,须通过复位才能正常工作,这种情况称电路无自启动能力。该电路为六进制计数器,又称为六分频电路。所谓分频电路是将输入的高频信号变为低频信号输出的电路。六分频是指输出信号的频率为输入信号频率的六分之一,即

fout?16fcp (6-9)

其时序波形如图6-13所示。

CPQ1Q2Q3图6-13 例6-44电路的时序图

6.2.2 异步时序逻辑电路分析

异步时序电路的分析方法和同步时序电路的分析方法有所不同。在异步时序电路中,不同触发器的时钟脉冲不相同,触发器只有在它自己的CP脉冲的相应边沿才动作,而没有时钟信号的触发器将保持原来的状态不变。因此异步时序电路的分析应写出每一级的时钟方程,具体分析过程比同步时序电路复杂。

例6-5 已知异步时序电路的逻辑图如图6-14所示,试分析其功能。

1JCPC1“1”1KQ1“1”Q1'1JC11KQ2Q2'“1”1JC11KQ3Q3'图6-14 例6-5的异步时序逻辑电路

解 由图可知,电路无输入控制变量,输出则是各级触发器状态变量的组合。第一级和第三级触发器公用一个外部时钟脉冲;第二级触发器的时钟由第一级触发器的输出提供,因此电路为穆尔型异步时序电路。

各触发器的驱动方程

?J1?Q3'??J2?1?J?QQ12?3?K1?1??K2?1 ?K?1?3 (6-10)

列出电路的状态方程和时钟方程

*?Q1?Q1'Q3';(CP1?CP?)??*?Q2?Q2';(CP2?Q1?)?*Q?Q1Q2Q3';(CP3?CP?)??3 (6-11)

状态方程(6-11)式仅在括号内触发器时钟下降沿才成立,其余时刻均处于保持状态。在列写状态表示时,须注意找出每次电路状态转换时各个触发器是否有式(6-11)括号内写入量的下降沿,再计算各触发器的次态。

*当电路现态Q3Q2Q1?000时,代入Q1和Q3的次态方程,可得在CP作用下Q1*?1,Q3?0,

此时Q1由0?1产生一个上升沿,用符号?表示,而CP2=Q1,因此Q2处于保持状态,即

Q2?Q2?0。电路次态为

*001。

0*当电路现态为001时,Q1*?0,Q3?0,此时Q1由1?产生一个下降沿,用符号?表

示,Q2翻转,即Q2由0?1,电路次态为010,依此类推,列出电路状态表图表6-5所示。

表6-5 例6-5电路的状态表 现 态 时钟脉冲 次 态 CP1=CP ??????*Q3 Q3 0 0 0 0 1 1 Q2 0 0 1 1 0 0 Q1 0 1 0 1 0 1 CP3=CP CP2=Q1 ??????Q2 **Q1 ???? 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 ? ? ? 1 1 0 0 0 1 0 ? ? ? 1 1 1 0 0 0 根据状态表画出状态图如图6-15所示。该电路是异步3位五进制加法计数器,且具有自启动能力。

110Q3Q2Q1111000001010101100011图6-15 例6-5电路的状态图

电路时序波形如图6-16所示。

CPQ1Q2Q3图6-16 例6-5电路的时序图

6.3 同步时序逻辑电路的设计

时序逻辑电路的设计过程是分析的逆过程,就是要求设计者根据给出的具体逻辑功能,求出实现这一逻辑功能的逻辑电路。所得到的设计结果应力求最简,即电路所使用的触发器和门电路的数目及输入端数目最少,或集成电路数目、种类最少,且互相连线也较少。本节只讨论同步时序电路的设计。

一般时序电路的设计可按下列步骤进行。

(1)根据逻辑问题的文字描述,建立原始状态表。进行这一步时,可借助原始状态图,再构成原始状态表。

建立原始状态图的具体做法是:首先分析给定的逻辑功能,确定输入变量和输出变量,确定有多少种输入信息需要“记忆”,并对每一种需“记忆”的输入信息规定一种状态来表示;其次分别以上述状态为现态,考察在每一个可能的输入组合作用下,应转入哪个状态及相应的输出,便可求得符合题意的状态图。

这一步得到的状态图和状态表是原始的,其中可能包含多余的状态。

(2)采用状态化简方法,将原始状态表化为最简状态表。状态化简的规则是:若两个电路状态在相同输入下有相同的输出,并且转换到同一个次态去,则这两个状态为等价状态,两个状态可以合并为一个状态,而不改变输入输出的关系。通过合并等价状态可以达到状态简化的目的。

(3)在得到简化的状态图后,要对每一个状态指定1组二进制代码,称为状态分配(或状态编码)。时序电路的状态是用触发器状态的不同组合来表示的。状态分配就是给这些触发器指定状态,每个触发器的状态组合都是一组二进制代码。如果编码方案得当,设计结果可以很简单。一般选用的状态编码都遵循一定的规律,如自然二进制码、移存码、循环码等。编码方案确定后,根据简化的状态图,画出编码形式的状态图及状态表。

(4)选定触发器类型。根据编码后的状态表及触发器的特性方程,求得电路的输出方程和各触发器的驱动方程。

(5)根据驱动方程和输出方程画出所要求的逻辑图。

(6)检查电路能否自启动,如不能自启动,则需采取措施加以解决。

6.3.1 建立原始状态表

建立原始状态表的方法可以先借助于原始状态图,画出原始状态图以后再列出原始状态表。建立原始状态图至今尚没有一个系统的方法,目前多采用的方法仍然是经验法。对于一个时序电路应该考虑包括几个状态,状态间如何进行转换以及怎样产生输出等内容。

画原始状态图的一般过程是:根据文字描述的设计要求,先假定一个初始状态,从初始状态开始,每加入一个输入,就可以确定一个次态(该次态可能是现态本身,也可以是另一个状态,或者是新增加的一个状态)和输出。这个过程一直到每个现态向其次态的转换都已经考虑,并且不再增加新的状态为止。

例6-6 试列出一个5进制的加1和加2计数器的状态表。

解 对于5进制计数器应有5个独立状态,用S0~S4分别表示十进制数的0~4。计数器既可加1计数,又可加2计数,故要设置控制信号x。设x=0时,做加1计数;x=1时,做加2计数。y为输出,表示计满5个脉冲。由此,可以直接画出图6-17所示的状态图及表6-6所示的状态表。

表6-6 例6-6的状态表

x/yS40/00/11/1S00/01/0S1x Q S0 S1 S2 S3 S4 0 S1/0 S2/0 S3/0 S4/0 S0/1 1 S2/0 S3/0 S4/0 S0/1 S1/1 1/11/0S30/01/00/0S2

例6-7 设计一个串行数据检测器,该电路具有一个输入端x和一个输出端y。输入为一连串随机信号,当出现连续3个或3个以上的1时,输出为1,其它输入情况输出为0。例如

输入序列 1 0 1 1 0 0 1 1 1 0 1 1 1 1 0 输出序列 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0

解 设电路在没有输入1以前的初始状态为A,当第一次输入1时,电路由状态A转入状态B,输出0;连续输入两个1时,电路由状态B转入C,并输出0;第三个信号继续输入1时,电路由状态C转入D,并输出1;此后若电路继续输入1,电路仍停留在状态D,并输出1。当输入一个0时,不管当前电路处于何种状态,电路都将回到初始状态A,电路重新记录连续输入1的个数。

根据上面的分析可得检测器的原始状态图如图6-18所示和状态表如表6-7所示。

表6-7 例6-7的状态表

0/01/0图6-17 例6-6的状态图x A0/00/00/0B1/0 Q A B C D 0 A/0 A/0 A/0 A/0 1 B/0 C/0 D/1 D/1 D1/11/1Cx/y

图6-18 例6-7的状态图6.3.2 状态表的化简

根据设计要求建立的原始状态表,可能会引入多余的状态。因此,在得到原始状态表后,下一步工作就是进行状态表的化简。消去原始状态表中的多余状态,尽量减少所需状态的数目,使实现它的电路最简单。状态表可分为两类,一种是完全定义机(或完全描述时序机)状态表;另一种是不完全定义机(或不完全描述时序机)状态表。两种状态表的化简方法有所不同,本节将分别介绍完全定义机和不完全定义机两类状态表化简的具体步骤。

一、完全定义机状态表的化简

所谓完全定义机是指其状态表中的次态和输出都能完全确定。不完全定义机是指其状态表中的次态和输出不能完全确定,即存在不确定的次态和输出。不完全定义机在实际中会

经常遇到。如基本RS触发器不允许同时输入0就是其中一例。有时,即使是完全定义机,往往在给其状态表的状态进行二进制编码时,也会使完全定义机变成不完全定义机。

在介绍完全定义机状态表化简方法之前,先引入等价的几个概念。 (1)等价的概念

等价状态:设qa和qb是时序电路状态表的两个状态,如果从qa和qb开始,任何加到时序电路上的输入序列均产生相同的输出序列,则称状态qa和qb是等价状态或等价状态对,并记为(qa, qb)或{qa, qb}。等价状态可以合并。

等价状态的传递性:若状态qa和qb等价,状态qb和qc等价,则状态qa和qc也等价,记为(qa,qb),(qb,qc)?(qa,qc)。

等价类:彼此等价状态集合,称为等价类。如若有(qa, qb)和(qb, qc),则有等价类(qa, qb, qc)。

最大等价类:若一个等价类不是任何别的等价类的子集,则此等价类称为最大等价类。 根据上述定义,可以把两个状态合并为一个状态的条件归纳为两点: 第一:在各种输入取值下,它们的输出完全相同。

第二:在满足第一个条件的前提下,它们的次态满足下列情况之一,即 ① 两个次态完全相同;

② 两个次态为其现态本身或交错;

③ 两个次态的某一后继状态可以合并;

④ 两个次态为状态对循环中的一个状态对。

上述两个条件必须同时满足,而第一个条件是状态合并的必要条件。

原始状态表化简的根本任务在于找出最大等价类,并且每个最大等价类用一个状态来代替。下面介绍具体化简方法。

(2)化简方法—隐含表法

隐含表法又称为表格法,它是一种有规律的方法。它的基本思想是:首先对原始状态表中的所有状态都进行两两比较,找出等价对;然后利用等价状态的传递性,得到等价类,最大等价类;最后建立最小化状态表。

① 画隐含表。隐含表是一个直角边格数相等的三角形矩阵。设原始状态表中有n各状态q1~qn,在隐含表的垂直方向从上而下排列q2, q3, …, qqn;水平方向自左向右排列q1, q2, …, qn-1。简单地说,q23示。

② 顺序比较。顺序比较隐含表中各状态之间的关系,并将比较结果填入小方格内。

如果两个状态的输出完全相同,次态也相同,或者为现态本身或交错,表示两个状态等价,则在隐含表相应小方格内打“√”。

如果两个状态的输出不同,表示这两个状态不等

qqq...n-2n-1n垂直方向“缺头”,水平方向“少尾”。隐含表中每一个小方格表示一个状态对。隐含表的格式如图6-19所

qq12q3...qn-2qn-1图6-19 隐含表格式价,则在隐含表相应小方格内打“×”。

如果不能确定两个状态是否等价,需要进一步追踪比较,则在相应的小方格内填上两个状态的次态对。

③ 关联比较。关联比较是确定步骤②中的待定状态对是否等价。这一步在隐含表上直接进行,以追踪后续状态对的情况。若后续状态对等价或出现循环,则这些状态对都是等价

的;若后续状态对中出现不等价,则在它以前的状态对都是不等价的。

④ 找最大等价类,作最简状态表。关联比较后,根据等价状态的传递性,可确定最大等价类。每个最大等价类可以合并为一个状态,并用一个新符号表示。

注意:不与其它任何状态等价的单个状态也是一个最大等价类。 例6-8 化简表6-8所给出的原始状态表。

表6-8 例6-8的原始状态表 x Q A B C D 0 D/0 D/0 D/0 D/0 1 B/0 C/0 C/1 B/0 解 化简步骤如下:

① 画隐含表,如图6-20所示。

② 顺序比较。需要注意,每个状态都要与其他状态比较一次,将每次比较的结果填入隐含表内。如A状态和D状态比较,在x=0和x=1时,它们的输出和次态均相同,因此A和D为等价状态对,在A和D交叉的方格上画“√”。再如,A和C状态比较时,发现在x=1时,输出不同,A和C不可能等价,故在方格中打上“×”。再如,比较A和B状态,在x=0和x=1时,它们的输出分别相同,且x=0时次态相同,x=1时

次态分别为B和C,B和C是否等价还不知道,所以将B和C作为待比较的条件填入,依此类推,比较结果如图6-20所示。

③ 关联比较,隐含表中考察状态对AB,若要AB等价,就需要BC等价。但隐含表中BC不等价,因此AB也不等价。同理,BD也不等价,即

AB?BC?? BD?BC??

④ 列最大等价类。由关联比较结果,可得最大等价类为(A, D), (B), (C)。 令Q1?{A,D},Q2?{B},Q3?{C},得最简状态表如表6-9所示。 表6-9 例6-8的最简状态表 x Q Q1 Q2 Q3 0 Q1/0 Q1/0 Q1/0 1 Q2/0 Q3/0 Q3/1 BBCC××D√BC×ABC图6-20 例6-8的隐含表

例6-9 化简表6-10所给出的原始状态表。 表6-10 例6-9的原始状态表 x1x2 Q A B C 00 D/0 C/1 C/1 01 D/0 D/0 D/0 11 F/0 E/1 E/1 10 A/0 F/0 A/0 D E F G H D/0 C/1 D/0 D/0 B/1 B/0 F/0 D/0 G/0 D/0 A/0 E/1 A/0 A/0 E/1 F/0 A/0 F/0 A/0 A/0

解 ① 画隐含表,如图6-21所示。

② 顺序比较。在两个状态比较时,必须在输入变量四种组合所对应的输出都分别相同时,两个状态才有可能等价。比较方法与例6-8相同。比较结果填入隐含表中,如图6-21所示。

③ 关联比较。由图6-21中隐含表追踪的结果是:由于AF是等价对,导致BC是等价对;由于BC是等价对,导致CH也是等价对;AF及BC都是等价对,导致BH是等价对。分析结果用图6-22(a)所示的连锁关系来表示。

(AF)(BC)(BH)(CH)[DB][AD][DF][CE][BE][BG][EH][DG][FG]BCDEF××[AF][BD]×√×××[BD][AF][BG]×D××[BC][DF]E[AF][DG]×F×G[AF][DF][DF]××××√[AF]G[DG]H×A(AF)(BC)(BC)BC图6-21 例6-9的隐含表[DG](a)(b)(c)

图6-22(b)和(c)所示的是不等价的连锁关系。图6-22中圆括号内的状态表示等价状态对,放括号内的状态表示不等价状态对。

④ 找最大等价类,作最简状态表。由隐含表查得等价对为 (A, F), (B, C), (B, H), (C, H)

根据等价状态的传递性,得最大等价类 (A, F), (B, C, H), (D), (E), (G)

令Q1?{A,F},Q2?{B,C,H},Q3?{D},Q4?{E},Q5?{G},得最简状态表如表6-11所示。

表6-11 例6-9的最简状态表 x1x2 Q Q1 Q 2 Q 3 Q 4 Q 5

00 Q 3/0 Q 2/1 Q 3/0 Q 2/1 Q 3/0 01 Q 3/0 Q 3/0 Q 2/0 Q 1/0 Q 5/0 11 Q 1/0 Q 4/1 Q 1/0 Q 4/1 Q 1/0 10 Q 1/0 Q 1/0 Q 1/0 Q 1/0 Q 1/0 图6-22 例6-9的等价和不等价状态对的连锁关系二、不完全定义机状态表的化简

不完全定义机状态表的化简是建立在状态相容的基础上的。为此先讨论相容的几个概念。

(1)相容的概念

相容状态:设A和B是时序电路状态表中的两个状态,如果从A和B开始,任何加到时序电路上的有效输入序列均产生相同的输出序列(除不确定的那些位外),则状态A和B是相容的,记作(A,B)。相容状态可合并。 注意:相容没有传递性。例如状态A和B相容,状态B和C相容,则状态A不一定和C相容。

相容类:所有状态之间都是两两相容的状态集合。

最大相容类:若一个相容类不是其他任何相容类的子集时,则称此相容类为最大相容类。

(2)化简方法

① 画隐含表,找相容状态对。

② 画合并图,找最大相容类。合并图就是在圆周上均匀标上代表状态的点,点与点之间的连线表示两个状态之间的相容关系,而所有点之间都有连线的多边形就构成一个最大相容类。

③ 作最简状态表。从上一步求得的最大相容类(或相容类)中选出一组能覆盖原始状态表全部状态的个数最少的相容类,这一组相容类必须满足如下三个条件:

覆盖性。即该组相容类应能覆盖原始状态表的全部状态。 最小性。即该组相容类的数目应为最小。

闭合性。即该组相容类中的任一个相容类,它在原始状态表中任一输入下产生的次态应该属于该组内的某一个相容类。

同时具有覆盖、最小、闭合3个条件的相容类集合,就组成了最简状态表。 例6-10 化简表6-12所列的原始状态表。

表6-12 例6-10的原始状态表

x Q q1 q2 q3 q4 q5 0 q4/d q5/0 q4/0 q3/d q3/1 1 q1/d q1/d q2/d q3/d q2/d

解 ① 画隐含表,找相容状态对。隐含表如图6-23所示。由隐含表可得相容类有 (q1,q2),(q1,q3), (q1,q4), (q1,q5), (q2,q3), (q3,q4), (q4,q5) ② 画合并图,找最大相容类。

qqq245qqqqq1413251qqq31131342qq[qq]qqqqq[qq]qqqqq××qqq34243525123q5q23qq23q4q4q3图6-24 例6-10的合并图

状态合并图如图6-24所示,由合并图可找出最大相容类有

图6-23 例6-10的隐含表

(q1,q2,q3), (q1,q3,q4), (q1,q4,q5)

③ 作最简状态表。根据所得的最大相容类和原始状态表(表6-12)作覆盖闭合表,如表6-13所列。

表6-13 覆盖闭合表一 相容状态集 q1q2q3 q1q3q4 q1q4q5 覆 盖 q1 q1 q1 q1 q2 q2 q3 q3 q3 q4 q4 q4 q5 q5 闭 合 x=0 q4q5 q3q4 q3q4 x=1 q1q2 q1q2q3 q1q2q3 由覆盖表查得,选取相容类(q1, q2, q3),(q1, q4, q5)可满足覆盖性。再由闭合表查看是否满足闭合关系,在x=0时,相容类(q1, q4, q5)的次态是q3q4,它既不是(q1, q4, q5)的部分状态集合,也不属于(q1, q2, q3)。可见选取两个相容类不满足闭合性,需要三个最大相容类,才能满足闭合关系。这样化简后的状态要包括三个状态。

但是,用相容类(q4, q5)代替最大相容类重新作出覆盖闭合表,如表6-14所列。从表中可以发现,当x=0时,相容类的次态为q3,它是相容类(q1, q2, q3)的状态。如果我们选择相容类(q1, q2, q3)和(q4, q5),会发现它是满足覆盖、闭合和最小这三个条件的。这是唯一的一组解。重新作覆盖闭合表,如表6-15所示。

表6-14 覆盖闭合表二

相容状态集 q1q2q3 q1q3q4 覆 盖 q1 q1 q1 q2 q2 q3 q3 q3 覆 盖 q1 q1 q2 q2 q3 q3 q4 q5 q4 q4 q4 q5 q5 闭 合 x=0 q4q5 q3q4 q3 x=1 q1q2 q1q2q3 q2q3 q4q5 表6-15 覆盖闭合表三 相容状态集 q1q2q3 q4q5 闭 合 x=0 q4q5 x=1 q1q2 q2q3 q4 q5 q3 令Q1?{q1,q2,q3},Q2?{q4,q5},作出最简状态表如表6-16所列。 表6-16 最简状态表 x Q Q1 Q2 0 Q2/0 Q1/1 1 Q1/d Q1/d

6.3.3 状态分配

所谓状态分配,就是给最简状态表中的每个符号所表示的状态,指定一个二进制代码,形成二进制状态表。一般情况下,采用的状态编码方案不同,所得到的输出方程和驱动方程也不同,从而设计出来的电路复杂程度也不同。因此,状态分配的主要任务是:

(1)根据最简状态表给定的状态数,确定所需触发器的数目;

(2)寻找一种最佳的或接近最佳的状态分配方案,使所设计的时序电路最简单。 如果最简状态表中的状态数是M,触发器的数目为n,则n和M的关系式应满足

2n?1?M?2n

n (6-12)

当M?2n时,从2个状态中取M个状态的组合可以有多种不同的方案,而每个方案中M个状态的排列顺序又有许多种。

当状态数目较少时,我们可以研究各种可能的状态方案。例如当M=4时,只有三种非等价的状态分配,所以可以对所有分配方案进行比较,从中选取一种最佳方案。但当状态数目稍增大时,分配方案数会急剧增大,以致无法去研究所有可能的状态分配方案。例如,当M=5时,有140中不同的分配方案,而当M=9时,竟有高达1000多万种不同的分配方案。这种情况下,要想对全部状态分配方案进行比较,从中选出最佳方案,是十分困难的,同时也没有必要将所有的分配方案研究一遍。在实际工作中,常采用经验的方法,按一定的原则进行分配,来获得接近最佳的分配方案。

状态分配原则如下:

(1)在相同输入条件下,次态相同,现态应给于相邻编码。 (2)在不同输入条件下,同一现态,次态应相邻编码。 (3)输出完全相同,两个现态应相邻编码。

以上三条原则中,第一条最重要,应优先考虑。下面举例说明。 例6-11 对表6-17所示的最简状态表进行状态分配。 表6-17 例6-11状态表 Q A B C D x 0 C/0 C/0 B/0 A/1 1 D/0 A/0 D/0 B/1

解 状态表中共有4个状态,选用两个触发器Q1和Q0。 根据状态分配原则(1):AB,AC应相邻编码; 根据原则(2):CD,AC,BD,AB应相邻编码; 根据原则(3):AB,AC,BC应相邻编码。 综合上述要求,AB,AC应给予相邻编码,这是3条原则都要求的。用卡诺图表示上述相邻要求的状态分配方案,如图6-25所示。由该图可得状态编码为

A=00,B=01,C=10,D=11

将上述编码代入表6-17的最简状态表,就得到表6-18所示的二进制状态表。当然,上述分配方案不是唯一的。

Q0Q1010AB1CD图6-25 例6-11的状态分配方案 表6-18 例6-11的二进制状态表

Q1Q0 00 01 10 11 x 0 10/0 10/0 01/0 00/1 1 11/0 00/0 11/0 01/1 6.3.4 求驱动方程和输出方程

因为不同逻辑功能的触发器驱动方式不同,所以用不同类型触发器设计出的电路也不一样。为此,在设计具体的电路前必须选定触发器的类型。选择触发器类型时应考虑到器件的供应情况,并应力求减少系统中使用的触发器种类。具体步骤是:

(1)根据二进制状态表(或状态图)写出电路的次态方程和输出方程。

(2)根据选定的触发器类型,转换电路次态方程,将其转换成与选定触发器特性方程相同的形式。

(3)将转换后的电路次态方程与触发器特性方程比较,即可得驱动方程。

下面通过几个具体的例子来进一步说明同步时序电路的设计方法。 例6-12 进一步完成例6-7 的“111…”串行数据检测器的设计。 解 例6-7中已经得到该检测器的原始状态表。现重列于表6-19。 表6-19 例6-12的原始状态表 表6-20 例6-12的最简状态表

x Q A B C D x 0 A/0 A/0 A/0 A/0 1 B/0 C/0 D/1 D/1 Q A B C 0 A/0 A/0 A/0 1 B/0 C/0 C/1

原始状态表中状态C和D为等价状态对,将状态C和D合并,用状态C表示,化简原始状态表化简得最简状态表,如表6-20所示。

最简状态表中有3个状态,根据式(6-12)可知,应选两位触发器Q1和Q0。根据状态分配方案,A为00,B为01,C为10,分配方案如图6-26所示。选定JK触发器组成这个检测电路,则可从最简状态表和状态分配方案画出电路的次态和输出卡诺图,如图6-27所示。

Q101Q00AB1CxQ1Q0000100/001/00100/010/011××/×××/×1000/010/1图6-26 例6-12的状态分配

图6-27 例6-12电路次态/输出的卡诺图

*将图6-27所示的卡诺图分解为图6-28中分别表示Q1*、Q0和输出y的3个卡诺图。利

用卡诺图求得各触发器的次态方程,再与触发器的特性方程比较,即可求得各触发器的驱动方程。

Q1Q0000100010111××1001Q1Q0Q1Q0000101010011××1000xxx010000010011××1001(a)Q1**(b)Q0(c)y图6-28 例6-12卡诺图的分解在求

方程。JK触发器的特性方程为

Q?JQ'?K'Q*

JK触发器的特性方程一致,这样才能获得驱动

(6-13)

由图6-28的卡诺图求得

*??Q1?xQ1?xQ0?xQ1?xQ0(Q1?Q'1)?(xQ0)Q'1?xQ1?*??Q0?xQ'1Q'0?(xQ'1)Q'0?1'Q0 (6-14)

将式(6-14)与JK触发器的特性方程(6-13)相比较得驱动方程

?J1?xQ0??J0?xQ'1

?K1?x' ?K?1?0 (6-15)

输出方程由卡诺图得

y?xQ1 (6-16)

0/01/0yx1CP图6-29 例6-12的逻辑电路1JC11KQ0Q0'1JC11KQ1Q1'0/0000/001x/yQ1Q00/01/0111/1101/1图6-30 例6-12的状态图根据驱动方程和输出方程所画出的TTL电路逻辑图如图6-29所示。

当电路进入无效状态11后,若x=0则电路次态转入00;x=1则次态转入10,因此这个电路能够自启动。电路状态图如图6-30所示。

例6-13 设计一个自动售饮料机的逻辑电路,它的投币口每次只能投入一枚五角或一元的硬币。投入一元五角硬币后机器自动给出一杯饮料;投入两元(两枚一元)硬币后,在给出饮料的同时找回一枚五角的硬币。

解 设投币信号为输入逻辑变量。投入一枚一元硬币用A=1表示,未投入时A=0;投入一枚五角硬币用B=1表示,未投入时B=0。给出饮料和找钱为两个输出变量,分别以Y、Z表示。给出饮料时Y=1,不给时Y=0;找回一枚五角硬币时Z=1,不找时Z=0。

假定通过传感器产生的投币信号(A=1或B=1)在电路转入新状态的同时也随之消失,否则将被误认作又一次投币信号。

设未投币前电路的初始状态为S0,投入五角硬币以后状态为S1,投入一元硬币(包括投入一枚一元硬币和投入两枚五角硬币的情况)以后状态为S2。再投入一枚五角硬币后电路返回S0,同时输出为Y=1,Z=0;如果投入的是一枚一元硬币,则电路也应该返回S0,同时输出为Y=1,Z=1。因此,电路的状态数M=3已足够。根据以上分析,可得自动售饮料机的逻辑电路的状态如图6-31所示。

00/0001/0000/00S01/10或10/11010/1010/00S1AB/YZ01/00S200/00

根据状态图可得表6-21所列的状态表。因为正常工作中不会出现AB=11的情况,所以这时的次态和输出均作无关项处理。又因该状态表已为最简形式,所以不必再进行化简过程。

表6-21 例6-13的状态表 状态 AB 00 01 11 10 图6-31 例6-13的状态图×/×× S0 S0/00 S1/00 S2/00 ×/×× S1 S1/00 S2/00 S0/10 ×/×× S2 S2/00 S0/10 S0/11 由于状态表中有3个状态,取触发器的位数n=2,即Q1Q0就满足要求。令Q1Q0的00、01、10分别代表S0、S1、S2,Q1Q0=11作为无关状态,则从状态图和状态表即可画出表示电

*路次态/输出(Q1*Q0/YZ)的卡诺图,如图6-32所示。

Q1Q0AB00010000/0001/000101/0011××/××1010/0000/1010/00××/××11××/××××/××××/××××/××1010/0000/10××/××00/11图6-32 例6-13电路次态/输出的卡诺图

*将图6-32中的卡诺图分解,分别画出表示Q1*、Q0、Y和Z的卡诺图,如图6-33所示。

Q1Q0AB000000101×11××××1010×Q1Q0AB000000110×11××××1000×01011×10101111×1000000(a)Q1*Q1Q0AB000000100×*(b)Q011××××1001×Q1Q0AB000000100×11××××1000×01011×10001011×1001101(c)Y图6-33 例6-13卡诺图的分解(d)Z

若电路选用D触发器,则从图6-33所示的卡诺图可写出电路的状态方程、驱动方程和输出方程分别为

*??Q1?Q1A'B'?Q'1Q'0A?Q0B?*??Q0?Q'1Q'0B?Q0A'B' (6-17)

??D1?Q1A'B'?Q'1Q'0A?Q0B ?*?D?Q?Q'Q'B?QA'B'0100?0 (6-18)

?Y?Q1B?Q1A?Q0A??Z?Q1A (6-19)

根据驱动方程和输出方程可得如图6-34所示的逻辑图,该逻辑图的实际状态图如图6-35所示。

与或逻辑阵列YAZB1DC1RQ11DC1RQ0CLKR'D图6-34 例6-13的逻辑图00/0001/0000/00

0010/1101/10或10/1101/1010/1010/000101/00AB/YZQ1Q01100/001000/00图6-35 例6-13的状态图

从图6-35可看出,当电路进入无效状态11后,在无输入信号的情况下(即AB=00)不能自行返回有效循环,所以不能自启动。当AB=01或AB=10时,电路在时钟信号作用下虽

'然能返回到有效循环中去,但收费结果是错误的。因此,在开始工作时,应在异步置零端RD上加入低电平信号,将电路置为00状态。

例6-14 用JK触发器设计模6计数器。

解 由于22?6?23,所以模6计数器应该由三级触发器组成。三级触发器有8种状态,从中选6种状态,方案很多。我们按图6-36方案选取,其状态表如表6-22所示。表中C为进位。

表6-22 例6-14的状态表

000/1001/0011/0/0100/0110/0111** Q2 Q3 Q2 Q1 Q3Q1* C 0 0 0 0 0 1 0 1 1

1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 图6-36 例6-14的状态图按上述状态关系画出各级触发器的卡诺图,如图6-37所示。选用JK触发器,得到各级触发器的状态方程、驱动方程和进位输出方程为

*?Q3?Q'1Q'3?Q'1Q3??*?Q2?Q3Q'2?Q3Q2?*Q?Q2Q'1?Q2Q1??1 (6-20)

C?Q'2Q1 (6-21) ?J3?Q'1??J2?Q3?J?Q2?1K3?Q1 K2?Q'3 (6-22)

K1?Q'2Q2Q1Q3010011010×110010×1Q3Q2Q1000101010×110110×1*(a)Q3*(b)Q2Q2Q1Q3010000010×111110×1Q3Q2Q1000100011×110010×0*(c)Q1(d)C图6-37 例6-14的卡诺图

根据驱动方程和输出方程可得如图6-38所示的逻辑图。

C1JCPC11KQ3Q3'1JC11KQ2Q2'1JC11KQ1Q1'图6-38 例6-14的逻辑图

检查自启动能力,把未用状态010和101分别代入式(6-20)求出次态,即得图6-39所示的状态转换关系。显然,电路无自启动能力。

为了使电路具有自启动能力,可以修改状态转换关系,即切断无效循环,引入有效的计数循环序列。我们切断101?010的转换关系,强迫它进入110状态。根据

*新的状态转换关系,重新设计。由于Q2和Q1*的转换关

010/0无效循环/0101图6-39 例6-14自启动能力检查*系没变,只有Q3改变了,故只要重新设计Q3级即可,

*如图6-40所示重画Q3的卡诺图,得Q3级的状态方程和驱动方程。

Q3?Q'2Q3?Q'1Q3?Q'1Q'3?Q'1Q'3?(Q1Q2)'Q3?J3?Q'1??K3?Q1Q2*

修改后具有自启动能力的模6计数器的状态图如图6-41所示,其逻辑图如图6-42所示。

Q2Q1Q30100110101*11001011000100110101001011111101图6-40重画Q3的卡诺图图6-41 例6-14具有自启动能力的状态图C

1JCPC11KQ3Q3'1JC11KQ2Q2'1JC11KQ1Q1'图6-42 例6-14具有自启动能力的逻辑图

6.4 计数器

计数器是一种对输入脉冲进行计数的时序逻辑电路。计数器不仅可以计数,还可以实现分频、定时、产生脉冲和执行数字运算等功能,是数字系统中用途最广泛的基本部件之一。

计数器的种类很多,可以按照多种方式进行分类。

如果按计数器中进位模数分类,可以分为二进制计数器、十进制计数器和任意进制计数器。当输入计数脉冲到来时,按二进制规律进行计数的电路叫做二进制计数器;十进制计数器是按十进制数规律进行计数的电路;除了二进制和十进制计数器之外的其他进制的计数器都称为任意进制计数器。

如果按计数器中的触发器是否同步翻转,可以把计数器分为同步计数器和异步计数器。在同步计数器中,各个触发器的计数脉冲相同,即电路中有一个统一的计数脉冲。在异步计数器中,各个触发器的计数脉冲不同,即电路中没有统一的计数脉冲来控制电路状态的变化,电路状态改变时,电路中要更新状态的触发器的翻转有先有后,是异步进行的。

如果按计数增减趋势分类,还可以把计数器分为加法计数器、减法计数器和可逆计数器。当输入计数脉冲到来时,按递增规律进行计数的电路叫做加法计数器;按递减规律进行计数的电路称为减法计数器。在加减信号控制下,既可以递增计数又可以递减计数的称为可逆计数器。

6.4.1 二进制计数器

1.二进制同步计数器 (1)二进制同步加法计数器

以3位二进制同步加法计数器为例,说明二进制同步加法计数器的组成规律。 根据二进制递增计数规律,可画出3位二进制加法计数器状态图如图6-43所示。

选用3个CP下降沿触发的JK触发器,分别用FF0、FF1、FF2表示。

?CP写出时钟方程, CP0?CP12 (6-23)

/1111/0100/0000/0001/0010/0011Q2Q1Q0/C图6-43 3位二进制加法计数器的状态图由于是同步计数器,所以式(6-23)可以省略。

写出输出方程, C?Q2Q1Q0 (6-24)

***分别画出Q0,Q1,Q2的卡诺图,如图6-44所示。

Q2Q1Q001001001101110*Q2Q11010Q001000101101110(b)Q1*1001(a)Q2Q2Q1Q001000001011110(c)Q0*1011图6-44 确定激励函数的次态卡诺图根据卡诺图写出状态方程如下:

?Q*?Q?00??*?Q1?Q1Q0??Q1?Q0?*?Q2?Q2Q0??Q2Q1??Q2?Q1Q0?

与JK触发器的特性方程比较,得到下列驱动方程:

?J0?K0?1??J1?K1?Q0?J?K?QQ210?2

(6-25)

根据所选触发器的时钟方程(6-23)、输出方程(6-24)和驱动方程(6-25),

可得3位计数器的逻辑电路和时序图分别如图6-45和图6-46所示。

CFF011JC11KCPQ0'Q0FF11JC11KQ1'Q1FF21JC11KQ2'Q2图6-45 3位二进制同步加法计数器从图6-46可以看出,每当CP下降沿到来,FF0翻转一次;Q0?1时,FF1在CP下降沿翻转;Q0?Q1?1时,CP下降沿FF2翻转。

CPQ0Q1Q2C?6-46 3????????????

用JK触发器实现n位同步加法计数器,其各级驱动方程如下:

?J0?K0?1 ?J1?K1?Q0? ??J2?K2?Q1Q0 ?J?K3?Q2Q1Q0?J2Q2? 3?? ??? Jn?1?Kn?1?Qn?2Qn?3?Q1Q0

(6-26) Q0 (6-27) 输出方程:C?Qn?1Qn?2?Q2Q1

如果把JK触发器换成T触发器,式(6-26)可写成

?T0?1?T?Q0?1??T2?Q1Q0?????Tn?1?Qn?2Qn?3?Q1Q0

(6-28) (2)二进制同步减法计数器

以3位二进制同步减法计数器为例,说明二进制同步减法计数器的组成规律。 根据二进制递减计数规律,可画出3位二进制减法计数器状态图如图6-47所示。

图6-47 3位二进制减法计数器的状态图/1111/0100/0000/0001/0010/0011Q2Q1Q0/B二进制同步减法计数器是按照二进制减法运算规则进行计数的,其工作原理为:在n位二进制减法计数器中,只有当第i位以下各位同时为0,低位需向高位借位时,在时钟脉冲的作用下第i位状态应当翻转。最低位触发器每来一个时钟脉冲就翻转一次。

根据图6-47所示的状态图,可以画出 3位二进制同步减法计数器的时序图,如图6-48所示。

CPQ0Q1Q2B?6 - 48 3????????????从图6-48可以看出,每当CP下降沿到来,FF0翻转一次;当Q0?0时,CP下降沿到来FF1翻转;当Q0?Q1?0时,CP下降沿到来FF2翻转。

如果用JK触发器构成n位二进制同步减法计数器,其各级触发器的驱动方程应写成:

?J0?K0?1??J1?K1?Q0????J2?K2?Q1?Q0?????J?Kn?1?Qn?2?Qn?3??Q1?Q0?n?1???Q? 输出方程:B?Qn?1?Qn?2??Q2?Q10

(6-30) (6-29) 因此,只要将图6-45所示的二进制加法计数器的输出端由Q端改为Q?端,便可构成3位二进制同步减法计数器。其逻辑电路如图6-49所示。

B11FF0Q01FF1Q11FF2Q2JC11KQ0'JC11KJC11KQ1'Q2'CP?6-49 3???????????(3)二进制同步可逆计数器

在实际应用中,通过加减控制信号,将二进制同步加法计数器和减法计数器合并,就可构成二进制同步可逆计数器。

设用U?D表示加减控制信号,且U?D?0时作加计数,U?D?1时作减计数,则把二进制同步加法计数器的驱动方程和(U?D)?相与,把减法计数器的驱动方程和U?D相与,再把二者相加,便可得到3位二进制同步可逆计数器的驱动方程如下:

?J0?K0?1???J1?K1?(U?/D)??Q0?U?/D?Q0??????J2?K2?(U?/D)??Q1Q0?U?/D?Q1Q0?Q?Q? 输出方程:C/B?(U?/D)??QQQ?U?/D?Q012012(6-31) (6-32)

根据驱动方程(6-31)和输出方程(6-32),可以画出3位二进制同步可逆计 数器的逻辑电路如图6-50所示。

C/BU?DFF011JC11KCPQ0'Q0FF11JC11KQ1FF21JC11KQ2'Q2Q1'图6-50 3位二进制同步可逆计数器

2.二进制异步计数器 (1)二进制异步加法计数器

以3位二进制异步加法计数器为例,说明二进制异步加法计数器的组成规律。 从图6.4.4可以看出,每当CP下降沿到达时,Q0翻转;当Q0由1变0时,Q1翻转;当Q1由1变0时,Q2翻转。

选用3个CP下降沿触发的JK触发器,分别用FF0、FF1、FF2表示。 因为是异步工作方式,可得时钟方程,

?CP0?CP??CP1?Q0?CP?Q1?2(6-33) 当时钟脉冲到来,FF0、FF1和FF2均实现翻转功能,由于选用的是时钟脉冲下降沿触发的边沿JK触发器,只要取J?K?1即可。根据这个原理,可接成图6-51所示的3位二进制异步加法计数器。

1CPCFF01JC11KQ0'Q01

FF11JC11KQ1FF211JC1Q2Q1'1KQ2'图6-51 3位二进制异步加法计数器

(2)二进制异步减法计数器

根据二进制减法计数规则,若低位触发器已经为0,当计数脉冲到来,不仅该位应翻转成1,同时还需向高位发出借位信号,使高位翻转。所以将低位触发器的Q?端接到高位触发器的CP输入端,则可构成异步二进制减法计数器如图6-52所示。

1 CPBFF01JQ01FF11JQ11FF21JQ2 C11KQ0'C11KC1Q1'1KQ2'

?6-52 3???????????.?如果选用T触发器来构成3位二进制异步减法计数器,选用的是下降沿触发的触

发器,应取

若选用的是上升沿触发的触发器,应取

画出逻辑电路,如图6-53所示。

?CP0?CP???CP1?Q0?????CP2?Q1(6-34) ?CP0?CP??CP1?Q0?CP?Q1?2(6-35) 归纳二进制异步加法计数器和减法计数器级间连接规律,可得表6-23。

表6-23 二进制异步计数器级间连接规律

连 接 规 律 T'触发器的触发沿 上 升 沿 下 降 沿

加 法 计 数 减 法 计 数 CPi?Qi?1? CPi?Qi?1 CPi?Qi?1 CPi?Qi?1?

BQ0Q0'FF0C1FF1C1Q1Q1'(a)FF2C1Q2Q2'CPFF0C1Q0Q0'FF1C1Q1Q1'FF2C1Q2Q2'CPB(b)?6-53 T'??????3???????????(a)????? (b)?????6.4.2 十进制计数器

常见的十进制计数器是按照8421BCD码进行计数的电路。 1. 十进制同步计数器

在十进制同步计数器中,使用最多的是十进制同步加法计数器,它是在4位二进制同步加法计数器的基础上修改而成的。当CP到来时,电路按照8421BCD码进行加法计数,可以画出状态图如图6-54所示。

1110/01111/10000/11001/0100001110110/11010/01011/00001/00010/00011/00100/001011100/01101Q3Q2Q1Q0/C/1/0/0/0?6-54 ????????????????

由状态图可以看出,从0000开始计数,CP每到来一次,状态增1,输入第9个脉冲,进入1001状态,第10个脉冲返回0000,同时产生进位输出信号C。

电路的状态方程为:

?Q*?Q?00??Q*?QQ?Q??(QQ?)?Q?1031031(6-36) ?*?Q2?Q0Q1Q2??(Q0Q1)?Q2?*???Q3?(Q0Q1Q2?Q0Q3)Q3?(Q0Q1Q2?Q0Q3)?Q3CP1T0 =1 我们选用4个时钟脉冲下降沿触发的JK触发器,驱动方程为:

JC11K1Q0 FF0T1 ?J0??J1??J2?J?3?K0?1?K1?Q0Q3??K2?Q0Q1?K3?Q0Q1Q2?Q0Q3G1JC11K1Q1 FF1(6-37) G2T2JC11K1Q2 FF2输出方程为:C?Q3Q0 (6-38)

根据驱动方程式(6-37)和输出方程(6-38) ,按照选择的触发器,画出十进制同步加法计数器的逻辑电路图,如图6-55所示。

将无效状态1010~1111分别代入式(6-36)和状态图如图6-54所示。

2. 十进制异步计数器

G3T3JC11KQ3 FF3G?6-55 ??????????4C(6-38)进行计算,可以验证在CP脉冲作用下都能回到有效状态,电路能够自启动。

异步十进制加法计数器是在4位异步二进制加法计数器的基础上修改而得到的。它在计数过程中跳过了1010到1111这6个状态。图6-56为十进制异步加法计数器的逻辑电路图。

Q0Q1Q2Q31CPFF01FF11FF211FF3JC11K1JC11K1JC11K1JC11K ?6-56 ???????????????

6.4.3 中规模集成计数器应用

集成计数器具有功能较完善、通用性强、功耗低、工作速率高且可以自扩展等优点,因而得到广泛应用。 目前由TTL和CMOS电路构成的MSI计数器都有许多品种, 表 6-24列出了几种常用TTL型MSI计数器的型号及工作特点。

表6-24 常用TTL型MSI计数器

类型 异 步 计 数 器 二、八、十六进制计数器 双四位二进制计数器 同 步 计 数 器 十进制计数器 十进制加/减计数器 十进制加/减计数器(双时钟) 四位二进制计数器 四位二进制加/减计数器 四位二进制加/减计数器(双时钟)

下面介绍几种典型的集成计数器。 1. 4位二进制同步计数器74LS161 74LS161是4位二进制 (模16=24)同步计数器,具有计数、保持、 预置、清0功能,其传统逻辑符号见图6-57所示。它由四个JK触发器和一些控制门组成,CP是输入计数脉冲,

RD?是清零端,LD?是预置端,EP和ET是工

EPETQ0Q1Q2Q3COLD'D3名称 二、五、十进制计数器 型号 74LS90 74LS290 74LS196 74LS293 74LS197 74LS393 74LS160 74LS162 74LS190 74LS168 74LS192 预置 异步置9 高 异步置9 高 异步 低 无 异步 低 无 同步 低 同步 低 异步 低 同步 低 异步 低 清0 异步,高 异步,高 异步 低 异步,高 异步 低 异步,高 异步 低 同步 低 无 无 异步,高 异步 低 同步 低 无 无 异步,高 工作频率/MHZ 32 32 30 32 30 35 25 25 20 25 25 74LS161 74LS163 74LS169 74LS191 74LS193 同步 低 同步 低 同步 低 异步 低 异步 低 25 25 25 20 25 CPRD'D74LS1610D1D2作状态控制端,D0~D3是并行输入数据端,

CO是进位信号输出端,Q0~Q3是计数器状

图6-57 74LS161逻辑符号态输出端,其中Q3为最高位。

CP × ↑ × × ↑ 表6-25 4位同步二进制计数器74161的功能表 RD′ LD′ EP ET 工作状态 0 1 1 1 1 × 0 1 1 1 × × × × 0 1 × 0 1 1 置零 预置数 保持 保持(但C =0 ) 计数 表6-25是它的功能表,从表中可知:

CP为计数脉冲输入端,上升沿有效。

RD?为异步清零端,低电平有效,只要RD??0,立即有Q3Q2Q1Q0?0000,与CP

无关。

LD?为同步预置端,低电平有效,当RD??1,LD??0,在CP上升沿到来时,并

行输入数据D0~D3进入计数器,使Q3Q2Q1Q0?D3D2D1D0。

EP和ET是工作状态控制端,高电平有效,

① 当RD??LD??1时,若EP?ET?1,在CP作用下计数器进行加法计数。 ② 当RD??LD??1时,若EP?ET?0,则计数器处于保持状态。EP和ET的

区别是ET影响进位输出CO,而EP不影响进位输出CO。

例6-15 用74161实现七进制计数器。

解 74161有异步清0和同步置数功能,因此可以采用异步清0法和同步置数法实现任意进制计数器。 (1)异步清0法。

计数范围是 0~6, 计到7时异步清0。画出状态表见表6-26,逻辑图如图6-58。

表6-26 七进制加法计数器状态表(异步清0法)

CP Q3 Q2 Q1 Q0 1 2 3 4 5 6 7 8 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 过渡态 M=7 1CPEPETQ0Q1Q2Q3COLD'D3CPRD'D74LS1610D1D2图6-58 74LS161实现七进制计数器(异步清0法)计数器输出Q3Q2Q1Q0 的有效状态为0000~0110,计到0111时异步清0。

清0 端是低电平有效,故RD??(Q2Q1Q0)?,即当Q2Q1Q0全为高电平时,RD??0,使计数器复位到全0状态。 (2) 同步置数法。

置数法是通过控制同步置数端LD?和预置输入端D3D2D1D0来实现模7计数器。由于

置数状态可在16个状态中任选,因此实现的方案很多,常用方法有三种: ① 同步置0法(前7个状态计数)。

选用S0~S6共7个状态计数,计到S6时使LD??0,等下一个CP到来时置0,即返回S0状态。这种方法必须设置预置输入D3D2D1D0?0000。本例中M = 7,故选用 0000~0110 共七个状态,计到 0110 时同步置 0 ,LD??(Q2Q1)?,其状态表见表6-27(a),逻辑图如图6-59(a)所示。 ② CO置数法(后7个状态计数)。

选用S9~S15共7个状态,当计到S15状态并产生进位信号时,利用进位信号置数,使计数器返回初态S9。预置输入数的设置为D3D2D1D0?1001,故选用1001~1111共七个状态,计到 1111 时,CO?1,可利用CO同步置数,所以LD??CO?。其状态表见表6-27(b),逻辑图如图6-59(b)所示。 ③ 中间任意7个状态计数。

随意选用Si~Si+6共7个状态,计到Si+6时使LD??0,等下一个CLK来到时返回Si状态。本例选用 0010~1000 共七个状态,计到 1000 时同步置数,故LD??Q3?,

D3D2D1D0?0010,其状态表见表6-27(c),逻辑图如图6-59(c)所示。

1CPEPETQ0Q1Q2Q3COLD'1CPCPRD'D0D1D2D374LS161EPETQ0Q1Q2Q3COLD'1CPCPRD'D0D1D2D374LS161EPETCPRD'Q0Q1Q2Q3COLD'D374LS161D0D1D211100110100图6-59 用74LS161实现七进制计数器(同步置数法)

表6-27 七进制加法计数器状态表 (同步置数法)

CP 1 2 3 4 5 6 7 Q3 Q2 Q1 Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 CP 1 2 3 4 5 6 7 Q3 Q2 Q1 Q0 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 CP 1 2 3 4 5 6 7 Q3 Q2 Q1 Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0

(a)

LD=0 (b) LD=0 (c) LD=0

2. 4位二进制可逆计数器74LS169

常用的二进制可逆计数器有单时钟二进制同步可逆计数器74LS191和双时钟二进制同步可逆计数器74LS169。下面以74LS169为例,介绍二进制同步可逆计数器的逻辑功能。74LS169的逻辑符号如图6-60所示。功能表如表6-28所示。

74LS169的特点如下:

(1)该器件为加减控制型的可逆计数器,U/D=1时进行加法计数,U/D=0时进行减法计数。模为16,时钟上升沿触发。

(2)LD为同步预置控制端,低电平有效。 (3)没有清0端, 因此清0靠预置来实现。

(4)进位和借位输出都从同一输出端CO输出。当加法计数进入1111后,CO端有负脉冲输出,当减法计数进入0000后,CO端有负脉冲输出。输出的负脉冲与时钟上升沿同步,宽度为一个时钟周期。

(5)EP、ET为计数允许端,低电平有效。只有当LD=1,P=T=0, 在CP作用下计数器才能正常工作,否则保持原状态不变。

CP × ↑ ↑ ↑

3. 十进制同步计数器74LS160

图6-61是十进制同步计数器74LS160的逻辑符号,和前面的4位二进制同步计数器74LS161类似,74LS160也有清零和预置功能。将74LS160的功能表6-29和74LS161的比较,我们发现两种芯片的逻辑功能几乎相同。并且,两者的引脚排列图也相同。区别在于,74LS161是十六进制,而74LS160是十进制。

表6-29 十进制同步计数器74160的功能表

CP RD′ LD′ EP ET × ↑ × × ↑

0 1 1 1 1 × 0 1 1 1 × × × × 0 1 × 0 1 1 EPETQ0Q1Q2Q3COLD'D3EPQ0Q1`Q2Q3ET74LS169COU/DCPD0D1D2D3LD图6-60 74LS169逻辑符号表6-28 4位二进制可逆计数器74LS169的功能表

U/D EP+ET LD 工作状态 1 0 0 0 × 1 × 0 1 0 1 1 保持 预置数 二进制加法计数 二进制减法计数 CPRD'D74LS1600D1D2图6-61 74LS160逻辑符号工作状态 置零 预置数 保持 保持(但C =0 ) 计数

例6-16 用两片十进制同步计数器74LS160实现一百进制计数器。

解 将两片74LS160连接成百进制计数器,有并行进位和串行进位两种方式。 图6-62所示电路是并行进位方式的接法,以第(1)片的进位输出C作为第(2)片的EP和ET输入,每当第(1)片状态为1001时,进位输出C=1。等到下个CLK信号到达,第(2)片的EP=ET=1,为计数状态,计入1。由于第(1)片的EP和ET恒为1,始终处于计数状态,故第(1)片状态返回0000,此时进位输出C=0。

1EPETQ0Q1Q2Q3COLD'D3CPRD'D74LS1600EPETQ0Q1Q2Q3COLD'D31D1D2CPRD'D74LS16001D1D2CP11图6-62 例6-16逻辑电路图(并行进位)图6-63所示电路是串行进位方式的接法。两片74LS160的EP和ET都接入1 ,工作在计数状态。第(1)片每计为1001时,C端输出高电平,经反相器后,第(2)片的CP为低电平。下一个计数脉冲到来后,第(1)片变成0000状态,C端返回低电平,经反相器给第(2)片的CLK一个上升沿,于是第(2)片计入1。

Q0Q1Q2Q3COLD'D31CPEPET11CPRD'D74LS1600EPETQ0Q1Q2Q3COLD'D3D1D2CPRD'D74LS16001D1D211图6-63 例6-16逻辑电路图(串行进位)

4. 十进制异步计数器74LS90

74LS90是二—五—十进制异步计数器,其逻辑符号如图6-64(a)所示。它包含两个独立的下降沿触发的计数器,即模2(二进制)和模5(五进制)计数器;异步清0端R01、R02和异步置9端S91、S92均为高电平有效,图6-64(b)为74LS90的简化结构框图。

QAQBQCQDQAQBQCQDCP1CP2M=2M=5CP174LS90CP2S91S92R01R02S91S92R01R02图6-64 74LS90计数器 (a)逻辑符号 (b)结构框图74LS90的功能表如表6-30所示。从表中看出,当R01R02=1, S91S92=0时,无论时钟如何,输出全部清0;而当S91S92=1时,无论时钟和清0信号R01、R02如何,输出就置9。这说明清0、置9都是异步操作,而且置9是优先的,所以称R01、R02为异步清0端,S91、S92为异步置9端。

表6-30 十进制异步计数器74LS90的功能表 输 入 R01 R02 1 1 1 1 × × S91 S92 0 × × 0 1 1 CP1 CP2 × × × × × × ↓ × R01 R02=0 S91 S92=0 × ↓ ↓ QA QD ↓ 输 出 QD QC QB QA 0 0 0 0 0 0 0 0 1 0 0 1 二进制 五进制 8421BCD码 5421BCD码 计数 功 能 异步清0 异步置9 当满足R01R02=0、S91S92=0时电路才能执行计数操作,根据CP1、CP2的各种接法可以实现不同的计数功能。当计数脉冲从CP1输入,CP2不加信号时,QA端输出2分频信号,即实现二进制计数。当CP1不加信号,计数脉冲从CP2输入时,QD、 QC、QB实现五进制计数。实现十进制计数有两种接法。图6-65(a)是8421 BCD码接法,先模2计数,后模5计数,由QD、QC、 QB、QA 输出8421 BCD码,最高位QD作进位输出。图6-65(b)是5421 BCD码接法,先模5计数,后模2计数,由QA、QD、 QC、QB输出5421 BCD码,最高位QA作进位输出。

QACPCP1CP2QBQCQDCPQACP1CP2QBQCQD74LS90S91S92R01R0274LS90S91S92R01R02(a)(b)图6-65 74LS90构成十进制计数器的两种接法(a) 8421 BCD码接法; (b) 5421 BCD码接法如果要求实现的模M超过单片计数器的计数范围时, 必须将多片计数器级联,才能实现模M计数器。常用的方法有两种:

(1)将模M分解为M=M1×M2×…Mn,用n片计数器分别组成模值为M1、M2、 …、Mn的计数器,然后再将它们异步级联组成模M计数器。

(2)先将n片计数器级联组成最大计数值N>M的计数器,然后采用整体清 0 或整体置数的方法实现模M计数器。

例6-17 用74LS90实现模 54 计数器。

解 因一片74LS90的最大计数值为10,故实现模54计数器需要用两片74LS90。(1)模分解法

可将M分解为 54=6×9,用两片74LS90分别组成8421BCD码模 6、模 9 计数器,然后级联组成 M=54 计数器,其逻辑图如图6-66(a)所示。图中,模 6 计数器的进位信号应从QC输出。 (2)整体清0法

先将两片74LS90用8421BCD码接法构成模100计数器,然后加译码反馈电路构成模54计数器。逻辑图如图6-66(b)所示。

CP QAQBQCQDCP174LS90CP2S91S92R01R02QAQBQCQDCP174LS90CP2S91S92R01R02CP QAQBQCQDCP174LS90CP2S91S92R01R02QAQBQCQDCP174LS90CP2S91S92R01R02(a)(b)图6-66 74LS90 实现模 54 计数器逻辑图(a) 模分解法 (b) 整体清 0 法

6.5 寄存器

寄存器用于存储数据,是由一组具有存储功能的触发器构成的。一个触发器可以存储1位二进制数,要存储n位二进制数需要n个触发器。无论是电平触发的触发器还是边沿触发的触发器都可以组成寄存器。

按照功能的不同,可将寄存器分为基本寄存器和移位寄存器两类。基本寄存器只能并行送入数据,需要时也只能并行输出。移位寄存器具有数据移位功能,在一位脉冲作用下,存储在寄存器中的数据可以依次逐位右移或左移。数据输入输出方式有并行输入并行输出、串行输入串行输出、并行输入串行输出、串行输入并行输出四种。

6.5.1 基本寄存器

D01DC1RD11DC1RD21DC1RD31DC1CPRD'图6-67 4位寄存器74LS175RQ3'Q2'Q3Q1'Q2Q0'Q1Q0基本寄存器中的触发器只具有置1和置0功能,因此,用基本触发器、同步触发器、主从触发器和边沿触发器实现均可。图6-67是用边沿D触发器组成的4位寄存器74LS175。D0~D3是并行数据输入端,Q0~Q3是并行数据输出端,RD′是清零端,CP是时钟控制端。

由表6-31可知,当RD′=0,寄存器异步清零;当RD′=1,在CP上升沿到来时刻,D0~D3被并行送入到4个触发器中,寄存器的输出Q3Q2Q1Q0= D3D2D1D0 ,数据被锁存,直至下一个上升沿到来,故该寄存器又可称为并行输入、并行输出寄存器;当RD′=1,CP上升沿以外的时间,寄存器内容保持不

变。此时,输入端D0~D3输入数据不会影响寄存器输出,所以这种寄存器具有很强的抗干扰能力。 RD′ 0 1 1 表6-31 基本寄存器74LS175的逻辑功能表 **** Q3Q2Q1Q0CP 工作状态 × ↑ 0/1/↓ 0000 D3D2D1D0 Q3Q2Q1Q0 异步清零 并行送数 保持 6.5.2 移位寄存器

移位寄存器不仅具有存储功能,而且存储的数据能够在时钟脉冲控制下逐位左移

或者右移。根据移位方式的不同,移位寄存器分为单向移位寄存器和双向移位寄存器两大类。

1. 单向移位寄存器

单向移位寄存器分为左移寄存器和右移寄存器,如图6-68所示。

DiFF01DC1RFF11DC1RFF21DC1RQ2FF31DC1RCPQ0Q1图6-68(a) 右移寄存器DiFF01DC1RCPQ0Q1图6-68(b) 左移寄存器

以图6-68(a)中的右移寄存器为例,当CP上升沿到来,串行输入端Di送数据入FF0中,FF1~FF3接受各自左边触发器的状态,即FF0~FF2的数据依次向右移动一位。经过4个时钟信号作用,4个数据被串行送入到寄存器的4个触发器中,此后可从Q0~Q3获得4位并行输出,实现串并转换。再经过4个时钟信号的作用,存储在FF0~FF3的数据依次从串行输出端Q3移出,实现并串转换。

如表6-32所示,在4个时钟周期内依次输入4个1,经过4个CP脉冲,寄存器变成全1状态,再经过4个时钟脉冲连续输入4个0,寄存器被清零。

Q3FF11DC1RFF21DC1RQ2FF31DC1RQ3表6-32 4位右移寄存器的状态表

输 入 Di CP 1 ↑ 1 ↑ 1 ↑ 1 ↑ 0 ↑ 0 ↑ 0 ↑ 0 ↑

单向移位寄存器的特点如下:

(1)在时钟脉冲CP的作用下,单向移位寄存器中的数据可以依次左移或右移。 (2)n位单向移位寄存器可以寄存n位二进制代码。n个CP脉冲即可完成串行输入工作,并从Q0 ~Qn-1并行输出端获得n位二进制代码,再经n个CP脉冲即可实现串行输出工作。

(3)若串行输入端连续输入n个0,在n个CP脉冲周期后,寄存器被清零。

2. 双向移位寄存器

在单向移位寄存器的基础上,把右移寄存器和左移寄存器组合起来,加上移 位方向控制信号和控制电路,即可构成双向移位寄存器。常用的中规模集成芯片有74LS194,它除了具有左移、右移功能之外,还具有并行数据输入和在时钟信号到达时保持原来状态不变等功能。 74LS194是由4个RS触发器和一些门电路所构成,每个触发器的输入都是由一个四选一数据选择器给出的。其逻辑符号如图6-69所示。

Q0Q1Q2Q3RD'CPCP74LS194S1S0现 态 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 次 态 Q0* Q1* Q2* Q3* 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 0 0 0 0 输 出 Q3 0 0 0 1 1 1 1 0 DIRD0D1D2D3DIL图6-69 4位双向移位寄存器74LS194D0~D3是并行数据输入端,Q0~Q3是并行数据输出端,DIR是右移串行数据输入端,DIL是左移串行数据输入端,RD′是异步清零端,低电平有效。S1、S0是工作方式选择端,其选择功能是:S1S0=00为状态保持,S1S0=01 为右移,S1S0=10为左移,S1S0=11为并行送数。可列出74LS194的功能表,如表6-33所示。

表6-33 双向移位寄存器74LS194的功能表

RD′ S1 S0 0 1 1 1 1 1 1 1 ×× ×× 1 1 0 1 0 1 1 0 1 0 0 0 CP × 0 ↑ ↑ ↑ ↑ ↑ × DIL × × × × × × × × DIR × × × 0 1 0 1 × D0 D1 D2 D3 × × × × × × × × D0 D1 D2 D3 × × × × × × × × × × × × × × × × × × × × Q0* Q1* Q2* Q3* 0 0 0 0 Q0 Q1 Q2 Q3 D0 D1 D2 D3 0 Q1 Q2 Q3 1 Q1 Q2 Q3 Q0 Q1 Q2 0 Q0 Q1 Q2 1 Q0 Q1 Q2 Q3 说明 异步清零 保持 并行送数 右移 右移 左移 左移 保持

例6-18 用74LS194组成串行输入转换为并行输出的电路。

解 转换电路如图6-70所示,其转换过程如表6-34所示。具体过程:串行数据d6?d0从DIR端输入(d0先入),并行数据从Q1~Q7输出,表示转换结束的标志码0加在第(1)片的D0端,其它并行输入端接1。清0启动后,Q8=0,因此,第1个CP使74LS194完成预置操作,将并行输入的数据01111111送入Q1~Q8。此时由于Q8=1,S1S0=01,故以后的CP均实现右移操作,经过七次右移后,七位串行码全部移入寄存器。此时Q8=0,表示转换结束,从寄存器读出并行数据Q1~Q7= d6~d0。由于Q8=0,S1S0再次等于11,第9个脉冲到来使移位寄存器置数,并重复上述过程。

并行输出Q1Q2Q3Q4Q0Q1Q2Q3RD′S174LS194S0CPDIRD0D1D2D3DIL串行输入d6?d0Q5Q6Q7Q8转换完成信号清0CPQ0Q1Q2Q3RD′S174LS194S0CPDIRD0D1D2D3DIL111图6-70 例6-18逻辑电路图表6-34 例6-18状态表

CP 0 1 2 3 4 5 6 7 8 9

Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 d0 0 1 1 1 1 1 1 d1 d2 d4 d6

操作 清零 送数 d0 0 1 1 1 1 1 右移七次 d1 d0 0 1 1 1 1 d3 d2 d1 d0 0 1 1 1 d3 d2 d1 d0 0 1 1 d5 d4 d3 d2 d1 d0 0 1 d5 d4 d3 d2 d1 d0 0 0 1 1 1 1 1 1 1 送数 6.5.2 移位寄存器型计数器

所谓移位寄存器型计数器,就是以移位寄存器为主体构成的同步计数器。根据进位模数不同,可将移位寄存器型计数器分为两类,即环型计数器和扭环型计数器。

1. 环型计数器

n位环型计数器由n位移位寄存器组成,其反馈逻辑方程为D0 = Qn。图6-71是由74LS194构成的四位环型计数器,其输入方程为DIR = Q3,每当时钟脉冲CP到来,寄存器里的数据将循环右移。根据移位规律作出完全状态图如图6-72

图6-71 4位环型计数器RD'CPCPQ0Q1Q2Q374LS194S1S001DIRD0D1D2D3DIL所示。

0100110010101110111110000010100101101101011100010011010110110000

若电路的起始状态为Q0Q1Q2Q3 = 1000,其状态迁移为1000→0100→0010→0001,若起始状态为Q0Q1Q2Q3 = 1110,其状态迁移为1110→0111→1011→1101。可见,四位环型计数器实际上是一个模4计数器。如果取以上任一状态循环为所需要的有效循环,那么同时存在着其他几种无效循环,而且一旦脱离有效循环之后,电路将不会自动返回有效循环,即环型计数器是不能自启动的。环型计数器的特点是结构简单,其进位模数与移位寄存器的触发器数目相等。在有效循环的每个状态只包含一个1(或 0),可以直接用环型计数器的输出作为状态输出信号或节拍信号,不需要另加译码电路。缺点是状态利用率低,无自启动能力, n位移存器只能构成M = n的计数器,有(2n-n)个无效状态。

2. 扭环型计数器(又称约翰逊计数器) 为了提高环型计数器的电路状态利用率,在不改变移位寄存器内部结构的前提下,通过对反馈逻辑电路的修改,得到扭环型计数器如图6-73所示。

其反馈逻辑方程为 DIR = Q3′,状态转换图如图6-74所示,可以看出,它有两个状态循环,若取其中

Q0Q1Q2Q3RD'CPCP74LS194S1S001图6-72 环型计数器的状态转换图DIRD0D1D2D3DIL图6-73 4位扭环型计数器左边的一个为有效循环,则余下的一个就是无效循环。

一旦脱离有效循环,电路不能自行返回到有效循环中,该计数器不能自启动。 扭环型计数器的特点是进位模数为移位寄存器触发器数目的两倍,即n位移存器

n

可以构成M=2n计数器,无效状态为(2-2n)个。扭环型计数器的状态按循环码的规律变化,即相邻状态之间仅有一位代码不同,因而不会产生竞争、冒险现象。

00001000110011100100101011010110主00010011011111111001001001011011图6-74 扭环型计数器状态转换图

扭环型计数器可以获得模为偶数的计数器,或者偶数分频器,若要获得奇数分频器,比如:三分频电路,其反馈函数应为F = Q0Q1;五分频电路的反馈函数应为F = Q1Q2;七分频电路的反馈函数应为F = Q2Q3。总结规律,奇数分频器的反馈函数应为F = QmQm+1 。

例6-19 74LS194电路如图6-75所示,列出该电路的状态迁移表,并指出其功能。

解 状态迁移关系如表6-35所示,由状态迁移 表6-35 题6-19状态迁移表 关系可以看出,该电路为15分频电路。除0000 状态外,其它状态均出现过。

DIR=Q0?Q3 Q0 Q1 Q2 Q3 1 1 0 0 0 1 1 0 1 1Q0Q1Q2Q31CPRD'CP74LS194S1S01 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 DIRD0D1D2D3DIL0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1001图6-75 例题6-19图

6.6 顺序脉冲发生器

在数字电路中,能产生一组在时间上有一定先后顺序的脉冲信号的电路称为顺序脉冲发生器,也称节拍脉冲发生器。按电路结构不同,顺序脉冲发生器可以分成移位型和计数型两大类。

1. 移位型顺序脉冲发生器

顺序脉冲发生器可以用移位寄存器构成。图6-76(a)所示是由4位环形计数器构成的4输出顺序脉冲发生器。由图6-76(b)可见,当CP时钟脉冲不断到来时,Q0~Q3端将依次输出正脉冲,顺序脉冲的宽度为CP的一个周期。

CPFF01DC1CPQ0(a)图6-76 移位型顺序脉冲发生器(a)电路图 (b)波形图Q1Q2Q3FF11DC1FF21DC1FF31DC1Q0Q0Q1Q2(b)

2. 计数型顺序脉冲发生器

图6-77所示电路是一个能循环输出4个脉冲的顺序脉冲发生器,图中的两个JK 触发器组成2位二进制计数器,4个与门组成2线-4线译码器。RD′是异步清零端,CP是输入计数脉冲,Y0~Y3是四个顺序脉冲输出端。

根据图6-77所示的逻辑电路,可得输出方程和状态方程。

?Y0???Y输出方程:?1?Y2???Y3?Q1?Q0??Q1?Q0?Q1Q0??Q1Q0CP11KC11JRD'1KC11JRD'Q1RD'

(6-39) Q0?Q*?Q??00状态方程:? (6-40) *?Q?QQ?Q?Q?1010?1只要在计数器的输入端CP加入固定频率的脉冲,便可在Y0~Y3端依次得

到输出的脉冲信号,如图6-78所示。

Y0Y1Y2Y3图6-77 计数型顺序脉冲发生器由于使用了异步计数器,在电路状态转换时,两个触发器的翻转有先有后,因此当两个触发器同时改变状态(从01 → 10)时,电路可能产生竞争—冒险现象,使顺序脉冲中出现尖峰脉冲。

RD′CPQ0Q1Y0Y1Y2Y3图6-78 计数型顺序脉冲发生器时序图

3. 用MSI构成顺序脉冲发生器

把集成计数器74LS161和3线-8线译码器74LS138结合起来,可以构成8输出的MSI顺序脉冲发生器,如图6-79所示。

1CPETEPCLKD0D1D2D3RD1Q0Q1Q2Q3LDCCP'A0A1A2S1S2S3Y0Y1Y2Y3Y4Y5Y6Y7P0'P1'P2'P3'P4'P5'P6'P7'74LS161图6-79 用MSI构成的顺序脉冲发生器74LS138

6.7 序列信号发生器

序列信号发生器是能够产生一组特定的串行数字信号的电路,它可以用移位寄存器或计数器实现。序列信号的种类很多,按照序列循环长度M和触发器数目n的关系一般可分为三种:

1. 最大循环长度序列码, M = 2n。

2. 最长线性序列码(m序列码),M = 2- 1。 3. 任意循环长度序列码,M<2n。

常见的序列信号发生器使用计数器和数据选择器组成。例如,需要产生一个8位的序列信号11010001,则可用一个八进制计数器和一个8选1数据选择器组成,其中八进制计数器用74LS161实现。逻辑图如图6-80所示。

当CP时钟脉冲到来,Q3Q2Q1Q0的状态按照表6-36所示的顺序不断循环。

1CPEPETQ0Q1Q2Q3COA2A1A011010001D0D1D2D3D4D5D6D7n

表6-36 图6.7.1的状态转换表 CP 0 1 2 YZQ2 Q1 Q0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 Z 1 1 0 1 0 0 0 1 1 8选1MUX

CPRD'D74LS16103 4 5 6 7 8 D1D2D3LD'1 1图6-80 用计数器和数据选择器组成的序列信号发生器

构成序列信号发生器的另一种常见方法是采用带反馈逻辑电路的移位寄存器。它由移位寄存器和组合反馈网络组成,从移存器的某一输出端可以得到周期性的序列

码。其设计按以下步骤进行:

(1)根据给定序列信号的循环长度M,确定移存器位数n, 2<M≤2。 (2)确定移位寄存器的M个独立状态。

将给定的序列码按照移位规律每n位一组,划分为M个状态。若M个状态中出现重复现象,则应增加移存器位数。用n+1位再重复上述过程,直到划分为M个独立状态为止。

(3)根据M个不同状态列出移存器的态序表和反馈函数表,求出反馈函数F的表达式。

(4)检查自启动性能。

(5)画逻辑图

例6-20 设计一个产生 100111 序列的反馈移位型序列信号发生器。 解 (1) 确定移存器位数n。 因M = 6, 故n≥3。

(2) 确定移存器的六个独立状态。

将序列码 100111 按照移位规律每三位一组,划分六个状态为 100、001、011、111、111、110。其中状态 111 重复出现,故取n=4, 并重新划分六个独立状态为 1001、 0011、0111、1111、1110、1100。因此确定n=4,用一片 74LS194即可。 表 6-37 例 6-20 反馈函数表 (3)列状态转换表和反馈激励函数表,求反 馈函数F的表达式。

首先列出态序表,然后根据每一状态所需要的移位输入即反馈输入信号,列出反馈激励函数表如表 6-37所示。从表中可见,移存器只需进行左移操作,因此反馈函数F = SL。表 6-37也表明了组合反馈网络的输出和输入之间的函数关系, 因此可画出F的卡诺图如图 6-81(a)所示,并求得

??

F(DIL)?Q0?Q2?(Q0Q2)?

(a)(b)Q0Q2 Q0000Q13n-1n

Q0 Q1 Q2 Q3 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 F(DIL) 1 1 1 0 0 1 0001100000××1×01××1×111×0010×1××001001011011011011001010010010010011主11101111011100011110F(DIL)1101图6-81 例6-20 F的卡诺图和全状态图(4) 检查自启动性能。

Q0 Q1Q2 Q300

011110001000××1×01××1×F(DIL)(a)1101(b)111×0010×1××010110111110111101101100主01111010010010010011000110000000图6-82 修正后F的卡诺图和全状态图(5)画逻辑电路。

移位寄存器用一片74LS194,组合反馈网络可以用SSI门电路或MSI组合器件实现。图6-83(a)所示电路中 DIL?(Q2(Z?Q3)?)?,采用了门电路实现反馈函数。图 6-83(b)电路采用了4选1 MUX实现反馈函数。

CPD04选1D1YMUXD2D3A1A0ZQ0CPQ3S174LS194S0DILQ1Q2101FZ S1S010F(a) Q0CPQ1Q2Q374LS194DIL(b)图6-83 例6-20的逻辑电路图(a)反馈网络采用SSI (b)反馈网络采用MSI 本章小结

时序电路的特点是:在任何时刻的输出不仅和输入有关,而且还决定于电路原来的状态。为了记忆电路的状态,时序电路必须包含有存储电路。存储电路通常以触发器为基本单元电路构成。

时序电路可分为同步时序电路和异步时序电路两类。它们的主要区别是,前者的所有触发器受同一时钟脉冲控制,而后者的各触发器则受不同的脉冲源控制。根据输出信号的特点可将时序电路划分为米利(Mealy)型电路和穆尔(Moore)型电路。

通常用于描述时序电路逻辑功能的方法有方程组(由状态方程、驱动方程和输出方程组成)、状态转换表(简称状态表)、状态转换图(简称状态图)和时序图等几种。它们各具特点,本质上是相通的,在不同的参合各有应用。其中方程组是和具体电路结构直接对应的一种表达式。状态表和状态图的特点是给出了电路工作的全部过程,能使电路的逻辑功能一目了然。时序图的表示方法便于进行波形观察,因而最宜用在实验调试当中。

与组合逻辑电路一样,时序逻辑电路也存在电路分析与电路设计,这是本章学习的重点。时序电路分析的主要步骤是,首先根据逻辑电路的特点写出驱动方程、输出方程和状态方程,然后由上述方程得到电路的状态表和状态图,最后根据状态表和状态图用文字描述电路的逻辑功能。

同步时序电路的设计步骤为:(1)根据设计命题要求,建立原始状态图和原始状态表。建立原始状态图时,主要遵循确保逻辑功能的正确性。(2)原始状态表化简。完全定义机状态表以等价状态为基础,采用隐含表法进行化简;不完全定义机状态表的化简要复杂一些,它建立在状态相容的基础上,得到的最简状态表必须满足覆盖、最小和闭合3个条件。(3)状态分配。状态分配方案不同,设计结果不一样,电路的繁简也就不同。如何找出一种最佳分配方案,使得逻辑电路最简,且电路又具有自启动能力,人们做了大量工作,但至今尚未找到一种普遍有效的方法。(4)确定驱动方程和输出方程。(5)画出逻辑电路图。

由于具体的时序电路千变万化,所以它们的种类不胜枚举。本章介绍的计数器、寄存器、移位寄存器、顺序脉冲发生器和序列信号发生器等只是其中常见的几种。因此,必须掌握时序电路的共同特点和一般的分析方法和设计方法,才能适应对各种时序电路进行分析或设计的需要。

习题

1. 电路如图6-84所示,试分析其功能。 (1)写出驱动方程、次态方程和输出方程;

(2)列出状态表,并画出状态图和时序波形。

1DQ1'C1Q1CP图6-84 题1图1DQ2'C1Q2z

2. 时序电路如图6-85所示。

(1)写出该电路的状态方程、输出方程; (2)列出状态表,画出状态图。

xCPz1JC11KQ1'Q11JC11K图6-85 题2图Q2'Q2

3. 某计数器的输出波形如图6-86所示,试确定该计数器是模几计数器,并画出状态图。

CPQAQBQC图6-86 题3图

4. 分析如图6-87所示的同步时序电路。

1DQ1C1Q1'CP1DQ2C1Q2'1DQ3C1Q3'1DQ4C1Q4'图6-87 题4图

5. 异步时序逻辑电路如图6-88所示,设各触发器初态为0,试分析其逻辑功能。要求写出驱动方程、状态方程,画出状态图和时序图。

1JCPC11KQ0'Q01JC11KQ1'Q11图6-88 题5图

6. 已知某计数器电路如图6-89所示。试分析该计数器性质,并画出时序波形。设电路的初始状态为0。

CP1DQ1C1Q1'Rd图6-89 题6图1DQ2C1Q2'Rd

7. 分析图6-90所示电路的计数器,判断它是几进制计数器,有无自启动能力。

Q1Q1'Q2Q2'Q3Q3'1JC1“1”CP1K1JC11K1JC1“1”1K图6-90 题7图

8. 化简如表6-38所示的原始状态表。 表6-38 原始状态表

现态 A B C D E F G

9. 化简表6-39所示不完全定义机的原始状态表。 表6-39 不完全定义机原始状态表

次态/输出 现态 x=0 x=1 A D/d C/0 B C D E A/1 d/d A/0 B/1 E/d E/1 C/0 C/d 次态/输出 x=0 B/0 A/0 F/0 A/0 A/0 C/0 A/0 x=1 C/0 F/0 G/0 C/0 A/1 E/0 B/1

10. 分析图6-91所示电路,写出方程,列出状态表,判断是几进制计数器,有无自启动能力。

本文来源:https://www.bwwdw.com/article/gv2x.html

Top