[SCANCHAINS numScanChains ;
[- chainName
[+ PARTITION partitionName [ MAXBITS maxBits ]]
[+ COMMONSCANPINS [( IN pin )] [( OUT pin )]]
+ START {fixedInComp | PIN} [outPin]
[+ FLOATING {floatingComp [(IN pin)] [(OUT pin)] [( BITS numBits )]} ...]
[+ ORDERED {fixedComp [( IN pin )] [( OUT pin )] [( BITS numBits )]} ...] ...
+ STOP {fixedOutComp | PIN} [inPin]
;] ...
END SCANCHAINS]
Defines scan chains in the design.
This information corresponds to the number of oaScanChain objects in the design.
You iterate over all oaScanChain objects in the design to get the information for each scanChain:
oaIter<oaScanChain>::oaIter<oaScanChain>(const oaBaseCollection &coll) oaScanChain *oaIter<oaScanChain>::getNext()
chainName is the name of the oaScanChain and is obtained using:
void oaScanChain::getName(oaString &name) const
partitionName corresponds to the partition name attribute of an oaScanChain object. maxBits corresponds to the maximum number of bits that can be stored on the oaScanChain object. The informations is retrieved using the following API:
void oaScanChain::getPartitionName(oaString &name) const oaUInt4 oaScanChain::getMaxBits() const
This information is not stored in the OpenAccess database. Instead, unspecified pin names are resolved in the translator.
This information corresponds to the starting object in the scanChain, which can be a terminal or an instTerm object. In the case of a terminal, outPin is the terminal name. When the starting object is an oaInstTerm, fixedInComp is the instance name and outPin is the terminal name for the oaInstTerm. Use the following API to obtain this information:
oaDBObject *oaScanChain::getStartObject() const
void oaTerm::getName(const oaNameSpace &ns,
oaString &name) const
oaInst *oaInstTerm::getInst()
void oaInst::getName(const oaNameSpace &ns,
oaString &name) const
void oaInstTerm::getTermName(const oaNameSpace &ns,
oaString &name) const
This information corresponds to the unordered oaScanChainSet objects that are associated with the oaScanChain. The oaScanChainSet objects contain oaScanChainInst objects, and each oaScanChainInst is associated with an instance, an input oaInstTerm, an output oaInstTerm, and has a sequential bit length attribute. You use the following API to get the values:
oaCollection oaScanChain::getScanChainSets(oaUInt4 flag =
oacOrderedScanChainSetType ) const
oaIter<oaScanChainSet>::oaIter<oaScanChainSet>(const oaBaseCollection
&coll)
oaScanChainSet *oaIter<oaScanChainSet>::getNext()
oaCollection oaScanChainSet::getInstances() const
oaIter<oaScanChainInst>::oaIter<oaScanChainInst>(const oaBaseCollection
&coll)
oaScanChainInst *oaIter<oaScanChainInst>::getNext()
oaInst *oaScanChainInst::getInstance() const
void oaInst::getName(const oaNameSpace &ns, oaString &name) const
oaInstTerm *oaScanChainInst::getInInstTerm() const
oaInstTerm *oaScanChainInst::getOutInstTerm() const
void oaInstTerm::getTermName(const oaNameSpace &ns,
oaString &name ) const
oaUInt4 oaScanChainInst::getSeqBitLength() const
This information corresponds to the ordered oaScanChainSet objects associated with the oaScanChain. The oaScanChainSet objects contain oaScanChainInst objects, and each scanChainInst is associated with an instance, an input instTerm, an output instTerm, and has a sequential bit length attribute. You use the same API you use to get the FLOATING construct information:
oaCollection oaScanChain::getScanChainSets(oaUInt4 flag = oacOrderedScanChainSetType ) const
oaIter<oaScanChainSet>::oaIter<oaScanChainSet>(const oaBaseCollection &coll)
oaScanChainSet *oaIter<oaScanChainSet>::getNext()
oaCollection oaScanChainSet::getInstances() const
oaIter<oaScanChainInst>::oaIter<oaScanChainInst>(const oaBaseCollection &coll)
oaScanChainInst *oaIter<oaScanChainInst>::getNext()
oaInst *oaScanChainInst::getInstance() const
void oaInst::getName(const oaNameSpace &ns, oaString &name) const
oaInstTerm *oaScanChainInst::getInInstTerm() const
oaInstTerm *oaScanChainInst::getOutInstTerm() const
void oaInstTerm::getTermName(const oaNameSpace &ns,
oaString &name ) const
oaUInt4 oaScanChainInst::getSeqBitLength() const
This information corresponds to the stopping object in the oaScanChain, which can be a oaTerm or an oaInstTerm object. In the case of a terminal object, inPin is the terminal name. If the stopping object is an oaInstTerm, fixedOutComp is the instance name and inPin is the terminal name associated with the oaInstTerm. You use the following API to get this information:
void *oaScanChain::getStopObject(oaDesignObject *object)
void oaTerm::getName(const oaNameSpace &ns, oaString &name) const
oaInst *oaInstTerm::getInst()
void oaInst::getName(const oaNameSpace &ns, oaString &name) const
void oaInstTerm::getTermName(const oaNameSpace &ns,
oaString &name ) const

Copyright © 2003-2008 Cadence Design Systems, Inc.
All rights reserved.