get_fanouts (::quartus::sdc_ext)

The following table displays information for the get_fanouts Tcl command:

Tcl Package and Version

Belongs to ::quartus::sdc_ext 1.0

Syntax get_fanouts [-h | -help] [-long_help] [-asynch] [-clock] [-inverting_paths] [-no_logic] [-non_inverting_paths] [-stop_at_clocks] [-synch] [-through <names> ] <filter>
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-asynch Traverse through asynchronous edges
-clock Traverse through clock edges
-inverting_paths Only follow inverting combinational paths
-no_logic Do not follow combinational paths
-non_inverting_paths Only follow non-inverting combinational paths
-stop_at_clocks Return clock targets as fanin/fanouts rather than traversing through them
-synch Traverse through synchronous edges
-through <names> Valid through nodes (string patterns are matched using Tcl string matching)
<filter> Valid starting nodes (string patterns are matched using Tcl string matching or collection)
Description
Returns a collection of fanout ports, registers (and 
optionally clock targets) reachable from the
<filter> in the design. When the -no_logic option is
used, get_fanouts ignores the paths that pass through
combinational logic elements other than buffers and
inverters.

When you use the -synch, -asynch, or -clock options,
get_fanouts traverses the netlist through corresponding
edges. You can specify more than one of these options.
If you do not specify any of these three
options, the command does not ignore any paths.

When the -non_inverting_paths option is used in
conjunction with the -no_logic option, get_fanouts
does not follow paths that include an odd number
of inverters. Similarly, when the -inverting_paths
option is used in conjunction with the -no_logic
option, get_fanouts does not follow any paths that
include an even number of inverters. Both the
-non_inverting_paths and -inverting_paths options
require the -no_logic option and are mutually
exclusive.

NOTE:
The -no_logic option does not consider logic absorbed
into the cells of the <filter> nor the cells of fanout
registers, ports or clock targets.
The -no_inversion option does not consider inversions
absorbed into synchronous inputs of fanout registers,
as the Intel Quartus Prime software register timing
model always considers these edges as being positive
unate.

When the -through option is used, only the fanouts
that can be reached by going through those nodes are
returned.

When -stop_at_clocks is used, combinational clock targets may 
be returned (in addition to clock or non-clock registers 
and ports), and registers or ports that can only be reached 
by traversing through a clock target will not be returned.

The filter for the collection is a Tcl list of
wildcards, and must follow standard Tcl or
Timing Analyzer-extension substitution rules. See the help
for use_timing_analyzer_style_escaping for details.
Example Usage
set fanouts [get_fanouts $item]
foreach_in_collection fanout_keeper $fanouts {
	lappend fanout_keeper_list [get_node_info $fanout_keeper -name]
}

set fanouts_no_logic [get_fanouts $item -no_logic]
foreach_in_collection fanout_keeper $fanouts_no_logic {
	lappend fanout_keeper_list_no_logic [get_node_info $fanout_keeper -name]
}

# Using through option to find the fanout registers whose enable input is 
# connected to the signal while ignoring the inverting paths.
get_fanouts inst1 -no_logic -non_inverting_paths -through [get_pins -hierarchical *|ena]
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful