在ISE下分析和约束时序

1.     在ISE下分析和约束时序

 

3.1   ISE的时序约束工具入门

 

像TimeQuest一样,ISE软件工具也有自己的时序约束及分析工具。ISE界面的processes当中,有一个user constraints列表,其中的Creat Timing Constrain可以提供用户添加指定的时序约束。

ISE使用的时序约束信息跟其他的物理约束,电气约束等信息全部都放置在后缀名为ucf(user constrain file)的文件中,在使用图形化界面编辑约束后,用户还可以直接编辑UCF文件对时序等要求进行修改。

此外,PlanAhead Post synthesis工具在提供管脚,区域约束等功能之外,也提供了时序约束及分析的功能。所以设计者在约束设计时序时可以有多种方法。

使用Creat Timing Constrain时界面的约束类型部分如下图所示:

图ISE时序约束类型

从图中我们看到,这个工具对于时序约束的理解与altera的一致,需要约束时钟,输入输出信号,以及指定一些时序例外,也有将约束组成Group的功能。Xilinx公司对于其FPGA约束的名称与altera略有不同,但含义一样。分别是Period constrain(时钟周期约束),OFFSET constrain(输入输出偏移约束),以及FROM TO constrain,当然也有multi-cycle constrain等。

       双击unconstrainedclks窗口的clk项,出现的以下对话框可以对设计的时钟信息进行指定。

图  ISE下约束时钟界面

这个界面可以设置时钟的周期,占空比,以及初始边沿是上升沿还是下降沿。或者如果这个时钟是从其他指定的时钟生成的,也可以指定生成的关系从而软件自己计算生成时钟的信息。unconstrained clks窗口将设计中没有约束的时钟列出来,在对每个时钟一一指定之后,窗口内容逐一消失。而其上方另一个窗口将显示约束的具体信息,并且也可从中选择一条约束进行逐一修改。

约束类型菜单下的Inputs 选中双击后,会出现如下图所示的对话框,指定了输入偏移约束的类型之后,选择next。这里的OFFSET IN 的类型包括,输入信号是源同步还是系统同步(时钟的来源不同),是单边沿触发还是双边沿触发的信号,以及有效边沿类型。通常在设计中,若非特殊的DDR数据,或者使用了外部随路时钟,就选择SDR以及系统同步即可。

图 指定输入偏移约束的类型

       指定了偏移约束类型后选择next会出现下图所示页面,在这个页面中可以约束输入信号的时序。

图  OFFSET IN 约束设置页面

在这个页面中,左上角表明了系统中使用的时钟的信息。若有多个时钟,则可以选择输入信号建立相关的时钟。在Input pad timegroup/net中,可以选择要指定约束的目标端口。若没有对信号合并分组,就选择input pad net,然后选择需要约束的输入管脚即可。画红色*号的必须指定的地方,会有External setup time,此即为需要设置的offset in 约束。通过计算外部器件输出时序以及电路板上延时之后,设计者可以在此指定一个值,表示的是输入端口信号建立时间与时钟信号有效边沿的延时。

仿照上面OFFSET IN的设置,读者可以设置OFFSET OUT的约束。它约束的是输出端口信号与参考时钟有效边沿之间的延时关系。其数值需要查阅下一级芯片输入数据时钟的建立关系及电路板上时钟,信号线延时关系计算获得。

约束了设计中使用的时钟,同时约束了输入输出端口的时序之后,整个设计的约束就是完整的。但完整的约束不一定是正确的,过于严格的约束会挤占布局布线的资源从而造成无法进行最优布线。所以还需要对一些不必要的,过于严格的约束进行时序例外的声明。这些读者可以通过尝试软件工具及阅读软件用户手册来学习。

保存了设置的时序后,在工程目录下的Ucf文件将进行更新,最新设置的时序结果将以文本形式体现在ucf文件中,例如以下字段:

#Created by Constraints Editor (xc5vsx50t-ff1136-3) -2011/09/04

NET "clk" TNM_NET = clk;

TIMESPEC TS_clk = PERIOD "clk" 20 ns HIGH50%;

NET "bu" OFFSET = IN 2 ns VALID 20 ns BEFORE"clk" RISING;

这些不仅包括了时序约束,还以注释的形式将约束生成的日期以及针对的器件型号列出了。设计者甚至可以通过编辑修改这里的文本来快速修改时序约束。

