基于IEEE1801UPF的低功耗设计流程综述_第1页
基于IEEE1801UPF的低功耗设计流程综述_第2页
基于IEEE1801UPF的低功耗设计流程综述_第3页
基于IEEE1801UPF的低功耗设计流程综述_第4页
基于IEEE1801UPF的低功耗设计流程综述_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 IEEE1801(UPF) 标准的低功耗设计实现流程 摘要 目前除了时序和面积, 功耗已经成为集成电路设计中日益关注的因素。 当前有很 多种降低功耗的方法,为了在设计实现流程中更加 有效的利用各种低功耗的设 计方法,我们在最近一款芯片的设计实现以及验证流程中, 使用了基于 IEEE1801 标准 Unified Power Format ( UPF)的完整技术,成功的完成了从 RTL到 GDSII 的全部过程, 并且芯片制造回来成功的完成了测试。 本文就其中的设计实现部分 进行了详 细探讨,重点介绍如何用 UPF把我们的低功耗意图描述出来以及如何 用 Synopsys 工具实现整个流程,

2、希望给大家以启发。本文先介绍目前常用的低 功耗设 计的一些方法特别是用 power-gating 的方法来控制静态功耗以及 UPF 的实现方法,然后阐述 UPF在我们设计流程中的应用, 并在介绍中引入了一些 我 们的设计经验,最后给出我们的结论。 关键字: IEEE1801, UPF,低功耗 , 电源关断, Power-Gating, Isolation, IC-Compiler 1. 简介 1.1 深亚微米设计面临的挑战 随着工艺特征尺寸的缩小以及复杂度的提高, IC 设计面临了很多挑战:速度越 来越高,面积不断增大,噪声现象更加严重等。其 中,功耗问题尤为突出,工 艺进入 130nm以下节

3、点后,单位面积上的功耗密度急剧上升, 已经达到封装、 散 热、以及底层设备所能支持的极限。 随着工艺进一步 达到 90nm以下,漏电流呈 指数级增加(如图所示),在某些 65nm设计中,漏电流已经和动态电流一样 大,曾经可以忽略的静态功耗成为功耗的主要部分。 功耗已成为继传统二维要 素(速度、面积 ) 之后的第三维要素。 图 1: 静态功耗与工艺特征尺寸的关系 另外,目前飞速发展的手持电子设备市场, 为了增强自身产品的竞争力, 也对低 功耗提出了越来越高的要求; 其次散热问题、 可靠 性问题也要求 IC 的功耗越小 越好;最后全球都在倡导绿色环保科技理念,保护环境,节约能源。这些都要求 IC

4、设计时必须采用低功耗技术,以有效应对这些挑 战。 1.2 目前低功耗设计常用的方法 如图所示,影响功耗的因素有电压、漏电流、工作频率、有效电容等。可以通 过降低工作电压、减少翻转负载以及降低电路翻转 率等来降低动态功耗;通过 减少工作电压以及减少漏 图 2: 影响功耗的因素 电流来降低静态功耗。 当前,业界采用了各种方法来降低芯片的动态功耗和静态 功耗。如图 3 所示,传统的低功耗技术有时钟关断 (Clock-Gating ),多域值 电压库( Multi-threshold libraries )等;较新的技术有多电压 ( Multi-Voltage ),电源关断( MTCMOPSo wer

5、 Gating ),带状态保持功能的电 源关断( Power Gating with State Retention ),动态电压频率调整( Dynamic Voltage and Frequency Scaling ),低电压待机( Low-Vdd Standby )等。 图 3: 低功耗技术示例 1.3 控制静态漏电的方法 1.3.1 电路优化( Gate-level Optimization ) 在设计实现过程中, 自动化的综合和布局布线工具可以根据电路的时序特征, 来 综合优化每条路径中用到的所有标准单元的时序, 面积以及功耗。根据负载将 非关键路径中的标准单元切换到具有较小驱动能力的

6、单元,由于输出电容减小, 可以减小动态功耗;同时,由于标准单元 MOS管和电容 变小,静态漏电流也同 时减小。除了变化驱动能力之外, 还可以通过优化电路中的逻辑单元、 移动单元 物理位置等方法来达到降低功耗的目的。 1.3.2 多域值电压库 (Multi-Threshold) 如图所示, 高域值电压的标准单元漏电流小但速度慢, 低域值电压的标准单元 则速度快但漏电流大。所以采用多域值电压库作为 设计实现的目标库,在设计 中尽可能多地用高域值电压的标准单元, 仅在关键路径上为了满足时序要求采用 低域值电压的标准单元,这样就可以最大限度地减小标准 单元的漏电流,从而 降低静态功耗。 图 4: 漏电

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

