从RTL到GDSII整个流程的功耗优化设计指南

IC低功耗设计当前,数字集成电路(硅晶片)的设计日益变得越来越大型化和复杂化—包括ASIC, ASSP与片上系统(SoC)—设计的功率收敛和电路的功率完整性开始逐渐成为工程资源中的主流问题,进而有效器件整体的面市时间。在便携式(通常是无线的)电子系统中,逐渐增加了电池供电的使用,推动着对消耗最小功率的器件的需求。同时,这些产品的物理体积也变得越来越小,消费者日渐成熟,他们需要的是更多的功能,更长的电池寿命。举例说明,一款时髦的移动电话,可能包括以下特征,如个人记事本功能、游戏功能、照相并传输照片、连接到互联网等等。不管功能如何增加,然而,一个普通移动电话的重量不会超过4盎司,而且消费者希望在通话和操作时电池能够持续至少三个小时,待机模式下至少能持续五天或者更长时间。本文首先探讨了最重要的功率消耗和功率分配等注意事项。然后介绍真正的低功耗设计环境,能够满足贯穿整个RTL到GDSII设计流程中功率设计的需求。

而在另一个层面,一些器件的大部分功率损耗都会导致重要的设计问题。例如,一款新近发布的CPU在1.3伏时消耗电流量为100安培,功率相当于130瓦!这一类的器件需要昂贵的封装和散热配置,整个芯片上的热梯度,可能会导致机械应力,进而过早地导致器件故障,因此如何在芯片中物理的实现所有功率并不是小事一桩。所以,即便是将器件用于非便携的设备上,依然存在着大功率的问题,在面对这些电源供应和冷却系统的尺寸和成本问题时,有功率意识(功率监控)的设计能够实现有竞争力的优势。

当半导体行业从一个技术标准移植到另一个技术标准时,目前的功率约束就显得非常吃紧,新的约束便相继出现。关乎功率的约束正被加以利用,贯穿在整个设计流程中,从而实现器件最佳的性能和可靠性。在目前超大型、超复杂的设计中,实现可靠的电源网络和最小的功率消耗已经成为设计团队面临的主要挑战。

实现最优化的低功耗设计需要在设计流程的不同阶段权衡,诸如时序对功率和面积对功率等因素的折衷。成功的功率敏感设计要求工程师们具备准确、高效地完成这些权衡的能力。为了能够实现这一目的,设计师需要授权使用正确的低功耗分析和最优化引擎,这些功能要求集成在整个RTL到GDSII流程中,而且要贯穿全部流程。

此外,为了处理各种效应之间的复杂关系,必需利用整合的设计环境,在流程中,所有的功率工具都相互完全集成在一起,同时与其它的分析和实施引擎整合在一起。例如,变化单元的尺寸会影响他们的关联电流(以及功耗),进而影响了与这些单元相关的电压降。为了充分地计算压降效应的效果,必须要衰减时序-一个单元一个单元地执行-以实际的电压下降为基础。接下来时序分析引擎利用衰减的时序数据识别出关键路径上的潜在变化。然后,最优化的引擎做出相应的单元尺寸调整,以满足随时序变化引起的潜在的设置或保持问题。这些变化再一次地影响电流,电流影响了压降,依此类推。如果由于缺乏一个整合的设计环境而无法解决这些相互关系中的任一环节,那么就会在激烈市场竞争中被竞争对手的低功耗设计击败。

本文首先探讨了最重要的功率消耗和功率分配等注意事项。然后介绍真正的低功耗设计环境,能够满足贯穿整个RTL到GDSII设计流程中功率设计的需求。

功率消耗相关事项
动态功率消耗
这些讨论中假定使用的是互补型金属氧化物半导体(CMOS)器件,原因是CMOS是目前最流行的数字IC实施技术。动态功率消耗发生在逻辑门由一个状态切换到另一个状态的时刻。在切换的过程中,与门极相关的晶体管内部电容被充电,因此会产生功耗。更为重要的是,门极也不得不为外部(负载)电容充电,外部电容由与下游逻辑门相关的线圈寄生电容和输入电容组成。

现在以一个简单的反相器门极为例,在任何情况下,通常两个晶体管T1和T2中只有一个是打开的(如图1所示)。然而,在门极从一个状态向另一个状态切换的过程中,晶体管T1和T2将在瞬间同时打开。因此在VDD(逻辑值1,电源)和VSS(逻辑值0,接地)之间将产生瞬态电流,后继的瞬态开路电流将导致瞬态浪涌功率。
互补型金属氧化物半导功耗演示
图1.当门极状态切换时,两个晶体管可能会同时被激活

