STA学习笔记-0
如今的逻辑设计复杂度和工作频率要求越来越高。为了保证设计稳定可靠,必须对设计附加时序约束,对综合实现结果进行时序分析。
导言
时序约束:主要用于规范设计的时序行为,表达设计者期望满足的时序条件,指导综合和布局布线阶段的优化算法等。
时序约束的作用:1、提高设计的工作频率。 2、获得正确的时序分析报告。
静态时序分析(英语:Static Timing Analysis, STA),或称静态时序验证,是电子工程中,对数字电路的时序进行计算、预计的工作流程,该流程不需要通过输入激励的方式进行仿真。
静态时序分析是相对于“动态时序仿真”而言,动态时序仿真占用的时间非常长,效率低下。因此STA成为最常用的分析、调试时序性能的方法和工具。分析每个时序路径的延迟,计算出设计的最高频率,发现时序违规。
STA的目的仅聚焦于时序性能的分析,并不涉及设计的逻辑功能。
本文将介绍STA的理论和方法,后期配合相关时序分析题目检验所学的知识。
下面将介绍时序概念:周期、最大时钟频率、时钟建立时间、时钟保持时间、时钟到输出的延时、管脚到管脚的延时、Slack和时钟偏斜。

图中Tclk是时钟的最小周期。Micro Tco 是寄存器固有的时钟输出延时,Tlogic 是同步元件之间的组合逻辑延时,Tnet是网线延迟,Micro Tsu 是寄存器固有的时钟建立时间,Tclk_skew 是时钟偏斜。
最小周期和最高频率计算如下:

fmax能综合体现设计的时序性能,是最重要的时序指标之一。
建立时间:输入信号应该提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间:Setup time.如果不满足Setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
举个例子:坐火车时需要提前到站检票安检,而不是一到火车站就可以乘坐。必须的提前到站的时间就是建立时间。
保持时间:保持时间是测试芯片对输入信号和时钟信号之间的时间要求。保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间(数据保持不变以便能够稳定读取)。

时钟建立时间 Clock Setup Time

Micro Tsu 是寄存器固有的时钟建立时间,触发器固有属性,通常小于1ns。
时钟保持时间 Clock Hold Time

Micro Th 是寄存器固有的时钟保持时间,触发器固有属性,通常小于1ns。
时钟输出延时 Clock Output Delay
定义:指的是在时钟有效沿到数据有效的最大时间间隔。

Micro Tco 是寄存器内部延时参数,触发器固有属性,通常小于1ns。
引脚到引脚的延时 Pin to Pin Delay

时钟偏斜 Clock Skew


以下面为例,静态时序分析:


launch edge : 时钟源第一个上升沿对应时刻,数据发送沿。STA以该时刻为0时刻。
latch edge : 时钟源第二个上升沿对应时刻,数据接收沿。STA以该时刻为结束时刻。
Tsu :建立时间。 Th :保持时间。 Tco : 时钟输出延时。 Tdata : 两个REG中组合逻辑延时。 Tskew: 时钟偏斜。




STA分析核心公式:T+Tskew-Tco-Tdata-Tsu>=0 满足此不等式,即可判断是否满足建立时间裕量,即满足时序要求。

保持时间约束条件:Tco+Tdata-Tskew-Th>=0

