时序分类
同步系统
系统中的所有存储元件均使用全局分布的周期性同步信号(即全局时钟信号)同时进行更新 。
通过对时钟信号的生成和分配施加严格的约束来确保电路功能正确,从而将以下两点降到最低
时钟偏斜 Clock skew:时钟边沿在空间上的差异;
时钟抖动 Clock jitter:时钟边沿在时间上的差异。
异步系统
自定时、自控制系统;
不需要全局分布的时钟,消除了时钟的不确定性问题,但会带来异步电路的额外开销,例如握手逻辑等。
混合系统
不同时钟域之间的同步;
异步域和同步域之间的接口连接。
同步信号:只能在预先决定的周期上翻转的信号。“一个同步信号具有与本地时钟完全相同的频率并与该时钟保持一个已知的固定相位差。”因此数据可以直接采样而没有任何不确定性。
异步信号:可以在任意时间翻转的信号
同步时序电路:输入数据信号
寄存器的基本时序参数
数据上升沿转换和下降沿转换对应的延迟可能不同
时钟非理想因素
时钟偏斜 Clock skew:在时间上本应等价的时钟边沿,由于空间位置不同而产生差异;它包含确定性成分和随机成分,
时钟抖动 Clock jitter:连续时钟信号边沿在时间上的变化,可能来自调制和随机噪声。
周期到周期抖动(短期)
长期抖动,记为
脉冲宽度变化:对于电平敏感型时钟控制尤其重要。
时钟偏斜和时钟抖动都会影响有效时钟周期
时钟不确定性的来源包括:时钟产生电路;器件;互连线;电源;温度;电容负载;与相邻连线之间的耦合
时钟不确定性的主要来源包括:
时钟信号产生;
制造导致的器件差异;
互连线差异;
环境差异,例如电源和温度;
电容耦合,包括负载电容和相邻连线耦合。
互连线垂直和横向尺度的差异引起了不同路径间的时钟偏差
左图:形成铝互连线,二氧化硅层夹在互连图形的金属层之间。在理想状态下,无论下方的金属导线密度如何,经过抛光平坦化后,上层的介质表面都应该是绝对水平的。
右图:由于 CMP 负载效应(CMP Loading Effect) 导致的实际情况:
Positive skew 正偏斜:时钟传播(布线)方向与数据传播方向相同
Negative skew 负偏斜:时钟传播(布线)方向与数据传播方向相反
Positive Skew 正偏斜情况下,发送端寄存器
Tip
正偏斜有利于满足建立时间约束,但会让保持时间约束更难满足。
正偏斜有利于提高性能,但若保持时间约束无法满足,无论什么频率的电路最终都会出错
Negative Skew 负偏斜情况则相反,显著提高了抗竞争的能力
一般的逻辑通路中数据可以在两个方向上流动,设计者必须考虑最坏情况下的时钟偏差!
物理上理解时序约束:
时序电路的时钟周期必须足够长,以便在下一个时钟上升沿之前数据能够传播通过寄存器和组合逻辑,并在下一个寄存器处建立起来
目标寄存器的维持时间必须小于通过逻辑网络的最小传播延时,从而防止竞争
定性结论:电路可靠工作所需要的最小时钟周期 T 随时钟偏差的增大而减小,但增加偏差会使电路对竞争更加敏感
边沿 1 后数据到达寄存器
可见在正偏斜下,R2寄存器的保持时间进一步减小
时钟抖动是指在芯片的一个给定点上时钟周期发生暂时的变化,时钟周期在每个不同的周期上可以缩短或加长。
时钟抖动是指时钟周期 T 会在每个周期之间发生变化
研究抖动对性能影响的电路:最坏情况是当前时钟周期的上升沿因抖动而延后,下一时钟周期的上升沿因抖动而提前,导致可用来完成操作的时间减少了
时钟抖动会直接降低时序电路的性能
综合考虑时钟偏斜和抖动的影响
建立时间约束为:
保持时间约束为:
δ > 0 且存在 jitter 时,性能会下降,并且保持时间更难满足。换句话说,jitter 会减少系统能够接受的时钟偏斜 δ范围。
时钟分布网络:时钟偏斜和时钟抖动最终会限制数字系统性能,因此设计能够同时最小化二者的时钟网络非常重要。
在许多高速处理器中,大部分动态功耗都消耗在时钟网络上。
为了降低动态功耗,时钟网络必须支持:时钟门控,即关闭暂时不用的模块的时钟
时钟分布技术:
平衡路径(H 树网络、匹配 RC 树)
理想情况下,平衡路径可以消除时钟偏斜。
但缺点是时钟信号可能需要多个周期才能传播到树的“叶子”节点。
时钟网格
通常用于时钟分布网络的最后一级
减小绝对延迟;但并不一定减小相对延迟。
最常用的时钟分布技术:H树网络,首先把时钟连到芯片的中心点,然后通过均衡路径把时钟分布在每一个叶节点上,理想情况下时钟偏差为 0
实现时钟分布时应该记住的关键点是:经过时钟分布路径的绝对延时并不重要,重要的是他们到达每一条路径末端寄存器处的相对时间。
如果所有路径完全平衡,则时钟偏斜为 0。时钟门控可以插入到时钟树的多个层级。如果某个子树下的所有模块都满足空闲条件,就可以关闭整个子树的时钟,从而降低动态功耗。
全局时钟驱动器将时钟分布到黑点处的瓦片驱动器上,再用较低层次的 RC 匹配树驱动每一个瓦片中的 580 个驱动器
时钟延时的三维图:X 轴、Y 轴代表芯片上的位置,Z 轴代表延时,通过仔细调整导线宽度来平衡负载,减小时钟偏差
Grid 网格结构用于时钟分布网络的最后一级,将时钟分布到钟控元件负载上。
与均衡 RC 方法原理不同,因为最后一个驱动器到每一个负载的延时并不匹配
网格尺寸越小,网格绝对延时也越小
时钟通过上、下、左、右多个方向输入网格,芯片内部形成密集的时钟网格,减小时钟偏差,但由于该结构有许多多余的互连线,会消耗较多动态功耗。
芯片版图中的时钟驱动器位置,驱动器用于增强时钟信号驱动能力,使时钟能够驱动整个芯片上的大负载网络
Alpha 处理器中的时钟偏斜:绝对时钟偏斜小于 90 ps;关键指令单元和执行单元看到的时钟差异控制在 65 ps 以内
GCLK:global clock grid 全局时钟网格 。片上产生的时钟被连接到芯片的中央并用树结构分配到16个分布时钟驱动器(红条)。采用窗格结构,把时钟分为四个区域,缩短了驱动器到负载的距离,从而降低时钟偏差
该处理器选择使用层次化的时钟方法。优点:每个功能块可以时钟门控,降低功耗;电路形式自由度增加。缺点:时钟到达不同的本地寄存器可以经过非常不同的路径,使得减小时钟偏差变得困难。解决办法是调整时钟驱动器。
实际芯片中,不同位置的全局时钟偏斜和上升时间都存在空间差异
为了减小时钟偏斜,可以使用 H 树 或 匹配树 等时钟分布结构,使时钟路径尽量平衡。
如果可能,可以让 数据流方向和时钟流方向相反。这样可以消除竞争风险,但代价是性能下降。
使用 门控时钟 可以降低动态功耗,但可能会使时钟抖动变严重。
可以对时钟线进行屏蔽,例如在时钟线旁边布置 VDD 或 GND 电源线,从而减小或消除与相邻信号线之间的耦合。
可以使用 dummy fill,虚拟填充技术 来减小时钟偏斜。它可以降低由于层间介质厚度变化引起的互连电容变化。
还需要注意:温度变化、电源轨电压变化会影响偏斜和抖动;
电源噪声会从根本上限制时钟网络性能。
同步设计方法使所有的操作延时相同并都等于这些操作中最坏情况下的最长延时
当电路中所有时钟同时翻转时,在很短的时间内会有很大的电流流过(由于很大的电容负载),引起很大的噪声问题
自定时与异步设计
在同步设计中,时钟有两个作用:
作为完成信号,表示某一级运算应该结束;
保证事件按照正确顺序发生。
异步设计
事件顺序隐含在逻辑结构中;
运算完成需要通过仔细的时序分析来保证。
自定时设计:事件顺序由 握手协议 handshaking protocol 强制保证
一个输入字到达,功能块
向
自定时方法有效地区分了电路时序中所隐含的实际排序和逻辑排序功能。完成信号
使用延迟单元生成完成信号的方法
使用 NOR SR锁存器 来实现 Start 信号在工作完成后进行复位
当 Enable 变为 1 时,Go / Start 信号变 1 ,当逻辑运算结束, Done变 1 时 (此时Enable 为 0 ),通过 SR 锁存器,把 Go 信号拉低(0)。
首先,发送器把数据值放在数据总线上①,并通过改变
以上四个事件——数据变化、请求、数据接收和应答——循序进行,周而复始。但前后周期所占用的时间不同,这取决于每个周期产生或消化数据所需要的时间。
这一方法称为两相位协议,因为每一个数据的传送只有两个工作相位可以区分,即发送器的工作周期和接收器的工作周期。这两个相位都要依靠某一事件来终止:发送器的工作周期由
所有握手模块最基本的部件是 Muller C 单元。当
假设信号
发送器现在回到等待模式,把控制转交给接收器。此时
一旦接收器处理完这一数据,
Tip
两相位协议具有简单和快速的优点
但这一协议要求能检测出可能发生在任何方向上的翻转。然而大多数 MOS 工艺的逻辑器件往往只对电平或某一特定方向的翻转敏感。鉴于信号翻转方向的重要性,使所有的 Muller
一个
静态和动态电路实现
四相握手协议要求在下一个周期开始之前所有控制信号都回到其起始值
这一协议开始时与两相位协议一样,但
接收器一切就绪后就接受数据并提升
但接着四相位协议依次把
这一协议称为四相位(four-phase)信号发送,因为每个周期可以看到四个不同的时间区域:两个是发送器的;两个是接收器的。前两个相位与两相位协议完全一样,而后两个则用来恢复到原来的状态。
基于 Muller
异步总线的特点:
没有时钟控制;
需要使用 握手协议;
性能通常不如同步总线;
不需要频率转换器;但需要额外的控制线;
不像同步总线那样受到时钟偏斜的影响。
注意上图中只传输了一个数据字,Req和Ack的后一次翻转不代表一个独立的数据传输周期,是四相握手协议
根据题目给出的条件:
寄存器延迟:
逻辑块延迟:
寄存器为正跳变沿触发,建立时间:
选择器(Mux)延迟:
找寻电路中的最长组合逻辑路径(Critical Path)。设定左侧为发射寄存器(Reg1),时钟到达时间为
主通路(Reg1
最大延迟
次通路(Reg1
延迟
自循环反馈 1(Reg1
延迟
自循环反馈 2(Reg2
延迟
建立时间的通用时序约束公式为:
注意,对于自循环路径,时钟偏差
Reg1 自循环约束:
Reg2 自循环约束:
忽略时钟偏差 (
主通路的限制为:
系统最小时钟周期取所有约束的最大值:
答案 (a):最小时钟周期为 9。
存在非零时钟偏差
此时的正时钟偏差有利于主通路的建立时间:
主通路的限制为:
此时仍满足自循环约束(
答案 (b):最小时钟周期为 8。
存在较大时钟偏差
代入主通路公式:
然而,此时主通路的限制(5)已经小于 Reg1 的自循环“硬底线”(7)。系统必须同时满足所有路径的约束,因此受限于 Reg1 的自反馈环路。
答案 (c):最小时钟周期为 7。
D 触发器:
建立时间
时钟偏差 (
因为各逻辑门(NAND 、NOR 、INV )均有反相作用且上升/下降延迟不同,需要分情况追踪信号在终点(FF2 D端)产生上升沿和下降沿时的总延迟:
情况 A:终点发生上升沿 (
倒推路径极性:INV2出(
各级取对应延迟:NAND下降(
总延迟
情况 B:终点发生下降沿 (
倒推路径极性:INV2出(
各级取对应延迟:NAND上升(
总延迟
由此可知:
最大数据延迟
最小数据延迟
计算最大工作频率
建立时间约束公式:
保持时间(Hold Time)检查
保持时间约束公式:
左侧(数据最快到达时间):
右侧(需要的安全裕度):
由于
最终答案:
1. 电路的最大工作频率为
2. 保持时间(Hold Time)完全满足时序约束条件。