【综合】数字IC设计需要考虑的时序参数;Race Hazard;同步系统时序要求;建立时间、保持时间;偏斜;抖动;毛刺、竞争冒险;亚稳态

1 篇文章 0 订阅

数字设计时需要考虑的时序参数

  除了功能验证之外,时序收敛是一个重要的里程碑,它决定了何时可以将芯片交付给半导体代工厂进行制造,芯片设计人员应该掌握有关时序Timing的信息和参数。
  hold time violation 和 setup time violation 意味着电路设计不能满足时序要求!而race hazard意味着您编写的代码经过综合后实施到真实的电路上时会导致某些状态不确定。这种不确定不稳定的状态称作是亚稳态(Metastability)。

  同步系统中要求数据Data必须在下一个时钟上升沿之前稳定,保证寄存器可以取到正确的值。

传播延迟 propagation delay, 上升时间 rising time,下降时间 fall time

  这三个参数都算是如反相器等器件从输入到输出传递信号的参数,是元件自带的参数。Transition is the time it takes for the pin to change state.

在这里插入图片描述

  • 上升时间 (tr) 是转换期间输出从最大值的 10%切换到 90% 的时间。
  • 下降时间 (tf) 是转换期间输出从最大值的 90%切换到 10% 的时间。(有的工厂会设置为30-70%)
  • 传播延迟(t propagation delay)通常在输入输出切换的50%点计算。高到低的传播延迟 (t pHL ) 是在输入从低到高切换之后,输出从高到低切换时的延迟。

建立时间 setup time , 保持时间 hold time

  对于D触发器的当前待传输的数据,相对于时钟取值的边缘来说,必须早来setup time晚走hold time
在这里插入图片描述

如上图所示:

  • setup time是指在时钟上升沿之前,数据输入端信号必须保持稳定的最短时间。输入端的数据必须在时钟上升沿之前的一个小时间窗口内保持稳定,否则不能取到值
  • hold time是指在时钟上升沿之后,数据输入端信号必须保持稳定的最短时间。hold time时序检查确保新数据不会在触发器稳定输出初始数据之前,过早到达D端而下周期出现的新数据覆盖其初始数据
  • D触发器的时钟周期T,在时钟周期内可以正常提取D到Q,dcq代表clock to Q delay是触发器的延迟,故最小的时钟周期要求: T m i n i m u m = t s e t u p + d c q T_{minimum} = t_{setup}+d_{cq} Tminimum=tsetup+dcq
  • 如果数据在 tsu 中发生变化,则会导致setup time violation 违规,如果数据在 thd 中发生变化,则会导致hold time violation 违规;

建立时间(setup time)和保持时间(hold time)详析

From Process Variations to Reliability: A Survey of Timing of Digital Circuits in the Nanometer Era

脉冲宽度Pulse Width

  它是同一信号的活动状态和非活动状态之间的时间。如果时钟脉冲较小,寄存器可能无法正确锁存数据。

setup time violation 违例, hold time violation违例

  如果数据在 t s u t_{su} tsu中发生变化,则会导致设置违规,如果数据在 t h d t_{hd } thd中发生变化,则会导致保持违规。

在这里插入图片描述

  • 如何解决setup time violation 违例
      解决setup time violation 违例的唯一方法是添加缓冲区,而不是减慢整个系统时钟。您不能通过减慢时钟来修复保持时间违规,您需要向路径添加缓冲区以确保它稍后转换并被下一个上升沿捕获,我们可以在最快路径中添加一些延迟以消除。

  • 如何解决hold time violation违例
       减少时钟频率,增加时间周期。如果降低时钟频率,则可以修复设置违规。P.S. 我们不能让数据恰好在目标时钟的上升沿接近时到达,因为这会导致亚稳态。要修复保持时间违规,请在两个触发器之间添加额外的逻辑(通常是缓冲器)。这将延迟从一个 FF 到下一个 FF 的数据更改“在”满足下一个触发器的保持时间之后。如果您有设置违规,那么减慢时钟将使它工作。但是,如果你已经为设定的频率设计了电路,那么你需要从循环中移除一些逻辑并将其放在下一个或上一个循环中。
    在这里插入图片描述

    Iain McNally-Synchronous Design

    VLSI placement-CMOS part 3

