* Bug: In CellCollection::Cell_HyperNetRootNetOccurrences::progress(),
skip Nets that are inside Terminal Netlist master cells. Was done ine the locator constructor but forgotten in the progress().
This commit is contained in:
parent
86b184dd1e
commit
ea38329de1
|
@ -4694,7 +4694,8 @@ Cell_HyperNetRootNetOccurrences::Locator::Locator(const Cell* cell, Path path)
|
||||||
while (not _hyperNetRootNetOccurrenceLocator.isValid() and _instanceLocator.isValid())
|
while (not _hyperNetRootNetOccurrenceLocator.isValid() and _instanceLocator.isValid())
|
||||||
{
|
{
|
||||||
Instance* instance = _instanceLocator.getElement();
|
Instance* instance = _instanceLocator.getElement();
|
||||||
_hyperNetRootNetOccurrenceLocator=Locator(instance->getMasterCell(),Path(_path,instance));
|
if (not instance->isTerminalNetlist())
|
||||||
|
_hyperNetRootNetOccurrenceLocator=Locator(instance->getMasterCell(),Path(_path,instance));
|
||||||
_instanceLocator.progress();
|
_instanceLocator.progress();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,15 +120,17 @@ class HyperNet_NetOccurrencesUnder : public Collection<Occurrence> {
|
||||||
public: typedef Hurricane::Locator<Occurrence> Inherit;
|
public: typedef Hurricane::Locator<Occurrence> Inherit;
|
||||||
|
|
||||||
private: const HyperNet* _hyperNet;
|
private: const HyperNet* _hyperNet;
|
||||||
private: Box _area;
|
private: Box _area;
|
||||||
private: bool _doExtraction;
|
private: bool _doExtraction;
|
||||||
private: bool _allowInterruption;
|
private: bool _allowInterruption;
|
||||||
private: set<Occurrence> _netOccurrenceSet;
|
private: set<Occurrence> _netOccurrenceSet;
|
||||||
private: stack<Occurrence> _netOccurrenceStack;
|
private: stack<Occurrence> _netOccurrenceStack;
|
||||||
|
|
||||||
public: Locator();
|
public: Locator();
|
||||||
public: Locator(const HyperNet* hyperNet, Box area,
|
public: Locator(const HyperNet* hyperNet
|
||||||
bool doExtraction = false, bool allowInterruption = false);
|
, Box area
|
||||||
|
, bool doExtraction = false
|
||||||
|
, bool allowInterruption = false);
|
||||||
public: Locator(const Locator& locator);
|
public: Locator(const Locator& locator);
|
||||||
|
|
||||||
public: Locator& operator=(const Locator& locator);
|
public: Locator& operator=(const Locator& locator);
|
||||||
|
@ -148,7 +150,7 @@ class HyperNet_NetOccurrencesUnder : public Collection<Occurrence> {
|
||||||
// **********
|
// **********
|
||||||
|
|
||||||
private: const HyperNet* _hyperNet;
|
private: const HyperNet* _hyperNet;
|
||||||
private: Box _area;
|
private: Box _area;
|
||||||
private: bool _doExtraction;
|
private: bool _doExtraction;
|
||||||
private: bool _allowInterruption;
|
private: bool _allowInterruption;
|
||||||
|
|
||||||
|
|
|
@ -105,6 +105,19 @@ bool Occurrence::operator<(const Occurrence& occurrence) const
|
||||||
// ((_entity == occurrence._entity) and (_sharedPath < occurrence._sharedPath)));
|
// ((_entity == occurrence._entity) and (_sharedPath < occurrence._sharedPath)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Occurrence::isBelowTerminalNetlist() const
|
||||||
|
// ********************************************
|
||||||
|
{
|
||||||
|
SharedPath* tail = _sharedPath;
|
||||||
|
while ( tail ) {
|
||||||
|
Instance* instance = tail->getHeadInstance();
|
||||||
|
tail = tail->getTailSharedPath();
|
||||||
|
|
||||||
|
if (tail and instance->isTerminalNetlist()) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
Cell* Occurrence::getOwnerCell() const
|
Cell* Occurrence::getOwnerCell() const
|
||||||
// **********************************
|
// **********************************
|
||||||
{
|
{
|
||||||
|
|
|
@ -79,6 +79,7 @@ class Occurrence {
|
||||||
// **********
|
// **********
|
||||||
|
|
||||||
public: bool isValid() const {return (_entity != NULL);};
|
public: bool isValid() const {return (_entity != NULL);};
|
||||||
|
public: bool isBelowTerminalNetlist() const;
|
||||||
public: bool hasProperty() const;
|
public: bool hasProperty() const;
|
||||||
|
|
||||||
// Updators
|
// Updators
|
||||||
|
|
Loading…
Reference in New Issue