两个晶体管同时被激活的总时长是他们的输入开关阈值和门极驱动输入信号转换(斜率)的函数。

控制反相器输入信号斜率的其中一个因素是形成逻辑门驱动信号的晶体管容量。要求它们要足够大,这样信号就能够迅速转换,进而将反相器晶体管同时激活的总时长保持在一个合理的水平(如图1b)。

下面讨论一下如果驱动门极的晶体管过大,过度驱动门极的情况。在这种情况下,通过保持反相器晶体管同时打开的时间最短来实现功率节约的想法就无法实现了(如图1a),原因是驱动门极必须为因晶体管过大而增加的电容充电,因此消耗了额外的功率。而且,过于迅速的信号转换也将引起噪音、过冲、下冲以及串扰等信号完整性问题。

相比而言,如果驱动门极的晶体管过小,门极驱动就显得不足,那么反相器的晶体管同时打开的时间过长(如图1c),因此会导致晶体管消耗掉无法控制的功率(不足的输入信号也会对与其它信号耦合产生的噪音和串扰极度敏感)。

应对动态功率消耗
基于介绍性文章的目的,动态功率消耗量的计算可以通过以下公式表示:
动态功率消耗量的计算公式
这些公式显示, 动态功率的消耗可以通过以下方式来改变:
减少电路活动次数
减少驱动电容值
减少供电电压值

减少开关活动次数的一个方法是减少系统时钟的频率。但是,减少时钟频率将给器件的性能带来相应的影响。另一种技术是使用时钟门控,能够限定时钟的分配,在某个时刻,只分配给那些正在执行有意义的任务的器件部分。也有可能通过应用适当的延迟平衡,达到最小化本地数据活动(瞬时脉冲干扰和潜在危害)的目的。

有很多方法可以减少电容值。其中一个方法就是缩小门极驱动的过驱线圈的大小,因而降低与这些门极相关的电容。另一个技术是利用有功率意识(功率验证)的布局布线算法,最小化关键线圈的长度,因此减少了关联寄生电容的大小。有功率意识的布局布线应该以与每个线圈关联的开关活动数量为基础(权重)。还有另一个可选择的办法是利用诸如低k电介质(绝缘体)材料或低阻抗/电容铜(Cu)轨等技术。

降低供电电压可以引人注目地减少逻辑门的功耗,但是同时也会极大地降低门极的开关速度。一个解决方案是利用多重电压区域,也就是说在芯片的不同区域应用不同的电压。在这种情况下,应该将与关键性能相关的功能块布置在更高的电源区域,而那些非关键功能应该布置在更低的电源区域。

在设计流程的算法和架构阶段,也可以在功能平行和频率和/或电压之间进行有意义的权衡。举例说明,将一个运行频率为'f',电压为'V'的逻辑时钟替换为两个同样的时钟,两个时钟各执行一半的任务,而每个时钟的运行频率和电压更低。在这种情况下,在保持性能不变的同时,该功能的总功率损耗得以降低,但是却占用了更多的宝贵的硅片空间。

静态功率消耗
静态功率消耗是指逻辑门不活动时(静止)的功率;也就是说,不存在从一个状态切换到另一个状态的时刻。此时,理论上这些门完全不应该消耗任何功率。然而,实际情况是,总会有一部分漏电流通过晶体管,这意味着它们的确会消耗掉一定的功率。

即使单个逻辑门的静态功率损耗非常非常低,但是由于现在的IC包括数以千万的门极电路,因此总体影响就变得非常严重了。此外,随着晶体管尺寸的紧缩,当半导体行业从一个技术标准移植到另一个技术标准时,半导体掺杂的水平也会增加,因此产生的漏电流也相对更大。最终的结果就是,即时器件的绝大部分都处于完全静止状态,可能仍然会消耗掉大量功率。事实上,在不久的未来,预计很多器件的静态功率消耗有可能会远远超过动态功率消耗。

应对静态功率消耗
在解决静态功率消耗时,必须要考虑两个关键的公式。第一个公式描述了晶体管的泄漏:
静态功率消耗公式
关于上面的公式重要的一点是,它表明静态功率消耗是温度(T)的指数。也就是说当芯片温度升高时,它的静态功率消耗将层指数级增加。

