当前位置: 首页 > news >正文

静态时序分析与时序约束

一、时序分析的基本概念

1. 时钟

理性的时钟模型是一个占空比为50%且周期固定的方波:

 实际电路中输入给FPGA的晶振时钟信号是正弦波:

 2. 时钟抖动

Clock Jitter,时钟抖动,相对于理想时钟沿,实际时钟存在不随时钟存在积累的、时而超前、时而滞后的偏移。

 3. 时钟偏差

Clock Skew:时钟偏差,同一个时钟域内的时钟信号到达数字电路各个部分所用时间的差异。

 4. 建立时间和保持时间

建立时间,Setup Time,Tsu,时钟上升沿之前数据必须稳定的最短时间。若不满足建立时间,数据无法进入寄存器,寄存器的数据采样会失败。

保持时间,Hold Time,Th,时钟上升沿之后数据必须稳定的最短时间。若不满足保持时间,数据无法进入寄存器,寄存器的数据采样也会失败。

5.  发起沿和采样沿

 rega和regb使用同一个时钟信号,rega在Launch Edge发送数据,regb下一个时钟周期的Capture edge采样到rega送入的数据,reag和regb中间可能还有一些组合逻辑。

二、时序分析的基本公式

1. 时序分析的基本路径

时序分析的基本路径包括:

(1)管脚输入和寄存器之间的路径(pin2reg)

(2)寄存器和寄存器之间的路径(reg2reg)

(3)寄存器和管脚输出之间的路径(reg2pin)

(4)管脚输入和管脚输出之间的路径(pin2pin)

2. 数据到达时间和时钟到达时间

(1)数据到达时间(Data Arrival Time)

数据在发送沿发送之后,经过多长时间会到达接收寄存器的数据端口,即到达regb的D端口的时刻。

(a)通常选择launch edge作为零时刻基准点

(b)数据经过Tco时间,到达Q端口。

(c)数据从Q端口,要经过组合逻辑,以及布线的线延时才能到达接收端的D端口。

 

3. 建立时间的裕量

建立时间的裕量, Setup slack

建立裕量为正值说明两个寄存器有合格的建立关系,建立裕量为负值说明两个寄存器建立关系不满足,会导致采样出错。

 数据到达reg2 D端的时间为:

启动沿时间+Tclk1+Tco+Tdata

= 0 ns + 3.2ns + 0.2ns + 0.6ns

= 4ns

reg2能够保证采样正确,所要求数据到达的时刻

Tclk + Tclk2 - Tsu

= 10ns + 2ns - 1.4ns

= 10.6ns

建立裕量:

Setup Slack = Data Required Time - Time Arrival Time

= 10.6 ns - 4 ns

= 6.6 ns

4. 保持时间的裕量

保持时间的裕量,Hold Slack

保持裕量为正值说明两个寄存器有合格的保持关系,保持裕量为负值说明两个寄存器保持关系不满足,也会导致采样出错。

 数据保持时间 Data Hold Time

= 启动沿 + Tclk1 + Tco + Tdata + 数据周期时间

= 0 ns + 3.2 ns + 0.2 ns + 0.6 ns + 10 ns

= 14 ns

数据锁存时间 Data Required Time 

= 锁存沿 + Tclk2 + Th

= 10 ns + 2 ns + 1.4 ns

= 13.4 ns

保持裕量 Hold Slack

= 14 ns - 13.4 ns

= 0.6 ns

 

http://www.lryc.cn/news/120051.html

相关文章:

  • YOLOv5基础知识入门(3)— 目标检测相关知识点
  • 10个AI绘图生成器让绘画更简单
  • 干货满满的Python知识,学会这些你也能成为大牛
  • 【Leetcode】155. 最小栈、JZ31 栈的压入、弹出序列
  • 网络安全(黑客技术)自学笔记
  • iOS学习—制作全局遮罩
  • GRPC-连接池-GPT
  • YOLOv5、YOLOv8改进: GSConv+Slim Neck
  • 重发布选路问题
  • LinearAlgebraMIT_9_LinearIndependence/SpanningASpace/Basis/Dimension
  • Redission 解锁异常:attempt to unlock lock, not locked by current thread by node id
  • AIGC技术揭秘:探索火热背后的原因与案例
  • 【Linux】总结1-命令工具
  • Git远程仓库
  • Redis缓存设计
  • 华熙生物肌活:2023年版Bio-MESO肌活油性皮肤科学护肤指南
  • mysql索引介绍
  • 说一下什么是tcp的2MSL,为什么客户端在 TIME-WAIT 状态必须等待 2MSL 的时间?
  • 更新spring boot jar包中的BOOT-INF/lib目录下的jar包
  • 纯前端 -- html转pdf插件总结
  • 数据结构和算法基础
  • JS二维数组转化为对象
  • 通过 EPOLL 解决客户端同时连接多服务器的问题
  • JavaScript数据结构【进阶】
  • jQuery编程学习3(jQuery 其他方法: jQuery 拷贝对象、 jQuery 多库共存、jQuery 插件)
  • jvm——垃圾回收机制(GC)详解
  • 计算机组成原理-笔记-第七章
  • 【Linux】网络基础2
  • ​可视化绘图技巧100篇进阶篇(四)-三维簇状柱形图(3D Clustered Bar Chart)
  • 架构设计第八讲:架构 - 理解架构的模式2 (重点)