Vivado如何计算关键路径的保持时间裕量?-Xilinx-AMD社区-FPGA CPLD-ChipDebug

Vivado如何计算关键路径的保持时间裕量?

关于Vivado的建立时间分析,写了两篇,如下:

Vivado如何计算关键路径的建立时间裕量?(理论分析篇)

Vivado如何计算关键路径的建立时间裕量?(实践篇)

保持时间,就简短一点。

总之,关于建立保持时间分析,几个关键点就是:

裕量计算公式:数据要求时间 减去 数据到达时间
时序分析的起点,以及Launch edge以及Latch edge的理解
建立时间描述的是数据从源寄存器到达目的寄存器,目的寄存器时钟采样时刻之前,也就是时钟到达之前,数据保持稳定的最小时间,即数据要在这个时间之前到达。

如下图时序模型以及时序图:
1.png

2.png

时序关系
蓝线即是一个界限,数据要在这个时刻之前到达就能达到建立时间要求,满足时序。

对于保持时间,描述的是数据在时钟有效沿(这里就是指latch edge)之后,数据保持稳定的时间。

一个数据通常持续一个时钟,或者说总有数据持续一个时钟,要想满足保持时间,数据从源寄存器到目的寄存器之间的延迟就不能太小,否则到达目的寄存器之后,持续时间就会太小,就有可能满足不了时序要求。

Vivado是如何分析建立时间裕量的呢?

分三步分析:

数据到达时间,即源时钟路径+数据路径的延迟时间;
仍然以Vivado示例工程WaveGen为参考,随意找一条建立时间路径:

3.png

这条路径即是数据到达目的寄存器(时序单元,不一定是寄存器)的时间;

目的时钟路径延迟时间;
目的时钟到达目的寄存器的时间加上保持时间构成数据要求时间:

4.png

  1. 计算保持时间裕量

保持时间裕量的含义是数据要在我的数据要求时间之后到达,方可达到时序要求。

画一个时序示意图:
5.png

标号1表示数据到达时间,标号2表示数据要求时间,这种情况就满足不了保持时间要求,因为在保持时间窗口内,数据就发生了变化;

反之,如果标号1为数据要求时间,标号2位数据到达时间,就能满足保持时间要求。

示例路径:

6.png

数据要求时间在数据到达时间之前,所以保持时间裕量为正,时序满足。

注意,最后提醒的是保持时间的分析是在发起沿分析的,因为发起沿的保持时间分析和锁存沿的保持时间分析,是一个道理,我们使用发起沿的数据要求时间,与发起沿的数据到达时间进行比较,也能够反应在锁存沿的保持时间是否满足。

最后说一句,保持时间是要求数据延迟(数据到达时间)必须大于一定的时间(数据要求时间),这个时间是时钟的偏斜加上保持时间。

请登录后发表评论

    没有回复内容