首页> 中国专利> 使用基于样本的静态时序基础结构的同步多角静态时序分析

使用基于样本的静态时序基础结构的同步多角静态时序分析

摘要

提供一种用于对集成电路设计执行同步多角静态时序分析(STA)的方法。该方法可包括在多个角处读取设计数据,包括网表、寄生以及库。每个角可代表工艺、温度和电压状态的集合。通过使用设计数据作为输入,可在多个角处执行多个操作以生成关于设计的时序报告。显著地,每个操作具有单个控制流程且将样本矢量用于执行多个操作。每个样本是与角相关联的值。该方法使计算资源和存储器使用最小化,以及加速了多角分析的周转时间。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-13

    授权

    授权

  • 2014-01-15

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20111207

    实质审查的生效

  • 2013-11-20

    公开

    公开

说明书

发明背景

发明领域

本发明涉及静态时序分析,尤其涉及将基于样本的静态时序基础结构用于 同步多角静态时序分析。

相关技术

在亚65nm技术中,工艺和环境(即,电压和温度)变化对集成电路的时 序性能具有显著影响。为了确保集成电路设计满足在存在工艺和环境变化时的时序要 求,设计人员可针对多个时序“角(corner)”执行静态时序分析,其中每个角对应 于工艺(例如,缓慢的、快速的、标称的等等)、电压以及温度(PVT)状态的一个 集合。在过去十年中开发的统计静态时序(例如,Monte Carlo基于样本的静态时序) 分析可按在计算上高效的方式解决多工艺角的影响,但是无法有效地解决电压或温度 变化的影响。

结果,当前多角静态时序分析(STA)一般一次运行一个角(通过连续地 使用一个工具或并行地使用多个工具)。通常,当前技术中的角的数量可超过十个角。 在运行角之后,针对角获得的时序结果被合并以获得跨多个角的关键路径或图形节点 的集合。由于角的数量以及时序结果的合并,当前静态时序分析需要相当多的计算资 源。

因此,需要综合的时序方案,其可高效且准确地对多个时序角执行同步 STA而不使用分开运行,而且其还可快速地生成概要时序报告而不需要明确的合并。

发明内容

提供一种对集成电路设计执行同步多角静态时序分析(STA)的方法。该 方法可包括在多个角处读取设计数据(例如,网表、寄生和库等)。每个角可代表工 艺、温度和电压状态的集合。通过使用设计数据作为输入,可执行多个操作以生成关 于在多个角处的设计的时序报告。显著地,每个操作具有单个控制流且将样本矢量用 于执行该多个操作。每个样本是与角相关联的值。

一个操作可包括计算单元和网弧延迟。每个单元弧计算可包括针对每个角 执行弧查找,针对角的选择子集(例如,估计的最小和最大角、标称角等)计算延迟, 以及针对角的所选子集以外的角估计延迟。通过使用单元弧计算的结果,可选择单元 弧的子集(例如,最差的或最好的)。在这里,可基于单元弧的选择子集计算网弧延 迟。

另一操作可包括确定透明锁存器何时借用或借出。该确定可包括针对每个 透明锁存器计算时序松弛(timing slack)样本值(数据到达时间与所需要的时间之 间的差)以及德尔塔(delta,δ)值(数据输出时间与时钟输出时间之间的差)。 确定在角处的每个时序松弛值与德尔塔值的和是否小于或等于零。如果是,则借用/ 借出值等于零。如果不是,则借用/借出值等于时序松弛值。正借用/借出值表示从下 一时序状态借用的时间,而负借用/借出值表示向下一时序阶段借出的时间。

又一操作可包括移除时钟再收敛悲观主义(clock reconvergence  pessimism)。该移除可包括针对多个角形成时钟网络图(CNG)。形成CNG可包括 针对每个离散时钟节点计算上升时钟再收敛悲观主义移除(clock reconvergence  pessimism removal,CRPR)样本以及下降CRPR样本。可存储这些上升和下降CRPR 样本用于进一步处理。

具体地,上升和下降CRPR样本可用于确定设计中的两个节点是否是可合 并的。在一个实施例中,确定两个节点是否是可合并的可包括将这两个节点的上升 CRPR之间的第一差与第一预定阈值相比较。还可将这两个节点的下降CRPR之间的 第二差与第二预定阈值相比较。当第一差小于第一预定阈值且第二差小于第二预定阈 值时可合并这两个节点。

还描述了执行同步多角STA的另一操作。在该方法中,可使用设计数据 (例如,网表、寄生和库等)来执行针对设计的单元弧和网弧的延迟计算以生成第一 样本矢量。第一矢量的每个样本可代表在多个角中的一个处的单元弧延迟值。可通过 使用单元和网延迟矢量来执行时序更新以贯穿设计网表的时序图生成和传播到达和 所需时间矢量,并随后得出时序松弛矢量作为所述设计网表的所述时序图的每个节 点处的到达时间和所需时间之差。时序松弛矢量的每个样本代表在多个角中的一个 处的松弛值。可使用设计网表的时序图的所有节点的时序松弛矢量来生成时序报告。 时序报告可包括多个矢量,其中每个矢量可示出跨多个角的概要(例如,最差的或最 好的)时序数据(例如,到达、所需时间、借用时间、CRPR值以及时序松弛等)。 可输出这些时序报告以供用户审阅。

