“数字逻辑电路”课程中时延及时序问题的讨论
2021-04-13王华东晏中华何丰
王华东 晏中华 何丰
【摘要】逻辑器件的延迟问题在传统数字电路课程中通常是被忽略的内容,但在现代数字逻辑电路设计过程中,逻辑器件的传输延迟及相关时序问题已经成为电路设计的关键。本文探讨了数字逻辑电路课程中引入时延及时序问题的必要性,并在实际的数字电路课程教学过程中进行试点,最终对试点结果进行了分析总结。
【关键词】数字逻辑电路 时延 时序约束
【Abstract】Delay of the logical devices has usually been neglected in traditional digital logical circuits course. However, it and relevant timing analysis problem play more important roles than before in current logical circuit design process. In this paper, the necessary of adding logical devices delay and timing analysis problem in digital logical circuit course is discussed, and actual teaching process of the delay and time constraints in logical circuits course is introduced. At the end of the paper, the conclusion of the attempt is given.
【Keywords】digital logical circuits; delay; timing constraint
【基金项目】重庆邮电大学教育教改项目(项目编号:XJG19207)。
【中图分类号】TN79 【文献标识码】A 【文章编号】2095-3089(2021)08-0136-03
在目前常见的数字逻辑电路的教材中[1],数字逻辑电路中的信号传输延迟通常是一个被回避掉的问题。一般来说,数字电路教材只有三处会涉及到时延的相关内容:第一处是竞争和竞争冒险;第二处是SR锁存器的不定态介绍;第三处是传输延迟边沿JK触发器的原理讲解。虽然有涉及,但除了竞争冒险,通常教材并不会对时延问题的影响展开深入的讨论。
产生这个现象的主要原因可能是,在传统的数字电路课程中,除了竞争冒险现象以外,逻辑器件的信号延迟不会对数字电路的分析设计有明显的影响。由于晶体管电压电流变化导致的时延通常都是微秒甚至纳秒级别,因此在传统数字电路设计中时延的影响确实可以忽略不计。但随着半导体技术的飞速发展,逻辑电路的工作时钟越来越高。逻辑器件的时延对逻辑电路设计的影响也越来越明显。因此,在当前数字逻辑电路的课程中,是否需要对逻辑器件的延迟问题展开分析讨论,让学生理解时延问题的原理及对逻辑电路设计的影响,应当是数字逻辑电路课程教师重视和并进行讨论的问题。
1.数字电路课程中时延问题的意义
目前数字逻辑电路课程的教学内容正面临着从传统74系列芯片向FPGA平台转变的过程[2-3]。由于历史原因,部分高校数字电路课程的教学重点放在电路逻辑功能的实现。即学生只要做好电路设计,或者写好逻辑代码就可以了,其他的都可以通过EDA软件来解决。但就实际的情况来看,这种情况仅适用于时钟频率低的场景。在一些时钟频率较高的逻辑电路设计场景下,情况就会有所不同。譬如在采用HLS设计实现高性能逻辑电路时,经常会发生同样C代码,在有的FPGA芯片上综合成组合逻辑电路,而在另一些FPGA芯片上综合成时序逻辑;或者有的循环运算在展开成流水线设计时,第一个数据到下一个数据需要延迟两个时钟,而同样功能的代码,只是实现形不同,流水线展开后数据之间的延迟就变成一个时钟[4]。这些问题体现出一点,就是当前的逻辑电路设计是和逻辑器件的延迟特性密切相关的。没有对逻辑电路时延问题的认识和理解,很难对逻辑电路进行优化设计。
部分教师认为时延问题既然主要体现在FPGA设计当中,那相关内容在FPGA及相关课程中进行教学就可以了,不一定非要放到数字电路课程当中。事实上,目前国内关于逻辑电路时延及时序分析的内容介绍都出自比较专业的FPGA教材[5]。但经过思考,我们认为,从物理上讲,時延是由晶体管中的寄生电容产生的,本质上属于电路问题,因此有必要在讲逻辑电路的时候就对这个问题展开分析讨论。以前在数字电路课程中没有进行深入介绍只是因为当时时延对数字电路的影响主要表现为竞争冒险现象。现代逻辑电路设计需要考虑逻辑器件时延的影响,就应该对其及其产生的时序问题进行介绍。这样才有助于学生更好地理解逻辑电路设计的本质。从另一个层面讲,逻辑电路的延迟本质上也是一系列逻辑门电路延迟的叠加,因此在数字逻辑电路课程进行相关教学也具有合理性。而在FPGA课程中进行时序问题的介绍还需要从RTL代码映射到逻辑门电路,反倒不如直接在逻辑电路课程中进行讲解来的直观。实际上,不少国外的数字逻辑电路教材和网络公开课是包含时延及时序分析的相关内容[6-7],证明了这种做法的合理性。
2.延迟和时序内容的教学试点
2.1教学内容
在课程内容建设过程中,将逻辑电路的竞争冒险的相关内容和时延问题整合到一起,命名为“逻辑电路的时延及时序问题”,占用1个课时(共2学时)。课程内容包含四个部分:数字逻辑电路的延迟;竞争和竞争冒险问题;逻辑电路的时序问题;亚稳态介绍。由于教学时间的限制,时钟抖动及其影响暂时没有包括进来。具体教学内容如下:
(1)数字逻辑电路的延迟定义。
延迟定义部分包括六个定义:晶体管的传输延迟t和最小延迟t;组合逻辑电路的最短路径和关键路径;组合逻辑电路的传输延迟和最小延迟。其中t为晶体管输入端进入新状态出现到输出端进入新状态的延迟。t为晶体管输入端旧状态消失到输出端旧状态消失的延迟。最短路径指的是组合逻辑电路中从输入端到输出端变化最快的路径。关键路径是指组合逻辑电路中从输入端到输出端变化最慢的路径。
有了上述定义,即可以计算组合逻辑电路的传输延迟和最小延迟:
组合逻辑电路的t:关键路径上所有器件的t之和;组合逻辑电路的t:最短路径上所有器件的t之和。
(2)竞争和竞争冒险部分
这部分主要包括组合逻辑电路的竞争和竞争冒险现象产生的原因、竞争冒险现象的解决方法、异步时序逻辑电路中的竞争冒险现象。具体内容与传统教材区别不大[1,8],这里不再赘述。
(3)逻辑电路时序约束讨论
这部分是本次课程教学内容的核心。首先介绍时序约束的前提:当时钟信号有效时,输入信号应当保持稳定,即从时钟信号到来前的t到时钟信号到来后的thold内,触发器的输入都应保持不变。其中t和t均取决于触发器本身特性。所以对于时序逻辑电路来说(如图1所示),上述要求实际上等价于以下两个基本准则:建立时间约束和保持时间约束。
本次时钟信号产生的D2信号的新状态必须在下一次时钟到来之前的t时间达到稳定。图2给出了触发器1输出端和触发器2输入端的波形图。其中t为触发器的传输延迟,t为组合逻辑电路的传输延迟。这样,可以得到时序逻辑电路的建立时间约束方程。
本次时钟引起的触发器Q1状态变化必须要在t时间之后传递到下一级触发器Q2的输入端。具体波形如图3。其中tccq为触发器的最小延迟,tcd为组合逻辑电路的最小延迟。这样,可以得到时序分析的保持时间约束方程:
可以看到,方程(2)和(4)描述了时序逻辑电路对触发器之间的组合逻辑电路延迟特性的要求。其中方程(2)还表明触发器之间的组合逻辑电路的传输延迟与FPGA时钟周期之间存在着约束关系。
显然,当理解上述两个方程后,就能够正确解释在本文前面提到的几个HLS的问题产生的原因。当C代码转换后的运算电路的传输延迟满足方程(2),则被综合成组合逻辑电路。当运算电路的传输延迟无法满足方程(2)时,将被综合成时序逻辑电路,在多个时钟周期内完成。对于不同的FPGA芯片,由于工艺不同,内部器件的t,t,t,t,的参数不同,因此同样的C代码,在有的FPGA芯片内容会综合成组合逻辑电路,在有的芯片内会综合成时序逻辑电路,即FPGA芯片本身也会影响逻辑电路设计。
(4)亚稳态问题
当时序约束的前提条件不满足时,即在时钟信号到来时,逻辑电路的输入信号也同时也发生变化。此时,触发器会进入亚稳态,即电路的输出电压可能为0-Vcc之间的任意电压,并在分辨时间内返回稳态。其中分辨时间的定义由式(5)给出。
对于逻辑电路来说,亚稳态的出现将会导致电路的输出出现不可预测的结果。因此,逻辑电路设计需要避免亚稳态的出现。这表明逻辑电路时序分析的重要性不亚于电路的功能设计。事实上,触发器章节提到的SR锁存器的不定态本质上就是由于SR锁存器输入端的信号不满足时序约束,锁存器进入了亚稳态所导致的。
2.2教学安排和执行
本次课程的教学目标为以下几点:(1)理解逻辑器件延迟的定义,掌握组合逻辑电路的传输延迟t和最小延迟t的计算方法;(2)了解竞争和竞争冒险的定义,掌握组合逻辑电路和时序逻辑电路的竞争冒险的解决方法;(3)理解逻辑电路的时序约束条件,掌握时序分析的基本方法;(4)了解亚稳态产生的原因。教学的重点是关于时序约束条件产生原因的理解和时序分析的方法掌握。
在完成延迟和时序约束的相关理论教学后,通过两个例题对教学内容进行巩固和加深。其中例题1为计算某组合逻辑电路的传输延迟和最小延迟。例题2为判断某时序逻辑电路是否能正常工作,如果不能,给出逻辑电路的修改方案,要求在保持逻辑功能不变的条件下,修改后电路能够正常工作。课堂教学的具体时间安排如表1所示。
3.教学实践及总结
在完成上述教学内容的准备后,在我校某系实验班的数字逻辑电路课程进行了两期试点工作,试点过程如下:
在第一期试点中,时延部分只作为教学内容,并不作为期末考核内容。从课堂表现来看,学生是能够掌握时延的相关概念,体现在大多数学生对例题1的内容都能够比较快地掌握,并正确完成类似题目的计算。但时序约束部分的学习效果就要差一些,体现在对例题2,只有少部分学生能够正确理解整个电路的时序约束关系,并找到合适的电路修改方案。原因可能是因为时序分析的相关内容比较抽象,学生短时间不容易掌握。
在第二期试点中,在期末考试中增加了时延相关内容的考核。考核知识点为组合逻辑电路的t和t的计算,题型为填空题。期末考试结果显示,大多数同学是能够计算出正确结果,表明学生对传输延迟和最小延迟有着较好的掌握和理解。这个结论和课程教学过程中观察到的学生学习情况是基本相符合的。
试点结果也显示,时序约束的理解是这部分内容的难点。解决方法有两种:一种是通过更多的习题进行练习;另一种是通过仿真实验加深理解。但在试点发现,当前常见的数字逻辑电路实验与时序约束的內容并不相关,因此需要建设新的实验案例,将时序部分的内容和逻辑电路设计结合起来,使得学生能够更为直观的理解时序分析的原理和意义,了解时序约束对逻辑电路设计的影响,这也是我们下一阶段计划解决的问题。
4.结语
随着数字逻辑技术的飞速发展,逻辑器件的时延和时序问题在逻辑电路设计中的重要性越来越明显,如何让学生更好的掌握数字逻辑设计能力,是当前数字电路课程教学所面临的严峻挑战。本文介绍了我们对数字逻辑电路中时延和时序问题的认识和思考,以及相应的教学试点工作。试点结果显示,数字逻辑电路课程中引入延迟和时序的相关内容是可行的和合理的。但在如何提升教学效果,以及如何选择合适的教学实验案例方面还需要做进一步的探索和研究。
参考文献:
[1]闫石,王红著.数字电子技术基础(第六版)[M]. 北京: 高等教育出版社,2016年4月.
[2]李文渊,王蓉,孟桥,王志功,“数字电路与系统”课程教学改革与探索[J].南京: 电气电子教学学报,2018(6):35-39.
[3]张秀荣,“数字电子技术”课程教学现状的调研[J].南京: 电气电子教学学报,2017(1):95-97.
[4]徐红,贾立新,吴根忠,基于EDA技术的“数字电路”课程教学实践[J].南京: 电气电子教学学报,2019(1):36-39.
[5]徐文波,田耘.Xilinx FPGA开发实用教程(第二版)[M]. 北京: 清华大学出版社,2016年4月.
[6]莎拉·哈里斯著,陈俊颖译,数字设计和计算机体系结构电路[M].北京:机械工业出版社,2019 年 7 月.
[7]Chris Terman, https://www.edx.org/course/computation -structures-part-1-digital-circuits.
[8]丁伟,关宇,马丽梅,吴元亮.基于Multisim的组合电路中竞争冒险的仿真分析[J].北京:工业和信息化教育, 2013(8):24-63.
作者简介:
王华东(1977年-),男,博士,副教授,主要从事数字逻辑电路课程教学,非线性电路模型研究。