静态时序分析详解之时序路径类型

发布于:2025-09-09 ⋅ 阅读:(16) ⋅ 点赞:(0)

目录

一、概览

二、时序路径

2.1 数据路径

2.2 时钟路径

2.3 时钟门控路径

2.4 异步路径

2.5 关键路径

2.6 False路径

2.7 单周期路径

2.8 多周期路径

2.9 最长路径和最短路径

三、参考资料


一、概览

    ​    ​静态时序分析通过模拟最差条件下分析所有的时序路径,报告出存在违例的路径,来验证设计的时序性能是否满足要求。

    ​    ​相比动态分析的模拟仿真,静态时序分析因为不需要大量的测试向量,分析更快,再者因为是分析所有的时序路径,分析结果齐全,单缺点是只能分析时序结果,无法验证设计功能的正确性。静态时序分析主要有三个流程:设计连接划分为一系列的时序路径,计算每一条路径的信号传输时延,检查时序约束下违例的路径。

二、时序路径

    ​    ​时序路径可以根据信号的类型分为不同的路径,如数据路径,时钟路径,时钟门控路径,异步路径等。每一条时序路径都有一个起点和一个终点,不同时序路径类型的起点和终点存在些差异,一般起点是设计中由发送时钟边沿触发的位置,终点是设计中数据由起点发出,经过组合逻辑后由捕获时钟边沿触发接收的位置。

2.1 数据路径

    ​    ​数据路径中起点可以是设计的输入端口(输入数据可以由芯片外部时钟发送),或者是时序单元的时钟引脚,终点可以是时序单元的数据端口或设计的输出端口(由芯片外部的时钟捕获数据)。下图是根据起点和终点单元类型对时序路径的分类。

由上图可知,数据路径有四种类型

路径1:外部器件通过输入端口DIN到FPGA内部的寄存器单元REG A

路径2:输入寄存器REG A到输出寄存器REG B 

路径3:FPGA内部寄存器REGB的数据通过输出端口DOUT输出到芯片外部

路径4:芯片输入端口DIN到输出端口DOUT间的路径

2.2 时钟路径

时钟路径中起点是时钟输入端口,终点是时序单元如触发器,存储器的时钟引脚,以下图为例,源时钟路径和目标时钟路径就是两条时钟路径,终点分别是触发器REGA和REGB的时钟引脚。

2.3 时钟门控路径

时钟门控路径中起点是设计的输入端口,终点是时钟门控单元的输入端口,以下图示例。输入信号En不属于时钟的一部分,但是可以控制输入时钟信号是否能有效作用于CLK端口。这种路径既不属于时钟路径也不属于数据路径,成为时钟门控路径

2.4 异步路径

异步路径中起点是设计的输入端口,终点是时序单元的异步复位,置位或清零引脚,异步信号不依赖于时钟信号的有效沿。

2.5 关键路径

简单理解,关键路径就是延时最大的组合路径,决定了设计正常运行时的最大频率,也是时序敏感的功能路径。关键路径也是不满足时序要求的路径。综合后时序分析工具就能报告出时序违例的路径,看到违例路径后首要做的是确认这些路径是否属于不用分析或者多周期的路径。

在分析设计中的违例路径时,了解关键路径周围的相互作用很有帮助。 要了解关键路径上可能存在的拉动因素,可以使用以下 report_timing 命令。 在项目目录中,运行 report_timing 命令查找关键路径中的节点。 将以下代码复制到 .tcl 文件中,并将前两个变量替换为最差路径的“起始节点”和“终止节点”列中的节点名称。该脚本将分析最差源寄存器和目标寄存器之间的路径。以下图示例,设计的关键路径以红色显示。

set wrst_src <insert_source_of_worst_path_here>
set wrst_dst <insert_destination_of_worst_path_here>
report_timing -setup -npaths 50 -detail path_only -from $wrst_src \
-panel_name "Worst Path||wrst_src -> *"
report_timing -setup -npaths 50 -detail path_only -to $wrst_dst \
-panel_name "Worst Path||* -> wrst_dst"
report_timing -setup -npaths 50 -detail path_only -to $wrst_src \
-panel_name "Worst Path||* -> wrst_src"
report_timing -setup -npaths 50 -detail path_only -from $wrst_dst \
-panel_name "Worst Path||wrst_dst -> *"

.tcl 脚本与图形之间的关系如下: 前两行显示了关键路径两个端点内部的所有内容,这些路径将它们拉向不同的方向。 第一个 report_timing 命令分析源驱动的所有路径,以绿色显示。 第二个 report_timing 命令分析通往目标的所有路径,包括关键路径,以橙色显示。 最后两个 report_timing 命令显示了端点外部的所有内容,这些路径将它们拉向不同的方向。 如果这些相邻路径中的任何一条在关键路径附近有松弛,则过滤器会平衡这些路径与关键路径,以尝试实现最佳松弛。

2.6 False路径

对于设计中实际存在,但逻辑功能不正确的路径,没有数据从起点到终点,这种没有时序要求的路径成为False路径。因为时序分析工具默认会分析所有的路径,对于False路径,需要约束为False path,否则会因优化时序结果而增加运行时间。

以下图选择器设计为例,False path2和False path1不会同时出现,但是时序分析的时候STA工具无法识别这种逻辑,因此必须人为地设置false path约束

常见的False path场景

a)来自配置输入的场景

b)来自测试的输入,输入信号仅用于芯片测试,正常运行模型下不生效

c)来自异步输入进入到芯片

2.7 单周期路径

单周期路径是设计中数据从起点传输到终点要求在一个时钟周期完成,单周期路径可分为发送路径和接收路径。下图中UFF0是发送触发器,UFF1是接收触发器,两者之前的为数据路径,数据路径的起点为UFF0/CK,终点是UFF1/D。

发送时钟路径加上数据路径就是数据到达接收触发器的到达时间(Arrival Time),接收时钟的周期加上时钟延时就是数据到达接收触发器的要求时间(Required Time)

2.8 多周期路径

多周期路径是需要非默认设置或保持关系进行正确分析的数据路径。

例如,一个寄存器可能被需要用于采集每第二个或第三个上升时钟边沿上的数据。乘法器的输入寄存器与输出寄存器之间的多周期路径的示例,其中目地寄存器在每隔一个时钟边沿上锁存数据。

当源时钟src_clk的周期为10 ns,目的时钟dst_clk的周期为5 ns时,用于默认设置和保持关系的寄存器到寄存器路径,源和目的时钟的相应时序图,默认设置和保持关系。默认设置关系为5 ns;默认保持关系为0 ns。

为满足系统要求,您可以通过对寄存器到寄存器路径指定多周期时序约束来修改默认设置和保持关系。

异常(exception)的multicycle setup assignment值为2,以使用第二个出现的锁存沿;在此实例中,从默认值5 ns到10 ns。

2.9 最长路径和最短路径

任何两个起点和终点间,都可能存在很多路径,最长的路径是延时最长的路径,也成为最差路径或最迟路径或Max路径。最短路径是延时最小的路径,也称为最好路径或Min路径。下图中最长路径是经过UBUF1,UNOR2,UNAND3单元后的路径,最短路径是只经过UNAND3的路径

三、参考资料

https://www.intel.cn/content/www/cn/zh/docs/programmable/683243/20-1/multicycle-path-analysis.html


网站公告

今日签到

点亮在社区的每一天
去签到