8、控制,如图所示,用pmos来控制 电源,用 nmos来控制地。 图 5: 电源关断 (Power-Gating) 的原理图 2. UPF 的设计实现流程 IEEE1801标准 Unified Power Format( UPF)是一个真正意义统一的,被广泛采 用的低功耗实现标准。它用一些标准的语句描述用户的低功耗设计意图 (Power Intent) 。如图所示, 图 6: UPF 的应用流程 有了这样一个统一的 UPF文件,逻辑综合、物理实现、仿真验证、等效性检查以 及最后的 sign-off 流程就可以按照 UPF 中对低功耗设计意图的描述来完成整个 IC 设计实现验证流程。这样贯穿于整个

9、流程的低功耗意图来源于同一个文件, 这种一致性可以大大降低低功耗设计的 风险性。并且 UPF对低功耗设计提供了 开放的,多厂商工具支持的流程和解决方案。 众多支持 UPF标准的 EDA供应商的 产品证明了它是一个互操作性强的标 准。 2.1 Synopsys基于 UPF 的低功耗设计流程 Synopsys 公司提供了完整的基于 UPF的低功耗综合、物理实现和验证流程,如 图 7 所示。该流程始于寄存器传输级 ( RTL)描述的逻辑设计,加上一个独立的 描述低功耗设计意图的 UPF文件。 RTL和 UPF描述分别放在独立的文件中,使他 们可以单独维护和修改。在这个 示例中,最初的 UPF文件标志

10、为 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

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

12、low 中产生的数据可以用于做功能仿真(利用 MVSIM、 VCS),插入的低功 耗单元的正确性检查(利用 MVRC),形式验证(利用 Formality ),以及时序 功耗检查(利用 Prime Time-PX )和电压降( IR-Drop )(利用 Prime Rail )的 验证。 VCS仿真器和 MVSIM多电压仿真工具可以在几个阶段用来做多电压的功能仿真: RTL级,综合后加入了低功耗相关器件 (比如 Isolation cell )的门级,以及 PR之后加入了 Power Switches 的门级。 MVRC用于检查多电压设计的规则是否正 确实现,包括电源连接关系、电源结构、电源一

13、致性等等,也适用于流程中的各 个步骤。 Prime Time读入 DC或ICC输出的门级网表以及对应的 UPF文件。它利用 UPF文 件中的信息建立一个虚拟的电源网络模型, 并将电压值反标到每个器件的电源端 口,进行带电源信息的时序检查。 Prime Rail 是基于 带 UPF信息的版图进行电压降以及电迁移的分析。如果设计 中有电源关断单元, 它还可以分析相关关断电路的瞬态电流以及动态的电压降分 布。来 帮助判断这些电源关断单元是否插入合理以及是否需要插入 De-cap 单 元。 2.2 UPF 所需要的特殊单元库 基于 UPF的设计流程与传统流程相比, 需要一些库中特殊单元的支持以及对传统

14、 的 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-s

15、hifters 图 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 单元 对于电源关断技术, 需要

16、Power-Gating Cell (也称 MTCMO)S来实现电源的关断。 可以选择断开电源 (VDD)或地(VSS)的连接来实现 Power-Gating ,这两种 PowerGating Cell 被形象的称为 Header-Switch 和 Footer-Switch 。它们的结构如图 11 所示。 图 11: Basic Header-Switch structure and Footer-Switch structure 在电源关断模块有可能要求 register 对关断前的数据进行锁存或者在电源打开 后要求对锁存的数据进行恢复,这就需要特 殊的单元 Retention-Regis

17、ter 。如 图 12 所示,它有两个电源,一个用于模块电源未关断时的工作用电,一个用于 模块电源关断时的用电。它还 有两个控制信号 save和 restore ,用于控制是否 锁存数据或者恢复数据。 图 12: Retention-Register 在电源关断模块还有可能需要有些信号线或逻辑长期工作,比如MTCMO单S 元的 控制信号线, Retention- register 的 save/restore 控制信号, isolation cell 的控制信号等。为了实现这种功能, 这就需要另外的特殊单元叫 always-on cell 如图 13 所示。 图 13 Aways-on 单元的

18、应用场合 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里面的描述自动地完成电源网络

19、的连接, 电 源关断电路的验证,基于 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 库

