杨杰 卢贵主
(东莞理工学院 电子工程学院,广东东莞 523808)
“竞争-冒险”是数字电路中特有的现象,它可能引起电路出现“莫名”的故障,是我们必须经常面对且较为隐蔽的问题。在学习“EDA技术”、“数字集成电路设计”等课程时,尤其到“系统优化和时序分析”等章节,只有掌握有关“竞争-冒险”的知识,才能充分理解时序分析结果,修改并优化自己的设计。因此,正确掌握有关“竞争-冒险”的知识,对于提高学生调试、设计复杂数字电路的能力非常必要。
所谓“竞争-冒险”,实际上是由于逻辑电路信号传输延迟所产生的多余的尖峰脉冲。对于这种一闪即失的“毛刺”,如果用传统的“静态”教学方式进行讲解,往往显得力不从心。而计算机仿真软件的出现,为“竞争-冒险”问题的讲解提供了一个近乎完美的辅助平台。在课堂上,老师借助于Multisim等软件,高度逼真地模仿出电路的各种实际运行情况,把“竞争-冒险”的成因及对策一一清晰地展现给学生,其“身临其境”的教学效果是任何常规的多媒体技术根本无法比拟的[1]。如果再配合精心安排、组织教学内容,可以起到事半功倍的成效。
我们有一个设计性实验,要求学生将2片74192(十进制可逆计数器)级联,组成1~29进制的加法计数器。学生在利用仿真设计时发现,按图1设计的电路,用Multisim7.0仿真却总也不能通过,原本应该从“1”到“30/31”的计数器,每次计数到了“19”就又从头开始了;而同一电路,在用Multisim的低版本软件EWB5.12仿真却又能顺利通过。而实际搭建电路时,又发现有的能正常工作,有的又不行!
学生百思不得其解,其实这只是教学设计中为讲解“竞争-冒险”而提前所做的铺垫。虽然在此之前,学生已经学过关于“竞争-冒险”的概念,但大多仅是模模糊糊有一点印象而已,遇到实际问题依然一片茫然。这时,深入讲解“竞争-冒险”的时机成熟了。
图1 29进制加法计数器原理
在接下来的课堂教学中,教师首先分别用Multisim7.0和EWB5.12仿真运行该电路,肯定学生设计的电路原理是正确的,所遇到的问题并不是操作上的失误,更不是仿真软件的缺陷。唯一的可能性是,在计数器“19”变到“20”的过程中,确确实实出现了错误的信号,导致了计数器又从头开始。为了让学生看清楚这个问题,老师现场修改仿真的时间步长,用“慢镜头”仔细重现刚才的过程,大家通过虚拟的“测试小灯”实实在在看到了这个一闪即失的信号。此时,Multisim7.0仿真软件开始发挥其逼真的演示效果。
显然,这个信号的出现是我们预料之外的。仔细分析就不难发现,在计数器从“19”跳到“20时”,用于控制反馈置数的2个计数器的输出端,同时发生了向相反状态变化的情况,即出现了“竞争”!
为了证实由“竞争”引起的“冒险”确实存在,老师接着在打开的仿真设计中,查到仿真库中74192的几个传输延迟的具体数据,如图2所示。
图2 仿真库元件74192原始参数
由于仿真元件库中的原始数据是,输出端从低电平上升到高电平的时间为38 ns,从高电平下降到低电平的时间为47 ns,正是由于这个时间差,从“19”跳到“20”时,状态译码的与非门的输入端出现了一个短暂的全“1”状态,因而反馈置数有效,计数重新开始。
为了彻底消除学生的疑虑,教师现场修改74192的电路模型参数,将几种信号传输时间改为一致,再次运行仿真,如图3。这次,一切正常了。
用另一个方案也可以进行验证:在可能引发“竞争-冒险”的信号传递通道上,增加一个同相驱动器,虽然没有任何逻辑关系的变化,但电路“故障”也消失了!这些都说明罪魁祸首就是“竞争-冒险”。
由于是当堂修改,现场运行,学生们身临其境,看到了全过程,对“竞争-冒险”引发故障已深信不疑了。Multisim7.0仿真再次展现了无可比拟的演示效果,如图4所示。
至于EWB5.12仿真不出错的疑惑是比较容易消除的:由于EWB5.12版本较低,仿真深度不够,它只仿真了理想情况,没出现“竞争-冒险”也在情理之中了。
接下来要解决的问题是:为什么实际接线中,有的出现了“竞争-冒险”、有的又没有呢?借着这个疑虑,我们把讨论引入到更高的层次:如何消除“竞争-冒险”?
图3 修改仿真库元件74192参数
图4 增加延迟环节克服“竞争-冒险”
“竞争-冒险”在实际电路中确确实实是可能存在的,发现了“竞争-冒险”我们就必须克服它。通常教材中介绍的消除“竞争-冒险”的方法是[2]:修改逻辑、引入选通信号或人为增加某个信号传输的时间。其中,最后一种方案较为实用,在一些工作频率不是非常高的场合,在可能出现“竞争-冒险”的部位串接RC惯性环节的方法就可解决。由于逻辑门的输出均有内阻,甚至R都可能不需要,直接简单并联小电容C即可。
老师在打开的仿真设计中,带领学生重新查看仿真元件库中74192的原始数据,让大家看到74192芯片从输入到输出的信号传递时间是数十ns级的,由它们之间的差异而造成的“冒险”脉冲更是ns级。简单串接一个RC,只要时间常数有几十个ns,这个“毛刺”干扰就被消除了。图5就是现场仿真演示的电路,图5中的R1C1即是为克服所增加的。运行结果表明,“竞争-冒险”被消除了。
根据采样地点统计,检出率最高的为商铺20.00%,剩余依次为:综合超市11.44%、饮用水生产厂家8.00%、农贸市场6.25%,学校集体食堂、街头流动摊点均未检出致病菌。
现在就可以解决学生的最后一个疑问了。同学们搭接实际电路时,之所以有的错、有的不错,存在2种可能性:
1)不同公司、不同批次的产品,动态特性存在差异,不出错的电路本身就没出现“竞争-冒险”;
2)74192的传输延迟本身很短,其差别 (引起“竞争-冒险”的根源)更小,由于实际接线不可避免地存在分散电容,出现的“竞争-冒险”无意中被消除了。
那些出错的电路,所用的芯片的传输延迟差别较大,分散电容尚不足以克服其“毛刺”影响。只要再适当增大RC环节的惯性效果,必定能消除干扰。
“竞争-冒险”是数电课堂教学中的一个难点,在实际电路中又是常见、隐蔽、难处理的问题。把这个知识点讲透,对深入理解数电的核心内容无疑是大有好处的。除此之外,我们还可借题发挥,带动其它知识点的学习。
图5 增加RC惯性环节克服“竞争-冒险”
通过设计“日期计数器”的实例,特别是走了一点弯路之后,再重新复习什么是竞争、什么是由竞争引发的冒险,学生的认识肯定与以前大不相同了;有了这个基础,也完全理解引入“格雷码”等的用意了。
在讨论时序电路的“竞争-冒险”时,数电的核心内容应该已大部讲完。这时,结合“竞争-冒险”的深入学习,可以对数电的内容在以下几方面加深理解:
1)逻辑电路,特别是现代高速的逻辑电路,主流是同步方式。异步方式的电路由于速度慢、易出现“竞争-冒险”而较少采用[3]。
2)组合逻辑电路和时序逻辑电路都会出现“竞争-冒险”。在组合逻辑电路中,“竞争-冒险”引起的短时尖峰脉冲不影响其稳态输出,因而危害作用并不明显。而同样的尖峰脉冲在时序逻辑电路中,则可能被触发器接收造成误翻转,进而完全改变时序电路的进程,故需特别小心!
3)传统的电路设计方式,在实际电路搭建出来之前,均无法获得精确的延时特性,处理“竞争-冒险”等问题就显得十分困难。而现代电子设计,由于采用EDA技术,可以在设计的不同阶段,进行全面精准的测试与仿真,特别是包含了具体芯片特性参数的时序仿真,可以得到精准的硬件延迟信息,为分析及处理“竞争-冒险”等问题提供极为便利的条件。EDA是电子设计发展的必然趋势[4]。
在深入了解“竞争-冒险”的根源时,必须确切知道所用芯片的参数指标,特别是平时不太注意的动态参数。这就迫使我们查看权威的文献资料。在我们的现场教学中,我们数次经历了这个过程,而这恰好是对学生查找资料能力的一个训练。在信息时代,每个大学生除应学好各自专业知识外,还必须掌握应用各种手段查阅相关文献资料、获取信息的能力。
在课堂上用计算机仿真辅助教学,可以使课堂内容变得丰富、精彩,老师可以带领学生把原本在实验室也不易看清的东西生动、形象地展现给大家,极大地提升了教学效果[5];由于Multisim等仿真软件可以高度逼真地模仿出电路的实际运行情况,且可随意实时修改,其教学效果是任何常规的多媒体技术根本无法比拟的[6]。结合实例的深入剖析,可以温故知新,纲举目张,把前后各个知识点串通起来学习,可以起到事半功倍的成效。在后续课程的学习以及课程设计、毕业设计中,但凡牵涉到此类的问题,同学们就可驾轻就熟、应对自如了。
[1]吴学军,张静.EDA仿真设计在《数字电子技术基础》课程教学中的应用[J].湖北文理学院学报,2013,34(11):78-81.
[2]阎石.数字电子技术基础[M].5版.北京:高等教育出版社,2006:204-205.
[3]潘松,黄继业.EDA技术实用教程[M].5版.北京:科学出版社,2013:10-11.
[4]潘明,潘松.数字电子技术基础[M].北京:科学出版社,2008:180-192.
[5]王正勇,陈学昌.依托EDA技术促进电子信息类专业教学模式改革的探索[J].工业和信息化教育,2014(7):51-53.
[6]王芳.浅谈数字电子技术课程的教学改革方法[J].黑龙江教育学院学报,2014(33):87-88.