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

2021年11月25日 阅读数:4
这篇文章主要向大家介绍Vivado如何计算关键路径的保持时间裕量?,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

关于Vivado的创建时间分析,写了两篇,以下:markdown

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

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

保持时间,就简短一点。.net

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

  1. 裕量计算公式: 数据要求时间 减去 数据到达时间
  2. 时序分析的起点,以及Launch edge以及Latch edge的理解

创建时间描述的是数据从源寄存器到达目的寄存器,目的寄存器时钟采样时刻以前,也就是时钟到达以前,数据保持稳定的最小时间,即数据要在这个时间以前到达。get

以下图时序模型以及时序图:
时序模型同步

时序关系

蓝线便是一个界限,数据要在这个时刻以前到达就能达到创建时间要求,知足时序。博客

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

一个数据一般持续一个时钟,或者说总有数据持续一个时钟,要想知足保持时间,数据从源寄存器到目的寄存器之间的延迟就不能过小,不然到达目的寄存器以后,持续时间就会过小,就有可能知足不了时序要求。class

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

分三步分析:

  1. 数据到达时间,即源时钟路径+数据路径的延迟时间;

仍然以Vivado示例工程WaveGen为参考,随意找一条创建时间路径:

Vivado时序报告路径
这条路径便是数据到达目的寄存器(时序单元,不必定是寄存器)的时间;

  1. 目的时钟路径延迟时间;

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

目的时钟路径
3. 计算保持时间裕量

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

画一个时序示意图:
时序图

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

反之,若是标号1为数据要求时间,标号2位数据到达时间,就能知足保持时间要求。

示例路径:

保持时间
数据要求时间在数据到达时间以前,因此保持时间裕量为正,时序知足。

注意,最后提醒的是保持时间的分析是在发起沿分析的,由于发起沿的保持时间分析和锁存沿的保持时间分析,是一个道理,咱们使用发起沿的数据要求时间,与发起沿的数据到达时间进行比较,也可以反应在锁存沿的保持时间是否知足。

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

本文同步分享在 博客“李锐博恩”(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。