时钟偏斜 Clock skew

  Clock skew——时钟经过不同的路径之后产生的相位上的偏差

在这里插入图片描述

  • Clock Skew 是时钟信号到达两个触发器的时间差;

同步系统 Synchronous System

  在Synchronous System系统里,只有同一个时钟,同步系统内Clock上不允许添加buffer,这样试图增加了clock skew使得Clock不是同一个了,变成了异步。

在这里插入图片描述

CTS (PART-II) (crosstalk and useful skew)

数据Data必须在下一个时钟上升沿之前稳定!

  • 在当前时钟上升沿捕获的数据是由上一个触发器在前一个时钟边沿启动的,由于非阻塞赋值在上一个时钟周期末尾才开始赋值,再加上传播延迟的时间就必须保证数据Data在当前时钟边沿之前的建立时间是稳定的。
  • 因此,遵守设置时间可确保在当前时钟沿可靠地捕获在前一个边沿发射的数据。换句话说,set up time确保了设计顺利过渡到下一个状态。

在这里插入图片描述
Iain McNally-Synchronous Design

Setup time

恢复时间 Recovery Time, 移除时间 Removal Time

  • 恢复时间Recovery Time:它是异步信号变为无效到有效时钟沿之间的可用时间。(就像异步端口 [set, reset] 的设置时间)。
  • 移除时间Removal Time:它是有效时钟边沿和异步信号变为无效之间的可用时间。(就像异步端口的保持时间 [set, reset] )。
    在这里插入图片描述

在同步系统中可能包含异步复位这样一个异步信号,为了使得异步复位成功作用,恢复和移除检查仅用于异步复位从活动状态到非活动状态的转换。否则不满足,则会发生亚稳态。

  • 复位信号必须在有效时钟边沿之前稳定至少“恢复时间”。
  • 复位信号必须在有效时钟边沿之后至少“移除时间”保持稳定。
    在这里插入图片描述
    Recovery and removal checks

到达时间 Arrival time, 所需时间 Required time

  • 到达时间定义了数据信号到达输入端口/引脚的时间间隔,是数据通过数据路径传输所需的时间
  • 所需时间定义输出端口/引脚上的数据所需时间,是时钟遍历时钟路径所花费的时间
    在这里插入图片描述

Setup and hold slack
STA

时间裕量 Slack:

  时间裕量 Slack 定义为所需时间和到达时间之间的差异

  • 建立和保持时间Slack的量化分析时序路径上发生错误的“剩余空间”。负松弛表示违规。
  • 对于时序路径,时间裕量 Slack 决定了设计是否以指定的速度或频率工作。 负Slack 表示没有满足约束,而正Slack 表示已经满足约束。Slack = 0意味着设计在这个设置的频率下严格工作,0这意味着时序约束恰好得到满足 ,频率再高就会变负了。

  还记得前文的定义吗?

  • Setup Time定义信号必须在时钟沿之前稳定的时间。路径延迟过大时会发生违规。
    • setup slack=数据需要时间-数据到达时间。满足Setup Time要求的裕量(余量)。
    • 负Setup slack意味着:寄存器错过了应该输入值的时钟上升沿,以至于不能采到值

  • Hold Time定义了信号不能开始转换的时钟边沿之后的时间。当路径延迟太小时会发生违规。
    • hold slack=数据到达时间-数据需要时间。满足Hold Time要求的裕量(余量)。
    • 负Hold Slack 意味着:信号值从一个寄存器传播到下一个寄存器,速度太快以至于它覆盖旧值,信号过早到达D端而下周期出现的新数据覆盖其初始数据

在这里插入图片描述

Lecture 13 – Timing Analysis

关键路径Critical path

