首页/文章/ 详情

研发分享:数字后端设计论文 | 基于时序的电压降ECO流程

11月前浏览862

第一作者 | Yangyang Xia

共同作者 | Hong Yin, Miao Liu, Qianyi Zhang

上海楷登电子科技有限公司

201204 上海市浦东新区芳甸路1155号5楼

目的

伴随着超大规模集成电路进入纳米级别,电压降(IR-Drop)成为制约高性能高可靠性电路的重要因素。因为金属互连线的寄生电阻电容的存在和电源供应不平均,芯片内将会存在电压降,该压降会引起电路时序的延缓,从而导致延时违例和信号完整性问题。因此,在电路设计中需要进行电压降分析,并且修复电压降违例。


通过一些客户的反馈,在先进工艺下,尤其是7nm/12nm的良率分析,因为电压降违例导致的良率问题非常严重。Cadence作为业内唯一一家有着业内领先的实现工具(Innovus),时序收敛验收工具(Tempus)和功耗收敛验收工具(Voltus)的EDA供应商,急客户所急,推出本套成熟的基于时序的电压降ECO流程。


电压降分析主要用来验证整颗芯片的供电是否正常。一般情况下,电压降分析有两种方式,静态电压降分析和动态电压降分析。静态电压降分析基于功耗分析把器件模拟成一个恒流源并提取电源地网络的电阻进行分析。静态电压降分析主要跟电源网络的结构以及电源线的连接相关。对于动态电压降,主要是由于电路正常工作时电流波动或者当大量晶体管和组合逻辑电路同时跳变时,芯片会产生很大的瞬时电流,这个电流会引发大的电压降。


为了提升芯片的性能和可靠性,设计工程师很有必要在设计过程中进行电压降的分析。本手册将会提供一种基于时序的电压降ECO的流程,用以辅助设计工程师进行电压降违例的分析与修复,并且最大限度保证setup时序不受影响,和引入最小限度的DRC修复。


应用人员

该手册为数字电路设计工程师尤其是先进工艺数字工程师必备,辅助设计工程师在Innovus/Tempus/Voltus中进行电压降的分析与违例修复。


综述

该手册介绍了一种基于静态电压降分析的电压降ECO的流程,主要在postroute阶段使用Tempus进行ECO。电压降分析和ECO的引擎已经集成到Tempus当中。设计工程师可以通过该流程获得符合电路设计标准的电压降分析和违例修复,并且不增加芯片的时序违例。相应的Innovus和Tempus的命令也包括在该手册当中。


本流程用到的工具包含有Innovus, Tempus 和 Voltus。


手册主要使用Legacy格式的命令。

 

基于时序的电压降分析流程

基于时序的电压降分析流程主要是使用了Tempus中集成的Voltus功耗分析和电压降分析引擎。静态电压降主要是基于平均功耗进行分析的。因此,在进行静态电压降分析之前需要完成平均功耗分析。下面的图主要介绍了该静态电压降分析和违例ECO流程。

 

下面的步骤详细描述了基于时序的电压降ECO的流程:

  • 导入设计:将Innovus的postroute DB直接导入Tempus。

  • 导入SPEF:将SPEF文件读入Tempus。

  • 产生电源网格视图(PGV,power grid view ):PGV的产生需要包括标准单元,电源开关器件,Macro/IP,filler和decap单元等。PGV是器件或者电路模块的电学和物理上一种对应表达方式,主要是根据电网络分布,提取电源网格的电学参数,包括电源网络分析的RC,电流,电容负载和物理位置等。

  • 功耗分析:功耗分析主要是为静态电压降分析提供相应的电流数据。

  • 电压降分析:电压降分析主要基于是PGV和功耗分析进行电压降的分析。

  • 电压降debug:电压降debug用来发现芯片中存在的电压降违例。

  • ECO-opt-design:电压降debug用来发现电压降违例的实例。ECO-opt-design主要是对这些电压降违例的实例进行修复。该修复过程会考虑到时序,最小限度的影响设计的时序。

  • Innovus ECO:电压降违例修复结束后,Tempus会产生命名为eco_innovus.tcl 的tcl脚本。设计工程师需要在Innovus中执行该tcl脚本,工具会在tcl脚本的引导下对相应的违例器件进行替换。替换结束后,需要进行ECO绕线,用来修复在实例替换过程触及的绕线。


