中文引用格式:高华,李辉. 14 nm工艺下基于CUPF的数字IC低功耗物理设计[J].电子技术应用,2017,43(9):25-29.
英文引用格式:Gao Hua,Li Hui. Digital IC physical design low power implement based on CUPF flow under 14 nm process[J].Application of Electronic Technique,2017,43(9):25-29.
0 引言
数字集成电路发展初期,芯片的面积和速度是衡量芯片设计质量的重要标准,而功耗问题并没有引起芯片设计工作者的关注和重视。近年来,伴随着超大规模集成电路(Very Large Scale Integration,VLSI)集成度的急剧增加、工作频率的大幅提高,以及生产工艺的提升,数字芯片的功耗显著增加。众所周知,功耗会影响封装和生产成本,同时功耗的增加还会引起电迁移等一系列问题,从而影响信号的完整性、降低芯片的可靠性。因此,功耗逐渐成为了当今数字IC设计的重要衡量标准[1]。
目前,数字集成电路的生产工艺进入了超深亚微米时代。国内集成电路行业在生产工艺和设计方面都比较落后。国际方面,芯片制造商台积电(TSMC)、GF(Global Foundry)生产工艺达到了7 nm水平。芯片设计商Intel、AMD、NVIDIA也逐渐投入28 nm以及更先进工艺芯片的设计工作。技术方面,芯片特征尺寸的减小给低功耗设计在系统级、算法级、电路级以及门级的实现提出了新的挑战,因此现有的低功耗设计方法面临着优化和淘汰,传统的基于UPF的低功耗物理设计流程设计周期长、可修复性比较差,很难保证设计的正确性,难以满足目前大规模数字芯片快速精准开发设计的要求。现阶段,针对超深亚微米数字芯片的物理设计的文献比较少,因此14 nm工艺实现芯片的低功耗物理设计具有现实意义和研究价值。
1 基于CUPF的低功耗设计流程简介
UPF为IEEE1801 Unified Power Format标准。数字IC设计人员将电源电压、隔离单元以及电源开关等与功耗相关的设计约束写入UPF文件[2]。UPF以TCL 脚本的形式贯穿于RTL-to-GDSII设计流程的始终。
在传统的物理设计流程中,物理设计的每一个阶段都会读入UPF,即每一个设计步骤都进行相应的低功耗优化。IC Compiler 会读入UPF文件,并且根据低功耗优化引入的特殊元件,导致UPF产生新的连接关系从而直接修改原UPF文件。这种方式导致在物理设计的每一阶段都会重新修改整个UPF,并且不利于追踪变化。
基于CUPF的低功耗设计流程在物理设计过程中不会因为低功耗优化而改变原始UPF文件,而是在每一个设计阶段将UPF的变化写入SUPF(Supplement UPF)。在物理设计的开始阶段,IC Compiler读入前端网表(Netlist)和UPF进行芯片的布局规划、单元放置、时钟树综合以及布线工作。然而在布局优化和时钟优化过程中,IC Compiler会根据时序、功耗、阻塞等因素插入或者删除特殊单元,从而改变UPF定义的连接关系,本文将这些针对UPF的改变写入SUPF而不是改变原始的CUPF,然后将最终的SUPF和CUPF整合在一起交付PrimetimePX等工具进行功耗分析[3]。具体流程如图1所示。
基于CUPF的低功耗设计流程与基于UPF的传统设计流程相比具有以下优点和创新:
(1)CUPF避免了IC Compiler在设计的每个阶段读取原始UPF并且全局修改造成的时间浪费,有助于缩短芯片物理设计周期和提高良品率。
(2)CUPF在物理设计的每个阶段只是保存了UPF发生改变的部分,而不是对原始文件进行反复修改,从而利于UPF变化追踪,及时反馈和修改不必要的约束。
(3)CUPF相对于UPF占用更少的存储空间,有利于满足庞大物理设计数据的内存需求。
2 基于CUPF的14 nm芯片低功耗物理设计与实现
本设计针对GF 14 nm工艺下GPU的fch_sata_t模块进行低功耗设计。fch_sata_t是芯片内部用于控制全局模块电源开关的控制模块,其内部包含大约567 136个门单元,工作频率在1.1 GHz。考虑到数目庞大的晶体管和较高的工作频率带来的静态功耗和动态功耗,此模块使用门控电源、多电源电压和多阈值电压等低功耗技术进行物理设计。
2.1 门控电源低功耗技术实现
门控电源技术基本原理是根据芯片中各个模块的工作情况,选择性地控制各模块的电源供给,减少门电路不工作时的短路电流,从而降低芯片总体的动态功耗。
用于实现门控电源技术的基本单元是电源开关单元(Power Switch Cell)。同时,为了减少不同模块在不同电源状态下的相互干扰,需要插入隔离单元(Isolation Cell)将可掉电区域和常开区域进行隔离[4]。电源开关单元和隔离单元如图2所示。
2.1.1 电源开关单元的实现
在UPF文件中,将门控电源低功耗中用到电源开关单元命名为SW_PD_P1,在GF14制程工艺下,利用库元件hdpghdr2vspacexssM160D4bl作为开关电源单元,并且指定SW_PD_P1控制的电源域为PD_P1。开关电源单元在CUPF中的描述如下所示[5]:
create_power_switch SW_PD_P1
-domain PD_P1
-input_supply_port {vin VDDCR_SATA}
-output_supply_port {vout VDDINT_P1}
-control_port {Min u_fch_sata_A/mother_sleep/Y }
-control_port {Din u_fch_sata_A/daughter_sleep/Y}
-on_state {SW_ON vin {!Min && !Din}}
-off_state {SW_OFF {!(!Min && !Din)}}
map_power_switch SW_PD_P1
-domain PD_P1
-lib_cells {hdpghdr2vspacexssM160D4bl}
上述引入的电源开关单元SW_PD_P1阵列插入DEF的方式有两种:网格型和环型。网格型的插入方式实现起来比较困难,对绕线资源和时序的影响比较大,但是这种网络的优点在于占用的面积比较小;环型的插入方式实现起来比较简单,并且占用的绕线资源较少,不会引起绕线阻塞,但是这种网络对面积的占用比较大。因为fch_sata_t面积比较小,并且门电路的使用率比较高,因此本模块使用网格型电源开关的插入方式。插入方式在UPF中描述为[6]:
create_power_switch_array
-lib_cell SW_PD_P1: hdpghdr2vspacexssM160D4bl
-bounding_box {302.145 -211.34 314.045 -200.94}
-x_increment 11.9
-y_increment 10.4
其中,-lib_cell指的是电源开关单元所用的库元件;-bounding_box指的是电源开关单元放置的具体位置;-x_increment和-y_increment指的是相邻的电源开关之间的横向和纵向距离设置。当然,以上的距离参数由实际的电源条带的分布决定。SW_PD_P1在模块中的具体实现效果如图3、图4所示。
由图3可以看出,相邻两行的电源开关单元交错摆放,这样有利于提高电源开关单元的利用率。每一个电源开关单元的面积约为2.16 μm2,模块中共用到3 685个电源开关单元,因此电源开关单元共占用7 959.6 μm2,相当于模块1.9%的面积,满足设计要求。
2.1.2 隔离单元的应用
隔离单元是数字IC物理设计中出现的又一重要的物理单元(Physical Cell)。不同工作状态的电源域不可避免的会有相互干扰,甚至有可能导致逻辑功能上的错误。因此,在门控电源低功耗技术的实现过程中,需要在电源常开区域和可关断电源区域插入隔离单元[7]。在placement阶段,通过CUPF插入隔离单元,插入的实现过程如下:
set_isolation ISO_LO_P1_GLB
-domain PD_GLB
-source SS_P1
-diff_supply_only TRUE
-isolation_power_net VDDCR_SATA
-isolation_ground_net VSS
-name_suffix _ISO_LO_P1_GLB
-clamp_value 0
set_isolation_control ISO_LO_P1_GLB
-domain PD_GLB
-isolation_signal u_fch_sata_AON_0/d0nt_P/Z
-location self
-isolation_sense low
map_isolation_cell ISO_LO_P1_GLB
-domain PD_GLB
-lib_cells {hdvionoclamplonxss2ul}
可以看出在模块中定义的隔离单元为ISO_LO_P1_GLB,其控制隔离的电压源是PD_GLB,隔离单元的VDD来自电源条带VDDCR_SATA,隔离单元的VSS来自电源条带VSS。另外,UPF定义单元库元件hdvionoclamplonxss2ul 等作为隔离单元。隔离单元在DEF里面的实现如图5所示。
2.2 多电源电压低功耗技术实现
多电源电压低功耗技术是CUPF应用于数字IC低功耗物理设计的又一重要体现。
在RTL设计阶段,设计人员根据低功耗需求对芯片进行模块划分,UPF也会根据划分的模块定义相应的电源约束。IC Compiler需要读入UPF并且根据约束在不同模块正确设计相应模块的电源结构[8]。在UPF中,对电源域的定义如下:
create_power_domain DFT_AON -include_scope
create_power_domain DFT_AON
-elements{vl_sms_fch_sata_t1_sms_proc_sms_1_stp
fch_sata_t1_clken_sync fch_sata_t1_clksms_gate
fch_sata_t_wrck_gate}
create_supply_net VDDCR_SATA
-domain DFT_AON -reuse
create_supply_set SS_DFT_AON
-function { power VDDCR_SATA}
-function {ground VSS}
这里定义了名为DFT_AON的电源域用于为DFT模块提供电源。因为-include_scope选项,IC Compiler会自动为DFT_AON电源域在DEF中映射为对应的电压域(voltage area)。
对于多电源电压设计,不同的电压域之间需要插入电平转换器单元(Level Shifter)。电平装换器单元能够过渡不同电压域之间的切换,IC Compiler会在单元摆放阶段根据UPF中关于转换器单元的定义自动插入电平转换单元。CUPF中关于电平转换器单元的定义为:
set_level_shifter
LS_VDDCR_FCH_S5_VDDCR_FCH -domain
PD_VDDCR_FCH_S5 -applies_to inputs -rule both
-location self
name_suffix LS_VDDCR_FCH_VDDCR_FCH
map_level_shifter_cell
LS_VDDCR_FCH_S5_VDDCR_FCH
-domain PD_VDDCR_FCH_S
-lib_cells {hdlsbf2g6011 …}
由以上CUPF命令可得,定义了名为LS_VDDCR_FCH_S5_VDDCR_FCH的电平转换器单元,并指定单元库中hdlsbf2g6011等元件作为电平转换器单元。单元所在的电源域为PD_VDDCR_FCH_S,主要功能是完成电压VDDCR_FCH_S5到VDDCR_FCH的转变。通常,电平转换器单元的面积比较大,占用比较多的绕线资源,因此对时序和阻塞有一定的影响。为了尽量减少电平转换器单元带来的负面影响,需要规定特定的区域将电压转换器单元放置在一起,并且靠近电压域临界区域。Level Shifter在DEF中的分布如图6所示。
实现过程如下:
create_bounds -name Shifter_region
-coordinate { -120.23 30.83 -200.65 60.72}
-type soft shifter_cells
3 实验结果及分析
本次设计针对基本14 nm工艺的fch_sata_t模块设计,fch_sata_t是GPU中控制其他模块电源模式的控制单元。模块含有567 136个门电路单元、68个宏单元。fch_stat_t的DEF布局如图7所示。
芯片设计全过程基于本文提出的基于CUPF的设计流程,应用了电源开关技术、多电压电源技术以及多阈值电压等低功耗技术。参考目前主流数字IC设计公司的验证流程,本设计利用Synopsys的产品PrimetimePX进行功耗分析,并利用图形化界面的Show Power Analysis Driver选项得到优化前后功耗分析柱状图如图8、图9所示。
由以上柱状图可以看出,优化后模块总功率减少了约为8.675%。其中静态功耗即Leakage Power为7.691×10-3W,占总功耗的19.23%;动态功耗即Switch Power和Internal Power分别为5.652×10-3W与0.026 7 W,占总功耗的80.77%;总功耗约为0.039 9 W,小于设计要求的0.050 W,满足设计要求。
4 结论
本次设计主要对GF14 nm工艺下数字IC进行低功耗物理设计,提出全新的基于CUPF的物理设计流程,芯片中所用到的电源开关单元技术和多电源电压技术等都是基于CUPF设计流程展开。最终经过PrimetimePX分析表明该设计流程具有很好的鲁棒性,较短的设计周期,并且芯片的功耗得到明显降低。
参考文献
[1] 王超,田太庆,王明江.SoC物理设计低功耗方法研究[J].微处理机.2011(02).
[2] 石玉龙,张立超,柏璐.ASIC后端设计中低功耗时钟树综合方法[J].信息通信.2009(04).
[3] 李娜.UHF RFID电子标签芯片的低功耗物理设计与时钟树综合[D].西安:西安电子科技大学,2013.
[4] 贺京.基于65 nm的低功耗设计与等价性验证[D].西安:西安电子科技大学,2013.
[5] 钟涛,王豪才.CMOS集成电路的功耗优化和低功耗设计技术[J].微电子学.2000(02).
[6] 高丹,刘海涛.CMOS数字电路低功耗的层次化设计[J].微电子学与计算机.2008(01).
[7] 徐芝兰,杨莲兴.CMOS集成电路低功耗设计方法[J].微电子学.2004(03).
[8] 郝冬艳,张明,郑伟.低功耗VLSI芯片的设计方法[J].微电子学与计算机.2007(06).
作者信息:
高 华,李 辉
(中国科学技术大学 信息科学技术学院,安徽 合肥230026)