还描述了在近来的低功率技术中常用的将基于样本的STA用于对具有多 个电压域的设计执行高效时序分析的方法。电压域是由常见电压调节器供电的单元的 集合。由于电压调节器的变化或者供电网上的电压降落,域的供电电压可在低/高电 压范围内波动。显著地,跨不同电压域的供电电压可独立地变化。在这种设计中,可 俘获域内路径以及跨域路径的最差情况时序。域内路径是其所有单元和网位于相同电 压域内的时序路径。跨域路径是其一些单元或网的时序路径被分布在不同电压域中的 时序路径。对于域内路径,需要两次STA运行来俘获最差情况时序。对于跨域路径, STA必须列举跨电压域的每一低/高电压组合,从而导致2N次STA运行来俘获最差 情况时序,其中N是电压域的数量。通过基于样本的STA、通过使用两个样本来计 算域内路径在低和高电压下的时序以及使用多达2N个样本来计算跨域路径的时序, 可实现域内和跨域STA两者的要求。

还描述了用于减少跨域路径所需要的样本的增强。当在任何电压域中开始 时序路径时,可使用两个样本来计算在当前电压域的低/高电压下的时序。当时序路 径进入新的电压域时,可将样本计数加倍以列举跨域电压组合。

附图说明

图1示出了示例性数字ASIC设计流程的简化表示。

图2A例示了示例性基于样本的多角静态时序分析。

图2B例示了可在基于样本的多角静态时序分析期间执行的示例性时序更 新。

图3A例示了用于静态时序分析的常规延迟计算。

图3B例示了用于静态时序分析的示例性基于样本的延迟计算。

图4A例示了用于在静态时序分析中处理透明锁存器的常规技术。

图4B例示了用于在静态时序分析中处理跨角的透明锁存器的示例性基于 样本的技术。

图5例示了包括透明锁存器的简单电路,其中每个透明锁存器具有含多个 样本的矢量,每个样本与角相关联。在该实施例中,零值指示非借用样本而非零值指 示借用样本。

图6A例示了包括触发器的简单电路,其中每个时钟网络节点具有含多个 样本的矢量,每个样本与角相关联。在该实施例中,矢量形成时钟再收敛悲观主义移 除(CRPR)的时钟网络图(CNG)。

图6B例示了用于生成多个角的CNG的常规技术。

图6C例示了用于生成多个角的CNG的示例性基于样本的技术。

图6D例示了用于使用多个角的CNG来执行CRPR的常规技术。

图6E例示了用于使用CNG矢量来执行基于样本的CRPR的示例性基于 样本的技术。

图7A例示了可用于对具有多个电压域的电路设计执行高效时序分析的基 于样本的STA技术。

图7B例示了可用于对具有多个电压域的电路设计执行高效时序分析的另 一基于样本的STA技术。

具体实施方式

图1例示了示例性数字ASIC设计流程的简化表示,其为以下描述的基于 样本的多角静态时序分析提供了上下文。在高层,该过程始于产品理念(步骤100) 并且在EDA软件设计过程中实现(步骤110)。当设计最终定稿时,其可被下线流 片(tape-out)(事件140)。在下线流片之后,可发生制造过程(步骤150)以及封 装和组装过程(步骤160),从而得到完工的芯片(结果170)。

EDA软件设计过程(步骤110)实际包括数个步骤112-110,出于简单起 见这些步骤以线性方式示出。在实际ASIC设计过程中,特定设计可能不得不回退历 经各步骤直到通过某些测试。类似地,在任何实际的设计过程中,这些步骤可能以不 同次序和组合发生。本说明书因此借助于上下文和一般化解释来提供,而不是作为用 于特定ASIC的具体或推荐的设计流程来提供的。

现在将提供EDA软件设计过程(步骤110)的组成步骤的简要描述。

在系统设计(步骤112)中,设计人员可描述他们想要实现的功能性,执 行假设情景(what-if)规划以精炼功能性,核查成本,等等。

在此阶段可进行硬件-软件架构划分。在此步骤可使用的来自Synopsys公 司的示例性EDA软件产品包括Model Architect、Saber、System Studio、以及 产品。

在逻辑设计和功能验证(步骤114)中,编写用于系统中的模块的VHDL 或Verilog代码并且检查该设计的功能准确性。更具体地,检查该设计以确保其产生 正确的输出。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括VCS、 VERA、Magellan、Formality、ESP以及LEDA产品。

在测试的综合和设计(步骤116)中,将VHDL/Verilog代码翻译成网表。 可针对目标技术对该网表进行优化。另外,发生对测试的设计和实现以准许对完工的 芯片进行检查。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括 DesignPower Compiler、Tetramax、以及产品。

