[i=s] 本帖最后由 走来走去 于 2019-3-27 13:47 编辑 [/i]
# power strap
set px ""; set py "";
set bound [get_attr [current_design] boundary]
foreach xy [lappend bound [lindex $bound 0]] {
set x [lindex $xy 0]; set y [lindex $xy 1];
if {$px == ""} {set px [lindex $xy 0]; set py [lindex $xy 1];continue;}
if {$px == $x} {
# vertical
if {$py > $y} {set ty0 $y; set ty1 $py;} else {set ty0 $py; set ty1 $y;}
set tx0 [expr $x - 1]; set tx1 [expr $x + 1]; set ty0 [expr $ty0 - 1]; set ty1 [expr $ty1 + 1];
} else {
# horizon
if {$px > $x} {set tx0 $x; set tx1 $px;} else {set tx0 $px; set tx1 $x;}
set tx0 [expr $tx0 - 1]; set tx1 [expr $tx1 + 1]; set ty0 [expr $y - 1]; set ty1 [expr $y + 1];
}
create_routing_blockage -boundary [list [list $tx0 $ty0] [list $tx1 $ty1]] -layer "ME3 ME4 ME5 ME6 ME7 ME8" -name_prefix FP_tmpM3_rb1
set px $x; set py $y;
}
create_pg_mesh_pattern ME8mesh \
-layers { \
{ {horizontal_layer: {ME8}} {width: 5} {spacing: interleaving} {pitch: 13} {offset: 3} {trim: false} } \
} -via_rule {via_master : NIL }
set_pg_strategy mesh_strategy -core -extension {{nets: VDD VSS} {stop: design_boundary}} \
-pattern { {name: ME8mesh} {nets: VDD VSS} }
set_pg_strategy_via_rule novia -via_rule { {via_master : NIL } {intersection: adjacent} }
compile_pg -strategies mesh_strategy -ignore_drc -via_rule novia
#create_pg_strap -layer ME8
#create_pg_vias -nets "VDDA VSS" -from_layers ME3 -to_layers ME2
|