数字IC设计之静态时序分析(STA)

这篇具有很好参考价值的文章主要介绍了数字IC设计之静态时序分析(STA)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

静态时序分析原理
  • 什么是STA

    • 分析(计算)design是否满足timing约束的要求
      • DFF(sequential cell—有clk的器件)setup/hold需求
      • 复位/设置信号
      • 信号脉冲宽度
      • 门控时钟信号
    • 计算design是否满足DRC的要求
      • max_capacitance—节点电容
      • max_transition—信号爬升时间
      • max_fanout—负载能力有多少
        sta时序分析,fpga开发,嵌入式硬件
  • 如上图所示,recovery的复位并不满足要求

  • 为什么只定义了rest上升沿的时间需求,而并不讨论rest的下降沿的时间需求

    • 因为rest其实可以看作一个单稳态过程,其本身并不会一直保持rest状态,而如果rest失效,这种状态反而可以持续性保持,不需要做出约束
      sta时序分析,fpga开发,嵌入式硬件
  • pulse宽度太小导致电路开关反映不及时

  • clk其实也是为了保证功能的正确性,要设定建立和保持过程,保证不要有毛刺出现

  • 时钟门控技术的解读

    • Setup时间和Hold时间是时钟门控技术的两个关键参数。Setup时间是指在时钟信号沿上升之前,输入信号必须稳定的时间;而Hold时间是指在时钟信号沿上升后,输入信号必须保持稳定的时间。通过调整时钟门控技术中的这两个参数,可以确保电路在时钟信号采样之前稳定,并保持稳定直到时钟信号被采样,从而提高电路的可靠性和性能。
    • Clock gating setup/hold是一种时钟门控技术,用于减少系统功耗和提高电路的性能。它的主要目的是确保数据在时钟信号边沿之前稳定,并保持稳定直到时钟信号被采样。在时钟门控技术中,时钟信号只在需要时才被传递到电路的特定部分。当时钟信号未传递到电路时,电路将进入低功耗模式,从而减少了功耗。时钟门控技术可以在保持电路的性能的同时,降低整个系统的功耗。
综合的基本流程介绍
  • 根据RTL design和cell library,把RTL code映射到最基本的各类数字电路器件
  • 根据STA timing constraint,尽量保证map后的gate level design满足timing constraint
  • 尽量把design的面积功耗优化到最小
  • 对DRC进行校正
  • 尽量让gate level的布局布线最小
了解stander cell library
  • 一般来说同种工艺库每种库都会提供slow/typical/fast三种cell(PVT)
  • slow关注setup,fast关注hold
  • 对于不同晶体管的导通电压也提供三种LVT/RVT/HVT(满足时钟频率和功耗之间的平衡关系)
  • 为什么提供不同版本的library
    • 为了满足更多的芯片功耗和速度的优化可能性
  • 为什么要在做STA的同时进行DRC检查
    • 因为stander cell library里面的timing数据是在一定{input_transition, output_loading}范围下仿真/测量得出的,超出此范围,timing数据就不准确了
      sta时序分析,fpga开发,嵌入式硬件
clock相关的概念
  • clock需要明确一点,clock由于受到工艺影响,存在不稳定的波动
  • clock tree
    • clk如果驱动多个DFF,存在一条clk输入到DFF端的clk存在不同的误差,通过clock tree可以实现对多个DFF设备进行同步时钟的提供
  • clock skew
    • 同一个时钟的同一个沿,到达不同DFF的时间差异
      sta时序分析,fpga开发,嵌入式硬件
STA术语

sta时序分析,fpga开发,嵌入式硬件

  • 对于STA分析中的哪些可以作为一个path的start or end呢
    • start
      • 输入的ports
      • 时序器件的clock pins
    • end
      • 输出output ports
      • 时序器件的data pins
      • 时序器件的clock pins
