TimeQuest就一定要搞定——时序约束和分析流程
0赞TimeQuest的约束和分析流程是与Quartus II的编译流程紧密结合的。如下图所示:
TimeQuest进行约束和分析的对象都来自Quartus II编译流程各阶段的编译结果。二者对应关系如下:
1. 分析与解析
Start Analysis & Elaboration ->
RTL Viewer
Quartus II编译的第一步是纯粹的“逻辑综合”,虽然经过了逻辑优化,但是生成的数据库并不对应FPGA器件的物理结构,生成的网表中节点的名称也不与FPGA器 件的Cell名称对应。由于TimeQuest进行约束和分析的对象是FPGA器件的底层物理单元,所以这一步编译过程完成后不能进行TimeQuest 时序约束和分析。
这一步在TimeQuest操作流程中没有实际意义。
2. 分析与综合(与映射)
Start Analysis & Synthesis ->
Technology Map Viewer(Post-Mapping) ->
Create Timing Netlist(Post-Map), Specify Timing Constraints, Early Timing Estimate
这一编译步骤的名称虽然是“分析与综合”,但是在“综合”后还进行了一步“映射”(Mapping)。Start Analysis & Synthesis = Start Analysis & Elaboration + Mapping。这一步完成后生成的数据库已经对应了FPGA器件的物理结构,可以供TimeQuest进行时 序约束之用。由于“映射”过程实际是预先布局过程,“映射”后的数据库包含了FPGA底层Cell的位置信息和Cell本身的时序信 息,TimeQuest根据这一数据库生成的时序网表中的节点与FPGA底层Cell是对应的。由于预先布局尚未执行时序驱动的布局和布线工作,也没有读 入引脚位置等约束信息,这时的网表不包含布线信息,而且布局结果也会在P&R后发生变化,所以不能获得准确的时序分析结果。在这一步进行的时序分 析是Early Timing Estimate,只是根据Cell本身的时序信息和由预布局 结果得来的Cell之间的位置关系进行的“估计”。
这一步在TimeQuest操作流程中的意义在于可以进行时序约束和时序预估。
3. 适配(P&R)
Start Fitter ->
Technology Map Viewer, Chip Planner ->
Create Timing Netlist(Post-Fit), Generate Timing Reports
这一步骤的名称“适配”对应的操作是“布局和布线”(P&R)。这一步骤是在上一个步骤获得时序约束信息后进行的,Fitter会努力按照时序约 束的要求进行布局和布线优化。这一步骤获得的数据库包含了Cell的位置、Cell本身的时序信息和Cell之间连线资源的分布和时序信 息,TimeQuest根据这一数据库生成的网表就是FPGA最终实现结果的时序网表,可以反映最终实现结果的时序特性。此时进行的时序分析才是最准确的。
这一步在TimeQuest操作流程中的意义在于可以进行最终的时序分析,并检查适配结果是否满足了时序约束的要求。(如文章开头引用的Quartus II Help文档给出的流程图所示,在这一步才执行时序约束也是可以的,但是如果不指出在第2步就可以进行时序约束,会产生“先有鸡还是先有蛋”的矛盾,这一 点就是Altera文档误导读者之处。此外,在这一步才执行时序约束会重复执行P&R操作,浪费编译时间。)
在上述流程的每一步中,都有Netlist Viewer与编译和时序分析的对应关系。根据这一对应关系,设计者可以借助Netlist Viewer工具观察编译生成的网表,间接观察和分析TimeQuest生成的对应的时序网表。Netlist Viewer实现了TimeQuest时序约束对象的可视化。
在上述操作流程的最后一步,还可以通过Chip Planner直观察看设计在FPGA中的实现情况,并且与TimeQuest的时序分析报告一一对应。Chip Planner实现了TimeQuest时序分析结果的可视化。
相关链接:在线观看Chinese Version: Validating Performance with the TimeQuest Static Timing Analyzer,离线观看Chinese Version: Validating Performance with the TimeQuest Static Timing Analyzer