在网表验证(步骤118)中,检查网表对时序约束的顺应性以及与 VHDL/Verilog源代码的对应性。在此步骤可使用的来自Synopsys公司的示例性EDA 软件产品包括Formality、PrimeTime、以及VCS产品。在一个实施例中,可在步骤 118中使用基于样本的多角静态时序分析。

在设计规划(步骤120)中,构造芯片的整体平面布置图并分析其时序和 顶层走线。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Astro 和IC Compiler(编译器)产品。

在物理实现(步骤122)中,可发生布局(电路元件的定位)和走线(这 些电路元件的连接)。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品 包括Astro和IC Compiler产品。

在分析和提取(步骤124)中,在晶体管级验证电路功能,这进而准许假 设情景(what-if)精炼。在此步骤可使用的来自Synopsys公司的示例性EDA软件产 品包括AstroRail、PrimeRail、Primetime、以及Star RC/XT产品。在一个实施例中, 可在步骤124中使用基于样本的多角静态时序分析。

在物理验证(步骤126)中,执行各种检查功能以确保制造、电气问题、 平版印刷问题以及电路系统的正确性。在此步骤可使用的来自Synopsys公司的示例 性EDA软件产品包括Hercules产品。

在解决增强(步骤128)中,可执行布局的几何操纵以改进设计的可制造 性。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Proteus、 ProteusAF以及PSMGen产品。

在掩模数据准备(步骤110)中,用于产生掩模的“下线流片”数据可在 平版印刷方面用于产生集成电路芯片。在此步骤可使用的来自Synopsys公司的示例 性EDA软件产品包括CATS(R)产品系。

在网表验证步骤118以及分析和提取步骤124中执行的静态时序分析(在 本文中也被称为STA)可向设计人员提供关于设计的“最差情况”场景。具体地,静 态时序分析可定义设备性能(例如,执行安装检查,其可随后确定设计的最大时钟速 度)和芯片故障(例如,执行保持检查,其标识任何紊乱情况)。通常,静态时序分 析考虑模式(例如,功能声音、功能数据、测试芯片配置、用于测试的测试设计,等 等)和角(即,工艺、电压和测试)两者。

如以下进一步详细描述的,可修改统计静态时序(例如,Monte Carlo基 于样本的静态时序)分析以解决工艺变化以及电压和温度变化的影响。这种修改可确 保可同步地执行对多个角的高效且准确的静态时序分析。更确切地说,可同步地完成 用于多个角的STA的诸阶段,即计算、传播和数据挖掘。更具体地,可跨多个角利 用每个阶段。

计算可包括STA的多个方面中的任何一个,例如延迟计算、锁存器借用、 时钟再收敛悲观主义移除(CRPR)等等。例如,图2A例示了使用基于样本的多角 STA的示例性延迟计算。在图2A中,可在步骤201中通过使用设计网表、角库1-N 以及角寄生1-N作为输入来执行网表、库和寄生读取,其中N是指定特定角的正整 数(典型地由EDA工具选择)。可在步骤202中通过使用来自网表、库和寄生的单 元信息以及其它设计数据来执行延迟计算。显著地,这种延迟计算可合并所有角的信 息以生成单元和网延迟样本203。这些样本可在步骤204中用于时序更新以生成松弛 (slack)样本205。在时序更新期间可聚集(即,添加)特定路径的单元和网的延 迟以获得这些路径的到达时间。如本领域技术人员所知晓的,俘获路径的到达时间与 发起路径的到达时间之间的差产生松弛值。在一个实施例中,通过使用由时序更新生 成的多个到达时间,步骤204可生成松弛样本205。

图2B例示了设计网表的示例性时序图,其具有由节点A-G表示的单元以 及时序阶段输入节点IN(输入)和时序阶段输出节点OUT(输出)。连接这些单元 的箭头代表设计网表的网。在时序更新204期间,对于以输入节点IN开始且以输出 节点OUT结束的时序图中的每一个节点,每个节点的输出处的到达时间被计算为由 节点代表的单元的延迟样本与节点处的输入的到达时间之和。类似地,对于以输出节 点OUT开始且以输入节点IN结束的时序图中的每一个节点,每个节点的输入处的所 需时间被计算为节点的输出处的到达时间与由节点代表的单元的延迟样本之差。稍后 在时序更新过程中,每个节点的时序松弛被计算为节点的输出处的到达时间与所需时 间之差。

