['-callback' => $funcref], ['-stop' => $listref], ['-skip' ,
$listref])
get_transitive_fanout()
uses the Synopsys shell command
report_transitive_fanout
to generate a tree of fanout paths. This command only works in pt_shell
(fixable). The base object must have only one element and be of type pin,
port, or net.
If the -callback
argument is supplied it must be a function reference. The function will be
called once per fanout path in the fanout tree. The argument to the
callback function will be a list of nodes (described below) ordered from
source to destination cell.
-stop
is an optionally included list reference where each element is a perl
regular expression. The regular expressions are used to match against cell
reference names as a stopping condition when generating the paths for the
callback. The cell that matches the stopping condition is included in the
path. This option has no effect if -callback
isn't supplied.
-skip
is an optionally included list reference where each element is a perl
regular expression. The regular expressions are used to match against cell
reference names as a skipping condition when generating the paths for the
callback. If a path contains a cell that matches a reference name in the
skip list, the path isn't included when the callbacks are made. This option
has no effect if -callback
isn't supplied.
In any case, the return value of get_transitive_fanout()
is a
two element list on success and undef on failure.
The first element of the return value is a reference to the top element of
the fanout tree. Each node in the fanout tree as well as the nodes in the
callback list are references to hashes with the following fields:
pin_in
pin_out
ref_name
sense
next
Each node represents a cell along the fanout tree. pin_in
is name of the input pin of the cell. pin_out
is the name of the output pin of the cell.
ref_name
is the reference name of the cell. sense
is the polarity of the cell. next
is a reference to a list of fanout nodes. This list will be empty at the
leaves of the tree.
The second element in the return value is the reference to the hash that
was created while creating the fanout tree. The keys of the hash are the
instance names of the cells while the values are the nodes themselves.