利用 FSLR 实现Signoff阶段的Leakage优化
陈志荣chen.zhirong@zte.com.cn
中兴通讯股份有限公司
摘要
随着IC集成度的不断发展,功耗尤其是Leakage几乎成为了所有SOC IC设计迫切需要降低并重点关注的指标之一。本文主要 阐述应用Synopsys公司的FSLR(Final Stage Leakage Recovery)技术在设计时序收敛后基于其IC-Compiler物理平台,内嵌的 PrimeTime-SI 标准时序噪声分析引擎,同时结合DMSA技术及MCMM的分析方法,在不影响布线结果及几乎不影响设计Signoff 时序结果的情况下,通过替换Footprint Equivalent VT-Cell 的方式快速实现了设计最大程度的leakage优化,有效减少了leakage 功耗收敛的时间。
关键词: FSLR , Leakage,SOC, ICC, StarRC, MCMM
Abstract
With the continuous development of IC design, leakage power optimization is becoming a critical segment in almost all SOC designs. This paper describes the application of Synopsys’ FSLR (Final Stage Leakage Recovery) technology after design timing closure. The FSLR technology uses IC-Compiler as the physical platform, and utilizes the PrimeTime-SI timing analysis engine for timing analysis and optimization. Additionally, FSLR also supports the DMSA technology and MCMM analysis methodology. Through Footprint Equivalent VT-Cell swapping to optimize leakage power, there is almost no impact to Signoff timing results. This method provides a way to achieve the greatest leakage saving while reducing the number of iterations between timing closure and leakage optimization.
1. 简介
随着半导体工艺技术的不断更新,芯片设计规模的不断增大,功耗尤其是leakage功耗成为许多SOC芯片设计普遍关注的指标之 一。一般地,功耗设计方案是一个从前端架构到后端物理实现都要涉及并协同考虑的总体方案。以往对于一个关注leakage功耗的 设计,RTL到GDS的过程中,常用的 leakage控制方式是在物理实现的各个子工序,利用EDA工具的功耗优化相关option,使得 物理设计过程尽量做到power -aware即可。对于时序及leakage功耗都成为关键指标的大型的SOC设计,大部分设计者都期望能 借助EDA工具在满足设计性能指标的前提下,快速且最大程度地降低芯片leakage功耗,缩短TTM(Time-To-Market)的同时不会带 来额外的性能牺牲。本文主要阐述在ZX芯片的时序收敛阶段,如何应用Synopsys FSLR技术对设计的多个模块进行了leakage优 化,快速并成功地实现了leakage功耗及时序的同时收敛。
2. FSLR原理及应用案例
2.1 FSLR基本原理及流程
下图1基本描述了FSLR对输入数据的要求及其leakage功耗优化的基本原理。由图我们可以看到FSLR技术可应用于route-opt的实 现阶段,也可应用于signoff阶段。无论是哪个阶段,FSLR 建议输入数据尽可能是时序达到或快要达到signoff要求的,这样的情 况下,工具方能保证对设计进行最大程度的leakage优化。前者的timing correlation方面不如后者,但在运行时间上有一定的优 势。在应用案例中主要是采用了signoff_opt –only_power_recovery方式对leakage进行优化 。其主要特点为:(1)Signoff STA 分析结果驱动的timing–aware &SI-aware的leakage优化;(2)优化过程中通过VT-Cell(multi-VT cell libraries available)的替换尽 可能地减少leakage功耗;(3)对于signoff的输入的物理数据几乎没有时序及布线的影响,也即输出的物理数据几乎不需要进行 ECO;(4)支持MCMM的优化方法,大大缩短优化时间。

图 1 – FSLR Methodology View
下图2描述了FSLR的基本脚本流程。

图 2 – FSLR Script Flow View
图2中表明,FSLR leakage 优化过程中主要涉及的工具有ICC、StarRC和PrimeTime等。基本步骤如下:
第一步是数据准备阶段。ICC输出的signoff或准signoff的database。如输入数据为第三方EDA工具输出的DEF数据,还需要在开 始FSLR leakage优化前将第三方工具输出的signoff 结果输入到ICC平台中。Synopsys Milkyway工具为此提供了友好的数据转换 通道。
第二步是建立PrimeTime / StarRC的运行目录,确保FSLR过程中协同进行Signoff时序或RC 网络寄生的准确数据产生。
第三步是建立涉及的所有signoff scenario,并建立每个scenario与其对应的PT / StarRC session的映射关系。
第四步是基于ICC物理实现平台调用signoff _opt –only_power_recovery这条命令,实时进行leakage优化。