返回参考图2A,跨多个角的设计网表的时序图的概要时序数据(示为矢 量203中的单元和网延迟样本)可被用于关键时序路径的工程变更次序(engineering  change order,ECO)固定。可在步骤207中通过使用松弛样本,即确定时序是通过 还是失败,以及其它信息(为了简单起见没有示出)来生成时序报告。这些时序报告 结合工程变更次序(ECO)固定206可生成关键路径1-M,其中M是基于设计而变 化的正整数。注意,每个关键路径可标识样本1-N的最差松弛值,例如关键路径1 示出样本N的最差松弛且关键路径M示出样本3的最差松弛。时序报告207的其它 特性可包括与一个角(例如,最差的、最好的等等)相对应的时序松弛样本以及关于 到达、所需时间、借用时间和CRPR值的概要时序数据。在一个实施例中,针对每个 关键时序路径的跨多个角的ECO固定可包括修改路径和/或另一设计网表(例如,从 小到大或从大到小排列现有单元和网和/或插入新的单元或网,等等),以将该关键 时序路径的时序松弛改进为小于预定阈值。

还要注意,虽然库和寄生之间的一对一映射被示为对步骤201的输入,但 是其它实施例可具有不同于一对一映射的其它映射(例如,1-N个库,但是1-Q个寄 生,其中Q是不等于N的整数)。

注意,图2A的每个操作并不是仅仅并行地运行相同操作。例如,图3A 例示了一常规流程,其中通过并行地运行多个操作针对角1-N同步地执行延迟计算。 为简单起见,假定延迟计算是基于逻辑门的一个或多个弧(其中弧从逻辑门的输入端 子到该逻辑门的输出端子,例如反相器将具有单个弧,但是NAND门将具有两个弧 (从每个输入端子到其单个输出端子有一个弧))来执行的。步骤301(1)-301(N)为角 1-N的互连构建简化次序模型(ROM)。如果单元弧仍然如由步骤302(1)-302(N)所 确定的那样来分析,那么步骤303(1)-301(N)计算单元弧延迟。一旦分析了单元的所有 单元弧(步骤302(1)-302(N)),步骤304(1)-304(N)就挑选弧的选择子集(即,最差 的、最好的等等)。步骤305(1)-305(N)使用弧的该子集来计算所有角的网弧延迟。注 意,通过使用多个工具或能够进行多任务的一个工具,可并行地执行图3A的步骤, 例如可基本同步地执行步骤301(1)-301(N)。

相反,图3B例示了利用跨多个角的时序基础结构的延迟计算。步骤310 为角1-N构建ROM。如果单元的弧仍然如由步骤311所确定的那样来分析,那么步 骤312针对每个角执行快速弧查找(例如,通过使用以上讨论的库)。通过使用该查 找,步骤313可计算用于该弧的角的选择子集(例如,最小、最大、标称等等)的延 迟。通过使用相同查找,步骤314可估计除角的所选子集以外的角的延迟。在估计了 设计中的所有单元弧的所有延迟(步骤311)之后,步骤315挑选弧的选择子集(例 如,最差的、最好的等等),且步骤316使用弧的所选子集来计算网弧延迟。

显著地,步骤312-314中的每一个可通过使用单个控制流程来执行适用于 多个角的操作。因此,与图3A相比,在图3A中针对每个角并行地执行相同操作(即, 每个角有一个控制流程),图3B的技术将多个控制流程有效地合并成可利用关于所 有角的信息的一个控制流程。注意,这种利用还合并了先前与多个控制流程相关联的 有效负载。即,现在可将用于针对角执行延迟计算的数据(其可被称为有效负载)合 并成单个有效负载。该经合并的控制流程和有效负载可有利地使资源使用(例如存储 器需求和处理器利用)最小化同时仍然提供准确的输出。

返回参考图2A,在步骤202中执行的延迟计算(图3B中所述的一个实 施例)可为角1-N生成样本(在该情况下,单元和网弧延迟样本)的矢量。如以上所 指示,该延迟计算是通过使用其中跨多个角利用经合并的控制流程和有效负载的技术 来执行的。跨多个角的类似技术可被用于步骤204和207。

还要注意,步骤206中的ECO固定也可利用跨多个角的这种信息合并。 具体地,在常规STA中,已经通过使用针对每个角分别计算的单元和网弧延迟来执 行ECO固定。这种ECO固定典型地是复杂的且使设计人员花费相当多的时间来完成。 相反,基于样本的STA可允许设计人员全盘查看来自所有关键路径的样本值,从而 便于对ECO固定做出明智选择。

还要注意,用于输入的角库可能不向设计人员提供感兴趣的特定PVT。 根据基于样本的STA的一个方面,经合并的控制流程和有效负载技术可便于由角库 提供的PVT之间的内插。

显著地,可将经合并的控制流程和有效负载技术应用于STA的其它方面。 例如,可将该技术应用于处理设计网表中的透明或电平敏感锁存器,以下对此进行简 要描述。触发器或边缘触发的锁存器是时钟控制的设备,其在触发时钟脉冲到达时将 在其输入引脚处存储的数据传递至其输出引脚(即,触发器是边缘触发的)。透明或 电平敏感锁存器是其中当时钟脉冲为高时输出俘获输入的时钟控制的设备。更具体 地,只要时钟脉冲为高,则在输入改变的任何时间输出也可改变。通过时钟的活动时 间以及时钟边缘来触发透明锁存器。当逻辑的两个流水线化的阶段被透明锁存器限制 时可发生时间借用。例如,如果逻辑的第一阶段具有比逻辑的第二阶段长得多(或短 得多)的延迟,那么设计人员可为第一阶段“借用”(或“借出”)第二阶段的时间 的一部分。

