热度 1| |
功耗问题一直是芯片性能的关键点,尤其在现在越来越先进的制程中,成为发展的瓶颈。深亚微米制程功耗过大的问题是硅半导体材料本身的特点,因此低功耗设计的意义就显得尤为重大。
低功耗设计的难度主要在前端设计,如何规划低功耗区域,用怎样的算法得到更优解等等。后端主要在于布局电压区域,如何非配clock gate的比例以及多种VT cell的分配等等。
目前的主流低功耗设计主要采用分区域分电压(power domain)的设计方式,加上局部可关断电路来达到降低功耗的目的。
具体的设计中主要是靠CPF/UPF格式文件来划分出网表所不能区分的不同工作电压的区域,设计中通过switch cell来控制区域电源的关断,通过level shifter来实现不同电压区域的电压转换,然后还有isolotion cell,retention等元件保证电路的正常逻辑和正常工作状态。
soc_encounter工具主要靠读取cpf文件来建立和识别power domain,格式更改的UPF文件也可识别;ICC工具主要靠读取UPF文件来识别power doman。而现在,二者皆可互相兼容。
其中的注意点:
1,case中有多种不同高度的row的lef时,使用encounter来run的时候,建viewDefination文件需要将不同power的lib分开来写,再使用updata_delay_corner来更新,避免出现在OPT的时候工具选用错误的高度的BUFFER,导致不能正常吃到电;
2,检查powerswitch cell的数量和chain的连接方式,在评估IR的时候注意考虑powerswitch的因素;
3. 细节检查,保证region的位置在确定之后不要被误操作移动,否则容易发生crash的问题或者时序乱掉等等;
4. 检查power pg connect保证power net和via都完整:
verifyPowerVia -layerRange
verify_PG_short
verify_connectivity
在后端看来,lower design的实现比普通的design需要更多的细节检查,尤其是power相关的部分。在后续做功耗评估和IR drop和EM的修复方面也需要花费更多的功夫。修IR和EM常用的方式就是根据violation的位置最大化利用空间资源,进行补power;当然更有效的方式是分析power mash的结构,针对IR问题严重的地方调整power mash结构,尽量缩短power source和IR区域的距离,适当补强power stripe,更合理的解决IR drop。