20、转换成带 PG信息的 lib 库,这样可以更清晰 的知道 PG库中具体都添加了什么信息。 3. UPF 在本芯片设计实现中的应用 本款芯片的设计实现以及验证流程完全采用了如图 7 中所示的所有 Synopsys工 具,并且所有实现和验证流程都使用了基于 IEEE1801标准 Unified Power Format(UPF)的完整技术,成功的完成了从 RTL到 GDSII 的全部过程,并且芯 片制造回来成功的完成了功能测试以及低功耗测试。本篇文章着重介 绍实现流 程中基于 UPF的应用,对于验证流程的应用我们不作介绍。 在实现过程中我们主 要完成了下列工作,如图 14 所示。 图 14: 本芯

21、片实现流程图 ? 布局布线完成后,我们还对 分析。 ? 在流程中经过每一步我们都用 formality 既保证了功能的一致性,也保证了含有低功 对包含了 UPF的设计作了形式验证, 耗信息的实现一致性。 ? PG library 的准备; ? UPF 文件的准备; ? 有了 UPF以及 PG library ,先用 Design Compiler 对 RTL 综合,综合后产生 的 netlist 里面就包含了 low-power 设 计中除了电源关断单元( MTCMO)S之外 的所有的特 殊 cell ,如: level-shifter, isolation cell 等等; ? 综合完成后,

22、 作了 DFT的工作,在这一步骤如果 DFT设计中要引入一些特殊单 元,工具会自动插入; ? DFT 之后我们在 IC-Compiler 完成了所有的布局布线工作,包括:整体规划 (floorplan) ,电源关断单元 MTCMO的S 插 入、布局以及控制信号的连接,电源 网络综合和分析,布局,时钟树综合,布线以及最后一些提高良率方面的工作。 timing ,SI ,Power,IR-DROP等进行了 Sign-off 下面我们对每一步骤进行详细介绍,其中 PG library 的准备在 2.2 章节中已经 作了介绍,这里就不再说明。 3.1 本芯片中用到的 low power 设计意图 在我

23、们最近的这款芯片中,采用了时钟关断( Clock-Gating ),多域值电压库 ( Multi-threshold libraries ),电源关断( MTCMOPSo wer Gating ),低电压 待机( Low-Vdd Standby )等低功耗技术。 图 15 和图 16 分别是芯片电源分区拓扑图和 floorplan 截图,芯片划分成 3 个 power domain,分别为 PD_1、PD_2、PD_TO。P其中 PD_1是掉电区, PD_2是降压 区, PD_TOP是常开区; PD_2的 hierarchy 嵌套在 PD_1内部,当 PD_1掉电时, PD_2可以降压保持数据

24、即可。 VDD和 VDD_2是芯片外部提供的两个电源, 分别提 供给 PD_TOP和 PD_2;而 VDD_1是 PD_1的内部电源,由 VDD经过 MTCMO产S生, 可以通过控制 MTCMO关S 断使 PD_1掉电。 在进行芯片设计之前, 我们要先对芯片的低功耗意图用 UPF描述出来,下面的章 节做详细的阐述。 图 15: 芯片电源分区拓扑图 图 16: 芯片 floorplan 截图 3.2 用 UPF 对本芯片设计意图的描述 在 UPF中,包含了所有对 low-power 设计意图的描述, 比如: 芯片中有哪些相对 独立的电源模块;每个电源模块中用到 哪些电源或地;如果有电源关断模块的

25、 话还要描述其关断的方式及控制; 每一个电源的各种工作模式 (工作电压或是否 关断);特殊单元的规划等。下面章节将根据 本芯片中用到的 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_sco

26、pe 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

27、_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

28、 #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

29、 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

30、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

31、是 VDD经过该单元后的电源名称, pd1_pw_en是控制信号,当 该控制信号为高的时 候, VDD_1接通 VDD使电路处于开启状态。除了该控制信 号,该单元还输出一个叫 pd1_pw_ack的响应信号。 至于如何在物理上实现 Power Gating cell 的插入以及控制信号的连接,这个要 在 IC Compiler 里面完成,后面的章节里面有详细的介绍。 3.2.4 UPF 对 Isolation 的描述 因为芯片中有关断模块, 从功能上为了处理模块关断后信号输出的稳定性, 还需 要增加关断电源模块处于关断时如何插入 isolation 单元的描述。如下所示, 以 PD_1的边界信

32、号定义为例: 指定其所有输入信号都不插入 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_grou