图4A例示了用于在STA中处理透明锁存器的常规技术。步骤401通过标 识设计中的下一个锁存器来开始。步骤402确定该锁存器是否是透明锁存器。如果该 锁存器不是透明锁存器,则标识下一个锁存器。如果该锁存器是透明锁存器,那么步 骤404接收输入403,该输入403包括在D引脚(输入端子)处的实际到达时间和所 需时间(包括用户设定的约束)。步骤404随后通过从到达时间减去所需时间来计算 时序松弛。注意,步骤404有效地确定是否发生时序违反。并发地,步骤406接收输 入405,该输入405包括D引脚至Q引脚延迟(Q是输出端子)以及CLK引脚至Q 引脚延迟。步骤406通过从D至Q延迟减去CLK至Q延迟来计算“德尔塔δ(delta)”。 注意,只有当发生时序违反时(如由时序松弛值所指示)才必须考虑德尔塔值。然而, 为了计算方便,针对每个透明锁存器计算德尔塔值(注意,时序松弛值被并行地计算)。

步骤407确定时序松弛加上德尔塔是否小于或等于零(即非正)。如果是, 则步骤409指示锁存器具有零的借用/借出值(其中借入/借出是指锁存器具有“借用” 或“借出”特性)。如果不是,则步骤408指示锁存器具有等于在步骤404中计算的 值的借用/借出值。步骤410结束借用/借出确定。注意,虽然步骤401-410被描述为 针对角1来执行,但是类似的步骤针对所有的角(即角1-N)来执行。

图4B例示了用于在STA中处理跨多个角的透明锁存器的基于样本的技 术。步骤411通过标识设计中的下一个锁存器来开始。步骤412确定该锁存器是否是 透明锁存器。如果该锁存器不是透明锁存器,那么标识下一个锁存器。如果该锁存器 是透明锁存器,那么步骤413接收所有角的到达和所需样本,并且通过从所有角的到 达时间减去所需时间来计算时序松弛样本。并发地,步骤414针对所有角接收D至Q 延迟样本和CLK至Q延迟样本并且通过从D至Q延迟减去CLK至Q延迟来计算“德 尔塔”样本。(注意,在步骤413中描述的样本的示例性输入和输出矢量被示出以便 读者理解——类似的输入和输出矢量被用于涉及样本的任何步骤,但是为了简明起见 并未示出。)步骤415确定时序松弛矢量中的每个时序松弛样本和德尔塔矢量中的相 应德尔塔样本之和是否小于或等于零(即,该和应用于两个矢量中的相应位置)。如 果是,则步骤417指示矢量418的指定样本具有为零的借用/借出值。如果不是,则 步骤416指示矢量418的指定样本具有等于(在步骤413中计算的)时序松弛值的借 用/借出值。注意,矢量418中的负值意味着锁存器借给下一个阶段,而正值意味着 从下一个阶段借用锁存。步骤419结束借用/借出确定。

为进一步例示,图5例示了透明锁存器501、502、503和504的示例性集 合,其连接逻辑配置505、506和507。在图5所示配置中,锁存器501、502、503 和504分别接收时钟信号CLK1、CLK2、CLK3和CLK4。矢量508和509分别是锁 存器502和503的基于样本的矢量(参见图4的矢量418)。在图5中,矢量508或 509的样本的非零值代表具有一值(以指定单位)的“借用”样本,该值与需要从流 水线中的下一个透明锁存器借用的用于确保不发生时序错误的量相等。例如,对于(锁 存器502的)矢量508中的第一样本,需要从锁存器503借用10个单位(例如,微 微秒)。矢量508或509的样本的零值代表“非借用”样本,即不需要借用。

注意,矢量中的样本的次序可跨矢量一致,以便于参考图4B所述的计算。 因此,例如,矢量508和509的第一样本(图5)指示Q2和D3之间的时序改进了3 个单位(10-7)。的确,通过使用基于样本的锁存器借入技术,STA引擎可容易地确 定在几个迭代中对于透明锁存器的现有顺序而言收敛是否是可能的,其中在该几个迭 代中以选择的顺序接连地处理锁存器。注意,这种借用仅限于那些通过诸如单元和网 之类的组合元件来串联连接的透明锁存器。因此,流水线中的触发器有效地结束了透 明锁存器从流水线中的下游透明锁存器借用的能力,这对于STA领域中的技术人员 而言是已知的。在一个实施例中,可随着时间针对设计执行基于样本的锁存器借用技 术(图5)的多次迭代直至所有的透明锁存器被解决。