1.    开启Tempus

# 以timing signoff solution ECO的模式开启Tempus

tempus -tso

# 开启tpsECOFeatureIRDropFix功能用来修复电压降违例

setBetaFeature tpsECOFeatureIRDropFix 1


2.    导入设计文件

# 直接导入Innovus postroute DB 进入Tempus

read_design -physical_data   xxx.enc.dat   xxx


3.    导入SPEF文件

# 导入SPEF 文件进入Tempus

read_spef -rc_corner   xxx   xxx.spef


4.    产生PGV

PGV是器件或者电路模块的电学和物理上一种对应的表达方式,根据电源网络分布提取电源网格的电学参数,包含了电压降分析和功耗分析所需要的信息。


PGV包括三种形式:Techonly,IR,EM。Techonly仅用于早期电压降分析,IR和EM可用于整个设计阶段和签核。在电压降分析中,要对标准单元和Macro/IP/IO进行PGV的建模,具体所需输入文件如下面的表格所示。

 

以Tech only类型的抽取作为实例来描述PGV的产生。

# 在产生PGV之前,设计工程师需要定义产生view的模式。首先需要定义产生cell的类型,包括Tech only, Standards cells, 和Macros and I/Os,然后定义芯片的供电电源端和接地端。同时,设计工程师需要列出设计中用到的decap器件和filler器件。如果设计中存在电源开关器件,设计工程师还需要定义电源开关器件的相对应参数,例如电源开关器件的名称,供电的电源端(supply),可开启关断的电源端(switched)以ohms为单位的开启电阻(Ron),以毫安为单位的饱和电流(Idst)和泄漏电流(Ileak)。


set_pg_libaray_mode      -celltype techonly       \

-power_pins {VDD voltage}   \ 

 -groud_pins {VSS}       \ 

 -decap_cells *CAP*      \

-filler_cells FILL*            \

-powergate_parameters        \

{{ cell supply switched RonIdstIleak}}  \ 

-extraction_tech_file ***/QrcTechFile                               


# 设定好相应抽取PGV的模式之后,设计工程师可以通过下面的命令产生PGV。工具将会生成dir.PGlib_techonly.cl 的文件夹。


generate_pg_library     -output  ./ -libray_prefix dir.PGlib


注意: PGV只需要在第一次跑这个流程的时候产生一次。如果设计使用的器件单元类型没有发生改变,工程师在之后的流程中可以直接使用第一次产生的PGV。


如果设计工程师需要产生其他类型的PGV,例如IR/EM ,那么就需要准备更多的输入文件。下面是Standards cells的产生IR/EM PGV的命令。


set_pg_libaray_mode                  -celltype stdcells       \

            -power_pins {VDD voltage}         \    

            -groud_pins {VSS}                       \    

            -decap_cells *CAP*                      \   

            -filler_cells FILL*                           \   

            -powergate_parameters                \   

{{ cell supply switched Ron Idst Ileak}}        \   

-extraction_tech_file ***/QrcTechFile   \   

-spice_models  ***                         \   

-spice_corners **                           \   

-spice_subckts  ***                         \   

-current_distribution  propagation      


5.    功耗分析

# 在进行功耗分析之前,设计工程师首先需要定义功耗分析数据的输出路径和文件夹,然后设定相应的功耗分析模式。

  • write_static_currents需要被设置成true用来产生 绕线的电流数据。

  • create_binary_db设置成true,定义binary_db_name ,用来保存二进制DB。

  • 设定分析方式为静态用来执行静态的功耗分析。

  • ignore_control_signals 设置成true。

  • honor_nehative_energy设置成 true用来保存.lib中内部功耗表格中的negative internal energy numbers.


set_power_output_dir        staticPowerResults

set_power_a nalysis_mode      -method static  \

-write_static_currents true         \        

-binary_db_name dynPower.db \        

-create_binary_db true               \        

