数值系统的状态模型课件

上传人:仙*** 文档编号:241395360 上传时间:2024-06-23 格式:PPTX 页数:56 大小:660.47KB
返回 下载 相关 举报
数值系统的状态模型课件_第1页
第1页 / 共56页
数值系统的状态模型课件_第2页
第2页 / 共56页
数值系统的状态模型课件_第3页
第3页 / 共56页
点击查看更多>>
资源描述
1 1第7章 数值系统的状态模型7.1 二态数值系统二态数值系统7.2 三态数值系统三态数值系统7.3 四态数值系统四态数值系统7.4 九态数值系统九态数值系统7.5 十二态数值系统十二态数值系统7.6 四十六态数值系统四十六态数值系统2 2在设计数值系统时,必须事先知道系统所规定的几种逻辑状态。在以往的数字电路的设计中,二态逻辑系统和三态逻辑系统已为一般的工程设计人员所熟知。但是,随着大规模集成电路技术的发展,在进行数值系统设计时往往需要用到混合技术,将ECL、TTL、CMOS、MOS等不同的器件连接起来。这些器件之间的逻辑电平是不一致的。为了描述这些器件的逻辑电平,前面已经提到的用二态和三态来描述数值系统的逻辑电平显然不够,这就需要增加某些状态。另外,建立双向开关电平及处理未知状态等也需要引入其它状态。下面概略介绍随着硬件设计技术和仿真技术而发展起来的四十六态数值系统。3 3在对数字系统进行初级仿真时,一般采用二态数值系统,逻辑“1”(或者“真”)和逻辑“0”(或者“假”)就是系统的两种状态。信号的状态只可能取二者之一。在VHDL语言中,通常用BIT数据类型来描述这两种状态。例如:TYPE BIT IS(0,1);7.1 二态数值系统二态数值系统4 4图7-1 总线冲突电路实例5 5最简单的数值系统是一个信号源的系统,用二态数值系统就能很好地描述这样的系统。例如,由一个反相器构成的数值系统,当输入为“0”时,其输出为“1”;当输入为“1”时,其输出为“0”。系统的输入和输出在任何时候其值只能取这两种状态之一。在数字电路和计算机原理的有关书籍中经常可以看到这样一个概念,即总线竞争(或者总线冲突)。在某一条总线上,如果有多个信号源以相同的强度值对它进行驱动,则会产生总线竞争,此时总线上的信号电平可能是一个不能具体确定的逻辑电平。对于这样的系统,如果要用二态数值系统来描述是不行的,因为二态中的“0”和“1”都无法正确地描述其输出。6 6在图7-1中,如果某一条数据总线D0由一块反相器U1和一块与门U2所驱动,则U1的输出为“0”,而U2的输出为“1”。在一条总线上出现了两个不同的逻辑电平,这样D0数据线上到底是“1”还是“0”就很难确定了,也就是说出现了不确定的值“X”。这种状态是一种错误的状态。因此仅仅利用二态数值系统不能表示信号的输出错误状态。7 7为了避免在二态数值系统中所发生的问题,人们认识到,在二态数值系统的基础上需要再加一个新的状态,即未知值状态。这种状态在VHDL语言中通常用字符“X”来表示。未知状态可以取值为“1”,也可以取值为“0”,但是当前到底取值是“1”还是“0”是不确定的。对三态数值系统状态,可以用数据类型定义语句来描述:7.2 三态数值系统三态数值系统8 8TYPE threestate IS(X,0,1);未知状态值可以在不同情况下表示不同的行为。例如,用未知状态值可以表示05V之间的电压值;另一种情况下,也可以表示“1”和“0”。在数值系统中,未知状态将表示“1”或者“0”,但是具体是何值却不能确定。9 9图7-2 三态驱动器1010在系统设计的仿真中,引入“X”值有许多方便之处。首先,用“X”值可以表示信号的初始状态值,在系统启动时所有信号都被置为“X”值,此后这个值可以被电路元件的后继状态所改写。在系统开始仿真时,系统中的每一个信号均将赋以“X”值。在外部输入信号值加到电路的输入端以后,通过电路的信号传递,就会改写初始启动值“X”。在仿真时产生“X”值的另一个原因是总线冲突(总线竞争),也就是前面所述的有多种输出信号线连接在一起,且它们的逻辑值是相反的,如图7-1所示。此时,电路的输出值将为“X”。将两个输出信号连接在一起,这可能是有意的,但也可能是无意的设计错误。不管哪一种情况,仿真器必须预测出正确的输出值。1111在图7-1中,如果不给出两个信号的有关强度的信息,那么仿真器就不能确定输出值到底应该取值为“0”还是为“1”。此时,其输出值只能用“X”值来表示。有关输出信号值的强度问题,在后面将会作更详细的解释。这里,为便于读者理解“X”值的状态,先对信号值的强度作一概略介绍。在例5-3中介绍了一种判决函数表。在该表中定义了9种逻辑状态,其中:“0”强逻辑低电平;“1”强逻辑高电平;“L”弱逻辑低电平;“H”弱逻辑高电平。1212当两个强度相同而逻辑不同的信号同时出现在一个输出端时,其输出端的值是不确定的。例如,“0”和“1”、“L”和“H”同时出现在信号的输出端时,输出端的取值应为“X”。当不同强度的信号出现在输出端时,输出端的最终取值应由强信号逻辑状态确定。例如,当“1”和“L”出现在输出端时,输出端取值为“1”;当“0”和“H”出现在输出端时,输出端取值为“0”,其它情况依次类推。由此可见,在进行系统或电路仿真时,给出信号强度的信息是至关重要的。1313在当前的计算机系统中常常要用到双向数据总线,数据总线驱动器的输出需要一个特殊的状态,即高阻状态。这是无法用二态数值系统和三态数值系统进行正确描述的。利用这个高阻状态可以使总线被多个设备所共享,并且可以方便地实现数据总线的双向操作。高阻状态通常用集电极开路门来实现,为表示这种状态,需要引入另一种状态,通常称为“Z”状态。这样就形成了四态数值系统,在VHDL语言中常用如下数据类型来描述这4种状态:7.3 四态数值系统四态数值系统1414TYPE fourstate IS(X,0,1,Z);“Z”状态是三态驱动器的一种输出状态,与一般的门电路不同,它除了具有输入和输出端之外,还有一个允许端,如图7-2所示的en端。当en端为“0”(低电平)时,无论输入端a的信号值是“0”还是“1”,其输出端b均呈现高阻状态;当en端为“1”(高电平)时,输出端b的信号值就随输入端a的信号值的变化而变化。当a=“1”时,b为“0”;当a=“0”时,b为“1”。高阻状态“Z”的引入解决了多个信号源驱动一条信号线以及信号线的双向驱动等问题。图7-3是一个利用三态门实现总线双向操作的实例。1515图7-3 利用三态门实现总线双向操作实例1616现假设U1的输入bin=1,U4的输入ain=0。当en1=1时,U1的输出值“1”将加到总线上。如果此时en2=0,则U4的输出值“Z”也同时加到总线上,这样在总线上就存在两个逻辑值“1”和“Z”。由于“1”和“0”的强度都大于“Z”,因此总线上的最终状态值应为“1”。总线上数据的流向便为自左至右。如果现在en1=0,en2=1,那么U4就将输出“0”值加到总线上,而U1则将输出“Z”值加到总线上。这样总线上同样存在两个逻辑值“0”和“Z”。与上述理由相同,此时总线上的最终状态值为“0”。总线上的数据流向便为自右至左。1717如果某一时刻en1和en2同时为“1”,即U1输出的“1”值和U4输出的“0”值将同时加到总线上,则由于这两个值的强度相同,因此最终总线上的状态应为“X”。在一般情况下,这种状态是不希望出现的。在系统正常工作时,通常要求驱动总线的三态门在某一时刻只允许有一个被选通。表7-1给出了总线上施加两种不同的状态时其最终的取值结果。该表与例5-3中所述的判决函数是一致的。利用查表方法可以验证,上述所列举的3种情况其结果是完全一致的,即“1”和“Z”将取值“1”,“0”和“Z”将取值“0”,“1”和“0”将取值“X”。1818表表7-1 总线状态值关系表总线状态值关系表1919表7-1仅仅给出了两个三态驱动器驱动总线时总线的取值情况。当有多个三态驱动器驱动总线时,总线上的状态值又如何来确定呢?实际上也很简单,仍然使用该表,经查表得到两个驱动器驱动总线时的取值,然后由这个总线取值和下一个总线驱动器的输出值,经查表可得到下一个总线取值。如此循环查表,相当于一个迭代过程,最后即可得到由多个驱动器驱动时总线的最终取值。例如,有4个驱动器同时驱动一条总线,总线的初始状态为“Z”,4个驱动器的输出分别为“1”、“Z”、“1”、“0”,那么其总线的最终取值应为“X”,其具体的查表过程如图7-4所示。从图7-4中可以看出,在这种情况下总线上的取值应为“X”。2020图7-4 4个驱动器时总线取值的查表过程的示意图2121四态数值系统能较精确地描述TTL器件的工作过程。但是,随着MOS技术的不断发展,四态数值系统已不能正确地反映系统的实际工作过程了。在MOS电路中,“1”和“0”具有不同的强度。在NMOS电路中,“0”值的强度比“1”值强;在PMOS电路中,“1”值的强度又比“0”值强。另外,在NMOS和PMOS电路中,当某一个节点处于三态时,电荷将被储存,节点将维持原来的逻辑值(当然,这只是在某一工作周期中有效)。7.4 九态数值系统九态数值系统2222为了表示数值系统的所有状态,人们开发了九态数值系统。该数值系统由3种强度和3种逻辑值组成。3 种强度分别为高阻“Z”、电阻“R”及强强度“F”。9个状态值的对应关系如表7-2所示。2323表7-2 九态数值关系表2424在VHDL语言中常用如下数据类型来描述九态数值系统:TYPE ninestate IS(Z0、Z1、ZX、R0、R1、RX、F0、F1、FX);上述定义的状态将表示如下的系统状态:Z0高阻强度的逻辑“0”;Z1高阻强度的逻辑“1”;ZX高阻强度的逻辑“X”;R0电阻强度的逻辑“0”;R1电阻强度的逻辑“1”;RX电阻强度的逻辑“X”;F0强强度的逻辑“0”;2525F1强强度的逻辑“1”;FX强强度的逻辑“X”。这里,强强度的F0、F1、FX很像三态数值系统中所讨论的“0”、“1”、“X”3种状态,所不同的仅仅是现在加了一个强度值。在四态数值系统中所讨论的状态值“Z”现在被扩展成3种状态,“Z”作为强度值来进行表示。这样,Z0、Z1、ZX分别表示电荷所存储的逻辑值。第三种电阻强度值用来处理NMOS的“1”值和PMOS的“0”值。2626图7-5 F0和R0的关系2727强强度在3种强度描述中表示最强的一个强度,它相当于供电电源提供的强度。例如,5V电源的电平可以用F1来表示,电源地可以用F0来表示。电阻强度其强度值低于强强度的值,它可以由强强度逻辑电平经过一个电阻后得到。如图7-5所示,若电阻的左端加一个强强度逻辑电平,那么在电阻的另一端即可得到电阻强度的逻辑电平。例如,5V电源是强强度逻辑电平F1,如果在电路中加一个上拉电阻,那么在上拉电阻的另一端即可得到电阻强度的逻辑电平R1。高阻强度是3种强度中最弱的一种强度。它所描述的是NMOS、PMOS、CMOS器件的门电路断开时在分布电容上所存储的电荷数量。例如,图7-6就是一个电荷存储电路的实例。2828图中en=0时,门被断开,信号b失去了驱动源,存储于电容上的电荷就加在U2的输入端。这个存储电荷的逻辑值将一直保持,直到下一个时间周期再对信号b进行驱动为止。此时信号b就处于高阻态,至于是Z0还是Z1,则取决于开关断开时的最后逻辑电平是“0”还是“1”。下面再来看一下用于构成NMOS和PMOS电路的电阻强度。图7-7所示是一个NMOS的反相器电路。它由两个晶体管器件组成,分别为V1和V2。V2是一个标准的增强型NMOS开关器件。V1是一个耗尽型器件,它的作用像一个电阻,电压经过它将产生压降。2929 图7-6 高阻态的电荷存储电路实例图3030 图7-7 NMOS的反相电路3131当输入in1加“1”电平时,V2将导通,信号out1将被拉至地电平(F0)。此时虽然V1也导通,但是呈现较高的阻抗。该反相器的输出将变成F0。当输入in1加“0”电平时,V2将不导通,并呈现很高的阻抗。此时,V1呈现中等大小的阻抗,因此输出out1由V1驱动,使其呈现“1”电平,它的输出强度不是强强度,而是R1强度。这里V1可以看成是一个带有中等大小阻抗值的电阻。这样,该反相器的真值表就如表7-3所示。3232表表7-3 反相器的真值表反相器的真值表3333在表7-3中,为什么在输入in1为“X”时,输出out1被置为“FX”值呢?这可以从两方面来考虑:如果输入“X”值是“0”,则输出值为R1;如果输入值为“1”,则输出值为“F0”。从最坏情况来考虑,输入为“X”值,输出也将是“X”值,而且从强度上来考虑,强强度也是一种最坏的情况。因此,在这里用“FX”来表示“R1”和“F0”的两种不确定状态。现在再来看一下图7-8所示的NMOS开关用作闸门的电路。正如前面所讨论的那样,U2的作用像一个开关。当en为“1”时,信号b的值通过开关加到信号c上;当en为“0”时,信号c将存储前一个逻辑的电荷。该电荷将存储在门的结及U3和信号c的线电容中。由该开关实现的真值表如表7-4所示。3434图7-8 NMOS开关用作闸门电路3535图7-9 开关的一种状态实例3636表表7-4 开关的真值表开关的真值表3737门控值为“X”的情况应特别注意,在九态数值系统中,没有更好的值来表示确切的输出状态,假设开关所处状态如图7-9所示。从图中可以看到,源极输入为F0值,漏极存储着“Z1”值,门控制为“R0”值。这是一个稳定状态,没有任何状态值发生变化。如果现在门控值变成“X”,那么门将输出什么新的值呢?在U2的控制端加一个“RX”值,那么根据“RX”值实际上是“R0”还是“R1”,可能有两种输出值。如果“RX”值是“R0”,U2将继续输出“Z1”值;如果“RX”值是“R1”,那么U2将输出F0。但是在一般情况下,当编程人员不可能预知是什么强度和什么逻辑值时,通常按最坏情况考虑,即按强强度和“X”逻辑值来处理。3838输出“X”值时,存在着通过电路扩散或传递的问题,这会引起非常棘手的结果。但是,在大多数情况下,采取某些措施,这种结果是可以避免的。第一种办法是在数值系统中再另加强度种类,即加一个强度U。这样,数值系统就变成十二态,如表7-5所示。7.5 十二态数值系统十二态数值系统3939图7-10 产生U强度的电路实例4040表表7-5 十二态数值状态表十二态数值状态表4141U表示一个未知强度,它可以表示R或Z,也可以表示F强度。正像“X”可以表示为“1”或“0”一样,U通常用来表示开关门控值为“X”时的输出强度。十二态数值系统的状态在VHDL语言中的数据类型的定义如下:TYPE twelvestate IS(Z0,Z1,ZX,R0,R1,RX,F0,F1,FX,U0,U1,UX);能产生U强度值的电路实例如图7-10所示。图中,三态缓冲器输入端加F0值,输出端为Z0。假设该三态缓冲器是用TTL工艺制造的器件,则在门控值为“1”(允许)时其输出强度为强强度F。现在开关的门控值从F0向FX转换,输出如何变化呢?4242图7-11 一个非常棘手的实例4343如果开关的门控值为F0,则其输出为Z0;如果开关的门控值为F1,则其输出为F0。因此,当门控值为“X”时,其可能的输出值为F0,Z0。由此可见,该三态门的输出逻辑值始终为“0”,但是其输出强度值的取值可以是F,也可以是Z。为了表示这种状态,现重新定义一个强度值U。在上述情况下,三态缓冲器的输出为U0。十二态数值系统仍有许多不能表示系统正常工作的状态,例如初始化状态和错误状态。在用“与非”门构成CMOS的RS触发器时,任何时候电路都不会进行初始化。为进行初始化,需在电路中对全局信号进行初始化,但是这是一个非常冗长的处理,因此很少采用。有一个非常棘手的实例如图7-11所示。4444在这个实例中,由两个三态缓冲器去驱动一个信号。在正常情况下,两个驱动器不会同时去驱动一个信号。但是,在初始状态期间有可能出现图中所示的情况。开始时,由于U1所有的输入值是知道的,因此U1加给信号c的值将是F0,而U2所有的输入值不是都知道的,故其输出值为UX。调用判决函数可以分析出信号c的值。如前所述,U1加给信号c的值是F0,而U2加给信号c的值为UX。对这两个值进行判决,可得到信号c的最终值应为FX。这当然不是一个所希望的结果,但是根据现在数值系统所携带的信息变量,这是可能做到的最好结果。4545在电路中,FX不是一个正确的值。当两个三态门各自的输入都是F0时,无论U2门控输入是“0”还是“1”,都无关紧要,信号c上的正确输出值应为F0。如果这种状态仅仅发生在系统初始化期间,那么为什么还要讨论它呢?这是因为,一个初始化期间不确定的信号可以导致其它信号的不确定,而其它信号的不确定又可以导致另一些相关信号的不确定,如此循环扩散,其最终结果是不能对系统进行相应的初始化。这就是在5.2节中所提到的“X”状态的传递。为了解决上述问题,必须定义更多能够表示每种信号状态的信息,这就是7.6节要介绍的四十六态数值系统。4646在四十六态数值系统中,每个信号值将用“区间标识”的方法来表示,这样使得人们在解析时可以使用更多的当前和预估的信息。该方法用非常紧凑和简单的手段来表示信号取值的范围,而这些范围就是系统的值。例如,现在状态值为F0的信号能够用F0到F0来表示,其它常用的范围或区间从图7-12中可以查到。7.6 四十六态数值系统四十六态数值系统4747应注意,跨越Z0到Z1区间的范围称为ZX。该状态值的取值可以是Z0,也可以是Z1,只要在这两者之间即可。同理,WX、RX和FX也是这种含义。在本章前面所叙述的是常用的基本状态值变量。可以看到,大多数状态值是非常雷同的。本节将引出新的状态值W0、W1和D。W是另一种强度值,它介于高阻和电阻强度之间,被称为弱电阻强度。这种强度通常用于存储器和弱上拉电阻等的建模。状态值D是一个新的概念,它表示该结点没有电容,且不能存储电荷的值。从另一方面来说,D值表示网络被切断。在STD_LOGIC包集合中对基本的四十六状态值的类型、判决函数等都作了详细说明,读者如有兴趣可参阅有关书刊和手册。4848现在再来看一下四十六态数值系统中最常见的一些值。下面仍以图7-11所示的两个三态门的输出连接在一起的情况为例作一说明。U1的工作状态如前所述,输出给信号c的值为F0,而U2仍如前所述,处于不确定的状态。在“区间标识”方法中,结点的大多数信息将传递给判决函数。“区间标识”法可以用值的范围来表示U2的输出值。如果U2的门控值是“0”,则其输出值将维持Z1。当然,如果门控值为“1”,那么U2输出将为F0。在这种状态下,U2的输出值可用F0Z1的区间来表示。如图7-12所示,这个状态的名称为FZX。第一个字母F表示逻辑“0”的强度值;第二个字符Z表示逻辑“1”的强度值;字符X表示跨越“0”值和“1”值的范围。4949图7-12 四十六态数值系统的状态值规定5050FZX状态将向判决函数传递两个信息:一个是强度最强的逻辑“0”信息,另一个是强度为Z的逻辑“0”信息。根据这些信息,判决函数将把这两个分量看做是影响输出信号的因素。在一种情况下,U1输出分量为F0,U2输出分量为Z1。F0的强度比Z1的强,故输出最终值为F0。在另一种情况下,U1和U2输出分量都为F0,故输出最终值为F0。这样,判决函数将对这种情况进行判决,信号c最终所处的状态应为F0。这种处理正是人们所希望的,它将制止不需要的“X”值的传递。5151“区间标识”的实际价值就在于,它为判决函数提供了一个传送结点状态信息的方法,并可灵活地处理未知状态。四十六态数值系统具有9个基本值,将所有可能的分量都加起来,结果状态值为9+8+7+6+5+4+3+2+1=45那么46个值是从何而来的呢?还有一个值U,它是永远不可能被赋值的,只表示信号的未初始化的状态。这样整个数值系统就变为46个状态值了。有了46个状态,几乎就可以表示所有的逻辑状态了。但是,大多数设计人员都不想使用这种麻烦的四十六态的设计。数值系统也支持根据实际所需的子集,而忽略某些不同的状态。数值系统现在可支持5种不同类型的工艺技术。5252数值系统所支持的不同的工艺技术是TTL、CMOS、NMOS、ECL、TTLOC。在TTL工艺技术中,逻辑值“1”用F1表示,逻辑值“0”用F0表示。其它几种工艺技术的逻辑值表示如表7-6所示。5353表表7-6 各工艺技术的逻辑值表示各工艺技术的逻辑值表示在本章中,对数值系统、逻辑值和状态的强度等基本概念作了简要的介绍。在实际所使用的系统中,不同厂家对系统状态的定义及符号的使用都有所不同。这里以STD_LOGIC_1164中定义的逻辑状态系统为例加以说明。5454在PACKAGE STD_LOGIC_1164中,逻辑状态是这样定义的:TYPE STD_ULOGIC IS(U初始状态X强强度不确定状态0强强度01强强度1Z高阻W弱不确定L弱强度0H弱强度1任意项);p经常不断地学习,你就什么都知道。你知道得越多,你就越有力量pStudyConstantly,AndYouWillKnowEverything.TheMoreYouKnow,TheMorePowerfulYouWillBe写在最后Thank You在别人的演说中思考,在自己的故事里成长Thinking In Other PeopleS Speeches,Growing Up In Your Own Story讲师:XXXXXX XX年XX月XX日
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!