关键路径Critical path:最大两个寄存器之间的延迟,这些延迟是由组合逻辑造成的,每一个时钟周期必须满足这条最长的critical path要求。否则会产生setup time违例(因为时钟变得太快了,会错过数据)。

  • 任意两个寄存器之间都构成一条小路径,延迟最大的、拥有最长的组合逻辑叫做关键路径Critical path,它必须在任何触发器的设置时间开始之前就已经稳定下来。
  • critical path是16.5,那么最高时钟频率是1/(delay value of critical path )=1/16.5,周期是16.5;
  • 如果时钟周期太短,setup time不够,critical path上第二个寄存器也就是最末尾的那个,无法正确锁存数据;
    在这里插入图片描述
启动路径 Launch path, 数据路径 Data path, 捕获周期Capture path,

关键路径是电路中两个寄存器之间延迟最长的路径,这限制了时钟速度。

  • 每条路径的起点:触发器的输入端口或时钟引脚;端点:触发器的输出端口或数据输入引脚。
  • 启动路径和数据路径一起构成了数据在捕获触发器输入处的到达时间。
  • 捕获时钟周期及其路径延迟共同构成捕获寄存器输入数据所需的时间。
  • 意味着相同的时钟路径可以是一个数据路径的启动路径,也可以是另一个数据路径的捕获路径。
    在这里插入图片描述

VLSI Concepts Timing Paths" : Static Timing Analysis (STA) basic (Part 1) |VLSI Concepts

时钟延迟 Clock lantency, Souce latency, network latency

  时钟延迟是时钟从时钟源到达接收器引脚所花费的时间。它分为两部分——时钟源延迟Souce latency和时钟网络延迟network latency;
  时钟延迟是用户指定的延迟——不是真实的、测量的。当实际创建时钟时,相同的延迟现在称为“插入延迟”。插入延迟 (Insert Delay) 是通过缓冲区树的真实的、可测量的延迟路径。有时时钟延迟被解释为插入延迟的期望目标值
  时钟树综合 (CTS) 将实际的缓冲器树插入到设计中,对于一个健壮的时钟树,“一个时钟的所有接收器的源延迟和网络延迟之和应该相等”。如果是这种情况,则称时钟树是平衡的,因为这意味着所有寄存器都同时获得时钟;即,时钟偏差为零 clock skew = 0
在这里插入图片描述

  • 源延迟 Souce latency(Source insertion delay):时钟信号从时钟源(可能是PLL、振荡器或其他一些源)穿越到时钟定义点所花费的时间。Souce latency不是芯片本身的一部分时,它可用于模拟片外时钟延迟。

  • 网络延迟 network latency:时钟信号从时钟定义点穿越到时钟的汇点所花费的时间。每个触发器(通常是接收器)都有自己的延迟,因为时钟从源到它所追踪的路径可能不同。

   set_clock_latency <value> CLK
   set_clock_latency <value> CLK –source

P.S. 第一条命令将指定网络延迟,而第二条命令将指定CLK的源延迟。

Clock latency

时钟抖动 jitter

  • jitter 特指clock jitter,是时钟频率上的抖动,时钟抖动在同一个触发器上但时钟边沿的位置由于振荡器中的一些噪声而边沿移动。可能是由电磁干扰和噪声引起的。

在这里插入图片描述

jitter is the cycle-by-cycle variation in the arrival time of the clock.

毛刺 glitch

  • glitch指的是信号毛刺,是输出端出现的极小的不需要的脉冲。

  • glitches有可能是因为噪声或者传播延迟不匹配造成的,由于噪声影响的glitch可能经常发生。如下图所示串扰毛刺(glitch):

在这里插入图片描述

  • 从同步系统的角度来考虑,在一定的程度上,设计的数字电路系统应该允许一些glitches存在的,这不应该影响D触发器取到正确的Data。在实际的芯片上如果没取到正确的数据,有可能是因为glitch引起的;

在这里插入图片描述

Crosstalk Analysis and Its Impact on Timing in 7nm Technology

Iain McNally-Synchronous Design

竞争冒险 Race Hazard

  由于本科期间一直学的叫做“竞争冒险”,所以搞得我有些分不清“race”, “risk”(这个词可以等同于hazard), “hazard”这三个词。

  • hold time violation 和 setup time violation 意味着电路设计不能满足时序要求!而race hazard意味着您编写的代码经过综合后实施到真实的电路上时会导致某些状态不确定。这种不确定不稳定的状态称作是亚稳态(Metastability)。

