文档库 最新最全的文档下载
当前位置:文档库 › 基于IEEE1801(UPF)标准的低功耗设计实现流程

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

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

https://www.wendangku.net/doc/1b6705717.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/1b6705717.html,

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

zhangjianjing@https://www.wendangku.net/doc/1b6705717.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-Switch structure and Footer-Switch structure

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

图12: Retention-Register

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

图13 Aways-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

图21: MTCMOS cells chain connections

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

集成电路IC设计完整流程详解及各个阶段工具简介

IC设计完整流程及工具 IC的设计过程可分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计。 前端设计的主要流程: 1、规格制定 芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。 2、详细设计 Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。 3、HDL编码 使用硬件描述语言(VHDL,Verilog HDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过HDL语言描述出来,形成RTL(寄存器传输级)代码。 4、仿真验证 仿真验证就是检验编码设计的正确性,检验的标准就是第一步制定的规格。看设计是否精确地满足了规格中的所有要求。规格是设计正确与否的黄金标准,一切违反,不符合规格要求的,就需要重新修改设计和编码。设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。仿真验证工具Mentor公司的Modelsim,Synopsys的VCS,还有Cadence的NC-Verilog均可以对RTL级的代码进行设计验证,该部分个人一般使用第一个-Modelsim。该部分称为前仿真,接下来逻辑部分综合之后再一次进行的仿真可称为后仿真。 5、逻辑综合――Design Compiler 仿真验证通过,进行逻辑综合。逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表netlist。综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准。逻辑综合需要基于特定的综合库,不同的库中,门电路基

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

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

如何进行低功耗设计

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

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

https://www.wendangku.net/doc/1b6705717.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/1b6705717.html, liaoshuiqing@https://www.wendangku.net/doc/1b6705717.html, zhangjianjing@https://www.wendangku.net/doc/1b6705717.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 摘要

软件低功耗设计

Software Power Measurement Dushyanth Narayanan dnarayan@https://www.wendangku.net/doc/1b6705717.html, April26,2005 Technical Report MSR-TR-2005-51 Microsoft Research Microsoft Corporation One Microsoft Way Redmond,WA98052 https://www.wendangku.net/doc/1b6705717.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

IC设计流程

设计流程 IC的设计过程可分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计。 前端设计的主要流程: 1、规格制定 芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。 2、详细设计 Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。 3、HDL编码 使用硬件描述语言(VHDL,Verilog HDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过HDL语言描述出来,形成RTL(寄存器传输级)代码。 4、仿真验证 仿真验证就是检验编码设计的正确性,检验的标准就是第一步制定的规格。看设计是否精确地满足了规格中的所有要求。规格是设计正确与否的黄金标准,一切违反,不符合规格要求的,就需要重新修改设计和编码。设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。仿真验证工具Mentor公司的Modelsim,Synopsys的VCS,还有Cadence的NC-Verilog均可以对RTL级的代码进行设计验证,该部分个人一般使用第一个-Modelsim。该部分称为前仿真,接下来逻辑部分综合之后再一次进行的仿真可称为后仿真。 5、逻辑综合――Design Compiler

仿真验证通过,进行逻辑综合。逻辑综合的结果就是把设计实现的HDL代码翻译成门 级网表netlist。综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元(standard cell)的面积,时序参数是不一样的。所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的。一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)逻辑综合工具Synopsys的Design Compiler,仿真工具选 择上面的三种仿真工具均可。 6、STA Static Timing Analysis(STA),静态时序分析,这也属于验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。这个是数字电路基础知识,一个寄存器出现这两个时序违例时,是没有办法正确采样数据和输出数据的,所以以寄存器为基础的数字芯片功能肯定会出现问题。STA工具有Synopsys的Prime Time。 7、形式验证 这也是验证范畴,它是从功能上(STA是时序上)对综合后的网表进行验证。常用的就是等价性检查方法,以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先HDL描述的电路功能。形式验证工具有Synopsys的Formality。前端设计的流程暂时写到这里。从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路。 Backend design flow后端设计流程: 1、DFT Design ForTest,可测性设计。芯片内部往往都自带测试电路,DFT的目的就是在设计的时候就考虑将来的测试。DFT的常见方法就是,在设计中插入扫描链,将非扫描单元(如寄存器)变为扫描单元。关于DFT,有些书上有详细介绍,对照图片就好理解一点。DFT工具Synopsys的DFT 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能够在总体功耗方面得到

IC设计流程之实现篇全定制设计

IC设计流程之实现篇——全定制设计 要谈IC设计的流程,首先得搞清楚IC和IC设计的分类。 集成电路芯片从用途上可以分为两大类:通用IC(如CPU、DRAM/SRAM、接口芯片等)和专用IC(ASIC)(Application Specific Integrated Circuit),ASIC是特定用途的IC。从结构上可以分为数字IC、模拟IC和数模混合IC三种,而SOC(System On Chip,从属于数模混合IC)则会成为IC设计的主流。从实现方法上IC设计又可以分为三种,全定制(full custom)、半定制(Semi-custom)和基于可编程器件的IC设计。全定制设计方法是指基于晶体管级,所有器件和互连版图都用手工生成的设计方法,这种方法比较适合大批量生产、要求集成度高、速度快、面积小、功耗低的通用IC或ASIC。基于门阵列(gate-array)和标准单元(standard-cell)的半定制设计由于其成本低、周期短、芯片利用率低而适合于小批量、速度快的芯片。最后一种IC设计方向,则是基于PLD或FPGA器件的IC设计模式,是一种“快速原型设计”,因其易用性和可编程性受到对IC制造工艺不甚熟悉的系统集成用户的欢迎,最大的特点就是只需懂得硬件描述语言就可以使用EDA工具写入芯片功能。从采用的工艺可以分成双极型(bipolar),MOS和其他的特殊工艺。硅(Si)基半导体工艺中的双极型器件由于功耗大、集成度相对低,在近年随亚微米深亚微米工艺的的迅速发展,在速度上对MOS管已不具优势,因而很快被集成度高,功耗低、抗干扰能力强的MOS管所替代。MOSFET工艺又可分为NMOS、PMOS和CMOS三种;其中CMOS工艺发展已经十分成熟,占据IC市场的绝大部分份额。GaAs器件因为其在高频领域(可以在0.35um下很轻松作到10GHz)如微波IC中的广泛应用,其特殊的工艺也得到了深入研究。而应用于视频采集领域的CCD传感器虽然也使用IC一样的平面工艺,但其实现和标准半导体工艺有很大不同。在IC开发中,常常会根据项目的要求(Specifications)、经费和EDA工具以及人力资源、并考虑代工厂的工艺实际,采用不同的实现方法。 其实IC设计这个领域博大精深,所涉及的知识工具领域很广,本系列博文围绕EDA工具展开,以实现方法的不同为主线,来介绍这三种不同的设计方法:全定制、半定制和基于FPGA

常用低功耗设计

随着半导体工艺的飞速发展和芯片工作频率的提高,芯片的功耗迅速增加,而功耗增加又将导致芯片发热量的增大和可靠性的下降。因此,功耗已经成为深亚微米集成电路设计中的一个非常重要的考虑因素。为了使产品更具有竞争力,工业界对芯片设计的要求已从单纯的追求高性能、小面积,转换为对性能、面积、功耗的综合要求。微处理器作为数字系统的核心部件,其低功耗设计对降低整个系统的功耗具有非常重要的意义。 本文首先介绍了微处理器的功耗来源,重点介绍了常用的低功耗设计技术,并对今后低功耗微处理器设计的研究方向进行了展望。 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级动态功耗调整的目的,大大降低了功耗。

IC设计后端流程(初学必看)

基本后端流程(漂流&雪拧) ----- 2010/7/3---2010/7/8 本教程将通过一个8*8的乘法器来进行一个从verilog代码到版图的整个流程(当然只是基本流程,因为真正一个大型的设计不是那么简单就完成的),此教程的目的就是为了让大家尽快了解数字IC设计的大概流程,为以后学习建立一个基础。此教程只是本人探索实验的结果,并不代表容都是正确的,只是为了说明大概的流程,里面一定还有很多未完善并且有错误的地方,我在今后的学习当中会对其逐一完善和修正。 此后端流程大致包括以下容: 1.逻辑综合(逻辑综合是干吗的就不用解释了把?) 2.设计的形式验证(工具formality) 形式验证就是功能验证,主要验证流程中的各个阶段的代码功能是否一致,包括综合前RTL 代码和综合后网表的验证,因为如今IC设计的规模越来越大,如果对门级网表进行动态仿真的话,会花费较长的时间(规模大的话甚至要数星期),这对于一个对时间要求严格(设计周期短)的asic设计来说是不可容忍的,而形式验证只用几小时即可完成一个大型的验证。另外,因为版图后做了时钟树综合,时钟树的插入意味着进入布图工具的原来的网表已经被修改了,所以有必要验证与原来的网表是逻辑等价的。 3.静态时序分析(STA),某种程度上来说,STA是ASIC设计中最重要的步骤,使用primetime 对整个设计布图前的静态时序分析,没有时序违规,则进入下一步,否则重新进行综合。 (PR后也需作signoff的时序分析) 4.使用cadence公司的SOCencounter对综合后的网表进行自动布局布线(APR) 5.自动布局以后得到具体的延时信息(sdf文件,由寄生RC和互联RC所组成)反标注到 网表,再做静态时序分析,与综合类似,静态时序分析是一个迭代的过程,它与芯片布局布线的联系非常紧密,这个操作通常是需要执行许多次才能满足时序需求,如果没违规,则进入下一步。 6.APR后的门级功能仿真(如果需要) 7.进行DRC和LVS,如果通过,则进入下一步。 8.用abstract对此8*8乘法器进行抽取,产生一个lef文件,相当于一个hard macro。 9.将此macro作为一个模块在另外一个top设计中进行调用。 10.设计一个新的ASIC,第二次设计,我们需要添加PAD,因为没有PAD,就不是一个完整的 芯片,具体操作下面会说。 11.重复第4到7步

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 跟电源电压的平方成正比,因此降低供电电压对降低功耗有非常显著的意义。 但是,降低供电电压对电路性能有一定的影响,这时我们可以考虑减小有效电容和减少翻转率。电容主要是由于晶体管的门和扩散电容引起的,因此降低由于电容的充放电引起的动态功耗方法之一是将晶体管设计得尽可能小,这种方法同样对提高电路的性能有很大的帮助。

IC设计流程及工具

[FPGA/CPLD]典型的FPGA设计流程 skycanny 发表于 2005-12-8 22:17:00 转自EDA专业论坛作者:lixf 1.设计输入 1)设计的行为或结构描述。 2)典型文本输入工具有UltraEdit-32和Editplus.exe.。

