文档库 最新最全的文档下载
当前位置:文档库 › UPF低功耗设计

UPF低功耗设计

UPF低功耗设计
UPF低功耗设计

Thursday, November 18, 2010 基于IEEE1801(UPF)标准的低功耗设计实现流程

Low-power Implementation Flow Based IEEE1801 (UPF)

郭军, 廖水清, 张剑景

华为通信技术有限公司

jguo@https://www.wendangku.net/doc/ca14031875.html,

liaoshuiqing@https://www.wendangku.net/doc/ca14031875.html,

zhangjianjing@https://www.wendangku.net/doc/ca14031875.html,

Abstract

Power consumption is becoming an increasingly important aspect of ASIC design. There are several different approaches that can be used to reduce power. However, it is important to use these low-power technology more effectively in IC design implementation and verification flow. In our latest low-power chip, we completed full implementation and verification flow from RTL to GDSII successfully and effectively by adopting IEEE1801 Unified Power Format (UPF). This paper will focus on UPF application in design implementation with Synopsys low power solution. It will highlight that how to describe our low-power intent using UPF and how to complete the design flow. This paper first illustrates current low-power methodology and UPF?s concept. Then, it discussed UPF application in detail. Finally, it gives our conclusion.

Key words: IEEE1801, UPF, Low-Power, Shut-Down, Power Gating, Isolation, IC-Compiler

摘要

目前除了时序和面积,功耗已经成为集成电路设计中日益关注的因素。当前有很多种降低功耗的方法,为了在设计实现流程中更加有效的利用各种低功耗的设计方法,我们在最近一款芯片的设计实现以及验证流程中,使用了基于IEEE1801标准Unified Power Format(UPF)的完整技术,成功的完成了从RTL到GDSII的全部过程,并且芯片制造回来成功的完成了测试。本文就其中的设计实现部分进行了详细探讨,重点介绍如何用UPF把我们的低功耗意图描述出来以及如何用Synopsys工具实现整个流程,希望给大家以启发。本文先介绍目前常用的低功耗设计的一些方法特别是用power-gating的方法来控制静态功耗以及UPF的实现方法,然后阐述UPF在我们设计流程中的应用,并在介绍中引入了一些我们的设计经验,最后给出我们的结论。

关键字:IEEE1801, UPF,低功耗, 电源关断,Power-Gating, Isolation, IC-Compiler

1. 简介

1.1 深亚微米设计面临的挑战

随着工艺特征尺寸的缩小以及复杂度的提高,IC设计面临了很多挑战:速度越来越高,面积不断增大,噪声现象更加严重等。其中,功耗问题尤为突出,工艺进入130nm以下节点后,单位面积上的功耗密度急剧上升,已经达到封装、散热、以及底层设备所能支持的极限。随着工艺进一步达到90nm以下,漏电流呈指数级增加(如图1所示),在某些65nm设计中,漏电流已经和动态电流一样大,曾经可以忽略的静态功耗成为功耗的主要部分。功耗已成为继传统二维要素(速度、面积)之后的第三维要素。

图1: 静态功耗与工艺特征尺寸的关系

另外,目前飞速发展的手持电子设备市场,为了增强自身产品的竞争力,也对低功耗提出了越来越高的要求;其次散热问题、可靠性问题也要求IC的功耗越小越好;最后全球都在倡导绿色环保科技理念,保护环境,节约能源。这些都要求IC设计时必须采用低功耗技术,以有效应对这些挑战。

1.2 目前低功耗设计常用的方法

如图2所示,影响功耗的因素有电压、漏电流、工作频率、有效电容等。可以通过降低工作电压、减少翻转负载以及降低电路翻转率等来降低动态功耗;通过减少工作电压以及减少漏

图2: 影响功耗的因素

电流来降低静态功耗。当前,业界采用了各种方法来降低芯片的动态功耗和静态功耗。如图3所示,传统的低功耗技术有时钟关断(Clock-Gating),多域值电压库(Multi-threshold libraries)等;较新的技术有多电压(Multi-Voltage),电源关断(MTCMOS Power Gating),带状态保持功能的电源关断(Power Gating with State Retention),动态电压频率调整(Dynamic Voltage and Frequency Scaling),低电压待机(Low-Vdd Standby)等。

图3: 低功耗技术示例

1.3 控制静态漏电的方法

1.3.1 电路优化(Gate-level Optimization)

在设计实现过程中,自动化的综合和布局布线工具可以根据电路的时序特征,来综合优化每条路径中用到的所有标准单元的时序,面积以及功耗。根据负载将非关键路径中的标准单元切换到具有较小驱动能力的单元,由于输出电容减小,可以减小动态功耗;同时,由于标准单元MOS管和电容变小,静态漏电流也同时减小。除了变化驱动能力之外,还可以通过优化电路中的逻辑单元、移动单元物理位置等方法来达到降低功耗的目的。

1.3.2 多域值电压库(Multi-Threshold)

如图4所示,高域值电压的标准单元漏电流小但速度慢,低域值电压的标准单元则速度快但漏电流大。所以采用多域值电压库作为设计实现的目标库,在设计中尽可能多地用高域值电压的标准单元,仅在关键路径上为了满足时序要求采用低域值电压的标准单元,这样就可以最大限度地减小标准单元的漏电流,从而降低静态功耗。

图4: 漏电流、单元速度与阈值电压三者之间的关系

1.3.3 电源关断(Power-Gating)

芯片中某些模块在不工作时,可以关断其电源,在需要工作时,再将其电源导通,这就是电源关断技术。它可以使电源关断区域的漏电流降至接近零,极大的减小芯片的静态功耗。现在电源关断的技术也很多,有片内关断、片外关断。顾名思义,片外关断就是在芯片外部通过切断电源来关断芯片内部的某些模块。片内关断又分为精细关断(fine-grain)和粗糙关断(coarse-grain),精细关断需要特别库的支持,可以实现每个标准单元的精细关断;而粗糙关断只需要一些门控单元就可以实现对某些模块的电源或地的控制,如图5所示,用pmos来控制电源,用nmos来控制地。

图5: 电源关断(Power-Gating)的原理图

2. UPF的设计实现流程

IEEE1801标准Unified Power Format(UPF)是一个真正意义统一的,被广泛采用的低功耗实现标准。它用一些标准的语句描述用户的低功耗设计意图(Power Intent)。如图6所示,

图6: UPF的应用流程

有了这样一个统一的UPF文件,逻辑综合、物理实现、仿真验证、等效性检查以及最后的sign-off流程就可以按照UPF中对低功耗设计意图的描述来完成整个IC设计实现验证流程。这样贯穿于整个流程的低功耗意图来源于同一个文件,这种一致性可以大大降低低功耗设计的风险性。并且UPF对低功耗设计提供了开放的,多厂商工具支持的流程和解决方案。众多支持UPF标准的EDA供应商的产品证明了它是一个互操作性强的标准。

2.1 Synopsys基于UPF的低功耗设计流程

Synopsys公司提供了完整的基于UPF的低功耗综合、物理实现和验证流程,如图7所示。该流程始于寄存器传输级(RTL)描述的逻辑设计,加上一个独立的描述低功耗设计意图的UPF文件。RTL和UPF描述分别放在独立的文件中,使他们可以单独维护和修改。在这个示例中,最初的UPF文件标志为UPF。

图7: UPF Flow With Synopsys Tools

Design Compiler读入RTL和初始UPF描述文件,基于它们综合出门级网表并产生一个更新了的UPF文件,这个Design Compiler输出的UPF文件在示例图中标志为UPF?。UPF?文件中包含了原始UPF文件的内容,并添加了综合时加入的对某些特殊cell(比如isolation cells、level shifters)的电源和地的连接关系。综合输出的门级网表已经被工具根据UPF的相应描述插入了一些低功耗所需的特殊电路单元,比如

Level-Shifter,Isolation cells,Retention Register等。

IC Compiler读入综合输出的门级网表和UPF?描述文件,基于它们进行物理实现,包括:布局和布线以及电源关断特殊单元(Power-Gating cell)的插入、摆放和控制信号线的连接等步骤。输出一个新的门级网表,一个包括所有cell的电源和地连接关系的网表(俗称pg网表),以及一个更新了的UPF文件,标志为UPF??。UPF??文件包含了UPF?的内容,并添加了在物理实现阶段对低功耗电路结构的改变,比如添加了Power Switches(俗称MTCMOS)的连接关系。

这个flow中产生的数据可以用于做功能仿真(利用MVSIM、VCS),插入的低功耗单元的正确性检查(利用MVRC),形式验证(利用Formality),以及时序功耗检查(利用Prime Time-PX)和电压降(IR-Drop)(利用Prime Rail)的验证。

VCS仿真器和MVSIM多电压仿真工具可以在几个阶段用来做多电压的功能仿真:RTL级,综合后加入了低功耗相关器件(比如Isolation cell)的门级,以及PR之后加入了Power Switches的门级。MVRC用于

