




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
静态时序分析综述报告 孙声震 1 静态时序分析静态时序分析 静态时序分析 STA 就是套用特定的时序模型 Timing Model 针对特 定电路分析其是否违反设计者给定的时序限制 Timing Constraint 1 1 背景背景 仿真技术是 ASIC 设计过程中应用最多的验证手段 然而 现在的单片集成 系统设计正在将仿真时间推向无法容忍的极限 在最后的门级仿真阶段 针对 的是几十乃至几百万门的电路 对仿真器第一位的要求是速度和容量 因此 性能 仿真速度 和容量 能够仿真的设计规模 是验证中的关键因素 传统上采用逻辑仿真器验证功能时序 即在验证功能的同时验证时序 它 以逻辑模拟方式运行 需要输入向量作为激励 随着规模增大 所需要的向量 数量以指数增长 验证所需时间占到整个设计周期的 50 而最大的问题是难 以保证足够的覆盖率 鉴于此 这种方法已经越来越少地用于时序验证 取而 代之的是静态时序分析技术 1 2 分类分类 静态时序分析 以分析的方式区分 可分为 Path Based 及 Block Based 两种 图 1 如图 1 所示 为 Path Based 这种分析方式 信号从 A 点及 B 点输入 经过 中间的逻辑单元 从 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 是满足使用者要求的 按照同样的方式可以得到信号经由路径 B 到达输出 Y 的时间点为 11 5 1 3 2 照样和上述第三项 Timing Constraint 比对 我们可以得知对 P2 这个路径而言 Timing 是不满足使用者要求的 对图 2 的设计而言 总共有 6 个信号路径 对于采用 Path Based 分析方式 的 STA 软件来说 它会对这 6 个信号路径作逐一的分析 然后记录下结果 图 2 如所示 Block Based 的分析方式的时序信息 Timing Information 的储存 不再是以路径为单位 而是以电路节点为单位 由 Timing Constraint 我们仅能 得知 A 节点的 AT 为 2 B 节点的 AT 为 5 以及 Y 节点的 RT 为 10 Block Based 的分析方式会找出每个节点的 AT 和 RT 然后比对这两个数值 当 RT 的值大于 AT 时表示信号比 Timing Constrain 中要求的时间还早到达 如此则 Timing 是满 足的 反之则不满足 2 静态时序分析静态时序分析 2 1 基本原理基本原理 静态时序分析技术是一种穷尽分析方法 用以衡量电路性能 它提取整个 电路的所有时序路径 通过计算信号在路径上的延迟传播找出违背时序约束的 错误 主要是检查建立时间和保持时间是否满足要求 而它们又分别通过对最 大路径延迟和最小路径延迟的分析得到 静态时序分析的方法不依赖于激励 且可以穷尽所有路径 运行速度很快 占用内存很少 它完全克服了动态时序 验证的缺陷 适合进行超大规模的片上系统电路的验证 可以节省多达 20 的 设计时间 因此 静态时序分析器在功能和性能上满足了全片分析的目的 支 持片上系统设计 即它为快速满足设计时序要求取得了突破 能提供百万门级 设计所要求的性能 并在一个合理的时间内分析设计 而且它带有先进的时序 分析技术和可视化的特性 用于全芯片验证 静态时序分析的优点显而易见 主要是 能够详尽地覆盖时序路径 不需要测试向量 执行速度快 能够为时序冲突生成全面的报告 能够完成使用仿真所不能实现的复杂分析 例如 min max 分析 组合环 检测 自动地检测并消除无效路径 当然 如上所述的静态时序分析的优点并不意味着 STA 能够完全替代动态仿真 静态验证工具与动态验证工具必须协同存在 一个主要的原因是 STA 不能验证 一个设计的功能 而且某些设计风格并不是很适合静态的方法 例如 一个设 计的异步部分可能要求使用动态仿真 当然 任何混合信号的部分更是如此 下面介绍重点介绍静态时序分析的原理 图 3 我们从图三中可以看到 要了解静态时序分析 我们必须了解构成静态时 序分析的四个组成部分 Design Data Interconnect Data Library Data 和 Timing Constraints 2 1 1 Design Data 在 Design Data 中 我们知道 一般在 Design Compiler 做完综合之后 便能 得到 Gate level Netlist 这时 我们在做静态时序分析的时候 可以利用已经产 生的 Gate level Netlist 2 1 2 Library Data 在 Library Data 中 静态时序分析所需要的时序模型就放在 cell library 中 这些必要的时序信息是以 Timing Arc 的方式呈现在标准组件库中 Timing Arc 定义逻辑器件的任意两个端点之间的时序关系 它分为 Combinational Timing Arc Setup Timing Arc Hold Timing Arc Edge Timing Arc Preset and Clear Timing Arc Recovery Timing Arc Removal Timing Arc Three State Enable Disable Timing Arc Width Timing Arc 其中 Combinational Timing Arc Edge Timing Arc Preset and Clear Timing Arc 和 Three State Enable Disable Timing Arc 定义时序的延时 其它各项则定义了时序的检 查 Combinational Timing Arc 是最基本的 Timing Arc 如图 4 Combinational Timing Arc 的 Sense 分为三种 分别是 inverting non inverting 以及 non unate 图 4 Combinational Timing Arc 分类 从这个图中我们看到 当特定输入和特定的输出信号的变化相同时 Timing Arc 为 non inverting sense 当特定输入和特定的输出信号的变化相反时 Timing Arc 为 inverting sense 而当特定的输出无法由特定的输入决定时 Timing Arc 为 non unate 其它的 Timing Arc 还包括 Setup Timing Arc 定义组件所需的 Setup Time Hold Timing Arc 定义组件所需的 Hold Time 在此 引入一个 setup time 和 hold time 的概念 图 5 Setup time Hold time 如图 5 所示 setup time 就是指触发器在时钟沿到来前 其数据输入端的数据 必须保持不变的时间 Hold time 就是指触发器在时钟沿到来后 其数据输入端 的数据必须保持不变的时间 Edge Timing Arc 定义组件 Clock Active Edge 到数据输出的延迟时间 如图 6 图 6 Preset and Clear Timing Arc 定义组件清除信号 Preset 或 Clear 发生后 数据被清除的速度 如图 7 图 7 Recovery Timing Arc 定义组件 Clock Active Edge 之前 清除信号不准启动 的时间 如图 8 图 8 Removal Timing Arc 定义序向组件 Clock Active Edge 之后 清除信号不准 启动的时间 如图 9 图 9 Three State Enable Disable Timing Arc 定义 Tri State 组件致能信号 Enable 到输出的延迟时间 如图 10 图 10 Width Timing Arc 定义信号需维持稳定的最短时间 如图 11 图 11 以上我们只提出了 Timing Arc 包括的一些项目 而没有量化的说明 以 Combinational Timing Arc 为例 信号从输入到输出的延迟时间可以描述成以输 入的转换时间 Transition Time 和输出的负载为变量的函数 描述的方式可以 是线性的方式 也可以是时序表格的形式 2 1 3 Interconnect Data 在一个电路中 逻辑器件和逻辑器件之间的连线的延时 我们一般是不考 虑的 但是随着系统频率的提高 在互连线上的延时越来越不可忽视 连线延 迟依照布局与布线 P R 前后有不同的考虑 在布局与绕线前 组件在芯片 中摆放的位置尚未确定 所以连线延迟是一个预估值 而在布局与布线之后 连线延迟则是根据实际布线计算出来的 对布局与布线之前的连线延迟 通常 是用 Wireload Model 来预估 Wireload Model 根据芯片面积的预估大小及连线 的驱动组件数目 Fan out 的多少来决定连线的电阻和电容值 STA 软件则利 用这些电阻电容值计算出连线延迟 在布局与布线之后 可以利用电阻电容萃 取软件将布线图形转换成实际的电阻电容电路 然后贴回 Back annotate STA 软件计算连线延迟 2 1 4 Timing Constructions Timing Constructions 是由设计者设定的 用来检验设计电路时序的准则 其中最重要的一项就是对 clock 的描述 Clock 规格包含波形 Latency 及 Uncertainty 的定义 波形定义一个 Clock 的周期及信号上升缘及下降缘的时间点 Latency 定义从 Clock 来源到组件 Clock 输入端的延迟时间 Uncertainty 则定义 Clock 信号到组件 Clock 输入端可能早到 或晚到的时间 图 12 如图 12 左边的触发器在第一个 Clock 上升缘时会通过 Q 发出数据 此数据会 在第二个 Clock 上升缘到来时让右边的触发器收取 要分析右边的触发器能否 正确得到数据就必须知道第一个 Clock 上升缘到达节点 C1 的时间点和第二个上 升沿到达节点 C2 的时间点 假设在时间点为 0 的时候 Clock 信号由 S 点出发 经过一段时间 source latency 1 个时间单位 仿真芯片外的 Clock 延迟时间 例如板子上的布线产生的信号延迟时间 到达电路的 Clock 输入端点 P 接下来 再经过一段时间 芯片内 Clock 布线造成的信号延迟时间 Clock 信号分别到达 C1 和 C2 节点 如果电路已经进行布局与布线 输入端点 P 到 C1 和 C2 的信号 延迟时间可由连线上的寄生电阻电容计算得来 比方说 经过计算发现信号由 P 传递到 C1 需要 1 个时间单位 由 P 传递到 C2 需 2 个时间单位 则 Clock 信号 第一个上升沿到达 C1 和第二个上升沿到达 C2 的时间点就会如图 13 下方两列所 示 分别为时间点 2 和 13 因为加上了 1 个时间单位的 source latency 图 13 在布局与布线之前 我们无法准确得知 P 到 C1 和 C2 的信号延迟时间 仅能先 做个预估 图 12 的 network latency 及上面提到的 Uncertainty 就是用来做此种 预估的 先假设我们拥有某种完美的布局与布线软件可以让 Clock 输入端点 P 到所有触发器的 Clock 输入端的信号延迟时间一模一样 那么我们只要知道这 个信号延迟时间就可以得到 Clock 信号到达 C1 和 C2 的时间点了 这个信号延 迟时间可以通过电路特性 如预估面积大小 触发器数目等 来做预估 而这 个预估值就是所谓的 network latency 如果这种完美的软件存在的话 那 Clock 的上升沿到达 C1 和 C2 的时间点就可以由 Latency source latency network latency 计算出来 不过 在布局与布线后 Clock 输入端点 P 到所有触发器的 Clock 输入端的信 号延迟时间不会完全一样 也就是说 Clock 的某个上升沿不会同时到达 C1 和 C2 因此我们要对上述的预估值做些修正 加入 Uncertainty 的描述来定义 Clock 上升沿左右移动的可能范围 在图 13 中 Uncertainty 为 1 个时间单位 所以 Clock 第一个上升缘会在时间点 3 因为 Latency 为 3 左右 1 时间单位范 围内 也就是时间点 2 到时间点 4 到达 C1 第二个上升缘则会在时间点 12 到 14 的范围内到达 C2 除了对 clock 进行描述之外 我们还要对边界条件 boundary condition 进 行说明 在此之前 我们首先要弄明白 path 的定义 Path 根据起点和终点 可 以分为四种 1 从输入到输出 2 从输入到触发器 3 从触发器到输出 4 从触发器到触发器 如图 14 所示 图 14 当 clock 确定之后 第 4 种的情况的时序限制就已经确定了 为了确定其它 三种的时序限制 我们需要定义边界条件 1 Driving Cell 定义输入端点的驱动能力 如图 15 2 Input Transition Time 定义输入端点的转换时间 如图 15 3 Output Capacitance Load 定义输出负载 如图 15 4 Input Delay 输入端点相对于某个 Clock 领域的延迟时间 图 Delay 从 clk 到 Q a 5 Output Delay 自输出端点往外看相对于某个 Clock 领域的延迟时间 如 图 16 c 图 15 图 16 由于每个 Path 都有 Timing Constraint 所以时序分析都能够进行 但在某 些情况下 有些 Path 的分析可能没有意义 因此你会想忽略这些 Path 的分析 或是有些 Path 分析的方式不一样 你会想指定这些 Path 的分析方式 此时就 要设定一些 Timing Exception 那么什么样的路径我们去设定 Timing Exception 呢 Timing exceptions 包括了 错误路径 false paths 多循环路径 multi cycle paths 用户定义的最大最小延迟约束以及无效的时序 必须正确地定义 Timing Exceptions 否则它们不会被静态时序分析软件接受 例如错误路径和多循环路 径必须指定一个完整的 有效的路径 包括正确的起点和终点 其中起点应该 是主要的输入端口 时钟 管脚或者单元 而终点应该是主要的输出口 时钟 管脚或者单元 总结以上的介绍 我们可以看到静态时序分析非常适合于同步设计 如流 水式的处理器结构和数据通路类的逻辑电路 同步时序电路的特点是电路主要 是存贮单元和组合逻辑电路组成 在进行静态时序分析前 用户需要提供给时 序分析软件的主要信息包括设计的网表和电路的时钟参数 时序分析软件能够 从工艺库中获得诸如建立和保持时间等时序参数 通过计算时序部件之间每个 组合逻辑块的延时 判断这些延时是否和与之相对应的寄存器的时序参数冲突 静态时序分析包括三个基本的过程 查找 延迟计算和结果管理 在算法实现 上 静态时序分析将要分析的电路抽象为有向图 这个图是以各种延迟为边的 权重 以电路基本存贮单元为节点 并不考虑电路的逻辑功能 因此那些原本 并不具备逻辑功能的连接也可能被作为时序分析的一条路径给予计算和检查 这些路径就成为 虚假路径 虚假路径的出现妨碍了用户确定真正的关键路径 从而导致时序验证效率的降低 因此利用特定的约束减少最终路径报告中虚假 路径的数目也是时序分析软件的主要工作任务 然而由于电路自身信号流的复 杂性和搜索算法的局限 虚假路径的出现总是难以避免 所以关键路径的最终 确定还是需要用户仔细分析路径报告 静态时序分析的流程如图 17 图 17 STA 流程 同传统设计流程中的后模拟方法验证相似 静态时序分析也依据设计流程 所处的不同阶段和需要处理的电路基本单元的不同而分为不同的层次 晶体管 级和门级 晶体管级的时序分析耗时长 但提供的时序信息精确且详细 不过 由于晶体管级信号流方向的模糊性 也会有更多的虚假路径 而门级的分析因 为信号流明确 产生虚假路径的数目也较少 至此 进行静态时序分析的左右知识储备基本就完成了 接下去 我们通 过一个简单的例子对静态时序分析的分析方式有个更进一步的了解 图 18 如图 18 所示 这是一个设计电路 它的时序模型和时序限制如下 所有逻辑闸在输出信号上升时最长的延迟时间为 3ns 最短为 2ns 所有逻辑闸在输出信号下降时最长的延迟时间为 2ns 最短为 1ns 所有联机 Net 最长的延迟时间为 2ns 最短为 1ns 所有触发器 Clock 到 Q 的延迟时间为 3ns 所有触发器的 Setup Time 为 1ns Ts 所有触发器的 Hold Time 为 1ns Th Clock 周期为 14ns Dclkp Clock source latency 为 2ns Dclks Clock network latency 为 3ns Dclkn Clock uncertainty 为 1ns Dclku B 及 C 的 input delay 皆为 1ns Da Db Dc Y 的 output delay 为 3ns DY 首先 找出所有的有效路径 在此我们只列举出其中的三条 如图 19 所示 拿 其中的 path1 为例 图 19 假设输入 A 信号由 0 变 1 计算第 1 条 Path 终点信号到达的时间 Arrival Time 简称 AT AT Da 2 3 2 3 2 13ns 如图 20 图 20 假设输入 A 信号由 1 变 0 计算第 1 条 Path 终点 AT AT Da 2 2 2 3 2 13ns 如图 21 图 21 计算第 1 条 Path 终点的需求时间 Required Time 简称 RT RT Dclkp Dclks Dclkn Dclku Ts 2 3 14 1 1 17ns 如图 22 图 22 假设输入 A 信号由 0 变 1 计算第 1 条 Path 终点的 Slack Slack 等于 RT 和 AT 的差值 对于 Setup Time 验证来说等于 RT AT 对于 Hold Time 验证来说等 于 AT RT 在此 Setup Time 范例中 Slack 为正 表示信号实际到达 Path 终点 时间比必须到达的时间还早 因此 Timing 是满足的 假设输入 A 信号由 1 变 0 计算第 1 条 Path 终点的 Slack Slack 为正 因 此 Timing 是满足的 综上所述 path1 是满足时序要求的 取它的 slack 为 4ns 取较差的 3 静态时序分析的工具简介静态时序分析的工具简介 目前业界进行静态时序分析的两种主流 EDA 工具软件 Synopsys 公司的 PrimeTime 和 Cadence 公司的 Pearl 以下主要介绍 Prime Time 3 1 Prime Time 的功能 特点和原理的功能 特点和原理 PrimeTime 是 Synopsys 的静态时序分析软件 常被用来分析大规模 同步 数字 ASIC Prime Time 适用于门级的电路设计 可以和 Synopsys 公司的其它 EDA 软件非常好的结合在一起使用 8 作为专门的静态时序分析工具 PrimeTime 可以为一个设计提供以下的时 序分析和设计检查 建立和保持时间的检查 setup and hold checks 时钟脉冲宽度的检查 时钟门的检查 clock gating checks recovery and removal checks unclocked registers 未约束的时序端点 unconstrained timing endpoints master slave clock separation multiple clocked registers 组合反馈回路 combinational feedback loops 基于设计规则的检查 包括对最大电容 最大传输时间 最大扇出的检查 等 PrimeTime 具有下面的特点 1 PrimeTime 是可以独立运行的软件 它不需要逻辑综合过程中所必需的各种 数据结构 而且它对内存的要求相对比较低 2 PrimeTime 特别适用于规模较大的 SOC system on chip 的设计 在数字集成电路设计的流程中 版图前 全局布线之后已经版图后 都可 以使用 PrimeTime 进行静态时序分析 Prime Time 的分析原理是 首先 把整个芯片按照时钟分成许多时序路径 timing path 然后对每条时序路径进行计算和分析 时序路径指的是设计中 一个点 开始点 到另一个点 结束点 的序列 开始点一般是时钟端口 输 入端口 或寄存器或锁存器的数据输入引脚等 结束点一般是时钟 输出端口 或寄存器或锁存器的数据输入引脚等 3 2 利用利用 Prime Time 进行静态时序分析的流程进行静态时序分析的流程 3 2 1 设置端口延时并检验时序设置端口延时并检验时序 对于所有与时钟相关的端口 都要设置输入 输出的延迟 set input delay 0 0 all inputs clock clock set output delay 2 0 get port INTERRUPT DRIVER ENABLE clock clock set output delay 1 25 get port MAPPING ROM ENABLE clock clock set output delay 0 5 get port OVERFLOW clock clock set output delay 1 0 get port PIPELINE ENABLE clock clock set output delay 1 0 get port Y OUTPUT clock clock 除此之外 还要对所有的输入端设置一个驱动单元 对所有的输出端设置 电容 负载 set driving cell lib cell IV library pt lib all inputs set capacitance 0 5 all outputs 说明 clock 是在第四章中定义的变量 set clock get clock CLOCK 以后 出现将不再说明 完成以上的设置之后 可以再运行一次检查 check timing 3 2 2 保存设置保存设置 使用 write script 命令将所作的设置保存到一个脚本文件中 这样在下一次运 行的时候可以直接通过该文件来完成所有的设置 该命令可以生成三种格式的 文件 1 Design Compiler 的 dcsh 格式 dcsh 2 Design Compiler 的 dctcl 格式 tcl 3 PrimeTime 的文件格式 pt 命令的形式为 write script format dctc1 output AM2910 tc1 write script format dcsh output AM2910 dcsh write script format ptsh output AM2910 pt 事实上这种脚本文件 也是 PrimeTime 和 Design Compiler 传递数据的一种主要 方法 对于使用 Design compiler 来综合的电路设计 可以把一些重要的设置直 接继承到 PrimeTime 中来 在生成的脚本文件中 包含了以下的信息 图 5 可以看到 图 5 中包括了前面我们所做的所有设置 调用脚本的方法是 source echo 脚本文件名脚本文件名 3 2 3 基本分析基本分析 运行 report constraint 命令 得到的 constraint report 中包括了对整个设 计的时序信息的总结 通过它 可以检查设计中存在的 timing violations 和 constrains violations 具体来说 constraint report 中包含了以下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建省莆田市荔城法院招聘2名速录员模拟试卷有答案详解
- 2025北京大兴国际机场临空经济区(廊坊)幼儿园招聘合同制教师3名考前自测高频考点模拟试题及答案详解(名校卷)
- 企业年度总结与下一年度计划表
- 2025湖南益阳市安化县五雅高级中学春季教师招聘模拟试卷(含答案详解)
- 安全教育培训方案执行承诺书5篇范文
- 2025年开封杞县消防救援大队招聘政府专职消防员10人考前自测高频考点模拟试题参考答案详解
- 2025年春季江苏省环保集团有限公司招聘模拟试卷及一套答案详解
- 湖北省武汉市九师联盟2025-2026学年高三上学期8月开学考地理试题(解析版)
- 2025北京市朝阳区区管企业年轻人才“培优”计划招聘23人模拟试卷完整参考答案详解
- 知识产权成果维护责任书5篇
- 基于《中国高考评价体系》下的2023年高考物理命题趋势及复习备考策略
- LY/T 1145-1993松香包装桶
- GB/T 9114-2000突面带颈螺纹钢制管法兰
- 领导干部要学点哲学
- GB/T 17245-1998成年人人体质心
- 华为公司校园招聘个人简历标准版
- 学校结核病防控培训课件
- 【精品】部编版五年级上册道德与法治全册课时练(一课一练)(含答案)
- DBJ50T 043-2016 工程勘察规范
- 八年级美术下册《弘扬真善美》优质课件
- 《流行病学》第十六章 分子流行病学
评论
0/150
提交评论