微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 复杂SoC设计中的功率管理 (下)

复杂SoC设计中的功率管理 (下)

时间:09-17 来源:互联网 点击:
1.4 多阈值设计

多供电电压岛与多阈值综合之间可以良好配合,通过在关键的时序路径上采用低Vth单元和在非关键的时序路径上采用高Vth单元这样的优化手段能够满足时序目标。如果芯片供货商提供了与状态相关的泄漏模型,则利用它们可以获得更好的泄漏结果。

根据设计团队所采用的方法或选择,可以将one-pass或two-pass的综合流程应用于多阈值设计。初次综合可采用低Vth、高性能库来执行,随后采用多Vth库来进行增量编译,以降低泄漏电流。对于时序和泄漏均十分重要的设计,可同时采用多Vth库来执行one-pass综合。这种设计首先对时序进行了优化,然后在不影响已实现的时序效果(即worst negative slack,WNS)的条件下,再对泄漏功率进行优化。功率优化后,再进行面积优化。不论是采用one-pass流程,还是two-pass流程对泄漏功率进行优化,在综合环境(使用Power Compiler搭配Design Compiler或Physical Compiler)中都推荐采用多Vth库。

流程的实现要依靠合理的泄漏约束,此约束在Power Compiler中由set_max_leakage_power命令指定。

2 综合中的功率优化

综合工具能够通过采用如RTL级门控时钟插入和门级功率优化等技术来优化功率设计。这些技术由Power Compiler结合Design Compiler和(或)Physical Compiler共同实现。

当无需触发器的输出信号时,RTL级门控时钟能够将通向大型寄存器组的时钟信号关断。图6所示为没有门控时钟和带有门控时钟的设计编辑的同步负载使能电路的比较。Power Compiler能够自动插入门控时钟电路,将图6a中的反馈网和多路转换器替代为图6b中的锁存器和插入到寄存器时钟网的双输入门电路。


由于门控电路取代了多路器,因而这种类型的门控时钟对面积的影响相对不大,而且,实际上还能将面积缩减5~15%。Power Compiler能够自动实现这种门控电路,而且不需要改变RTL代码。

Power Compiler还能采用库中的ICG来替换手动插入的门控时钟。这项功能能够支持那些在物理流程中拥有手动门控时钟的传统模块或IP。Power Compiler能够识别ICG中与功率相关的属性,从而有助于此类单元的布局。对于门控时钟的高级用户,Power Compiler能够通过实现多级门控时钟,来节省更多的功率。在这项技术中,一个门控时钟单元代替寄存器组,作为另一个门控时钟单元的馈入。

RTL级门控时钟能够以多种方式节省功率:由于时钟信号不必持续馈入寄存器组,因而内部功耗降低;由于时钟网络中的电容值减小,因而开关功耗降低;由于下游逻辑电路并未改变,因而功耗还能够进一步降低。

在Power Compiler与Physical Compiler协同工作时,门控时钟单元的布局得到了优化。在Physical Compiler流程中,Power Compiler确保门电路单元能够就近放置在一起,门控电路部件与其所驱动的部件也能靠近放置,这样的布局减少了其它方式中门控时钟可能出现的时钟扭曲。

除非加入特定的可测性设计,否则门控时钟会导致芯片的可测性下降。由于时钟信号是由内部信号进行控制,所以测试工程师无法控制可测性设计扫描触发器的负载。这个问题可以通过在测试编辑过程中增加一个测试引脚,并将其指定为一个固定值(1'b1)来加以避免。添加了控制点的门控时钟电路如图8所示。


Power Compiler的set_clock_gating_style指令的选项能够在门控时钟中指定所添加的具易测性的逻辑电路的数量和类型,以此改善芯片的可测试性。例如,可在门控时钟锁存器前后添加一个用于测试的控制点,并且选择test_mode或scan_enable模式,还可通过其它选项增加可观察性逻辑或者增加建立时间和保持时间裕量。若要使用Design Compiler的check_tes指令或check_dft指令,则要先使用hookup_testports和set_test_hold 1 Test_Mode指令。

门控时钟不应在具有由Design Compiler实现的主/从触发器的变量(或信号)的设计中使用。Design Compiler采用clocked_on_also信号类型属性来实现这些触发器。但在门控时钟发生的抽象层面上,Power Compiler不能识别出这项属性,而只能将触发器的从时钟信号进行门控。可以使用set_clock_gating_signals指令,将特定的由主从型触发器实现的设计变量(或信号)排除在外:

dc_shell> set_clock_gating_signals -design TOP -exclude

{ A B }

总之,最佳的代码编制是由以下四种方式中的任意一种实现的基本同步负载使能,这些实现方式可以混用,也可以相互嵌套。

"If-Else"语句
条件赋值
"Case"语句
"For"循环

除了RTL级优化外,Power Compiler还采用下列门级优化技术(按优先次序排列),同时对功率、时序和面积进行优化:

尺寸选择(sizing);

优化技术(technology mapping) ;

引脚交换(pin swapping) ;

因子分解(factoring);

缓冲器插入(buffer insertion);

相位分配(phase assignment)

这些优化要求采用具有功率特性的库。由于Power Compiler自动保持时序,并在设计人员的约束下维持设计的面积,因此,这项工具实现了门级的“一键式”(push-button)功率节省。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top