另一个要点是静态功率消耗是晶体管开关阈值(Vt)的指数。为了实现低功耗设计,IC代工厂提供了使用多Vt库的MTCMOS(多阈值CMOS)技术。这意味着每个类型的逻辑门都有两种(或更多种)形式:开关更快的低阈值晶体管,但是泄漏更高,功耗更大;或者开关更慢的高阈值晶体管,但是泄漏更低,功耗更小。

第二个公式描述了晶体管延迟(开关时间)与晶体管开关阈值(Vt)和晶体管供电电压(VDD)的影响关系:
静态功率消耗公式2

由于降低供电电压能够减少发热,进而降低静态功率消耗,然而,降低供电电压同时也会增加门极的延迟,这意味着工程师不得不进行一项复杂的平衡工作。相比较而言,降低晶体管的开关阈值,加速开关,但同时会导致泄漏呈指数增加,因此也增加了静态功率消耗。

利用上文动态功率消耗中讨论的多重电压区域是一种解决方案。另一个选择是只在关键的时序路径上使用低开关阈值(Vt)的晶体管,而在非关键路径则使用高开关阈值(Vt)的晶体管。当然也可以联合使用这两种解决方案。

当然还可以选择另一种技术,即当器件中的某些部分不需要启动时,利用不泄漏的晶体管来降低泄漏块。例如,当这些部分处于“待机”模式时。然而,开关整个块可能会导致巨大的电流浪涌,那么则需要使用额外的电路提供“柔和的”(分级的)电源来开关这些块。
功率分配需要考虑的重点
图2.功率分配需要考虑的重点包括总功率损耗、电压下降和电迁移效应。
功率分配相关事项
封装事项
当提及功率分配时,首要的问题时从外部获得功率,通过器件的封装,送到硅片自身。用来将功率分配到整个芯片的线圈存在关联阻抗-线圈越长,阻抗越大,关联电压下降也就更大。这意味着传统的基于外围功率焊盘的封装技术不再适用于目前超大超复杂的设计。

解决方案是使用倒装芯片的封装技术,其中焊盘横跨在晶粒面上,直接将电源从外部电源供应传送到芯片内部。除了能够支持许多电源和接地焊盘,这种方案同时也使得电源传输到芯片内部的距离最短。此外,倒装芯片封装技术中铅锡凸块的感应系数要远远低于传统封装技术中使用的连线键合的感应系数。

温度和性能相关事项
功率消耗-包括动态的和静态的-增加了器件的运行温度。因此,可能需要工程师们使用昂贵的器件封装和外部冷却技术。

为了适应不同的运行温度和供应电压,以往设计师们不得不增加器件的特性和设计余量。但是,利用过分保守的设计惯例来创建器件的电源网络也会占用昂贵的硅片空间,增加了拥挤度,导致器件的性能远远低于硅片的全部潜能。显然。这种方案根本无法适应目前竞争激励的市场环境。

还有另一个需要考虑地要点是片上温度梯度(由于不平衡的功率损耗导致器件上的不同部分温度不同)会产生机械应力,也可能会降低器件的可靠性。

