《时序逻辑电路的自启动设计与仿真(共12页).doc》由会员分享,可在线阅读,更多相关《时序逻辑电路的自启动设计与仿真(共12页).doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上时序逻辑电路的自启动设计与仿真摘要:在时序逻辑电路的设计中,电路能否自启动关系到整个系统的可靠性和稳定性,所以,时序电路的自启动设计是系统设计中的一个重要环节。本文以六位移位型计数器的自启动设计为例,阐明了设计具有自启动功能的时序逻辑电路的原理及方法,总结了利用卡诺图及早发现不能自启动并加以解决的规律。并把该六位移位型计数器的设计在MAX+plusII软件中进行了仿真,得到了正确的时序波形。关键词:卡诺图; 自启动设计; MAX+plusII引言 在时序逻辑电路的设计中,当逻辑电路可能出现的总状态数不等于有效状态数时,就会有无效状态出现。如果无效状态能自动回到有效状态
2、,称电路能够自启动;反之,称电路不能自启动。移位型计数器是一种特殊形式的计数器。它由移位寄存器和反馈电路组成,故又称为反馈移位寄存器。然而,这类计数器往往不能自启动。不能自启动的电路就会对电路的可靠性及稳定性形成较大的隐患。当电路加电时,有可能偶然落入无效状态,这时将导致电路无法正常工作;在电路正常工作时,若受到外界的意外干扰,也可能落入无效状态中,此时电路的正常工作也将被终止并出错。所以自启动问题是数字电路系统设计中必须解决的问题。本文以六位移位型计数器的自启动设计为例,介绍了时序电路设计过程中利用卡诺图及早发现不能自启动现象并加以解决的自启动设计方法,并把该设计在MAX+plusII中仿真
3、实现。1 设计原理与方法12利用小规模器件设计时序逻辑电路的步骤一般为:(1)根据设计要求,画出状态转换图(2)分配状态,列状态转换表,填写卡诺图(3)在卡诺图中根据不同的触发器,圈出驱动方程(4)检查电路是否能够自启动,必要时回到第三步修改设计(5)画出逻辑电路图从以上一般设计步骤中可以看出,检查电路能否自启动这一步是在最后进行的,如果发现电路不能自启动,而设计又要求电路能自启动,就必须回过头来重新修改设计了。那么能否在前边的设计过程中就注意到电路能否自启动,并且在发现不能自启动时采取措施加以解决呢?事实上这是可以做到的,下面通过一个例子来说明。2 自启动设计剖析3用JK触发器设计一个模6的
4、移位型计数器(分频)器,要求电路能自启动。2.1分析设计要求分析:模6的计数器,应在有效序列中包含6个状态。因为,故应选用三个触发器,其状态分别为,该计数器同时作为分频器,即每6个CP产生一个进位脉冲,故引入一个进位输出F。三个触发器共有8个状态,在8()个状态中选用6个状态的方案很多,这里我们按照循环码选取,这样设计出来的计数器,既可以满足题目所要求的移位型计数器,又可以使驱动电路尽可能简单。对应的状态转换图为图2.1图2.1 不能自启动电路状态转换图对应的状态转换表为表2.1 表2.1 不能自启动电路状态转换表 F0 0 00 0 1 0 0 0 10 1 1 00 1 1 1 1 1 0
5、1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 00 0 0 0由状态转换表可画出和F的卡诺图2.2。如果单纯地从化简结果最简单出发化简状态方程,则通过对图2.2的4个卡诺图圈合并,可直接得到3个触发器的状态方程和输出方程,但为了方便地得到驱动方程,应使画圈合并的结果能符合JK触发器的状态方程,比如在图(a)中对画圈合并时应使结果符合=X+X,即每个乘积项中必须有图2.2 卡诺图(或),下面开始合并求得各状态方程及输出方程。图(a)中,按常规的方法,应将中间4个小方格合并,合并后的结果为=,未包含(或),所以画圈时应选择能保留的小方格合并,此时合并的结果为=+,同理可得图(b)
6、,(c),(d)中的化简结果为=+,=,=;=+,=,=;F=。综上所述,这三个触发器的状态方程为: =+ =+ =+对于无效状态010和101分别代入以上状态方程得到状态转换表2.2表2.2 不能自启动状态转换表 F0 1 01 0 1 01 0 10 1 0 1由此可知,电路没有自启动特性,因此要修改设计。2.2不能自启动电路的设计讨论在以上合并1的过程中,如果把任意项的X包括在圈内,则等于把X取作了1;如果把任意项X画在圈外,则等于把X取为0。这无形中已经为无效状态指定了次态。如果这个指定的次态属于有效循环中的状态,那么电路是能够自启动的。反之,如果它也是无效状态,则电路将不能自启动。在
7、后一种情况下,就需要修改状态方程的化简方式,将无效状态的次态改为某个有效状态。由分解的的卡诺图可以看出,在和的分解卡诺图中,010小方格中的任意项X都划在了圈内,也就是化简时把和的次态取作了1,而在的分解卡诺图中,010小方格中的任意项X划在了圈外,即化简时将的次态定成了0。这就意味着,把无效状态010的次态定成了101这个无效状态。同时101这个无效状态在分解的卡诺图中化简时,只有中101小方格中的任意项X划在了圈内,即在化简时只把的次态取作了1;而在和的分解卡诺图中,101小方格中的任意项X都划在了圈外,这也就是说将和的次态都定为了0,这就意味着把101这个无效状态的次态定成了010这个无
8、效状态。这样本例中的两个无效状态010和101就形成了一个死循环,使得这个电路不可能在时钟信号的作用下,自动脱离这个无效循环而进入有效循环,因此电路不能自启动。实际上这个问题在前边的设计画圈时就应该注意到,这里的问题就出在将所有的无效状态010和101的次态,在设计之初就全被定为101和010这两个无效状态,从而导致每个无效状态都不能直接或间接(即经过其他无效状态后)转为某一有效状态,从而导致此电路无法自启动。2.3不能自启动电路的设计修改与规律说明为使电路能够自启动,解决方法通常是修改无效循环中的状态转换关系,断开无效循环并把无效状态引至有效状态,从而解决不能自启动的问题。本例中打断死循环是
9、有技巧的,从状态转换图可看出,本电路已经符合了移位寄存器的规律:=,=。所以在强制将010拉回到有效序列时,令=100,这样就不用修改触发器2和触发器1的驱动信号,只修改触发器0的设计即可。也就是在分解的的卡诺图中,只需将卡诺图中010小方格中的X(即在以前的设计中规定的1)强制地规定为0,按照以上原则重新画圈合并,得到修正后的状态方程为: =+ =+ =+相应的驱动方程为: =,= =,= =,=与以前设计中的驱动方程相比较,只有触发器0的驱动信号发生了变化。此时将010和101代入修正后的状态方程,可得新的状态转换表2.3,对应的状态转换图为图2.3。从而完成了在一开始的状态化简的过程中就
10、注意到了电路能否自启动的移位型计数器的自启动设计。表2.3 能自启动状态转换表 F0 0 00 0 1 0 0 0 10 1 1 00 1 1 1 1 1 01 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 00 0 0 01 0 10 1 0 10 1 01 0 0 0图2.3 能自启动电路状态转换图3 设计仿真现在以能自启动的六进制移位计数器为例,利用MAX+plusII软件,输入设计原理图并进行仿真。MAX+plusII软件具有许多优点,它首先具有集成的开发环境,开放的交互界面,并且支持多种形式的设计输入,设计与结构无关;此外它还具有方便的应用环境等优点,因此使用这个软件对
11、电子线路进行设计与仿真十分方便快捷。3.1基于原理图的设计方法453.1.1创建工程项目任何一项设计都是一项工程(Project),为了便于对设计文件进行管理,首先建立一个名为ghl的文件夹。在初始界面中依次执行File,Project,Name命令,调出Project Name(项目名称)对话框,在其中的Drives下拉列表选择驱动器e盘,在Directories栏中选择路径文件夹,e盘ghl,在Project Name文本框中输入项目名称ziqidong,单击ok按钮关闭对话框。3.1.2输入设计文件(1) 建立原理图文件进入原理图编辑环境,依次执行File,New命令,弹出文件类型选择对
12、话框,选择对应的文件类型Graphic Eaditor File(图形编辑器文件),右侧下拉列表中可以选择同一类型文件中的不同保存方式,单击ok按钮关闭该对话框,进入原理图编辑环境。打开已有文件,依次执行File,Open命令,打开查找文件窗口,在其中选择驱动器e盘,路径ghl和文件类型,符合条件的文件出现在文件列表中,选择所需要的文件ziqidong.gdf后,单击ok按钮关闭该窗口,打开选定的文件。(2) 放置元件在绘图工具栏的选择工具(箭头)上单击,移动光标到编辑区中合适位置,单击定位,出现闪耀的黑点,依次执行Symbol(符号),Enter Symbol命令,打开Enter Symbo
13、l(输入符号)对话框。在对话框Symbol Libraries列表中选择元件库(其中mf是74系列元件库,prim是基本元件库,mega-lpm是参数化模块库),单击ok按钮选中元件库(本例中选择mf元件库和prim元件库),库中的元件出现在Symbol File列表框中,在其中选择所需元件(74112), 单击ok,则元件出现在光标定位处,拖到合适的位置,松开鼠标左键放置。重复上述步骤,在mf中再选一片(74112),在prim库中选择input(输入端),output(输出端),and2(二输入与门)放于图中,并移动到合适位置,放置相同的元件可利用复制和粘贴功能以简化操作。(3)标注引出端
14、名称双击引出端标注后删除原有标注,输入新标注(output:;input:prn,cln,clk)。(4)放置连线移动光标到引出端上,此时光标变为小十字形,按住鼠标左键,拖动鼠标(此时光标变为大十字形)到另一引出端松开鼠标左键,放置连线。完成连接后的原理图如图3.1.1和图3.1.2所示。(5)保存文件依次执行File和Save As命令,保存文件。文件名为ziqidong.gdf和bunengziqidong.gdf。图3.1.1 能自启动电路原理图3.1.3编译设计项目(1) 选择用于编程的器件型号依次执行Assingn,Device命令,弹出选择器件类型对话框在Device Family
15、中选择器件系列,在Device中选择器件型号, 单击ok 按钮关闭该对话框。(2)编译文件执行MAX+plusII中的Compiler命令,弹出Compiler编译对话框,单击Start按钮开始编译。编译完成后出现编译信息,显示编译中出现的错误和警告。单击“确定”按钮完成编译,若有错误,则需要按信息提示进行修改。图3.1.2 不能自启动原理图注意:对图形文件进行修改后,应依次执行File,Project,Set Project to Current File 命令,然后重新执行MAX+plusII中的Compiler命令,进行编译。3.2时序仿真3.2.1创建仿真波形文件执行MAX+plusI
16、I中的Waveform Eaditor命令,打开波形编辑环境。与其他环境相比,编辑区中显示波形,左侧的画图工具栏被波形编辑工具栏取代。依次执行File,End Time命令,在调出的End Time(结束时间)对话框输入结束时间以设定仿真时间长度, 单击ok按钮关闭对话框。执行Options消去Snap to Grid以便能任意设置输入电平值或输入信号周期。依次执行Node,Enter Nodes from SNF命令,调出Enter Nodes fromSNF(从SNF输入信号节点)对话框,单击右上方的List按钮,编译文件各节点出现在Available Nodes&Groups列表框中,在
17、Available Nodes&Groups(可用节点/组列表)中选择节点,单击”按钮加入到Selected Nodes &Groups(选定节点/组列表)列表框中。单击ok按钮回到波形编辑窗口,各选中的节点及波形出现在窗口中。3.2.2 编译波形文件光标指向待选择的信号(如clock),单击选中该波形(变为黑色)在编辑区左侧的波形编辑工具栏中选择所需信号类型,单击相应按钮,即可将选定的信号设置为该类型。依次执行File,Save命令,保存文件(与设计文件ziqidong同名,扩展名为wdf)。3.2.3运行仿真依次执行MAX+plusII,Simulator命令,打开仿真时间设置对话框,在其
18、中可以设置仿真的开始时间和终止时间;设置完毕后单击Start按钮,进行仿真。仿真运行完毕后,出现仿真信息窗口,单击“确定”按钮关闭信息窗口。若存在错误,则按照提示信息修改后重复上述步骤。在仿真时间设置对话框中单击Open SCF按钮,观察仿真波形,可以利用放大或缩小工具改变仿真波形,以便于观察。完成仿真后的时序图如图3.2.1和图3.2.2所示。图3.2.1 不能自启动仿真波形3.3运行时间分析6执行Utilties,Analyzer Timing命令,时间分析器开始运行时间分析。结束后显示表3.2.1和表3.2.2的延时矩阵,从中可以分析各个输出对时钟的延迟时间。以下表3.2.1和表3.2.
19、2分别是不能自启动电路和能自启动电路中,和F这四个输出对时钟信号的延时矩阵表。由于这三个JK触发器之间是相互独立的,故它们的输入与输出之间就有可能存在着不同的时延。在此以能自启动电路的时延矩阵为例,来说明由于不同触发器的时延可能不同而造成的仿真波形的微小失真。由能自启动延时矩阵可以看 图3.2.2 能自启动仿真波形表3.2.1 不能自启动延时矩阵表 表3.2.2 能自启动延时矩阵表到,第二个触发器的时延比第一个和第三个触发器的时延长0.1ns,这就是说当第一和第三个触发器的状态分别由01,00时,第二个触发器仍然保持在1状态,故此时的的次态为110,出现了这个循环,显然这个循环与自启动设计原理
20、中打断死循环时将这个循环不一致,故仿真出现了失真。出现这种失真的原因就在于这三个触发器的时延不同,这个失真循环仅仅出现了0.1ns,而这0.1ns恰好是第二个触发器的时延比其它两个触发器的时延长出来的0.1ns,由此分析可以说明此电路设计符合自启动设计时的的设计要求。结束语由全篇文章的叙述可见,在时序电路的自启动设计过程中,可以充分借助任意项及早发现不能自启动的现象并寻找出有关自启动设计的规律,在设计之初修改设计。因此克服了设计者多次反复修改才能实现自启动设计的局限性,从而缩短了设计周期,提高了设计效率。参考文献1王毓银.数字电路逻辑设计M.北京:高等教育出版社,1999.1782402康华光
21、.电子技术基础(数字部分)M.北京:高等教育出版社,1999.1642993李中震.数字电路与逻辑设计M.成都:成都电讯工程学院出版社,1989.1232114谭会生,张昌凡.EDA技术及应用M.西安:西安电子科技大学出版社,2001.2092315潘松,黄继业.EDA技术实用教程M.北京:科学出版社,2005.1402606王锁萍,龚建荣,张豫滇.电子设计自动化(EDA)教程M.成都:电子科技大学出版社,2000.188301The Self-Starting Design and Emulationof Sequential Logic CircuitDepartment of Elect
22、ronics 0302 Student Hongling Gao Tutor Aizhen WangAbstract:In the design of sequential logic circuit, whether the circuit can start by itself matters the reliability and stability of the entire system. Thus, the self-starting design of sequential logic circuit is an important part in the system desi
23、gn.Taking the self-starting design of six shift counter as an example,the paper explains the principle and methods of designing sequential logic circuit with the function of self-starting and summs up to make use of Karnaugh map to discover the unable self-starting law and sove it at an early date. At last ,the design of six shift-counter is emulated by using the MAX + plusII software.Meanwhile,it achieves the correct waveform. Key words:Karnaugh Map; Design of Self-starting; MAX + plusII 专心-专注-专业
限制150内