-ignore_control_signals true       \        

-honor_negative_energy    true  \        

-ana lysis_view ***                                


# 设计工程师需要定义电路的switching activity ,如果有时钟门控,还需设置门控比例。 如果设计工程师有信号网络的翻转信息(TCF,toggle count format ) 文件, 可以直接读入TCF。


set_default_switching_activity        -input_activity   0.2

-seq_activity  0.1                   \            

-clock_gates_output_ratio 0.5            

read_activity_file -format tcf   ***.tcf  

#定义功耗文件的格式.                           

report_power                   -rail_an alysis_format VS           \

                                        -outfile  static.rpts


在功耗分析之后,工具将会产生很多.ptiavg文件,例如dybPower.db static_VDD.ptiavg 。这些 static_***_.ptiavg文件将会被用来进行电压降的分析。


6.    Rail分析

6.1  设置rail分析的模式


# 设计工程师需要定义rail 分析的模式

  • 定义rail分析的方式。该手册使用静态分析。

  • 定义分析的准确度模式 (xd或者hd)。

  • 导入PGV信息文件 ***.cl。

  • 设置enable_rlrp_a nalysis为false加快电压降分析,减少内存使用。

  • 定义分析的view和温度。


set_rail_an alysis_mode      -method static   \

-accuracy   xd                        \                 

-power_grid_library   {***.cl}   \                

-enable_rlrp_ana lysis  false   \                

-verbosity  true                       \                

-a nalysis_view ***                  \                

-temperature  *                                        


注意: 对于分析模式的精确度来说,工具有两种精确度模式:XD 和HD。 XD (accelerated definition) 被用来进行芯片设计流程中早期的电压降和电迁移分析。 HD (high definition) 用来进行设计流程最后电压降和电迁移的分析和验证。 XD 和HD 分别用在不同时期的电压降和电迁移的分析和验证,具体如下表所示。

 

6.2  创建和设置电源凸点(power pad)

# 在进行rail分析之前,设计工程师需要创建和设置电源凸点。命令-auto_fetch将会选取设计中所有的电源点。设计工程师使用电源凸点的**.pp文件来进行rail分析,该文件包含了电源凸点的物理信息。


create_power_pads -net VDD -auto_fetch -vsrc_file vdd.pp

create_power_pads -net VSS -auto_fetch -vsrc_file vss.pp


# 在设置电源凸点之前,工程师被推荐重置设计中原始的电源凸点。重置好电源凸点之后,需要指定电源凸点的形式和电压源信息的文件。工具包含五种格式的电源凸点形式 (defpin, pdcell, xy, boundary and xyiv) 。以xy为例,它表示电压源的位置是由x和y的坐标点进行标记。推荐客户使用XY坐标点的电源凸点文件。


set_power_pads  -reset

set_power_pads -net VDD -format xy -file vdd.pp

set_power_pads -net VSS -format xy -file vss.pp


6.3  设定功耗数据

# 设计工程师需要定义功耗数据的格式,然后将功耗数据导入Tempus。例如,使用-format current定义**.ptiavg文件是功耗分析产生的电流文件。同样,在设置功耗数据文件之前,推荐设计工程师将设计中原始的功耗数据重置。


set_power_data  -reset

set_power_data –format    current                        \

           { staticPowerResults/static_VDD.ptiavg     \

          StaticPowerResults/static_VSS.ptiavg }


6.4  设定pg信息

# 在rail分析之前,需要对pg线进行设定。设计工程师需设定pg线的名称,供电电压值和pg线上承载的电压阈值。电压阈值用于后期生成电压降违例。定义force用来跳过对电源线有效性的检测。设计工程师同样被推荐先重置设计中原始的pg线信息,然后再去根据设计需求定义pg线的信息。


set_pg_nets    -reset

set_pg_nets    -net VDD -voltage 1.0 -threshold 0.9  -force

set_pg_net      -net VSS -voltage 0.0 -threshold 0.05 -force


6.5  设定rail分析域

# rail分析之前,设计工程师需要设定用以进行rail分析的电源域。对于可以开启关断的电源域,工程师只需要设定一直处于开启状态的电源线。如果工程师只需要对某条电源线进行rail分析,那么则不需要定义分析的域。