电压下降效应
深亚微米(DSM)和超深亚微米(UDSM)器件属于易受电压降影响的器件,电压降是由从外部引脚分配源极和接地到内部电路的线圈网络关联阻抗引起的(在DC情况下-直流-相关的电压下降,通常也指压降IRdrop效应。以下电路图纯粹是为了提供简单的示例而准备的,一连串儿反相器门极与同一个电源和接地轨相连(如图3所示)。
电压下降
图3.一连串儿反相器门极与同一个电源和接地轨相连

每段源极和接地轨都有一小段关联阻抗。这意味着最接近IC的主电源和接地引脚的逻辑门(本例中指门极G1)拥有最优化的电源供应。链中的下一个门极(本例中指门极G2)的电源供应则要稍微差一些,依此类推,越是后面的门极就越来越差。

当存在瞬间或AC(交流)电压下降效应时,这一问题将更加恶化。当门极从一个值切换到另一个值时-甚至更糟糕-当整个时钟都在开关切换时,就会发生上述问题。将导致瞬时功率浪涌,可能会立刻减少门极的电压供应,更进一步影响电源供应链。如图3所示的简单电路仅由若干个反相器门极组成,但是实际的典型设计可能包括成千上万个由时钟信号触发的寄存器(存储)元件。时钟可能会导致大量的寄存器元件同时开关,进而在电源供应时产生严重的“瞬时脉冲干扰”。为了分析并解决这些效应,必须综合考虑这些可抗的、感应的、容性的影响。

电压下降效应如此重要的原因是当电压供应降低时,一个逻辑门电路的输入到输出延迟也会增加,最终将导致门极电路错过自己的时序规范。当关联线圈的门极驱动不足时,也会引起连接线延迟的增加。而且,当供应电压下降低时,一个门极的输入开关阈值将被修改,导致门极变得对噪音更加敏感。

由于当降低特征尺寸(如轨道宽度)时,源极和接地轨的阻抗会升高,因此电压下降效应正在变得日益重要。通过增加源极和接地轨的宽度可以最小化这些效应,但是会占用宝贵的硅片空间,一般会导致布线的拥挤问题。为了解决这些问题,不得不将逻辑功能布置得分开一些,但是会因更长得信号轨而增加延迟(和功率损耗)。因此,实施优化的电源网络需要平衡诸多变化的因素。

电子迁移效应 当轨道上的电流密度(单位面积上通过的电流)过高时就会产生电迁移问题。此时,电源和接地轨、电子迁移效应都是基于直流环境的。当电流流过轨道时在轨道中引起的金属离子迁移就是所谓的“电子风”。这种迁移将在“逆风”方向产生“空洞”,同时金属离子堆积在“顺风”区从而形成被称为“丘陵”(hillocks)和“晶须”(whiskers)。

发生在电源和接地轨上的电子迁移将导致时序问题,原因是由于空洞导致的轨道关联阻抗增加会引起相应的电压下降。因而,如上文所讨论的,将导致受影响的逻辑门的延迟和噪音敏感性加大。

由于空洞可能会最终导致开路,而同时“丘陵”和“晶须”可能会引起相邻线圈的短路,因此电源和接地的电子迁移也会引起严重的功能错误。

以真正的低功率设计环境成就理想性能
RTL-to-GDSII
在传统的设计流程中,功率权衡因素需要通过分离的工具来实现,而且无法判断它们对时序、面积以及周期时间的影响。单点独立工具和设计环境的其余部分之间缺乏整体性,可能导致数量庞大的“伪错误”,从而导致一个设计最终无法收敛。最坏的情况是缺乏整体性-加上极其有限的修正能力-将导致一个不可靠的功率网络,最终导致数量庞大的、耗时的设计迭代。

目前,大多数设计环境面临的另一个问题是在物理设计过程中要集中精力,全神贯注于分析并满足功率因素。这就使得修正由设计早期阶段缺乏决策引起的任何问题变成了几乎不可能的任务。

对真正低功耗设计环境的一个关键需求是利用当前尽可能多的数据资料,实现早期的如电压降影响分析,继而,随着流程的推进,利用更为准确的数据继续细化分析。这一特性使得潜在的问题能够被尽早识别,并尽快解决。

创建理想的低功耗设计涉及到在设计流程的各个阶段进行权衡折衷,诸如在时序和功率,面积和功率之间。为了使设计师们能够准确地、有效地实施这些权衡,有必要将低功耗优化技术整合到-并贯穿始终地应用-整个RTL-to-GDSII流程中。

低功耗设计和优化技术
目前,有一系列可被广泛应用的低功耗设计和优化技术。这些技术包括下列各项:
克隆
基板偏压
电压岛(利用多种供电电压;也被普遍称为多电压域multi -VDD)以及
电压调节
功率门控(包括MTCMOS和状态保持)
“加油站”理念
有功率意识的映射
利用具有多重开关阈值的晶体管(也被称为多VT)
有功率意识的平面规划和布局
有功率意识的解耦电容布局
有功率意识的时钟树综合
有功率意识的时钟门控和时钟门极多路克隆及反克隆
有功率意识的时序优化
迭代的功率网络设计
克隆(Cloning): 在设计的早期阶段(综合之前),RTL能够通过使用结构的优化进行修正,诸如将一个高功耗的逻辑功能块替换为相等量的多个低功耗功能块。一个有功率意识的设计环境应该能够推动针对不同微结构场景的“假设分析”研究,以评估与各种结构实施相关联的面积、功率以及性能之间权衡折衷。

基板偏压(Substrate Biasing): 在多数情况下,某个功能块只需在某个时间段内以最高速度运行;而在绝大多数时间内— 即使它们的功能性是必需的— 许多功能块能以降低的速度运行。对与某个特定功能块相关联的硅片应用基板偏压,将导致功能块在相对较低的速度运行,但是它将大幅度地降低该功能块的静态泄漏功率。

电压岛(Voltage Islands): 一项日渐普遍的技术是将设计分割成许多的“电压岛”— 即,将各个功能块与不同的供电电压相关联,如图4所示。(这一技术通常被称为多-VDD)。供电电压更低的电压岛性能也随之降低,但是显而易见的是,它们的动态功耗也将大幅度地降低。
多电压域(multi-Vdd)设计的类型
图 4.多电压域(multi-Vdd)设计的类型

当将设计分割为多个电压岛时,需要在网表中嵌入适当的电平相移器元件,来连接从一个电压域到另一个电压域的信号。一个真正有功率意识的设计环境应该能够自动地嵌入这些单元。

电压调节(Voltage Scaling):电压调节可被视为电压岛概念的增强形式,对某个功能块的供电可被定义为具有不同值的范围。这意味着与这样一类岛相关联的时序和信号完整性必须满足众多不同的“区域”—继而,需要一个低功耗环境能够处理协同的多区域、多模式优化。

功率门控(Power Gating):在尺寸更小的技术节点下,泄漏功率是一项主要关注因素。能够满足这一需求的一项技术是功率门控,意指当某个设计部分处于非活动状态时,有选择地切断该设计部分的电源(参见图5)。功率门控正在变得日益突出是由于该技术与其它技术相比实现了数量级的泄漏降低。这一概念是利用高阈值电压(high-Vt)的开关—MTCMOS开关— 来连接全局恒定电源线轨和局域开关电源线轨,使得局域的线轨能够根据供电状态开启或者关闭。这些开关也可以用来提供精细的、中等的以及粗精度的控制,从个体单元到单元群组,再到整个功能块。
分布式的多阈值CMOS
图 5. 分布式的多阈值CMOS.

这项技术中有一系列的因素需要加以考虑。例如,往返于域的信号能够被开启和关闭,需要特别的关注,这样才能够避免任何“浮动网络”问题。而且,当一个功能块被切断电源,稍候又重新启动时,通常有必要让该功能块恢复到其之前“优质”的运行状态。那么当前的问题是,缺省情况下,功能块的状态将随着电源的切断而消失。为了解决这一问题,在功能块电源被切断之前,需要将重要的寄存器值保存在内存,然后当功能块重启时再从内存中恢复该数值,然而这项操作将是相当耗时的。另外一个解决方案是有选择地使用状态保持寄存器;虽然这些寄存器比常规的寄存器占用更大的面积,当功能块的其它部分关闭时,尽管他们还会继续消耗能量,但是功能块就能够快速重启了。

另一个需要考虑的因素是为了控制设计的不同部分,一个设计中可能包含数百只MTCMOS开关。如果大部分开关同时启动的话,那么将产生无法接受的电流浪涌。解决这一问题的方案是让开关按照预先定义的顺序逐个开启。

“加油站”概念(The "Gas Station" Concept):我们现在来考虑这样的场景,设计中的某个部分由三个功能块组成,分别为A、B 和 C 。假定功能块B与功能块A和C的供电电源不同(也就是说,功能块B是电压岛)。同时假定功能块B位于功能块A和C之间,而且需要在功能块A和C之间路由一组信号 — 即需要一条128比特的总线。

如果这些信号被路由到功能块B周围,那么可能产生无法接受的延迟和/或布线拥塞。与之相比的是,如果这些信号穿过功能块B — 在缺省情况下 — 需要应用电平相移器单元,而且将产生更长的单元延迟。此外,如果这些布线不够长,那么这些信号在穿过功能块B的过程中可能还需要缓冲。显而易见的问题是,如果功能块B是功率门控的目标,那么当功能块B被切断电源时,这些信号将会“消失”,即被切断。

对于有功率意识的设计环境,解决方案是支持能够嵌入到更大电压岛的小型“嵌套式”电压岛(如图6所示)。这些嵌入的“加油”岛—将不再受到功能块B被关闭的影响—从而使得信号能够被路由到功能块A和C,而无需使用任何电平相移器单元。
处理复杂的多电压域(multi -Vdd)平面布局图
图 6. 处理复杂的多电压域(multi -Vdd)平面布局图。

有功率意识的映射(Power-Aware Mapping): 下列综合、有功率意识的映射技术能够被用于优化网表。这些技术包括将非常活跃的节点映射到特定的单元,以及将非常活跃的输入信号映射到低电容输入引脚。

多阈值电压晶体管/单元(Multi-Threshold Transistors/Cells): 在非关键时序路径上的单元中,综合和优化引擎能够选择由高阈值电压晶体管组成的单元;也就是说,晶体管具有高开关阈值。此类晶体管的优点是泄漏更低,耗能更少;然而,它们的开关速度不如低阈值电压晶体管的开关速度(这类晶体管泄漏更高,耗能更大,而开关速度要快得多)。

有功率意识的平面规划和布局(Power-Aware Floorplanning and Placement):一个先进的有功率意识的设计环境也应该能够在平面规划和布局过程中促进功率的优化。为了准确地实施多电压域,有必要针对每个域分别设定不同的功率网格。基于以它们的活动加权的网络而进行的有功率意识的单元布局可被用来最小化动态功耗。来自早期电压降分析的结果可被用于决定需要嵌入的缓存器的最佳位置。先进的簇技术可应用于时钟树,以降低功率损耗。

有功率意识的解耦电容布局(Power-Aware Decoupling Capacitor Placement): 通过增加适量的片上解耦电容能够最大限度地降低感应电压降的影响,这种影响是随着时间变化由片外电流突变引起的。为了降低键合线缆的电感和每个焊点的电流,多个焊点被分配给源和地,因而使得焊点布局分析成为了一项重要的任务。倒装芯片封装技术能被用来增加连接源和地供应的焊点数量,因而降低了焊点电流,从而使得电感值也随之下降。

有功率意识的时钟树综合(Power-Aware Clock-Tree Synthesis):贯穿在设计中的时钟树功耗是设计整体动态功耗的重要部分(在某些设计中,时钟树甚至占到整个芯片动态功率的60%,或者更多)。解决这一问题的第一步是使得设计环境具备有功率意识的时钟树综合特性,能够执行智能的簇优化(更好地平衡簇,以便在以后的流程中实现功率降低)。

有功率意识的时钟门控(Power-Aware Clock Gating): 传统的自动时钟门控算法对每个寄存器元件选通的结果(时钟树上的叶节点)相对而言不够智能化。除了增加布线拥塞之外,这种算法对叶节点而言是没有意义的,原因是叶节点在绝大部分时间内是活跃的。

一个真正有功率意识的设计环境必须能够支持更加成熟的时钟门控形式。除了使用来自仿真的活动(转换)分析来判别能够真正受益于时钟门控的节点,该环境还应该能够做到:

对时钟树上的多个点应用门控(针对节点、分支和主干)
执行时钟门极电路克隆,并确保克隆的时钟门极电路能够优化驱动稳定的叶节点簇(散热片)
有功率意识的时序优化(Power-Aware Timing Optimization): 在有功率意识的设计流程中,一个重要的因素是执行适当的时序优化。这意味着有必要贯穿整个流程执行基于域的时序和功率分析。而且,此类分析需要考虑由电源线轨上特定单元电压降引起的延迟增加。可能的潜在优化包括利用基于强度的综合流程来优化门极电路的规模,当MTCMOS 技术可用时,自动选择低和高的阈值电压。

迭代的功率网络设计(Iterative Power-Network Design):设计功率分布网络的过程应该基于早期当功率网格还没有完成时执行的线轨分析结果。芯片上正确的消耗元件分布能够有效避免热点和局部电压降问题,特定的线宽算法也能用来解决电压降和电子迁移问题。

整合的工具套件
目前,市面上有很多非常成熟的功率分析工具可供设计师选择使用。但是,一般来讲,这些工具通常是作为第三方单点解决方案而提供给使用者的,无法与设计环境主体紧密整合在一起。这些工具要么需要使用多个数据库,要么需要将完全不同的数据模型组合到一个数据库中。这意味着以这些工具为基础的设计环境必须要执行内部的和外部的数据转换以及文件传输,使得数据管理变得相当繁琐、耗时,而且容易产生错误。然而,最重要的问题是,在其后的设计规划中修正一个缺陷需要付出相当昂贵的代价。由于设计实施工具缺乏分析能力,无法自动执行修正,因此当修正工作必须手工完成时,这一缺点就显得尤为突出。如果在手工修正之后必须返回重新进行再分析时(而不是与修复同时进行),那么情况将变得更加糟糕,此时,一个明显的问题是要么修正没有起到应有的作用,要么可能会给设计带来新的,不一样的缺陷。

将不同的独立工具产生的结果关联在一起无疑是相当困难的,而且意味着有可能在设计周期完成之后才能发现问题,或者干脆就无法检测到错误。然而,对于现有设计环境而言,最重要的问题或许是在纳米设计领域,功率、时序和信号完整性的影响相互关联性非常之紧密,以至于传统的独立解决方案设计工具根本不具备通盘考虑这些影响和它们之间相互协作关系的能力。

举例说明,为了充分地计算出电压降效应的影响,非常重要的一点是要创造出一个能够分解时序的环境—以单元为基础逐个进行—以实际的电压降为基础。然后,时序分析引擎应该充分利用分解的时序数据来识别关键路径上可能存在的潜在变化。接下来,最优化的引擎将执行适当的修正来解决由时序变化结果导致的潜在的设置或保持问题。这就需要有一个能够确保功率分析、电压降分析、分解计算、时序分析以及优化引擎无缝整合运行的环境。如果缺乏这样一个整合的设计环境,设计师需要在不同的独立工具之间传递大量的数据(诸如SDF文件),并在其中重复该项操作,以解决由于电压降导致的延迟引发的时序问题。

在功率分析工具和设计环境其余部分之间缺乏整合可能会产生大量的“伪错误”,诸如设计部分中,微小的电压降不会影响器件的性能或功能。工程师们往往经常过渡补偿这些伪错误,对功率网格做出不必要的修改。进而,这一举动将导致这些设计部分无法满足它们的面积和时序约束,可能变得非常拥挤—而且对此问题做出的补偿又会在设计的其余部分引起连锁反应。时序目标的额外余量,干扰和信号完整性分析的额外余量,以及超宽的电源线轨等等因素组合在一起,最终将导致设计无法收敛。

最糟糕的情况是,功率分析工具和设计环境其余部分之间缺乏整合性—连同极其有限(即便有的话)的修复能力—意味着当功率分析的结果用于定位和隔离时序和/或信号完整性问题时,修正这些问题的行动本身有可能会在功率网络中引入新的问题。从而引发大量的、耗时的设计迭代。

最终,利用独立解决方案的功率分析工具必将导致无法收敛的解决方案,使得设计无法满足它们的面市时机(或者根本无法实现)。因而,一个真正的低功耗设计环境应该具备让所有的功率分析工具和实施工具协同运行的特性,这些工具包括综合、布局和布线、时钟树、提取、时序和信号完整性分析。此外,环境中的所有工具应该能够以一个统一数据模型为基础运行,为分析数据提供了协调一致的存取访问,确保了对设计“实时在线”变更。

总结
为了解决与深亚微米(DSM)和超深亚微米(UDSM)器件相关的问题,需要能够贯穿整个RTL-to-GDSII设计流程的功率设计和分析工具。在流程后期识别并解决功率问题需要代价高昂的、耗时的迭代反复。过度保守的分析和设计根本无法适应当前竞争激烈的市场环境。设计师需要的是贯穿在整个设计流程中识别并解决这些问题的能力,而且一旦这些问题已经解决并确认为“安全可靠”的之后,就应该能够做到“忘记”这些问题。

为了处理各种效应之间复杂的相互关系,有必要让设计系统的架构能够与所有的其它功率工具彼此完全整合在一起,同时也能够与流程中的其它分析和实施引擎相互整合,包括综合、布局和布线、电压降分解、时序、优化和信号完整性分析。这种流程的架构应该能够保证所有的实施和分析引擎都能够通过一个统一数据库模型协同访问设计数据,而且通过一个工具所做出的任何变更,都能够立即被其它工具检测并验证。利用其中产生的收敛算法能够迅速地判定最优化的解决方案,而无需采取耗时的迭代。

功率—以及有效管理功率的能力—都整合在架构体系中。
本文摘自Magma官方网站

评论

不错的文章,最近正在开始做一个涉及低功耗的项目,收藏了

星期二, 04/07/2009 - 00:55 — sufoy