随着power架构和复杂电压域划分的复杂性不断增加,同时推动这些复杂power逻辑的功能和物理验证变得势在必行。然而,尽管工程师做了不懈努力地验证工作,一些问题仍可能会被跳过并进入硅片。为避免因低功耗问题导致芯片故障,工程师需要找到最先进的方法来管理预期外的低功耗问题。
CPF(Common Power Format)是一种描述power intent的标准格式,工程师使用它来描述设计的低功耗相关问题。如图 1(a) 所示,没有 CPF 的设计只有逻辑连接。但是,如图 1(b) 所示,一旦引入 CPF,设计的power连接关系也会出现。所有低功耗设计都必须符合 CPF 内定义的低功耗规范,因此应将其作为设计周期的一部分。
图1(a): Design state without CPF
图1(b):Design state with CPF
为确保设计符合 CPF 中定义的低功耗约束,需要使用相同的 CPF 执行静态和动态检查(static & dynamic low power check )。
起初,似乎单独使用静态验证或动态验证就足以发现所有与低功耗相关的问题,并且没有必要同时运行这两种检查。但实际上,情况并非如此。静态和动态低功耗验证中的每一个都有不同的验证范围,单独使用它们中的任何一个都不足以对设计进行稳健验证。
在本文中,我们将讨论使用通用 CPF 进行静态和动态低功耗检查的必要性。
Static low power verification的必要性
低功耗静态验证检查有助于在设计过程的早期使用形式验证技术(相对于仿真)验证低功耗设计的正确实施。这些对 RTL 的静态检查有助于预先找到 CPF 的完整性,确保 CPF 包含电源和电压域交叉的所有Isolation和level shifter规则。这将确保在两个电压或功率域之间不会遗漏任何low power cell。静态验证通过识别错误来体现价值,否则在 RTL 仿真中发现这些错误非常困难且耗时。
但是有些问题无法使用静态检查来发现。让我们详细讨论其中的一些场景。
现在考虑具有两个电源域(常开和可切换)的设计,并且存在从可切换电压域到常开电压域的交互,如图 2 所示。
图2 从可切换电压域到常开电压域的交互
logic_0 level的Isolation应该插入在此交叉点。现在,时序优化期间的逻辑重组发生在交叉点上,此时在net添加了一对反相器,如图 3 所示。
图3 从可切换电压域到常开电压域的逻辑重组
现在,如图 4 所示,当 logic_0 level的Isolation插入此交叉点时,设计在正常功能模式操作期间工作正常,因为在这种情况下隔离单元处于旁路模式。但是当设计进入待机模式时,Isolation通过“iso_en”信号启用。随着Isolation的触发,一个常量(例如“逻辑 0”)将从隔离单元的输出传播到常开电压域。在待机阶段,“逻辑 0”被Isolation强制赋值,但由于在优化期间添加了反相器,“逻辑 1”到达可切换电压域中的逻辑,这将破坏设计的功能。
图4:重组逻辑上的Isolation
静态验证检查无法验证可以断言关键低功率信号的时序器件。一种此类检查的基本示例是isolation assertion检查,它确保隔离控制信号在电源关闭之前断言,然后在隔离控制取消断言之前重新打开电源,如图 5 所示。
图5:Iso_En信号和power的时序关系
动态低功耗检查有助于验证所有电源管理元件的功能。为了实现这一目标,它使用了一组刺激:DUT(测试中的设计),捕获设计的逻辑功能;CPF(通用电源格式),捕捉设计的电源意图。
激励是根据power intent和 DUT 的功能准备的信号组合。根据提供的激励,RTL 的某些部分被关闭,同时保持某些部分始终处于开启状态。模拟器强制 Xs,将来自关闭电压域的信号发送到常开电压域,以模拟它们的关闭状态。如果所需的功能没有因为这些 X 中的任何一个而损坏,那么从低功耗的角度来看,该设计被认为是合规的。
但是有些问题无法使用此方法捕获。如果置之不理,这些问题可能会导致芯片故障。让我们详细讨论其中的一些场景。
考虑一个设计,其中两个模块在两个不同的电源(1.2V 和 3.3V)上工作。如图 6 所示,从 1.2V 电压域到 3.3V 电压域的信号需要Level Shifter。该单元的目的是将电压从低电平转换为高电平。
图6:1.2V →3.3V电压域的Level Shifter
从逻辑功能上讲,Level Shifter功能类似于BUFFER的功能(即输出 = 输入)。因此,如果某个地方缺少电平转换器单元,仿真工具不会标记任何错误,但实际上它可能会导致短路电流,从而导致硅故障。
考虑具有两个不同电源域的设计,如图 7 所示:常开域 PD_AO 和可切换电压域PD_SW。
图7:测试逻辑上的Isolation
在待机模式下,PD_SW 将关闭,但 PD_AO 将打开。因此,从 可关断电压域到常开电压域的每个信号都需要Isolation cell。让我们考虑一个触发器(存在于可关断电压域中),其输出连接到存在于常开电压域中的触发器的扫描输入引脚(通过一些缓冲区)。
如果此交叉点上缺少隔离单元,仿真工具将不会标记任何错误,因为在功能模拟中不会检查此类路径。但由于关断域不再驱动它们的输出,并且它们的输出成为float point,交叉时意外的信号值可能会由于不合适的逻辑电平而导致高电流消耗,并可能导致硅故障。
对于数字仿真工具,所有power net都被视为相同的,而不管与该power net关联的电压水平如何。因此,如果在Analog block上进行了一些错误的电源连接,则可能无法使用仿真来捕获它,并且可能导致硅故障。
http://mantravlsi.blogspot.com/2020/08/clp-low-power-check.html
https://www.design-reuse.com/articles/32170/a-need-for-static-dynamic-low-power-verification.html