proc j_select_load_buf_inv { args } {
set j_all_cells ""
set j_net [get_flat_nets -of [get_ports $args ] ]
for { set j_i 0 } { $j_i < 5 } { incr j_i } {
set j_input_pin [get_flat_pins -of $j_net -filter "direction == in" ]
if { [sizeof_collection $j_input_pin ] > 1 } { break }
set j_load_cell [get_flat_cells -of $j_input_pin ]
lappend j_all_cells [get_object_name $j_load_cell ]
set j_net [get_flat_nets -of [get_flat_pins -of $j_load_cell -filter "direction == out" ] ]
}
return $j_all_cells
}
如果把上面get_ports换成get_flat_pins也可找出中间某个pin的fanout。for循环控制要往下搜寻的级数这个脚本比all_fanout -from要快很多。
|