what is hazard in digital electronics | Types of hazards in digital electronics

  • glitch和hazard不能互换使用,glitch是观察到的现象(如观察到的脉冲信号翻转),hazard是具体电路里的小缺陷(如延迟不匹配)。例如,我们说波形里发生了小glitch,而不是直接说发生了hazard。我们说存在hazard,这意味着我们肯定知道在某些条件下产生了这些glitches,并且我们知道这些race condition条件是什么。

组合逻辑电路中的竞争冒险

  1. 逻辑冒险(也称static hazard):组合逻辑电路中,某一个信号电平发生变化,到达门电路的时间不相同,导致瞬时干扰脉冲的现象。不同的路径延迟可能导致数据传到输出端节点存在抖动。

  2. 功能冒险(也称dynamic hazard):组合逻辑电路中,多个输入信号同时发生变化,因为时延到达门电路时间各不相同,导致瞬时干扰脉冲的现象。dynamic hazard不存在于两级传递的电路,存在于三级或三级以上不相等的信号路径上。通常由多级最小化中的因式分解不良引起,可通过去掉

在这里插入图片描述

Lecture 10 -hazard

组合逻辑中的 竞争冒险问题

Difference between Static and Dynamic Hazard

  P.S. 锁存器的最大缺陷倒不是毛刺,而是捕获瞬间出现的异常状态并锁存,导致实际输出难以预料

时序逻辑电路中的竞争冒险

System Timing - Clock Race Conditions

  • 当输入到寄存器的数据不符合设置和保持时间约束时发生race conditions。

在这里插入图片描述

  数据到达 Reg B 较晚,保留旧数据而不是锁存新数据。

  • Clock skew can cause race conditions,时序不佳可能导致竞争条件,门级模型在仿真运行期间每个时钟周期报告数百个保持时间违规。

在这里插入图片描述

Introduction to CMOS VLSI Design Lecture 1: Circuits & Layout David Harris

SystemVerilog非阻塞赋值可以避免阻塞赋值时的不确定性造成的race condition

  • 阻塞分配的执行可以看作是一步过程,在不中断任何其他 Verilog 语句的情况下评估 RHS 并更新阻塞分配的 LHS;

  • 非阻塞赋值在时间开始时评估非阻塞语句的 RHS 端,并安排 LHS 更新在时间步结束时发生;

  • Nonoverlapping clocks can prevent races – As long as nonoverlap exceeds clock skew;

Blocking, Nonblocking Assignments and Verilog Race Condition

亚稳态 metastability ——一种不平衡的状态

亚稳态是指数字块/电路处于不稳定平衡状态的状态。也就是说,电路将无法稳定到稳定的 0/1,而是介于 0/1 之间。

在这里插入图片描述

pic From Wikimedia Commons

  • 每当任何触发器中存在建立时间和保持时间违规时,它都会进入其输出不可预测的状态:这种状态称为亚稳态(准稳态);在亚稳态结束时,触发器稳定为“1”或“0”。整个过程称为亚稳态。

  • 在触发器的设置时间内,输入到触发器的数据已从低电平变为高电平。这导致输出是亚稳态的。输出在一段时间内是亚稳态的,之后稳定为 0 或 1。但是我们仍然不知道输出结束于哪个状态。有时它可能是 0,其他时候可能会出现这种情况是 1。同样,这不是期望的行为。

如何降低同步系统中的亚稳态失效的可能性?

  • 降低时钟频率
  • 降低数据速度
  • 使用更快的触发器

由于本文没讨论异步,故异步系统下的亚稳态产生与分析没列举。

亚稳态专题(亚稳态的概念、亚稳态的产生、亚稳态的后果、以及如何避免亚稳态)

静态时序分析(STA)基础知识-STA和动态时序分析比较、单元传播延迟、slew/transition time、时钟偏斜skew、时钟抖动jitter、最小最大时序路径、同步时钟、异步时钟、时钟域

DC综合之时序约束

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值