【FPGA】STA静态时序分析

文章目录

  • 一.定义
  • 二.分类
    • 1. 静态时序分析
    • 2. 静态时序分析
  • 三. 概念
  • 四. 时间余量
    • 1.场景
    • 2.建立时间余量
    • 3.保持时间余量

一.定义

时序分析:检查电路是否满足时序要求;

二.分类

1. 静态时序分析

STA,遍历所有的时序路径,根据时序库(.lib文件)计算时序路径的延时,判定是否满足时序要求,会根据最大延时路径和最小延时路径找出违背时序约束的错误;具有速度快,完备性好的特点;

2. 静态时序分析

STD,给定特定激励,根据对应激励下的输出,检查时序是否满足要求;时序结果更准确,但是不完备。

三. 概念

1.分析场景
两级触发器,第二级触发器采集第一级触发器输出的数据;
在这里插入图片描述
在这里插入图片描述
2.建立时间(Tsu)
触发器时钟触发沿到来之,信号需要稳定不变的最小时间;
3.保持时间(Th)
触发器时钟触发沿到来之,信号需要稳定不变的最小时间;
4.数据输出延迟(Tco)
时钟触发沿到来之,到触发器更新输出的时间;
5.数据传输延迟(Tdata)
数据在触发器之间的传输延时,由于数据传输线和组合逻辑引起的延时;
这部分通常包含两部分:传输线延时(Tline)和组合逻辑延时(Tlogic);
6.时钟传输延迟(Tclk)
时钟到达触发器的传输延迟;
7.时钟偏移(Tskew)
时钟到达不同触发器的传输延迟差;
两级触发器场景下的时钟偏移:Tskew = Tclk2-Tclk1;
8.发射沿(Launch Edge)
前一级触发器使用的时钟采样沿;
9.锁存沿(Latch Edge)
后一级(当前级)时钟触发器使用的时钟采样沿;

四. 时间余量

1.场景

场景仍然使用三中所述两级触发器,第一级触发器更新数据后,第二级触发器进行采集;

2.建立时间余量

(1)第二级触发器数据到达时间:
Data_arrived_time = Launch Edge +Tclk1+Tco+Tdata;
说明:
(i)前提是第一级触发器数据已经准备好了
(ii)第一级触发器采样时钟(Launch Edge)要经过时钟传输延迟(Tclk1)到达第一级触发器;
(iii)第一级触发器采样后要经过Tco更新输出数据;
(iv)第一级触发器输出要经过Tdata到达第二级触发器;
(2)要满足建立时间,第二级触发器数据要求到达时间
Data_required_time = LatchEdge+Tclk2-Tsu
说明:
(i)第二级触发器时钟采样沿是锁存沿(Latch Edge)
(ii)锁存沿要经过时钟传输延迟(Tclk2)达到第二级触发器;
(iii)要满足建立时间,第二级触发器的数据,应该提前于存沿(Latch Edge)建立时间(Tsu)时刻;
(3)建立时间余量
Setup slack = Data_required_time - Data_arrived_time
=(LatchEdge-Launch Edge)+(Tclk2-Tclk1)-Tsu-Tco-Tdata
= T + Tskew -Tsu-Tco-Tdata

说明:
建立时间余量:就是数据实际到达的时间,比为满足建立时间而要求的数据到达时间,提前的时间;
T:表示时钟周期,两级触发器,锁存沿(Latch Edge)比发射沿(Launch Edge)滞后一个时钟周期;
时钟传输延迟差(Tclk2-Tclk1)为时钟偏移(Tskew );
要求:
建立时间为正,满足时序要求;

如图:
在这里插入图片描述

3.保持时间余量

