例题来源之一B站邸志雄老师的静态时序分析基础
基础知识笔记部分静态时序分析STA基础
1.如果把上述电路整体看为一个触发器,请回答如下问题:
(1)该电路的有效建立时间和保持时间是多少?
(2)该电路的最高时钟频率为多少?
(3)对于一个同步电路,以下哪个公式可以用于计算最高工作频率?
A. Max Freq = 1/(Tprop_delay + Tsu + Thold)
B. Max Freq = 1/(Tprop_delay + Tsu + Tco + Thold)
C. Max Freq = 1/(Tsu + Tco + Thold + Tclock_skew)
D. Max Freq = 1/(Tprop_delay + Tsu + Tco + Tclock_skew)
E. Max Freq = 1/(Tprop_delay + Tsu + Thold + Tco + Tclock_skew)
(1)答案:Tsetup = 3 ns,Thold = 1ns。
首先,明确建立时间与保持时间是分析谁。该题中的整体电路是对 IN 和 CLK 进行分析,所以必须画出 IN 和 CLK 的时序电路图。时序推理为CLK(D触发器)—触发器D端—IN—CLK。
(2)答案:最高运行频率为125MHZ。已知建立时间检查与时钟周期T有关,保持时间检查与时钟周期T无关。具体公式可以查看静态时序分析STA基础5.1章节。建立时间检查公式如下:
T l a u n c h + T c k 2 q + T d p < T c a p t u r e + T c y c l e − T s e t u p T_{launch}+T_{ck2q}+T_{dp} < T_{capture}+T_{cycle}-T_{setup} Tlaunch+Tck2q+Tdp<Tcapture+Tcycle−Tsetup
已知电路中不存在时钟偏移skew ,所以 T l a u n c h T_{launch} Tlaunch 和 T c a p t u r e T_{capture} Tcapture 本题暂不考虑, T d p T_{dp} Tdp是组合逻辑延迟为 2ns, T c k 2 q T_{ck2q} Tck2q是D触发器内部CLK到Q的延迟为 4ns,代入可得 T c y c l e T_{cycle} Tcycle 为 8ns,且是此时钟周期的电路最小时钟周期!。所以最高运行频率为125MHZ。
(3)答案:D。因为时钟周期与建立时间有关而与保持时间无关。带保持时间的全都可以PASS。
2.如下一个分频电路,触发器DIV_FF的建立时间与保持时间均为2ns,逻辑延时为6ns,两个反相器逻辑延时均为2ns,其他均为理想条件。则该电指正常工作的起高频率为多少?
答案:100MHZ
首先确定分析路径,分析路径类型为clk2D,所以具体路径为CLK-Q/OUT-INV_2-D。其次确定所选公式,涉及到电路频率计算所以借助建立时间检查公式:
T l a u n c h + T c k 2 q + T d p < T c a p t u r e + T c y c l e − T s e t u p T_{launch}+T_{ck2q}+T_{dp} < T_{capture}+T_{cycle}-T_{setup} Tlaunch+Tck2q+Tdp<Tcapture+Tcycle−Tsetup
因为电路中不存在时钟偏移skew,所以 T l a u n c h T_{launch} Tlaunch 和 T c a p t u r e T_{capture} Tcapture 本题暂不考虑。 T c y c l e T_{cycle} Tcycle =6 + 2 -(-2)= 10ns,所以时钟频率为100MHZ。
3.下图系统中,D触发器的建立时间Tsu为2ns,保持时间Th为l.5ns,CLK到Q的延迟为Tcq2q为1.8ns,回答下列问题:
(1)系统能运行的最大时钟频率是多少 ?
(2)数据datain与时钟clock之间的最小建立时间和最小保持时间分别是多少?
答案:200MHZ;2.9ns、0.6ns。
(1)同上面,确定路径再套公式,时钟周期为5ns。
(2)同上面,画图确定。这种题目一般数据的有效长度都不变,如题数据长度为3.5ns,无论如何变化数据长度一直都是3.6ns。
4.求解如下电路的建立时间与保持时间的Slack
答案:1.6ns -0.1ns
第一步简化电路,将reg与reg之间的组合逻辑打包计算延时,可以得到最长路径和最小路径延时分别2.8ns和0.6ns。
第二步套公式:
T l a u n c h + T c k 2 q + T d p < T c a p t u r e + T c y c l e − T s e t u p T_{launch}+T_{ck2q}+T_{dp} < T_{capture}+T_{cycle}-T_{setup} Tlaunch+Tck2q+Tdp<Tcapture+Tcycle−Tsetup
T l a u n c h + T c k 2 q + T d p > T c a p t u r e + T h o l d T_{launch} + T_{ck2q} + T_{dp} > T_{capture} + T_{hold} Tlaunch+Tck2q+Tdp>Tcapture+Thold
建立时间检查始终使用 最长或最大的时序路径,保持时间检查始终使用 最短或最小的时序路径,裕量Slack以最小值(即最严苛)为标准。
第三步计算:建立时间Slack为1.6ns,不违例;保持时间Slack为-0.1ns,违例。
5.阅读如下信息并回答:
- 可以获取从中获取哪些基本信息?
- 报告由什么软件产生?
- 时钟周期是多大?电路实际能跑到多高的频率?
- 两个触发器中间有多少逻辑单元?最大的延迟单元是哪个?
- 操作条件是什么?
- 这个报告对流片有什么帮助?
答案如下:
(1)分析的时序路径为reg到reg型,分析的是最大路径,即是对建立时间的分析,建立时间为0.0701ns。且时间裕量slack为-0.1234 ns表现为时序违例。
(2)大概率为DC而非PT,因为时钟网络延迟是理想状态。
(3)时钟"my clock"并且时钟周期为1.8ns。代表理论时钟时钟频率为1/1.8ns,但是由于时序违例实际不可能跑得到。实际时钟周期为理想时钟周期加上时间裕量为1/1.9234ns。
(4)28个;P_OP_248_5346_8_U51(AFCSHCINX2)。
(5)worst case。
(6)没有帮助,因为时钟网络延迟在报告中都没有体现出来。
6.用SDC对下面电路进行多周期约束(寒武纪SSOC岗笔试题)
关于多周期约束具体可以查看静态时序分析STA基础5.2.1章节。答案如下:
set_multicycle_path 3 -setup -from [get_pins UFF0/Q] -to [get_pins UFF1/D]
#建立时间多周期约束
set_multicycle_path 2 -hold -from [get_pins UFF0/Q] -to [get_pins UFF1/D]
#保持时间多周期约束,将保持时间检查边沿前移两个时钟周期
7.修改建立时间检查与保持时间检查(寒武纪SSOC岗笔试题)
关于建立时间与保持时间的检查具体可以查看静态时序分析STA基础 5.1章节。答案如下:
错误;正确应为T1 + T2+T3+T4+Tsetup <Tcycle+T5
错误;正确应为T1+T2+T3+T4>Thold + T5
8.如果报从FF_A到FF_B path的setup违例,请问是违反FF_A的setup还是FF_B的setup?如果报从FF_A到FF_B path的hold违例请问是违反FF_A的hold还是FF_B的hold?(星辰科技-2022数字岗)
答案如下:建立时间的检查边沿在下一个时钟周期有效边沿检查,所以是FF_B违例;保持时间的检查边沿在当前时钟周期有效边沿检查,所以是FF_A违例。
9.地平线2022数字IC设计工程师面试题三题:
(1)综合的输出有SDF文件?
综合工具的输出通常有多种格式,其中包括SDF文件,但不限于SDF文件。SDF文件(Standard Delay Format)是一种包含时序信息的文件格式,可以描述设计中各个时序路径的延迟信息。SDF文件通常由仿真工具生成,用于在后续的布局布线和静态时序分析等步骤中进行参考。除了SDF文件,综合工具的输出还包括RTL网表、门级网表、约束文件等。
(2)时序约束的概念?
时序约束是指在数字电路设计过程中,对时序要求进行明确和规范,以确保电路能够按照要求正确地工作。时序约束主要包括时钟时序、数据时序、输入输出时序等。时序约束可以规定时钟信号的周期、占空比、时钟上升沿和下降沿的时刻等,同时也可以规定数据的延时、保持时间、建立时间等等。时序约束可以用于验证设计的正确性、优化电路性能以及与后端实现工具的接口。通常使用的时序约束语言包括Synopsys Design Constraints (SDC)和IEEE Standard Delay Format (SDF)等。