显著地,可将经合并的控制流程和有效负载技术应用于STA的又一些其 它方面。例如,可将该技术应用于时钟再收敛悲观主义移除(CRPR),在本文中对 此进行简要描述。图6A例示了触发器601、602、603和604的示例性集合,其连接 逻辑配置605、606和607。在图6A所示配置中,触发器601、602、603和604分别 在引脚CLK1、CLK2、CLK3和CLK4处接收时钟信号。注意,所有的时钟信号都是 得自于CLK,即在引脚CLK2处接收的信号是缓冲的CLK信号(基于两个反相器), 在引脚CLK3处接收的信号是反相的CLK信号(基于三个反相器),以及在引脚CLK4 处接收的信号是缓冲的且有逻辑条件的CLK信号(基于两个反相器和NAND门)。

如首字母缩写词所指示,CRPR涉及减少时钟网络中的悲观主义。例如, 参考从Q2到D3的数据路径,节点N2是去往CLK2引脚(触发器602,其具有输出 引脚Q2)的第一时钟路径与去往CLK3引脚(触发器603,其具有输出引脚Q3)的 第二时钟路径之间的公共节点。在STA中定义该数据路径时,发起路径可被定义为 包括节点N1与N2和引脚CLK2、Q2与D3,而俘获路径可被定义为包括节点N1、 N2、N3和引脚CLK3。

典型地,为在STA的时序中保守起见,数据被定时为尽可能地慢且时钟 被定时为尽可能地快。该假定在STA中产生了显著的问题。例如,考虑反相器609, 其位于节点N1和N2之间。反相器609对发起路径和俘获路径是公共的。为在STA 中保守起见,反相器609须被定时为对于发起路径是“慢”的且对于俘获路径是“快” 的,这在实际制造的电路中在物理上是不可能的,并且这将因此导致STA中的不必 要的悲观主义。CRPR可用于除去这种不必要的悲观主义。具体地,CRPR可移除发 起路径和俘获路径的公共元件的慢与快(即,最小到达时间与最大到达时间)之间的 差。

为了执行该功能,还可考虑基于图的分析的复杂性。即,如果多个逻辑配 置馈送进输入引脚中,例如逻辑配置606和608(具有相关联的上游触发器,为简单 起见未予示出),则确定发起路径和俘获路径变得混乱。CNG(时钟网络图)可用于 对设计中的单元进行分组,从而允许消除诸单元组之间的共性。注意,在Jindrich Zejda 和Paul Frain所著的发表于ICCAD2002:632-639的题为“General framework for  removal of clock network pessimism(用于移除时钟网络悲观主义的通用框架)”的文 章中进一步详细地讨论了CNG。

根据CRPR的一个方面,首先创建CNG,然后合并CNG的某些节点。图 6B例示了用于创建所有角的CNG的常规技术。步骤611通过标识设计中的下一个时 钟节点来开始。步骤612确定该时钟节点是否是离散时钟节点(例如,在图6A中, 当考虑数据路径Q2至D3时节点N2是离散时钟节点)。如果该时钟节点不是离散时 钟节点,则标识下一个时钟节点。如果该时钟节点是离散时钟节点,则步骤614接收 输入613,该输入613包括在该时钟节点处的最大上升到达时间和最小上升到达时间。 步骤614随后通过从最大上升到达时间减去最小上升到达时间来计算上升CRPR。并 发地,步骤616接收输入615,该输入615包括在该时钟节点处的最大下降到达时间 和最小下降到达时间。步骤616通过从最大下降到达时间减去最小下降到达时间来计 算下降CRPR。步骤617将每个离散时钟节点的上升和下降CRPR存储在角1的设计 中,其形成角1的CNG。注意,虽然步骤611-617被描述为针对角1来执行,但是类 似的步骤针对所有的角(即角1-N)来执行。

图6C例示了用于生成所有角的CNG的基于样本的技术。步骤621通过 标识设计中的下一个时钟节点来开始。步骤622确定该时钟节点是否是离散时钟节 点。如果该时钟节点不是离散时钟节点,则标识下一个时钟节点。如果该时钟节点是 离散时钟节点,则步骤624接收输入623,该输入623包括在该时钟节点处的最大上 升到达时间和最小上升到达时间的样本的矢量。步骤624随后通过从最大上升到达时 间减去最小上升到达时间来计算上升CRPR样本(其中在矢量中具有相同位置的样本 优选地涉及相同的角,从而便于步骤624中的操作)。并发地,步骤616接收输入 625,该输入625包括在该时钟节点处的最大下降到达时间和最小下降到达时间的样 本的矢量。步骤626通过从最大下降到达时间减去最小下降到达时间来计算下降 CRPR样本。步骤627将离散时钟节点的上升和下降CRPR的样本的矢量存储在针对 所有角的设计中,其形成角1-N的CNG。