图 3 – FSLR Data Relationship w/ MCMM Flow
上图3为完整的MCMM Leakage 优化流程数据链信息。可 见FSLR leakage优化过程是个Signoff RC -aware及Signoff Timing-aware的过程。这些都是决定其最终优化结果几乎不影 响时序结果的关键因素所在。
2.2 FSLR应用案例及结果分析
一、应用描述
为了使得优化结果最佳,Synopsys技术人员建议尽量使用版本 较新并一致的ICC/STARRC/ PT 工具。
本次应用案例中使用的工具版本为:ICC2010.12-SP2、STAR- RC2010.12-SP2、PrimeTime2010.12-SP2。
ZX芯片对leakage功耗指标要求较高,其中有四个模块的 leakage功耗相对比较关键,并已于第三方工具进行了PR实现 及时序Signoff。考虑到PR数据并非于ICC平台中实现产生。需 要通过以下三个步骤将第三方PR 工具输出的DEF 数据导入ICC 平台:
(1)产生DEF 数据所有层的映射文件。即将DEF 文件中的 Routing layer与Milkyway techfile 定义的层对应起来。 (确保DEF中的每一物理层数据均能被ICC辨认并成功导入)。
(2)创建STD/IO/Marco等的Milkyway参考库。考虑到 Milkyway techfile的data unit与第三方PR工具techfile中 的定义或会有差异,需要重新产生Milkyway格式的设计 库。
(3)创建Milkyway设计库。这个阶段主要是将DEF数据读入ICC平台,同时建立Milkyway 设计单元。在此阶段如第三方techfile与 Milkyway techfile 文件中部分层定义的属 性有差异时,有可能需要基于读入的DEF数据进行一定 的ECO工作。读入的数据主要包括Milkyway Tech file、DEF、SDC和VERILOG。
数据准备结束后,即基于FSLR MCMM Flow进行了快速优化。四个模块时序signoff的 SDC有4个,Signoff的Lib + RC corner组合有7个。于是建立了对应的4个RC Extraction Images及28个PT-SI scenarios 。
应用的四个模块的规模及VT cell组成及 leakage优化应用的 scenario等情况见下图4所示。其中Block1 & Block2基于PT去比较OPT结果,Block 3& Block4基于第三方Signoff工具去比较结果。

图 4 – Blocks’ Situation Summary
关键脚本设置如下:
(1) FSLR RC / PT options设置如下:
open_mw_lib design_lib
open_mw_cel post_routed
## set up PrimeTime and StarRCXT ##
set_primetime_options –exec_dir /pub/pts_2010.12_ SP1/amd64/syn/bin –license_limit 6
set_starrcxt_options –exec_dir /pub/startrc_2010.12_ SP1_1/amd64_starrc/bin
## define scenarios ##
create_scenario wc_cworst_125c_func
source $func_mode_SDC
set_operating_condition –analysis_type on_chip_ variation WCCOM
set_tlu_plus_files –max_tluplus cworst.tluplus –tech2itf_map tluplus.map
set_starrcxt_options –max_nxtgrd_file cworst.nxtgrd -max_image ./star_pre/WC
set_primetime_options –max_image ./pt_pre/pt_wc_ cworst_125c_func
set_timing_derate –clock –early 0.95
create_scenario wcl_cworst_m40c_func
source $func_mode_SDC
set_operating_condition –analysis_type on_chip_ variation WCLCOM
set_tlu_plus_files –max_tluplus cworst.tluplus –tech2itf_map tluplus.map
set_starrcxt_options –max_nxtgrd_file cworst.nxtgrd -max_image ./star_pre/WC_m40
set_primetime_options –max_image ./pt_pre/pt_wcl_ cworst_m40c_func
set_timing_derate –clock –early 0.95
create_scenario lt_cbest_m40c_func
source $func_mode_SDC
set_operating_condition –analysis_type on_chip_ variation LTCOM
set_tlu_plus_files –max_tluplus cbest.tluplus –tech2itf_map tluplus.map
set_starrcxt_options –max_nxtgrd_file cbest.nxtgrd -max_image ./star_pre/BC
set_primetime_options –max_image ./pt_pre/pt_lt_best_m40c_func
set_timing_derate –clock –late 1.10
….
(2)应用FSLR时,利用set_scenario_options命令的-leakage开关针对某一scenario而不是多个scenarios设置为“true”, 工具 即可基于某一特定的scenario进行leakage优化。见以下wc_cworst_125c_func scenario的设置。设计者可根据设计关注的工作条 件合理设置leakage优化的相应scenario。一般情况下,建议选择leakage 功耗最大的scenario。
另外,Leakage优化的同时也可通过设置-setup , – hold选项为true 或false来决定某一scenario下是否需要检查setup或 hold。如以下脚本中,wc_cworst_125c_func scenario需要同时检查setup/hold,而wcl_cworst_m40c_func scenario只 需检查setup。
## define options for each scenario
set_scenario_options –scenarios wc_cworst_125c_func
-setup true
-hold true
-leakage true
set_scenario_options –scenarios wcl_cworst_m40c_func
-setup true
-hold false
-leakage false
set_scenario_options –scenarios wc_cbest_m40c_func
-setup false
-hold true
-leakage false
set_scenario_options –scenarios lt_cbest_m40c_func
-setup false
-hold true
-leakage false
set_scenario_options –scenarios lt_cworst_m40c_func
-setup false
-hold true
-leakage false
signoff_opt –only_power_recovery –skip_initial_analysis –only_psyn
二、结果分析
四个模块的FSLR应用结果分析主要是对比优化前后四个指标的变化情况。四个指标分别为:
• Leakage 功耗值;
• HVT 单元利用率;
• 布线DRC情况;
• 时序违例情况 (WNS, TNS, no. of violating paths)。
(1)Block1 Signoff阶段基于ICC/STARRC/PT进行结果分析,其 QoR如下:

