Professional Documents
Culture Documents
How To Find Floating - Dangling Nets, Pins, IO Ports, and Instances Using Get - DB Commands
How To Find Floating - Dangling Nets, Pins, IO Ports, and Instances Using Get - DB Commands
Explanation of Script
There are five scripts mentioned in this article, as listed below:
1. To find and delete nets with no fanout (Dangling Nets).
2. To find floating input pins in a design.
3. To find floating output pins in a design.
4. To report floating instances in a design.
5. To find floating IO ports in the design.
Usage
Source the script provided in the Code section.
###################################################################
Number of Dangling Nets : 3
###################################################################
Dangling Net getting deleted : xy_11
Dangling Net getting deleted : acd_23
Dangling Net getting deleted : n_2
###################################################################
Number of Dangling Input Pins : 1
###################################################################
ax/perf/A
###################################################################
Number of No Driver Input Pins : 1
###################################################################
ax/sefd/SI
###################################################################
Number of Dangling Output Pins : 2
###################################################################
ax/de/Y
ax/grt/wer/Y
###################################################################
Number of No Load Output Pins : 1
###################################################################
ax/ydgs/pQ1[3]
Code
# To find and delete nets with no fanout (Dangling Nets)
proc dangling_nets {} {
set fp [open dangling_nets.rpt "w"]
set dangling_nets [get_db [get_db hnets -if {.num_loads == 0}] .name]
puts "Dangling Nets being deleted will be reported in dangling_nets.rpt\n"
puts $fp "###################################################################"
puts $fp "Number of Dangling Nets : [llength $dangling_nets]"
puts $fp "###################################################################\n"
foreach net $dangling_nets {
puts $fp "Dangling Net getting deleted :\t$net"
delete_nets $net
}
close $fp
}
# To find the input pins that are connected to nets but those nets have no drivers
set fp [open dangling_input_pins.rpt "a"]
set noDriver_input_pins [get_db [get_db pins -if {.net.num_drivers==0 && .direction
== in && !.net.is_power && !.net.is_ground}] .name]
puts $fp "\n###################################################################"
puts $fp "Number of No Driver Input Pins : [llength $noDriver_input_pins]"
puts $fp "###################################################################\n"
foreach pin $noDriver_input_pins {
puts $fp $pin
}
puts "Check the file dangling_input_pins.rpt"
close $fp
}
# To find the output pins that are connected to nets but those nets have no load
set fp [open dangling_out_pins.rpt "a"]
set noLoad_out_pins [get_db [get_db pins -if {.net.num_loads==0 && .direction == out
&& !.net.is_power && !.net.is_ground}] .name]
puts $fp "\n###################################################################"
puts $fp "Number of No Load Output Pins : [llength $noLoad_out_pins]"
puts $fp "###################################################################\n"
foreach pin $noLoad_out_pins {
puts $fp $pin
}
puts "Check the file dangling_out_pins.rpt"
close $fp
}