图6D例示了用于提供CRPR的常规技术。步骤631标识了两个离散时钟 节点(在此通常描述为节点1和节点2)(返回参考图6A,节点1和2可以是节点 N1和N2,或者节点N2和N3,其每一组形成离散时钟节点的集合)。步骤634确定 下降CRPR1和下降CRPR2(经由输入632和633提供)之间的差的绝对值是否小于 预定的CRPR阈值(典型地被用户定义为对STA的输入)。如果是,则步骤636将 节点1标记为节点2的CRPR参考节点(即,与节点2有关的数据被删除且涉及节点 2的任何未来STA过程被替代地引导至节点1)。步骤636确定上升CRPR1和上升 CRPR2(也经由输入632和633提供)之间的差的绝对值是否小于预定的CRPR阈值 (其可与先前所述的阈值相同或不同)。如果是,则步骤636将节点1标记为节点2 的CRPR参考节点。注意,在步骤634和635中的任一步骤中的“真”确定导致在步 骤636中对节点的标记。在另一方面,如果在步骤634和635中的任一步骤中做出“假” 确定,则不合并这两个节点(为简单起见未予示出)。因此,一旦步骤634或635满 足阈值要求且在步骤636中执行标记,则在步骤637可结束合并。注意,虽然步骤 631-637被描述为针对角1来执行,但是类似的步骤针对所有的角(即角1-N)来执 行。

图6E例示了用于提供CRPR的基于样本的技术。步骤641标识了两个离 散时钟节点,例如节点1和2。步骤644确定下降CRPR1和下降CRPR2(经由矢量 642和643提供)的样本之间的差的绝对值是否小于预定的CRPR阈值。如果是,则 步骤636将节点1标记为节点2的CRPR参考节点。步骤634确定下降CRPR1和下 降CRPR2(也经由矢量642和643提供)之间的差的绝对值是否小于预定的CRPR 阈值(典型地被用户定义为对STA的输入)。如果是,则步骤636将节点1标记为 节点2的CRPR参考节点。步骤637结束针对角1-N的节点1和2的合并。在另一方 面,如果在步骤644和645中的任一步骤中做出“假”确定,则不合并这两个节点(为 简单起见未予示出)。在一个实施例中,这种假确定可基于矢量中的最大差值,即确 定该最大差值是否小于预定的阈值CRPR_阈值(CRPR_threshold)。

注意,从CNG的角度来看,可能过度地渴望确定节点的特定合并以获得 优化的悲观主义移除。但是,合理的目标是移除至少一些悲观主义,从而减少数据存 储。注意,从概念上讲,所有成对的节点被选择且一次比较一对。但是,在一个实施 例中,为了计算机处理效率起见,可按CRPR值的次序将所有节点分类,接着可将具 有相同CRPR的所有节点拓扑分类。随后,可将具有最小CRPR值的节点挑选为中枢 节点,并且可将所有其它节点与其相比较且如果CRPR差小于在图6B所述技术中所 描述的预定阈值则将其与中枢节点合并。如果下一个节点不能与最小节点合并,则该 下一个节点变成中枢节点且所有剩余节点与其相比较,等等。

例如,返回参考图6A,可能节点N3可被忽略,并且节点N2可被指定为 数据路径Q2至D3以及Q3至D4两者的公共节点。在这种情况下,对于CNG可存 储较少的数据,因为可取出与节点N2和N3之间的延迟相关的最小和最大数据之间 的差。注意,在技术设计的状态中,可初始地提供上百万个节点或更多的节点。在一 个实施例中,通过使用CRPR,节点的数量可被显著地减少一个量级。注意,除了减 少存储器空间之外,减少节点的数量还可减少可能的计算,从而减少STA运行时间。

注意,上述基于样本的STA可被应用于其它STA操作,包括但不限于报 告、串音以及噪声计算。

如以上所指示,执行多角基于样本的STA可提供与常规STA相比显著的 优点。例如,因为只有单次运行,且时序基础结构(例如,读取网表、读取寄生数据、 构建时序图,等等)被所有角共享,所以多角分析所必需的计算资源被最小化。当使 用分布式多核时序分析时这种共享变得甚至更加有利,其中甚至单次角运行也需要多 个机器(典型地多于5个机器)。在2010年6月15日授权的题为“SYSTEM AND  METHOD FOR PROVIDING DISTRIBUTED STATIC TIMING ANALYSIS WITH  MERGED RESULTS(用于提供具有经合并的结果的分布式静态时序分析的系统和方 法)”的美国专利No7,739,098中进一步详细地描述了分布式多核时序分析,上述专 利通过引用结合于此。

此外,针对所有的角样本仅仅执行控制逻辑代码和其它共享逻辑时序代码 一次可提供与若干次单角运行相比固有的计算速度提升。同样,给定共享的基础结构 以及对所有多角到达和松弛时序样本的快速访问,通过简单地查看在任何时序节点处 的所有样本,可按隐含的方式高效地执行诸如标识报告时序中的关键路径设置之类的 概要/报告任务。相反,在许多当前多角流程中,来自每个单独角的时序结果必须被 明确地合并以获得关键路径设置。显著地,如以上CRPR实施例所示,共享的时序基 础结构还可提供减少容量的机会,因为跨多个角的运行数据可被压缩(编码)而不会 大大降低准确性。2010年6月11日提交的题为“EFFICIENT DATA COMPRESSION  FOR VECTOR-BASED STATIC TIMING ANALYSIS(用于基于矢量的静态时序分析 的高效数据压缩)”的美国专利申请12/814,421描述了用于数据压缩的多种技术,该 专利申请通过引用结合于此。