检查多电压设计的规则是否正确实现,包括电源连接关系、电源结构、电源一致性等等,也适用于流程中的各个步骤。

Prime Time读入DC或ICC输出的门级网表以及对应的UPF文件。它利用UPF文件中的信息建立一个虚拟的电源网络模型,并将电压值反标到每个器件的电源端口,进行带电源信息的时序检查。

Prime Rail是基于带UPF信息的版图进行电压降以及电迁移的分析。如果设计中有电源关断单元,它还可以分析相关关断电路的瞬态电流以及动态的电压降分布。来帮助判断这些电源关断单元是否插入合理以及是否需要插入De-cap单元。

2.2 UPF所需要的特殊单元库

基于UPF的设计流程与传统流程相比,需要一些库中特殊单元的支持以及对传统的DB时序库添加电源地的信息。特殊单元包括Level-shifter,Isolation Cell,电源关断单元(Power Gating, 也叫MTCMOS),Retention-Register,以及Always-on单元。下面分别阐述:

2.2.1 Level-Shifter和Isolation Cell

对于多电压设计,需要用Level-shifter来实现不同电压域之间信号的电平转换。根据信号电平由高到低和由低到高的转换,Level-shifter分为两类,其结构分别如图8和图9所示。

图8: High to Low Level-shifters

图9: Low to High Level-shifters

对于电源关断技术,电源关断区域的输出信号在电源关断时处于不定态,这种不定态会导致其负载单元出现内部电流,从而导致不期望的功耗。所以需要在电源关断区域的输出信号上插入Isolation Cell来实现对不定态的隔离。Isolation cell根据钳位值不同分为与型和或型结构,其结构如图10所示。

图10: Basic Isolation Cells

2.2.2 Power-Gating cell,Retention-Register和Always-on单元

对于电源关断技术,需要Power-Gating Cell(也称MTCMOS)来实现电源的关断。可以选择断开电源(VDD)或地(VSS)的连接来实现Power-Gating,这两种Power-Gating Cell被形象的称为Header-Switch和Footer-Switch。它们的结构如图11所示。

图11: Basic Header-Sw itch structure and Footer-S w itch structure

在电源关断模块有可能要求register对关断前的数据进行锁存或者在电源打开后要求对锁存的数据进行恢复,这就需要特殊的单元Retention-Register。如图12所示,它有两个电源,一个用于模块电源未关断时的工作用电,一个用于模块电源关断时的用电。它还有两个控制信号save和restore,用于控制是否锁存数据或者恢复数据。

图12: Retention-Register

在电源关断模块还有可能需要有些信号线或逻辑长期工作,比如MTCMOS单元的控制信号线,Retention-register的save/restore控制信号,isolation cell的控制信号等。为了实现这种功能,这就需要另外的特殊单元叫always-on cell。如图13所示。

图13 Aw ays-on单元的应用场合

2.2.3 PG library的准备

除了上述这些特殊单元外,UPF流程的实现还需要用到的logical library(db库)是带PG(Power&Ground)信息的,与传统流程相比要多出下面与PG相关的信息:

? pg_pin 的名称,pg_pin 的类型(如primary, backup 等);

? 每个信号管脚(signal pin)与pg_pin的对应关系;

? 每个输出信号管脚中power_down_function的定义;

? 每个pg-pin的电压数值。

有了上述信息,工具就可以根据UPF里面的描述自动地完成电源网络的连接,电源关断电路的验证,基于UPF里面电源状态表的综合和优化,以及最后输出带PG信息的网表的验证等。其直接带来的好处就是使得流程更完整,更简单,更自动化。

由于UPF应用还不是很普及,Foundry及第三方IP提供商目前提供的db库基本上还没有完全更新到带PG信息的版本,所以需要用户在使用前先转换。ICC和DC都提供了转换PG db库的命令: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标准Unified Power Format(UPF)的完整技术,成功的完成了从RTL到GDSII的全部过程,并且芯片制造回来成功的完成了功能测试以及低功耗测试。本篇文章着重介绍实现流

程中基于UPF的应用,对于验证流程的应用我们不作介绍。在实现过程中我们主要完成了下列工作,如图14所示。

图14: 本芯片实现流程图

? PG library的准备;

? UPF文件的准备;

? 有了UPF以及PG library,先用Design Compiler对RTL 综合,综合后产生的netlist里面就包含了

low-power设计中除了电源关断单元(MTCMOS)之外的所有的特殊cell,如:level-shifter, isolation cell 等等;

? 综合完成后,作了DFT的工作,在这一步骤如果DFT设计中要引入一些特殊单元,工具会自动插入;? DFT之后我们在IC-Compiler完成了所有的布局布线工作,包括:整体规划(floorplan),电源关断单元MTCMOS的插入、布局以及控制信号的连接,电源网络综合和分析,布局,时钟树综合,布线以及最后一些提高良率方面的工作。

? 布局布线完成后,我们还对timing,SI,Power,IR-DROP等进行了Sign-off分析。

? 在流程中经过每一步我们都用formality对包含了UPF的设计作了形式验证,既保证了功能的一致性,也保证了含有低功耗信息的实现一致性。

下面我们对每一步骤进行详细介绍,其中PG library的准备在2.2章节中已经作了介绍,这里就不再说明。

3.1 本芯片中用到的low power设计意图

在我们最近的这款芯片中,采用了时钟关断(Clock-Gating),多域值电压库(Multi-threshold libraries),电源关断(MTCMOS Power Gating),低电压待机(Low-Vdd Standby)等低功耗技术。

图15和图16分别是芯片电源分区拓扑图和floorplan截图,芯片划分成3个power domain,分别为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截图

3.2 用UPF对本芯片设计意图的描述

在UPF中,包含了所有对low-power设计意图的描述,比如:芯片中有哪些相对独立的电源模块;每个电源模块中用到哪些电源或地;如果有电源关断模块的话还要描述其关断的方式及控制;每一个电源的各种工作模式(工作电压或是否关断);特殊单元的规划等。下面章节将根据本芯片中用到的low-power意图(如图15和图16所示)分别介绍如何用UPF描述这些意图。

3.2.1 UPF对Power Domain的描述

在UPF中,首先要对所有的Power domain进行定义。先设定顶层的power domain,然后描述PD_1和PD_2这两个power domain。如下所示:

# power domain definitions

create_power_domain PD_TOP –include_scope

create_power_domain PD_1 –elements BLOCKA

create_power_domain PD_2 –elements BLOCKB

3.2.2 UPF对Power Network的描述

然后根据电源分区拓扑图,要清晰地描述各个power domain里面的电源网络(Power Network),如下所示,详细的定义了每个domain里面的电源线的名称以及和芯片原始电源输入端口的连接关系。

# supply nets definitions

create_supply_net VDD –domain PD_TOP

create_supply_net VDD –domain PD_1 –reuse

create_supply_net VDD_2 –domain PD_TOP

create_supply_net VDD_2 –domain PD_1 –reuse

create_supply_net VDD_2 –domain PD_2 –reuse

create_supply_net VDD_1 –domain PD_1

create_supply_net VSS –domain PD_TOP

create_supply_net VSS –domain PD_1 –reuse

create_supply_net VSS –domain PD_2 –reuse

#define the primary power/ground for power domains

set_domain_supply_net PD_TOP –primary_power_net VDD –primary_ground_net VSS

set_domain_suupply_net PD_1 –primary_power_net VDD_1 –primary_ground_net VSS

set_domain_supply_net PD_2 –primary_power_net VDD_2 –primary_ground_net VSS

# power ports definitions

create_supply_port VDD –domain PD_TOP –direction in

create_supply_port VDD_2 –domain PD_TOP –direction in

create_supply_port VSS –domain PD_TOP –direction in

#connect the supply net to power port

connect_supply_net VDD –ports VDD

connect_supply_net VDD_2 –ports VDD_2

connect_supply_net VSS –ports VSS

3.2.3 UPF对Power Gating的描述

本设计中含有电源关断模块,需要在UPF中定义电源关断单元(Power Gating cell),描述该单元的电源输入输出,以及控制信号的连接。如下所示。

create_power_switch SW1 –domain PD_1 –output_supply_port {VDD_OUT VDD_1} \

–input_supply_port {VDD_IN VDD} –control_port {PW_CTRL pd1_pw_en} –on_state \