生成的ucf已经是在工程下了。添加了约束后XST工具不需要重新运行,但是ImplementDesign下每一步都需要重新执行。重新执行时,便是在我们设置的约束下进行映射及布局布线了。

 

 

下面是PlanAhead Post synthesis工具启动后设置时序约束的页面。

图 PlanAhead Post synthesis工具下的时序约束界面

从上图可以看出这里的时序约束包括了Clk period,Pad-clk offset,pathdelay,Time group,False path以及off chip delay等项。双击其中的任何一项可以出现下图所示的对话框:

图 设置新的时序约束对话框

       这个对话框列出了所有能够设置的时序约束,这里的约束设置比Creat Timing Constrain工具更加简洁,如图中所示,在选择了Input pad to clk offset 之后,右边出来的界面中,选择data arrival为Before clock,时钟选择的clk为系统时钟,有效边沿选择上升沿,勾选Delay value,设置为2ns。Pad net勾选后可以选择需要设置的端口名称。这样的设置与前文所述的Creat Timing Constrain工具约束输入端口时序是一致的。可见这个工具会更加简洁。

 

3.2    ISE下查看时序结果

 

查看时序报告时,在ISE工具下也有多种方式。比如,在ISE工具下可以选择Timing,然后在出现的对话框选择run analysis。会出现下图所示界面。在这个界面中可以选择需要分析的pad, net或者是寄存器(Flip-Flop)。这样工具会给出你选择的路径的时序分析报告。

图 Run Timing Analysis对话框

或者不选择分析的具体内容,而是直接在tools下选择Timing Analyzer,或者是在Place&Route下选择Generatepost-Place&Route Static Timing下面的Analyze post-Place&Route Static Timing,都会出现一个以工程头文件命名的后缀为twx的一个报告框,这里面将包含设计的时序信息。

其中Timing summary下会有诸如以下的英文:

Timing summary:

 ---------------

 Timing errors: 0  Score: 0 (Setup/Max: 0, Hold: 0)

 Constraints cover xxx paths, xx nets, and xx connections

 Design statistics:

    Minimum period:   xxx ns{1}  (Maximum frequency: xxx MHz)

从这个报告一眼可以看出是否会存在时序错误,以及错误路径数量。还包括时序约束信息覆盖的路径,网络以及连接关系,最后是最小周期,同时计算出该设计最高能够正确运行的频率。

在Timing constraints下,能够看到设计的一些时序约束信息,并且给每一条约束进行对应的分析,给出报告看是否能够满足约束。

典型摘录下来的一段如下:

 

Paths for end point cnt_21(SLICE_X24Y43.CIN), 20 paths

 --------------------------------------------------------------------------------

 Slack (setup path):      18.421 ns (requirement - (data path -clock path skew + uncertainty))

   Source:                cnt_0  (FF)

   Destination:           cnt_21  (FF)

   Requirement:          20.000ns

   Data Path Delay:      1.404ns (Levels of Logic = 6)

   Clock Path Skew:      -0.140ns (1.095 - 1.235)

  Source Clock:         clk_BUFGPrising at 0.000ns

   Destination Clock:    clk_BUFGP rising at 20.000ns

   Clock Uncertainty:    0.035ns

 

   Clock Uncertainty:          0.035ns  ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE

     Total System Jitter (TSJ):  0.070ns

     Total Input Jitter (TIJ):   0.000ns

     Discrete Jitter (DJ):       0.000ns

     Phase Error (PE):           0.000ns

 

    Maximum Data Path: cnt_0 to cnt_21 

     Location             Delay type         Delay(ns)  Physical Resource

                                                       Logical Resource(s)

    -------------------------------------------------  -------------------

     SLICE_X24Y38.AQ       Tcko                   0.346   cnt<3>

                                                        cnt_0 

     SLICE_X24Y38.A4      net (fanout=1)        0.278   cnt<0> 

     SLICE_X24Y38.COUT     Topcya                 0.384   cnt<3>

                                                        Mcount_cnt_lut<0>_INV_0 

                                                        Mcount_cnt_cy<3> 

     SLICE_X24Y39.CIN     net (fanout=1)        0.000   Mcount_cnt_cy<3> 

     SLICE_X24Y39.COUT     Tbyp                   0.082   cnt<7>

                                                        Mcount_cnt_cy<7> 

     SLICE_X24Y40.CIN     net (fanout=1)        0.000   Mcount_cnt_cy<7> 

     SLICE_X24Y40.COUT     Tbyp                   0.082   cnt<11>

                                                        Mcount_cnt_cy<11> 

     SLICE_X24Y41.CIN     net (fanout=1)        0.000   Mcount_cnt_cy<11> 

     SLICE_X24Y41.COUT     Tbyp                   0.082   cnt<15>

                                                        Mcount_cnt_cy<15> 

     SLICE_X24Y42.CIN     net (fanout=1)        0.000   Mcount_cnt_cy<15> 

     SLICE_X24Y42.COUT     Tbyp                   0.082  cnt<19>

                                                        Mcount_cnt_cy<19> 

     SLICE_X24Y43.CIN     net (fanout=1)        0.000   Mcount_cnt_cy<19> 

     SLICE_X24Y43.CLK      Tcinck                 0.068   cnt<22>

                                                         Mcount_cnt_xor<22> 

                                                        cnt_21 

    -------------------------------------------------  ---------------------------

     Total                                      1.404ns (1.126ns logic, 0.278ns route)

                                                       (80.2% logic, 19.8% route)

       该报告分析了从cnt_0到 cnt_21的路径中延时最大的一条。列出了数据传递路径上的每一步通过的逻辑单元的延时,最后计算出数据路径总的延时,然后给出时钟路径的间隙,按照公式:

