NAME

Synopsys::Collection::Extensions - Extra Functions for Synopsys::Collection Objects

SYNOPSIS

User defined methods

DESCRIPTION

Overview

The Synopsys::Collection::Extensions module is a place where additional functionality can be added to the Synopsys::Collection idiom.

Every Synopsys::Collection object is also a Synopsys::Collection::Extensions object so any method defined here will be properly called as a method of a Synopsys::Collection object.

Methods

get_transitive_fanout(

['-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.

Back