静态时序分析中路径延时的计算
时序分析

转载]静态时序分析与动态时序分析原文地址:静态时序分析与动态时序分析[zz]IC时序验证用两种方法实现:一是动态时序分析,即根据电路中提取的延时参数,通过仿真软件动态的仿真电路以验证时序是否满足要求。
二是静态时序分析,即通过分析设计中所有可能的信号路径以确定时序约束是否满足时序规范。
动态时序分析的时序确认通过仿真实现,分析的结果完全依赖于验证工程师所提供的激励。
不同激励分析的路径不同,也许有些路径(比如关键路径)不能覆盖到,当设计规模很大时,动态分析所需要的时间、占用的资源也越来越大。
静态时序分析根据一定的模型从网表中创建无向图,计算路径延迟的总和,如果所有的路径都满足时序约束和规范,那么认为电路设计满足时序约束规范。
静态时序分析的方法不依赖于激励,且可以穷尽所有路径,运行速度很快,占用内存很少。
它完全克服了动态时序验证的缺陷,适合大规模的电路设计验证。
对于同步设计电路,可以借助于静态时序分析工具完成时序验证的任务。
基于NanoTime的模拟IP时序验证和模型提取2011-02-20 21:45:21| 分类:模拟知识| 标签:时序 nanotime 模拟 timing 时钟|举报|字号大中小订阅刘杰, 王国玺,夏君,孙永升,刘泰源liujie@深圳市海思半导体有限公司AbstractAnalog and Mixed-signal IPs’ sign-off and accurate timing library generation have been long time bottleneck. As the process geometries shrink to 65, 40 and 28-nanometers, so many nanometer effects impact timing. The available timing margins are diminished. It becomes necessary to generate accurateand functional timing models for the analog and mixed-signal IPs to be able to accurately integrate into SOC design flow. This paper introduced analog IP timing validation and Library extraction using NanoTime. The description based on one of our key mixed-signal SOC project with 65nm technology. The NanoTime hierarchical flow of STA/ETM and the seamless interaction with PrimeTime has been adopted. By improving the timing model accuracy and functionality, timing margins become more realistic and timing convergence becomes less complex. The accuracy of the generated timing libraries is acceptable with proved within 5% correlation comparing with dynamic simulation results of golden HSPICE.Key Words: Analog IP, Tx-STA, ETM, Timing Library, NanoTime, PrimeTime摘要模拟和混合信号IP的签核及完整可信时序模型的提取一直是业界难题。
静态时序分析基础及应用1(下)

