相对于动态仿真方法,静态时序分析方法要快很多,而且它能够验证所有的门级电路设计的时序关系。 静态时序分析最大的特点是不需要加入输入测试向量,每一个时序路径都自动被检测到。 而静态时序分析的精髓就在于判断和分析这两个参数的结果。 统计静态时序分析 静态时序分析很久以来都被看作是百万门级芯片时序分析的基本方法及设计完成的检验。 统计静态时序分析的概念 在静态时序分析中,信号的到达时间和门延迟都是确定的数值。 统计静态时序分析的步骤 首先,要有用于统计静态时序分析的标准单元库。 通过统计静态时序分析,找出合适的时序窗(Timing Window),在此窗中,良率可以达到最高。
今天给大侠带来FPGA STA(静态时序分析),话不多说,上货。 ? 静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会依据特定的时序模型进行分析,给出正确是时序报告。 进行静态时序分析。主要目的就是为了提高系统工作主频以及添加系统的稳定性。 三、理论分析 1. 静态时序分析的理论基础知识 在进行正确的时序分析前。我们必须具备主要的静态时序的基本知识点,不然看着编译器给出的时序分析报告宛如天书。 (2). latch edge 时序分析终点(latch edge):数据锁存的时钟边沿,也是静态时序分析的终点。 (3). 四、应用分析 1. 设置时钟主频约束 全部的静态时序分析都是在有约束的情况下编译器才给出分析报告,所以进行时序分析的第一步就是设置约束。
STA用于分析设计中的所有时序路径是否都时序收敛,其不需要输入激励。对于数字芯片设计工程师,必须要了解不同的时序路径和相关的STA概念。 ? 时序分析适用于任何ASIC设计的阶段,可在各个设计阶段执行。如果设计违反setup time或者hold time,则设计进入亚稳态。 因此,必须通过时序分析工具Synopsys PT找出并解决设计中的时序违例问题。 Min-Max Analysis for ASIC Design setup time Min-Max分析是基于最快的时钟到达和最慢的数据到达。 hold time Min-Max分析是基于最快的数据到达和最慢的时钟到达。 要fix setup time违例,数据应该快速到达,launch时钟应快速到达,capture时钟应缓慢到达。
今天看《集成电路时序分析与建模》中看到这么一个知识点,觉得有点意思,就记录下来,与大家一起分享。 先看 如下电路图: 左边的电路图是需要分析的电路,我们的目的是要对此电路进行时序分析,那首先要找到该电路需要分析的时序路径,既然找路径,那找到时序分析的起点与终点即可。 2条一致,时序单元也是存储单元,例如DFF,但这里的存储单元一般指存储器,例如RAM等; 终点: 时序单元的数据输入,例如上图右边的10,12,14; 存储单元的数据输入,类似于时序单元,但更多指存储器等 ,例如RAM等; 设计边界的输出Q0,Q1,Q2; 根据上述原则即可得到,时序分析的起点(最左边)和终点(最右边): 时序路径 中间经过的节点都可认为是延迟单元。 实际进行时序分析时,可不必每次都这么转换,但是不得不说,这种理论化的方式可以让你的分析更具理论支撑,见多了熟悉了之后便可更快速的识别时序路径。这是分析的第一步,祝入门快乐。 - END -
的不确定性,因此对于触发器的时钟端来说,第二个上升沿就有可能出现在B处 set_clock_uncertainty也可以用于建模任何额外的时间裕量,比如design过程中,designer用50ps的时序裕量作为额外的 当逻辑经过时都会产生延迟,通常,一个逻辑从起点到终点可能不止一条逻辑path可以走,如下图所示 图片 可以看到从UFF1/Q到UFF3/D,红色和绿色两条path都可以实现,那么这两条path中,延迟最大的是最大时序路径 ,延迟最小是最小时序路径 有一点需要强调,最大最小时序路径取决于path上的延迟时间,与path上cell的数量没有直接关系 比如下面这张图 图片 从UFF1/Q到UFF2/D有绿色和蓝色两条path, 上总的delay是50+50+50+net delay,绿色path上总的delay是100+100+net delay 绿色path的delay 比蓝色path上的delay大,因此,绿色path是最大时序路径 [get_clocks USBCLK] \ -to [get_clocks MEMCLK] # 将从USBCLK到MEMCLK的path指定为false path,让工具不用检查这条path的时序
A.3 时序约束 本节将介绍与时序约束有关的SDC命令。 UBLK/D] -setup 0.2 set_disable_timing [-from from_pin_name] [-to to_pin_name] cell_pin_list 命令中断了指定单元内的时序弧 set_propagated_clock [all_clocks] A.4 环境命令 本节介绍了用于设置待分析设计环境的命令。 min_condition] [-max_library max_lib] [-min_library min_lib] [-object_list objects] [condition] 命令可以设置用于时序分析的工作条件 分析类型可以是single(单个情况),bc_wc(最佳情况/最差情况)或者on_chip_variation(片上变化)。可以使用operating_conditions命令在库中定义工作条件。
在使用静态时序分析工具的时候,通常会遇到case analysis的情形,但是由于时序分析工具的静态分析属性,工具会自动传播case value,常规的时序分析命令不能很好的表达case value的形态 case value的配置和传播(propagation ) 静态时序分析工具对于SDC里边的case analysis配置(set_case_analysis)会进行静态传播: 组合逻辑:Z <= A [get_pin pin] case_value: 获得制定pin (pin)上的case value case value对于report_timing的影响 但是,基于静态时序分析的原理,如果一个 简言之就是:case value会把timing arc的传播结果所复写,这样会导致常规的时序分析命令没法去报告具备case value上的路径信息了(PS:这个也也符合常理,你都拥有静态的case value 了,那么时序分析也就没有意义了)。
图C-1显示了SPEF可以由诸如布局布线工具或寄生参数提取工具之类的工具生成,然后交由时序分析工具用于电路仿真或执行串扰分析。 ? 图C-1 寄生参数可以在许多不同的层次上表示。
为了验证电路的时序性能,我们需要进行静态时序分析,即在最坏情况下检查所有可能的时序违规路径,而不需要测试向量和动态仿真。 本文将介绍静态时序分析的基本概念和方法,包括时序约束,时序路径,时序裕量,setup检查和hold检查等。 时序路径 同步电路设计中,时序是一个主要的考虑因素,它影响了电路的性能和功能。 为了验证电路是否能在最坏情况下满足时序要求,我们需要进行静态时序分析,即不依赖于测试向量和动态仿真,而只根据每个逻辑门的最大延迟来检查所有可能的时序违规路径。 静态时序分析的核心问题是: “在所有情况下(multi-mode multi-corner),每个同步设备(synchronous device,例如触发器)的数据输入端,在时钟边沿到达时,是否已经有正确的数据 上面描述的时序检查叫做setup检查,它用来验证数据是否能在每个时钟边沿之前及时到达时序电路。这是综合和时序优化中最常见的一种时序检查类型。
waveform {0 5} [get_ports CLKQ] create_clock -name CLKP -period 5 -waveform {0 2.5} [get_ports CLKP] 分析 图8-35 时序分析会先计算相关时钟的公共周期,然后再将时钟扩展到该公共周期。请注意,仅针对相关时钟(即在它们之间具有时序路径的时钟)去计算公共周期。 让我们考虑一条从CLKM时钟域到CLKP时钟域的数据路径,这种情况下时序分析的公共基本周期为40ns。 建立时间检查在时钟发起沿和捕获沿之间的最短时间内进行。 在第10章中还会介绍其它时序检查,例如数据到数据(data to data)检查和时钟门控(clock gating)检查。 END ?
以下是将SDF结构映射到VHDL泛型(generic)和Verilog HDL声明(declaration)的示例。
单元中可以描述四种类型的时序规范: DELAY:用于描述延迟 TIMINGCHECK:用于描述时序检查 TIMINGENV:用于描述时序环境 LABEL:声明可用于描述延迟的时序模型变量。 时序检查 在以TIMINGCHECK关键字开头的部分中指定了时序检查的极限。在任何这些检查中,可以使用COND结构指定有条件的时序检查。 BIDIRECTSKEW:双向偏斜时序检查 WIDTH:脉宽时序检查 PERIOD:周期时序检查 NOCHANGE:不变化时序检查 以下是一些例子: ? 以下是时序分析工具生成的完整SDF文件: ? ? ? ? ? INTERCONNECT中的所有延迟均为0,因为这是布局前的数据,因此建模的是理想互连走线模型。 SDF的标注可以通过多种工具执行,例如逻辑综合工具、仿真工具和静态时序分析工具。SDF标注器(annotator)是这些工具的组件,可用于读取SDF、解释并向设计中标注时序值。
网络课程《数字集成电路静态时序分析基础》的笔记 地址:https://www.iccollege.cn/portal/courseDetail/193.mooc 多周期半周期伪路径 多周期路径 通常对于普通路径来说 建立时间检查 多周期时序约束 ? 一个简单的例子,对于多周期路径,建立时间检查边沿会推到第三个周期 ? 多周期时序路径,launch path和普通的没有区别 ? 时序路径就会变化,launch path没有变化,主要是capture path变化了 ? ? clock CLKP变成了20,时序不满足。 该分析的路径就应该施加准确的时序约束,只对真正的伪路径设定伪路径 ?
网络课程《数字集成电路静态时序分析基础》的笔记 地址:https://www.iccollege.cn/portal/courseDetail/193.mooc 标准单元库 时序库概述 ? 时序模型由两种,上图中的是线性模型。 随着制程越来越小,线性模型会越来越不准确,现在基本都使用非线性模型。 ? 时序模型 组合逻辑 ? 有两条timing arc。 ? 时序单元 ? 相比组合逻辑时序单元的路径更加复杂。 建立时间 ? 保持时间 ? CK-Q ? 线延迟 分布式模型 ?
网络课程《数字集成电路静态时序分析基础》的笔记 地址:https://www.iccollege.cn/portal/courseDetail/193.mooc 建立时间和保持时间检查 建立时间检查 最常见的路径 时序检查之前,由于外部没有时钟设定,要先设定虚拟时钟 ? 时序报告如下 ? ? flipflop to output ? 要额外设定load约束 ? 同样设定了虚拟时钟 ? 时序报告: ? ? ? 这样时序不满足,需要修改 保持时间检查 ? 与建立时间一致,通过launch path和captured path进行检查 ? 路径分析 ? 保持时间检查 ? reg to reg 保持时间检查要使用min delay进行检查 一个保持时间检查报告,launch path ? capture path ? 时序报告 ? ? reg to output ? 时序报告 ? 依然没有hold time,全部算在output delay里 ? input to output ? 外加约束 ? 时序报告 ? ?
网络课程《数字集成电路静态时序分析基础》的笔记 地址:https://www.iccollege.cn/portal/courseDetail/193.mooc 鲁棒性检查 工艺制成和环境因素会导致die 时序变紧,最大时钟周期为7.171ns。对于建立时间,early会施加在捕获路径上,late会施加在发射路径上,cell会施加在cell的建立时间上。 引入OCV以后的时序报告,发射路径 ? ? 看到高亮处,在发射路径和捕获路径不一样,这是由于derate参数设置的问题,而红线标识的CPP就是在补偿。 ? 那么时序报告如下 ? ? CPP也被去掉了 ?
网络课程《数字集成电路静态时序分析基础》的笔记 地址:https://www.iccollege.cn/portal/courseDetail/193.mooc STA基本概念 PrimeTime STA 工具,全芯片,门级静态时序分析 ? STA概念 时序弧 分为连线延迟和单元延迟 ? 单元延迟 传输延迟,逻辑延迟 ? ? 建立时间和保持时间 ? ? 时序路径 ? ?
网络课程《数字集成电路静态时序分析基础》的笔记 地址:https://www.iccollege.cn/portal/courseDetail/193.mooc Time borrowing latch 使用latch的一个例子,缓和时序 ? UFF0到ULAT1之间的逻辑延迟小于5ns,那么数据在opening edge之前到来 ? 时序报告,期待您是UFF0终点时ULAT1,发射路径: ? 下面分析发生time borrowing时ULAT1到DFF1的时序,首先发射路径,注意,类似半周期路径,clock CLK‘ incr为5 ? 捕获路径,时序满足 ? 捕获路径,就算借满所有时间,也无法满足时序(4.99是要减去setup时间0.01) ? 约束时序报告,注意时序报告中的是data check setup time ? 上面是建立时间检查,下面是保持时间检查,在发射路径中,是从10开始的,这相对于建立时间先前移动了一个周期。 ?
网络课程《数字集成电路静态时序分析基础》的笔记 地址:https://www.iccollege.cn/portal/courseDetail/193.mooc 控制流 控制流 if 语法格式: if
网络课程《数字集成电路静态时序分析基础》的笔记 地址:https://www.iccollege.cn/portal/courseDetail/193.mooc STA环境 PT ? STA环境就是指导设计的环境,主要包括时钟、IO、特殊路径、多周期路径 STA针对的是同步电路,无法分析异步电路。 ? 时钟约束 时钟约束包括:时钟源、周期、占空比、边沿翻转时间 ?