雷传煌,王仁平,卢朝辉
(福州大学 物理与信息工程学院,福建福州,350108)
近年来,随着半导体工艺由微米级进入到纳米级的发展,芯片的集成度越来越高,单位面积的功率密度和电流密度不断上升,容易在大规模集成电路的电源网络产生严重的电压降问题,进而导致芯片功能失效[1]。因此,在先进工艺下流片前对大规模集成电路进行电压降分析是必不可少的[2]。
为了修复电压降违例,在传统优化电压降过程中,需要现在专业的电压降签核工具中进行分析电压降结果,然后返回到PR 工具中手动调整和修改layout,该方法过程繁琐,且手动修改layout 对绕线资源的占用太多。本项目结合主流电压降签核工具Redhawk 的自动化修复流程,可以直接在该工具中进行layout 的修改,并在达到电压降修复的过程中减小对绕线资源的占用,达到芯片面积有效利用率的最大化。
本项目基于的中芯国际的55nm(semiconductor manufacturing international corporation,SMIC)的工艺库,设计了一款条形码识别模块,可以进行条形码识别功能。本文从工程的角度入手,在充分考虑设计的性能、面积的前提下,在自动布局布线阶段采用了可关断和多电源电压等多种低功耗优化技术来改善设计的功耗和电压降,最后通过 Apache 公司的电压降分析工具RedHawk 对设计进行静态和动态电压降分析和优化。
在芯片设计中,通常假设有一个理想电源可以提供足够的电流来满足标准单元和宏单元的工作电压要求。但是,由于电源网络本身的电阻值的存在,电流流经电源网络到达每个标准单元和宏单元上的电源端会损失部分电压,同时地端会有部分电压反弹,这一现象被称为电压降[3]。电压降具体分为电源电压降落(VDD Drop)和地线电压反弹(VSS Bounce)[4]。
芯片中的电压降不仅与电流密度和金属互联线的电阻率有关,还和芯片上标准单元和宏单元的工作状态有关。图1是电源电流经由PAD 到达各个标准单元的电源网络示意图,其中R11~R14为电源线上的寄生电阻,R21~R24为地源线上的寄生电阻,B1~B4为该电源网络上的标准单元,I1~I4分为标准单元B1~B4的工作电流。假设只有标准单元B4工作,B4的工作电流I4经过寄生电阻R11~R14并在这些电阻上产生了压降,使得B4的实际供电电压小于理想电源电压Vpower。根据欧姆定律算得在B4电源端的电压降为:
图1 电源网络示意图
此时,对于没有处于工作状态的B3而言,B4的工作电流I4会流过寄生电阻R11~R13并在这些电阻上产生压降,因此在B3电源端会产生电压降:
同理,B4的工作电流I4会给同一电源网络上的每一个标准单元都造成一定的电压降。目前芯片的规模基本是在百万级门电路以上,标准单元在一个时钟周期往往存在大量翻转的情况,一定程度的电压降是不可避免的[5]。在先进半导体制造工艺下,由于电源网络设计的不合理,芯片会往往也会电压降问题更加明显,进而导致对芯片的性能甚至功能产生严重影响[6]。
电压降可以影响cell 和net 的delay。通过fab 厂提供liberty 文件可以知道cell delay 是input slew 和output load 的函数。如图2 所示,由于峰值电压的减小,有电压降的单元实例的电压摆幅会小于标准电压,导致input slew 变大,进而会影响接收单元的cell delay 和net delay。
图2 电压降与delay 关系图
由电压降所产生的cell delay 和net delay 也会进一步造成建立时间和保持时间的时序违例。如图3 所示,如果电压降位于数据路径,数据路径的延时增加,它可能产生建立时间时序违例;如果电压降位于时钟路径,时钟源点到第二级寄存器的延时增加,它可能产生保持时间时序违例。
图3 电压降引起setup 和hold 时序违例示意图
电压降不仅对芯片的时序有影响,也会对噪声容限造成损伤。由于电压降的存在,晶体管的噪声容限更进一步降低,使得在百万级晶体管的设计中处理连线耦合噪声效应变得更加困难。
2.1.1 静态电压降分析原理和流程
电压降包括静态电压降分析和动态电压降分析。静态电压降分析是根据一段时间内得到的平均功耗计算流过芯片上每个单元的平均电流,从而得到的平均电压降。电源网络中存在的开路,通孔的缺失,存在浮空块和悬挂块,电源条宽度或者密度不足,以及高电流密度都会导致静态电压降问题。
如图4 所示,静态电压降分析时,把供电PAD 等效为理想的直流电流源,把电源地网络等效为电阻R 网络。
图4 静态电压降电源网络等效电路图
静态电压降的计算过程:
(1)计算每个instance 流过的平均电流:使用前面计算出来每个instance 的平均功耗,通过lavg=Pavg/Vsupply公式计算每个instance 的平均电流。
(2)计算每个节点的电压:有了每个instance 流过的平均电流再加上前面抽取的电源网络上的电阻,根据基尔霍夫定律就可以算出每个节点的电压。
(3)计算静态电压降值:根据每个节点的电压可以算出每个instance 电源网络上的压降和地线上的地弹,然后把两者加起来除供电电压就是电压降值。
2.1.2 动态电压降分析原理和流程
动态电压降分析是通过芯片翻转率最高的一段时间计算得到电路的瞬时峰值电流,从而得到的芯片上动态电压降结果。动态电压降分析主要检查因芯片上标准单元翻转情况而导致的局部电压降违例。
如图5 所示,动态电压降分析时,把供电PAD 等效为理想的交流电流源,把电源地网络上等效为有电阻、电容、电感的网络。
图5 动态电压降电源网络等效电路图
动态电压降的计算过程:
(1)计算每个instance 流过的瞬态电流:对于翻转的instance,流过的电流为PWL(piece-wise linear)current。
(2)计算每个节点的电压:每个节点的动态电压波形通过瞬态仿真计算获得。RedHawk 根据VCD 文件指定的翻转率(toggle rate)信息推导出信号线最坏情况的翻转场景。使用来自LIB 文件或APL 的电流配置文件中最坏情况的翻转场景的电流,并根据抽取出的寄生电阻计算出每个节点的电压。
(3)计算Dynamic IR Drop:根据每个节点的电压可以算出每个instance 电源网络上的压降和地线上的地弹,然后把两者加起来就是电压降值。
本项目是一个基于中芯国际55nm 工艺的条形码识别模块,Chip size 大约是 2730μm×2770μm。本设计基于Apache 公司的RedHawk 工具进行电压降的分析与签核,它做的各种分析的准确度很高,通过了它的检验,可以达到流片的要求。根据 Foundry 的提供的资料,电压降分析的Signoff 标准如下:
功耗分析 Process Corner:Typical-Typical。
工作电压:1.2V。
静态电压降的最大限值:3%。
动态电压降的最大限值:15%。
2.2.1 静态电压降分析
静态电压降主要是基于平均功耗分析得来的,得到的是平均的电压降的大小。平均功耗由内部功耗,开关功耗以及泄露功耗三部分构成。
根据voltage drop map 可以看到整个模块的电源/地线的静态电压降的热点区域(Hot Spot)即电压降比较大的位置,图6 为模块内所有电源线和地线的电压降热点图。可以观察到VDD 的最大电压降为19.60mV,VSS 的最大电压降为18.60mV,单元实例上的最大电压降为38.18mV,超过了32.4mV 的理想阈值,出现了电压降违例。
图6 改善前静态电压降热点分布图
图7 改善前最差静态电压降结果图
在分析静态电压降前,需要查看电源网络的连接性,确保没有短路、开路和电源网络连接过孔缺失的存在。通过分析电压降较差的区域发现并没有缺失Power via 导致电源网络连接性不强,但通过Toggle density map 和Power density map 发现存在这部分的单元实例的翻转率较高,产生的平均功耗比较高,因此导致电压降比较高。通过使用Redhawk 的FAO(Fixing and Optimization)功能,可以对热点区域的静态电压降进行自动化修复。FAO 功能基于修改热点区域中电源条的宽度来达到的电压降目标,同时写出电源线修改后的相关信息以便于在PR 工具中使用,具体的脚本如下:
FAO 完成后,工具需要重新执行电源网络电阻参数的抽取、设置封装寄生参数和电压降的分析。根据电压降优化后的热点图8 和结果图9 得到,此时单元实例的最大静态电压降由之前的38.18mV 降为29.57mV,所以此项目通过加宽热点区域部分的电源线宽度的方式可以使静态电压降满足签核要求。
图8 改善后静态电压降热点分布图
图9 改善后最差静态电压降结果图
2.2.2 动态电压降分析
为了模拟芯片工作的真实场景,动态电压降需要使用后仿真得到的VCD 波形文件进行动态功耗计算。VCD 波形文件中包含芯片处于高翻转率的时间段,RedHawk 可以在这个时间段通过VCD 提供的翻转数据计算动态功耗和电压降。
基于工具对模块动态IR Drop 分析结果,如图10 所示,可以看出中心区域IR Drop 出现比较严重的违例,其VDD 的最大电压降为92.60mV,VSS 的最大电压降为92.20mV,其中单元实例上最大的电压降达到185.65mV,超过了148.5mV 的理想阈值。
图10 改善前动态电压降热点分布图
图11 改善前的最差动态电压降结果图
通过Power density map 发现中心区域的功耗密度最大,这是因为功耗较大的单元实例聚集在一起造成的。在设计的signoff 阶段时,单元实例的布局确定下来了,此时挪动单元实例的位置会造成关键路径时序的变化,甚至导致严重的时序违例。增加电源条则容易导致电源条和信号线短路而引入新的DRC 问题。该工程修复动态IR Drop 方法主要是将一些驱动过大的单元实例替换成驱动较小的单元实例和在热点区域插入Decap 电容来修复。
利用Redhawk 的FAO 功能对热点区域进行插入Decap 单元的方法,工具会自动寻找到热点区域内可以插Decap 单元的位置,并合理地加入Decap 单元和写出插入的Decap 单元的相关信息以便于在PR 工具中使用,具体的脚本如下:
FAO 完成后,根据电压降优化后的热点图12 和结果图13 得到,此时单元实例最大的动态电压降由之前的185.65mV 降为134.05mV,在保证时序收敛的前提下,通过将大驱动单元实例替换成小驱动单元实例和增加Decap单元的方式可以取得较好动态电压降优化效果。
图12 改善后动态电压降热点分布图
图13 改善后的最差动态电压降结果图
为了保证芯片的可靠性和良品率,对芯片进行IR drop分析是必不可少的。本文基于Redhawk 的电压降自动化修复流程,对芯片功耗和电压降产生机制、静态和动态电压降分析流程作出介绍,并对实际的物理模块进行了电压降分析优化。本项目中静态电压降减少了8.16mV,动态电压降减少了51.6mV,最终静态电压降占工作电压的2.74%,动态电压降占工作电压的12.41%,达到了该项目的signoff要求。