静态时序分析 STA
- 格式:pdf
- 大小:1.16 MB
- 文档页数:30
前言在制程进入深次微米世代之后,晶片(IC)设计的高复杂度及系统单晶片(SOC)设计方式兴起。
此一趋势使得如何确保IC品质成為今日所有设计从业人员不得不面临之重大课题。
静态时序分析(Static Timing Analysis简称STA)经由完整的分析方式判断IC是否能够在使用者指定的时序下正常工作,对确保IC品质之课题,提供一个不错的解决方案。
在「静态时序分析(Static Timing Analysis)基础及应用(上)」一文中笔者以简单叙述及图例说明的方式,对STA的基础概念做了详尽的说明。
接下来,就让我们藉由实际设计范例来瞭解STA在设计流程的应用。
设计范例说明设计范例为一个32bit x 32bit的Pipeline乘法器,其架构如图一所示。
Pipeline共分3级,电路之输出输入端皆有暂存器储存运算数值。
图一依据Cell-based设计的方式,首先以硬体描述语言设计图一之电路。
接下来实作此电路,进行合成(Synth esis)及布局与绕线(P&R)。
并在实作的各步骤后进行静态时序分析,确认时序规格是否满足。
实作及验证所用到的软体及设计资料库如下所示:∙合成:Synopsys TM Design Compiler∙布局与绕线:Synopsys TM Astro∙设计资料库:Artisan TM0.18um Cell Library在接下来的文章中,各位将会看到静态时序分析在实作过程中的应用。
藉由实际产生的数据瞭解在不同实做步骤上时序分析的差异。
时序限制(Timing Constraint)要作静态时序分析,首先要有时序限制。
此设计范例的时序限制如下所述。
(→后為设定时序限制之SD C指令)1 时脉规格(Clock Specification)1.1 週期:6ns →create_clock -name "MY_CLOCK" -period 6 -waveform {0 3} [get_ports {clk}]1.2 Source Latency:1ns →set_clock_latency -source 1 [get_clocks {MY_CLOCK}]1.3 Network Latency:1ns →set_clock_latency 1 [get_clocks {MY_CLOCK}]1.4 Skew:0.5ns →set_clock_uncertainty 0.5 [get_clocks {MY_CLOCK}]2 周边状况(Boundary Condition)2.1 输入延迟(Input Delay):1.2ns →set allin_except_CLK [remove_from_collection [all_inputs] [get_po rts clk] ]set_input_delay $I_DELAY -clock MY_CLOCK $allin_except_CLK2.2 输出延迟(Output Delay):1.2ns →set_output_delay $O_DELAY -clock MY_CLOCK [all_outputs]2.3 输出负载(Output Loading):0.5pF →set_load $O_LOAD 0.5 [all_outputs]3 时序例外(Timing Exception):无合成软体之时序报告当Synopsys Design Compiler将电路合成完毕后,执行下面指令可以產生时序报告:report_timing -path full -delay max -max_paths 10 -input_pins \-nets -transition_time -capacitance > timing_syn.txt时序报告会储存在timing_syn.txt此档案中。
静态时序分析基础STA1. 背景静态时序分析的前提就是设计者先提出要求,然后时序分析⼯具才会根据特定的时序模型进⾏分析,给出正确是时序报告。
进⾏静态时序分析,主要⽬的就是为了提⾼系统⼯作主频以及增加系统的稳定性。
对很多数字电路设计来说,提⾼⼯作频率⾮常重要,因为⾼⼯作频率意味着⾼处理能⼒。
通过附加约束可以控制逻辑的综合、映射、布局和布线,以减⼩逻辑和布线延时,从⽽提⾼⼯作频率。
2. 理论分析2.1 固定参数launch edge、latch edge、Tsu、Th、Tco概念2.1.1 launch edge 时序分析起点(launch edge):第⼀级寄存器数据变化的时钟边沿,也是静态时序分析的起点。
2.1.2 latch edge 时序分析终点(latch edge):数据锁存的时钟边沿,也是静态时序分析的终点。
2.1.3 Clock Setup Time (Tsu) 建⽴时间(Tsu):是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建⽴的时间不满⾜要求那么数据将不能在这个时钟上升沿被稳定的打⼊触发器。
如图3.2所⽰:(个⼈理解建⽴时间是时钟上升沿到来前数据保持不变的时间)图3.2 建⽴时间图解2.1.4 Clock Hold Time (Th) 保持时间(Th):是指数据稳定后保持的时间,如果保持时间不满⾜要求那么数据同样也不能被稳定的打⼊触发器。
保持时间⽰意图如图3.3所⽰:(个⼈理解保持时间是时钟上升沿到来后数据保持不变的时间)图3.3 保持时间图解2.1.5 Clock-to-Output Delay(tco) 数据输出延时(Tco):这个时间指的是当时钟有效沿变化后,数据从输⼊端到输出端的最⼩时间间隔。
2.2 Clock skew 时钟偏斜(clock skew):是指⼀个时钟源到达两个不同寄存器时钟端的时间偏移,如图3.4所⽰:图3.4 时钟偏斜 时钟偏斜计算公式如下:Tskew = Tclk2 - Tclk1 (公式2-1)2.2 Data Arrival Time 数据到达时间(Data Arrival Time):输⼊数据在有效时钟沿后到达所需要的时间。
数字ic后端sta uncertainty的计算公式英文版The Calculation Formula of Uncertainty in STA for Digital IC BackendIn the realm of digital integrated circuit (IC) design, Static Timing Analysis (STA) is a crucial step that ensures the timing correctness of the designed circuit. However, STA often faces challenges due to various uncertainties that can affect the accuracy of timing predictions. Understanding and calculating these uncertainties is essential for reliable IC design.The calculation of STA uncertainty involves several factors that contribute to timing variations. These factors can be grouped into three main categories: process variations, environmental variations, and modeling inaccuracies.Process Variations: These variations occur during the manufacturing process of ICs. Factors such as doping levels, material properties, and manufacturing imperfections canintroduce timing delays and variations. Process variations can be further classified into within-die variations (within a single IC) and die-to-die variations (between different ICs).Environmental Variations: ICs operate in a range of environmental conditions, such as temperature, voltage, and processing load. These environmental factors can significantly affect the timing behavior of the circuit. For example, changes in temperature can lead to variations in the speed of transistors, affecting the overall timing of the circuit.Modeling Inaccuracies: The accuracy of timing predictions depends heavily on the models used to represent the circuit components. Modeling inaccuracies can arise due to limitations in the models themselves or due to inaccuracies in the parameters used in the models. These inaccuracies can lead to timing predictions that deviate from actual circuit behavior.To calculate the uncertainty in STA, a comprehensive uncertainty analysis is performed. This analysis considers all the factors mentioned above and quantifies their impact on timingpredictions. The uncertainty calculation typically involves statistical methods, such as Monte Carlo simulations, to estimate the range of possible timing outcomes.The uncertainty calculation formula in STA can be represented as:Uncertainty = (f(Process Variations, Environmental Variations, Modeling Inaccuracies))where (f) is a function that combines the contributions of all the uncertainty sources. This function can be complex and may involve statistical analysis and modeling techniques to accurately capture the combined effect of all uncertainty sources.By understanding and quantifying the uncertainty in STA, IC designers can make informed decisions about the reliability and performance of their designs. This knowledge is crucial in ensuring that the designed circuits meet the timing requirements and operate reliably in a wide range of operating conditions.中文版数字IC后端静态时序分析不确定性的计算公式在数字集成电路(IC)设计中,静态时序分析(STA)是确保电路设计时序正确性的关键步骤。
何谓静态时序分析(Static Timing Analysis,简称STA)何谓静态时序分析(Static Timing Analysis,简称STA)?它可以简单的定义为:设计者提出一些特定的时序要求(或者说是添加特定的时序约束),套用特定的时序模型,针对特定的电路进行分析。
分析的最终结果当然是要求系统时序满足设计者提出的要求。
下面举一个最简单的例子来说明时序分析的基本概念。
假设信号需要从输入到输出在FPGA内部经过一些逻辑延时和路径延时。
我们的系统要求这个信号在FPGA内部的延时不能超过15ns,而开发工具在执行过程中找到了如图4.1所示的一些可能的布局布线方式。
那么,怎样的布局布线能够达到我们的要求呢?仔细分析一番,发现所有路径的延时可能为14ns、14ns、16ns、17ns、18ns,有两条路径能够满足要求,布局布线就会选择满足要求的两条路径之一。
1.静态时序分析模型因此,有些说法是错误的,不分什么情况就说时序不收敛,其实在不加约束的情况下谈时序约束是没有意义的。
附加约束的基本作用1.提高设计的工作频率对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。
通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。
2.获得正确的时序分析报告几乎所有的FPGA设计平台都包含静态时序分析工具,利用这类工具可以获得映射或布局布线后的时序分析报告,从而对设计的性能做出评估。
静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输出正确的时序分析报告。
3.指定FPGA/CPLD引脚位置与电气标准FPGA/CPLD的可编程特性使电路板设计加工和FPGA/CPLD设计可以同时进行,而不必等FPGA/CPLD引脚位置完全确定,从而节省了系统开发时间。
这样,电路板加工完成后,设计者要根据电路板的走线对FPGA/CPLD加上引脚位置约束,使FPGA/CPLD与电路板正确连接。
静态时序分析(STA)基础注:上海交⼤论⽂《数字电路静态时序分析与设计》—学习笔记第⼀章概述1.4 集成电路的设计流程⼀般集成电路设计步骤分为逻辑设计和物理设计如图1-1 所⽰:逻辑设计包括:系统划分:将⼀个⼤规模的系统按功能分成⼏个功能模块设计输⼊:⽤HDL(Hardware Description Language)语⾔或电路原理图的形式对系统进⾏功能级描述的设计输⼊。
功能仿真:对功能级描述进⾏功能和时序仿真验证并在验证功能正确后转变成适⽤于综合器的RTL级(Register Transfer Level)描述的⽹表输⼊。
逻辑综合:把⾼层次设计的描述利⽤某种标准单元库按照⼀定的约束条件转换成优化的门级⽹表。
图1-2给出了基本的计算机辅助逻辑综合的流程图。
设计者只要把精⼒集中在层次的划分、⾼层的设计、描述准确的约束条件和标准单元库的单元优化上,⽽其它⼤量的⼯作由逻辑综合⼯具⾃动完成逻辑综合⼯具经过多次交互处理最终产⽣最优化的门级⽹表。
布局前的模拟:对综合后加⼊单元时延信息的门级⽹表进⾏仿真检查时序上是否满⾜设计系统规范和接⼝规范。
物理设计包括:平⾯规划:其任务是为每个模块和整个芯⽚选择⼀个好的布图⽅案⼀般根据其包含器件数估计模块的⾯积再根据该模块和其它模块的连接关系和上层模块或芯⽚的形状估计该模块的形状和相对位置此过程⼀般⼿⼯完成布局:确定模块中各单元的位置布局问题⽐较复杂⼀般分成初线始布局和改进布局两步。
布线:通常布线分为总体布线(Global Routing)和详细布线(Detailed Routing)两步总体布线把线⽹分配到合适的布线区域不关⼼⾛线的具体位置详细布线最终确定连线的具体位置。
参数提取:确定各个连接处的电阻和电容及互连线的分布参数。
后仿真:加⼊布局布线所增加的各种寄⽣电学参数后再次进⾏时序仿真并进⾏ERC,电学规则检查和DRC,设计规则检查最后进⾏⽹表的验证(LVS Layout Versus Schematic) 来确认版图的正确性。
统计静态时序分析(SSTA)概述摘要是否曾想过为什么一个设计能够以高于设计团队承诺的频率工作?为何该设计团队不能将这个更高的频率当作要实现的目标?过去,静态时序分析被用来分析SoC是否能够在规定的目标频率工作。
时序验收要么在最差情况(WCS),要么在最佳情况(BCS)下完成。
通常,这些与三西格玛区域对应。
当然,为了结束这些情况下的时序,可能进行了大量过度设计。
统计静态时序分析(SSTA)尝试采用一种方法来减少这种不必要的过度设计,因此努力让设计变得更加切合实际,并同时帮助提高目标频率。
什么是统计静态时序分析?过去几十年里,静态时序分析(ST A)一直是用来结束数字电路时序的一种常用方法。
但由于几何尺寸缩小到45nm甚至更小,现在要结束时序变得越来越困难了。
STA和工艺数量的增加,使得整个情形变得更为复杂。
之所以出现这样的复杂情况,是因为要在高级技术节点上实现工艺变化变得异常困难了。
现在共有两种变化:1.芯片到芯片变化2.芯片内变化这两种变化又可以进一步划分为:1.系统性变化2.随机性变化其中的部分变化目前仍算在传统的STA方法内。
SST A尝试按概率分布来考虑所有这些变化。
基本上,SSTA会计算概率函数,以计算每个节点上每个信号的到达时间。
如果设计达到规定的目标频率,根据到达时间的概率分布函数,就能将它计算出来。
例如,如果概率为97%,那么最小余量的信号的到达时间为5ns;到达时间为4ns的概率为10%。
这意味着200MHz的目标频率其得到的概率应为97%,250MHz的目标频率其概率为10%。
变化:临界尺寸的扩展速度超过了我们的控制。
现在随着技术节点的减少,互连变化与有源门相比,它正逐渐占据主导地位。
由于互连开始占主导地位,时序的临界变量不只限于晶体管的临界尺寸,同时包括线段尺寸和实际形状以及附近网络的数量。
金属宽度、金属厚度、经电阻、绝缘高度都具有不同的金属层属性。
晶体管的类似属性包括晶体管长度、宽度、掺杂密度和门氧化层厚度。
静态时序分析(Static Timing Analysis)基础与应用前言在制程进入深次微米世代之后,晶片(IC)设计的高复杂度及系统单晶片(SOC)设计方式兴起。
此一趋势使得如何确保IC品质成为今日所有设计从业人员不得不面临之重大课题。
静态时序分析(Static Timing Analysis简称STA)经由完整的分析方式判断IC是否能够在使用者的时序环境下正常工作,对确保IC品质之课题,提供一个不错的解决方案。
然而,对于许多IC设计者而言,STA 是个既熟悉却又陌生的名词。
本文将力求以简单叙述及图例说明的方式,对STA 的基础概念及其在IC设计流程中的应用做详尽的介绍。
什么是STA?STA的简单定义如下:套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。
以分析的方式区分,可分为Path-Based及Block-Based两种。
先来看看Path-Based这种分析方式。
如图一所示,讯号从A点及B点输入,经由4个逻辑闸组成的电路到达输出Y 点。
套用的Timing Model标示在各逻辑闸上,对于所有输入端到输出端都可以找到相对应的延迟时间。
而使用者给定的Timing Constraint为:1.讯号A到达电路输入端的时间点为2(AT=2,AT为Arrival Time)。
2.讯号B到达电路输入端的时间点为5(AT=5)。
3.讯号必须在时间点10之前到达输出端Y(RT=10,RT为Required Time)。
现在我们针对P1及P2两条路径(Path)来做分析。
P1的起始点为A,讯号到达时间点为2。
经过第1个逻辑闸之后,由于此闸有2单位的延迟时间,所以讯号到达此闸输出的时间点为4(2+2)。
依此类推,讯号经由P1到达输出Y的时间点为7(2+2+3)。
在和上述第三项Timing Constraint比对之后,我们可以得知对P1这个路径而言,时序(Timing)是满足使用者要求的。