TIMING_03 时序分析原理
由于该系列文章阅读有顺序性,所以请跳转至该系列文章第一篇从头开始阅读,并按照文章末尾指示按顺序阅读,否则会云里雾里,传送门在此: https://blog.csdn.net/qq_33486907/article/details/89380368 《TIMING_01 时序约束与时序分析引导篇》
目录
1 时序分析原理
1.1 发射沿和捕获沿
1.2 4类时序路径(FPGA系统)
1.3 时序路径解析
1.4 数据到达时间(Data Arrival Time)
1.5 时钟到达时间(Clock Arrival Time)
1.6 建立时间情况下的数据需求时间分析(Data Required Time – Set up)
1.7 保持时间情况下的数据需求时间分析(Data Required Time – Hold)
1.8 建立时间和保持时间余量
1.9 余量公式
1.10 为什么会余量为负?
1.11 总结
1 时序分析原理
在学习如何在FPGA中进行时序约束和时序分析之前,首先要先学习时序分析的原理,这一章使用最经典的时序模型开始分析并学习时序分析原理;
1.1 发射沿和捕获沿
(经典时序分析模型)
发射沿(Launch Edge):源端寄存器发送数据的边沿;
捕获沿(Capture Edge):目的端寄存器捕获数据的边沿;
通常情况下捕获沿和发射沿有一个时钟周期的延迟,同时目的端寄存器的捕获沿也是源端寄存器向下一级发送数据的发射沿,这样就构成了一个经典的时序模型,同时源端寄存器和目的端寄存器不用区分是否位于不同的芯片中,分析模型都是一样的;
1.2 4类时序路径(FPGA系统)
时序路径描述 |
名称 |
路径起始点 |
路径终点 |
(1)输入端口到内部时序原件的路径 |
Input Delay |
DeviceA/clk |
rega/D |
(2)内部时序原件之间的路径 |
Data path Delay |
rega/clk |
regb/D |
(3)内部时序原件到输出端口的路径 |
Output Delay |
regb/clk |
DeviceB/D |
(4)端口到端口的时序路径 |
Data path Delay |
Input/dinb c |
Output/doub c |
实际上前3类路径可以视为同一种路径,分析原理是一样的;
1.3 时序路径解析
Path |
Start Point |
End Point |
Source Clock Path |
Clk input port |
Clk pin of launch reg |
Data Path |
Clk pin of launch reg |
Data input pin of capture reg |
Destination Clock Path |
Clk input port |
Clk pin of capture reg |
1.4 数据到达时间(Data Arrival Time)
数据到达时间描述的是:数据发送沿发起之后,数据经过多长时间达到目的寄存器的数据捕获端口; 这里将发送沿作为0时刻基准点。
1.5 时钟到达时间(Clock Arrival Time)
时钟达到时间描述的是:时钟到达目标寄存器时钟输入引脚的时间;
1.6 建立时间情况下的数据需求时间分析(Data Required Time – Set up)
Data Required Time – Set up:目标寄存器捕获数据所需的最短时间;
1.7 保持时间情况下的数据需求时间分析(Data Required Time – Hold)
Data Required Time – Hold:目标寄存器捕获数据后保持稳定所需的最小时间;
1.8 建立时间和保持时间余量
满足建立时间要求的余量:它确保启动的数据及时到达,以满足捕获需求;
满足保持时间要求:它确保捕获数据不会被来自另一个启动边缘的数据损坏。它还可以防止“双时钟”;
1.9 余量公式
余量值为正,则满足时序要求; 余量为负,则不满足时序要求;适用于所有的时序路径:内部、I/O和异步控制;
Data Arrival Time(Hlold) = Data Arrival Time(Setup) + Tclk
1.10 为什么会余量为负?
(1)建立时间余量为负?(建立时间违规)
Setup Slack = Data Required Time( Setup) – Data Arrival Time(Setup)
= ( Clock Arrival Time – Tsu – Set up Uncertainty) - ( Launch Edge + Tclka + Tco + Tdata )
设定Launch Edge = 0 取Launch Edge为0时刻:
上式 = Ts + Tclkb - Set up Uncertainty – Tsu – Tclka – Tco – Tdata
一般 Set up Uncertainty Tsu Tco是寄存器的固有属性(和工艺相关),很难改变; Tdata 过大则成为建立时间违规的最大原因,Tdata 可理解为组合逻辑延迟、线延迟等的综合结果。设计中也往往通过分解组合逻辑的大小来解决建立时间违规的问题。Tclka和Tclkb则是和布局布线相关的参数,在FPGA内部使用全局时钟网络来讲相差是很小的。
注:Ts = 一个时钟周期的时间长度
(2)保持时间为负?(保持时间为例)
Hold Slack = Data Arrival Time ( Hold) – Data Required Time (Hold)
= (Launch Edge + Tclka + Tco + Tdata + Tclk)- (Clock Arrival Time + Th + Hold Uncertainty)
= Launch Edge + Tclka + Tco + Tdata + Ts - Ts - Tclkb – Th - Hold Uncertainty
设定Launch Edge = 0 取Launch Edge为0时刻:
上式 = Tclka + Tco + Tdata - Tclkb – Th - Hold Uncertainty
一般 Hold Uncertainty Th Tco是寄存器的固有属性(和工艺相关),很难改变;但这里并不能理解为Tdata 太小导致了保持时间余量为负,而是Tclkb太大,也就是时钟歪斜(skew)过大导致的。
1.11 总结
Setup Slack = Data Required Time( Setup) – Data Arrival Time(Setup) > 0 ;即 Ts + Tclkb - Set up Uncertainty – Tsu – Tclka – Tco – Tdata > 0 ;假如在FPGA内部忽略时钟歪斜和Set up Uncertainty等因素,可以获得一个基本的建立时间分析模型: Ts > Tco + Tdata + Tsu
不要急着跑,干货在后面,下一篇文章传送门在此:
https://blog.csdn.net/qq_33486907/article/details/89393829
《时序约束的一般步骤》
TIMING_03 时序分析原理相关推荐
- TIMING_02 浅谈时序约束与时序分析
由于该系列文章阅读有顺序性,所以请跳转至该系列文章第一篇从头开始阅读,并按照文章末尾指示按顺序阅读,否则会云里雾里,传送门在此: https://blog.csdn.net/qq_33486907/ ...
- FPGA之道(77)静态时序分析(三)同步时序逻辑的分析原理
文章目录 前言 同步时序逻辑的分析原理 逻辑锥的概念 逻辑锥的划分 逻辑锥的求解 建立时间求解原理 保持时间求解原理 一般逻辑锥的求解 一般建立时间求解 一般保持时间求解 前言 本文来自于<FP ...
- FPGA 之 时序分析
时序分析 时间参数 tsu : setup time , 建立时间 , 指在有效的时间边沿信号到来之前, 端口D上数据持续稳定不变的时间; 建立时间要求 建立时间要求, 指的是寄存器能够正常工作, 在 ...
- IC验证:静态时序分析
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.数字IC设计流程(前端+后端) 二.静态时序分析在芯片设计中的地位 三.静态时序分析的作用 四.静态时序分析过程 ...
- 换种监控姿势:基于深度学习+流处理的时序告警系统
来自:DBAplus社群 作者介绍 左喻灏,新炬网络AIOps高级工程师.拥有丰富的HBase运维经验和专业的机器学习知识,擅长使用人工智能技术解决大数据运维中的实际问题.2019年开始基于各类机器学 ...
- ise 时钟约束_在ISE下分析和约束时序
1. 在ISE下分析和约束时序网络 3.1 ISE的时序约束工具入门ide 像TimeQuest同样,ISE软件工具也有本身的时序约束及分析工具.ISE界面的processes当中,有一个 ...
- 在ISE下分析约束时序
转载:https://blog.csdn.net/yuan1164345228/article/details/38541677 1. 在ISE下分析和约束时序 3.1 ISE的时序约束工 ...
- IC/FPGA一文练完
目录 1.IC基础 1.1 锁存器触发器结构 1.2 建立保持时间 1.3 STA 1.4 CDC 1.5 亚稳态怎么解决 1.6 低功耗 1.7 竞争冒险 1.8 毛刺 1.9 IC设计流程 1.1 ...
- 静态时序分析(原理最清晰版本)
前言:看了非常多静态时序分析的博客和文章,觉得大部分是云里雾里,很多人在照本宣科,所以我决定完全用自己的理解,用人话来写一篇,静态分析的原理是什么. 定义: 摘录自维基百科 建立时间(setup ti ...
最新文章
- C++中max,min函数,以及vector字符未定义问题(未声明的标志符)
- Problem - 4828 Grids
- 初学java小白的疑惑梳理
- 数据库性能怎么提升?
- Apache 服务器的安全策略
- 吴晓波之后,“罗辑思维”冲击科创板IPO!网友笑称单口相声也想上市?
- 数据结构与算法-学习笔记(18)
- 各部件作用计算机,计算机硬件有哪些部件,各部件的作用是什么?
- Ubuntu GitHub操作——使用仓库
- Win10 + Ubuntu20.04 双系统+双硬盘安装
- 控制算法和编程算法_算法中的编程公平性
- 小提琴统计图_小提琴图解读 - 统计学
- 2015年中国云计算市场回顾与展望
- 网络视频服务器与数字硬盘录像机的区别
- Unity开发回合制手游《魔神英雄传-神龙斗士》
- mysql存储过程_mysql存储过程的写法
- Android开发视频教程大总结—23部视频教程
- 过滤器Filter(非常非常重要)
- jsp+servlet实战编写购物商城
- 开源工具 — GridExcel支持无实体类读写Excel文件
热门文章
- SAP Spartacus CurrentProductService返回的null对象
- SAP Spartacus的StorefrontConfig对象
- 使用Java JdbcTemplate对mySQL进行CRUD增删改查操作
- ant build里如何指定classpath
- 汪子熙的SAP技术文章分类合集
- CRM_ORDER_PR_ASSIGN_SELECT_CB
- 使用代码获得Social Media Channel绑定的service url
- SAP CRM产品主数据应用里value node和model node的转换
- SAP ERP里如何创建一个新的material类型
- 微信平台的几种分享方式调研