您的位置:首页 > 其它

quartus时序分析文档理解与翻译(1)

2014-08-06 23:40 549 查看
(1)TimeQuest Analyzer速速入门

看完这里,就可以按部就班的对我们的工程进行时序方面的设置和分析,并通过TimeQuest Analyzer来约束我们的设计。

怎样打开TimeQuest Analyzer就不说了。

TimeQuest Analyzer是一个独立的GUI应用 ,可以被独立于quartus软件打开。命令行操作忽略。

推荐的设计流程:可以最大化的TimeQuest Analyzer发挥的作用

1、创建工程,并完成设计;2、执行初次编译;3、制定时序要求;4、在此执行编译;5、查看时序结果。

(1)创建工程,并完成设计

         完整的创建工程,你知道怎么做的,并加入已经有的SDC文件。

(2)执行初次编译

         如果工程还从没有编译过,或者你压根就没有SDC文件并且想通过TimeQuest Analyzer来创建一个SDC文件,那么还请你在制定时序约束之前编译一下,以便生产出所需的database,你可以只通过执行Analysis and Synthesis来创建一个post-map的database,也可以通过执行full compilation来生成一个post-fit database。我想你知道生成post-map的database会更快一点,并且其实他对于创建初始的时序约束已经足够。不同的database决定了TimeQuest
analyzer产生的时序网标(timing netlist)的类型。

        (如果使用了增量编译,在Analysis and Synthesis之后,必须执行merger操作)

(3)制定时序要求

         在使用TimeQuest analyzer进行时序分析之前,我们必须制定好时序约束:设计中的时钟特性、时序例外和信号传输的到达和需求时间( arrival and required times),我们可以使用TimeQuest analyzer的一个时序设置向导——TimeQuest Timing Analyzer Wizard来一步步的进行时序约束的建立,然后使用GUI界面进行修改完善。

         对于没有约束的clock信号,quartus默认设置约束为1Ghz——这点可以证明一个现象,在对一个时钟没有设置约束时,在进行了时序分析后居然有负的slack。

         .sdc文件只能包含SDC命令;tcl命令一般用于修改时序网标或者控制编译流程,他们必须作为TCL脚本被运行(就想引脚约束的tcl一样,必须被运行才能生效)。在创建了时序约束后,使用新的约束更新一下时序网标,这是TimeQuest Timing Analyzer 根据新的约束分析时序,并去掉false path。

         SDC文件在读取并执行时,按照书写的顺序进行,因此如果你要产生一个生成时钟,那么它所依赖的base clock 就必须在生成时钟约束之前创建。

(4)执行全编译

         在创建了最初的时序约束(根据post-map网标)文件后,我们必须进行全编译整个工程,当编译完成后,就可以打开TimeQuest Timing Analyzer 验证时序结果,并生成设计中所有定义的时钟的时序的总体报告,时钟的建立和保持时间,恢复和去除时间报告(recovery and removal clock)

         recovery time:是指对于寄存器的异步控制信号,例如异步清零信号而言。假设他在某个时刻有效清零了寄存器,并且在即将到来的下一个时钟沿到来之前t1时刻无效,如果想让寄存器在这个时钟沿正常工作(不被继续清零),t1存在一个的最小值,这个最小值就成为recovery clock(如果这个t1<recovery clock,那么这个异步清零就相当于还在生效,这个clock并不能让新的数据进入寄存器,寄存器保持被清零);----------用于异步控制信号的结尾。

         removal time:也同样用于寄存器的异步控制信号;假设在某个时刻,异步清零信号有效,这个信号出现在了她上一个时钟沿后的t1时刻,如果t1<removal time,就是说她离上一个时钟沿太近,导致上一个时钟沿没有将数据写入到寄存器,removal time就是让上一个时钟沿有效的最小时间;——用于异步控制信号的起始。

(5)查看时序结果

        TimeQuest Analyzer会检查设计中的时序路径,计算每个路径的传播延时,检查时序约束违例,以正负slack的形式报告时序结果,负的slack表示存在时序违例。如果在时序路径中遇到了这种违例,通过时序报告来查看并决定如何去优化我们的设计;在修改了约束后,我们必须再次执行全编译,这种迭代的过程帮助解决我们设计中的时序问题。

        .qsf文件作为tcl脚本写的Quartus II Settings File,可以再其中设置包含.sdc文件。

 

       

 

 

     

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: