加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

38.fix_eco_timing学习

(2020-03-19 16:51:46)
分类: design_flow

1. setup

fix_eco_timing -type hod-setup_margin 0.15 -slack_lesser_than -0.10 -buffer_list {BUFFD2BWP12T}

修正hold违反大于0.10同时不会在setup在0.15余量以下路径修,保证不影响setup timing。


2. 在PT中用以下命令修hold

>fix_eco_timing -hold


3. 保存tcl

之后通过下面的命令来导出PT对网表做出的改动,格式为ICCtcl脚本格式。

>write_changes -format icctcl -output eco_fix_hold.tcl


4. ICC调用

接着便可以开始ICC中的ECO流程了,先在ICC中加载PT导出的tcl文件来更改ICC中的网表。

>eco_netlist -by_tcl_file eco_fix_hold.tcl


 5. report中查找执行tcl

proc sta_fix_hold { {buf_lst {BUFX2 BUFX4 BUFX6 BUFX8 BUFX16 BUFX20 DLY1X1 DLY1X4 DLY2X1 DLY2X4 DLY4X1 DLY4X4}} {fmt astro} } {
  redirect -file tmp_hold_vio.rpt {report_timing -start_end_pair -path_type end -delay min -nosplit}
  set f [open tmp_hold_vio.rpt r]
  while {![eof $f]} {
   gets $f line
   set end_path [lindex $line 0]
   if { [string compare $end_path ""] && ![regexp {^Endpoint} $end_path] && ![regexp {^---} $end_path] } {
     puts "###fix hold violation###current hold violated end point =============> $end_path"
     fix_eco_timing -type hold -to $end_path -buffer_list $buf_lst
   }
  }
  close $f
  if {$fmt == "astro"} {
    write_astro_changes -format scheme  eco_fix_hold.cmd
  } else {
    write_changes -format icctcl -output  eco_fix_hold.tcl
  }
}

0

阅读 收藏 喜欢 打印举报/Report
前一篇:37.Formality-Debug
后一篇:39.lib相关命令
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有