UPF低功耗设计.docx
- 文档编号:17034398
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:32
- 大小:724.74KB
UPF低功耗设计.docx
《UPF低功耗设计.docx》由会员分享,可在线阅读,更多相关《UPF低功耗设计.docx(32页珍藏版)》请在冰点文库上搜索。
UPF低功耗设计
UPF低功耗设计(总22页)
新思科技
Thursday,November18,2010
基于IEEE1801(UPF)标准的低功耗设计实现流程
Low-powerImplementationFlow BasedIEEE1801(UPF)
郭军,廖水清,张剑景华为通信技术有限公司
Abstract
PowerconsumptionisbecominganincreasinglyimportantaspectofASICdesign.Thereareseveraldifferentapproachesthatcanbeusedtoreducepower.However,itisimportanttousetheselow-powertechnologymoreeffectivelyinICdesignimplementationandverificationflow.Inourlatestlow-powerchip,wecompletedfullimplementationandverificationflowfromRTLtoGDSIIsuccessfullyandeffectivelybyadoptingIEEE1801UnifiedPowerFormat(UPF).ThispaperwillfocusonUPFapplicationindesignimplementationwithSynopsyslowpowersolution.Itwillhighlightthathowtodescribeourlow-powerintentusingUPFandhowtocompletethedesignflow.Thispaperfirstillustratescurrentlow-powermethodologyandUPF’sconcept.Then,itdiscussedUPFapplicationindetail.Finally,itgivesourconclusion.
Keywords:
IEEE1801,UPF,Low-Power,Shut-Down,PowerGating,Isolation,IC-Compiler
摘要
目前除了时序和面积,功耗已经成为集成电路设计中日益关注的因素。
当前有很多种降低功耗的方法,为了在设计实现流程中更加有效的利用各种低功耗的设计方法,我们在最近一款芯片的设计实现以及验证流程中,使用了基于IEEE1801标准UnifiedPowerFormat(UPF)的完整技术,成功的完成了从RTL到GDSII的全部过程,并且芯片制造回来成功的完成了测试。
本文就其中的设计实现部分进行了详细探讨,重点介绍如何用UPF把我们的低功耗意图描述出来以及如何用Synopsys工具实现整个流程,希望给大家以启发。
本文先介绍目前常用的低功耗设计的一些方法特别是用power-gating的方法来控制静态功耗以及UPF的实现方法,然后阐述UPF在我们设计流程中的应用,并在介绍中引入了一些我们的设计经验,最后给出我们的结论。
关键字:
IEEE1801,UPF,低功耗,电源关断,Power-Gating,Isolation,IC-Compiler
1.简介
深亚微米设计面临的挑战
随着工艺特征尺寸的缩小以及复杂度的提高,IC设计面临了很多挑战:
速度越来越高,面积不断增大,噪声现象更加严重等。
其中,功耗问题尤为突出,工艺进入130nm以下节点后,单位面积上的功耗密度急剧上升,已经达到封装、散热、以及底层设备所能支持的极限。
随着工艺进一步达到90nm以下,漏电流呈指数级增加(如图1所示),在某些65nm设计中,漏电流已经和动态电流一样大,曾经可以忽略的静态功耗成为功耗的主要部分。
功耗已成为继传统二维要素(速度、面积)之后的第三维要素。
图1:
静态功耗与工艺特征尺寸的关系
另外,目前飞速发展的手持电子设备市场,为了增强自身产品的竞争力,也对低功耗提出了越来越高的要求;其次散热问题、可靠性问题也要求IC的功耗越小越好;最后全球都在倡导绿色环保科技理念,保护环境,节约能源。
这些都要求IC设计时必须采用低功耗技术,以有效应对这些挑战。
目前低功耗设计常用的方法
如图2所示,影响功耗的因素有电压、漏电流、工作频率、有效电容等。
可以通过降低工作电压、减少翻转负载以及降低电路翻转率等来降低动态功耗;通过减少工作电压以及减少漏
图2:
影响功耗的因素
电流来降低静态功耗。
当前,业界采用了各种方法来降低芯片的动态功耗和静态功耗。
如图3所示,传统的低功耗技术有时钟关断(Clock-Gating),多域值电压库(Multi-thresholdlibraries)等;较新的技术有多电压(Multi-Voltage),电源关断(MTCMOSPowerGating),带状态保持功能的电源关断(PowerGatingwithStateRetention),动态电压频率调整(DynamicVoltageandFrequencyScaling),低电压待机(Low-VddStandby)等。
图3:
低功耗技术示例
控制静态漏电的方法
电路优化(Gate-levelOptimization)
在设计实现过程中,自动化的综合和布局布线工具可以根据电路的时序特征,来综合优化每条路径中用到的所有标准单元的时序,面积以及功耗。
根据负载将非关键路径中的标准单元切换到具有较小驱动能力的单元,由于输出电容减小,可以减小动态功耗;同时,由于标准单元MOS管和电容变小,静态漏电流也同时减小。
除了变化驱动能力之外,还可以通过优化电路中的逻辑单元、移动单元物理位置等方法来达到降低功耗的目的。
多域值电压库(Multi-Threshold)
如图4所示,高域值电压的标准单元漏电流小但速度慢,低域值电压的标准单元则速度快但漏电流大。
所以采用多域值电压库作为设计实现的目标库,在设计中尽可能多地用高域值电压的标准单元,仅在关键路径上为了满足时序要求采用低域值电压的标准单元,这样就可以最大限度地减小标准单元的漏电流,从而降低静态功耗。
图4:
漏电流、单元速度与阈值电压三者之间的关系
电源关断(Power-Gating)
芯片中某些模块在不工作时,可以关断其电源,在需要工作时,再将其电源导通,这就是电源关断技术。
它可以使电源关断区域的漏电流降至接近零,极大的减小芯片的静态功耗。
现在电源关断的技术也很多,有片内关断、片外关断。
顾名思义,片外关断就是在芯片外部通过切断电源来关断芯片内部的某些模块。
片内关断又分为精细关断(fine-grain)和粗糙关断(coarse-grain),精细关断需要特别库的支持,可以实现每个标准单元的精细关断;而粗糙关断只需要一些门控单元就可以实现对某些模块的电源或地的控制,如图5所示,用pmos来控制电源,用nmos来控制地。
图5:
电源关断(Power-Gating)的原理图
2.UPF的设计实现流程
IEEE1801标准UnifiedPowerFormat(UPF)是一个真正意义统一的,被广泛采用的低功耗实现标准。
它用一些标准的语句描述用户的低功耗设计意图(PowerIntent)。
如图6所示,
图6:
UPF的应用流程
有了这样一个统一的UPF文件,逻辑综合、物理实现、仿真验证、等效性检查以及最后的sign-off流程就可以按照UPF中对低功耗设计意图的描述来完成整个IC设计实现验证流程。
这样贯穿于整个流程的低功耗意图来源于同一个文件,这种一致性可以大大降低低功耗设计的风险性。
并且UPF对低功耗设计提供了开放的,多厂商工具支持的流程和解决方案。
众多支持UPF标准的EDA供应商的产品证明了它是一个互操作性强的标准。
Synopsys基于UPF的低功耗设计流程
Synopsys公司提供了完整的基于UPF的低功耗综合、物理实现和验证流程,如图7所示。
该流程始于寄存器传输级(RTL)描述的逻辑设计,加上一个独立的描述低功耗设计意图的UPF文件。
RTL和UPF描述分别放在独立的文件中,使他们可以单独维护和修改。
在这个示例中,最初的UPF文件标志为UPF。
图7:
UPFFlowWithSynopsysTools
DesignCompiler读入RTL和初始UPF描述文件,基于它们综合出门级网表并产生一个更新了的UPF文件,这个DesignCompiler输出的UPF文件在示例图中标志为UPF’。
UPF’文件中包含了原始UPF文件的内容,并添加了综合时加入的对某些特殊cell(比如isolationcells、levelshifters)的电源和地的连接关系。
综合输出的门级网表已经被工具根据UPF的相应描述插入了一些低功耗所需的特殊电路单元,比如Level-Shifter,Isolationcells,RetentionRegister等。
ICCompiler读入综合输出的门级网表和UPF’描述文件,基于它们进行物理实现,包括:
布局和布线以及电源关断特殊单元(Power-Gatingcell)的插入、摆放和控制信号线的连接等步骤。
输出一个新的门级网表,一个包括所有cell的电源和地连接关系的网表(俗称pg网表),以及一个更新了的UPF文件,标志为UPF’’。
UPF’’文件包含了UPF’的内容,并添加了在物理实现阶段对低功耗电路结构的改变,比如添加了PowerSwitches(俗称MTCMOS)的连接关系。
这个flow中产生的数据可以用于做功能仿真(利用MVSIM、VCS),插入的低功耗单元的正确性检查(利用MVRC),形式验证(利用Formality),以及时序功耗检查(利用PrimeTime-PX)和电压降(IR-Drop)(利用PrimeRail)的验证。
VCS仿真器和MVSIM多电压仿真工具可以在几个阶段用来做多电压的功能仿真:
RTL级,综合后加入了低功耗相关器件(比如Isolationcell)的门级,以及PR之后加入了PowerSwitches的门级。
MVRC用于检查多电压设计的规则是否正确实现,包括电源连接关系、电源结构、电源一致性等等,也适用于流程中的各个步骤。
PrimeTime读入DC或ICC输出的门级网表以及对应的UPF文件。
它利用UPF文件中的信息建立一个虚拟的电源网络模型,并将电压值反标到每个器件的电源端口,进行带电源信息的时序检查。
PrimeRail是基于带UPF信息的版图进行电压降以及电迁移的分析。
如果设计中有电源关断单元,它还可以分析相关关断电路的瞬态电流以及动态的电压降分布。
来帮助判断这些电源关断单元是否插入合理以及是否需要插入De-cap单元。
UPF所需要的特殊单元库
基于UPF的设计流程与传统流程相比,需要一些库中特殊单元的支持以及对传统的DB时序库添加电源地的信息。
特殊单元包括Level-shifter,IsolationCell,电源关断单元(PowerGating,也叫MTCMOS),Retention-Register,以及Always-on单元。
下面分别阐述:
Level-Shifter和IsolationCell
对于多电压设计,需要用Level-shifter来实现不同电压域之间信号的电平转换。
根据信号电平由高到低和由低到高的转换,Level-shifter分为两类,其结构分别如图8和图9所示。
图8:
HightoLowLevel-shifters
图9:
LowtoHighLevel-shifters
对于电源关断技术,电源关断区域的输出信号在电源关断时处于不定态,这种不定态会导致其负载单元出现内部电流,从而导致不期望的功耗。
所以需要在电源关断区域的输出信号上插入IsolationCell来实现对不定态的隔离。
Isolationcell根据钳位值不同分为与型和或型结构,其结构如图10所示。
图10:
BasicIsolationCells
Power-Gatingcell,Retention-Register和Always-on单元
对于电源关断技术,需要Power-GatingCell(也称MTCMOS)来实现电源的关断。
可以选择断开电源(VDD)或地(VSS)的连接来实现Power-Gating,这两种Power-GatingCell被形象的称为Header-Switch和Footer-Switch。
它们的结构如图11所示。
图11:
BasicHeader-SwitchstructureandFooter-Switchstructure
在电源关断模块有可能要求register对关断前的数据进行锁存或者在电源打开后要求对锁存的数据进行恢复,这就需要特殊的单元Retention-Register。
如图12所示,它有两个电源,一个用于模块电源未关断时的工作用电,一个用于模块电源关断时的用电。
它还有两个控制信号save和restore,用于控制是否锁存数据或者恢复数据。
图12:
Retention-Register
在电源关断模块还有可能需要有些信号线或逻辑长期工作,比如MTCMOS单元的控制信号线,Retention-register的save/restore控制信号,isolationcell的控制信号等。
为了实现这种功能,这就需要另外的特殊单元叫always-oncell。
如图13所示。
图13Aways-on单元的应用场合
PGlibrary的准备
除了上述这些特殊单元外,UPF流程的实现还需要用到的logicallibrary(db库)是带PG(Power&Ground)信息的,与传统流程相比要多出下面与PG相关的信息:
•pg_pin的名称,pg_pin的类型(如primary,backup等);
•每个信号管脚(signalpin)与pg_pin的对应关系;
•每个输出信号管脚中power_down_function的定义;
•每个pg-pin的电压数值。
有了上述信息,工具就可以根据UPF里面的描述自动地完成电源网络的连接,电源关断电路的验证,基于UPF里面电源状态表的综合和优化,以及最后输出带PG信息的网表的验证等。
其直接带来的好处就是使得流程更完整,更简单,更自动化。
由于UPF应用还不是很普及,Foundry及第三方IP提供商目前提供的db库基本上还没有完全更新到带PG信息的版本,所以需要用户在使用前先转换。
ICC和DC都提供了转换PGdb库的命令:
add_pg_pin_to_db,可以将不带PG信息的db库转换成带PG信息的db库。
ICC0809以上版本还提供了add_pg_pin_to_lib命令,可以将不带PG信息的lib库转换成带PG信息的lib库,这样可以更清晰的知道PG库中具体都添加了什么信息。
3.UPF在本芯片设计实现中的应用
本款芯片的设计实现以及验证流程完全采用了如图7中所示的所有Synopsys工具,并且所有实现和验证流程都使用了基于IEEE1801标准UnifiedPowerFormat(UPF)的完整技术,成功的完成了从RTL到GDSII的全部过程,并且芯片制造回来成功的完成了功能测试以及低功耗测试。
本篇文章着重介绍实现流程中基于UPF的应用,对于验证流程的应用我们不作介绍。
在实现过程中我们主要完成了下列工作,如图14所示。
图14:
本芯片实现流程图
•PGlibrary的准备;
•UPF文件的准备;
•有了UPF以及PGlibrary,先用DesignCompiler对RTL综合,综合后产生的netlist里面就包含了low-power设计中除了电源关断单元(MTCMOS)之外的所有的特殊cell,如:
level-shifter,isolationcell等等;
•综合完成后,作了DFT的工作,在这一步骤如果DFT设计中要引入一些特殊单元,工具会自动插入;
•DFT之后我们在IC-Compiler完成了所有的布局布线工作,包括:
整体规划(floorplan),电源关断单元MTCMOS的插入、布局以及控制信号的连接,电源网络综合和分析,布局,时钟树综合,布线以及最后一些提高良率方面的工作。
•布局布线完成后,我们还对timing,SI,Power,IR-DROP等进行了Sign-off分析。
•在流程中经过每一步我们都用formality对包含了UPF的设计作了形式验证,既保证了功能的一致性,也保证了含有低功耗信息的实现一致性。
下面我们对每一步骤进行详细介绍,其中PGlibrary的准备在章节中已经作了介绍,这里就不再说明。
本芯片中用到的lowpower设计意图
在我们最近的这款芯片中,采用了时钟关断(Clock-Gating),多域值电压库(Multi-thresholdlibraries),电源关断(MTCMOSPowerGating),低电压待机(Low-VddStandby)等低功耗技术。
图15和图16分别是芯片电源分区拓扑图和floorplan截图,芯片划分成3个powerdomain,分别为PD_1、PD_2、PD_TOP。
其中PD_1是掉电区,PD_2是降压区,PD_TOP是常开区;PD_2的hierarchy嵌套在PD_1内部,当PD_1掉电时,PD_2可以降压保持数据即可。
VDD和VDD_2是芯片外部提供的两个电源,分别提供给PD_TOP和PD_2;而VDD_1是PD_1的内部电源,由VDD经过MTCMOS产生,可以通过控制MTCMOS关断使PD_1掉电。
在进行芯片设计之前,我们要先对芯片的低功耗意图用UPF描述出来,下面的章节做详细的阐述。
图15:
芯片电源分区拓扑图
图16:
芯片floorplan截图
用UPF对本芯片设计意图的描述
在UPF中,包含了所有对low-power设计意图的描述,比如:
芯片中有哪些相对独立的电源模块;每个电源模块中用到哪些电源或地;如果有电源关断模块的话还要描述其关断的方式及控制;每一个电源的各种工作模式(工作电压或是否关断);特殊单元的规划等。
下面章节将根据本芯片中用到的low-power意图(如图15和图16所示)分别介绍如何用UPF描述这些意图。
UPF对PowerDomain的描述
在UPF中,首先要对所有的Powerdomain进行定义。
先设定顶层的powerdomain,然后描述PD_1和PD_2这两个powerdomain。
如下所示:
#powerdomaindefinitions
create_power_domainPD_TOP–include_scope
create_power_domainPD_1–elementsBLOCKA
create_power_domainPD_2–elementsBLOCKB
UPF对PowerNetwork的描述
然后根据电源分区拓扑图,要清晰地描述各个powerdomain里面的电源网络(PowerNetwork),如下所示,详细的定义了每个domain里面的电源线的名称以及和芯片原始电源输入端口的连接关系。
#supplynetsdefinitions
create_supply_netVDD–domainPD_TOP
create_supply_netVDD–domainPD_1–reuse
create_supply_netVDD_2–domainPD_TOP
create_supply_netVDD_2–domainPD_1–reuse
create_supply_netVDD_2–domainPD_2–reuse
create_supply_netVDD_1–domainPD_1
create_supply_netVSS–domainPD_TOP
create_supply_netVSS–domainPD_1–reuse
create_supply_netVSS–domainPD_2–reuse
#definetheprimarypower/groundforpowerdomains
set_domain_supply_netPD_TOP–primary_power_netVDD–primary_ground_netVSS
set_domain_suupply_netPD_1–primary_power_netVDD_1–primary_ground_netVSS
set_domain_supply_netPD_2–primary_power_netVDD_2–primary_ground_netVSS
#powerportsdefinitions
create_supply_portVDD–domainPD_TOP–directionin
create_supply_portVDD_2–domainPD_TOP–directionin
create_supply_portVSS–domainPD_TOP–directionin
#connectthesupplynettopowerport
connect_supply_netVDD–portsVDD
connect_supply_netVDD_2–portsVDD_2
connect_supply_netVSS–portsVSS
UPF对PowerGating的描述
本设计中含有电源关断模块,需要在UPF中定义电源关断单元(PowerGatingcell),描述该单元的电源输入输出,以及控制信号的连接。
如下所示。
create_power_switchSW1–domainPD_1–output_supply_port{VDD_OUTVDD_1}\
–input_supply_port{VDD_INVDD}–control_port{PW_CTRLpd1_pw_en}–on_state\
{PW_ONVDD_IN{PW_CTRL}}–ack_port{{PW_ACKpd1_pw_ack}
该条命令中VDD_1是VDD经过该单元后的电源名称,pd1_pw_en是控制信号,当该控制信号为高的时候,VDD_1接通VDD使电路处于开启状态。
除了该控制信号,该单元还输出一个叫pd1_pw_ack的响应信号。
至于如何在物理上实现PowerGatingcell的插入以及控制信号的连接,这个要在ICCompiler里面完成,后面的章节里面有详细的介绍。
UPF对Isolation的描述
因为芯片中有关断模块,从功能上为了处理模块关断后信号输出的稳定性,还需要增加关断电源模块处于关断时如何插入isolation单元的描述。
如下所示,以PD_1的边界信号定义为例:
指定其所有输入信号都不插入isolationcell,输出信号默认插入箝位到0的isolationce
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UPF 功耗 设计