原创 TimeQuest Timing Analyzer工具使用一例

2015-4-29 17:41 3224 21 22 分类: FPGA/CPLD

TimeQuest Timing Analyzer工具使用一例

作者:RyudoYang

 

工具版本:Quartus II 13.1+TimeQuest Timing Analyzer

同事在进行SDR SDRAM时序约束时遇到工具使用和概念上的诸多问题,有些问题具有代表性,这里一并总结。

(1)    问题抽象

20150429174044698001.jpg

1 SDR SDRAM约束问题抽象

1SDR SDRAM接口电路的抽象(以输入数据为例进行分析)。

PLL产生2133MHz的时钟,其中C0输出作为SDR SDRAM的芯片时钟使用,另一个时钟经过270°的移相,作为SDR SDRAM输入数据的锁存时钟使用。注意,这里时钟的用法也是解决很多时序问题的技巧之一。

以上是该问题的抽象,不需要过多解释。

 

(2)    TimeQuest Timing Analyzer使用与分析过程

对图1所示的小工程进行全编译之后,打开TimeQuest Timing Analyzer(以下简称为TQ)进行分析。

首先进行时钟设置。

20150429174053472002.jpg

2 时钟约束

2步,对SDR SDRAM用到的时钟进行约束,该时钟是通过PLLC0输出得到的。采用的约束是:create_generated_clock -name clkout -source [get_pins {inst|altpll_component|auto_generated|pll1|clk[0]}] [get_ports {c0}],然后更新网表,检查约束是否生效。

20150429174102466003.jpg

2 新的时钟约束已经生效

3步,对外部输入延时进行设置,为了简化,采用的约束是:set_input_delay -clock { clkout } 5 [get_ports {D}],生效后检查建立时间,发现违规。

 

20150429174115749004.jpg

3 建立时间违规

通过分析得出,违规路径有三个参数延时很大,分别是时钟延时,外部固有延时,数据输入延时。在一般情况中,外部固有延时是固定的,可更改的余地有限,主要是通过减小另外两个延时来达到时序收敛。这里假设另外两个延时也不可以更改,那么如何达到时序收敛呢?通过观察违规波形,发现如果使用锁存时钟的第3个时钟沿来锁存数据是可以满足时序收敛的,带来的影响就是必须对设计进行调整,使用锁存时钟的第3个时钟沿锁存的数据来进行后续处理,简单来说就是增加了有效数据的潜伏期。

4步,更改设计之后重新进行时序分析,这里必须使用多周期约束把设计意图告知TQ,使其能够进行正确的时序分析。采用的约束是:set_multicycle_path -from [get_clocks {clkout}] -to [get_clocks *] -setup -end 3。生效后重新检查结果,发现已经符合预期。

20150429174128124005.jpg

4 时序已经收敛

 

(3)    问题总结

通过以上例子,总结一下使用TQ时应该注意的问题:

第一,使用TQ之前必须弄清楚相关概念的含义与他们之间的关系,比如Setup TimeHold TimeData Arrival TimeData Required Time等概念,这样才能看懂TQ生成的波形图;

第二,先抽象出电路,再开始约束。约束对象往往比较复杂纷繁,先把其实际表达的电路,尤其是电路路径抽象出来,可以很好的辅助分析;

第三,开始约束之后,首先约束的内容必须是时钟,这些时钟包含由PLL直接产生的时钟以及各类派生时钟和虚拟时钟,只有时钟建立正确,后面的结果才有分析的价值与意义;

第四,约束必须符合设计意图,违背设计意图的约束即使达到了时序收敛,也毫无意义。这里以上面的多周期约束为例,通过分析违规时序可知必须更改设计,完成修改之后,必须把这一设计意图通过多周期约束告知TQ,使其按设计意图进行约束,否则TQ还会按默认的“单周期”进行约束,结果就是无论如何都不能达到时序收敛。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户422852 2015-10-30 11:33

讲的很好
相关推荐阅读
ryudo 2009-03-02 18:39
07年全国大赛——程控滤波器的设计
论文下载地址:http://www.rayfile.com/files/b5e5755c-f91a-11dc-818d-0014221b798a/                           ...
ryudo 2009-03-02 18:21
基于液晶控制芯片T6963的液晶模块动态绘图编程方法
液晶是人机交互最重要的通道,液晶不光要显示文字信息,还要显示波形信息,所以,编写一套完善的函数库是必不可少的,其中应该包括显示ASCII码、字符串、整型数字、浮点数、汉字、画点、画线等一系列函数。上层...
ryudo 2009-02-26 16:30
如何开发家用机游戏
        游戏开发这个东西涉及到一个系统的“自举”问题,PC是一个自举系统,而我们用的各种手持设备,包括手机,MP4,游戏机等,都不是自举系统。自举,简单来说,就是一个系统(包括硬件和软件),不...
ryudo 2009-02-19 15:13
音频信号分析仪制作笔记4
笔记下载地址:http://www.rayfile.com/files/11d81b61-ff8d-11dc-a96f-0014221f3995/...
ryudo 2009-02-19 15:13
音频信号分析仪制作笔记3
笔记下载地址:http://www.rayfile.com/files/21b39e75-f9f7-11dc-8fa5-00142218fc6e/...
我要评论
1
21
关闭 站长推荐上一条 /3 下一条