Product Documentation
Virtuoso ADE SKILL Reference
Product Version IC23.1, November 2023

ansCdlGetSegmentConnections

ansCdlGetSegmentConnections( 
S_inst 
l_connectionPairs 
n_iterSeg 
n_iterMult 
n_numSegments 
n_multiplicityFactor 
t_segmentConnType 
n_netCount 
)

Description

This function is used to customize the auCdl netlist when the ansCdlHnlPrintInst function is specified as a netlist procedure in the CDF for the device. It controls how connectivity information is written in the netlist for instances for which a multiplicity factor is specified using the m or M property. For example, if an instance with a connection list like ((termA netA) (termB netB)) has to be converted into two segments connected in series, the modified connection list for the first segment will be ((termA netA) (termB tempnet_0)) and ((termA tempnet_0) (termB netB)) for the second segment. Define this function as a procedure in the .simrc file.

Arguments

S_inst

Database ID of original instance.

l_connectionPairs

List of pairs of instance terminals and nets connected to the terminals of the instance.

n_iterSeg

If current replication needs to be converted into 3 segments connected in series or parallel, then this function is called for which iteration is from 1- 3.

n_iterMult

If the current instance needs to be converted into 5 instances connected in parallel, then this function is called for which iteration is from 1 - 5.

n_numSegments

Number of segments in each replication of the instance.

n_multiplicityFactor

Number of replications of the instance.

t_segmentConnType

Connection type of the segments.

Valid values: "series" or "parallel" or any other user defined value.

n_netCount

A number that keeps on incrementing with calls to this function. This will help you create temporary nets to connect segments in series.

Value Returned

None

Examples

procedure( ansCdlGetSegmentConnections( inst connectionPairs iterSeg iterMult numSegments multiplicityFactor segmentConnType netCount  )
    let( ( firstTerm secondTerm pairList )
    if( "series" == segmentConnType
     then
cond(
( (1 == iterSeg )
secondTerm = cadr( connectionPairs )
secondTerm = list( car(secondTerm) sprintf( nil "CdnsNet_%d"
netCount) )
pairList = list( car(connectionPairs) secondTerm )
pairList = append( pairList cddr(connectionPairs) )
)
( ( iterSeg == numSegments )
firstTerm = car(connectionPairs)
firstTerm = list( car(firstTerm) sprintf(nil "%s_%d" "CdnsNet"
netCount-1 ) )
pairList = append( list(firstTerm) cdr(connectionPairs))
)
(t
firstTerm = car(connectionPairs)
secondTerm = cadr(connectionPairs)
firstTerm = list( car(firstTerm) sprintf(nil "CdnsNet_%d"
netCount-1) )
secondTerm = list( car(secondTerm) sprintf(nil "CdnsNet_%d"
netCount ) )
pairList = append1( list(firstTerm) secondTerm )
pairList = append( pairList cddr(connectionPairs))
)
)
else
pairList = connectionPairs
)
pairList
)
)

Related Topics

ansCdlGetMultiplicity

ansCdlGetSegmentInfo


Return to top
 ⠀
X