数字ic后端设计从入门到精通10(含fusion compiler, tcl教学)静态时序分析

发布于:2025-07-02 ⋅ 阅读:(21) ⋅ 点赞:(0)

在这里插入图片描述

基本时间

传播延时
在这里插入图片描述
转换延时:时钟转换时间等
在这里插入图片描述
建立时间
在这里插入图片描述
保持时间
在这里插入图片描述
恢复时间,类比setup time
在这里插入图片描述
移除时间
在这里插入图片描述
最小脉冲宽度
在这里插入图片描述
逻辑门延时

在这里插入图片描述
信号线传播延时:时钟延迟
在这里插入图片描述
阶段延时
在这里插入图片描述
时序路径
在这里插入图片描述
时钟偏斜
在这里插入图片描述
时钟抖动。
芯片的工作通常都是与系统时钟脉冲信号同步工作的。最理想的情况是输入信号在下一个时钟的有效电平或者信号边缘到来之前,切换并在正确的逻辑电平上保持稳定,从而使整个电路 系统的行为满足要求。但是在时钟电路的实现中,不同实现单元的速度在不同时刻可能大小不一,信号可能并不能准确地在理想信号边缘到来之前的瞬间保持为正确的信号值,它保持稳定所需的时间与理 想情况有一定的偏移,这种偏移是在同一个时序单元的时钟输入端口上的时钟偏移。该时钟偏移的主要表现为时钟抖动。
在这里插入图片描述

时序弧

时序弧用来描述两个节点延时信息的数据,时序弧信息一般分为连线延时和单元延时
在这里插入图片描述
单元延时中的时序弧分为基本时序弧和约束时序弧两类,其中约束时序弧用来表示输入端口之间存在的时序约束信息。
基本时序弧包括组合时序弧(Combinational Arcs)、边沿时序弧(Edge Arcs)、复位清零时序弧(Preset And Clear Arcs)、三态使能时序弧(Three State Enable And Disable Arcs)等。

基本时序弧

组合时序弧

同向时序弧
在这里插入图片描述
反向时序弧
在这里插入图片描述不定态时序弧
在这里插入图片描述

边沿时序弧

边沿时序弧表示时序单元从时钟信号有效沿到输出信号有效的延时信息。如图所示,边沿延时弧表示时序单元从时钟高电平有效沿开始到时序单元QB输出端信号有效的延时。
边沿时序弧根据时钟信号有效沿的不同,分为上升沿有效和下降沿有效两种,在时序信息文件中通过时序弧类型信息falling_edge和rising_edge分别进行声明。
在这里插入图片描述

复位清零时序弧

在这里插入图片描述

三态使能时序弧

在这里插入图片描述

约束时序弧

包括建立时序弧(Setup Arcs)、保持时序弧(Hold Arcs)、恢复时序弧(Recovery Arcs)、移除时序弧(Removal Arcs)和脉宽时序弧(Width Arcs)等。

建立时序弧

在这里插入图片描述

保持时序弧

在这里插入图片描述

恢复时序弧

在这里插入图片描述

移除时序弧

在这里插入图片描述

脉宽时序弧

在这里插入图片描述

时序约束

创建时钟

1)时钟源点。时钟源点根据情况可以定义为设计中的一个端口,也可以是一个逻辑单元的PIN脚。
2)时钟周期。时钟周期定义为时钟的振荡周期,为时钟频率的倒数。时钟周期是时序分析中最基本、最小的时间单位。
3)时钟占空比。时钟占空比定义为时钟高低电平在一个时钟周期内的分布情况。
4)时钟转换延时。时钟转换延时定义为时钟在高低电平状态下切换所需要的延时。TclktoQ
5)时钟不确定性。由于实际时钟与理想时钟有一定的误差,所以通过时钟不确定包含这些导致误差的实际因素,比如时钟抖动、时钟偏斜等
6)时钟延迟。由于时钟信号从时钟源输出端到达时序单元的时钟输入端是需要传播时间的。时钟延迟由时钟源点到达时钟定义端口的延时(Source latency)与时钟定义的端口到时序单元时钟输入端的延时(Network latency)两部分组成。
时钟周期
在这里插入图片描述
时钟转换延时clk_tran(ps):分不同工艺角/晶体管工艺,即TclktoQ
在这里插入图片描述
时钟不确定性。由于实际时钟与理想时钟有一定的误差,所以通过时钟不确定包含这些导致误差的实际因素,比如时钟抖动、时钟偏斜等。
OCV:分不同工艺角,取值40-100(另外两个只要记住和OCV一起算就好)
SI pushout:分不同工艺角,取值5-50
Clock skew:分不同工艺角,取值50-150
在这里插入图片描述
时钟延迟
在这里插入图片描述

时序分析策略

1) 基于路径(path-based)的时序分析策略。基于路径的时序分析策略将基于时序图找到从起点到终点的所有路径并进行时序分析
2) 基于模块(block-based)的时序分析策略。基于模块的时序分析策略是基于时序图找到从起点到终点的所有路径,只对该路径下延迟最严重的节点进行计算
在这里插入图片描述
如图,最下面的那一条路径便是基于模块(block-based)的时序分析策略。整体是基于路径(path-based)的时序分析策略。

建立时间分析:触发器到触发器

