首页 > 其他分享 >时序约束学习拓展(一):偏移和Slack

时序约束学习拓展(一):偏移和Slack

时间:2024-04-15 17:14:47浏览次数:30  
标签:Slack Tdata 时序 Tco 偏移 Th 寄存器 Tsu

已知:(来自单刀)

Setup Slack = Data Required Time – Data Arrival Time,

即Setup Slack = (latch edge + Tclk2 - Tsu ) – (launch edge + Tclk1 + Tco +Tdata )

= (latch edge - launch edge) +(Tclk2 - Tclk1 )- (Tsu  + Tco +Tdata)

=  Tperiod  + Tskew - (Tsu  + Tco +Tdata)。

Hold Slack = Data Arrival Time - Data Required Time,

即Hold Slack = (latch edge + Tclk1 + Tco +Tdata)  - (latch edge + Tclk2 + Th)

= (Tco +Tdata - Th)-(Tclk2 - Tclk1)+ (latch edge - latch edge)

= (Tco +Tdata - Th) - Tskew 。

根据上文有(1)和(2)两式:

  • 建立时间裕量:Setup Slack = Tperiod  + Tskew - (Tsu  + Tco +Tdata)----(1)
  • 保持时间裕量:Hold Slack = (Tco +Tdata - Th) - Tskew  ----(2)

根据上文有(1)和(2)两式:

  • 建立时间裕量:Setup Slack = Tperiod  + Tskew - (Tsu  + Tco +Tdata)----(1)
  • 保持时间裕量:Hold Slack = (Tco +Tdata - Th) - Tskew  ----(2)

其中,Tperiod 是时钟周期;Tskew 是寄存器之间的时钟偏差,产生的原因是时钟到达不同的寄存器的时钟端口有延迟;Tsu 与 Th分别是寄存器的建立时间要求和保持时间要求,这是寄存器的固有属性,只和FPGA的型号相关;Tco 是从寄存器的输入端口到输出端口所需要的延时时间,同样是寄存器的固有属性;Tdata是寄存器之间的组合逻辑和走线延迟等之和,这与具体设计有关,平时我们大多都是通过减少Tdata来使得时间裕量为正,以此实现设计的时序收敛。

Tskew实际上是一个可以被忽略掉的较小值(走了全局时钟树),所以把它去掉,再对 (1)和(2)两式做变形(Slack>0需被满足),然后有(3)和(4)两式 

  • Tperiod >(Tsu + Tco +Tdata)----(3)
  • (Tco +Tdata ) > Th ----(4)

(3)式子中的(Tsu  + Tco +Tdata)代表数据从源寄存器到目的寄存器所消耗的时间,

即(Tsu + Tco +Tdata)< Tperiod 表示数据从源寄存器的采样时刻传到目的寄存器的采样时刻,不能超过一个时钟周期。

如果数据传输超过一个时钟周期,那么就会导致目的寄存器器开始采样的时候,从源寄存器出发的数据还没有传过来。

对于(4)式可以两边同时加上Tsu  ,得到(5)式:

  • (Tco +Tdata + Tsu  ) > (Th + Tsu)   ----(5)

(5)式子中的(Tsu  + Tco +Tdata)代表数据从源寄存器到目的寄存器所消耗的时间,(Th + Tsu)是建立时间和保持时间之和,即寄存器的采样窗口时间

那么(Tsu + Tco +Tdata) > Th + Tsu表示数据从源寄存器的采样时刻传到目的寄存器的采样时刻,至少要大于寄存器的采样窗口。

假如数据传输时间不大于采样窗口,则意味着数据的传输是特别快的,有可能目的寄存器开始采样时,源寄存器的采样仍没有结束,如果这个时候输入端数据有变化,那么不仅源寄存器处于亚稳态,目的寄存器也将处于亚稳态!

所以,数据传输延时既不能太大以至于超过一个时钟周期,也不能太小以至于小于触发器采样窗口的宽度。

这就是静态时序分析的物理意义了。

时钟偏移和Slack

但实际上Tperiod来自于LATCH EDGE - LATCH EDGE;

如果他们的时钟相位存在偏斜,例如:右移了45°,那么LATCH EDGE - LATCH EDGE其实是9/8个Tperiod;

也就是额外多出了1/8个Period的建立时间余量。

 

