布局布线和时序分析
笔记本


2019-03-27 10:17:13icc2中打power mesh走来走去202.101.58.98

[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


回到首页时钟 , 联系信箱:yzbox#163.com(把#换成@) 粤ICP备18155639号