setup/hold check计算方法
  • setup所定义的范围
    • 对于前一个寄存器在clk0上升沿发出的数据,必须要在clk1上升沿被后一个寄存器看到
    • 即在clk之内保证数据发送
  • hold所定义的范围
    • 对于前一个寄存器在clk0上升沿发出的数据,不能被后一个寄存器的clk0上升沿看到
  • setup具体计算示意
    • 思路
      • 明确得到第一个寄存器到第二个寄存器之间的传输时间
      • 明确clk0和clk1之间的时间
      • 两者做出比较
    • 可视化解读
      sta时序分析,fpga开发,嵌入式硬件

sta时序分析,fpga开发,嵌入式硬件

  • 标注

    • clk_latency表示clk前级输入的延迟
    • clk_path_delay表示clk路径的延迟
    • ck_to_q表示数据搬移的延迟
    • logic_delay组合逻辑的延迟
    • dff_setup在lib中根据参数查找的setup
    • clk_uncertainty自定义可能的延迟
  • 最终需要满足的条件

    • data_arrival_time <= data_required time
      sta时序分析,fpga开发,嵌入式硬件
  • 如何在setup不满足的情况下想办法进行调整

    • 降低clk时钟频率
    • ck_to_q和logic_delay可以通过PVT进行改变
  • hold check计算

    • 注意是不能被后一个clk看到,因此,希望dataclk久一点更好
    • 可视化解读
      sta时序分析,fpga开发,嵌入式硬件

sta时序分析,fpga开发,嵌入式硬件

sta时序分析,fpga开发,嵌入式硬件

  • 最终需要满足的条件

    • data_arrival_time >= data_required time
      sta时序分析,fpga开发,嵌入式硬件
  • 如何在hold不满足的情况下想办法进行调整

    • ck_to_q和logic_delay可以通过PVT进行改变,进行变大
    • 为什么不能通过clk频率改变进行解决?
      • 因为本来就没有clk这一项
  • setup时钟沿

    • 在end point时钟沿之前的第一个start point时钟沿
    • 用两个时钟沿最近的地方做计算
    • 之前:仅仅用waveform(工艺库中定义的上升下降时间)去比较,clock latency不考虑
    • waveform其实就是人为理想的波形
  • hold时钟沿

    • start point用setup check的时钟沿
    • end pointer用setup check之前的一个时钟沿
  • 实例分析
    sta时序分析,fpga开发,嵌入式硬件

  • 总结原则文章来源地址https://www.toymoban.com/news/detail-752984.html

    • setup找到最近的两个上升沿的间距时长
    • hold在setup基础上,将后一个上升沿向前推一个周期,再进行计算
    • 注意
      • 这里的分析并没有加入latency,等于是在去掉latency之后进行分析
      • 什么是latency—时钟的延迟信息包含clock tree delay
常用时序约束
  • creat_clock
    • creat_clock -name Name -period T -waveform {0, T*o.5} [get_port clk]
      sta时序分析,fpga开发,嵌入式硬件
      sta时序分析,fpga开发,嵌入式硬件
      sta时序分析,fpga开发,嵌入式硬件
      sta时序分析,fpga开发,嵌入式硬件
    • 一般setup和hold要成对定义,保证基本上有一个clk的差异