参考资料:1、建立时间_百度百科 (baidu.com)
3、Intel FPGA/CPLD设计
4、(105条消息) 静态时序分析(STA)概念 例题_昨日傍晚的博客-CSDN博客_静态时序分析题目
STA学习笔记-0的更多相关文章
- 驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址
驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址 最近重新看了乾龙_Heron的<ARM 上电启动及 Uboot 代码分析>(下简称<代码分析>) ...
- ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录
放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr ...
- boost 学习笔记 0: 安装环境
boost 学习笔记 0: 安装环境 最完整的教程 http://einverne.github.io/post/2015/12/boost-learning-note-0.html Linux 自动 ...
- JavaScript学习笔记[0]
JavaScript学习笔记[0] 使用的是廖雪峰JavaScript教程. 数据类型 Number 表示数字,不区分浮点整形. === 比较时不转化数据类型. == 反之. NaN与任何值都不想等, ...
- Spark学习笔记0——简单了解和技术架构
目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...
- 驱动开发学习笔记. 0.04 linux 2.6 platform device register 平台设备注册 1/2 共2篇
驱动开发读书笔记. 0.04 linux 2.6 platform device register 平台设备注册 1/2 共2篇下面这段摘自 linux源码里面的文档 : Documentatio ...
- 驱动开发学习笔记. 0.02 基于EASYARM-IMX283 烧写uboot和linux系统
驱动开发读书笔记. 0.02 基于EASYARM-IMX283 怎么烧写自己裁剪的linux内核?(非所有arm9通用) 手上有一块tq2440,但是不知道什么原因,没有办法烧boot进norflas ...
- 驱动开发学习笔记. 0.06 嵌入式linux视频开发之预备知识
驱动开发读书笔记. 0.06 嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...
- 驱动开发学习笔记. 0.05 linux 2.6 platform device register 平台设备注册 2/2 共2篇
驱动开发读书笔记. 0.05 linux 2.6 platform device register 平台设备注册 2/2 共2篇 下面这段摘自 linux源码里面的文档 : 内核版本2.6.22Doc ...
- 驱动开发学习笔记. 0.01 配置arm-linux-gcc 交叉编译器
驱动开发读书笔记. 0.01 配置arm-linux-gcc 交叉编译器 什么是gcc: 就像windows上的VS 工具,用来编译代码,具体请自己搜索相关资料 怎么用PC机的gcc 和 arm-li ...
随机推荐
- [MAUI]模仿网易云音乐黑胶唱片的交互实现
@ 目录 创建页面布局 创建手势控件 创建影子控件 唱盘拨动交互 唱盘和唱针动画 项目地址 用过网易云音乐App的同学应该都比较熟悉它播放界面. 这是一个良好的交互设计,留声机的界面隐喻准确地向人们传 ...
- 浏览器发送POST请求、DELETE请求
1.浏览器发送POST请求 方法一: var xml = new XMLHttpRequest(); var url = "http://127.0.0.1:8800/admin/user& ...
- OFFICE-利用Word邮件合并功能联动编辑《目标责任成本调整说明》
正文 00.开始以及目标 0.1 开始 众所周知的原因,X建工的很多文档都提供了一个填写模板,这是个好事.但是捏,当他们把模板放下来要来填数的时候,你会发现所有的数据,都是在不同的文档中搬来搬去,这点 ...
- 一个好用的java图片缩放及质量压缩方法
本文中代码来自:http://blog.csdn.net/liuhuanchao/article/details/50527856由于网站需要对上传的图片进行宽度判断缩放和质量压缩,以提升整体加载速度 ...
- Vue中使用富文本编辑器
原文链接:https://blog.csdn.net/qq_45695853/article/details/114635009
- 2023-02-13:力扣数据中心有 n 台服务器,分别按从 0 到 n-1 的方式进行了编号 它们之间以「服务器到服务器」点对点的形式相互连接组成了一个内部集群 其中连接 connections 是
2023-02-13:力扣数据中心有 n 台服务器,分别按从 0 到 n-1 的方式进行了编号 它们之间以「服务器到服务器」点对点的形式相互连接组成了一个内部集群 其中连接 connections 是 ...
- DataGridView数据内容自适应列宽
数据自适应宽度某一列dataGridView1.Columns[@"列名"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCe ...
- Python批量下载鼠标样式,自动化一条龙处理详解
目录 前情提要 爬虫环境 抓包分析请求 编写代码: 展示效果 结束语 前情提要 最近发现一款特别好看的壁纸软件,其中提供了鼠标样式,感觉很好看!很精致!心想肯定是请求下载然后启用鼠标样式, 那么发送请 ...
- flutter apk启动闪退问题
今发布一个flutter apk 安装后启动时老是闪退,经过一遍又一遍查找,发现是指定了so的问题 看多次点击启动 一.比对打包后的apk 在出现该问题后也搜索了不少资料,参考过 https://bl ...
- go for range的坑
package main import "fmt" func main() { ParseStudent() } type student struct { Name string ...