赞
踩
终于他妈的写完了 前前后后一个月 希望这篇教程可以帮到正在集成电路设计道路上前进的你我;
在route_opt 完成之后 有很多需要执行的 tasks,而且有一些tasks 是必须的:
Required:
timing sign-off 参数提取 静态时序分析,使用ECO Fusion 获得更快的timing signoff
DRC Sign-off;
插入 filler;(fill gaps between standard cells) 插完filler 之后 还需要再看一次timing; 再往下做;
METAL filling (fill metal layers for CMP)
可能需要的:
functional ECO
ECO : Engineering Change Order, used when a chip is going to tape out, for small logic changes and fix timing, x-talk etc.
就是在APR已经完成之后, 前端网表发生变化,且变化不大,为了节省时间,可以使用ECO flow 去更新我们做好的layout;
区别在于最底层的poly层 是否可以动;
流片之前 叫 pre tape-out ECO ;没有标准的flow;
流片回来之后 叫Post Tape-out ECO;silicon 层是frozen住的,不可以动; new cells are getting mapped to pre-prepared spare cells ; 只有 routing layer 是可以改变的;
#更新存在ECO改变的网表; 与老的网表作对比;
#eco_netlist
#它会生成一个脚本文件,保存ECO changes;能够应用到设计中继续做incremental PR 的flow
place_eco_cells
#place 新的ECO cells
#更新时钟和扫描链的信息 这是一个手工的步骤 使用connect_net disconnect_net 连接新的单元;
route_eco
#布线新的nets
route_opt
#fixing timing & DRC 的violation
place_eco_cells-eco_changed_cells
-legalize_mode free_site_only | allow_move_other_cells | minimum_pysical_impact
#默认 free_site_only : ECO单元只会放在空的site上 不会移动已经存在的单元
#allow_move_other_cells : 允许移动靠的最近的单元;
#minimum_physical_impact : 尽量减小其他cell的移动 常用此选项;
#执行ECO 的比较
eco_netlist -by_verilog_file ECO_netlist.v -write_changes ECO_changes.tcl
#应用ECO的改变并做布局;
source ECO_changes.tcl
connect_pg_net
place_eco_cells -eco_changed_cells
# 手工修改时钟树 连接到scanchain;
# 布线 以及布线后的优化
route_eco -max_detail_route_iterations 5 \
-utilize_dangling_wire true \
-oprn_net_driven true \
-reroute modified_nets_first_than_others
route_opt
你可以手动的执行PT ECO 这意味你需要:
PT /StarRC/ICCII 的数据导入导出的脚本
在PT中做ECO
在StarRC中提取寄生参数
在ICCII 中完成ECO;
或者你也可以让ECOFusion 自动完成所有的事情;
所有的工作都在ICC II中完成,能够加快实现的速度;
eco_opt
#两次 route_opt 使用primetime 的延迟计算引擎以及 StarRC 融合的参数提取
#设置 Prime time 需要的DB 库 加入到search path之中
lappend search_path “remote/../DBs"
set_host_options -target PrimeTIme \
-submit_common {/lsf/bin/bsub -R “rusage[mem=30G]"}
set_pt_options -pt_exec /apps/pt_2019.12-SP4/bin/pt_shell
#配置StarRC
set_starrc_options -config./script/starrc_config.txt
eco_opt -types "setup hold" -pba_mode path -physical_mode open_site
#生成时序报告
check_pt_qor -pba_mode path
#之后再报告时序 不能使用report_timing 了 会覆盖上面的check_pt_qor的结果
先执行 有金属层的filler cell的插入;
执行 PG connection 以及 DRC 的检查;
使用不同大小的filler 重复去填充; 先插size比较大的filler 再插size 比较小的filler;
最后执行的是没有金属层的填充单元的插入;
#insert filler cells first cells with Metal ,then without
#should be sorted from largest to smallest
set FILLER_CELL_METAL “sead32/FILLER128 sead32/FILLER64"
create_stdcell_fillers -lib_cells $FILLER_CELL_METAL \
-rules {post_route_auto_delete
#允许 route_opt eco_opt 自动移除filler cells
connect_pg_net
remove_stdcell_fillers_with_violation
create_stdcell_fillers-lib_cells $FILLER_CELL_NO_METAL
connect_pg_net
#filler cell remove
eval_with_undo -disable {
remove_cells [get_cells -hierarchical -filler design_type==filler]
}
in-design signoff DRC checking and fixing(DRC检查及修复)
ICV : IC Validator IC 正确性检查器;用来检查DRC 以及帮助我们fix DRC;
save_blcok
set_app_options -list {signoff.check_drc.runset "my_runset"}
signoff_check_drc -select_layers {M1 VIA1 M2 VIA2 M3}
set_app_options -list {
signoff.fix_drc.init_drc_error_db “signoff_check_drc_run"
}
signoff_fix_drc
signoff_check_drc
signoff_check_drc -select_rules {“M2.S.*” “M3*"}
#使用design view 或者 merge GDSII/OASIS 去检查DRC
set_app_options -list {signoff.check_drc.read_design_view {*}}
set_app_options -list {signoff.physical.merge_stream_files streamfile.gds}
signoff_check_drc [-check_all_runset_layers true]
#如果tech file 和 runset layer 的名字不一样
set_app_options -list {signoff.physical.layer_map_file “filename"}
是干什么用的?
save_block
set_app_options -list {
signoff.create_metal_fill.runset sead32_mfill_rules.rs
signoff.create_meatl_fille.read_deaign_views {*}
or
signoff.physical.merge_stream_files {streamfiles.gds}
signoff_create-metal_fill -timing_preserve_setup_slack_threshold 0.05
#时序分析会有新的小的违例
#解决方法就是 将filler移除 重新执行route_opt 然后再重新插入filler cells
#run auto_eco metal fill
signoff_create_meatl_fill -auto_eco true \
-timing_preserve_setup_slcak_threshold 0.05
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。