到了这里,关于数字IC设计之静态时序分析(STA)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • STA(静态时序分析) 详解:如何计算最大时钟频率,以及判断电路是否出现时钟违例(timing violation)?

            STA(静态时序分析)是时序验证的一种方法,用于计算和分析电路是否满足时序约束的要求。         电路能否正常工作,其本质上是受最长逻辑通路(即关键路径)的限制,以及受芯片中存储器件的物理约束或工作环境的影响。         为了保证电路能够满足设

    2024年02月08日
    浏览(47)
  • 数字IC设计之时序分析基础概念汇总

     1 时钟Clock 理想的时钟模型是一个占空比为50%且周期固定的方波。时钟是FPGA中同步电路逻辑运行的一个基准。理想的时钟信号如下图: 2 时钟抖动Clock Jitter 理想的时钟信号是完美的方波,但是实际的方波是存在一些时钟抖动的。那么什么是时钟抖动呢?时钟抖动,Clock Jitter,

    2024年02月07日
    浏览(48)
  • 【STA】多场景时序检查学习记录

    在时钟的有效沿到达触发器之前,数据应在一定时间内保持稳定,这段时间即触发器的建立 时间。满足建立时间要求将确保数据可靠地被捕获到触发器中。 建立时间检查是从发起触发器中时钟的第一个有效沿到捕获触发器中时钟后面最接近的那个有效沿。 触发器到触发器路

    2024年03月13日
    浏览(35)
  • CPU/FPGA/专用 IC 访问外挂存储器等必须进行时序分析

             CPU、FPGA(现场可编程门阵列)和专用集成电路(IC)访问外挂存储器时必须进行时序分析的原因是为了确保数据的正确性和系统的稳定性。时序分析是硬件设计中的一个关键步骤,它涉及评估信号在电路中的传播时间以及信号在不同设备之间的同步。        必须

    2024年02月03日
    浏览(39)
  • [Android][WIFI]手机作AP,关闭移动网络后,STA端断开重连问题分析

    测试平台 Android版本:Android P(9.0) 复现步骤 准备两台移动设备,一台作为AP,一台作为STA; 作为AP的设备具备移动网络上网,热点网络分享能力; 打开作为AP的设备的移动网络流量开关,再打开热点; 作为STA的设备接入该AP,并等待其通路判断完成,确保Internet网络访问能力正

    2024年02月10日
    浏览(71)
  • 三层旁挂STA无法获取IP地址(STA一直 正在获取IP)

      三层旁挂 隧道转发模式 管理vlan 100 88 业务vlan 101 102 ap DHCP服务器在AC上 LSW2为DHCP中继 STA DHCP服务器在 LSW2 上 LSW1: int e0/0/1              p l t              p t a v all              p t p v 100             int e0/0/2              p l t              p t a v all              

    2024年02月09日
    浏览(44)
  • 【数字IC基础】时序违例的修复

    基本思路是减少数据线的延时、减少 Launch clock line 的延时、增加capture clock line的delay 加强约束,重新进行综合 ,对违规的路径进行进一步的优化,但是一般效果可能不是很明显降低时钟的频率,但是这个一般是在项目最初的时候决定的,这个时候很难再改变 拆分组合逻辑,

    2024年02月14日
    浏览(45)
  • 华为配置STA双栈业务覆盖业务示例

    组网图形 图1  配置STA双栈业务示例组网图 业务需求 组网需求 数据规划 配置思路 配置注意事项 操作步骤 配置文件 业务需求 企业用户接入WLAN网络,以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时,不影响用户的业务使用。AC上同时配置IPV4和IPV6双协议栈,用

    2024年02月22日
    浏览(38)
  • 【FPGA/数字IC】Multiport RAM,多读多写寄存器-——基于FPGA BRAM的多端口地址查找表与FPGA BRAM的资源分析

    目录 背景 手写Multiport Ram Multiport RAM 代码方案 资源评估 Multiport RAM 资源利用的优化 资源评估 防止读写冲突的组合逻辑设计(写优先) 仿真和时序 单口写数据 单端口读数据 多口读相同数据 多口同时读不同数据 背景         在多端口交换机的设计中,交换机的每个端口

    2024年04月26日
    浏览(48)
  • 【数字IC/FPFA】时序约束--时钟约束

    时钟周期约束,顾名思义,就是我们对时钟的周期进行约束,这个约束是我们用的最多的约束了,也是最重要的约束。 下面我们以vivado中的时钟约束为例,介绍时钟约束的相关内容。 在Vivado中我们通过使用create_clock来创建时钟周期约束。使用方法如下: 其中,参数name为创建

    2024年02月03日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包