{PW_ON VDD_IN {PW_CTRL}} –ack_port {{PW_ACK pd1_pw_ack}

该条命令中VDD_1是VDD经过该单元后的电源名称,pd1_pw_en是控制信号,当该控制信号为高的时候,VDD_1接通VDD使电路处于开启状态。除了该控制信号,该单元还输出一个叫pd1_pw_ack的响应信号。

至于如何在物理上实现Power Gating cell的插入以及控制信号的连接,这个要在IC Compiler里面完成,后面的章节里面有详细的介绍。

3.2.4 UPF对Isolation的描述

因为芯片中有关断模块,从功能上为了处理模块关断后信号输出的稳定性,还需要增加关断电源模块处于关断时如何插入isolation单元的描述。如下所示,以PD_1的边界信号定义为例:

指定其所有输入信号都不插入isolation cell,输出信号默认插入箝位到0的isolation cell,对其中两个特殊信号插入箝位到1的isolation cell。并且定义了Isolation cell的控制信号,以及插入的位置是在PD_TOP domain。

set_isolation pd1_iso_in –domain PD_1 –no_isolation –applies_to inputs

set_isolation pd1_iso_low –domain PD_1 –isolation_power_net VDD –isolation_ground_net \ VSS

–clamp_value 0 –applies_to outputs

set_isolation_control pd1_iso_low –domain PD_1 –isolation_signal iso_en –isolation_sense high \

–location parent

set_isolation pd1_iso_high –domain PD_1 –isolatioin_power_net VDD –isolation_ground_net \

VSS –elements {BLOCKA/pin1 BLOCKA/pin2} –clamp_value 1

set_isolation_control pd1_iso_high –domain PD_1 –isolation_signal iso_en –isolation_sense \ high

–location parent

3.2.5 UPF对Power State的描述

在UPF里面,还有一个非常重要的部分,那就是描述电源状态表(Power State Table),简称PST,也就是说要描述各个电源有哪些工作模式。有了这个表格,工具就可以判断是否需要在各个电源模块之间插入特殊的单元。

本芯片共有三种工作模式,pst_pd1_ON是正常模式,三个domain都是1.2V供电;pst_pd1_OFF是掉电模式,PD_1掉电,其他两个domain是1.2V供电;pst_pd2_LOW是掉电降压模式,PD_1掉电,PD_2降压到0.8V供电,仅保持数据。

add_port_state VDD –state {NOR_VOL 1.2}

add_port_state VDD_1 –state {NOR_VOL 1.2}

add_port_state VDD_1 –state {OFF_VOL off}

add_port_statte VDD_2 –state {NOR_VOL 1.2}

add_port_state VDD_2 –state {LOW_VOL 0.8}

create_ps top_pst –supplies [list VDD VDD_1 VDD_2]

add_pst_state pst_pd1_ON –pst top_pst –state {NOR_VOL NOR_VOL NOR_VOL}

add_pst_state pst_pd1_OFF –pst top_pst –state {NOR_VOL OFF_VOL NOR_VOL}

add_pst_state pst_pd2_LOW –pst top_pst –state {NOR_VOL OFF_VOL LOW_VOL}

完整的UPF请参考附件7.1。

3.3 UPF在Design Compiler中的应用

根据图14中的流程介绍,UPF准备好就可以进行综合和DFT的工作了。在这一步,Isolation cell、level shifters、Retention Registers等特殊单元都要正确的实现插入,而且也要插入clock gating来优化动态功耗以及用多个阈值电压的库来优化静态功耗。

如图17所示,在DC中,首先把所有不同阈值电压的标准单元库都设置到target_library以及link_library 里面去,工具在综合优化的时候,就可以根据路径上timing的是否关键来尽量平衡标准单元速度与静态功耗的关系,关键路径上,尽量选择低阈值电压/速度快的单元,但在非关键路径上,就尽量选择高阈值电压/静态功耗小的单元。

在读入RTL后,需要用load_upf的命令读入UPF文件,然后在compile时,工具会根据UPF的设置,自动插入Isolation cell、level shifters、Retention Registers等特殊单元(在我们这个设计中,仅需插入Isolation cells),并正确连接这些特殊单元的控制信号。

另外,为了优化动态功耗,我们在综合阶段让DC自动插入了Clock Gating。设置也很简单,只要在compile_ultra命令后面加上clock_gating的选项就可以了。

图17: UPF flow in Design Compiler

综合完成后,除MTCMOS没有插入外,其他特殊单元都已经按UPF描述的设计意图插入并连接。

综合后我们还要插入DFT相关结构,再做一个增进式的优化。在这两个过程中,如果DFT引入的电路根据UPF的要求需要插入特殊单元的话,工具会自动判断并在insert_dft或者compile命令执行的时候自动插入。比如,DFT插入的扫描链从电源关断模块连接到了其它非关断模块,这个时候根据UPF里面的规定,从关断区到非关断区要经过isolation cell的过渡,工具会自动判断到这一点,在需要的地方插入这些单元。

在综合和DFT的各个阶段,可以利用DC提供的命令check_mv_design对低功耗设计进行规则检查,确保没有违反UPF里面定义的相关规则。

最后,DC输出网表和UPF。也可以直接输出DDC或者直接写入到Milkyway数据库里面去,这两种方式都包含了网表和UPF信息,可以直接作为物理实现工具ICC的输入。

在综合前后我们都用Formality对输入和输出的RTL或netlist进行了带UPF的比对,以确保每一步骤电路在形式上没有发生改变。

3.4 UPF在IC Compiler中的应用

图18: UPF flow in IC Compiler

IC Compiler的UPF流程如图18所示,可以直接用DC输出的mw库或ddc文件,里面已经包含了UPF 信息。我们采用的是读入网表加UPF的方式。

首先我们需要在读入verilog网表以后,把UPF文件导入到ICC中:

load_upf $ICC_IN_UPF_FILE

读入netlist以及upf后就可以作整体规划(floorplan)了,在这个阶段主要有下面的工作:

? 在floorplan之前,要正确设置芯片的工作条件(operating_condition)以及用set_voltage命令对所有的电源和地设置正确的工作电压值。工具会根据这些设置来选择正确的单元进行时序计算。

? 读入UPF之后,ICC已经知道设计中有哪些power domain以及每个power domain里面有哪些电源、地。但这个时候ICC还没有把各个power domain里面所有cell中电源、地的端口与UPF里面定义的电源、地连接起来。需要运行下面的命令,所有power net会根据UPF中的描述自动创建,所有cells的电源也会根据UPF中的描述自动连接:

derive_pg_connection –create_net

derive_pg_connection –reconnect

另外derive_pg_connection命令在ICC每一次优化后都要执行一次,以对新加入的cell进行电源、地的连接。

? UPF里面虽然已经有了power domain的定义,但在物理上这些不同的电源域还没有固定的位置和形状。这就需要创建voltage area,每一个power domain都对应一个voltage area。但如何根据UPF文件中描述的power domain创建Voltage Area呢?我们这里也有些经验,在创建voltage area之前,我们可以用ICC里virtual-flat placement对全芯片进行一个快速的布局,然后根据布局的结果就可以知道与各个电源域相对应的各个模块的大体物理分布,从而帮助我们在这些区域来创建相应的voltage area。在UPF里面定义了三个power domain(PD_TOP, PD_1和PD_2),不过对于PD_TOP,ICC会自动的创建一个默认的Voltage Area(DEFAULT_VA), 对于另外两个Power domain,我们利用create_voltage_area命令创建Voltage Area。Voltage area的位置确定了,但其形状也与很多因素有关,可以是矩形也可以是多边形,总之,其位置和形状的最后确定可能会经过一些反复,因为这与设计最终布局布线的结果息息相关,创建不好,可能影响设计的时序,也可能影响设计的布线等。

? 所有voltage area都创建好后,就可以对关断电源区域插入电源关断单元(power gating cell)了。在我们这个设计里,PD_1是电源关断域,需要在这个电源模块里面插入MTCMOS(power gating cell)。在插入之

前,用map_power_switch命令指定要使用的MTCMOS单元名称及相对应的power domain名字。然后用add_header_footer_cell_array命令按指定的阵列插入MTCMOS单元,如图19所示。设计中有可能因为voltage area形状的原因或者因为macro的影响,可能要求按不规则阵列插入MTCMOS单元,可以通过多个add_header_footer_cell_array命令叠加来实现,或者手动移动MTCMOS的位置,然后再将其位置固定。如图22所示,在我们的设计中电源关断区域就有个非常大的macro,为了照顾这个大macro上的供电充足,我们就在其周围插入了密度比较大的MTCMOS单元。所以MTCMOS的插入和摆放跟整体规划中voltage area以及属于这个区域的macro的规划都有紧密关系。我们使用的是有一组控制信号(NSLEEPIN和NSLEEPOUT)的MTCMOS单元,其结构如图20所示:NSLEEPIN是MTCMOS打开或者关断的控制输入信号,NSLEEPOUT是NSLEEPIN信号经过MTCMOS单元后输出的响应信号。这些控制和响应信号在MTCMOS插入后还需要把他们都互相连接起来。连接的方法也有很多种,我们采用的是链状的连接方法。如图21所示。ICC提供了命令connect_power_switch来自动的实现这个功能。

图19 Column placement of MTCMOS cells

图20: Single input header control signal connections

最后,MTCMOS单元在版图中的位置及控制信号连接关系如图22所示:

图22: MTCMOS placement in the layout map

? 现在voltage area已经创建,MTCMOS单元也已经摆放连接好了。下一步就开始做power plan了,也就是电源网络的规划。由于VSS在每个power domain都是一样的。所以三个power domain的VSS mesh 是连在一起。True VDD(VDD)在所有的power domain都会用到,所以在每个power domain都需要加上power mesh。而在掉电区PD_1,VDD通过MTCMOS得到VDD_1,由VDD_1来给掉电区供电。所以VDD_2在PD_2和VDD_1在PD_1的power mesh不能连接到一起。ICC里面提供一个自动的电源网络综合的功能,用户可以告诉工具一些电源网络的约束以及要达到的电压降的目标,工具就可以自动产生符合要求的电源网络。而且,它是支持带MTCMOS的综合,也可以一次综合多个电源、地。用户只要根据产生的电源网络作些精细的修改就可以了。电源网络做好后,还要把MTCMOS的辅助电源连接好,如图23所示。连接辅助电源的方法主要有两种:一种是在“True” PG正好在MTCMOS上方的情况下,可以用create_preroute_vias命令来直接用过孔把MTCMOS的电源端口与”True” PG连接起来;另一种就是如果“True” PG不在MTCMOS上方,那就要用preroute_standard_cells命令里net连接的模式物理连接起来。至此,所有的电源、地网络都连接好了,还可以借用ICC提供的PNA(Power Network Analysis)的功

能对包含MTCMOS的电压降进行分析,以帮助判断MTCMOS单元数量是否足够以及其位置是否合理。

图23: MTCMOS辅助电源的连接

? 如果voltage area位置形状、macro的摆放以及电源网络都合理了,而且用check_mv_design来检查低功耗的规则还有电源、地的连接都没有问题了,floorplan阶段的工作也就结束了。自此,设计中所有因为低功耗设计要引入的新的cell都已经插入到设计中了。在综合及DFT阶段插入了isolation cell,在floorplan 阶段我们又插入了MTCMOS。

Floorplan结束后,ICC里面的布局、时钟树综合以及布线都和传统非UPF流程没有太大区别了。这些步骤工具都是可以自动理解low-power要求的,并会自动把isolation单元放到相对应的voltage area的边界。在我们这个设计中,我们还用到了ICC对动态功耗和静态功耗的电路优化能力,只要把相应开关打开工具就可以自动进行电路方面的功耗优化了。同样,在各个阶段都可以通过check_mv_design命令来检查是否有违反低功耗设计规则。

自此,在ICC里面的主要工作就结束了,为了给sign-off工具提供数据,我们还要写出带PG信息的netlist 以作理解low-power的形式验证、要写出最后的UPF以及不带PG信息的netlist以作最后的时序、SI及功耗分析。PrimeRail作IR-drop分析可以直接读取Milkyway的设计库。Star-rcxt作参数提取也可以直接读取Milkyway的设计库。

3.5 经验介绍

在上一节中已经介绍了一些物理实现的经验,比如如何确定Voltage Area的位置和形状,如何合理摆放MTCMOS等等。下面再就我们在实现过程中遇到的一些问题,以及一些需要注意的地方,在这里和大家

分享:

1. UPF里面特殊cell的控制信号(比如Isolation cell和MTCMOS的控制信号)最好定义在leaf pin上,不要定义在hierarchy pin上,否则ICC可能不能正确的识别该控制信号。

2. DFT设计阶段会在UPF里定义的特殊cell的控制信号上插入mux,用于测试时控制这些信号,如果UPF 里面定义的控制信号在插入的mux之前,则ICC也会找不到这些特殊cell的控制信号。比如Isolation cell 的控制信号,如图24所示,UPF中本来定义的Isolation cell控制信号是func_iso_en,但是加了DFT mux 之后,UPF中就需要将Isolation cell的控制信号定义在iso_en上才行。

图24: DFT模式下的Isolation控制信号

3. 关于Isolation cell的插入有一个需要注意的问题,power domain的某些接口信号在网表中可能是直接接电源或地的,如果在这些信号上插入了Isolation cell,在ICC中不能正确derive出这些Isolation cell的power连接关系。会报告这样的告警”The isolation cell …xxx? does not have any associated UPF isolation strategy ”。解决的方法就是在UPF中指定对这些信号不要插入Isolation cell,或者在ICC中直接指定这些Isolation cell的电源和地。

4. 需要在Voltage Area的边界用hard blockage留出足够的间隙或者在创建voltage area的时候加上guard_band的选项,工具就不会在这些区域摆放cell,否则如果voltage area边界内外cell紧密摆放的话,不同电源、地的cell就物理连接到一起了,就会有电源或地的短路出现。具体需要留多少间隙,要根据不同工艺的design rule来计算。

5. 关于MTCMOS的插入数量,可以先根据该模块的功耗大致估算一下。首先通过功耗分析估算出掉电区的功耗P,根据P=VI,及电源电压,计算出供电电流I;再根据foundry提供的MTCMOS的电阻值R,可以计算出并联n个MTCMOS的IR drop大致为IR/n;这样就可以根据期望达到的IR drop值,计算出需要插入多少MTCMOS了。当然最后还需要通过更精确的IR drop分析工具(比如Prime Rail)来分析IR drop 是否满足要求。

6. 关于MTCMOS的摆放和分布,则需要考虑掉电区的功耗分布,功耗密度大的地方电流密度也大,所以MTCMOS摆放密度要高一些,以减小IR drop。比如在我们的设计中,掉电区有个大块的Macro(见图22左上),且它的时钟频率比其他部分高,功耗密度比其他部分大很多,所以我们在其外围放了一圈紧挨着的MTCMOS,而在其他部分,则是按阵列形式摆放了几列MTCMOS,每列MTCMOS都是隔行摆放。

7. 掉电区的电源网络规划、以及MTCMOS的电源连接也是需要特别考虑的地方。掉电区有三个PG nets (True VDD、Virtual VDD和VSS),在做电源网络规划时,建议对三个PG nets都画一个密度相当的电源网格。True VDD和Virtual VDD的网格通过MTCMOS连接,MTCMOS处是电流密度最大的地方,所以为了减小IR drop,在MTCMOS上方尽量用宽金属走Power Strap。这样做出来的电源网络,一般不会有IR drop的问题。

4. 结论及建议

利用Synopsys基于UPF标准的低功耗流程,帮助我们在设计的整个流程(从前端到后端,以及验证)中,达成对低功耗设计意图描述上的连贯性、简洁性与一致性,并提供各方面的验证功能,极大的提高了设计实现的效率,并保证了设计的正确性。

对于设计实现工程师来说,UPF流程仅比传统流程增加了如何用UPF来描述自己设计中的低功耗意图,工具就可以根据UPF里面的约束,自动实现低功耗设计。而且实现与验证可能要用到多个工具,传统流程中,每个工具都要求有自己独立的低功耗设计命令,这样很难保证各个工具之间的描述是否一致,有了UPF,这个问题就彻底解决了,各个工具都使用统一的UPF文件来得到一致的低功耗设计要求。另外,低功耗设

计需要的特殊单元,如Isolation cells和Level Shifters在前端综合时工具会根据UPF的描述自动插入,MTCMOS在后端实现工具中插入以及连接,整个过程中复杂及容易出错的Power连接、控制信号连接等步骤都由工具根据UPF的描述自动实现了,操作简单方便,且不容易出错。

觉得需要增强的是,当我们在作这个项目的时候,Synopsys的低功耗流程还不支持在优化的中间过程对UPF进行修改。比如在物理实现的后期,想对power domain做些微小的修改,又不想从头开始重做,要是UPF也能像SDC一样可以remove后再load就更方便了。但是令人振奋的是,当前ICC0906的版本提供了一个叫reset_upf的新命令,已经可以实现这个功能了。

5. 致谢

UPF流程对于我们是一个全新的低功耗流程,完成本设计,离不开华为通信芯片团队的集体智慧和不懈的努力。在此,要特别感谢张方、张小珏、吕忠华、宋隽、乐彬、戴方明、余剑锋,以及各位同事的大力协助。另外,还要感谢Synopsys工程师杜广山、黄秋儿,他们提出了很多宝贵的意见和建议,并现场支持,及时解答每一个疑问,给予了我们极大的支持和帮助。

6. 参考文献

[1] Synopsys Low-Power Flow User Guide, Version B-2008.09, September 2008

[2] Synopsys? Low Power Solution white paper, December 2008

[3] Michael Keating, David Flynn, Robert Aitken, Alan Gibbons, Kaijian Shi, “Low Power Methodology Manual For System-on-Chip Design”

7. 附件

7.1 UPF范例

# create power domains

create_power_domain PD_TOP –include_scope

create_power_domain PD_1 –elements BLOCKA

create_power_domain PD_2 –elements BLOCKB

# supply nets definitions

create_supply_net VDD –domain PD_TOP

create_supply_net VDD –domain PD_1 –reuse

create_supply_net VDD_2 –domain PD_TOP

create_supply_net VDD_2 –domain PD_1 –reuse

create_supply_net VDD_2 –domain PD_2 –reuse

create_supply_net VDD_1 –domain PD_1

create_supply_net VSS –domain PD_TOP

create_supply_net VSS –domain PD_1 –reuse

create_supply_net VSS –domain PD_2 –reuse

#define the primary power/ground for power domains

set_domain_supply_net PD_TOP –primary_power_net VDD –primary_ground_net VSS

set_domain_suupply_net PD_1 –primary_power_net VDD_1 –primary_ground_net VSS

set_domain_supply_net PD_2 –primary_power_net VDD_2 –primary_ground_net VSS

# power ports definitions

create_supply_port VDD –domain PD_TOP –direction in

create_supply_port VDD_2 –domain PD_TOP –direction in

create_supply_port VSS –domain PD_TOP –direction in

#connect the supply net to power port

嵌入式系统的低功耗设计

第27卷第6期增刊 2006年6月 仪 器 仪 表 学 报 Chinese Journal of Scientific Instrument Vol.27No.6 J une.2006  嵌入式系统的低功耗设计 3 杨天池 金 梁 王天鹏 (解放军信息工程大学 郑州 450002) 摘 要 嵌入式系统的电源管理是系统设计中关键部分,合理的电源管理方案可以减少系统的功耗并提高整体性能。本文提出了一种层次化的电源管理结构,分别为硬件层、驱动层、操作系统层、电源管理层和应用层。本文同时引入了动态的电源管理方法来解决电源功耗的动态管理问题。通过在实际的系统中的测试表明,该电源管理机制的有效性。关键词 嵌入式系统 低功耗设计 动态电源管理 PXA255 Low pow er design in embedded system Yang Tianchi Jin Liang Wang Tianpeng (Universit y of I nf ormation Engineering ,Zhengz hou 450002,China ) Abstract Proper power management mechanism is important when designing embedded system.It is helpful to reduce power consumption and improve performance.This low power model adopt s five 2layer architecture ,which are hardware platform ,driver layer ,operating system ,power manage mechanism and application program.Dynamic power management (DPM )technology is also introduced to solve the problem of power consumption.The experiment on embedded system demonstrates t hat this power management mechanism is feasible.K ey w ords embedded system low power design dynamic power management PXA255  3基金项目:河南人才创新基金(0421000100) 1 引 言 随着嵌入式系统的发展以及应用面的不断扩展,功耗控制是系统设计中必不可少的组成部分。如何最大限度的降低系统功耗、减少不必要的能源损失、延长电池使用时间已经成为嵌入式系统特别是便携式系统设计中研究的热点问题。系统的低功耗设计,并非是某一方面、某一角度的解决方案,而应当从系统级的设计考虑功耗的节省,是一个硬件设计与软件控制相互结合的协调过程。 2 低功耗电路模型 低功耗设计对于无线设备、PDA 等便携式设备的实际应用具有重要的意义。低功耗元件的发展和系统设计的进步使得通用计算技术可以用到表、无线电话、 PDA 和桌面计算机中。在这些系统中的电源管理技 术传统上集中在休眠模式和设备能源管理这2个方面上[1]。但是,这样的电源管理缺乏直观性和灵活性,而且功耗的降低,并非单独软件、硬件单方面可以解决的[2],因此设计并建立如图1所示的系统低功耗设计模型。整个模型由硬件平台,驱动层,操作系统层,电源管理机制层和应用程序五个部分组成。 2.1 硬件平台 几乎所有系统功耗都集中于硬件平台,因此降低硬件平台的功耗是实现低功耗的基本所在。公式(1)为系统功耗的表达式: P ∞CV 2 f (1) 式中:C 是负载电容,V 是器件电压,f 是工作频率[3]。系统功耗同负载电容、器件电压平方以及工作频率成正比。因此,硬件平台设计多选用低电压,电压、频率可调器件,以及采用SOC 设计来进一步降低功耗[4,5]。另外,模式可控器件在空闲状态消耗的能量为运行状

集成电路的功耗优化和低功耗设计技术

集成电路的功耗优化和低功耗设计技术 摘要:现阶段各行业的发展离不开对能源的消耗,随着目前节能技术要求的不 断提升,降低功耗成为行业发展的重要工作之一。本文围绕集成电路的功耗优化 以及低功耗设计技术展开分析,针对现阶段常见的低功耗设计方式以及技术进行 探究,为集成电路功耗优化提供理论指导。 关键词:集成电路;功耗优化;低功耗 目前现代节能技术要求不断提升,针对设备的功耗控制成为当前发展的主要问题之一。 针对数字系统的功耗而言,决定了系统的使用性能能否得到提升。一般情况下,数字电路设 计方面,功耗的降低一直都是优先考虑的问题,并且通过对整个结构进行分段处理,同时进 行优化,最后总结出较为科学的设计方案,采用多种方式降低功耗,能够很大程度上提升设 备的使用性能。下面围绕数字电路的功耗优化以及低功耗设计展开分析。 一、设计与优化技术 集成电路的功耗优化和低功耗设计是相对系统的内容,一定要在设计的每个环节当中使 用科学且合理的技术手段,权衡并且综合考虑多方面的设计策略,才能够有效降低功耗并且 确保集成电路系统性能。因为集成电路系统的规模相对较大且具有一定的特殊性,想要完全 依靠人工或者手动的方式来达到这些目的并不现实且缺少可行性,一定要开发与之对应的电 路综合技术。 1 工艺级功耗优化 将工艺级功耗应用到设计当中,通常情况下采取以下两种方式进行功耗的降低: 首先,根据比例调整技术。进行低功耗设计过程中,为了能够实现功耗的有效降低会利 用工艺技术进行改善。在设计过程中,使用较为先进的工艺技术,能够让设备的电压消耗有 效缩减。现阶段电子技术水平不断提升,系统的集成度也随之提高,目前采用的零件的规格 也逐渐缩小,零件的电容也实现了良好的控制,进而能够很大程度上降低功耗。借助比例技术,除了能够将可见晶体管的比例进行调整,而且也能够缩小互连线的比例[1]。目前在晶体 管的比例缩小方面,能够依靠缩小零件的部分重要参数,进而在保持性能不被影响的情况下,通过较小的沟道长度,确保其他的参数不受影响的栅压缩方式,进而将零件的体积进行缩减,同时也缩短了延长的用时,使功耗能够有效降低。针对互连线缩小的方式主要将互连线的整 个结构进行调整,工作人员在进行尺寸缩减的过程中,会面临多方面的难题,比如系统噪音 无法控制,或者降低了电路使用的可靠性等等。 其次,采用封装技术进行降低。采用封装技术,能够让芯片与外部环境进行有效的隔离,进而避免了外部环境给电气设备造成一定的破坏与影响,在封装阶段,芯片的功耗会受到较 大的影响,因此需要使用更加有效的封装手段,才能够提升芯片的散热性,进而有效降低功 耗[2]。在多芯片的情况下,因为芯片与其他芯片之间的接口位置会产生大量的功耗,因此针 对多芯片采取封装技术,首先降低I/0接口的所有功能,接着解决电路延迟的问题,才能够 实现对集成电路的优化。 2 电路功耗优化 一般情况下,对电路级的功耗会选择动态的逻辑设计。在集成电路当中,往往会包含多 种电路逻辑结构,比如动态、静态等等,逻辑结构从本质上而言具有一定的差异性,这种差 异性也使得逻辑结构有着不同作用的功能。动态逻辑结构有着较为典型的特性[3]。静态的逻 辑结构当中所有的输入都会对接单独的MOS,因此逻辑结构功耗更大,动态的逻辑结构当中 电路通常具备N、M两个沟道,动态电路会利用时钟信号采取有效的控制,进而能够实现预

软件低功耗设计

Software Power Measurement Dushyanth Narayanan dnarayan@https://www.wendangku.net/doc/ca14031875.html, April26,2005 Technical Report MSR-TR-2005-51 Microsoft Research Microsoft Corporation One Microsoft Way Redmond,WA98052 https://www.wendangku.net/doc/ca14031875.html,

Abstract E?ective system-level power management requires cheap,accurate and?ne-grained power measurement and accounting.Unfortunately current portable hardware does not provide this capability.We advocate software power measure-ment:estimation of power consumption by modelling it as a function of device state.The approach requires no additional hardware,and allows?ne-grained, per-device and per-application power measurement.We describe a design and implementation of software power measurement,and a feasibility study showing signi?cantly better accuracy than power pro?ling based on time averaging.We conclude with design recommendations for OS designers and portable hardware vendors to improve the ease and accuracy of power measurement. 1Introduction Energy is a critical resource for many computing systems.While battery life is especially relevant to portable and hand-held computers,peak power consump-tion a?ects fan noise on desktops and cooling costs for server farms.There is an increasingly recognised need to manage and account energy as a?rst-class resource within the operating system[13]. Energy management requires accurate measurement and accounting.Adap-tive tuning of device parameters such as disk spin-down timeouts[3]requires accurate estimates of per-device power consumption.Per-device measurements at?ne time granularity—when combined with existing OS accounting of de-vices such as CPU,disk,and network—also enable per-application accounting of energy consumption.This is of great value both for end-users(“Outlook is responsible for80%of your battery drain,maybe you should kill it”)and for application-level adaptation[5]. Unfortunately,current approaches to energy measurement have several draw-backs,especially when applied to laptop and hand-held computers.Accurate measurement with?ne time granularity requires external hardware such as sam-pling digital multimeters,making the approach unwieldy and hard to deploy in the?eld.Unmodi?ed laptop hardware typically o?ers nothing more than Smart-Battery measurements,which are only accurate at coarse time granularities and measure the power consumption of the entire system but not of individual de-vices. We propose a novel technique known as software power measurement(SPM), which correlates infrequent,coarse-grained measurements of power with?ne-grained observations of device state and activity.The result of the correlation is a predictor that estimates the energy consumption over arbitrarily short time interval from from the observed device state and activity. The remainder of this paper is organised as follows.Section2describes current approaches to the problem and their drawbacks.Section3describes the design and prototype implementation of software power measurement on Windows XP.Section4presents a quantitative evaluation of the prototype, 1

如何进行低功耗设计

如何进行低功耗设计 现在电子产品,特别是最近两年很火爆的穿戴产品,智能手表等都是锂电池供电,如果采用同样容量大小的锂电池进行测试不难发现电子产品低功耗做的好的,工作时间越长。因此,低功耗设计排在电子产品设计的重要地位。 最近做穿戴产品设计,面临的第一个问题就是低功耗设计。经过这两天的认真分析总结,将低功耗设计的方法总结,以飨网友。 首先,要明白一点就是功耗分为工作时功耗和待机时功耗,工作时功耗分为全部功能开启的功耗和部分功能开启的功耗。这在很大程度上影响着产品的功耗设计。 对于一个电子产品,总功耗为该产品正常工作时的电压与电流的乘积,这就是低功耗设计的需要注意事项之一。 为了降低产品的功耗,在电子产品开发时尽量采用低电压低功耗的产品。比如一个产品,曾经用5v单片机正常工作,后来又了3.3v的单片机或者工作电压更低的,那么就是在第一层次中进行了低功耗设计,这也就是我们常说的研发前期低功耗器件选择。这一般需要有广阔的芯片涉猎范围或者与供应商有良好的沟通。 其次是模块工作的选择控制,一般选择具有休眠功能的芯片。比如在设计一个系统中,如果某些外部模块在工作中是不经常使用的,我们可以使其进入休眠模式或者在硬件电路设计中采用数字开关来控制器工作与否,当需要使用模块时将其唤醒,这样我们可以在整个系统进入低功耗模式时,关闭一些不必要的器件,以起到省电的作用,延长了待机时间。一般常用方法:①具有休眠模式的功能芯片②MOS管做电子开关③具有使能端的LDO芯片。 再次,选择具有省电模式的主控芯片。现在的主控芯片一般都具有省电模式,通过以往的经验可以知道,当主控芯片在省电模式条件下,其工作电流往往是正常工作电流的几分之一,这样可以大大增强消费类产品电池的使用时间。同时,现在一些控制芯片具有双时钟的模式,通过软件的配置使芯片在不同的使用场合使用不同的外部始终从而降低其功耗。这与始终分频器具有异曲同工之妙,不同之处想必就是BOM的价格问题。现在火爆的APPLE WATCH 就是低功耗的一个例子:全功能运行3-4小时,持续运行18小时。 主控芯片或者相关模块唤醒的方式选择。通常进过以上的步骤设计好了硬件结构,在系统需要省电,在什么时候进入省电模式,这一般在软件设计中实现,但是最主要还是需要根据产品的功能特性来决定了。当系统进入了省电模式,而系统的唤醒也需要控制。一般系统的唤醒分为自动唤醒和外部唤醒。 A、自动唤醒是使用芯片内部的定时器来计时睡眠时间,当睡眠时间达到预定时间时,自动进行唤醒。这与我们使用的看门狗或者中断有比较相近之处,不同就是其工作与否的时序。 B、外部唤醒就是芯片一直处于一种休眠状态,当有一个外部事件(主要是通过接口)来对芯片进行一个触发,则芯片会唤醒,在事件处理之后消除该触发事件而在此进入休眠状态。因此,根据系统的特性,就需要进行软件设计时,来决定如何使用睡眠及唤醒,以降低系统的功耗。 最后说说功耗的测试,功耗测试分为模块功耗和整机功耗,模块功耗需要测试休眠时功耗和工作时功耗。整机功耗分为最大负荷工作时功耗和基本功能时功耗和休眠时功耗。在前期的测试中我用直接用UI来进行测量,关于如何进行高精度低功耗产品的测量,在下篇中进一步说明。

基于IEEE1801(UPF)标准的低功耗设计实现流程

https://www.wendangku.net/doc/ca14031875.html,/inform ation/snug/2009/low-power-impleme ntation-flow-based-ieee1801-upf 基于IEEE1801(UPF)标准的低功耗设计实现流程 Low-power Implementation Flow Based IEEE1801 (UPF) 郭军, 廖水清, 张剑景 华为通信技术有限公司 jguo@https://www.wendangku.net/doc/ca14031875.html, liaoshuiqing@https://www.wendangku.net/doc/ca14031875.html, zhangjianjing@https://www.wendangku.net/doc/ca14031875.html, Abstract Power consumption is becoming an increasingly important aspect of ASIC design. There are several different approaches that can be used to reduce power. However, it is important to use these low-power technology more effectively in IC design implementation and verification flow. In our latest low-power chip, we completed full implementation and verification flow from RTL to GDSII successfully and effectively by adopting IEEE1801 Unified Power Format (UPF). This paper will focus on UPF application in design implementation with Synopsys low power solution. It will highlight that how to describe our low-power intent using UPF and how to complete the design flow. This paper first illustrates current low-power methodology and UPF?s concept. Then, it discussed UPF application in detail. Finally, it gives our conclusion. Key words: IEEE1801, UPF, Low-Power, Shut-Down, Power Gating, Isolation, IC-Compiler 摘要

ARM低功耗设计_全面OK

嵌入式系统中的低功耗设计 2008-12-31 18:19:55 作者:电子之都来源:电子之都浏览次数:59 网友评论 0 条 经过近几年的快速发展,嵌入式系统(Embedded system)已经成为电子信息产业中最具增长力的一个分支。随着手机、PDA、GPS、机顶盒等新兴产品的大量应用,嵌入式系统的市场正在以每年30%的速度递增(IDC预测),嵌入式系统的设计也成为软硬件工程师越来越关心的话题。 在嵌入式系统的设计中,低功耗设计(Low-Power Design)是许多设计人员必须面对的问题,其原因在于嵌入式系统被广泛应用于便携式和移动性较强的产品中去,而这些产品不是一直都有充足的电源供应,往往是靠电池来供电,所以设计人员从每一个细节来考虑降低功率消耗,从而尽可能地延长电池使用时间。事实上,从全局来考虑低功耗设计已经成为了一个越来越迫切的问题。 那么,我们应该从哪些方面来考虑低功耗设计呢?笔者认为应从以下几方面综合考虑: 1.处理器的选择 2.接口驱动电路设计 3.动态电源管理 4.电源供给电路的选择 下面我们分别进行讨论: 一、处理器的选择 我们对一个嵌入式系统的选型往往是从其CPU和操作系统(OS)开始的,一旦这两者选定,整个大的系统框架便选定了。我们在选择一个CPU的时候,一般更注意其性能的优劣(比如时钟频率等)及所提供的接口和功能的多少,往往忽视其功耗特性。但是因为CPU 是嵌入式系统功率消耗的主要来源---对于手持设备来讲,它几乎占据了除显示屏以外的整

个系统功耗的一半以上(视系统具体情况而定),所以选择合适的CPU对于最后的系统功耗大小有举足轻重的影响。 一般的情况下,我们是在CPU的性能(Performance)和功耗(Power Consumption)方面进行比较和选择。通常可以采用每执行1M次指令所消耗的能量来进行衡量,即Watt/M IPS。但是,这仅仅是一个参考指标,实际上各个CPU的体系结构相差很大,衡量性能的方式也不尽相同,所以,我们还应该进一步分析一些细节。 我们把CPU的功率消耗分为两大部分:内核消耗功率PCORE和外部接口控制器消耗功率PI/O,总的功率等于两者之和,即P=PCORE+PI/O。对于PCORE,关键在于其供电电压和时钟频率的高低;对于PI/O来讲,除了留意各个专门I/O控制器的功耗外,还必须关注地址和数据总线宽度。下面对两者分别进行讨论: 1、CPU供电电压和时钟频率 我们知道,在数字集成电路设计中,CMOS电路的静态功耗很低,与其动态功耗相比基本可以忽略不计,故暂不考虑。其动态功耗计算公式为: Pd=CTV2f 式中,Pd---CMOS芯片的动态功耗 CT----CMOS芯片的负载电容 V----CMOS芯片的工作电压 f-----CMOS芯片的工作频率 由上式可知,CMOS电路中的功率消耗是与电路的开关频率呈线性关系,与供电电压呈二次平方关系。对于一颗CPU来讲,Vcore电压越高,时钟频率越快,则功率消耗越大。所以,在能够满足功能正常的前提下,尽可能选择低电压工作的CPU能够在总体功耗方面得到

基于MSP430的极低功耗系统设计

基于MSP430的极低功耗系统设计 摘要:MSP430是TI公司出品的一款强大的16位单片机,其显著特点是具有极低的功耗。本文对构造以MSP430为基础极低功耗系统作为有益的探讨,对于设计各种便携式设备都具有较高的参考价值。 对于一个数字系统而言,其功耗大致满足以下公式:P=CV2f,其中C为系统的负载电容,V为电源电压,f为系统工作频率。由此可见,功耗与电源电压的平方成正比,因此电源电压对系统的功耗影响最大,其次是工作频率,再就是负载电容。负载电容对设计人员而言,一般是不可控的,因此设计一个低功耗系统,应该考虑到不影响系统性能前提下,尽可能地降低电源的电压和使用低频率的时钟。下面对TI公司新出MSP430来具体探讨这个问题。 MSP430具有工业级16位RISC,其I/O和CPU可以运行在不的时钟下。CPU功耗可以通过开关状态寄存器的控制位来控制:正常运行时电流160μA,备用时为0.1μA,功耗低,为设计低功耗系统提供了有利的条件。 图1是我们设计的以MSP430为CPU的“精密温度测试仪”(下面简称测试仪)。该产品使用电池供电,体积小巧,携带方便。 在使用时应该尽可能地选择最低的电源电压。对于MSP430而言,可用的最低电压是很低的,最低可达1.8V。我们使用TI公司推荐使用的3V。通常的电源只提供5V电压,因此,需要将5V电压由一个3V的稳压管降压后给CPU供电,也可以直接锂电池供电。3V不是标准的TTL电平,因此,在使用时需要用接口电路使CPU的非TTL标准电平能与TTL标准电平的器件连接。这些接口电路应该也是低功耗的,否则会造成一方面使用低电压降低了功耗,另一个方面使用额外的接口电路又增加了系统的功耗。或者直接使用支持3V电压的外围芯片。图1 (2)时钟频率 从低功耗的角度看,需要较低的频率,但是在实时应用中为了快速响应外部事件

产品低功耗设计

通过对几个方面的分析较为全面地介绍了嵌入式系统的低功耗设计方法。其中涉及到了CMOS 器件功耗的理论分析,线性稳压和DC to DC的电路介绍, 并以实际的芯片和电路比较进行了功耗分析,较为综合地总结了低功耗设计的若干方法和技巧。 关键词:低功耗设计(Low-Power Design)、动态电源管理(DPM)、线性稳压(Linear Regulator)、DC to DC、LDO(Low Drop-Out) 经过近几年的快速发展,嵌入式系统(Embedded system)已经成为电子信息产业中最具增长力的一个分???。随着手机、PDA、GPS、机顶盒等新兴产品的大量应用,嵌入式系统的市场正在以每年30%的速度递增(IDC预测),嵌入式系统的设计也成为软硬件工程师越来越关心的话题。 在嵌入式系统的设计中,低功耗设计(Low-Power Design)是许多设计人员必须面对的问题,其原因在于嵌入式系统被广泛应用于便携式和移动性较强的产品中去,而这些产品不是一直都有充足的电源供应,往往是靠电池来供电,所以设计人员从每一个细节来考虑降低功率消耗,从而尽可能地延长电池使用时间。事实上,从全局来考虑低功耗设计已经成为了一个越来越迫切的问题。 那么,我们应该从哪些方面来考虑低功耗设计呢?笔者认为应从以下几方面综合考虑: 1处理器的选择 2接口驱动电路设计 3动态电源管理 4电源供给电路的选择 下面我们分别进行讨论: 一、处理器的选择 我们对一个嵌入式系统的选型往往是从其CPU和操作系统(OS)开始的,一旦这两者选定,整个大的系统框架便选定了。我们在选择一个CPU的时候,一般更注意其性能的优劣(比如时钟频率等)及所提供的接口和功能的多少,往往忽视其功耗特性。但是因为CPU是嵌入式系统功率消耗的主要来源---对于手持设备来讲,它几乎占据了除显示屏以外的整个系统功 耗的一半以上(视系统具体情况而定),所以选择合适的CPU对于最后的系统功耗大小有举足轻重的影响。 一般的情况下,我们是在CPU的性能(Performance)和功耗(Power Consumption)方面进行比较和选择。通常可以采用每执行1M次指令所消耗的能量来进行衡量,即Watt/MIPS。但是,这仅仅是一个参考指标,实际上各个CPU的体系结构相差很大,衡量性能的方式也不尽相同,所以,我们还应该进一步分析一些细节。

常用低功耗设计

随着半导体工艺的飞速发展和芯片工作频率的提高,芯片的功耗迅速增加,而功耗增加又将导致芯片发热量的增大和可靠性的下降。因此,功耗已经成为深亚微米集成电路设计中的一个非常重要的考虑因素。为了使产品更具有竞争力,工业界对芯片设计的要求已从单纯的追求高性能、小面积,转换为对性能、面积、功耗的综合要求。微处理器作为数字系统的核心部件,其低功耗设计对降低整个系统的功耗具有非常重要的意义。 本文首先介绍了微处理器的功耗来源,重点介绍了常用的低功耗设计技术,并对今后低功耗微处理器设计的研究方向进行了展望。 1 微处理器的功耗来源 研究微处理器的低功耗设计技术,首先必须了解其功耗来源。高层次仿真得出的结论如图1所示。 从图1中可以看出,时钟单元(Clock)功耗最高,因为时钟单元有时钟发生器、时钟驱动、时钟树和钟控单元的时钟负载;数据通路(Datapath)是仅次于时钟单元的部分,其功耗主要来自运算单元、总线和寄存器堆。除了上述两部分,还有存储单元(Mem ory),控制部分和输入/输出 (Control,I/O)。存储单元的功耗与容量相关。 如图2所示,C MOS电路功耗主要由3部分组成:电路电容充放电引起的动态功耗,结反偏时漏电流引起的功耗和短路电流引起的功耗。其中,动态功耗是最主要的,占了总功耗的90%以上,表达式如下: 式中:f为时钟频率,C1为节点电容,α为节点的翻转概率,Vdd为工作电压。

2 常用的低功耗设计技术 低功耗设计足一个复杂的综合性课题。就流程而言,包括功耗建模、评估以及优化等;就设计抽象层次而言,包括自系统级至版图级的所有抽象层次。同时,功耗优化与系统速度和面积等指标的优化密切相关,需要折中考虑。下面讨论常用的低功耗设计技术。 2.1 动态电压调节 由式(1)可知,动态功耗与工作电压的平方成正比,功耗将随着工作电压的降低以二次方的速度降低,因此降低工作电压是降低功耗的有力措施。但是,仅仅降低工作电压会导致传播延迟加大,执行时间变长。然而,系统负载是随时间变化的,因此并不需要微处理器所有时刻都保持高性能。动态电压调节DVS (Dynarnic Voltage Scaling)技术降低功耗的主要思路是根据芯片工作状态改变功耗管理模式,从而在保证性能的基础上降低功耗。在不同模式下,工作电压可以进行调整。为了精确地控制DVS,需要采用电压调度模块来实时改变工作电压,电压调度模块通过分析当前和过去状态下系统工作情况的不同来预测电路的工作负荷。 2.2 门控时钟和可变频率时钟 如图1所示,在微处理器中,很大一部分功耗来自时钟。时钟是惟一在所有时间都充放电的信号,而且很多情况下引起不必要的门的翻转,因此降低时钟的开关活动性将对降低整个系统的功耗产牛很大的影响。门控时钟包括门控逻辑模块时钟和门控寄存器时钟。门控逻辑模块时钟对时钟网络进行划分,如果在当前的时钟周期内,系统没有用到某些逻辑模块,则暂时切断这些模块的时钟信号,从而明显地降低开关功耗。图3为采用“与”门实现的时钟控制电路。门控寄存器时钟的原理是当寄存器保持数据时,关闭寄存器时钟,以降低功耗。然而,门控时钟易引起毛刺,必须对信号的时序加以严格限制,并对其进行仔细的时序验证。 另一种常用的时钟技术就是可变频率时钟。根据系统性能要求,配置适当的时钟频率,避免不必要的功耗。门控时钟实际上是可变频率时钟的一种极限情况(即只有零和最高频率两种值),因此,可变频率时钟比门控时钟技术更加有效,但需要系统内嵌时钟产生模块PLL,增加了设计复杂度。去年Intel公司推出的采用先进动态功耗控制技术的Montecito处理器,就利用了变频时钟系统。该芯片内嵌一个高精度数字电流表,利用封装上的微小电压降计算总电流;通过内嵌的一个32位微处理器来调整主频,达到64级动态功耗调整的目的,大大降低了功耗。

单片机MSP430的极低功耗系统设计

单片机MSP430的极低功耗系统设计

ASIC低功耗设计

三、低功耗技术 1. 功耗分析 (1)由于电容的充放电引起的动态功耗 V DD C l i VDD v out 图(20)充放电转换图 如图(20)所示:PMOS 管向电容L C 充电时,电容的电压从0上升到DD V ,而这些能量来 自于电源。一部分能量消耗在PMOS 管上,而剩余的则保存在电容里。从高电压向低转换的过程中,电容放电,电容中储存的能量消耗在NMOS 管上。 我们来推导一下:考虑从低电压转换到高电压的情况,NMOS 和PMOS 不同时导通。在转换过程中电源提供的能量为C E ,而是转换后储存在电容里的能量。 ???====∞∞VDD DD L out DD L out L DD VDD VDD V C dv V C dt dt dv C V dt t i E 0 002)( ???====∞∞VDD DD L out out L out out L out VDD C V C dv v C dt v dt dv C dt v t i E 02002 )( 这两个等式说明电源提供的能量只有一半储存在电容里。另一半被PMOS 管消耗掉了。 为了计算总体能量消耗,我们不得不考虑器件的翻转。如果门每秒钟翻转10?→? f 次,那么 102 ?→?=f V C P DD L dyn 10?→?f 表示能量消耗的翻转频率。 随着数字电路集成度的提高,能量问题将成为人们关注的焦点。从以上分析看出,dyn P 跟电源电压的平方成正比,因此降低供电电压对降低功耗有非常显著的意义。 但是,降低供电电压对电路性能有一定的影响,这时我们可以考虑减小有效电容和减少翻转率。电容主要是由于晶体管的门和扩散电容引起的,因此降低由于电容的充放电引起的动态功耗方法之一是将晶体管设计得尽可能小,这种方法同样对提高电路的性能有很大的帮助。

微处理器的低功耗芯片设计技术

微处理器的低功耗芯片设计技术 [日期:2008-1-7] 来源:单片机及嵌入式系统应用作者:同济大学周俊林正浩 [字体:大中小] 摘要随着半导体工艺的飞速发展和芯片工作频率的提高,功耗已经成为深亚微米集成电路设计中的一个重要考虑因素。本文介绍了低功耗微处理器的研究现状,讨论了几种常用的微处理器低功耗设计技术。最后,对夸后低功耗微处理器设计的研究方向进行了展望。 关键词微处理器功耗低功耗芯片设计 随着半导体工艺的飞速发展和芯片工作频率的提高,芯片的功耗迅速增加,而功耗增加又将导致芯片发热量的增大和可靠性的下降。因此,功耗已经成为深亚微米集成电路设计中的一个重要考虑因素。为了使产品更具竞争力,工业界对芯片设计的要求已从单纯追求高性能、小面积转为对性能、面积、功耗的综合要求。而微处理器作为数字系统的核心部件,其低功耗设计对降低整个系统的功耗具有重要的意义。 2000年年初,Transmeta公司推出了Crusoe处理器,以其独特的低功耗设计技术和非凡的超低功耗表现,在业界引起巨大轰动,引发了低功耗处理器设计的激烈竞争。 在2006年的英特尔开发者论坛大会(Intel DeveloperForum)上,英特尔展示了多款基于下一代技术的微处理器。其中,Metom主要用于笔记本电脑,最大功耗仅有5W,而将于2 006年底上市的超低电压版Merom的功耗则只有0.5W;Conroe主要面向台式机,其最大功耗为65W,远远低于现有Pentium 4处理器的95W;服务器处理器Woodcrest的最大功耗为80W,而现有的Xeon处理器的功耗为110W。 本文首先介绍了微处理器的功耗来源,重点介绍了常用的低功耗设计技术,并对今后低功耗微处理器设计的研究方向进行了展望。 1 微处理器的功耗来源 研究微处理器的低功耗设计技术,首先必须了解它的功耗来源。高层次仿真得出的结论如图1所示。

超低功耗系统设计

超低功耗系统设计 学院: 学号: 姓名:

基于MSP430单片机的开关稳压电源设计 MSP430系列单片机是美国TI公司生产的新一代16位单片机,是一种超低功耗的混合信号处理器(MixedSignal Processor),它具有低电压、超低功耗、强大的处理能力、系统工作稳定、丰富的片内外设、方便开发等优点,具有很高的性价比,在工程控制等领域有着极其广泛的应用范围。开关Boost稳压电源利用开关器件控制、无源磁性元件及电容元件的能量存储特性,从输入电压源获取分离的能量,暂时把能量以磁场的形式存储在电感器中,或以电场的形式存储在电容器中,然后将能量转换到负载。对DC—DC主回路采用Boost升压斩波电路。 2 系统结构和总设计方案 本开关稳压电源是以MSP430F449为主控制器件,它是TI公司生产的16位超低功耗特性的功能强大的单片机,其低功耗的优点有利于系统效率高的要求,且其ADCl2是高精度的12位A/D转换模块,有高速、通用的特点。这里使用MSP430完成电压反馈的PI调节;PWM波产生,基准电压设定;电压电流显示;过电流保护等。 系统框图如图1所示。 3 硬件电路设计 3.1 DC/DC转换电路设计 系统主硬件电路由电源部分、整流滤波电路、DC/DC转换电路、驱动电

路、MSP430单片机等部分组成。交流输入电压经整流滤波电路后经过DC/DC变换器,采用Boost升压斩波电路DC/DC变换,如图2所示: 根据升压斩波电路的工作原理一个周期内电感L积蓄的能量与释放的能量相等,即: 式(1)中I1为输出电流,电感储能的大小通过的电流与电感值有关。在实际电路中电感的参数则与选取开关频率与输入/输出电压要求,根据实际电路的要求选用合适的电感值,且要注意其内阻不应过大,以免其损耗过大减小效率采样电路。对于电容的计算,在指定纹波电压限制下,它的大小的选取主要依据式(2): 式(2)中:C为电容的值;D1为占空比;TS为MOSFET的开关周期;I0为负载电流;V’为输出电压纹波。 3.2 采样电路 采样电路为电压采集与电流采集电路,采样电路如图3所示。其中P6.O,P6.1为MSP430芯片的采样通道,P6.O为电压采集,P6.1为电流采集。 电压采集因为采样信号要输入单片机MSP430内部,其内部采样基准电压选为2.5 V,因此要将输入的采样电压限制在2.5 V之下,考虑安全裕量则将输入电压限制在2 V以下,当输入电压为36 V时,采样电压为:12/ (12+200)×36=2.04 V,符合要求。 电流采集采用康铜丝进行采集。首先考虑效率问题,康铜丝不能选择过大,同时MSP430基准电压为2.5 V,且所需康铜丝需自制。考虑以上方面在康铜丝阻值选取上约为O.1Ω。 3.3 PWM驱动电路的设计 电力MOSFET驱动功率小,采用三极管驱动即可满足要求,驱动电路如图

嵌入式系统低功耗设计研究与实现

华中科技大学 硕士学位论文 嵌入式系统低功耗设计研究与实现 姓名:梁晶 申请学位级别:硕士 专业:计算机应用技术 指导教师:阳富民 20040429

摘要 嵌入式系统低功耗设计的目标是在满足用户对性能需求的前提下,尽可能降低系统的能耗,延长设备的待机时间。随着市场对可移动式嵌入式设备在体积和性能方面要求的不断提升,嵌入式设备小体积、高性能与有限的电池能量之间的矛盾嗣益突出,嵌入式系统低功耗设计是解决这一矛盾的有效手段。它包括硬件低功耗设计和软件低功耗设计两个方砸。 硬件低功耗设计为整个系统的低功耗运行提供硬件支持。电路级的硬件低功耗设计主要围绕处理器的低功耗特性和外围芯片的特点,设计处理器的供电电路和外围芯片的电源控制电路:处理器供电电路允许改变处理器内核的输入电压,使处理器内核的工作电压随着不同的处理器时钟频率而改变,以减小处理器的功耗;外围芯片的电源控制电路使处理器能够控制外围芯片电源的开启和关闭,从而能够减小外围芯片的功耗。 软件低功耗设计的主要目标是在嵌入式Linux系统中实现一套可行的低功耗管理策略,并且采用的技术和算法并不改变Linux现有的调度机制。主要工作包括:围绕处理器内核可动态改变时钟频率和工作电压的特点,在嵌入式Linux系统中实现可变电压技术;针对处理器提供的多种工作模式,在嵌入式Linux系统中实现动态功耗管理,控制处理器在适当的时候睡眠或唤醒:针对外部设备的特点,在嵌入式Linux中实现外部设备的电源管理机制,包括外部设备的状态监控、睡眠和唤醒操作以及相应的管理策略。 关键字:嵌入式系统,低功耗设计,电源管理,可变电压技术,动态功耗管理 l

相关文档