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