riple

Stay Hungry, Stay Foolish.

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

0
阅读(2949)

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

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

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

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

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

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

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

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

 

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

Baidu
map