用户工具

站点工具


vlsi:icc:io-blockage

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

vlsi:icc:io-blockage [2011/04/20 06:20] (当前版本)
行 1: 行 1:
 +====== Add Placement & Route Blockage to IO Cells ======
 +===== Scripts =====
 +
 +<code tcl>
 +###  NOTE : WARNING
 +###
 +###  add_io_cover takes two arguments. ​ The first is the hard blockage distance
 +###  around the io.  The second is the amount the PG route guide is INSET from
 +###  that blockage -- a number picked to be slightly larger than half the standard
 +###  cell PG rail width. ​ The reason for the inset is to prevent a situation where
 +###  placement rows wind up without a PG rail.
 +###  d = blockage border [one row default], e is half M1 pwr rail width + margin
 +proc add_io_cover { d e } {
 +  set x 0
 +  foreach_in_collection c [get_cells -hier -all -filter "​is_io==true"​] {
 +    set coord [get_attribute $c bbox]
 +    set low_x [expr [lindex [lindex $coord 0] 0] - $d]
 +    set low_y [expr [lindex [lindex $coord 0] 1] - $d]
 +    set high_x [expr [lindex [lindex $coord 1] 0] + $d]
 +    set high_y [expr [lindex [lindex $coord 1] 1] + $d]
 +    create_placement_blockage -bbox "​$low_x $low_y $high_x $high_y"​ -type hard -name IoBlockH_$x
 +    set newCord [list [list [expr $low_x ​ + $e ] [expr $low_y ​ + $e ]] [list [expr $high_x - $e ] [expr $high_y - $e ]] ]
 +    create_route_guide -name IoBlockR_$x -no_preroute_layers {M1 M2 M3 M4 M5 M6 M7 M8} -coordinate $newCord -no_snap
 +    incr x
 +  }
 +}
 +
 +add_io_cover 1.8 0.14
 +</​code>​
  
vlsi/icc/io-blockage.txt · 最后更改: 2011/04/20 06:20 (外部编辑)