33、nd_net VSS clamp_value 0 applies_to outputs set_isolation_control pd1_iso_lowdomain PD_1 isolation_signal iso_en isolation_sense high location parent set_isolation pd1_iso_highdomain PD_1 isolatioin_power_net VDD isolation_ground_net VSS elements BLOCKA/pin1 BLOCKA/pin2 clamp_value 1 set_isolation_c

34、ontrol 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是

35、 掉电模式, 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

36、supplies list VDD VDD_1 VDD_2 add_pst_state pst_pd1_ON pst top_pst state NOR_VOLN OR_VONLO R_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 中的流程介绍, UP

37、F准备好就可以进行综合和 DFT的工作了。在这一 步, Isolation cell 、level shifters 、 Retention Registers 等特殊单元都要 正确的实现插入,而且也要插入 clock gating 来优化动态功耗以及用多个阈值 电压的库来优化静态功耗。 如图 17 所示,在 DC中,首先把所有不同阈值电压的标准单元库都设置到 target_library 以及 link_library 里面去,工具在综合优化的时候, 就可以根 据路径上 timing 的是否关键来尽量平衡标准单元速度与静态功耗的关系,关键 路径上, 尽量选择低阈值电压 /速度快的单元, 但在

38、非关键路径上, 就尽量选择 高阈值电压 / 静态功耗小的单元。 在读入 RTL后,需要用 load_upf 的命令读入 UPF 文件,然后在 compile 时,工 具会根据 UPF的设置,自动插入 Isolation cell 、level shifters 、 Retention Registers 等特殊单元(在我们这个设计中,仅需插入 Isolation cells ),并 正确连接这些特殊单元的控制信号。 另外,为了优化动态功耗,我们在综合阶段让 DC自动插入了 Clock Gating 。设 置也很简单, 只要在 compile_ultra 命令后面加上 clock_gating

39、的选项就可以 了。 图 17: UPF flow in Design Compiler 综合完成后,除 MTCMO没S有插入外,其他特殊单元都已经按 UPF描述的设计意 图插入并连接。 综合后我们还要插入 DFT相关结构,再做一个增进式的优化。在这两个过程中, 如果 DFT引入的电路根据 UPF的要求需要插 入特殊单元的话,工具会自动判断 并在 insert_dft 或者 compile 命令执行的时候自动插入。比如, DFT插入的扫 描链从电源关断模块连接到了其 它非关断模块,这个时候根据 UPF里面的规定, 从关断区到非关断区要经过 isolation cell 的过渡, 工具会自动判断到

40、这一点, 在需要的地方插入这些单元。 在综合和 DFT的各个阶段,可以利用 DC提供的命令 check_mv_design 对低功耗 设计进行规则检查,确保没有违 反 UPF里面定义的相关规则。 最后, DC输出网表和 UPF。也可以直接输出 DDC或者直接写入到 Milkyway 数据 库里面去,这两种方式都包含了网表 和 UPF信息,可以直接作为物理实现工具 ICC的输入。 在综合前后我们都用 Formality 对输入和输出的 RTL或 netlist 进行了带 UPF 的比对,以确保每一步骤电路在 形式上没有发生改变。 3.4 UPF 在 IC Compiler 中的应用 图 18:

41、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_vol

42、tage 命令对所有的电源和地设置 正确的工作电压值。工具会根据这 些设置来选择正确的单元进行时序计算。 ? 读入 UPF之后, ICC 已经知道设计中有哪些 power domain 以及每个 power domain 里面有哪些电源、地。但这个时候 ICC还没有把各个 power domain 里面 所有 cell 中电源、地的端口与 UPF里面定义的电源、地连接起来。需要运行下 面的命令,所有 power net 会根据 UPF中的描述自动创建,所有 cells 的电源也 会根据 UPF中的描述自动连接: derive_pg_connection create_net derive_pg

43、_connection reconnect 另外 derive_pg_connection 命令在 ICC 每一次优化后都要执行一次,以对新加 入的 cell 进行电源、地 的连接。 ? UPF 里面虽然已经有了 power domain 的定义,但在物理上这些不同的电源域 还没有固定的位置和形状。这就需要创建 voltage area ,每一个 power domain 都对应一个 voltage area 。但如何根据 UPF文件中描述的 power domain 创建 Voltage Area 呢?我们这里也有些经验,在创建 voltage area 之前,我们可以 用 ICC 里 vi

