静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

这篇具有很好参考价值的文章主要介绍了静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

2023.4.11 继续学习STA,前面听的感觉好迷糊,先接着看,到时候回头再看一遍理解
2023.4.12 打卡


静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

一、建立时间检查

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查
Tlaunch + Tcq + Tdp <= Tclk + Tcapture - Tsetup

  • 时钟的发射和捕获延迟时间是很小的,Tcq和Tsu是工艺库决定的,是固定值。要想等式成立,要取左边的最大值来进行判断

建立时间违例的解决方法:

  • 降低时钟频率,增加时钟周期(增加Tclk)
  • 在launch cell路径增加缓冲器,让时钟晚点到来(增加clk skew)
  • 组合逻辑优化或插入流水线,缩短关键路径(减小Tcomb)
  • 选择器件延迟更小的触发器(减小Tcq和Tsu)

1、寄存器到寄存器

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

另外一个路径的时间计算如下,要减去clock uncertainty,使得时序约束更加严格

时钟不确定性,通常来说芯片在制造过程中存在很多的随机的偏差,如果我们此时在建立时间之前再将数据需要稳定的时间提前一些,以此来模拟芯片实际生成中的偏差。如果clock uncertainty 大于零,就会导致一个比较严谨的建立时间时序约束。如果在uncertainty 大于零的情况下,数据依然能够稳定到达,那也就是说这个设计比较安全。

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

2、输入端口到寄存器

这种情况一般定义一个虚拟时钟,再来进行分析
其实是对方框内的芯片进行STA

create_clock -name VIRTUAL_CLKM -period 10 -waveform{0 5}
set_input_delay -clock VIRTUAL_CLKM -max 2.55 [get_ports INVA]

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

第二条路径减去clock uncertainty,再减去建立时间,使得约束严格
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

3、寄存器到输出端口

set_output_delay -clock VIRTUAL_CLKP -max 5.1 [get_ports ROUT]
set_load 0.02 [get_ports ROUT] //除了对输出延时进行约束外,还要对输出负载约束

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

注意这里是T减去输出延时
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

4、输入端口到输出端口

set_input_delay -clock VIRTUAL_CLKM -max 3.6 [get_ports INB]
set_output_delay -clock VIRTUAL_CLKM -max 5.8 [get_ports POUT]

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

该路径时序报告最后结果为负值,说明不满足要求。

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

二、保持时间检查

clock uncertainty:对于建立时间来说,这个值是负数;对于保持时间,这个值是正数(引入这个参数的目的是为了使得时序更加严格,根据实际来判断正负)

保持时间和建立时间检查的区别:

  • 保持时间是在同一时钟边沿进行检查,数据的发射路径和接收路径是同一时钟边沿。建立时间数据捕获路径要比发射路径晚一个时钟周期,不在同一时钟沿检查。
  • 保持时间检查与时钟周期无关。如果要计算一个电路的时钟周期,只能从建立时间去计算。
  • 一般先检查保持时间,建立时间违例修复的方法有很多,而修复保持时间的方法很少。
  • 对于保持时间,上面的数据发射路径的时间要大于下面的捕获时间,数据要维持到捕获之后;而对于建立时间,则是上面发射路径时间要小于捕获路径时间,要求捕获之前数据已经达到了。
  • 当前时钟沿捕获的是上一个时钟沿发射的数据,与此同时,这个时钟沿会发射新的数据,为了不影响捕获上个时钟沿的数据,需要有保持时间检查。在当前时钟沿同时完成捕获数据和发射数据的功能。
  • 保持时间检查取左边的最小值,如果左边的最小值都大于右边,说明时序肯定满足要求
    Tlaunch + Tcq + Tdp >= Tcapture + Thold

保持时间违例的解决方法:

  • 在数据路径上增加buffer(增大Tdp)
  • 选择器件延迟更大的触发器(增加Tcq)
  • 优化时钟路径,让时钟来得更早(相当于减小Tskew)

1、寄存器到寄存器

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

这里用的是arrival time - required time(前者数值大于后者),为了使得用户可以快速根据正负值来判断是否违例。不管是建立时间还是保持时间,都是小于0的时候就表示违例。

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

2、输入端口到寄存器

注意这里设置的输入延时的最小值

set_input_delay -clock VIRTUAL_CLKM -min 1.1 [get_ports INA]

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

3、寄存器到输出端口

set_output_delay -clock VIRTUAL_CLKM -min 2.5 [get_ports ROUT]

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查

4、输入端口到输出端口

