PT中的report_timing的计算--实例

server/2024/12/21 8:30:54/

目录

    • 1.建立时间与保持时间
    • 2.输入延迟和输出延时
    • 3.时序计算实战
      • 3.1.输入延时:最大输入延时
      • 3. 2.输入延迟:最小输入延迟
      • 3.3.输出延迟:最大输出延迟
      • 3.4.输出延迟:最小输出延迟
      • 3.5.建立时间/保持时间和输入延时/输出延时之间的关系

1.建立时间与保持时间

建立时间指的是时钟信号变化之前数据保持不变的时间
在这里插入图片描述
保持时间指的是时钟信号变化之后数据保持不变的时间
在这里插入图片描述
时间裕量是指在时序路径上要求的时间和实际花费的时间的差。如果裕量的值为正值或者0,则说明设计电路的时机时序符合约束条件,如果为负值则说明不符合条件。
在这里插入图片描述

2.输入延迟和输出延时

为保证片外的触发器可以正确地输入/输出,不仅要保证片内的延时满足时序要求,而且要保证片内外延时总和满足时序要求。在综合时,设计者一般根据系统应用需要指定输入/输出延时,并作为参数输入给综合工具,综合工具会自动调整片内逻辑,以满足整体的时序要求。
在这里插入图片描述
下图所示为如何定义输入延时和输出延时的波形图实例。时序模块有输入信号DATA_IN和输出信号DATA_OUT,输入信号在时钟沿之后20ns达到稳定,而输出信号需要再时钟沿之前15ns到达。
在这里插入图片描述

3.时序计算实战

在这里插入图片描述

3.1.输入延时:最大输入延时

对于电路单元B2中的触发器F3
数据到达时间(Data arrival time):
Clocking Rising Edge:Incremental: 0.0;Total 0.0 ##假设参考时钟的有效沿在0.0,上升沿是有效沿。
Clock Latency:Incremental: 0.5;Total 0.5 ##假设时钟源延迟是0.5
Clock Network Latency:Incremental: 0.7;Total 1.2 ##假设时钟网络延时是0.7
Input Delay:Incremental: 6.0;Total 7.2 ##假设最大输入延时是6.0
Delay through C3:Incremental:1.2;Total 8.4 ##假设通过C3的最大延时是1.2
Data available at F3 is D pin: 8.4
数据要求时间(Data required time):
Clock Rising Edge:Incremental:10.0;Total 10.0##假设触发触发器时钟的下一个上升沿为10
Clock Latency:Incremental:0.5;Total 10.5
Clock Network Latency:Incremental:0.7;Total 11.2
Setup requirement:Incremental:0.3;Total 10.9 ##假设建立时间是0.3
Clock Uncertainty:Incremental 0.2;Total 10.7 ##假设时钟不确定度0.2
Data required at:10.7
Slack = 10.7-8.4=2.3
因为裕量是正值,所以表示在这条路径上可以满足建立时序。

在这里插入图片描述

网络+路径+输入<周期+网络-建立-不确定
周期-输入-路径-不确定>建立

3. 2.输入延迟:最小输入延迟

对于电路单元B2的触发器F3
数据到达时间(Data arrival time):
Clocking Rising Edge:Incremental: 0.0;Total 0.0 ##假设参考时钟的有效沿在0.0,上升沿是有效沿。
Clock Latency:Incremental: 0.5;Total 0.5 ##假设时钟源延迟是0.5
Clock Network Latency:Incremental: 0.7;Total 1.2 ##假设时钟网络延时是0.7
Input Delay:Incremental: 6.0;Total 7.2 ##假设最小延迟和最大延迟相同
Delay through C3:Incremental:0.9;Total 8.1 ##假设通过C3的最小延时是0.9
Data available at F3 is D pin: 8.1
数据要求时间(Data required time):
Clock Rising Edge:Incremental:0.0;Total 0.0
Clock Latency:Incremental:0.5;Total 0.5
Clock Network Latency:Incremental:0.7;Total 1.2
Setup requirement:Incremental:0.3;Total 1.5 ##假设保持时间是0.3
Clock Uncertainty:Incremental 0.2;Total 1.7 ##假设时钟不确定度0.2
Data required at:1.7
Slack = 8.1-1.7=6.4
因为裕量是正值,所以表示在这条路径上可以满足保持时序。
在这里插入图片描述

网络+路径+输入>网络+保持+不确定
路径+输入-不确定>保持

3.3.输出延迟:最大输出延迟

对于电路单元B1的端口O1:
数据到达时间(Data arrival time):
Clocking Rising Edge:Incremental: 0.0;Total 0.0 ##假设参考时钟的有效沿在0.0,上升沿是有效沿。
Clock Latency:Incremental: 0.5;Total 0.5 ##假设时钟源延迟是0.5
Clock Network Latency:Incremental: 0.7;Total 1.2 ##假设时钟网络延时是0.7
Delay through C1:Incremental:1.5;Total 2.7 ##假设通过C1的最大延时是1.5
Data available at F3 is D pin: 2.7
数据要求时间(Data required time):
Clock Rising Edge:Incremental:10.0;Total 10.0##假设触发触发器时钟的下一个上升沿为10
Clock Latency:Incremental:0.5;Total 10.5
Clock Network Latency:Incremental:0.7;Total 11.2
Setup requirement:Incermental: 6.0;Total 5.2 ##假设最大输出延时是6.0
Clock Uncertainty:Incremental 0.2;Total 5.0 ##假设时钟不确定度0.2
Data required at:5.0
Slack = 5.0-2.7=2.3
因为裕量是正值,所以表示在这条路径上可以满足建立时序。