3)典型图形化输入工具-Mentor的Renoir。 4)我认为UltraEdit-32最佳。 2.代码调试 1)对设计输入的文件做代码调试,语法检查。 2)典型工具为Debussy。 3.前仿真 1)功能仿真 2)验证逻辑模型(没有使用时间延迟)。 3)典型工具有Mentor公司的ModelSim、Synopsys公司的VCS和VSS、Aldec公司的Active、Ca dense公司的NC。 4)我认为做功能仿真Synopsys公司的VCS和VSS速度最快,并且调试器最好用,Mentor公司的ModelSim对于读写文件速度最快,波形窗口比较好用。 4.综合 1)把设计翻译成原始的目标工艺 2)最优化 3)合适的面积要求和性能要求 4)典型工具有Mentor公司的LeonardoSpectrum、Synopsys公司的DC、Synplicity公司的Synp lify。 5)推荐初学者使用Mentor公司的LeonardoSpectrum,由于它在只作简单约束综合后的速度和面积最优,如果你对综合工具比较了解,可以使用Synplicity公司的Synplify。 5.布局和布线 1)映射设计到目标工艺里指定位置 2)指定的布线资源应被使用 3)由于PLD市场目前只剩下Altera,Xilinx,Lattice,Actel,QuickLogic,Atmel六家公司,其中前5家为专业PLD公司,并且前3家几乎占有了90%的市场份额,而我们一般使用Altera,Xilinx公司的PLD居多,所以典型布局和布线的工具为Altera公司的Quartus II和Maxplus II、Xilinx公司的ISE和Foudation。 4)Maxplus II和Foudation分别为Altera公司和Xilinx公司的第一代产品,所以布局布线一般使用Quartus II和ISE。 6.后仿真 1)时序仿真 2)验证设计一旦编程或配置将能在目标工艺里工作(使用时间延迟)。 3)所用工具同前仿真所用软件。 7.时序分析 4)一般借助布局布线工具自带的时序分析工具,也可以使用Synopsys公司的 PrimeTime软件和Mentor Graphics公司的Tau timing analysis软件。 8.验证合乎性能规范 1)验证合乎性能规范,如果不满足,回到第一步。 9.版图设计 1)验证版版图设计。

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