标签:Slack,Tdata,时序,Tco,偏移,Th,寄存器,Tsu
From: https://www.cnblogs.com/VerweileDoch/p/18136466

相关文章

  • InfluxDB时序数据库图形用户界面可视化工具(influxdb-gui)
    说明之前开发了一款TDengine的GUI程序,出于兴趣,简单搞个InfluxDB的复制版,类似Navicat,目前基础操作功能已满足,后续看情况,可以继续扩展功能。介绍InfluxDB-GUI是一款功能全面、操作简便的influxdb时序数据库图形界面工具,V1.0.0目前支持influxdb版本列表如下:influxdb1.8.10版本......
  • 时序数据分解
    时序数据  时序数据作为与时间强相关数据,有着独特的特点,但是也有很多通用的数据的性质。1.通过数学期望与协方差进行特征相关性的计算;2.平稳性检验  定义上的平稳性指的是固定时间和位置的概率分布与所有时间和位置的概率分布相同的随机过程。其数学期望和方差这......
  • 操作系统综合题之“采用二级页表的分页存储管理方式,计算页目录号的位数 和 页大小,给定
    一、问题:某计算机系统的主存按字节编址,逻辑地址和物理地址都是32位,其内存管理采用两级页表的分页存储管理方式。逻辑地址中页号位10位,页内偏移地址为10位。该计算机系统的两级页表结构如下图所示,图中数值均为十进制数1.页目录号的位数为多少?页的大小为多少KB?2.如果页目录项大小......
  • 操作系统综合题之“采用二级页表的分页存储管理方式,计算页目录号的位数 和 页的大小,给
    一、问题:某计算机系统的主存按字节编址,逻辑地址和物理地址都是32位,其内存管理采用练级页表的分页存储管理方式。逻辑地址中页号为10位,页内偏移地址为12位。该计算机系统的两级页表结构如下图所示,图中数值均为十进制数1.页目录号的位数为多少?页的大小为多少KB?2.如果页目录项大小......
  • [ida] 结构偏移
    IDA帮助:移位指针备忘定义__shifted()指针有时在二进制代码中,我们会遇到指向结构中间的指针。这样的指针通常不存在于源代码中,而是一个优化编译器可能会引入它们以使代码更短或更快。可以使用移位指针来描述此类指针。移位的指针是一个常规指针,其中包含有关名称的其他信......
  • 时序数据的可视化(1)
    一、 项目目标:理解时序数据的特点和类别,掌握时序数据可视化的方法以及基本图形的绘图方法二、学生知识和能力要求(1)掌握时序数据的特点及可视化要求。(2)掌握折线图的绘制方法。三、工具与设备1、操作系统:Windows112、软件:anaconda、jupyternotebook四、实施步骤与......
  • (3)计数器&时序逻辑
    设计思路: 设计代码:RTL:moduleled_flash(clk,rst_n,led);inputclk,rst_n;outputregled=0;parametermax=24999999;//(计数的最大值)reg[24:0]cnt=0;always@(posedgeclkornegedgerst_n)if(!rst_n)cnt<=0......
  • 下列关于静态,动态时序模拟的优缺点说法错误的是()
    A、静态时序分析是提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求B、静态时序分析可以对芯片设计进行全面的时序验证和功能验证,验证每一条路径,发现时序的重大问题,比如建立时间和保持时间冲突,slowpath以及过大的时钟......
  • 时序预测 | Python实现VMD-CNN-LSTM时间序列预测
    时序预测|Python实现VMD-CNN-LSTM时间序列预测目录时序预测|Python实现VMD-CNN-LSTM时间序列预测预测效果基本介绍模型描述代码设计预测效果基本介绍VMD-CNN-LSTM是一种混合深度学习模型,结合了变分模态分解(VMD)、卷积神经网络(CNN)和长短期记忆......
  • Bootloader/IAP零基础入门(1.1) —— 设计一个Bootloader引导进入APP的程序,包含中断向量
    前言(1)如果有嵌入式企业需要招聘湖南区域日常实习生,任何区域的暑假Linux驱动/单片机/RTOS的实习岗位,可C站直接私聊,或者邮件:[email protected],此消息至2025年1月1日前均有效(2)在上一章节中,我们详细介绍了如何让Bootloader引导进入APP程序。但是上一章节的工程是无法使用......