Set_rail_ana lysis_domain -name ALL -pwrnets { VDD } -gndnets VSS


6.6  Rail分析

# Rail分析是基于电源域或者电源线进行分析的,因此设计工程师需要定义rail分析的模式是基于电源域还是电源线。


an alyze_rail -name ALL -results_directory ./staciRailResults -type domain all


6.7  Rail 分析结果

工具将会在用户定义的路径下面产生对应的分析结果,例如,ALL_0c_avg_1。Rail分析的结果将会被用来进行电压降debug。设计工程师可以在Reports的路径下面检查相应的报告,并且在以电源线命名的路径下面检查对应电源线的rail分析结果。在本手册中,以 VDD_CPU为例。设计工程师可以检查电压降分析的分布图,或者可以检查log文件来查看压降分析的范围和比例。下图所示的为电压降的分布图和log文件中显示的压降分布区间和比例。

 

注意:IR压降结果的显示有两种类型,线性结果和有限结果。就线性结果而言,工具会将从0到设定的电压值行平均分配,然后显示出每个电压范围内的实例占比。至于有限结果,该结果的显示和设计工程师的设定有关。在设定PG线信息时,工程师会定义每条电源线上的阈值,当线上的实际电压值高于或者定于设定的阈值时,工具便会将对应的实例标记为电压降违例。同时,工具会将高于或者低于阈值和设定的标准电压之间的范围进行平均分配,并且显示对应区间范围内的实例占比。


7.    电压降debug

在rail分析之后,需要进行电压降debug,用以识别芯片上不同区域的电压降违例,并且提供相应的违例信息供工具进行电压降违例的修复。


# 电压降debug需要指定rail分析产生的结果目录,例如该手册中的ALL_0c_avg_1。如果用户需要基于电源域来进行电压降debug,需要设定相应电源域的名称。推荐设计工程师定义eco_report,用来产生包含电压降信息的的文件,该文件可以用来在Tempus中进行ECO修复电压降违例。设计工程师使用Nregion定义设计应当分为几个区域来进行分析,通过nworst_instance定义多少个违例应该被报告出来。


debug_irdrop   -state_directory./staticResults/ALL_0c_avg_1\

-domain   ALL                                                  \

-output_directory pre-eco_latest                     \

-nworst_instances ***                                      \

-eco_report                                                      \

-nregion  *                                                                                           


设计工程师可以在pre-eco_latest的目录下面检查debug报告,或者直接在log文件中查看相应的违例实例的具体数目。Log文件的结果显示具体如下图所示。


 


8.    电压降违例ECO

电压降debug会识别出设计中的IR压降违例,设计工程师需要进行ECO对电压降违例进行修复。本手册的流程推荐工程师在Tempus中进行修复。


# 设定ECO的优化模式retime为 path_slew_propagation,工具会根据路径实际slew值,基于 PBA? 重新计算路径的时序延时。


set_eco_opt_mode -retime path_slew_propagation


# 设计工程师通过设定 max_slack, max_paths和nworst分别来定义来定义ECO过程中允许的最大slack值,每个终点对应的最差路径的数目和 每个终点可以列举的路径数目。


set_eco_opt_mode  -max_slack *   -max_paths *   -nworst *


# 设定allow_multiple_incremental 为true,允许工具可以进行多次的优化来进行电压降违例的修复。


set_eco_opt_mode  -allow_multiple_incremental true


# 设定load _irdrop _db去加载电压降debug的结果。


set_eco_opt_mode  -load_irdrop_db  ***


#设定verbose为 true用来打印详细的电压降违例ECO的信息进入log文件。


set_eco_opt_mode  -verbose true


# 设定 fix_max_tran and fix_max_cap 为false来阻碍工具修复DRV。这里,重要的是要设定fix_ir_drop为true,该命令将会开启Tempus的电压降违例ECO功能。


set_eco_opt_mode           -fix_max_tran    false              \

-fix_max_cap     false              \

-fix_ir_drop     true                                                  


