【学术论文】鳍式场效应晶体管结合自热效应的电迁移分析
在先进工艺节点下,鳍式场效应晶体管(FinFET)工艺相对于平面技术提供了在功耗、性能与面积上的优势。但相对地,FinFET也会引起局部晶体管电流密度的骤增的问题,这也意味着信号线和电源地网络的金属电迁移可靠性会受到更大的冲击。随着FinFET的热分布对互联金属线的温度影响上升,电迁移失效概率上升的次级效应也由之产生。如今,热效应的影响已经成为了广大设计公司不得不考虑的因素之一,在生产商的引导之下,Cadence Voltus提供了针对热效应带来影响的精准、强大并且灵活的解决方案。基于此点对高平均翻转率的芯片进行热效应影响的检查与分析,并且对电源的结构规划和设计的物理实现进行改进。
中文引用格式: 张骁竣,季昊,聂笔剑. 鳍式场效应晶体管结合自热效应的电迁移分析[J].电子技术应用,2019,45(8):53-60.
英文引用格式: Zhang Xiaojun,Ji Hao,Nie Bijian. Electromigration analysis of FinFET self-heating[J]. Application of Electronic Technique,2019,45(8):53-60.
0 引言
在先进工艺节点下,热相关的问题变得愈发严重,并且也得到了广泛关注。以一个众所周知的情况为例:随着工艺节点的前进,栅密度增加会导致FinFET产生更多无法通过衬底完全散热的局部热点;而局部a的功耗热点也通常会转化为更高的局部自热。在电路正常工作时晶体管的自热效应随着工艺节点的前进也会变得更加显著,并且会导致后道工艺(BEOL)的可靠性下降以及电迁移违例的发生。为了保持芯片的可靠性,有必要通过控制互联金属的温升在一个可接受的范围之内。
在本文中,首先探讨电迁移失效期限的理论及其影响因素,然后介绍Voltus针对考虑自热效应的电迁移的检查解决方案,最后,对本文进行总结并且针对结论作进一步分析。
1 电迁移与失效期限概述
电迁移通常是指在电场的作用下导电材料中的金属离子发生迁移的现象。在铜互联工艺中,电迁移表示在电场作用下铜离子从阴极向阳极迁移,继而在阴极产生空洞。电迁移不仅仅会造成电阻的增大,严重的会造成开路与短路。
1.1 几种电流计算方法的物理意义
比较常见的电迁移检查中所关联的电流的计算公式如式(1)所示:
1.2 自热温升函数
自热温升函数通过采用从工艺规则文件中预先得到的热阻值(Rth)以及单元库中单元的功耗值来计算单元的自热温升ΔT。所以在物理设计中,翻转率、信号输入状态、信号电平转换时间、输出负载等各种因素都会成为器件的前道工艺温升ΔTFEOL的影响因素,因为这些因素都会导致器件的功耗发生变化。具体公式如式(2)所示:
式中,NFIN为fins的数量,NF为fingers的数量。
由于P型场效应晶体管和N型场效应晶体管都会进行散热,因此P型和N型场效应晶体管的热阻估算模型是独立的,并且对标准单元而言,由于P型与N型场效应管是相邻的,因此会产生额外的热阻。
1.3 考虑自热效应的电迁移分析
传统的电迁移检查分析方法是由两个阶段组成的:第一阶段将芯片中多个网络的全局均方根电流Irms换算为预设的温升限制进行电迁移的检查;第二阶段为用平均电流Iavg计算金属互联线上的实际电流密度,并和设计规则文件中的阈值相比较从而完成电迁移检查与分析。在这种情况下,需要时刻保证均方根电流Irms引起的温升ΔT在芯片各处都控制在预设值以内。
显然,并没有很好地把自热效应体现在传统的电迁移检查分析方法中,取而代之的是选择了一个设定的全局温升(一般而言ΔT=5 ℃)。在这种方法学中,可能会对某些场景分析过于悲观,而相对的,也可能会对某些温升较大的热点区域分析过于乐观。
考虑自热效应的电迁移分析方法是对不同的对象采用不同的分析温度进行电迁移检查,其中温升由两部分组成:一部分是金属互联线之间的焦耳热产生的温升,另一部分是由于在电路中的晶体管自热而向金属互联线上辐射产生的温升;ΔTBEOL计算公式如下:
温升ΔTBEOL对于相同区域内的不同元器件根据分析结果可能是不同的,因此基于此点可以取代传统的单个全局预设温升,而采用分析得出的实际温升结合芯片的工作环境温度来进行更精确的电迁移签核检查与分析。
1.4 电迁移检查规则介绍
在电迁移检查规则文件内定义的不同电流密度上限公式如下所示:
(1)信号线电迁移电流密度(传统检查中为交流均方根电流上限),因子:ΔT金属线因子。
金属线因子的选取会定义在电迁移工艺规则文件的开头,其取值取决于在衬底上的金属线结构。
(2)信号线电迁移电流密度(考虑自热效应的平均电流密度上限),因子:jmax factor(实际温度)。
(3)电源地电迁移电流密度(直流平均电流):jmax_factor(实际温度)。
显然根据上述公式模型,可以得出结论:当金属互联线的实际温度上升时,其所能承载的电流密度上限会随之下降。
1.5 统计学的电迁移预算(SEB)
对于传统的电迁移检查签核方法,将有效电流与相对保守的固定预设温度对应的电流上限作比较:Sdc=
电迁移检查通过与否,取决于所有检查对象是否都满足Sdc≤1。
电迁移SEB是一种设计可靠性的评估方法。当高性能的芯片进入到新的工艺节点,将会面临更多更密集的互联同时高速翻转,这也意味着会同时产生更大的电流,因此选择一个更为精确而又不会过度悲观的方法去分析元器件乃至整个芯片的可靠性以及失效率(FIT)是迫在眉睫的也是十分有必要的。SEB为物理设计工程师提供了相对于预设固定的电流密度上限而言更为灵活的方式来分析电迁移违例,并且与此同时,工程师可以将每个微观节点乃至整个芯片的故障率控制在一定的范围之内。下面是一些有关失效率的基本概念介绍:
(1)0.1%累计失效的定义:总体样本的0.1%失效的期限。
(2)失效标准:测试对象(Design Under Test)的电阻发生10%的增长时会被认定为失效。
(3)失效率或者故障率单位Failure in time(FIT)计算公式:
(5)TTF(time to fail)的定义:互联电迁移寿命预测模型:
式中,TTF为平均失效时间,A为工艺相关的常数因子,N为电流密度指数(对铜互联工艺N=1),J为金属互联线上的电流密度(平均电流密度),Ea为激发能(对于铜互联工艺,Ea=0.9 eV),k为玻尔兹曼常数,T为热力学温度(单位:K),kT=0.025 852 eV(室温下T=300 K时)。
根据上述模型,可以得出电迁移寿命与温度的倒数呈指数相关,因此金属互联线的温升增加会显著地降低TTF。表1列出了在不同温度下的TTF与105 ℃的TTF的变化对比。
通过表1,不难发现:
(1)当工作环境温度为105 ℃,温升为10 ℃时,TTF仅为原来的一半;
(2)当工作环境温度为105 ℃,温升为20 ℃时,TTF仅为原来的1/4。
现在对SEB和FIT有了初步了解与基本概念,下面将借助一个简单的例子来说明相对于传统的电迁移检查分析方法而言,采用SEB的方法来分析电迁移有哪些不同。
假设芯片中所有节点的Sdc均小于1,并且在0.99附近,那么用传统的电迁移检查签核方法学来分析,这种情况下不存在电迁移违例。但是当引入了SEB,在Sdc=0.99时,每个节点的FIT值约等于4.644 8×10-6,那么此时当此类对象的数量大于1×107甚至1×108以上时,整个芯片从统计学上来说是存在电迁移违例的,并且会在比预想的工作期限更短的时间内失效。
2 通过Voltus结合自热效应进行电迁移检查分析
根据SEB的电迁移检查方法学,将通过Voltus结合自热效应进行电迁移检查来得到更精确且合理的检查结果。
2.1 分析目标
采用Voltus动态电压降与交流均方根信号互联电迁移检查这两种分析方法来得到金属互联线与电源网络上由焦耳热产生的均方根温升ΔTrms。采用Voltus的功耗分析引擎来分析设计中每个元器件的总功耗,并且将 α(金属线效应)、β(热耦合效应)和热阻模型文件与之结合来计算ΔTFEOL,最后将两部分温升经过处理后反标回设计中的互联金属线以及电源地网络,以便进行采用SEB方法学且考虑自热效应的电迁移分析。总温升ΔTBEOL的计算公式如下:
2.2 Self-heating Analysis
Voltus中ΔTFEOL的计算方式如图1所示。
图1中,α为金属层效应,包含:
(1)α connection:表示不仅仅在单元输出端口所连接的金属线,而是在单元边界以内的所有单元自身端口存在连接关系的金属线部分;
(2)α overlapping:顾名思义表示与单元重叠且并非存在连接关系的金属线,当然也存在部分例外情况:如存在有连接关系的金属线呈“之”字型绕出单元边界,无论超出部分之后返回单元边界与否,超出之后的金属线段都为α overlapping。
β为热耦合效应,包含:
(1)计算方式:β=C1×ΔTFEOL+C2×ΔTRMS+C3、C1、C2、C3为系数因子。
在Voltus中ΔTRMS的计算方式如下:
2.2.1 Voltus中自热效应仿真的实现方法
图2展示了Voltus针对自热效应仿真所需的输入文件以及分析流程。
Voltus自热效应分析流程如下:
(1)设计数据建立与导入(时序功耗库文件,设计数据,电阻电容模型,工艺电压温度选取设定等):
read_lib -lef $lef_files
read_view_definition $viewDefinition.tcl
read_verilog $netlist_files
set_top_module $cur_design -ignore_undefined_cell
read_def -keepPinGeometry $def_files
set_delay_cal_mode- eng_shareDelayAcrossSame-SpefInsttances false
set_delay_cal_mode -eng_fixFirstCapForNLDM true
set_delay_cal_mode -eng_skipUnRelatedArcsForEM true
set_delay_cal_mode -eng_useLoadCurrentRegionForNLDM true
set_delay_cal_mode -equivalent_waveform_model propagation
set nspefExtConnOverRes 1
set_analysis_mode -analysisType onChipVariation -check-Type hold
(2)自热分析所必要的翻转率设定以及功耗分析配置:
set_power_analysis_mode -reset
set_power_analysis_mode \
-method dynamic_vectorless \
-enable_state_propagation true \
-analysis_view func_cbest_CCbest_ml_0p85c \
-enable_static false \
-static_netlist def \
-write_static_currents true \
-create_binary_db false \
-disable_ecsm_interpolation true \
-power_grid_library $pgv_list($corner) \
-report_missing_nets false
set_default_switching_activity -global_activity 0.2 -clock_gates_output 1.8
set_power_include_file ./user/pm.inc
set_dynamic_power_simulation -period 5ns -resolution 10ps
report_power -rail_analysis_format VS -outfile $power.rpt
(3)动态电压降分析配置:
set_rail_analysis_mode \
-method dynamic \
-accuracy hd \
-power_grid_library $pgv_list($corner) \
-temp_directory_name ./tmp_dynamic \
-filler_cell_list *FILL* \
-decap_cell_list *DCAP* \
-enable_rc_analysis true \
-rms_em_with_via2via_spacing_check true \
-rms_em_analysis true \
-enable_manufacturing_effects true \
-limit_number_of_steps false \
-env_temperature $Tambient \
-extraction_tech_file $qrcTechFile \
-extractor_include ./user/zx.inc \
-process_techgen_em_rules true \
-ignore_incomplete_net true \
-ignore_shorts true \
-em_temperature $Tambient+5 \
source ./user/set_power_pads.tcl
source ./user/pg_dynamic.tcl
set_power_data -reset
set_power_data -format current -scale 1 $dynamic_PG.ptiavg
set_rail_analysis_domain -name Core -pwrnets $PWR_VALID_NETS -gndnets $GND_VALID_NETS
(4)自热效应分析:
setBetaFeaturevtsSelfHeat 1
analyze_self_heat\
-ssh_options{-default_freq_for_unconstrained_nets1000000000 \
-effort_level medium \
-em_temperature $Tambient } \
- alpha_parameters{ {<layer_name><α-overlapping > <α-connecting >} {…} {…} }
- beta_parameters{C1 C2 C3}
- instance_power_file <input: static power report depend on instance based>
- tiles {n_tile_in_x m_tile_in_y}
- cell_thermal_resistance_file <input: TRF -cell’s equivalent thermal resistance file>
- instance_delta_temperature_file <output: FEOL instance-based delta-temperature file>
- tile_delta_temperature_file <output: FEOL/BEOL tile-based delta-temperature file>
- detail_delta_temperature_file <output: BEOL detailed delta-temperature file>
- detail_delta_temperature_region {x1 y1 x2 y2} (default: full chip)
[- net <pg_net_name> | - domain <rail_domain_name>] (optional, default: -domain ALL)
2.2.2 数据结果展示
图3和表2~表5分别为Voltus元器件详细温升热点图与模块瓦片详细温升热点图以及其他具体数据。
从图3中可以看出元器件详细温升图和模块瓦片详细温升图热点分布基本自洽。
2.3 考虑自热效应的电迁移分析
现在通过Voltus得到了每段金属线各自分立的温升,因此可以将实际温升在Voltus中反标回整个设计,进行基于实际仿真温度的电源地网络电迁移以及信号线电迁移分析。
2.3.1 Voltus中考虑自热效应的电迁移分析的实现方法
(1)电源地网络电迁移分析方法:
set_rail_analysis_mode \
-ict_em_models $ictem_file \
-beta_parameters {c1 c2 c3} \
-env_temperature $Tambient\
-check_thermal_aware_em true \
-read_detail_delta_temperature_file tem.txt \
-use_rms_delta_t true \
-method static \
-rms_em_with_via2via_spacing_check true \
-spacing_factor0 \
set_power_data -format ascii-scale 1 -bias_voltage 0.9 static_power.rpt
<set_power_data -format current - scale 1 - bias_voltage0.9 {static_*.ptiavg} >
analyze_rail -type <net | domain> -results_directory <rail_dir>
(2)信号线电迁移分析方法:
verify_AC_limit \
-method {avg} \
-avgRecovery $recovery_factor \
-detailed \
-use_db_freq \
-report_db \
-useQRCTech \
-report ../vt_db/seb_${corner}_${version}/seb_reduce_10y.rpt \
-error 1000000 \
-default_freq_for_unconstrained_nets 1000000000 \
-check_thermal_aware_em \
-read_detail_delta_temperature_file SHE_${cur_design}_ddt.txt \
-effort_level {high} \
-minPeakFreq 1 \
-seb_lifetime 87600 \
-enable_seb \
-enable_seb_reduction \
-seb_table ./data/SEB_CLN7+_1P13M+UT-ALRDL_1XS1X1YA5Y2YY2R_MiM.ircx \
-em_temperature $Tambient+5 \
-env_temperature $Tambient \
-delta_T 5
2.3.2 实验结果分析
表6为反标实际仿真温升后的电源地网络电迁移分析结果。
加粗行数据的坐标如表7所示,对比表4中的加粗部分可以得出两者的温升、节点名、金属层号基本相吻合。但事实上,Voltus会在±15个同层金属线绕线格点之内选取仿真温升来作为金属线上实际仿真温升的反标,并以此对电流密度检查及进行限制,因此并不是在所有情况下所看到的结果都会满足温升的公式:ΔTBEOL=F(α×β×ΔTFEOL)+F(ΔTrms)。
由于传统的电源地网络电迁移检查不会将自热效应作为考虑,而是将一个预设的固定值(一般来说温升为5 ℃)来作为全局的温度变化,因此在不考虑这个预设值的情况下,反标自热效应带来的温升所得到的电迁移检查结果肯定是更为悲观的。详细报告如表8和图4所示。
在本次实验中,发现有部分违例点的温升是大于5 ℃的,即大于传统分析方法的全局预设值,因此用户可以通过这种分析方法找到相较于之前传统分析方法覆盖不到的特殊情况并且加以修复与优化,表9数据为针对同一对象,采用/不采用自热分析的电迁移检查报告。
在传统的电迁移签核分析方法中,用户需要修复所有的违例金属线,而如果采用SEB的方法,用户则可以在修复更少更精准定位的违例条数的同时也能确保电迁移的检查通过。采用不同方法的电迁移违例修复对比数据表如表10所示。
特别是当在先进工艺节点下针对高翻转率的高性能芯片进行电迁移检查时,采用SEB可以使电迁移的检查覆盖率大幅上升,显著地增加设计的可靠性。
3 结束语
Cadence Voltus可以很好地帮助用户进行自热效应与焦耳热效应的仿真,也可以通过其内部引擎得到一个合理的温升值,并且将其反标回整个设计进行进一步的电迁移检查分析供用户修复及优化。特别是针对先进工艺下的高性能芯片,Voltus不仅提供给用户数据,使用户可以采用更为准确并且覆盖率高的方法进行电迁移检查,同时也可以使用户更容易地发现设计在某些极端情况下所真实存在的由自热效应引起的可靠性隐患。并且结合SEB的统计学分析方法,用户可以通过精准定位、少量修复来达到与修复所有违例点相近的FIT值,显著地加快设计的收敛速度。
除此以外,工程师可以以模块瓦片温升图以及元器件详细温升文件作为指导,来对设计在布局布线阶段进行局部功耗或者自热效应的热点优化,诸如通过针对高翻转率的网络进行负载优化、电平转换时间的优化;限制局部区域中大功耗与高热阻(Rth×Power)元器件的布局密度来有效的抑制自热效应;甚至可以针对模块瓦片温升图对不同的区域采用不同的电源地网络结构来达到绕线资源与设计可靠性之间的平衡。
参考文献
[1] Taiwan Semiconductor Manufacturing Co.,LTD.,Hsin-Chu.Electromogration sign-off methodology:US,10042967 B2[P].2018-08-07.
[2] International Business Machines Corporation,Armonk,NY(US).Early analysis and mitigation of self-heating in design flows:US,9990454 B2[P].2018-06-05.
[3] Voltus IC power integrity solution user guide[Z].
作者信息:
张骁竣1,季 昊1,聂笔剑2
1.上海寒武纪信息科技有限公司,上海201203;
2.上海楷登电子科技有限公司,上海200000