原创 TimeQuest就一定要搞定——时序约束和分析流程

2008-1-20 23:09 8419 12 14 分类: FPGA/CPLD

    TimeQuest的约束和分析流程是与Quartus II的编译流程紧密结合的。如下图所示:


2d85147c-31ed-4903-9427-cd27b98a6f61.JPG


    TimeQuest进行约束和分析的对象都来自Quartus II编译流程各阶段的编译结果。二者对应关系如下: riple


1. 分析与解析 riple


3d56e8cb-8c39-417e-ba21-fe1e566d773a.JPGStart Analysis & Elaboration ->  riple
d8ff3b39-6cc1-4665-aa05-02a31d057527.JPGRTL Viewer riple



    Quartus II编译的第一步是纯粹的“逻辑综合”,虽然经过了逻辑优化,但是生成的数据库并不对应FPGA器件的物理结构,生成的网表中节点的名称也不与FPGA器件的Cell名称对应。由于TimeQuest进行约束和分析的对象是FPGA器件的底层物理单元,所以这一步编译过程完成后不能进行TimeQuest时序约束和分析。 riple


    这一步在TimeQuest操作流程中没有实际意义。 riple


2. 分析与综合(与映射) riple


b7e460b7-d519-4087-a7bb-27610ca90a15.JPGStart Analysis & Synthesis ->  riple
966e5737-2ef1-4cac-bd2f-8f87ec0204dc.JPGTechnology Map Viewer(Post-Mapping) ->  riple
9d1b8b58-582f-4e02-95e8-c4c1df41bef2.JPGCreate Timing Netlist(Post-Map), 9d1b8b58-582f-4e02-95e8-c4c1df41bef2.JPGSpecify Timing Constraints, 9d1b8b58-582f-4e02-95e8-c4c1df41bef2.JPGEarly Timing Estimate riple


    这一编译步骤的名称虽然是“分析与综合”,但是在“综合”后还进行了一步“映射”(Mapping)。Start Analysis & Synthesis = Start Analysis & Elaboration + Mapping。这一步完成后生成的数据库已经对应了FPGA器件的物理结构,可以供TimeQuest进行时序约束之用。由于“映射”过程实际是预先布局过程,“映射”后的数据库包含了FPGA底层Cell的位置信息和Cell本身的时序信息,TimeQuest根据这一数据库生成的时序网表中的节点与FPGA底层Cell是对应的。由于预先布局尚未执行时序驱动的布局和布线工作,也没有读入引脚位置等约束信息,这时的网表不包含布线信息,而且布局结果也会在P&R后发生变化,所以不能获得准确的时序分析结果。在这一步进行的时序分析是Early Timing Estimate,只是根据Cell本身的时序信息和由预布局结果得来的Cell之间的位置关系进行的“估计”。 riple


    这一步在TimeQuest操作流程中的意义在于可以进行时序约束和时序预估。 riple



3. 适配(P&R) riple


9d70e212-e33e-4ef6-8433-55e43d7c14ce.JPGStart Fitter ->  riple
21d5a628-b7da-4c42-aba6-f276075ea730.JPGTechnology Map Viewer, 490001cc-6746-4b55-9cbe-af3df6a8caad.JPGChip Planner ->  riple
9d1b8b58-582f-4e02-95e8-c4c1df41bef2.JPGCreate Timing Netlist(Post-Fit), 9d1b8b58-582f-4e02-95e8-c4c1df41bef2.JPGGenerate Timing Reports riple



    这一步骤的名称“适配”对应的操作是“布局和布线”(P&R)。这一步骤是在上一个步骤获得时序约束信息后进行的,Fitter会努力按照时序约束的要求进行布局和布线优化。这一步骤获得的数据库包含了Cell的位置、Cell本身的时序信息和Cell之间连线资源的分布和时序信息,TimeQuest根据这一数据库生成的网表就是FPGA最终实现结果的时序网表,可以反映最终实现结果的时序特性。此时进行的时序分析才是最准确的。 riple


    这一步在TimeQuest操作流程中的意义在于可以进行最终的时序分析,并检查适配结果是否满足了时序约束的要求。(如文章开头引用的Quartus II Help文档给出的流程图所示,在这一步才执行时序约束也是可以的,但是如果不指出在第2步就可以进行时序约束,会产生“先有鸡还是先有蛋”的矛盾,这一点就是Altera文档误导读者之处。此外,在这一步才执行时序约束会重复执行P&R操作,浪费编译时间。) riple


 


    在上述流程的每一步中,都有Netlist Viewer与编译和时序分析的对应关系。根据这一对应关系,设计者可以借助Netlist Viewer工具观察编译生成的网表,间接观察和分析TimeQuest生成的对应的时序网表。Netlist Viewer实现了TimeQuest时序约束对象的可视化。 riple


    在上述操作流程的最后一步,还可以通过Chip Planner直观察看设计在FPGA中的实现情况,并且与TimeQuest的时序分析报告一一对应。Chip Planner实现了TimeQuest时序分析结果的可视化。 riple


    相关链接:在线观看Chinese Version: Validating Performance with the TimeQuest Static Timing Analyzer,离线观看Chinese Version: Validating Performance with the TimeQuest Static Timing Analyzer  riple


关键路径中的时序分析工具对设计成败至关重要


    附图:TimeQuest操作流程。


7c2fa1a9-5bbf-4114-9ee2-4236ecdc4518.JPG

文章评论7条评论)

登录后参与讨论

用户1728910 2013-12-20 23:01

@Rambler2011 PLL输出余量为负到底怎么回事,解决了吗?跪求解决办法

用户450663 2013-11-6 21:28

同求楼主解答,pll输出余量为负,用了derive_pll_clocks!还是为负,求解决!!!

用户970530 2013-8-4 08:34

请教:pll的输出时钟如何进行约束,建立时间的裕量始终为负,保持时间满足要求

ilove314_323192455 2009-2-7 12:16

LS的注意看培训课程网页里的英文,都明白告诉我们怎么下载了

用户199656 2009-2-6 12:21

受益匪浅,不过怎样才能把altera网站上的在线培训视频下载下来呀.

ash_riple_768180695 2008-11-18 12:59

大家一起把它搞定!

用户142049 2008-11-17 23:19

这两天一直困扰着我的一个小问题就是在没有经过适配之前的timequest报告有什么实际意义?现在终于搞明白了,原来是时序预估的结果。收获很多,3ks!

用户1062002 2006-12-15 18:36

我会一直记得这个家的,呵!

用户1053025 2006-12-15 14:22

好文章,好久没看见深蓝的文章了。即使转载,也感到亲切!
相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2015-10-22 12:41
开篇:FPGA快速系统原型设计--敏捷实践
    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。     先上一篇PPT:RSPwFP...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
我要评论
7
12
关闭 站长推荐上一条 /2 下一条