我是靠谱客的博主 粗犷期待,最近开发中收集的这篇文章主要介绍ise 时钟约束_在ISE下分析和约束时序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

3.1   ISE的时序约束工具入门ide

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

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

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

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

图ISE时序约束类型字体

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

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

图  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设计中的重要性。

最后

以上就是粗犷期待为你收集整理的ise 时钟约束_在ISE下分析和约束时序的全部内容,希望文章能够帮你解决ise 时钟约束_在ISE下分析和约束时序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部