上述基于样本的STA可以有利地在一个或多个计算机程序中实现,该一 个或多个计算机程序在包括至少一个可编程处理器的可编程系统上执行,该至少一个 可编程处理器被耦合成从和向数据存储系统、至少一个输入设备和至少一个输出设备 接收和传送数据和指令。每一个计算机程序都可以用高级过程或面向对象编程语言、 或者在需要时用汇编或机器语言来实现;并且在任何情况下,该语言都可以是经编译 或经解释的语言。合适的处理器包括例如通用和专用微处理器以及其它类型的微控制 器。一般而言,处理器将从只读存储器和/或随机存取存储器接收指令和数据。一般 而言,计算机将包括用于存储数据文件的一个或更多个大容量存储设备;这类设备包 括诸如内置硬盘和可移动盘等磁盘、磁光盘和光盘。适于有形地实施计算机程序指令 和数据的存储设备包括所有形式的非易失存储器,例如包括:半导体存储设备,诸如 EPROM、EEPROM和闪存设备;磁盘,诸如内置硬盘或可移动盘;磁光盘;以及 CD-ROM盘。上述各项中的任一个可由专用集成电路(ASIC)补充或被结合在ASIC 中。

本文中所描述的实施例不旨在是穷尽性的,或者将本发明限于所公开的确 切形式。由此,许多修改和改变将是显而易见的。例如,重新使用现有的基于样本时 序引擎也为多角分析提供了易于重新使用针对统计静态时序开发的基础结构和应用 的极大机会。例如,通过采用诸如变化寄生处理之类的统计静态时序方法以及快速延 迟计算方法(例如,缩放、数值回归模型)在几乎恒定的时间内高效地计算跨多个角 的单元延迟,可显著地使多角分析速度提升。进一步的示例包括重新使用诸如多线程 和分布式分析之类的多核编程技术的能力,这些技术当前被用于静态时序分析。

注意,基于样本的STA技术可用于对具有多个电压域的电路设计执行高 效时序分析。电压域是由常见电压调节器供电的单元的集合。由于电压调节器的变化 或者供电网上的电压降落,域的供电电压可在低/高电压范围内波动。显著地,跨不 同电压域的供电电压可独立地变化。在这种设计中,可俘获域内路径以及跨域路径的 最差情况时序。域内路径是其所有单元和网位于相同电压域内的时序路径。跨域路径 是其一些单元或网被分布在不同电压域中的时序路径。

例如,图7A示出两条路径701和702,这两条路径被分别例示为域内路 径和跨域路径(用于电压域V1:[V1L,V1H]和V2:[V2L,V2H])。对于域内路径,需 要两次STA运行来俘获最差情况时序。因此,对于域内路径701,基于样本的STA 可使用由两个样本(即,V1L和V1H)组成的矢量来计算在域V1的低/高电压下的 时序。对于跨域路径,STA必须列举跨电压域的每一低/高电压组合,从而导致矢量 中的2N次STA运行来俘获最差情况时序,其中N是电压域的数量。因此,对于由 路径分段702A和702B组成的跨域路径702,四个样本(即,V1L/V2L,V1L/V2H, V1H/V2L以及V1H/V2H)可用于列举这两个独立域之间的所有可能的电压组合。为 了正确地标识跨域路径并确定此类路径的样本计数,在计算时序信息之前需要对电路 拓扑进行单独分析。基于样本的STA可在单次STA运行中执行多个电压域分析,从 而消除了指数数值的STA运行的需要。

图7B例示了如何通过减少跨域路径所需的样本来改进图7A所述的基于 样本的多个电压域分析。在图7B中,对于跨域路径702的起源于电压域V1的路径 分段702A,仅有两个样本(即V1L和V1H)可被使用。在域V1和V2的边界处路 径702的跨域路径分段702B的样本计数被加倍,其在电压域V2中结束(即,V1L/V2L, V1L/V2H,V1H/V2L,V1H/V2H)。为了正确地重构给定电压组合的时序信息,需要 特殊处理来将这两个跨域路径分段(例如,路径分段702A和702B)与域边界处的不 同样本计数对准。例如,可通过将域V1中的路径702的矢量的第二样本(V1H)与 域V2中的矢量的第三样本(V1L/V2H)对准来获得V1H/V2L组合的时序信息(为 了方便在图7B中以黑体示出的样本)。这种增强去除了在单独电路分析中标识跨域 路径的需要。这种增强还允许跨域路径在到达下一个电压域之前自适应地使用较低的 样本计数,从而减少用于多个电压域分析的基于样本的STA的存储器和运行时间。

因此,本发明的范围旨在由所附权利要求书及其等效物定义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号