# 设定setup_recovery 为true用来修复因为电压降违例修复引起的时序违例。


set_eco_opt_mode   -setup_recovery true


#使用eco_opt_design开始进行ECO修复电压降的违例,设计工程师需要定义-drv用来触发ECO的功能。


eco_opt_design  -drv


9.    在Innovus进行ECO

在Tempus中通过eco_opt_design修复电压降违例之后,工具将会产生以eco_innovus.tcl命名的脚本文件,该脚本具体的内容由下图所示。

 

                                             

该eco_innovus.tcl脚本包含需要被ECO替换的实例信息,例如实例的位置,实例的单元名称,和单元的方位。


下面的步骤介绍了在Innovus中进行ECO 的流程。需要注意的是,在完成ECO替换单元之后,设计工程师需要进行ECO绕线用以修复因为换单元而被触及的绕线。

  • 开启Innovus,导入postroute的DB。

  • 执行eco_innovus.tcl

  • ecoRoute


10.    验证电压降ECO之后的时序结果

在Innovus中完成ECO之后,需要验证ECO之后的时序结果。设计工程师可以直接在Innovus中调用timeDesign的引擎去报时序结果,或者抽取SPEF文件,在Tempus中验证时序和电压降结果。


总结

该手册用来帮助设计工程师在postroute的阶段进行电压降违例ECO修复。工具将会通过对标准单元进行放大或者缩小,替换不同阈值电压的标准单元进行电压降违例的修复。该手册推荐的流程将会最小限度的扰乱设计原始的时序信息,并且修复电压降违例。


通过应用该手册,设计工程师可以最小限度的触及设计时序去修复电压降违例。


参考文献

Innovus User Guide Product Version 17.10

Innovus Text Command Reference Product Version 17.10

Tempus User Guide Product Version 17.10

Tempus Text Command Reference Product Version 17.10

Voltus User Guide Product Version 17.10

Voltus Text Command Reference Product Version 17.10

来源:Cadence楷登
ACT电源电路信号完整性电子ADSUG芯片UMCadence
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-09-25
最近编辑:11月前
Cadence楷登
签名征集中
获赞 4粉丝 122文章 688课程 0
点赞
收藏
作者推荐

Cadence扩展全新Virtuoso平台,提供优化系统设计并支持5nm及仿真驱动布线