(1)第二级触发器输入数据改变时间:
Data_arrived_time = Latch Edge +Tclk1+Tco+Tdata;
说明:
(i)第一级触发器,在发射沿(Launch Edge)更新输出数据,会保持到锁存沿(Latch Edge)采样数据后发生改变;
(ii) 第一级触发器改变数据采样时钟(锁存沿,Latch Edge)要经过时钟传输延迟(Tclk1)到达第一级触发器;
(iii)第一级触发器采样后要经过Tco更新输出数据;
(iv)第一级触发器输出要经过Tdata到达第二级触发器;
(2)要满足保持时间,第二级触发器数据要求输入数据至少的保持时刻
Data_required_time = Latch Edge+Tclk2+Th;
说明:
(i)第二级触发器时钟采样沿是锁存沿(Latch Edge);
(ii)锁存沿要经过时钟传输延迟(Tclk2)达到第二级触发器;
(iii)要满足保持时间,第二级触发器的数据,应该滞后于锁存沿(Latch Edge)保持时间(Tsu)再发送改变;
(3)保持时间余量
Hold slack = Data_arrived_time - Data_required_time
=Tclk1+Tco+Tdata-(Tclk2+Th);
= Tco+Tdata-Th-Tskew

说明:
保持时间余量:就是第二级触发器输入数据实际发送改变的时间,比为满足保持时间而要求的数据改变时间,滞后的时间;
要求:
保持时间为正,满足时序要求;

如图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/767613.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端】HTML+CSS复习记录【5】

文章目录 前言一、padding、margin、border(边框边距)二、样式优先级三、var(使用 CSS 变量更改多个元素样式)四、media quary(媒体查询)系列文章目录 前言 长时间未使用HTML编程,前端知识感觉…

分享 6 款用于管理Docker容器的免费开源工具

Docker 是一个开源平台,可自动执行应用程序的部署、扩展和管理。它使用容器化技术将应用程序及其依赖项打包到软件开发的标准化单元中。 这使得使用容器创建、部署和运行应用程序变得更加容易,容器允许开发人员将应用程序及其所需的所有部分&#xff08…

使用Scrapy进行网络爬取时的缓存策略与User-Agent管理

缓存策略的重要性 缓存策略在网络爬虫中扮演着至关重要的角色。合理利用缓存可以显著减少对目标网站的请求次数,降低服务器负担,同时提高数据抓取的效率。Scrapy提供了多种缓存机制,包括HTTP缓存和Scrapy内置的缓存系统。 HTTP缓存 HTTP缓…

Conmi的正确答案——ESP32-C3开启安全下载模式

IDF版本:4.4.7 注意事项:一旦烧录“安全下载模式”,模组将无法被读取或清理,只能通过eclipse原项目烧录程序进行重新烧录,无法再烧录其他固件。 20240703110201——追加解法,暂时无法解安全下载模式 &…

运营商如何与第三方服务商合作,共同建设PCDN网络?

运营商与第三方服务商合作,共同建设PCDN(P2P CDN)网络是一个复杂且涉及多方面的过程。以下是具体的操作步骤: 一.明确合作目标与需求: 1.运营商与第三方服务商首先需明确合作目标,如提升内容分…

【YOLOv5进阶】——引入注意力机制-以SE为例

声明:笔记是做项目时根据B站博主视频学习时自己编写,请勿随意转载! 一、站在巨人的肩膀上 SE模块即Squeeze-and-Excitation 模块,这是一种常用于卷积神经网络中的注意力机制!! 借鉴代码的代码链接如下&a…

Shiro框架1

入门概述 1 权限的管理 1.1 什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权(被赋予权限)的…

Java 7新特性深度解析:提升效率与功能

文章目录 Java 7新特性深度解析:提升效率与功能一、Switch中添加对String类型的支持二、数字字面量的改进三、异常处理(捕获多个异常)四、增强泛型推断五、NIO2.0(AIO)新IO的支持六、SR292与InvokeDynamic七、Path接口…

【VScode】常用配置

1.indenticator 增加白色竖条,显示方法范围 2.Git Graph 给git变换分支增添颜色区分 3.Vue 系列 vue 系列:给纯白色代码添加 颜色区分 3.eslint eslint警告,比如{ } 只写了半个会标红提示错误 等错误信息提示 需要配置js等页面 非下…

python提取图片中的文字写入excel文件,并打包为exe可执行文件