44、rtual-flat placement对全芯片进行一个快速的布局,然后根据布 局的结果就可以知道与各个电源域相对应的各个模块的大体物理分布, 从而帮助 我们在这些区域来创 建相应的 voltage area 。在 UPF里面定义了三个 power domain(PD_TOP, PD_1和 PD_2),不过对于 PD_TO,P ICC会自动的创建一个默 认的 Voltage Area (DEFAULT_V)A, 对于另外两个 Power domain,我们利用 create_voltage_area 命令创建 Voltage Area 。Voltage area 的位置确定了, 但其形状也与很

45、多因素有关, 可以是矩形也可以是多边形, 总之,其位置和形状 的最后确定可能会经过一些反复, 因为这与设计最终布局布 线的结果息息相关, 创建不好,可能影响设计的时序,也可能影响设计的布线等。 ? 所有 voltage area 都创建好后,就可以对关断电源区域插入电源关断单元 (power gating cell) 了。在我们这个设计里, PD_1是电源关断域,需要在这个 电源模块里面插入 MTCMOS(power gating cell) 。在插入之前,用 map_power_switch 命令指定要使用的 MTCMO单S元名称及相对应的 power domain 名字。然后用 add_h

46、eader_footer_cell_array 命令按指定的阵列插入 MTCMOS 单元,如图 19 所示。设计中有可能 因为 voltage area 形状的原因或者因为 macro 的影响,可能要求按不规则阵列插入 MTCMO单S元,可以通过多个 add_header_footer_cell_array 命令叠加来实现,或者手动移动 MTCMO的S位置, 然后再将其位置固定。 如图 22 所示,在我们 的设计中电源关断区域就有个非常 大的 macro,为了照顾这个大 macro 上的供电充足,我们就在其周围插入了密度 比较大的 MTCMO单S元。所以 MTCMO的S 插入和摆放跟整体规划中

47、 voltage area 以及属于这个区域的 macro的规划都有紧密关系。 我们使用的是有一组控制信号 (NSLEEPIN和 NSLEEPOU)T的 MTCMO单S元,其 结构如图 20 所示: NSLEEPIN是 MTCMO打S开或者关断的控制输入信号, NSLEEPOU是T NSLEEPIN信号经过 MTCMOS 单元后输出的 响应信号。这些控制和响应信号在 MTCMO插S 入后还需要把他们都 互相连接起来。连接的方法也有很多种,我们采用的是链状的连接方法。如图 21 所示。 ICC 提供了命令 connect_power_switch 来自动的实现这个功能。 图 19 Column

48、placement of MTCMOS cells 图 20: Single input header control signal connections 图 21: MTCMOS cells chain connections 最后, MTCMO单S元在版图中的位置及控制信号连接关系如图 22所示: 图 22: MTCMOS placement in the layout map ? 现在 voltage area 已经创建, MTCMO单S 元也已经摆放连接好了。下一步就开 始做 power plan 了,也就是电源网络的规划。由于 VSS在每个 power domain 都是一样的。所

49、以三个 power domain的 VSS mesh是连在一起。 True VDD(VDD) 在所有的 power domain 都会用到,所以在每个 power domain 都需要加上 power mesh。而在掉电区 PD_1,VDD通过 MTCMO得S到 VDD_1,由 VDD_1来给掉电区供 电。所以 VDD_2在 PD_2和 VDD_1在 PD_1的 power mesh 不能连接到一起。 ICC 里面提供一个自动的电源网络综合的功能, 用户可以告诉工具一些电源网络的约 束以及要达到的电压降的目标,工具就可以自动产 生符合要求的电源网络。而 且,它是支持带 MTCMO的S综合,也可

50、以一次综合多个电源、地。用户只要根据 产生的电源网络作些精细的修改就可以了。电源网络 做好后,还要把 MTCMOS 的辅助电源连接好,如图 23所示。连接辅助电源的方法主要有两种:一种是在 “True” PG正好在 MTCMO上S方的情况下,可以用 create_preroute_vias 命令 来直接用过孔把 MTCMO的S电源端口与” True” PG连接起来;另一种就是如果 “True” PG不在 MTCMO上S方,那就要用 preroute_standard_cells 命令里 net 连接的模式物理连接起来。至此,所有的电源、地网络都连 接好了,还可以借 用 ICC提供的 PNA(P

51、ower Network Analysis) 的功能对包含 MTCMO的S电压降进 行分析,以帮助判断 MTCMO单S元数量是否足够以及其位置是否合理。 图 23: MTCMOS 辅助电源的连接 ? 如果 voltage area 位置形状、 macro的摆放以及电源网络都合理了,而且用 check_mv_design 来检查低功耗的规则还有电源、地的连接都没有问题 了, floorplan 阶段的工作也就结束了。自此,设计中所有因为低功耗设计要引入的 新的 cell 都已经插入到设计中了。在综合及 DFT阶段插入了 isolation cell 在 floorplan 阶段我们又插入了 MT

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

