SoC设计流程中的功耗管理
长期以来,降低功耗一直是芯片设计中的重要需求。随着更大、更快的集成电路应用于便携式产品中,这个需求变得日益重要。因此,贯穿整个设计流程的功率管理技术也在不断改进,以确保产品的各个部分均得到适当、高效的功率供应,同时保证产品的可靠性。诸如多电压岛,以及时钟频率和阈值电压的动态调整等技术,均有助于在提供高性能的同时,节省便携产品中的电池能量。
更为重要的是,SOC在尺寸和速度方面的增长已经给大量的设计带来了功耗方面的挑战,而这些挑战并不属于传统的受供电限制的范畴。在这些设计中,热耗散和可靠性方面的问题,例如电迁移和电压降已经变得极为关键。深亚微米设计中的功率问题可能会限制设计的功能或性能,并严重影响到芯片的可制造性和良率。较高的功耗会造成结点区温度上升,导致晶体管动作速度变慢,并增加互连电阻。如果不考虑功率问题,会导致器件性能低于预期,进而使得器件良率下降。此外,较高的功耗会要求在温度管理方面采取更多的系统级措施。总而言之,这些功率问题正在造成SoC和系统成本的增加。在SoC设计流程中进行功耗管理,能够有效控制这些成本。
SoC中的功耗
芯片的总功率等于动态功率加上静态功率。动态功率是指在开关逻辑状态转换过程中所消耗的功率,包括单元内部(内部功率)和驱动芯片节点及外部负载的功率(开关功率)。动态功率 = CV2F其中,C为负载,V为电压摆幅,F为逻辑状态转换的频率。随着半导体器件结构日趋小型化,器件和互连电容降低,芯片获得了更高的性能和更低的功耗。而更大规模的设计以及更高的开关速率将会导致功率增加。静态功率(泄漏功率)是指在晶体管不进行开关动作时消耗的功率。
静态功率=VISTAT尽管在晶体管漏极和衬底之间的一些反向偏置二极管中存在着漏电流,但大部分泄漏功率来自晶体管关断时的亚阈值电流。由于亚阈值漏电流随着晶体管阈值电压(Vth)的降低而增大,从而带来了一定的麻烦。随着工艺技术向130nm及以下不断发展,泄漏功率可能会占到芯片总功率的50%(见图1)。泄漏功率的增加,会使得芯片中与可靠性相关的故障(即使是在待机状态下)呈指数增长。
随着CMOS工艺尺寸的减小,降低功率的主要方法转为降低供电电压VDD。由于功率和电压的平方成正比,所以降低电压对于控制芯片的动态功率极为有效。但是,由于开关延迟时间与负载电容和Vth/VDD成正比,因此,仅降低供电电压会导致电路速度降低。为了保证快速开关所需的足够的驱动能力,Vth必须与VDD成正比下降,这又会导致泄漏功率的增加。较好的方式是采用考虑了功率管理的设计流程,在时序要求和各类功耗目标之间取得平衡。
功率解决方案
设计抽象层次越高,对功耗的影响也就越大。例如,在系统级和算法级上,采用并行实现而非串行实现能够降低时钟频率,从而显著降低功耗。但并行方法的低功率可能要以面积增加或性能降低为代价。
以一个用于串行接收数据样本的芯片为例,来说明并行架构与串行架构的不同效果。将数据样本并行处理,可将芯片逻辑电路的时钟从80MHz降低至10MHz,供电电压也可从1.8V降低至1.25V。并行处理逻辑电路要比相同的串行处理电路的面积大得多,但较低的电压和工作频率可将功耗降低75%。在其它一些设计中,占用面积上付出的代价较小,而功率节省效果却很明显,所以这是值得探索的一种折衷方案。图2中介绍了几种功率优化和分析的技术,这些技术在SoC的整个设计流程中均可得到应用。本文所涉及的功率解决方案如下:(1)模块门控时钟(2)多供电电压;(3)多阈值电压;(4)综合过程中的功率优化,包括RTL级门控时钟。
功率估计和分析
设计过程中,在如表1所示的4个阶段内进行功耗估计是非常有用的。每个阶段所估计的功耗准确度随增补设计和可利用的库信息的增加而提高。
RTL级功率分析
在设计流程早期,功率分析可对设计的功耗进行粗略估计。此时可能尚未选择库,所以库数据有限,这时,电子数据表(spreadsheet)分析可以用于找出最佳的注重功率的库和设计架构。在选定库之后,即可用Design Compiler和Power Compiler来代替电子数据表,或向电子数据表提供数据。
功率分析的电子数据表中包含了大致的门数和每个模块的活动值、mW/MHz数据以及相关的功率估计。这时进行的分析也有助于确认一项设计的功耗是否过大而不现实,从而可避免花费数周时间来实现一个根本无法制造的设计方案。
为了使用电子数据表分析方法,有必要对每一模块的门数(每一种类型的库单元数量)和活动水平进行估计。同时还需知道每种类型的单元在开关时所耗费的能
- IP核在SoC设计中的接口技术 (08-06)
- 视频跟踪算法在Davinci SOC上的实现与优化(10-06)
- 基于赛灵思Spartan-3A DSP的安全视频分析(02-17)
- Linux下Sniffer程序的实现(06-12)
- linux操作系统下的进程通信设计(01-24)
- 基于S3C44B0X和uClinux的Socket通信实现(02-28)