disconnect_net - 2024.1 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
Release Date
2024.1 English

Disconnect a net from pins or ports


disconnect_net [‑prune] [‑net <arg>] [‑objects <args>] [‑pinlist <args>]
    [‑quiet] [‑verbose]


Name Description
[-prune] When performing disconnect, remove the net and any pin/net chain up to the pin on any primitive instance as long as each object in the chain has only 1 remaining connection.
[-net] Net to disconnect - optional, net attached to first pin or port object is used if not specified.
[-objects] List of pin and port names to disconnect. String expressions are supported.
[-pinlist] List of pin and port objects to disconnect.
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution




This command allows the user to disconnect a specified net from one or more pins or ports in the netlist of an open Synthesized or Implemented Design.

Netlist editing changes the in-memory view of the netlist in the current design. It does not change the files in the source fileset, or change the persistent design on the disk. Changes made to the netlist may be saved to a design checkpoint using the write_checkpoint command, or may be exported to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate write_* command.
Note: Netlist editing is not allowed on the elaborated RTL design.


-prune - (Optional) Remove hierarchical pins, ports, or nets that are left unconnected after disconnecting the specified nets. This will not remove the pins specified by -objects, which are disconnected, but removes the net and pins or ports connected to the specified pins.

-net <arg> - (Optional) Specifies the net to disconnect. If no net is specified, the net connected to the first pin or port object will be disconnected.

Note: Although you can create a bus using the -bus_from and -bus_to arguments of the create_net command, you must disconnect each bit of the bus separately using the disconnect_net command.

-objects <args> - (Optional) The string list of pin and port names to disconnect from the specified net. String expressions representing patterns are supported. When first-class objects are available, the command line option -pinlist should be used instead as it will be faster

-pinlist <args> - (Optional) Recommended option over -objects. List of pin and port objects to disconnect from the specified net. If the list of pins and ports is built around first-class objects, the -pinlist processing is much faster than -objects. This option will also take a list of object names as string, but at the cost of increased runtime.

-quiet - (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the set_msg_config command.


Using the following connection network:

leaf_cell1/pin1 > net1 > block1/pin1 >
< block2/pin1 < net2 < leaf_cell2/pin1

This example first disconnects the signal, topnet, from block1/pin1, and then prunes topnet, block2/pin1, and net2, but does not prune leaf_cell2/pin1:

disconnect_net -prune -net topnet -objects [get_pins block1/pin1]
Note: net2 is not removed, because block1/pin1 is not pruned as part of the -prune option.

The following example disconnects the specified bit of the dataBus:

disconnect_net -net dataBus[1] -objects {dataIN[1] myDMA/data[1]}

This example demonstrates the most efficient coding style to disconnect nets from multiple pins or ports. In the first code sample, all pins are presented as a single list of pins or ports, and the disconnect_net command runs more quickly than the second code sample that is presented as multiple disconnect_net commands:

disconnect_net -objects [list {pad_rin1_IBUF[0]_inst/O} {hcore0/pad_rin1[9][0]} \
{pad_rin1_IBUF[1]_inst/O} {hcore0/pad_rin1[9][1]} \
{pad_rin1_IBUF[2]_inst/O} {hcore0/pad_rin1[9][2]} \
{pad_rin1_IBUF[3]_inst/O} {hcore0/pad_rin1[9][3]} \
{pad_rin1_IBUF[4]_inst/O} {hcore0/pad_rin1[9][4]} \
{pad_rin1_IBUF[5]_inst/O} {hcore0/pad_rin1[9][5]} \
{pad_rin1_IBUF[6]_inst/O} {hcore0/pad_rin1[9][6]} \
{pad_rin1_IBUF[7]_inst/O} {hcore0/pad_rin1[9][7]} \
{pad_rin1_IBUF[8]_inst/O} {hcore0/pad_rin1[9][8]} \
{pad_rin1_IBUF[9]_inst/O} {hcore0/pad_rin1[9][9]} ]
Tip: The lack of the -net option in these samples means that the net attached to the first pin or port specified is the net that will be disconnected from all subsequent pins and ports.

disconnect_net -objects [list {pad_rin1_IBUF[0]_inst/O} {hcore0/pad_rin1[9][0]}]
disconnect_net -objects [list {pad_rin1_IBUF[1]_inst/O} {hcore0/pad_rin1[9][1]}]
disconnect_net -objects [list {pad_rin1_IBUF[2]_inst/O} {hcore0/pad_rin1[9][2]}]
disconnect_net -objects [list {pad_rin1_IBUF[3]_inst/O} {hcore0/pad_rin1[9][3]}]
disconnect_net -objects [list {pad_rin1_IBUF[4]_inst/O} {hcore0/pad_rin1[9][4]}]
disconnect_net -objects [list {pad_rin1_IBUF[5]_inst/O} {hcore0/pad_rin1[9][5]}]
disconnect_net -objects [list {pad_rin1_IBUF[6]_inst/O} {hcore0/pad_rin1[9][6]}]
disconnect_net -objects [list {pad_rin1_IBUF[7]_inst/O} {hcore0/pad_rin1[9][7]}]
disconnect_net -objects [list {pad_rin1_IBUF[8]_inst/O} {hcore0/pad_rin1[9][8]}]
disconnect_net -objects [list {pad_rin1_IBUF[9]_inst/O} {hcore0/pad_rin1[9][9]}]