两种常见的功耗来源:动态和静态功耗。
动态功率(被认为是功耗的“有功”成分)在设备更改状态时被消耗,包括开关功率和短路功率。 当两个互补晶体管随着开关状态的改变而短暂导通时,CMOS逻辑电路会消耗短路功率,在现代工艺技术中,这种功率可以忽略不计。 逻辑电路和互连电路中电容器的充电和放电会随着电路的切换而消耗开关功率。 晶体管密度和时钟频率的增加会在电路中产生更多的动态功耗。 动态功率的增加是有问题的,并且工程师过去一直通过使用时钟门控和频率缩放等技术来减少不必要的切换来控制它。 最近,在操作过程中静态配置或动态更改的调节电源电压的先进技术已开始变得越来越普遍。
静态(或泄漏)功率通常被认为是“浪费”的稳态功率,它在设备处于稳态(不变)时消耗,而在较小的程度上,也处于开关状态。 静态功率包括栅极泄漏和亚阈值泄漏。 采用较小的工艺几何尺寸和较低的电源电压导致静态功耗呈指数增长。 静态电源一度被忽略不计,但如今已成为许多设计中的主要功耗来源。
通过设计降低功耗
设计人员可以使用多种设计技术来控制动态功耗和泄漏功耗,但是要决定使用哪种组合,就需要做出复杂的设计选择,通常是在功耗降低与性能之间进行权衡。 如图3所示,某些技术如今已广泛使用,被认为是降低功率的“传统”方法。 随着功耗在设计过程中扮演越来越重要的角色,更先进的技术也正在成为规范。
时钟门控:标准单元库通常提供时钟门控单元,以最大程度地减少时序电路中的活动和功耗。 此外,存储器可设计为包括时钟门控,以最大程度地减少活动,以降低有源功耗。 使用时钟门控时,处于不活动状态的设计部分会实时禁用时钟,以降低动态功耗。 使用的这种技术的一个例子是手机上的相机。 当不使用相机时,其逻辑可能不会被计时。 请记住,尽管此技术肯定会降低动态功率,但不会降低泄漏功率。
多阈值:增加晶体管的开关电压(也称为阈值电压或Vt)将减少泄漏电流,但会以较慢的输出过渡为代价,这直接影响路径时序。
较慢的路径时序可能意味着给定设计的整体性能变慢。 由于设计人员必须在任何设计中同时考虑性能和功率,因此通常的做法是将具有不同电压阈值的晶体管混合使用-仅在要求更高性能的情况下,才使用具有低Vt且易漏漏晶体管的单元。 这是用于减少总漏电流的最常用技术。 它不会显着影响动态功率。 图3所示的其他技术是较新的技术,被认为是高级技术,因为大多数设计团队对它们的部署经验很少。
多电压:多电压设计是一种技术,其中设计使用多个电源电压进行操作。
像阈值电压一样,不同的电源电压也会影响功率和性能。 电压越高,电路切换速度越快,但是要付出额外的动态功率。 在许多设计中,仅设计的某些离散部分需要高速运行。 其他组件只能以较低的速度运行。 因此,有可能在这种设计中使用多个电源,其中不同的电压电平对应于不同的性能需求,这将有助于降低总体功耗。 由于电压是动态和泄漏功率的一个因素,因此使用较低的电压将减少两种功耗。
电源门控:电源门控,也称为“电源关闭”或“电源关闭”,是一种涉及断开在设备正常运行期间在给定瞬间不需要的电路区域的电源的技术。 。 在手机的情况下,与时钟门控相比,此技术对电源的影响更大-当不使用相机时,则不会为其供电。 因此,动态和静态功率都减小了。 但是这种方法带来了其自身的复杂性,它比时钟门控更为复杂。 例如,当电源关闭时,电路状态会丢失。 为了解决这个问题,如果需要的话,电路必须在关闭之前保存其状态,并在重新上电时恢复其状态,或者设计人员必须使用特殊的保持单元来保持电路中顺序元件的状态。 此外,在设计中仅关闭部分电源时,需要将保持通电状态的模块与已断电的模块电气隔离,以避免损坏有效数据。
多电源:多电源只是指为设计提供多个电源轨(电源)。
这些导轨以相同的电压工作。 在其最基本的应用中,跨ASIC或SoC使用多个电源轨以确保高质量的电源分配。 为了降低总功耗,可以根据特定操作模式是否需要相应的模块来单独打开和关闭每个供电轨。 这种“电源门控”技术必然要求设计也要“多电源”。
动态电压缩放(DVS):由于电压会影响整体性能,因此有可能根据任何给定实例的活动来更改设计一部分的性能。 例如,对于给定的电压,算术逻辑单元(ALU)可能需要5ns来计算乘数,而需要4ns来计算加法。 如果在较高的电压下可以将乘法性能提高到4ns,则工程师可以在较高电压下使用恒定的4ns时钟来运行设计。 但是,与在较低电压下运行的较慢设计相比,这将消耗额外的功率。 为了在满足4ns性能目标的同时优化最低功耗,设计人员可以动态改变电压-在此示例中,仅将电压提高几倍即可。 这将有效地动态更改ALU的性能。
动态电压频率缩放(DVFS):动态电压频率缩放结合了电压缩放和频率缩放。 这样可以优化性能,以实时满足确切的应用程序要求。 在上面的ALU示例中,诸如视频处理之类的应用可能要求乘法在4ns内完成。 增加电压将允许达到4ns的目标。 但是另一个应用程序(例如电子邮件)可能不需要这种性能。 在这种情况下,可以降低频率和电压,从而使乘法花费整整5ns的时间。
低Vdd待机(standby):低Vdd待机是一种在必须保留状态和/或存储器值的情况下替代电源关闭的技术。 (有关更多详细信息,请参见下面的“保留”)。 在低Vdd待机状态下,该模块的电压降至最低可能值(包括余量),以保持该模块内逻辑和存储单元的状态。 这样做的优点是无需影子寄存器或片外存储即可保存状态。 验证Loud Vdd备用状态需要模拟器了解电压值,因为备用电压是介于“ 0”(即断电)和“ 1”(即完全工作)之间的中间电压。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
不同的技术以不同的方式针对功耗,其应用高度依赖于所实现的设计类型。 例如,DVFS最适合用于吞吐量要求随应用程序而变化的设计,例如手机示例。 其他技术(例如时钟门控和电源门控)的目标分别是在不使用单个模块时降低动态功率和泄漏功率。 在设计优化阶段还应用了其他技术,包括逻辑重组和调整大小以及多Vt,并且在需要恒定吞吐量(即恒定运行频率)时最好使用。
随着工程师从简单的低功耗技术转向更先进的低功耗技术,复杂性水平也在增加。
设计和验证任务都会受到影响,并且如果没有正确的工具,则涉及的额外工作会影响设计进度,并增加引入设计错误的风险。 使用传统的EDA工具根本无法验证许多可用技术。 对低功耗技术不熟悉的设计人员可能会发现与电源有关的新型bug令人惊讶。 这些技术的一些示例以及可能引入的错误包括:
1.隔离单元:
每当逻辑块(电源域)断电时,其输出就会浮空。 这可能会在接收浮动信号的仍然供电的门的输入端造成过多的短路功率。 同样,浮动控制信号会在接收它们的其他模块中产生故障。 为了避免这些错误,采用了隔离(ISO)单元。 隔离单元既可以用于断电模块的输出,也可以用于保持上电模块的输入(如果输入是由断电模块驱动的)。 通常,隔离单元放置在电源域的输出处,因为这通常需要较少的ISO单元。 在设计和实施阶段,这些电池的正确插入和连接对于实现功能性硅至关重要。 此外,验证工具必须在功能仿真(RTL和门级)期间正确建模ISO单元。
2.电平移位器单元:
电平移位器(LS)单元的输入电压与输出电压不同,这使设计人员可以使用多个电压电平实现芯片。 每当从一个电源域驱动的信号用作以不同电压工作的单独域的输入时,都需要这些单元。 未能正确匹配域之间的电压会导致功率过大(由于短路功率增加)或功能故障(由于阈值电压未对准)。 像隔离单元一样,在设计和实现阶段中,电平转换器单元的正确插入和连接对于实现功能性硅至关重要。 验证工具还必须了解和验证RTL和门级的功能和连接性。 由于大多数数字功能验证工具不了解电压电平的概念,因此涉及电平移位器单元的插入错误可能无法检测到。
当布局布线工具无法检测到串联实例化的多个电平转换器和/或隔离单元时,会发现隔离和电平转换器部署的另一个常见错误。 当这些单元格中的一些被手动实例化而其他细胞被推断时,则可能发生这种情况。 这些错误会对性能,浪费面积和功率产生负面影响,并且取决于电平转换器的设计,可能会导致设计失败。 需要具有电压意识的静态分析工具来检测这些错误。
3.电源和接地引脚(PG-pin)连接性:
使用电源管理技术的设计通常需要单元库中包含的特殊电源轨连接信息。 这样可以对每个电池进行适当的电压关联。 当在单个单元中使用多个电源(用于功率门控和/或多电压)时,这尤其重要,例如电平转换器和隔离单元,因为这些单元通常用于不同电压水平的域之间的信号互连以及 关闭已部署。 因此,它们需要与同一域内其他小区不同的电源连接。 再一次,需要使用电压识别验证工具来检测PG引脚连接中的错误。
4.序列:
电源排序是设计中各个模块在电源状态(例如,关闭,打开,待机和其他状态)之间转换的特定顺序,它可能很复杂,并且很容易引入功能错误。 不正确的电源顺序可能导致意外的操作模式–例如,当您从摄像头模式切换到通话模式时,手机播放暂停的MP3音调,这可能导致无法接听电话。
5.保留:
如果处理不当,保留状态数据很容易被破坏。 寄存器和存储器中的损坏数据反过来可能会导致设备行为异常。 同样,不当使用低V dd待机电压来代替保留或使用存储器保存状态也会导致数据损坏问题。 如前所述,低Vdd待机的验证需要模拟器具备电压值知识,因为低Vdd待机电压是介于“ 0”和“ 1”之间的中间电压。
6.测试设计(DFT):
将扫描链缝合在一起时,它们可以跨越多个电源域。
如果扫描链拼接未能包括所需的电平转换器,则会发生错误;如果通过不必要地添加域交叉而引入了太多的电平转换器,则对区域的影响可能会很大。 如果还部署了电源关闭功能,则扫描链的某些部分可能会跨过已关闭电源的域,从而中断该链。 使用电压感知型静态规则检查器可以最好地检测到此类错误。
7.自动化测试图生成(ATPG):
测试图对低功耗技术也很敏感。
ATPG工具不仅必须具有功耗意识,以便可以在所有功耗模式下测试设计,而且还必须生成在测试的扫描阶段或捕获阶段都不会产生过多功耗的模式。
8.reset:
使用断电技术的设计有效地向设计中添加了许多新的重置序列,这可能会引入难以在仿真中检测到的错误。 通常,复位涉及以不同的电压值唤醒芯片的选择性部分。 因此,电压电平的知识对于全面验证复位序列至关重要。 如果上电重置失败,则该设备将失效,并需要昂贵的重新旋转。
9.软件:
通常,设计师使用软件来控制低功耗功能。 在许多情况下,对硬件和软件之间的交互进行的不良测试会产生问题,包括死锁状态(电源管理控制逻辑停止响应命令的状态)。
部署低功耗技术会增加复杂性,如果在设计流程的每个阶段未正确验证,则会导致设计错误。 不幸的是,现在必须进行低功耗设计,因此工程师必须应对低功耗技术给设计流程带来的复杂性。 因此,必须对工程师设计和验证其SoC的方式进行根本性的改变。 需要高级EDA工具以帮助工程师应对低功耗SoC的设计和验证挑战。