微处理器的低功耗芯片设计技术 [日期: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所示。

集成电路低功耗设计方法研究【文献综述】

毕业设计文献综述 电子信息科学与技术 集成电路低功耗设计方法研究 摘要:随着IC制造工艺达到纳米级,功耗问题已经与面积、速度一样受到人们关注,并成为制约集成电路发展的关键因素之一。同时,由于电路特征尺寸的缩小,之前相比于电路动态功耗可以忽略的静态漏功耗正不断接近前者,给电路低功耗设计提出了新课题,即低漏功耗设计。本文将分析纳米工艺下芯片功耗的组成和对低漏功耗进行研究的重要性,然后介绍目前主要的低功耗设计方法。此外,由于ASIC技术是目前集成电路发展的趋势和技术主流,而标准单元是ASIC设计快速发展的重要支撑,本文在最后提出了标准单元包低漏功耗设计方法,结合电路级的功耗优化技术,从而拓宽ASIC功耗优化空间。 关键字:低功耗,标准单元,ASIC设计 前言: 自1958年德克萨斯仪器公司制造出第一块集成电路以来,集成电路产业一直以惊人的速度发展着,到目前为止,集成电路基本遵循着摩尔定律发展,即集成度几乎每18个月翻一番。 随着制造工艺的发展,IC设计已经进入了纳米级时代:目前国际上能够投入大规模量产的最先进工艺为40nm,国内的工艺水平正将进入65nm;2009年,Intel酷睿i系列创纪录采用了领先的32nm 工艺,并且下一代22nm工艺正在研发中。但伴随电路特征尺寸的减小,电路功耗数值正呈指数上升,集成电路的发展遭遇了功耗瓶颈。功耗问题已经同面积和速度一样受到人们重视,成为衡量IC设计成功与否的重要指标之一。若在设计时不考虑功耗而功利地追求集成度的提高,则可能会使电路某些部分因功耗过大引起温度过高而导致系统工作不稳定或失效。如Intel的1.5GHz Pentium Ⅳ处理器,拥有的晶体管数量高达4200万只,功率接近95瓦,整机生产商不得不为其配上了特大号风扇来维持其正常工作。功耗的增大不仅将导致器件的可靠性降低、芯片的稳定性下降,同时也给芯片的散热和封装带来问题。因此,功耗已经成为阻碍集成电路进一步发展的难题之一,低功耗设计也已成为集成电路的关键设计技术之一。 一、电路功耗的组成 CMOS电路中有两种主要的功耗来源,动态功耗和静态功耗。其中,动态功耗包括负载电容的充放电功耗(交流开关功耗)和短路电流引起的功耗;静态功耗主要是由漏电流引起的功耗,如图1所示。

IC设计流程

大体是 1. 首先是使用HDL语言进行电路描述,写出可综合的代码。然后用仿真工具作前仿真, 对理想状况下的功能进行验证。这一步可以使用Vhdl或Verilog作为工作语言,EDA工具 方面就我所知可以用Synopsys的VSS(for Vhdl)、VCS(for Verilog)Cadence的工具也就是著名的Verilog-XL和NC Verilog 2.前仿真通过以后,可以把代码拿去综合,把语言描述转化成电路网表,并进行逻辑和 时序电路的优化。在这一步通过综合器可以引入门延时,关键要看使用了什么工艺的库 这一步的输出文件可以有多种格式,常用的有EDIF格式。 综合工具Synopsys的Design Compiler,Cadence的Ambit 3,综合后的输出文件,可以拿去做layout,将电路fit到可编程的片子里或者布到硅片上 这要看你是做单元库的还是全定制的。 全定制的话,专门有版图工程师帮你画版图,Cadence的工具是layout editor 单元库的话,下面一步就是自动布局布线,auto place & route,简称apr cadence的工具是Silicon Ensembler,Avanti的是Apollo layout出来以后就要进行extract,只知道用Avanti的Star_rcxt,然后做后仿真 如果后仿真不通过的话,只能iteration,就是回过头去改。 4,接下来就是做DRC,ERC,LVS了,如果没有什么问题的话,就tape out GDSII 格式的文件 送制版厂做掩膜板,制作完毕上流水线流片,然后就看是不是work了 做DRC,ERC,LVSAvanti的是Hercules,Venus,其它公司的你们补充好了 btw:后仿真之前的输出文件忘记说了,应该是带有完整的延时信息的设计文件如:*.VHO,*.sdf RTL->SIM->DC->SIM-->PT-->DC---ASTRO--->PT----DRC,LVS--->TAPE OUT 1。PT后一般也要做动态仿真,原因:异步路径PT是做不了的 2。综合后加一个形式验证,验证综合前后网表与RTL的一致性 3。布版完成后一般都会有ECO,目的手工修改小的错误 SPEC->ARCHITECTURE->RTL->SIM->DC->SIM-->PT-->DC---ASTRO--->PT----DRC, LVS--->TAPE OUT SPEC:specification,在进行IC设计之前,首先需要对本IC的功能有一个基本的定义。 ARCHITECTURE:IC的系统架构,包括算法的设计,算法到电路的具体映射,电路的具体实现方法,如总线结构、流水方式等。 在IC前端的设计中,ARCHITECTURE才是精华,其他的大部分都是EDA工具的使用,技术含量不高。

相关文档