53、带 PG信息的 netlist 以 作理解 low-power 的形式验证、要写出最后的 UPF以及不带 PG信息的 netlist 以作最后的时序、 SI 及功耗分析。 PrimeRail 作 IR- drop 分析可以直接读取 Milkyway 的设计库。 Star-rcxt 作参数提取也可 以直接读取 Milkyway 的设计库。 3.5 经验介绍 在上一节中已经介绍了一些物理实现的经验,比如如何确定 Voltage Area 的位 置和形状,如何合理摆放 MTCMO等S等。下面再就我们在实现过程中遇到的一些 问题,以及一些需要注意的地方,在这里和大家分享: 1. UPF里面特殊 cel

54、l 的控制信号(比如 Isolation cell 和 MTCMO的S控制信号) 最好定义在 leaf pin 上,不要定义在 hierarchy pin 上,否则 ICC 可能不能正 确的识别该控制信号。 2. DFT 设计阶段会在 UPF里定义的特殊 cell 的控制信号上插入 mux,用于测试 时控制这些信号,如果 UPF里面定义的控制信号在插入的 mux之前,则 ICC 也 会找不到这些特殊 cell 的控制信号。比如 Isolation cell 的控制信号,如图 24 所示, UPF中本来定义的 Isolation cell控制信号是 func_iso_en ,但是加 了 DFT

55、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 i

56、solation strategy”。解决的方法就是在 UPF中指定对这些 信号不要插入 Isolation cell ,或者在 ICC中直接指定这些 Isolation cell 的 电源和地。 4. 需要在 Voltage Area 的边界用 hard blockage 留出足够的间隙或者在创建 voltage area 的时候加上 guard_band 的选项,工具就不会在这些区域摆放 cell , 否则如果 voltage area 边界内外 cell 紧密摆放的话,不同电源、地的 cell 就 物理连接到一起了,就会有电源或地的短路出现。具体需要留多少间隙,要根据 不同工艺的 des

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

58、密度大的地 方电流密度也大,所以 MTCMO摆S放密度要高一些,以减小 IR drop 。比如在我 们的设计中,掉电区有个大块的 Macro(见图 22左上),且它的时钟频率比其 他部分高,功耗密度比其他部分大很多,所以我们在其外围 放了一圈紧挨着的 MTCMO,S而在其他部分,则是按阵列形式摆放了几列 MTCMO,S每列 MTCMO都S是 隔行摆放。 7. 掉电区的电源网络规划、以及 MTCMO的S电源连接也是需要特别考虑的地方。 掉电区有三个 PG nets (True VDD、Virtual VDD 和 VSS),在做电源网络规划 时,建议对三个 PGn ets 都画一个密度相当的电源网

59、格。 True VDD和 Virtual VDD 的网格通过 MTCMO连S接, MTCMO处S是电流密度最大的地方,所以为了减小 IR drop,在MTCMO上S方尽量用宽金属走 Power Strap 。这样做出来的电源网络, 一般不会有 IR drop 的问题。 4. 结论及建议 利用 Synopsys基于 UPF标准的低功耗流程,帮助我们在设计的整个流程(从前 端到后端,以及验证)中,达成对低功耗 设计意图描述上的连贯性、简洁性与 一致性,并提供各方面的验证功能,极大的提高了设计实现的效率,并保证了设 计的正确性。 对于设计实现工程师来说, UPF流程仅比传统流程增加了如何用 UPF来

60、描述自己 设计中的低功耗意图,工具就可以根据 UPF 里面的约束,自动实现低功耗设计。 而且实现与验证可能要用到多个工具, 传统流程中, 每个工具都要求有自己独立 的低功耗设计命令,这样很难保证各个工具之间 的描述是否一致,有了 UPF, 这个问题就彻底解决了, 各个工具都使用统一的 UPF文件来得到一致的低功耗设 计要求。另外,低功耗设计需要的特殊单元,如 Isolation cells 和 Level Shifters 在前端综合时工具会根据 UPF的描述自动插入, MTCMO在S 后端实现工 具中插入以及连接,整个过程中复杂及容易出错的 Power 连接、 控制信号连接 等步骤都由工具根

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论