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

举报
李锐博恩 发表于 2021/09/28 23:23:49 2021/09/28
2.2k+ 0 0
【摘要】 关于Vivado的建立时间分析,写了两篇,如下: Vivado如何计算关键路径的建立时间裕量?(理论分析篇) Vivado如何计算关键路径的建立时间裕量?(实践篇) 保持时间,就简短一点。 总之,...

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

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

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

保持时间,就简短一点。

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

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

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

如下图时序模型以及时序图:
时序模型

时序关系

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

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

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

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

分三步分析:

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

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

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

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

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

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

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

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

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

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

示例路径:

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

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

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

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/120480251

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。