欢迎来到天天文库
浏览记录
ID:52198986
大小:474.16 KB
页数:22页
时间:2020-03-24
《时序约束实例.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、用Quartus II Timequest Timing Analyzer进行时序分析 :实例讲解 (一) (2012-06-2110:25:54)转载▼标签: 杂谈一,概述用Altera的话来讲,timequesttiminganalyzer是一个功能强大的,ASIC-style的时序分析工具。采用工业标准--SDC(synopsysdesigncontraints)--的约束、分析和报告方法来验证你的设计是否满足时序设计的要求。在用户的角度,从我使用TimeQuest的经验看,它与IC设计中经常用到的比如prime
2、time,timecraft等STA软件是比较类似的。用过primetime或timecraft的朋友是非常容易上手的。在这一系列的文章里,我将会拿一个DAC7512控制器的verilog设计作为例子,详细讲解如何使用TimeQuest进行时序设计和分析。二,TimeQuest的基本操作流程做为alteraFPGA开发流程中的一个组成部分,TimeQuest执行从验证约束到时序仿真的所有工作。Altera推荐使用下面的流程来完成TimeQuest的操作。1.建立项目并加入相关设计文件 不管做什么事情,都需要有一个
3、目标或者说对象。我们用TimeQuest做时序分析,当然也需要一个对象,这个对象实际上就是我们的设计。所以首先是要建立一个QuartusII的项目,并把所有需要的设计文件都加入到项目中去。需要注意的一点是,这里的设计文件,不仅仅包含逻辑设计相关的文件,也包含已经存在的时序约束文件,当然,需要以synopsysDesignConstraints(.sdc)的格式存在的。2.对项目进行预编译(initialcompilation) 项目建立以后,如果从来没有对项目进行过编译的话,就需要对项目进行预编译。这里的预编译是对
4、应于全编译(fullcompilation)来讲的,我们可以理解为预编译是对项目进行部分的编译,而全编译是对项目进行完整的编译。做预编译的目的是为了生成一个initialdesigndatabase,然后我们可以根据这个database用Timequest采用交互的模式生成时序约束。实际上,对于小的设计,编译时间并不是很长的话,完全可以不去区分预编译和全编译,需要编译的时候,直接做全编译就可以了,做全编译的话,可以生成一个post-fit的database,完全可以给TimeQuest使用。3.向设计中添加时序约束
5、 在用TimeQuest做时序分析之前,必须要指定出对时序的要求,也就是我们通常所说的时序约束。这些约束包括时钟,时序例外(timingexceptions)和输入/输出延时等。 默认情况下,QuartusII软件会给所有没有被下约束的时钟都设定为1GHz。没有任何的时序例外,也就是说所有的timingpath都按1T去check。所有的输入/输出的延迟都按0来计算。这显然不符合绝大多数设计的时序要求,所以有必要根据设计的特性,添加必要的时序约束。 如上所述,时序约束主要包括三类:时钟,时序例外和输入/输出延
6、迟。其中时钟和输入/输出延迟可以认为是在某种程度上增强时序设计的要求。而时序例外可以认为是在某种程度上降低时序设计的要求。比如说,仅仅设定一个时钟的频率为100MHz的话,这个时钟域里所有timingpath都需要能工作在100MHz下。这显然是增强了时序设计的要求。可是如果在这个时钟域下面,有部分timingpath是不需要做1T的check的,那么就可以通过添加时序例外来避免对这些timingpath做1T的check,即降低了时序设计的要求。 在用TimeQuest做时序分析时,如果非常熟悉设计的构架和对时序
7、的要求,又比较熟悉sdc的相关命令,那么可以直接在sdc文件里输入时序约束的命令。而通常情况下,可以利用TimeQuestGUI提供的设定时序约束的向导添加时序约束。不过要注意的是,用向导生成的时序约束,并不会被直接写到sdc文件里,所以如果要保存这些时序约束,必须在TimeQuest用writesdc的命令来保存所生成的时序约束。4.执行完整的编译 在设定好时序约束以后,就需要对整个设计进行完整的编译。在编译过程中,软件会优化设计的逻辑、布局布线等来尽可能满足所有的时序约束。 如果没有添加时序约束,那么软件在
8、编译的时候,会按照默认的时序约束对设计进行优化,对于绝大多数的设计,都会报出来时序的问题,但因为默认的时序约束与设计本身的要求在绝大多数情况下,都是不同的,所以这些时序的问题也并不是设计本身的问题,并没有太多的参考价值,而且很多初学者也不会注意到这个问题。这样就把设计中很多潜在的时序问题给隐藏起来了,最终带来的可能就是系统运行的不
此文档下载收益归作者所有