Slack(setup path): (requirement - (data path - clock path skew + uncertainty))

计算出该路径的建立时间裕度。该报告甚至还给出了时钟不确定性的统计公式。裕度(slack)为正值表明时序没有违例。

分析报告会按照时序约束一一对应给出分析结果。如果存在不满足的约束,就会在对应的约束上画上红色的叉,并且将出错约束的路径里面slack最优的路径和最差的路径快捷列出,方便设计者查看。如下图所示,即为约束不能满足时的报告。

图  时序约束不满足时的报告

我们注意到,在时序报告中存在大量蓝色的带下划线的字体,他们都是时序分析路径上部件或者路径的快速链接。双击或者在右击他们出现的对话框中选择show in FPGAEditor,如果FPGA Editor工具开启,将自动链接到FPGA Editor工具下显示对应的逻辑单元或者路径,并且将其标红,设计者可以在FPGA Editor下查看该路径的布线情况,及在FPGA内部的位置。如下图所示:

 

图  FPGA Editor将时序报告的路径标红显示

如果精通FPGA Editor工具,还可以对路径进行手动修改。

 

当然,ISE的时序约束以及分析工具还远不止本书中的内容,而且这些功能在随着软件改版飞速改进。设计者在学习了第一节中时序分析原理之后,就能够对各种时序分析工具有一定的预期。在需要使用这些工具时,还需要不断地查找help以及Xilinx的User Guide文档,一边用一边学。

 

对比两家公司的时序约束和分析工具,作者觉得目前Altera的TimeQuest工具功能更加集中,且界面对用户更加友好容易上手;而Xilinx的ISE12.3版本下约束时序的工具则显得较为杂乱,但两者的时序分析报告都非常详尽,并且两家公司的时序分析工具仍然处于快速改进当中,这也间接说明了时序分析在未来FPGA设计中的重要性。

 

时间: 2024-10-23 07:00:09

在ISE下分析和约束时序的相关文章

怎样在生产环境下分析性能状况?

问题描述 怎样在生产环境下分析性能状况?因为网站放在虚拟主机上,并且有比较多缓存,跟本地开发环境相差较大. 解决方案 看Log如果你怀疑 缓存命中率在命中前 logger.info 一个消息出来解决方案二:可以在性能监控上监视新能参数.解决方案三:加再好测试

不用企业管理器的情况下得知CHECK约束的属性设置

我们知道,在SQL SERVER企业管理器中,在"设计表"状态下,当查看该表的CHECK约束时,会看到CHECK约束有"创建中检查现存数据"."对复制强制约束"."对INSERT和UPDATE强制约束"三个复选框,那么如果不在企业管理器环境下,或者在应用程序中,我们如何得知某个CHECK约束的这三个选项是否选中呢? 我查看了相关系统表的帮助说明,但里面对好多字段的说明都为"保留"."仅供内部使用&