内容提要:○ 高阶布局方法和仿真驱动布线将提升生产力高达 50%○ FinFET 布局工作量减少 3 倍以上○ Virtuoso ADE 仿真吞吐量提升高达3 倍○ 先进统计算法将工艺参量变化对设计影响分析的时间减少约 20%○ Virtuoso ADE Verifer通过和工业界验证标准结合将验证效率提升30%○ 增强版Virtuoso System Design 系统设计平台,能够同时支持多种工艺和多种PDK中国上海,2018 年 4 月 11 日 – 楷登电子(美国 Cadence 公司,NASDAQ: CDNS)今日正式发布 Cadence® Virtuoso® 定制 IC 设计平台的技术升级和扩展,进一步提高电子系统和 IC 设计的生产力。新技术涉及 Virtuoso 系列几乎所有产品,旨在为系统工程师提供更稳健的设计环境和生态系统,助其实现并分析复杂芯片、封装、电路板和系统。增强版 Virtuoso 系统设计平台Virtuoso 平台 2018全新内容中,最重要的是去年发布且荣获奖项的 Virtuoso System Design Platform,基于全面升级和扩展的Virtuoso 系统设计平台,设计师可以无缝编辑并分析最复杂的异构系统。封装、光电、IC 模拟与 RF 工程师皆可在同一个平台上操作并充分使用 Virtuoso平台深具信任的完整设计应用。新系统设计环境的核心是集 合了多项新技术允许设计师在同一平台下对不同工艺不同技术的设计进行同步编辑。同时该系统设计平台与 Cadence SIP Layout方案以及Sigrity™ 分析技术实现无缝互联,为设计师提供完整的“芯片至电路板”设计工具。Virtuoso 高阶节点设计与布局全新发布的 Virtuoso 平台中,Cadence 采用了创新的高阶节点技术,实现从 22nm 到 5nm所有工艺的设计加速。通过与领先代工厂、生态系统合作伙伴及客户的紧密合作,Cadence研发出可以利用创新方法自动管理工艺复杂度的先进技术,帮助设计师更加专注于设计目标。在电路设计和分析方面,针对 FinFET 设计开发的先进统计算法可以在设计早期发现工艺参量变化引起的电路性能波动,将工艺参量变化对设计影响的分析时间减少约 20%。布局设计方面,一种独特的多网格系统可以提取最新 7nm 和 5nm 工艺的复杂设计规则,同时允许设计师增加布局和布线技术的使用,大幅提升布局设计的生产力。在 7nm 节点下,上述优化可将布局工作量减少 3 倍以上。Virtuoso 先进设计方法学与自动化Cadence 研发了多项提升模拟设计和分析的技术。通过与 Cadence Spectre® 电路仿真器集成,并采用先进分析技术减少设计迭代,Virtuoso 模拟设计环境(ADE)的仿真吞吐量提升高达 3 倍。Virtuoso ADE Verifier也加入了专属新功能,汇集了跨领域电气规范,使实现标准合规(ISO 26262 等标准)的难度降低了约 30%。凭借保障电路完整性和性能的一系列专属设计技术,Virtuoso 布局环境正从“电气感知布局”进化为业界首个“电气和仿真驱动”的布局方式。全新仿真驱动布局可以解决关键电路和高阶节点设计中的许多电迁移(EM)和寄生问题。为了提高布局的自动化水平,新环境加入了多项针对层次化版图规划的突破性技术,以及全新的布局和布线自动化技术,大幅提高布局设计生产力,并缩短布局时间。鉴于当今芯片的复杂程度愈演愈烈,其中一个很大的设计难题是如何将布局任务在设计团队间进行合理分配。增强版 Virtuoso 平台加入了创新的并行实时团队设计编辑功能,允许团队对布局任务进行分配并探索各种假设情形。这一功能对设计规则检查(DRC)的修改、芯片完成和人工布线都十分有用。Cadence 预计,电气驱动布线和走线编辑、实时设计编辑与革命性设计规划技术的全新布局环境可以将生产力提升达 50%。“在Bosch,当我们设计关键任务的系统时,可靠性是我们的第一考量。我们对 EDA 工具的要求是,其不仅能帮助我们的工程师高效地设计、分析、布排电路,达到可靠性标准,而且还不能拖累项目的整体生产力,”Bosch公司 EDA 高级项目经理 Göran Jerke 表示。“通过与 Cadence 的长期合作,我们在过去的电气感知布局和最新的电气驱动布局方面都取得了宝贵成果。”“我们的目标是向客户提供最完整的解决方案,通过贯通芯片、封装、模组和电路板等各设计领域的无缝互联流程,帮助客户更好地设计并验证包括模拟、混合信号、RF和光电产品在内的各种异构系统,” Cadence 公司资深副总裁兼定制 IC 和 PCB 事业部总经理Tom Beckley 表示。“全新 Virtuoso 平台是在大获成功的 Virtuoso 电气感知设计布局套件基础之上开发而成的,它突破性的分析功能与电气驱动布局功能可以提升设计实现的可靠性。此外,它还能支持包括 5nm 节点在内的最先进工艺技术。通过与领先代工厂、生态系统合作伙伴和客户展开合作,我们成功实现了定制和仿真设计方法学的大幅增强。”关于楷登电子 CadenceCadence 公司致力于推动电子系统和半导体公司设计创新的终端产品,以改变人们的工作、生活和娱乐方式。客户采用 Cadence的软件、硬件、IP 和服务,覆盖从半导体芯片到电路板设计乃至整个系统,帮助他们能更快速向市场交付产品。Cadence 公司创新的“系统设计实现” (SDE)战略,将帮助客户开发出更具差异化的产品,无论是在移动设备、消费电子、云计算、汽车电子、航空、物联网、工业应用等其他的应用市场。Cadence 公司同时被财富杂志评选为“全球年度最适宜工作的100家公司”之一。来源:Cadence楷登

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