3.4.输出延迟:最小输出延迟

对于电路单元B1的端口O1:
数据到达时间(Data arrival time):
Clocking Rising Edge:Incremental: 0.0;Total 0.0 ##假设参考时钟的有效沿在0.0,上升沿是有效沿。
Clock Latency:Incremental: 0.5;Total 0.5 ##假设时钟源延迟是0.5
Clock Network Latency:Incremental: 0.7;Total 1.2 ##假设时钟网络延时是0.7
Delay through C1:Incremental:0.5;Total 2.7 ##假设通过C1的最小延时是1.5
Data available at F3 is D pin: 2.7
数据要求时间(Data required time):
Clock Rising Edge:Incremental:0.0;Total 0.0
Clock Latency:Incremental:0.5;Total 0.5
Clock Network Latency:Incremental:0.7;Total 1.2
Setup requirement:Incermental: 6.0;Total -4.8 ##假设最小输出延时是6.0
Clock Uncertainty:Incremental 0.2;Total -4.6 ##假设时钟不确定度0.2
Data required at:-4.6
Slack = 1.7-(-4.6)=6.3
因为裕量是正值,所以表示在这条路径上可以满足保持时序。

3.5.建立时间/保持时间和输入延时/输出延时之间的关系

(1)最大输入/输出延时路径裕量大于0,说明满足建立时间。最小输入/输出延时路径裕量大于0,说明满足保持时间。
(2)对于建立时间,要求数据必须在要求时间之前有效,因此裕量=数据要求时间-数据有效时间
对于保持时间,要求数据在要求时间之后有效,因此裕量=数据有效时间-数据要求时间
(3)因为要求数据在下一个边沿采样有效,所以建立时间使用时钟的下一个边沿,因为要求数据不能干扰当前的边沿采样,所以保持使用的是时钟的当前边沿。
(4)不确定度会使得裕量减少。


http://www.ppmy.cn/server/151902.html

相关文章

【漏洞复现】CVE-2023-29944 Expression Injection

漏洞信息 NVD - cve-2023-29944 Metersphere v1.20.20-lts-79d354a6 is vulnerable to Remote Command Execution. The system command reverse-shell can be executed at the custom code snippet function of the metersphere system workbench. 背景介绍 MeterSphere is…

[Unity Shader] 【图形渲染】Unity Shader的种类1-深入理解表面着色器(Surface Shader)

在 Unity 中,Shader 是图形渲染管线的核心部分,而表面着色器(Surface Shader)是一种高级抽象形式的着色器,使得编写和管理着色器变得更加简便。尽管表面着色器背后实际上是使用顶点/片元着色器(Vertex/Fragment Shader)进行渲染,但表面着色器的编写方式大大减少了开发者…

【Linux】磁盘空间莫名消失,找不到具体原因的思路

磁盘空间莫名消失&#xff0c;找不到具体原因的思路 先说下常见的几种原因&#xff1a; 1、删除的文件未释放空间 2、日志或过期文件未及时清理 3、inode导致 4、隐藏文件夹或者目录 6、磁盘碎片 最后一种单独介绍。 环境&#xff1a;情况是根分区&#xff08;/&#xf…

技术速递|.NET 9 简介

作者&#xff1a;.NET 团队 排版&#xff1a;Alan Wang 今天&#xff0c;我们非常激动地宣布 .NET 9的发布&#xff0c;这是迄今为止最高效、最现代、最安全、最智能、性能最高的 .NET 版本。这是来自世界各地数千名开发人员又一年努力的成果。这个新版本包括数千项性能、安全和…

如何在 Ubuntu 22.04 服务器上安装 Jenkins

简介 Jenkins 是一个非常流行的免费自动化工具&#xff0c;每个人都应该了解它。DevOps 工程师使用它来自动化代码构建、测试和部署。本文将重点介绍如何在新的 Ubuntu LTS 版本&#xff0c;即 Ubuntu 22.04 中安装 Jenkins。 但在此之前&#xff0c;让我们快速讨论一下 Jenk…

Electron -- Electron Fiddle(一)

Electron Fiddle 是一个由 Electron 团队开发的开源工具&#xff0c;它允许开发者快速创建、运行和调试 Electron 应用。这个工具提供了一个简洁的界面&#xff0c;使用户无需配置复杂的开发环境&#xff0c;就能快速体验和学习 Electron。强烈建议将其安装为学习工具。 学习它…

基于 SOME/IP 的动态服务发现与调用:原理、实现与示例全解析

一、 SOME/IP 动态服务发现与调用例子代码 功能描述 服务发布程序: 提供两个远程服务,每个服务用唯一的 Service ID 和 Method ID 标识。根据客户端请求的 Service ID 和 Method ID 调用对应的处理函数。使用 Skeleton 实现服务的注册和响应。服务发现与调用程序: 动态发现…

WEB语义化的新探索:浅析LLMs.txt

【引】有人迷恋使用大模型生成各种有趣的内容&#xff0c; 有人沉醉于大模型相关技术的探索&#xff0c;没有对错&#xff0c;只在于你的乐趣所在。 一项名为 llms.txt 的新提案标志了一些非同寻常的东西的出现: 一个Web网站不仅为人类读者服务&#xff0c;而且为人工智能提供服…