图5 – Block1 FSLR QoR on Signoff Stage
结果显示该block的leakage功耗降低45.2%的同时,对时序、Routing DRC几乎没有影响。
(2)Block2 pre-Signoff阶段基于ICC/STARRC/PT进行结果分析,其QoR如下:

图6 – Block2 FSLR QoR on pre-Signoff Stage
结果显示该Block处于pre-Signoff阶段的leakage 功耗降低了28%,尽管对时序、Routing DRC几乎无影响,但优化效果一般。
(3)Block3 Signoff阶段利用FSLR进行Leakage功耗 优化,基于第三方工具进行时序结果分析,其QoR如下:

图7 – Block3 FSLR QoR on Signoff Stage w/ 3rd Timing Tool
(4) Block4 Signoff阶段利用FSLR进行Leakage功耗 优化,基于第三方工具进行时序结果分析,其QoR如下:

图8 – Block4 FSLR QoR on Signoff Stage w/ 3rd Timing Tool
由上(3)(4)结果表明,FSLR优化后,两模块的leakage功耗分别减少31%及43%。尽管因为使用第三方的时序signoff工具对 结果进行分析导致时序情况有所偏差,但程度很小。所以条件允许的情况下,尽量使用同一EDA vendor提供的功耗优化引擎与时 序signoff引擎,以确保优化数据的correlation效果最优。
3. 结论及建议
基本结论:
(1)ZX项目在时序signoff或pre-Signoff阶段,均成功应用了Synopsys的FSLR技术对关键模块进行了快速Leakage优化。部分模 块Leakage功耗降低程度甚至达到50%左右,而同时几乎对Signoff数据的时序及Routing没有任何影响。
(2)Synopsys FSLR应用过程中,其物理实现平台与Signoff平台的correlation表现比较出色。
(3)FSLR可以有效集成到第三方的物理实现流程中,获取的优化效果几乎等同于集成于Synopsys ICC 物理实现流程。
建议:
(1)在时序将近signoff或signoff阶段进行FSLR Leakage优化,有效获得时序功耗优化结果;
(2)尽可能地使用StarRc/PT-SI saved sessions驱动Leakage OPT的方式进行优化,有效缩短优化时间及减少内存消耗。
(3)如使用第三方的物理signoff数据进行FSLR优化,需要尽早在数据准备阶段借排除数据转换过程中引入的错误,避免影响 signoff进度。
(4)如可能,尽量同时使用Synopsys based的物理实现流程及STA/Power signoff流程。使得Correlation效果最佳。
4. 致谢
应用Synopsys FSLR进行设计Leakage优化的过程中,得到了项目开发组领导及同事的友情协助,得到了Synopsys Kevin、Kenny、凡生在流程搭建及技术问题解决方面的大力支持。在此对以上同事、朋友表示衷心的感谢。
5. 参考文献
(1)Synopsys Final Stage Leakage Power Recovery Guide
(2)Synopsys ICC User Guide.