set_load -pin_load 0.15 [get_ports POUT]
set _output_delay -clock VIRTUAL_CLKM -min 3.2 [get_ports POUT]
set_input_delay -clock VIRTUAL_CZKM -min 1.8 [get_ports INB]
set_input transition 0.8 [get_ports INB]

静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查
静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查文章来源地址https://www.toymoban.com/news/detail-411322.html

到了这里,关于静态时序分析Static Timing Analysis2——建立时间和保持时间的时序检查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA设计时序分析二、建立/恢复时间

    目录 一、背景知识 1.1 理想时序模型 1.2 实际时序模型     1.2.1 时钟不确定性     1.2.2 触发器特性 二、时序分析 2.1 时序模型图 ​2.2 时序定性分析     之前的章节提到,时钟对于FPGA的重要性不亚于心脏对于人的重要性,所有的逻辑运算都离开时钟的驱动。那是不是

    2024年02月14日
    浏览(29)
  • 静态时序分析与时序约束

    理性的时钟模型是一个占空比为50%且周期固定的方波:  实际电路中输入给FPGA的晶振时钟信号是正弦波: Clock Jitter,时钟抖动,相对于理想时钟沿,实际时钟存在不随时钟存在积累的、时而超前、时而滞后的偏移。 Clock Skew:时钟偏差,同一个时钟域内的时钟信号到达数字电

    2024年02月12日
    浏览(29)
  • 时序分析、时序约束和时序收敛(8)--关于时序路径、时钟悲观度和建立时间/保持时间的一些问题

    目录 写在前面 1、为什么同一条时序路径在报表里的值不一样?

    2024年02月08日
    浏览(34)
  • FPGA时序分析中的建立时间与保持时间(看完就懂)

    总体从时序分析的概念,时序分析模型来分析建立时间与保持时间裕量,通过建立保持时间公式定性分析。 通过分析FPGA设计中各个寄存器之间的数据延时和时钟传输路径的时钟延时的关系,来确保所有寄存器都能正确的寄存数据。 a、寄存器延时Tco:时钟上升沿到达D触发器

    2024年02月08日
    浏览(29)
  • 静态时序分析STA基础

    @ 目录 一、TCL语言和synopsys TCL语言入门 1.1 TCL基本指令 1.2 synopsys TCL常用语言 二、STA基本概念 2.1 时序弧(Timing Arc)与线延迟、单元延迟 2.2 建立时间与保持时间 2.3 时序路径(Timing path) 2.4时钟域(Clock Domains) 2.5 操作条件(Operating Conditions)和 PVT(Process Voltage Temperature)

    2024年02月15日
    浏览(30)
  • 静态时序分析(STA)

    静态时序分析原理 什么是STA 分析(计算)design是否满足timing约束的要求 DFF(sequential cell—有clk的器件)setup/hold需求 复位/设置信号 信号脉冲宽度 门控时钟信号 计算design是否满足DRC的要求 max_capacitance—节点电容 max_transition—信号爬升时间 max_fanout—负载能力有多少 如上图所

    2024年01月23日
    浏览(26)
  • FPGA的时序分析、约束和收敛(8)----关于时序路径、时钟悲观度和建立时间/保持时间的一些问题

    目录 写在前面 1、为什么同一条时序路径在报表里的值不一样?

    2024年02月12日
    浏览(37)
  • 静态时序分析 第三章 标准单元库

       本章将介绍时序信息在 单元库(library cell) 中是如何描述的。这个单元可以是1个 标准单元(standard cell) 、1个 IO缓存器( IO buffer) ,或者 复杂的IP(ItellectualProperty,知识产权)核 ,比如 USB核( USB core) 。    除了时序信息,单元库还包括了其他一些属性 attributes ,比如 单元

    2024年01月16日
    浏览(28)
  • [静态时序分析简明教程(八)]虚假路径

    一个 数字芯片工程师 的 核心竞争力 是什么?不同的工程师可能给出不同的答复,有些人可能提到 硬件描述语言 ,有些人可能会提到对于 特定算法和协议的理解 ,有些人或许会提到 对于软硬件的结合划分 ,作者想说,这些说法, 其实对也不对 ,硬件描述语言,翻来覆去

    2024年02月02日
    浏览(68)
  • 静态时序分析 第二章 基础知识

    目录 1. 逻辑门单元 2. 门单元的时序计算参数         2.1 信号转换延时(transition delay)          2.2 逻辑门延时(logic gate delay) 3.  时序单元相关约束         3.1 建立时间(setup time)         3.2 保持时间(hold time)         3.3 恢复时间         3.4 移除时间      

    2023年04月13日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包