时序路径报告理解之小白入门详解

本文详细解读了Vivado工具中的PathReport功能,包括Summary、SourceClockPath、DataPath和DestinationClockPath的构成,以及关键概念如Slack、时序约束、延时分析等。着重介绍了路径上的延时计算和路径类型的区分,为设计者提供了深入理解时序路径的重要参考。
摘要由CSDN通过智能技术生成

目录

一、前言

二、Path Report

2.1 Summary

2.2 Source Clock Path

2.3 Data Path

2.4 Destination Clock Path

三、参考资料


一、前言

如果要看时序路径分析中最详细的信息,那无疑是查看具体路径上的详细延时信息,也即在report timing summary中选中需要查看路径,双击或右键点击“View path report”,该界面主要由4部分组成,包括Summary,Source clock path,Data Path,Destination Clock Path,下面将对4部分内容进行全面的解释。

二、Path Report

2.1 Summary

Summary中为时序路径的总结信息,包含内容如下图

Name:  路径的名称,格式为"Path x",x为软件根据路径的slack值从小到大的顺序进行排序的序号

Slack:Slack值为正值说明在限定的时序约束下,路径满足时序要求,Slack值的计算公式为

最大延时分析(setup/recovery)=数据要求的到达时间-数据实际到达时间

最小延时分析(hold/removal)=数据实际到达时间-数据要求的到达时间

Source: 路径的起点,也是源时钟发送数据的位置,通常是时序单元的时钟引脚或者是输入端口。同时,在后面也显示了时序单元的有效触发边沿是上升沿还是下降沿,以及源时钟的周期与波形

Destination:  时序路径的终点或者是捕获数据的目的时钟,通常是时序单元的数据输入引脚或是输出端口,和Source类似,后面的信息也显示了时序单元的有效触发边沿以及捕获时钟的波形

Path Group:  路径终点所属的时序组,即捕获时钟组,但对于异步时序检查(recovery/removal)是默认属于async_default时序组,用于定义的组也可以出现,改分类主要是方便查看报告

Path Type:  路径类型,分为Max/Min+Slow/Fast的组合,Max表示用最大延时值计算数据路径延时,对应于setup/recovery分析;Min表示用最小延时值计算数据路径延时,对应于hold/removal分析。对于起点为复位端口的setup分析更多是fast corner,其他正常的起点通常是slow corner。

Requirement:  时序路径要求时间,当源时钟和目的时钟是同一个时钟时,通常对于setup/recovery,requirement的值时一个时钟周期,hold/removal分析该值是0ns。当源时钟和目的时钟不是同一个时钟时,requirement是两个时钟对应边沿的最小差值。同时,如果有其他时序例外约束,如multicycle path, max delay and min delay会影响该值的计算。

Data Path Delay:  逻辑单元上的延时,不考虑时钟延时

Logic Levels: 在逻辑路径上,除去起点和终点,中间连接的逻辑单元的级数

Clock Path Skew: 源时钟的启动边沿与目的时钟的捕获沿的延时差,如果存在时钟悲观校正,则要加上改该值

Clock Path Skew的计算公式如下图

Destination Clock Delay (DCD):目的时钟到路径终点的延时,如果是最大延时分析(setup/recovery),考虑的是最小的网线延时和单元逻辑延时;如果是最小延时分析(hold/removal),考虑的是最大的网线延时和单元逻辑延时。

Source Clock Delay (SCD):源时钟到达路径起点的延时,如果是最大延时分析(setup/recovery),考虑的是最小的网线延时和单元逻辑延时;如果是最小延时分析(hold/removal),考虑的是最大的网线延时和单元逻辑延时。

Clock Pessimism Removal (CPR):在源时钟和目的时钟存在共同的路径时,在共同路径上将不会存在时钟偏斜,但在Max/Min分析时将存在时钟偏斜值考虑进去了,导致结果更悲观了

Clock Uncertainty: 时钟边沿对上的所有可能导致时钟延时变化的总和,包括系统时钟抖动和离散抖动,以及用户使用set_clock_uncertainty约束的不确定值,计算公式如下

Total System Jitter:包括源时钟和目的时钟的系统抖动,为了修正系统抖动,可以使用set_system_jitter约束,另外,虚拟时钟是理想时钟,无系统抖动

Total Input Jitter: 包含了源时钟和目的时钟的输入抖动,使用set_input_jitter可以单独约束每个主时钟的输入抖动。对于生成时钟的输入抖动,是基于主时钟的抖动以及时钟资源穿过的单元。同样的,对于虚拟时钟也没有输入抖动。

Discrete Jitte:离散抖动是因为使用了硬件原语如MMCM和PLL将会带来离散抖动

Phase Error:在使用了硬件原语如MMCM和PLL时,也会带来两个时钟信号间的相位错误

User Uncertainty:使用set_clock_uncertainty约束的不确定度

以上是默认显示的,在设置了一些约束时会有一些其他内容

Input Delay:使用了set_input_delay约束输入端口时就会有该行,值为约束的值

Output Delay:使用了set_output_delay约束输入端口时就会有该行,值为约束的值

Inter-SLR Compensation:仅仅在7系列的SSI器件上,穿过SRL边界的路径为确保安全的分析需要另外的裕量。

Clock Domain Crossing: 除了被set_clock_groups和set_false_path约束的需不考虑外,其余跨时钟路径将会被分析

2.2 Source Clock Path

源时钟路径是源时钟从来源处到时序路径起点的路径

内容包含五列,Delay Type,Incr,Path,Location,Neetlist Resource(s)

Delay Type:延时类型,主要分为net和cell,net后面带有fo,表示网线的扇出大小。同时net可有3种状态:Unplaced表示net的driver和load还还未进行布局,Estimated表示net的driver和load已布局,但布线不是实际的布线,Routed表示net的driver和load已布局,并且已完成布线。

对于cell,后面有描述传输的单元,单击cell,选择“show description”可以查看详细信息,包含改cell的输入pin,以及输出pin以及时序类型

Incr(ns):显示的是各net,cell对应的传输时延值,单位为ns,对于input/output delay或uncertainty约束也会显示约束的值。同时前面会有r或f,分别表示上升riging和下降falling,用于表示该cell启动沿或捕获沿的默认sense

Path(ns):时序路径到达该位置累积的延时值,在任意一行,该值等于该行等于前面所有的值加起来

Location:对于cell布局的位置坐标

Netlist Resource(s):网表对象的名称,前面的符号向右表示输入,向左表示输出

2.3 Data Path

数据路径是数据从路径起点到路径终点的路径,相关内容和源时钟路径类似,该延时值的起点是以源时钟为基础,下图的1.834为源时钟延时1.737加上FDCE的内部延时0.097,可以看出是从一个FDCE的Q端口到另一个FDCE的D端口

2.4 Destination Clock Path

目的时钟路径是目的时钟从时钟来源处到时序路径终点的路径,总体内容和源时钟路径大体相同,但在最后面会多出两行clock pessimism,clock uncertainty,clock pessimism即为前面提到的CPR,uncertainty即为在summary中的clock uncertainty

三、参考资料

用户手册《ug906-vivado-design-analysis-en-us-2023.2.pdf》

  • 29
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值