分析:约束搜索引擎等立法还是自律

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 搜索引擎的2008年注定波澜起伏,先是年初几次铺天盖地的"人肉搜索"引发的道德讨论,随后又有一家搜索引擎公司因屏蔽三鹿奶粉事件被曝光,再后来,公众获悉,原来他们通过一些搜索引擎搜到的结果有可能是搜索引擎公司收钱后重新排名的顺序,这些结果中掺杂了广告,有的甚至是坑害消费者的虚假广告. 有数据显示,目前我国互联网用户中有超过2

约束与数据库对象规则、默认值的探究

约束.规则.默认值这三者在数据表中规定了数据进行操作时的限制条件.他们三者有关系也有区别,用了两天的时间研究了他们三者,总结如下. 首先让我们从关系角度来分析: ●浅谈约束.规则.默认值 1.约束,约束顾名思义是限制条件的意思,其实它的作用也是如此,它是对所要进行增删改查操作的数据进行一次检查,检查这些数据是否符合我们所要约束的条件.举个例子:我们都经历过高考,考试规定考生不许带与考试无关的物品这就是一种约束.报名考试的考生可能因为某些意外没有进入考场考试,但大部分考生还是进行了考试.那么在考场

《设计原本—计算机科学巨匠Frederick P. Brooks的反思》一一3.6 约束在持续变化

3.6 约束在持续变化 即使设计目标固定而且已知,所有的必要条件皆已枚举清楚,设计树已经刻画精确,并且有用性函数也有着明确无误的定义,设计过程仍然会是迭代的,因为约束在持续变化. 通常情况下是环境发生改变-市政厅会通过令人沮丧的规定给设计投下新的阴霾:电气规范每年都会更新:本来计划要用的芯片被供应商召回,等等.一切都在不断变化,即使在我们的设计向前推进的过程中,周围世界的改变也从未停步. 约束也会因设计过程中甚至加工过程中的新发现而发生变化-建筑工人碰到了无法凿穿的岩层,分析结果表明芯片的冷却问

视图在数据库中的应用分析

视图|数据|数据库 视图技术现在几乎所有的关系型数据库都支持,其应用也十分广泛. 采用视图的优点 1.  让数据库结构实现逻辑上的可扩充性:当数据库系统的物理信息(主要指表结构.表数据)已经完成后,如果由于新的业务要求导致表数据的不够,这时就可以采用视图技术进行扩充,通过视图中强大的SQL来完成功能. 2.  软件开发及数据查询处理方便:采用视图可以简化数据库系统的内部结构及其关系图,因为物理表很多时候是以数据库范式原则分析建立的,尤其在数据冗余处理方面与实际业务会产生较大的分歧,采用视图可以将

查询库中的CHECK约束信息的两个视图(SQL SERVER)

server|视图 以下两个视图均基于系统表sysobjects.syscomments和系统视图sysconstraints,查询结果中包括表ID.表名.列ID.列名.CHECK约束ID.CHECK约束名.CHECK约束status值以及CHECK约束的内容,TCCView为Table-Column-Check View,结果中均为列级CHECK约束,TCView为Table-Check View,结果中均为表级CHECK约束. 关于字段status的值的作用,参见不用企业管理器的情况下得知C

提高百度排名实战经验与降权分析

最近很多站长说网站被降权了,是的,确实是这样,最近11月.12月百度进行了全面的调整,至于怎么调整的,很多站长有不同的推断,但有调整这是肯定的,但是如何在调整后也能顺利的获得好的排名,这应该是大家该考虑的问题,我个人给大家提出一些解决办法和对网站降权进行下分析. 首先如何提高网站的排名,其实我也很郁闷,我的亚布力滑雪场www.yabulilvyou.com这个站之前的排名还过得去,现在排名一直在下降,我分析了对手的网站进行了分析,发现我的排名下降的原因, 第一:对方网站的外部链接迅速增加,400

分析seopassword 是如何14天打造百度权重三

还大家还记得在2012-6-2 14:00:16,A5论坛上发表的帖子么?这篇帖子说的是,21天百度BR6,然后带上截图,下面是一些介绍,例外带一个很明显的广告,说了一些在我看来不可靠的2012年首创新型SEO技术,当时看了这篇文章后,静静的思考了下,看完后,第一个反应是,怎么seopassword又在宣传他们自己认为多么牛B的SEO技术呢?!然后简单的对seopassword.org网站做了下分析,这不是又在坑人吗?   当时我就在想,为了让我在写这篇文章之前更有说服力,我不得不亲自来做个试验