原创 TimeQuest就一定要搞定——看懂时序波形图

2008-7-27 22:25 6601 6 12 分类: FPGA/CPLD

时序分析和时序约束在很多朋友看来是FPGA设计中的“高级”技术,是可以“明天再学”的功课。想一想,我们设计的每一个正确运行的数字电路在每一个ps内都正在我们有意或者无意设定的时序约束范围内运行着——时序分析这门所谓“高级”的技术,体现的正是数字电路运行的基本原理。我们今天放弃学习的科目,正是我们最需要学习的“基本”技术。 riple


我学习时序分析和约束只是刚刚入门。从我学习时序分析的经历看来,学习使用时序分析工具并不难,有文档可以参考,有例子可以实践,EDA工具本来就是方便设计者使用的,好学好用是理所应当的;理解时序分析的概念和原理确实有一定难度,强记几个公式不难,依样画葫芦把数值代入公式得到与时序分析结果相符的数值也是小学水平,可是在实践中,却总是难以理清这些数值之间的关系,“打哪儿指哪儿”容易,“指哪儿打哪儿”太难。知其然而不知其所以然,这是我最初面对那些时序分析计算结果时的感受。带着这样的感受,我一直徘徊在时序分析技术的门外。 riple


直到最近一段时间以来, riple 才逐渐摆脱了这种不踏实、不自信的感受。这是得益于反复观察和分析TimeQuest中的Waveform视图。从这一自学过程中, riple 总结出学习时序分析原理的一个关键点:在脑海中建立时序分析公式与实际电路物理属性之间的映射关系。建立了这种映射关系,才能理解时序分析公式的意义和来历,才能做到知其所以然,才能做到定性和定量地分析电路的时序性能。 riple


时序波形图是建立这一映射关系的好帮手。波形图对于理解电路运行时序的重要性,恐怕所有做过仿真的朋友都深有体会。为什么波形图如此重要,因为硬件电路是并行运行的。即使一个最简单的同步电路中也会有两个以上的信号在同时变化和相互作用。人脑并不擅长处理并行过程,这需要太多的内存来记忆中间变量,需要太多的循环来更新这些变量。人的注意力很难保持太长时间,稍不留神,头脑中的并行仿真过程就失败了。这也是为什么我们需要仿真工具的原因,保留我们的精力去做更重要和更具创意的事,让电脑代替人脑做我们不擅长的工作。 riple


在网上常见的讲解时序分析概念的文章中, riple 最常见到的是电路的时序路径图,即一条时序路径是由哪些基本传播路径组成的。这样的时序路径图只能定性地示意时序分析公式的原理,难以定量地辅助设计者完成时序分析公式的计算。在这样的学习过程中,我的思维直接从电路图跳跃到了公式,缺少了一个中间环节——波形图。这是造成我知其然不知其所以然的原因。我上面分析了波形图对于定量理解电路行为的重要性,那么为什么这些文章中不包含一幅波形图呢?原因很简单,不容易画。正如电路仿真需要EDA一样,把一幅波形图画得清晰准确也需要电脑的辅助。 riple


TimeQuest中自动生成的时序波形图很好地解决了“缺少波形图”这一自学时序分析原理过程中的问题。在TimeQuest中,时序波形图与时序分析公式是一一对应的,看着波形图去逐项理解时序分析公式中的各个元素是再容易不过了。 riple


在下面这幅时序波形图中,我们可以看到10个波形,相应地表示了10组电路物理属性之间的关系。对于缺少训练的头脑(我的头脑就是其中之一)来说,包含这么多信息的波形是很难在思维中模拟出来的。这些波形准确地表示了实际电路的物理特性,至于是否能够清晰地反映电路的时序关系,还需要读者逐君自己花些力气。 riple


点击看大图


人脑不擅长模拟复杂的并行时序关系,这是事实。不过话又说回来,上面这幅波形图也没有太复杂到哪里去。看懂它不是难事,只要加以练习,掌握它甚至在设计和分析电路的思维活动中灵活使用它也不会太难。我们这些逻辑设计工程师已经花费了很多时间在“基本功”的学习和熟练上,在这门既“基本”又“高级”的功夫上也不应该太惜力啊! riple


 


注:上面这幅波形图的详细分析可以参考TimeQuest就一定要搞定——图解Setup Time时序余量计算

文章评论7条评论)

登录后参与讨论

用户1316125 2011-3-29 09:51

感谢riple,看了你一连串的关于TQ的博文,总算是入门了!

用户142049 2008-11-17 20:11

riple,在挣扎了几天后,我也决定了要把timequest搞定。

用户1373959 2008-8-11 20:26

向楼主学习.

ash_riple_768180695 2008-8-11 20:20

我正准备写一篇这样的短文呢。

用户131589 2008-8-1 05:06

那里可以找到波形图里面的名词定义或者解释啊?

用户131284 2008-7-29 23:10

看来要把你博客里所有的文章都看一遍了,呵呵,觉得每一篇都让我受益匪浅

用户142049 2008-7-27 22:36

LZ是强人啊!哎,我什么时候能弄懂这些东西啊?!
相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2015-10-22 12:41
开篇:FPGA快速系统原型设计--敏捷实践
    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。     先上一篇PPT:RSPwFP...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
我要评论
7
6
关闭 站长推荐上一条 /2 下一条