python提取图片数据写入excel,并打包为exe可执行文件 1. 以下面的图片为例2. python环境需要的依赖包3. 创建交互式窗口4. 读取文件夹下的所有文件并提取数据5. 提取图片中字段的代码6. 打包代码为exe可执行文件安装打包依赖文件运行打包代码 1. 以下面的图片为例 2…

Omniverse、Isaac Sim、Isaac Lab入门必会之 Nucleus 部署

新手入门Omniverse、Isaac Sim、Isaac Lab时经常发现,要想跑通例程,总是usd等资源加载不出来,软件傻傻的进程阻塞卡在那里,点两下就崩溃,这对新手来说非常的不友好,这都是由于没有安装 Nucleus 或者 Nucle…

14. Java中 volatile 关键字

1. 前言 本节内容主要是对 volatile 关键字进行讲解,具体内容点如下: volatile 关键字概念介绍,从整体层面了解 volatile 关键字;volatile 关键字与 synchronized 关键字的区别,这是本节的重点内容之一,了…

一种非凸全变差正则化的信号降噪方法(以模拟信号和轴承振动信号为例,MATLAB)

以旋转机械振动信号为例,由于旋转机械运行中背景噪声较强,振动信号需要进行降噪处理。常用的小波阈值降噪会在信号的不连续处产生虚假的波峰和伪吉布森震荡,而奇异值分解SVD去噪容易产生虚假分量,全变差去噪则不会出现这样的情况&…

解锁科研新动力,QtiPlot for Mac——您的数据可视化与分析首选工具!

QtiPlot for Mac,一款专为科研工作者和数据分析爱好者打造的数据可视化与分析神器,它如同科研道路上的得力助手,让复杂的数据分析变得简单直观。🔬📈 这款软件拥有强大的数据导入与处理能力,支持多种数据格…

Unity 3D软件下载安装;Unity 3D游戏制作软件资源包获取!

Unity3D,它凭借强大的功能和灵活的特性,在游戏开发和互动内容创作领域发挥着举足轻重的作用。 作为一款顶尖的游戏引擎,Unity3D内置了先进的物理引擎——PhysX。这一物理引擎堪称业界翘楚,能够为开发者提供全方位、高精度的物理模…

如何使用python网络爬虫批量获取公共资源数据教程?

原文链接:如何使用python网络爬虫批量获取公共资源数据教程?https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608240&idx4&snef281f66727afabfaae2066c6e92f792&chksmfa826657cdf5ef41571115328a09b9d34367d8b11415d5a5781dc4c…

【C++】vector的底层原理及实现

文章目录 vector的底层结构迭代器容量操作size()capacity()reserve()resize() 默认成员函数构造无参构造函数带参构造函数 析构拷贝构造赋值重载 operator[ ]插入删除操作insert()任意位置插入erase()任意位置删除push_back()尾插pop_back()尾删 vector的底层结构 我们的目的不…

海外注册 | 欧盟医疗器械法规下免除临床试验的条件与要求

在欧盟医疗器械法规(MDR)的严格监管下,植入性医疗器械和III类医疗器械通常需要进行临床试验来证明其安全性和性能。 然而,MDR也规定了一些特定情况下免除临床试验的可能性。以下是免除临床试验的条件和要求的详细说明&#xff1a…

offer150-16:数值的整数次方

题目描述:实现函数double Power(double base,int exponent),求base 的exponent次方。不得使用库函数,同时不需要考虑大数问题。 分析,题目要求实现库函数pow(),由于不需要考虑大数问题,不必担心溢出,那么就需要对输入的各种情况进…

CesiumJS【Basic】- #053 绘制渐变填充多边形(Entity方式)-使用canvas

文章目录 绘制渐变填充多边形(Entity方式)-使用canvas1 目标2 代码2.1 main.ts绘制渐变填充多边形(Entity方式)-使用canvas 1 目标 使用Entity方式绘制绘制渐变填充多边形 - 使用canvas 2 代码 2.1 main.ts import * as Cesium from cesium;const viewer = new Cesium…