前言在制程进入深次微米世代之后,晶片(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此档案中。
非常详细的静态时序分析教程

非常详细的静态时序分析教程静态时序分析是电子设计自动化领域中的重要方法之一,用于评估数字电路中的时序性能。
本教程将介绍静态时序分析的基本概念、方法和步骤,并提供一些实例来帮助读者深入了解这个领域。
一、静态时序分析的基本概念在进行静态时序分析之前,我们需要了解一些基本概念:1.时钟边沿:时钟是数字电路中的基本信号之一,它的边沿可以分为上升沿和下降沿。
时序分析通常以时钟的上升沿作为参考边沿进行分析。
2.关键路径:在一个数字电路中,存在多条路径可以连接输入和输出。
关键路径是指在特定时钟频率下,数据从输入到输出的延时最长的路径。
时序分析的目标之一就是找到并优化关键路径,以提高电路的性能。
3.时序约束:时序约束是对数字电路的时序性能要求的规定。
通常由设计者在进行时序分析之前进行设置,用于指导分析工具进行正确的分析和优化。
二、静态时序分析的方法和步骤静态时序分析的主要方法是通过对电路中的时钟域、数据路径和约束条件进行建模和分析,从而判断关键路径和优化方案。
下面是静态时序分析的基本步骤:1. 建立电路模型:首先,需要将数字电路转化为时序分析工具可以理解的模型,通常可以使用硬件描述语言(如Verilog或VHDL)对电路进行描述。
2.设定时序约束:根据设计规范和目标性能要求,制定适当的时序约束,如最大延时、最小脉冲宽度等。
时序约束的制定需要根据具体的电路应用和设计要求进行。
3.进行静态时序分析:使用时序分析工具对电路进行分析,找到关键路径,并计算出关键路径的延时。
关键路径上的最大延时指示了电路的最坏情况性能。
4.优化关键路径:在找到关键路径后,可以通过各种手段进行优化,如增加缓冲器、减少逻辑门延时等。
优化的目标是减小关键路径的延时,以提高整个电路的性能。
5.重新进行时序分析:在优化关键路径之后,需要重新进行时序分析,确保所做的优化在整个电路中得到正确应用,并满足时序约束。
三、实例分析让我们通过一个简单的例子来说明静态时序分析的具体过程。
静态时序分析(statictiminganalysis)---时序路径

静态时序分析(statictiminganalysis)---时序路径时序分析⼯具会找到且分析设计中的所有路径。
每⼀个路径有⼀个起点(startpoint)和⼀个终点(endpoint)。
起点是设计中数据被时钟沿载⼊的那个时间点,⽽终点则是数据通过了组合逻辑被另⼀个时间沿载⼊的时间点。
路径中的起点是⼀个时序元件的时钟pin或者设计的input port。
input port可以作为起点是因为数据可以由外部源(external source)进⼊设计。
终点则是时序元件的数据输⼊pin或者设计的output port。
同理output port可以作为终点是因为数据可以被外部源捕捉到。
上图显⽰⼀个时序路径的例⼦。
path1 开始于⼀个input port 且结束于时序元件的数据输⼊端path2 开始于时序元件的时钟pin且结束于时序元件的数据输⼊端path3 开始于时序元件的时钟pin且结束在⼀个output portpath4 开始于input port 且结束于 output port每⼀个path都有专属的slack,slack值可以是正,0或者负。
某⼀个path拥有最坏的slack的话则称之为 critical pathcritical path拥有最⼤的负slack值。
若是所有的path都没有时序违规,则slack都是正数,此时最⼩的那个slack则是critical path。
复数critical paths意味着某⼀组的path都是critical path。
路径可以被分组(group)来得到各⾃的时序分析,时序报告和优化。
在IC compliler中输⼊report_timimg可以得到时序报告,如下所⽰。
Startpoint: I_RISC_CORE/I_INSTRN_LAT/Instrn_1_reg_27_ (rising edge-triggered flip-flop clocked by SYS_2x_CLK)Endpoint: I_RISC_CORE/I_ALU/Zro_Flag_reg (rising edge-triggered flip-flop clocked by SYS_2x_CLK)Path Group: SYS_2x_CLKPath Type: maxPoint Incr Path----------------------------------------------------------------------------------clock SYS_2x_CLK (rise edge) 0.000.00clock network delay (propagated) 0.510.51I_RISC_CORE/I_INSTRN_LAT/Instrn_1_reg_27_/CP (senrq1) 0.000.51 rI_RISC_CORE/I_INSTRN_LAT/Instrn_1_reg_27_/Q (senrq1) 0.62 1.13 fI_RISC_CORE/I_INSTRN_LAT/Instrn_1[27] (INSTRN_LAT) 0.00 1.13 fI_RISC_CORE/I_ALU/ALU_OP[3] (ALU) 0.00 1.13 fI_RISC_CORE/I_ALU/U288/ZN (nr03d0) 0.36 * 1.49 rI_RISC_CORE/I_ALU/U261/ZN (nd03d0) 0.94 * 2.43 fI_RISC_CORE/I_ALU/U307/ZN (invbd2) 0.35 * 2.78 rI_RISC_CORE/I_ALU/U343/Z (an02d1) 0.16 * 2.93 rI_RISC_CORE/I_ALU/U344/ZN (nr02d0) 0.11 * 3.04 fI_RISC_CORE/I_ALU/U348/ZN (nd03d0) 0.28 * 3.32 rI_RISC_CORE/I_ALU/U355/ZN (nr03d0) 0.29 * 3.60 fI_RISC_CORE/I_ALU/U38/Z (an02d1) 0.15 * 3.75 fI_RISC_CORE/I_ALU/U40/Z (an02d1) 0.12 * 3.87 fI_RISC_CORE/I_ALU/U48/ZN (nd02d1) 0.06 * 3.93 rI_RISC_CORE/I_ALU/U27/ZN (nd02d1) 0.06 * 3.99 fI_RISC_CORE/I_ALU/Zro_Flag_reg/D (secrq4) 0.00 * 3.99 fdata arrival time 3.99clock SYS_2x_CLK (rise edge) 4.00 4.00clock network delay (propagated) 0.47 4.47clock uncertainty -0.10 4.37I_RISC_CORE/I_ALU/Zro_Flag_reg/CP (secrq4) 0.00 4.37 rlibrary setup time -0.37 4.00data required time 4.00--------------------------------------------------------------------------------data required time 4.00data arrival time -3.99-------------------------------------------------------------------------------slack (MET) 0.01此例⼦的图如下:报告开始显⽰了路径的起点,路径终点,路径组名和路径检测的类型。
门级静态时序分析与PrimeTime使用

第六章门级静态时序分析 PrimeTime一、PrimeTime简介PrimeTime是Synopsys的一个单点的全芯片、门级静态时序分析器。
它能分析大规模、同步、数字ASICS的时序。
PrimeTime工作在设计的门级层次,并且和Synopsys 其它工具整合得很紧密。
基本特点和功能:时序检查方面:建立和保持时序的检查(Setup and hold checks)重新覆盖和去除检查(Recovery and removal checks)时钟脉冲宽度检查(Clock pulse width checks)时钟门锁检查(Clock-gating checks)设计检查方面:没有时钟端的寄存器没有时序约束的结束点(endpoint)主从时钟分离(Master-slave clock separation)有多哥时钟的寄存器对层次敏感的时钟(Level-sensitive clocking)组合电路的反馈环(Combinational feedback loops)设计规则检查,包括最大电容(maximum capacitance)、最大传输时间(maximum transition)和最大扇出(maximum fanout)PrimeTime 时序分析流程和方法:在时序分析之前需要做的步骤:1、建立设计环境-建立搜索路径(search path)和链接路径(link path)-读入设计和库-链接顶层设计-建立运作条件、连线负载模型、端口负载、驱动和传输时间2、说明时序声明(约束)-定义时钟周期、波形、不确定性(uncertainty)和滞后时间(latency)-说明输入、输出端口的延时3、说明时序例外情况(timing exceptions)-多周期路径(multicycle paths)-不合法路径(false paths)-说明最大和最小延时、路径分割(path segmentation)和失效弧(disabled arcs)4、进行分析和生成报告-检查时序-生成约束报告-生成路径时序报告二、静态时序分析中路径延时的计算静态时序分析工具一般将电路网表看成一个拓扑图,图中的节点(node)代表电路中的引脚(pin)。
6_第五章综合库和静态时序分析

37
综合库和静态时序分析
Ø
1. 我们对Timing Path 1 进行说明
38
综合库和静态时序分析
Ø
2. 假设输入A讯号由0变1,计算第1条Path 终点讯号到达的时间(Arrival Time简称AT )。
39
综合库和静态时序分析
Ø
3. 假设输入A讯号由1变0,计算第1条Path 终点AT。
电阻 • 电容 • 面积
•
3
综合库和静态时序分析
工作条件
制程(process)、电压和温度的比例因数
设计规则约束(Design Rule Constraints)
• • •
最大电容和最小电容 最大转换时间和最小转换时间 最大扇出和最小扇出
4
综合库和静态时序分析
Ø 1.
2.
库文件包括 库组(library Group) 库组指令定义工艺库名。这个指令必须是在库文件 中的第一个可执行行。如: library (my_library) { … } 工艺库的一般属性 这些属性广泛地适用于技术库,包括工艺类型、延 迟模型、总线命名方式等,如:
10
综合库和静态时序分析
4. 功耗属性 第九章介绍 5. 单元描述 单元描述是技术库的一个主要的部分。单元 描述为ASIC工艺库中的每一个逻辑单元提供 面积、功能、时间和功耗等信息。 主要用非线性延迟模型来计算延迟。 主要工作是查表。
11
综合库和静态时序分析 Ø 5.1.2
设计规则
半导体厂商在工艺库加强了设计规则。 这些规则根据电容、转换时间和扇出( capacitance、transition和fanout)来约束 有多少个单元可以相互联结。设计规则一般 由半导体厂商提供,在使用工艺库中的逻辑 单元时对其联结所强加的限制。 如设计中一个逻辑单元的负载(其驱动 的负载)大于库中给定的其最大负载电容( max_capacitance)值,半导体厂商将不能 保证该电路能正常工作,我们只可以按照设 计规则的约束或按照更严格的设计规则约束 来设计电路,而不可以放松约束。
静态时序分析(statictiminganalysis)

静态时序分析(statictiminganalysis)静态时序分析(static timing analysis,STA)会检测所有可能的路径来查找设计中是否存在时序违规(timing violation)。
但STA只会去分析合适的时序,⽽不去管逻辑操作的正确性。
其实每⼀个设计的⽬的都相同,使⽤Design Compiler和IC Compile来得到最快的速度,最⼩的⾯积和最少的耗能。
根据设计者提供的约束,这些⼯具会在⾯积,速度和耗能上做出权衡。
更深层的来看,STA⼀直都寻找⼀个问题的答案:在所有条件下,当时钟沿到达时,数据会正确地在每个同步device的输⼊端正确显⽰吗?这问题可以⽤下图来表⽰:如图中所⽰,虚线表⽰了时序路径。
两者使⽤了同⼀个时钟驱动,理想情况下FF1的数据变化之后在下个时钟沿能够准确到达FF2。
两者的时序图如下:在FF1的时钟沿到来时,会把FF1的D端的数据送⼊flip-flop。
在经过⼀个clock-to-Q的延时之后,数据会送⼊FF1的Q端。
此过程叫做时序路径的launch event。
信号经过了两个FF之间的组合逻辑之后,到达了组合逻辑的输出,也就是FF2的输⼊端(FF2.D),这个叫做arrival time。
然⽽数据并不是在时钟沿到达FF2的同时到达,⽽是要⽐时钟沿早到那么⼀点点。
早到的这个时间叫做required time,不同的device的required time不⼀样。
数据装载到FF2的时间点叫做capture event。
device的required time和数据到达的时间(arrival time)两者之差则叫做slack。
图中所⽰,数据⽐时钟早到很多,则slack为正。
如果数据刚好在required time时间点到达,则slack为0,若是数据晚到的话则是负了。
例如required time是launch event之后的1.8ns,⽽arrival time是launch event之后的1.6ns,则slack = 1.8-1.6=0.2ns。
第3部分-计算机程序员(FPGA嵌入式应用)_3级_理论知识复习题-A

第3部分理论知识复习题基本概念数字电路基础一、判断题(将判断结果填入括号中。
正确的填“√”,错误的填“×”):1.数字信号是由连续变化的模拟信号采样得到的。
()2.要构成5进制计数器,至少需要3个触发器,其无效状态有3个。
()3.十进制数(25)D转换为二进制数为(11001)B。
()4.逻辑变量只有两个值,即0 和1,两者并不表示数量的大小。
()5.某三个变量逻辑函数F,若以ABC的顺序列真值表,表中F=1的个数为5个。
若以CBA的顺序列真值表,则表中F=1的个数为4个。
()6.逻辑代数运算与普通代数运算的运算规则相同。
()7.无关项就是指取值一定为零的最小项。
()8.组合逻辑电路通常由门电路组合而成。
()9.组合电路的结构特点是输入信号单向传输的,电路中不含反馈回路。
()10.奇校验位的值是其余各数据位的异或运算。
()11.由于门电路平均延迟时间的差异,使信号从输入经不同的通路传输到输出级的时间不同,这样可能导致逻辑电路的错误输出,这种现象称为竞争冒险。
()12.锁存器对脉冲电平敏感,在时钟脉冲的电平作用下改变状态,而触发器对脉冲边沿敏感,其状态只有在时钟脉冲的上升沿或下降沿的瞬间改变。
()13.IP核的重用是设计人员赢得迅速上市时间的主要策略。
()14.IP应具有多种工艺下的可用性,提供各种库的综合脚本,可以移植到新的技术。
()15.规划和制定设计规范不属于IP设计的主要流程之一。
()16.IP的验证必须是完备的,具有可重用性的。
()17.可再用IP是着眼于按各种再使用标准定义的格式和快速集成的要求而建立的,便于移植,更重要的是有效集成。
()18.国内IP市场相对落后的原因是IP使用公司的规模太小因而很难承受高昂的IP使用费用。
()19.EDA技术的发展主要经过了CAD、CAE、ESDA这3个发展阶段。
()20.电子系统级(ESL)设计主要分3步走,首先是功能设计,其次是基于应用的结构设计,最后是基于平台的结构设计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
静态时序分析中路径延时的计算
静态时序分析工具一般将电路网表看成一个拓扑图,图中的节点(node)代表电路中的引脚(pin)。
节点之间的边(edge)表示时序弧(timing arc),有两种:
# 连线延时(net delay)---驱动引脚(drive pin)和扇出(fanout)之间的连接
# 单元延时(cell delay)---输入引脚(input pin)和输出引脚(output pin)之间的连接
延时计算就是计算每条时序弧的值,可能是单元延时也可能是连线延时。
通过累计这些延时可以计算时序路径(timing delay)的上升延时(rise delay)或下降延时(fall delay)。
正函数时序弧(positive unate timing arc):
将上升延时和上升延时相加,下降延时和下降延时相加。
例如一个AND门单元延时和连线延时。
负函数时序弧(negative unate timing arc):
将新得到的上升延时和原来的下降延时相加,而新得到的下降延时和原来的上升延时相加。
例如NAND门。
非函数时序弧(non-unate timing arc):
将原来的延时和新得到的最差情况延时(worst-case delay)相加。
非函数时序弧出现在不能从输入量的变化预测输出端逻辑值变化的地方,例如XOR门。
下图展示了一个电路逻辑网络是如何转化成一张时序图的:
非线性延时模型(nonlinear delay model):
非线性模型是供应商以查表(lookup table)形式在工艺库中提供的延时信息,它和时序分析计算有着紧密的联系。
总的延时包含了单元延时和连线延时:
Dtotal = Dcell + Dc
Dc
连线延时。
它有两种计算方法,一是通过operating_conditions中的tree_type属性和wire_load模型;二是在标准延时方程中读入一个SDF文件。
Dcell
门自身的延时,典型地是取从输入引脚电压变化到50%到输出引脚电压变化到50%的之间的时间。
CMOS非线性模型有两种计算Dcell的方法,在一个工艺库中可以混用。
一是用插值法在库所提供的单元延时表里查找;二是通过查传输(propagation)表和过渡(transition)表得到传输延时和过渡延时,再计算单元延时:Dcell = Dpropagation + Dtransition 。
Dpropagation
典型衡量Dpropagation的方法是从输入引脚电压变化了50%到门输出电压即将开始转变(比方说变化了10%)之间的时间。
这样,如果Dtransition值定义为输出电压从10%变化到50%之间的时间的话,它就要被加到Dpropagation上去。
这样结果就是输入变化了50%到输出变化了50%之间的时间。
Dtransition
输出引脚转变状态所需要的时间,有时也指输出斜坡(ramp)时间。
它是输出引脚两个参考电压之间变化的时间,可以是20%到80%或10%到50%。
它是通过插值查表法得到的。
如果提供的是单元延时表,那么总延时就是:Dtotal = Dcell + Dc ;
如果提供的是传输延时表,那么总延时就是:Dtotal = Dpropagation + Dtransition + Dc 。
库单元延时时序弧的种类有:
上升传输(Rise propagation)
单元上升(Cell rise)
下降传输(Fall propagation)
单元下降(Cell fall)
上升过渡(Rise transition)
下降过渡(Fall transition)
注:每个条延时弧可以有传输延时表或单元延时表,但不能都有;同时必须有过渡延时表。
每一个延时表可以通过以下六个变量中的一个到三个查找:
input_net_transition
output_net_length
total_output_net_capacitance
related_out_total_output_net_capacitance
output_net_pin_cap
output_net_wire_cap
延时计算举例
看下图的下降传输(fall propagation)表:一个两维的表,由输出端总电容和输入过渡时间查找。
输出端总电容由网络n1处的引脚电容、连线电容所决定。
输入过渡时间由前面的U0门所决定。
因为U1中的时序弧是负函数性质的,所以U0的上升过渡延时表就可以用来确定U1的输入过渡延时。
假设Ctotal是110.1,输入过渡延时是0.34,用这两个值在下降传输延时表中查找。
图中的黑点表示表中定义的点。
四个点和Z轴的高度值组成了供插值查找的领域,即图中的阴影部分。
下降过渡延时由下降过渡延时表得到,这个例子中它是基于输出端总电容的一维表。
前面提到了输出端总电容是110.1,通过简单的线性插值查表就可以得到延时。
然后将传输延时和下降的过渡延时相加即得到了通过U1单元的下降传输延时时间。
如果库中为U1定义的不是传输延时表,而是单元延时表,那么过渡延时时间将不计入单元延时之内。
环境缩放比例(Environmental Scaling)
当计算总延时说,时序分析器会分别考虑影响Dtotal的因素。
每一种因素都有它自己的全局参数来反映它对总延时的影响。
在通常情况下这些因素包括工艺(process)、温度(temperature)和电压(voltage)。
下面的因子可以分别应用到延时方程中去:
△v:库中定义的电压变化的值
Kv:电压对总延时影响的因子
△t:库中定义的温度变化的值
Kt:温度对总延时影响的因子
△p:库中定义的工艺变化的值
Kp:工艺对总延时影响的因子。