《集成电路 时序电路分析与设计.pptx》由会员分享,可在线阅读,更多相关《集成电路 时序电路分析与设计.pptx(203页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 时序逻辑电路的结构如下图所示 它由组合逻辑和存储器件两部分构成。图中:x1,x2,xn为时序电路的外部输入;Z1,Z2,Zm为时序电路的外部输出;y1,y2,yr为时序电路的内部输入(或称状态);Y1,Y2,Yp为时序电路的内部输出(或称激励)。第1页/共203页 时序电路的组合逻辑部分用来产生电路的输出和激励,存储器件部分是用其不同的状态(y1,y2,yr)来“记忆”电路过去的输入情况。上图所示的时序电路逻辑功能的函数一般表达式为Zi=gi(x1,x2,xn;y1,y2,,yr)i=1,2,m(5-1)Yj=fj(x1,x2,xn;y1,y2,,yr)j=1,2,p(5-2)式(5-1)称
2、为输出函数式(5-2)称为激励函数这两个函数都与变量x,y有关,也即电路的输出不仅与电路的输入有关,而且与电路的状态有关。第2页/共203页时序电路按其工作方式可分为同步时序电路和异步时序电路。同步时序电路的存储器件由时钟控制触发器组成,并且有统一的时钟信号,只有当时钟信号到来时,电路状态(y1,y2,yr)才发生变化。其余时间,即使输入发生变化,电路的状态也不会改变。时钟信号来之前的状态称为现态,记为(右上标也可省略);时钟信号到来之后的电路状态称为次态,记为。异步时序电路的存储器件可为触发器或延迟元件,电路中没有统一的时钟信号。第3页/共203页由于时序电路与组合逻辑电路在结构和性能上不同
3、,因此在研究方法上两者也有所不同。组合逻辑电路的分析和设计所用到的主要工具是真值表,而时序电路的分析和设计的用到的工具主要是状态表和状态图。同步时序电路在形式上又分成Mealy型和Moore型,它们在用状态表、状态图描述时其格式略有不同。型电路型电路第4页/共203页型电路 如 果 同 步 时 序 电 路 的 输 出 是 输 入 和 现 态 的 函 数,即Zi=fi(x1,x2,xn;y1,y2,,yp),i=1,2,,m,则称该电路为Mealy型电路。也就是说输出与输入有直接的关系,输入的变化会影响输出的变化。第5页/共203页 Mealy型同步时序电路状态表的格式如表5-1所示。表格的上方
4、从左到右列出输入x1,x2,xn的全部组合,表格左边从上到下列出电路的全部状态y,表格的中间列出对应不同输入组合的现态下的次态yn+1和输出Z。这个表的读法是,处于状态y的时序电路,当输入x时,输出为Z,在时钟脉冲作用下,电路进入次态yn+1.现态现态输入输入XY/Z第6页/共203页 例题:其同步时序电路有一个输入x,一个输出Z,4个状态A,B,C,D,该时序电路的状态表如下所示:yx01AD/0C/1BB/1A/0CB/1D/0DA/0B/1从该状态表可看出,若电路的初态为A,当输入x=1时,输出Z=1,在时钟脉冲作用下,电路进入次态C。假定电路的输入序列为x:10100110那么,与每个
5、输入信号对应的输出响应和状态转移情况为:时钟:12345678x:10100110y:ACBADACDy(n+1):CBADACDAZ:11000100第7页/共203页 需要指出的是:(1)(1)如果同步时序电路的初始状态不同,那么尽管输入序列相同,但输出响应序列和状态转移序列将不同。(2)电路的现态和次态是相对某一时刻而言,该时刻的次态就是下一个时刻的现态。第8页/共203页Mealy型电路状态图Mealy型电路的状态图格式如下图所示,在状态图中,每一个状态用一个圆圈表示,圈内用字母或数字表示状态的名称,用带箭头的直线或弧线表示状态的转移关系,并把引起这一转移的输入条件和相应的输出标注在有
6、向线段的旁边。第9页/共203页yx01AD/0C/1BB/1A/0CB/1D/0DA/0B/1某电路的状态表某电路的状态图Mealy型电路状态图示例Moore型电路第10页/共203页型电路如果同步时序电路的输出仅是现态的函数,即:Z=fi(y1,y2,yp),i=1,2,m,则称该电路为Moore型电路。也就是说该时序电路可能没有输入,或输入与输出没有直接关系。第11页/共203页现态现态输入输入输出输出XYZMoore型电路的状态表格式如下表所示。因为Moore型电路的输出Z仅与电路的状态y有关,所以将输出单独作为一列,其值完全由现态确定。次态与Mealy型一样,由现态和输入共同确定。该
7、表读法是,当电路处于状态y时,输出为Z。若输入x,在时钟脉冲作用下,电路进入次态yn+1。第12页/共203页yxz01ACB0BBC1CBA0Moore型时序电路的状态表示例当电路处于A状态时,其输出为0。若x=1,在时钟脉冲作用下,电路进入状态B,新的输出为1。假定电路的初始状态为B,那么电路的状态转换序列和输出响应序列为:时钟:12345678x:11001001y:BCACBCBBy(n+1):CACBCBBCZ:10001011第13页/共203页yxz01ACB0BBC1CBA0Moore型时序电路的状态图示例Moore型电路的状态图与Mealy型电路状态图的区别仅在于Moore型
8、电路的输出标注在状态图内,而Mealy型电路的输入和输出标在线上。第14页/共203页5.2同步时序逻辑电路的分析时序逻辑电路的分析,就是对一个给定的时序逻辑电路,研究在一系列输入信号作用下,电路将会产生怎样的输出,进而说明该电路的逻辑功能。在输入序列作用下,时序电路的状态和输出变化规律通常表现在状态表、状态图或时间图中。因此,分析一个给定的同步时序电路,实际上是要求出该电路的状态表、状态图或时间图,以此确定该电路的逻辑功能。本节将介绍分析同步时序电路的两种方法,并通过示例分析,了解和熟悉几种常用数字逻辑电路。第15页/共203页同步时序逻辑电路的分析方法同步时序电路的分析有两种方法:表格法和
9、代数法。两种方法分析过程示意图如下图所示。第16页/共203页下面介绍两种分析方法的一般步骤。1)表格法的一般步骤(1)根据给定的同步时序逻辑电路,写出输出函数表达式和激励函数表达式。(2)列出激励矩阵,即将激励函数以卡诺图的形式表示出来,若干个激励合成激励矩阵。(3)根据所用触发器的状态表及激励矩阵、输出矩阵(输出函数的卡诺图形式)形成Y-Z矩阵。Y-Z矩阵实际就是二进制形式的状态表。(4)由Y-Z矩阵可得时序电路的状态表、状态图。(5)假定某一输入序列画出时间图,并用文字描述电路的逻辑功能。第17页/共203页2)2)代数法的一般步骤(1)(1)同表格法的(1)(1)。(2)(2)把激励函
10、数表达式代入该电路触发器的次态方程,导出电路的次态方程组。(3)(3)根据电路的次态方程组和输出函数表达式作出同步时序电路的状态表,画出状态图。(4)(4)同表格法(5)(5)。两种方法的本质是相同的,视具体情况灵活选用。第18页/共203页 例5.1分析图5-7同步时序电路的逻辑功能。假定在初态00时,输入x的序列0000011111,画出时间图。解由电路图可写出激励函数、输出函数:1 1)表格法:2)代数法:第19页/共203页用表格法:将激励函数、输出函数表示在卡诺图上。y1y0 x01000011011100111100100011y1y0 x010011110111111111111
11、01111y1y0 x010010011011111011J1,K1卡诺图J0,K0卡诺图Z卡诺图第20页/共203页将J、K的卡诺图合并画到一个卡诺图上便得电路的激励矩阵。再根据JK触发器的状态表和输出矩阵,可将激励矩阵转换成Y-Z矩阵。y1y0 x010000,1111,110111,1100,111111,1100,111000,1111,11y1y0 x010001/111/00110/100/01100/110/11011/101/1激励矩阵J1K1,J0K0Y-Z矩阵第21页/共203页Y-Z矩阵实际上就是二进制状态表,将编码00、01、10、11分别用状态q1、q2、q3、q4表
12、示,代入Y-Z矩阵可得状态表,由状态表可画出状态图。(b)状态图第22页/共203页该电路是一个Mealy型时序电路。由状态表和状态图可以看出,当输入x=0时,在时钟脉冲CP的作用下,电路的状态按加1顺序变化,即:0001101100当x=1时,在时钟脉冲CP的作用下,电路的状态按减1顺序变化,即:1110010011因此,该电路既具有加1计数功能,又具有减1计数功能,且四个状态为一个循环,是一个模4的二进制可逆计数器。第23页/共203页假定计数器的初态y1y0为00(即q1),输入x的序列为0000011111,计数器在时钟脉冲CP控制下工作。下面先利用状态图作出时序电路的状态响应序列,而
13、后再作时间图。状态响应序列如下:CP12345678910 x0000011111y(Y)q1q2q3q4q1q2q1q4q3q2Z1111100110第24页/共203页 在CP1到来前,时序电路处于现态q1。当x=0时,由状态图可知,输出Z=1,次态为q2(CP1到来后的状态)。在CP2到来前,电路处于现态q2,当x=0,产生输出1,次态为q3,依次类推,可得到整个状态响应序列。然后,再根据状态响应序列作出时间图。状态y由y1y0来表示。第25页/共203页例5.1用代数法 以上过程用代数法也能很简单地求出结果。因为JK触发器的次态方程为:对于本例的逻辑图,两个触发器的次态方程为:第26页
14、/共203页将已求得的电路的激励函数代入该次态方程组就可得该电路的次态方程组:第27页/共203页 将电路的次态方程组表示到卡诺图上:01y1y0 x0100011011011010 x11y1y0010001001100101110y1y0 x0100011011111011Z第28页/共203页01/1y1y0 x01000110/11100/11011/100/010/101/111/0将两个卡诺图与输出函数的卡诺图合并就形成了二进制式的状态表。y1y0/Z第29页/共203页例5.2分析下图所示的同步时序电路解注意,本例比较特殊,没有外部输入,也没有外部输出。首先我们写出它的激励函数
15、第30页/共203页 因为D触发器的次态方程为=D,即次态与激励相等,所以求出的激励矩阵也就是Y矩阵或二进制形式的状态表。01Q1Q0Q3Q20001000111101110001001101110101100110111111110110001010111011000000001001110101D3D2D1D0=Q3n+1Q2n+1Q1n+1Q0n+1第31页/共203页由状态图可以看出,这是一个循环移位计数器。在计数时循环移位规则如下:这种计数器的循环长度l=2n,其中n为位数,这里n=4,l=8第32页/共203页 由状态图还可看出,图左半部8个状态形成闭环,称为“有效序列”,右半部8
16、个状态称为“无效序列”。如果该时序电路在某种偶然因素作用下,使电路处于“无效序列”中的某一状态,则它可以在时钟脉冲CP的作用下,经过若干个节拍后,自动进入有效序列。因此,该计数器称为具有自恢复功能的扭环移位计数器。第33页/共203页 该电路的时间图如下图所示。根据Q0Q03 3这4 4个基本波形,经过简单组合,可以形成各种不同的时序控制波形。在计算机中,常常用它作为节拍信号发生器。第34页/共203页例5.35.3分析下图的串行加法器电路,该电路有两个输入端x1x1和x2x2,用来输入加数和被加数。有一个输出端Z Z,用来输出相加的“和”。JKJK触发器用来存储“进位”,其状态为低位向本位的
17、进位,为本位向高位的进位。首先写出电路的激励函数和输出函数表达式:第35页/共203页 JKJK触发器的次态方程为:将激励函数表达式代入得电路的次态方程:根据电路的次态方程可作出它的状态表和状态图(a)状态表(b)状态图第36页/共203页设电路初始状态为0。加数x1=1011,被加数x2=0011,加数、被加数均按照先低位后高位的顺序串行地加到相应的输入端。输出Z也是从低位到高位串行地输出。根据状态图作出的响应序列为从左边状态响应序列可以看出,每位相加产生的进位由触发器保存了下来,以便参加下一位的相加。从输出响应序列可以看出,x1和x2相加的“和”由Z端输出第37页/共203页由于该电路的输
18、入和输出均是在时钟脉冲作用下,按位串行输入加数和被加数、串行输出“和”数,故称此加法器为串行加法器。如果需要保存相加的“和”数,可在输出端连接一个“串行输入/并行输出”的移位寄存器。加数和被加数也可事先放入“并行输入/串行输出”的移位寄存器中。从这个例子可以看到,用组合逻辑电路实现的功能有的也可用时序电路来实现,不同的是,组合电路采用的是并行工作方式,而时序电路采用的是串行工作方式。因此,在完成同样的逻辑功能情况下,组合电路比时序电路工作速度快,但时序电路的结构较组合电路简单。第38页/共203页例5.4分析图5-17所示的节拍信号发生器电路图5-17例5-4图首先写出激励函数和输出函数:第3
19、9页/共203页JK触发器的次态方程为:将激励函数表达式代入得电路的次态方程组:根据电路的次态方程组就可得电路的状态表如表5-9所示:。第40页/共203页 这是一个Moore型电路,输出仅与现态有关。根据状态表可作出时间图如图5-18所示。由时间图可以看出,触发器Q2,Q1构成模4计数器,8个与非门用来组合产生4个节拍电平信号,电路在时钟脉冲作用下,按一定顺序轮流地输出节拍信号。节拍信号发生器通常用在计算机的控制器中。计算机在执行一条指令时,总是把一条指令分成若干基本动作,由控制器发出一系列节拍电平和节拍脉冲信号,以控制计算机完成一条指令的执行。第41页/共203页常用同步时序逻辑电路1)寄
20、存器寄存器用于寄存一组二值代码,它被广泛地用于各类数字系统和数字计算机中。因为一个触发器能存储1位二进制代码,所以用N个触发器组成的寄存器能存储N位二进制代码。对寄存器中的触发器只要求它们具有置1 1、置0 0的功能即可,因而无论是用同步RSRS结构触发器,还是用主从结构或边沿触发结构的触发器,都可以组成寄存器。第42页/共203页图5-1974LS75的逻辑图图5-19是一个用同步RS触发器组成的4位寄存器的实例74LS75的逻辑图。由同步RS触发器的动作特点可知,在CP的高电平期间Q端的状态跟随D端状态而变,在CP变成低电平以后,Q端将保持CP变为低电平时D端的状态。第43页/共203页图
21、5-2074LS175的逻辑图74LS175则是用维持阻塞触发器组成的4位寄存器,它的逻辑图如图5-20所示。根据维持阻塞结构触发器的动作特点可知,触发器输出端的状态仅仅取决于CP上升沿到达时刻D端的状态。可见,虽然74LS75和74LS175都是4位寄存器,但由于采用了不同结构类型的触发器,以动作特点是不同的。第44页/共203页这这是是一一个个具具有有三三态态输输出出的的四四位位寄存器寄存器。1)1)当当LDA+LDB=1时时,电电路路处于装入数据的工作状态。处于装入数据的工作状态。2)2)当当LDA+LDB=0时时,电电路路处于保持状态处于保持状态。3)3)当当 时,时,电电路路正正常常
22、输输出出。反反之之,使使G10G10G13G13处于高阻态处于高阻态 。4)4)当当 =0时时,将将寄寄存存器器中中数据清除。数据清除。第45页/共203页说明:1)上面介绍的三个寄存器电路中,接收数据时所有各位代码是同时输入的,而且触发器中的数据是并行地出现在输出端的,因此将这种输入、输出方式叫并行输入、并行输出方式。2)异步置0:将寄存器的数据直接清除,而不受时钟信号的 控制。3)保持:就是将触发器的输出反馈到输入,当CP信号到 达时下一个状态仍保持原来的状态。第46页/共203页2.移位寄存器 移位寄存器除了具有存储代码的功能以外,还具有移位功能。所谓移位功能,是指寄存器里存储的代码能在
23、移位脉冲的作用下依次左移或右移。因此,移位寄存器不但可以用来寄存代码,还可以用来实现数据的串行-并行转换、数值的运算以及数据处理等。第47页/共203页例如由D触发器组成的4位移位寄存器,其中第一个触发器(左边)的输入端接收输入信号,其余的每个触发器输入端均与前边一个触发器的Q端相连。当CP的上升沿同时作用所有触发器时,加到寄存器输入端DI的代码存入FF0,其余触发器的状态为原左边一位触发器的状态,即总的效果是将寄存器里原有代码右移了一位。图5-22用D触发器构成的移位寄存器第48页/共203页例如,在4个时钟周期内输入代码依次为1011,而移位寄存器的初始状态为Q0Q1Q2Q3=0000,那
24、么在移位脉冲(也就是触发器的时钟脉冲)的作用下,移位寄存器里代码的移动情况将如表5-10所示。代码全部移入了移位寄存器中,同时在4个触发器的输出端得到了并行输出的代码。因此,利用移位寄存器可以实现代码的串行-并行转换。表5-10移位寄存器中代码的移动状况第49页/共203页 为便于扩展逻辑功能和增加使用的灵活性,在定型生产的移位寄存器集成电路上有的又附加了左、右移控制、数据并行输入、保持、异步置零等功能。如74LS194A就是一个4位双向移位寄存器,它的逻辑图如图5-23所示。详见书P153。第50页/共203页图5-234位双向移位寄存器74S194A的逻辑图第51页/共203页3.3.计数
25、器在数字系统中计数器是使用最多的一种电路。它不仅能用于对时钟脉冲计数,还可以用于频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。计数器的种类繁多,本节主要讨论同步计数器。目前生产的同步计数器芯片基本上分为二进制和十进制两种,下面分别举例说明。第52页/共203页(1)同步二进制计数器图5-24用T触发器构成的同步二进制加法计数器由图可得到它的激励函数和输出函数的表达式为:T0=1,T1=Q0,T2=Q0Q1,T3=Q0Q1Q2C=Q0Q1Q2Q3T触发器的次态方程为:第53页/共203页将激励函数代入,得电路的次态方程组:整理得第54页/共203页将该方程组反映到卡诺图上得Y矩阵,如下表所
26、示。根据Y矩阵和输出函数,很容易得该电路的状态图:第55页/共203页此外,每输入16个计数脉冲,计数器工作一个循环,并在输出端C产生一个进位输出信号,所以又把这个电路叫十六进制计数器。n位二进制计数器也称为进制计数器,它所能计到的最大数为2n。时间图如图5-265-26所示。从时间图上可以看出,若计数输入脉冲的频率为f0,则Q0、Q1、Q2和Q3端输出脉冲的频率将依次为1/2f0、1/4f0、1/16f0。针对计数器这种分频功能,也把它叫做分频器。第56页/共203页在实际生产的计数器芯片中,往往还附加一些控制电路,以增加电路的功能和使用的灵活性。如中规模集成芯片74161,这个电路除了二进
27、制加法计数功能外,还具有预置数、保持和异步置零等功能。为预置数控制端。为异步置零(复位)端。EP和ET为工作状态控制端第57页/共203页第58页/共203页功能分析:1 1)当 时所有触发器将同时被置零,而且置零操作不受其他输入端状态的影响。2 2)当 ,时,电路工作在预置数状态。3)当 =1而EP=0,ET=1时,CPCP信号到达时它们保持原来的状态不变,同时C C的状态也得到保持。如果ET=0ET=0,则EPEP不论为何状态,计数器的状态也将保持不变,但这时进位输出C C等于0 0。4 4)当 =1时,电路工作在计数状态。从电路的0000状态开始连续输入16个计数脉冲时,电路将从1111
28、状态返回0000状态,C端从高电平跳变至低电平,可以利用C端输出的高电平或下降沿 作为进位输出信号第59页/共203页(2)同步十进制计数器右图是用T T触发器构成的同步十进制加法计数器电路。从图中可写出电路的激励函数、输出函数的表达式:第60页/共203页T触发器的次态方程为:将激励函数代入得电路的次态方程组:整理得第61页/共203页将电路的次态方程组反映到卡诺图上,得Y Y矩阵如表5-145-14所示。Q1Q0Q3Q200011110000001010111011001010010011001000000110100100000100110100011011111111011表514Y矩
29、阵图529状态图由Y矩阵很容易可得状态图如图5-29所示。从图上可看出有效序列有10个状态,进行十进制的加法计数,从00001001重复计数。另外6个状态为无效序列,但能自动进入有效序列,该电路具有自恢复功能。第62页/共203页与二进制计数器类似,中规模集成芯片74160为同步十进制加法计数器,逻辑图如图5-30所示。它除了计数功能外,还有预置数、保持、异步置零等功能。图中的控制信号及功能表与上面讨论的74161完全一样,只是74160是十进制而74161是十六进制。第63页/共203页第64页/共203页(3)任意进制计数器从降低成本考虑,集成电路的定型产品必须有足够大的批量,因此目前常见
30、的计数器芯片在计数进制上只做成应用较广的几种类型,如十进制、十六进制、7位二进制、12位二进制、14位二进制等。如需要其他任意进制时,只能用现有产品的进制计数器加一些辅助电路来实现。假定已有N进制计数器,而需要得到M进制计数器。下面分两种情况来讨论:1)MN情况第65页/共203页MN的情况这时必须用多片N进制计数器组合起来,才能构成M进制计数器。各片之间(或称为各级之间)的连接方式可分为串行进位方式、并行进位方式、整体置零方式和整体置数方式几种。下面仅以两级之间的联接为例说明这4种连接方式的原理。若M可以分解为两个小于N的因数相乘,即M=N1N2,则可采用串行进位方式或并行进位方式将一个N1
31、进制计数器和一个N2进制计数器连接起来,构成M进制计数器。第73页/共203页例5.6试用两片同步十进制计数器接成百进制计数器。解:本例中M=100,N1=N2=10,将两片74160直接按并行进位方式或串行进位方式连接即得百进制计数器。图5-36例5.6电路的并行进位方式在并行进位方式中,以低位片的进位输出信号作为高位片的工作状态控制信号(计数的使能信号)。两片的CP输入端同时接计数输入信号。第74页/共203页图5-37例5.6电路的串行进位方式上图中两片74160的EP和ET恒为1,都工作在计数状态。第(1)片每计到9(1001)时C端输出变为高电平,经反相器后使第(2)片的CP端为低电
32、平。下个计数输入脉冲到达后,第(1)片计成0(0000)状态,C端跳回低电平,经反相后使第(2)片的输入端产生一个正跳变,于是第(2)片计入1。可见,在这种接法下两片74160不是同步工作的。第75页/共203页 在N1N2等于N时,可以先将两个N进制计数器分别接成N1进制计数器和N2进制计数器,然后再以并行进位方式或串行进位方式将它们连接起来。当M M为大于N N的素数时,不能分解成N1N1和N2N2,上面讲的并行进位方式和串行进位方式就行不通了,这时必须采取整体置零方式或整体置数方式构成M M进制计数器。第76页/共203页整体置零方式,是首先将两片N进制计数器按最简单的方式接成一个大于M
33、进制的计数器(例如NN进制),然后在计数器计为M状态时译出异步置零信号=0,将两片N进制计数器同时置零。这种方式的基本原理和MN时的置零法是一样的。整体置数方式也一样,在NN进制基础上进行,基本原理和M寄存器输出组合逻辑输出。第140页/共203页5 54 42 2状态图描述在逻辑电路中,状态图用来描述时序电路的状态转换规律。它以电路的状态为中心,表现每个状态(当前状态)在一定输入条件下将向什么状态(下一状态)转换,以及伴随此转换发生的即刻输出的变化。与此相同,ABEL-HDL的状态图也是以状态为中心,每个状态安排一行。其格式为:STATE状态表达式:方程方程转移语句;第141页/共203页
34、与真值表描述类似,第一行是块首,即关键字,关键字后还必须注出状态名。state_diagram状态名状态输出 第142页/共203页例5.155.15把例5.135.13中模4 4加1 1同步计数器用状态图方式的ABEL-HDLABEL-HDL描述如下:解 module jsqtitle 4-bit up counterclk pin;q0,q1 pin istype reg;state_diagramq1,q0state0,0:goto0,1;state0,1:goto1,0;state1,0:goto1,1;state1,1:goto0,0;end第143页/共203页转移语句用来说明状态
35、的转换情况,是状态描述的关键。转移语句有多种,应根据状态的转换方式选择合适的语句来书写。状态转换的方式如图5-51所示。(a)无条件转移(b)简单分支(c)复杂分支第144页/共203页图(a)是无条件转换,即若当前状态为A,则时钟作用后的状态(下一状态)必为B。对于此种转换方式,宜采用goto语句,其格式为goto状态表达式:所以右图表示为:stateAgotoB;第145页/共203页 图(b)是简单分支情况,宜采用if-then-else语句,其格式为:if表达式then状态表达式else状态表达式;其中if后面为任何合法表达式,它代表状态转换的条件;then和else后面跟的都是下一状
36、态表达式(方括号中的内容不是必须的),对图5-51(b),有 STATE A:ifXthenBelseC;或 STATE A:ifX=1thenBelseC;说明第146页/共203页描述状态转换条件的表达式和表示状态的表达式可以有 多种形式,例如ifA=BthenZ;ifX-YthenJelseK;ifAthenB+C;等。式中的符号=是算术运算符号“等于”。第147页/共203页 图(c)是有3个或3个以上分支的复杂情况,自然,此时的分支控制变量一定不止一个。对图(c)所示的状态图,每个分支的条件之间总是互斥的,即任何时候没有两个或两个以上条件同时为真,若遇到这种情况,宜采用case语句,
37、其格式为case表达式:状态表达式;表达式:状态表达式;表达式:状态表达式;endcase第148页/共203页StateA:case!X1!X2:A;!X1X2:B;X1!X2:C;X1X2:D;endcase用链接式的if-then-else第149页/共203页图5-51(c)状态图也可写成if!X1!X2thenAelseif!X1X2thenBelseX1!X2thenCelseD;(注意上述语句不一定要写多行缩格形式,这里的写法只是为便于看清这种复杂语句的转移关系,使设计宜于理解。)第150页/共203页 状态图中输出信号的表示方法时序电路中的即刻输出与电路的型式有关。摩尔型电路的
38、输出仅取决于电路的状态,每个状态有一个确定的输出;米里型电路的输出不仅与状态有关,还与输入有关。1)Moore型电路2)Mealy型电路第151页/共203页因对于是Moore型的电路,则输出仅与当时的状态有关,这时输出的描述应与状态在一起。只要在每个转移语句前写出其表达式即可;示例:517第152页/共203页例5.175.17有一个MooreMoore型的时序电路,输入信号为S S,状态变量为Q1Q0Q1Q0,输出变量为BABA,状态图如图5-535-53所示。用ABEL-HDLABEL-HDL的状态图方法描述其逻辑关系。图5-53Moore型电路状态图解:statediagramQ1,Q
39、0state1,1:B=1;A=1;if(s)then1,1else1,0;第153页/共203页 state1,0:B=0;A=1;if(s)then1,1 else,;state,:B=1;A=0;goto1,1;state0,0:B=0;A=0;if(s)then1,1 else1,0;返回第154页/共203页对于Mealy型电路,因与状态转换的条件有关,故而应利用with-endwith语句,将关于输出的信息加在goto,if-then-else或case语句中的每一个状态表达式的后面,以说明它们与状态转换的伴随关系。其格式为转移语句状态表达式 with方程;方程;endwith这里
40、转移语句指的是goto,if-then-else,case等,状态表达式是下一状态,with后面是表示电路即刻输出的方程。第155页/共203页对图5-51(a),有stateA:gotoBwithZ1=1;Z2=0;endwith第156页/共203页对图5-51(b),因为状态A在X=0时输出Z=1,而当X=1时Z=0,故可用if-then-else语句写成stateA:if XthenBelseCwith!X;endwith或 stateA:ifXthenBwithZ=0;endwithelseCwithZ=1;endwith第157页/共203页 对于图5-51(c),在使用case语
41、句时,with语句如下面这样安排:stateA:case!X1!X2:AwithZ=0;endwith!X1X2:BwithZ=0;endwithX1!X2:CwithZ=0;endwithX1X2:D withZ=1;endwithendcase第158页/共203页需要注意的是,上面各例中的输出都是在当前状态下的即刻输出,而下一状态相对它是有延迟的,例如图5-51(b)的结果应符合图5-52(a),这是Mealy机的特征。图551(b)图5-52输出信号与赋值符的关系第159页/共203页有时我们希望所表示的电路的输出是状态转移以后的输出,如图5-52(b)那样,这时with后面的方程可使
42、用时序赋值符(:=)。仍用上面的例子,可以得到语句sateA:ifX=1thenCwithZ:=1endwithelseBwithZ:=0 endwith;则其波形如图5-52(b)所示。第160页/共203页 由于ABEL编译软件有很强的处理能力,对用算术运算形式书写的表达式也能编译,这就使得数组的应用更有价值。例如对一个由触发器Q3、Q2、Q1、Q0构成的十进制加法计数器,如将其状态写成数组形式3.Q0,并定义为标识符S,则此计数器的功能只要用两条语句即可描述。即When(S=9)thenS:=0ElseS:=S.fb+1;第161页/共203页55VHDL时序电路设计特点VHDL的时序电
43、路描述第162页/共203页5.6 5.6 同步时序逻辑电路设计举例一般设计方法要比分析方法复杂一些,对于前面讲的设计步骤,应根据实际情况灵活运用。下面举几个设计实例。第163页/共203页例5.19 5.19 将例5.95.9的“111111”序列检测器的问题进一步完成设计解在例5.9中已经得到该检测器的原始状态表。化简第164页/共203页简化状态表共3 3个状态,所以需要两位触发器Q1Q1和Q0Q0。根据状态分配的原则,一种较简单的分案如图5-565-56所示。根据这个状态分配方案可得二进制状态表(Y-Z(Y-Z矩阵)如表5-335-33所示。第165页/共203页若选用JK触发器作为存
44、储元件。如用表格法,可根据JK触发器的激励表,得到电路的激励矩阵如表5-34所示。第166页/共203页分别画出各激励函数J1,K1,J0,K0和输出函数Z的卡诺图如图5-57所示。由卡诺图可得激励函数和输出函数为:,,第167页/共203页如用代数法,则可根据Y-Z矩阵先写出电路的次态方程:因JKJK触发器的次态方程为:将电路次态方程转换成如下形式:与JK触发器次态方程相比较就得激励函数:,第168页/共203页结果与表格法一致,根据激励函数和输出函数可得逻辑图如图5-58所示。从这个逻辑图可推出实际的电路状态图如图5-59所示。该状态图表明,当电路进入无效状态11后,若x=1则次态转入10
45、;若x=0则次态转入00,因此这个电路是能够自启动的图5-58例5.19逻辑图图5-59图5-58的状态图第169页/共203页本例中若改用D D触发器,则由于D D触发器的次态方程为:即电路的次态方程就是D D触发器的激励方程:逻辑图如图5-60所示。图5-60 用D触发器组成的序列检测器用ABEL语言描述例5.19第170页/共203页原程序如下:MODULE XLJCQTITLE 111 sequence detectorX,CLK PIN;Q0,Q1 PIN ISTYPE REG;Z PIN ISTYPE COM;C,XX=.C.,.X.;定义C为时钟信.C.,XX为任意值.X.第17
46、1页/共203页EQUATIONS Q0.CLK=!CLK;时钟的下降沿有效Q1.CLK=!CLK;Q1:=X&Q1#X&Q0;Q0:=X&!Q0&!Q1;Z=X&Q1;第172页/共203页 TEST_VECTORS(Q1,Q0,X,CLK-Q1,Q0,Z)0,0,1,0-XX,XX,XX;XX,XX,1,C-XX,XX,XX;XX,XX,1,C-XX,XX,XX;XX,XX,1,C-XX,XX,XX;XX,XX,1,C-XX,XX,XX;XX,XX,1,C-XX,XX,XX;XX,XX,0,C-XX,XX,XX;END第173页/共203页 说明:该测试向量的时间仿真图如图5-61 5-6
47、1 所示,这是MealyMealy型时序电路,X X输入变量的变化直接影响到输出变量Z Z,而状态的变化会等到时钟有效边沿到来时才发生。还可注意到,此电路是“111111”序列检测器,即检测到3 3个及3 3个以上连续的“1 1”,输出Z=1Z=1,但从时间仿真图中看到第二个脉冲的有效边沿后就出现Z=1Z=1,这就是Mealy Mealy 型电路的特点,这时实际上已进入第3 3个节拍段,也就是第3 3个“1 1”已经出现,Z Z的变化与输入X X同步,所以有Z=1Z=1。图5-61“111”序列检测器的时间仿真图第174页/共203页例5.205.20设计一个自动售饮料机的逻辑电路,它的投币口
48、每次只能投入一枚五角或一元的硬币。投入一元五角硬币后机器自动给出一杯饮料;投入两元(两枚一元)硬币后,在给出饮料的同时找回一枚五角的硬币。解:取投币信号为输入逻辑变量,投入一枚一元硬币时用A=1表示,未投入时A=0;投入一枚五角硬币用B=1表示,未投入时B=0。给出饮料和找钱为两个输出变量,分别以Y,Z表示。给出饮料时Y=1,不给时Y=0;找回一枚五角硬币时Z=1,不找时Z=0。假定通过传感器产生的投币信号(A=1或B=1)在电路转入新状态的同时也随之消失,否则将被误认作又一次投币信号。第175页/共203页设未投币前电路的初始状态为S0,投入五角硬币以后为S1,投入一元硬币(包括投入一枚一元
49、硬币和投入两枚五角硬币的情况)以后为S。再投入一枚五角硬币后电路返回S0,同时输出为Y=1,Z=0;如果投入的是一枚一元硬币,则电路也应返回S0,同时输出为Y=1,Z=1。因此,电路的状态数M=3已足够。根据以上分析,可得自动售饮料机的逻辑电路的状态图如图5-62所示。第176页/共203页 图5-62 例5.20的状态图表5-35 例5.20的状态表第177页/共203页因为正常工作中不会出现AB=11的情况,所以这时次态和输出均为无关项。又因该状态表已为最简形式,所以不必再进行化简过程。状态分配。由于状态表中有3个状态,取触发器的位数n=2,即Q1Q0就满足要求,假如令S0=00,S1=0
50、1,S2=10,Q1Q0=11作无关状态,则得二进制状态表(Y-Z矩阵)如表5-36所示。第178页/共203页若电路选用D触发器实现,则刚刚求出的Y-Z矩阵中的Y矩阵也就是激励矩阵。这是因为D触发器的次态方程为。根据激励矩阵可得激励和输出的卡诺图如图5-63所示。第179页/共203页 00d101d0dddd10d0AB000111100001111000d000d1dddd01d1000111100001111001d010d0dDdd00d0000111100001111000d000d0dddd10d10001111000011110Q1Q0Q1Q0Q1Q0Q1Q0ABABABD1D