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:
Jean-Paul Chaput 2020-04-30 00:38:32 +02:00
parent bd4ace7cc8
commit dc25159cd6
4 changed files with 9 additions and 2 deletions

View File

@ -1508,7 +1508,10 @@ namespace Anabatic {
}
}
if (rps.size() < 2) return;
if (rps.size() < 2) {
cdebug_tabw(112,-1);
return;
}
for ( auto rp : rps ) {
if (not _anabatic->getConfiguration()->selectRpComponent(rp))

View File

@ -698,6 +698,9 @@ namespace Bora {
for ( RoutingPad* rp : net->getRoutingPads() ) rps.push_back( rp );
for ( RoutingPad* rp : rps ) rp->destroy();
}
_cell->getFlags().reset( Cell::Flags::FlattenedNets|Cell::Flags::Routed );
_cell->setTerminalNetlist( false );
}

View File

@ -875,7 +875,7 @@ void Cell::flattenNets ( const Instance* instance, uint64_t flags )
Net* net = static_cast<Net*>(topHyperNets[i].getNetOccurrence().getEntity());
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;
for ( Occurrence plugOccurrence : topHyperNets[i].getTerminalNetlistPlugOccurrences() )

View File

@ -411,6 +411,7 @@ class Cell : public Entity {
public: string getHierarchicalName() const;
public: const Name& getName() const {return _name;};
public: const Flags& getFlags() const { return _flags; }
public: Flags& getFlags() { return _flags; }
public: Path getShuntedPath() const { return _shuntedPath; }
public: Entity* getEntity(const Signature&) const;
public: Instance* getInstance(const Name& name) const {return _instanceMap.getElement(name);};