在这里插入图片描述
在这里插入图片描述
假设时钟有效信号CLKM从时钟源点到达始发点触发器时钟端口CK的时间为Tlaunch,时钟端口到Q的时间为Tck2q,中间组合逻辑传播延时为Tdp,时钟有效信号CLKM从时钟源点到达终止点触发器CK端的时间为Tcapture,终止点触发器的建立时间为Tsetup。为满足建立时间的要求,由始发点触发器接收的数据,必须在下一个时钟有效沿到来前就已经到稳定表格中的时间。
在这里插入图片描述

保持时间分析:触发器到触发器

在这里插入图片描述
在这里插入图片描述
假设时钟有效信号CLKM从时钟源点到始发点触发器时钟端口CK的到达时间为Tlaunch,时钟端口到Q的时间为Tck2q,中间组合逻辑经历的时间为Tdp,时钟有效信号CLKM从时钟源点到达终止点触发器CK端的时间为Tcapture,终止点触发器的保持时间为Thold。为保证满足保持时间,由始发点触发器接收的数据,必须在捕捉时钟有效沿到来之后继续维持稳定一段时间,不要被新的数据破坏。
在这里插入图片描述

触发器到输出端

在这里插入图片描述
触发器到输出端:由于是到输出,所以右边改用虚拟捕获时钟路径延时,左边要加上输出延时

输入端到触发器

在这里插入图片描述
左边改成虚拟时钟延时和输入延时

输入端到输出端

在这里插入图片描述
此时,建立时间需满足:
组合逻辑路径延时≤虚拟时钟周期-输入时间-输出时间
此时,保持时间需满足:
组合逻辑路径延时≥时序单元保持时间(0)-输入时间-输出时间
右边为负数,此条件总是成立的。

虚拟时钟

虚拟时钟需满足以下3个特点:
1) 当设计中的某个时钟是一个实际存在但是其时钟源并不是来自设计中任何PIN脚和端口,即设计中的时序单元都不是由该时钟触发,而设计中部分时序路径的输入输出端口又与该时钟相关,如图所示。由于时钟1并不直接在设计里起作用,时钟1即为虚拟时钟。
2) 由于虚拟时钟与设计中的任何PIN脚和端口没有直接关系,所以定义虚拟时钟的命令并不指定时钟的端口。create_clock -name VIRTUAL_CLK -period 10 -waveform {0 5}
3) 虚拟时钟在实际应用的设计中是用于作为输入输出端口延时约束的时钟源,主要分为三种基本情况。
在这里插入图片描述
三种情况
设计的输入端口信号来自外部某个时钟控制的时序路径的输出端:设计输入端口真实时钟,输出虚拟时钟
输出端口进入外部同理
输入端口+输出端口同理
在这里插入图片描述
时序路径分析的目的就是检查时序路径的传播延时是否满足时序约束的要求,是否满足时序约束要求基于以下3个重要参数来说明:
1)到达延时(Arrival Time)。到达延时是指该时序路径实际的传播延时,其延时根据具体的线延时、单元延时等信息及时序路径延时的计算方法计算而来。
2)要求延时(Required Time)。要求延时为满足时序要求,时序路径的延时不得超过最大延时的极限值。该极限值用来说明当实际延时值小于等于要求延时,就可以即可满足时序约束。
3)延时违反(Slack)。延时违反即到达延时与要求延时的差值,如果延时违反值为负数,则说明时序路径的延时没有满足时序约束的要求。当时序路径的延时违反数值比较大,同时时序修复难度比 较大时,在时序路径分析过程中,则称该时序路径为关键路径(Critical Path)。

时序例外:

1.多周期路径设置(Multicycle Paths) 当设计中存在时序路径延时比较长的情况时,允许信号在这类时序路径下的延时等于几个周期,也就是设置的在第n个时钟周期检查setup,n-1个时钟周期检查hold
在这里插入图片描述
2.伪路径设置(False Paths) 1)设计中存在某些时序路径在某特定的工作状态下是不工作的,那么在对应的工作状态下进行时序分析时该时序路径是不需要进行分析的。
2)设计中对某些时序路径的时序要求非常宽松,因此不需要进行时序分析,可以定义为伪路径。比如反馈环
3)设计中的某些时序路径并不会有工作信号通过,这种时序路径实际是无效的时序路径,可定义为伪路径。

时序设计规则约束

1) 最大转换时间(Max Transition)。由于所有单元的驱动能力是有限的,所以其驱动的最大转换时间也是有限的。为了设计中的所有单元都工作在正常的驱动力范围内,需要设置最大的转换时间来控制单元的驱动力过载,否则可能会导致控制单元不能正常工作。
2) 最大电容负载(Max Capacitance)。前面讲到单元驱动的转换时间本质上取决于输出负载的大小,因此单元的驱动状态受到输出端负载的影响。为了让设计中的所有单元都工作在正常的驱动力范围内,需要设置单元输出端的最大负载值,超过最大负载值的限制有可能会导致单元不能正常工作。
3) 最大扇出(Max Fanout)。扇出是指逻辑单元输出端直接连接的下级逻辑单元输入端的个数,由于单元输出端所连接的输入端的个数多少直接会影响负载的大小,所以为了让设计中的所有单元都在正常的驱动力范围内工作,也需要设置单元输出端的最大扇出值,超过最大扇出值的限制有可能会导致单元不能正常工作。