blob: 56bca4b9b62c6577052883e3491cf02943b3d51d [file] [log] [blame]
# s8
proc bcen { box } {
scan $box "{%f %f %f %f}" llx lly urx ury;
return [list [expr ($urx + $llx) / 2] [expr ($ury + $lly) / 2]]
}
set layerhash(met1) 1094
set layerhash(met2) 1091
set layerhash(met3) 1088
set layerhash(met4) 1085
set layerhash(met5) 1082
set layerhash(rdl) 1080
set fp [open data/lvs.txt w]
# puts $fp "MASK SVDB DIRECTORY lvs QUERY"
puts $fp "LAYOUT IGNORE TEXT DATABASE"
puts $fp "PORT LAYER TEXT met1tt met2tt met3tt met4tt met5tt rdltt"
puts $fp "PORT DEPTH PRIMARY\n"
set design [get_db current_design .name]
foreach_in_collection p [get_ports] {
set name [string toupper [get_db $p .name]]
set location [regsub "{" [regsub "}" [get_db $p .location] ""] ""]
set layer $layerhash([get_db $p .physical_pins.layer_shapes.layer.name])
puts $fp [format "LAYOUT TEXT \"%s\" %s %s %s" $name $location $layer $design]
}
set pg_ports [get_db current_design .pg_ports]
foreach port $pg_ports {
set name [string toupper [get_db $port .name]]
set pins [get_db $port .physical_pins]
foreach pin $pins {
set layername [get_db $pin .layer_shapes.layer.name]
set layer $layerhash($layername)
set location [bcen [get_db $pin .layer_shapes.shapes.rect]]
puts $fp [format "LAYOUT TEXT \"%s\" %s %s %s" $name $location $layer $design]
}
}
close $fp