在ISE下分析和约束时序
![在ISE下分析和约束时序](https://img.360docs.net/img41/01ye8xqdk2fe16a96vzr-11.webp)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.在ISE下分析和约束时序
3.1ISE的时序约束工具入门
像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等。
双击unconstrained clks窗口的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 HIGH 50%;
NET "bu" OFFSET = IN 2 ns VALID 20 ns BEFORE "clk" RISING;
这些不仅包括了时序约束,还以注释的形式将约束生成的日期以及针对的器件型号列出了。设计者甚至可以通过编辑修改这里的文本来快速修改时序约束。
生成的ucf已经是在工程下了。添加了约束后XST工具不需要重新运行,但是Implement Design下每一步都需要重新执行。重新执行时,便是在我们设置的约束下进行映射及布局布线了。
下面是PlanAhead Post synthesis工具启动后设置时序约束的页面。
图PlanAhead Post synthesis工具下的时序约束界面从上图可以看出这里的时序约束包括了Clk period,Pad-clk offset,path delay,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.2ISE下查看时序结果
查看时序报告时,在ISE工具下也有多种方式。比如,在ISE工具下可以选择Timing,然后在出现的对话框选择run analysis。会出现下图所示界面。在这个界面中可以选择需要分析的pad,net或者是寄存器(Flip-Flop)。这样工具会给出你选择的路径的时序分析报告。