Bug fix, reset Cell flags after unrouting an analog design.
* Bug: In Bora::SlicingNode::clearGlobalRouting(), as we are unrouting the cell, the flags set up by Katana must be reset. The Cell is no longer "Terminal" and it's nets are "Un-flattened".
This commit is contained in:
parent
bd4ace7cc8
commit
dc25159cd6
|
@ -1508,7 +1508,10 @@ namespace Anabatic {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rps.size() < 2) return;
|
if (rps.size() < 2) {
|
||||||
|
cdebug_tabw(112,-1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for ( auto rp : rps ) {
|
for ( auto rp : rps ) {
|
||||||
if (not _anabatic->getConfiguration()->selectRpComponent(rp))
|
if (not _anabatic->getConfiguration()->selectRpComponent(rp))
|
||||||
|
|
|
@ -698,6 +698,9 @@ namespace Bora {
|
||||||
for ( RoutingPad* rp : net->getRoutingPads() ) rps.push_back( rp );
|
for ( RoutingPad* rp : net->getRoutingPads() ) rps.push_back( rp );
|
||||||
for ( RoutingPad* rp : rps ) rp->destroy();
|
for ( RoutingPad* rp : rps ) rp->destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_cell->getFlags().reset( Cell::Flags::FlattenedNets|Cell::Flags::Routed );
|
||||||
|
_cell->setTerminalNetlist( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -875,7 +875,7 @@ void Cell::flattenNets ( const Instance* instance, uint64_t flags )
|
||||||
Net* net = static_cast<Net*>(topHyperNets[i].getNetOccurrence().getEntity());
|
Net* net = static_cast<Net*>(topHyperNets[i].getNetOccurrence().getEntity());
|
||||||
|
|
||||||
DebugSession::open( net, 18, 19 );
|
DebugSession::open( net, 18, 19 );
|
||||||
cdebug_log(18,1) << "Flattening top: " << net << endl;
|
cdebug_log(18,1) << "Flattening top net: " << net << endl;
|
||||||
|
|
||||||
vector<Occurrence> plugOccurrences;
|
vector<Occurrence> plugOccurrences;
|
||||||
for ( Occurrence plugOccurrence : topHyperNets[i].getTerminalNetlistPlugOccurrences() )
|
for ( Occurrence plugOccurrence : topHyperNets[i].getTerminalNetlistPlugOccurrences() )
|
||||||
|
|
|
@ -411,6 +411,7 @@ class Cell : public Entity {
|
||||||
public: string getHierarchicalName() const;
|
public: string getHierarchicalName() const;
|
||||||
public: const Name& getName() const {return _name;};
|
public: const Name& getName() const {return _name;};
|
||||||
public: const Flags& getFlags() const { return _flags; }
|
public: const Flags& getFlags() const { return _flags; }
|
||||||
|
public: Flags& getFlags() { return _flags; }
|
||||||
public: Path getShuntedPath() const { return _shuntedPath; }
|
public: Path getShuntedPath() const { return _shuntedPath; }
|
||||||
public: Entity* getEntity(const Signature&) const;
|
public: Entity* getEntity(const Signature&) const;
|
||||||
public: Instance* getInstance(const Name& name) const {return _instanceMap.getElement(name);};
|
public: Instance* getInstance(const Name& name) const {return _instanceMap.getElement(name);};
|
||||||
|
|
Loading…
Reference in New Issue