Parasitics const

This commit is contained in:
James Cherry 2019-06-02 14:58:09 -07:00
parent 21658ed182
commit 7e0cdcc895
6 changed files with 17 additions and 14 deletions

View File

@ -494,7 +494,7 @@ ConcreteParasiticNode::addDevice(ConcreteParasiticDevice *device)
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
ConcreteParasiticSubNode::ConcreteParasiticSubNode(Net *net, ConcreteParasiticSubNode::ConcreteParasiticSubNode(const Net *net,
int id) : int id) :
ConcreteParasiticNode(), ConcreteParasiticNode(),
net_(net), net_(net),
@ -778,7 +778,7 @@ ConcreteParasiticNetwork::capacitance() const
} }
ConcreteParasiticNode * ConcreteParasiticNode *
ConcreteParasiticNetwork::ensureParasiticNode(Net *net, ConcreteParasiticNetwork::ensureParasiticNode(const Net *net,
int id) int id)
{ {
NetId net_id(net, id); NetId net_id(net, id);
@ -833,8 +833,8 @@ bool
NetIdLess::operator()(const NetId *net_id1, NetIdLess::operator()(const NetId *net_id1,
const NetId *net_id2) const const NetId *net_id2) const
{ {
Net *net1 = net_id1->first; const Net *net1 = net_id1->first;
Net *net2 = net_id2->first; const Net *net2 = net_id2->first;
int id1 = net_id1->second; int id1 = net_id1->second;
int id2 = net_id2->second; int id2 = net_id2->second;
return net1 < net2 return net1 < net2
@ -1347,7 +1347,7 @@ ConcreteParasitics::includesPinCaps(Parasitic *parasitic) const
ParasiticNode * ParasiticNode *
ConcreteParasitics::ensureParasiticNode(Parasitic *parasitic, ConcreteParasitics::ensureParasiticNode(Parasitic *parasitic,
Net *net, const Net *net,
int id) int id)
{ {
ConcreteParasiticNetwork *cparasitic = ConcreteParasiticNetwork *cparasitic =

View File

@ -107,7 +107,8 @@ public:
virtual void deleteParasiticNetwork(const Net *net, virtual void deleteParasiticNetwork(const Net *net,
const ParasiticAnalysisPt *ap); const ParasiticAnalysisPt *ap);
virtual bool includesPinCaps(Parasitic *parasitic) const; virtual bool includesPinCaps(Parasitic *parasitic) const;
virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic, Net *net, virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic,
const Net *net,
int id); int id);
virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic, virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic,
const Pin *pin); const Pin *pin);

View File

@ -30,7 +30,7 @@ class ConcreteParasiticNode;
typedef Map<const Pin*, float> ConcreteElmoreLoadMap; typedef Map<const Pin*, float> ConcreteElmoreLoadMap;
typedef ConcreteElmoreLoadMap::Iterator ConcretePiElmoreLoadIterator; typedef ConcreteElmoreLoadMap::Iterator ConcretePiElmoreLoadIterator;
typedef Map<const Pin*, ConcretePoleResidue*> ConcretePoleResidueMap; typedef Map<const Pin*, ConcretePoleResidue*> ConcretePoleResidueMap;
typedef std::pair<Net*, int> NetId; typedef std::pair<const Net*, int> NetId;
struct NetIdLess struct NetIdLess
{ {
bool operator()(const NetId *net_id1, bool operator()(const NetId *net_id1,
@ -253,12 +253,12 @@ protected:
class ConcreteParasiticSubNode : public ConcreteParasiticNode class ConcreteParasiticSubNode : public ConcreteParasiticNode
{ {
public: public:
ConcreteParasiticSubNode(Net *net, ConcreteParasiticSubNode(const Net *net,
int id); int id);
virtual const char *name(const Network *network) const; virtual const char *name(const Network *network) const;
private: private:
Net *net_; const Net *net_;
int id_; int id_;
}; };
@ -420,14 +420,15 @@ public:
virtual ~ConcreteParasiticNetwork(); virtual ~ConcreteParasiticNetwork();
virtual bool isParasiticNetwork() const { return true; } virtual bool isParasiticNetwork() const { return true; }
bool includesPinCaps() const { return includes_pin_caps_; } bool includesPinCaps() const { return includes_pin_caps_; }
ConcreteParasiticNode *ensureParasiticNode(Net *net, ConcreteParasiticNode *ensureParasiticNode(const Net *net,
int id); int id);
ConcreteParasiticNode *findNode(const Pin *pin); ConcreteParasiticNode *findNode(const Pin *pin);
ConcreteParasiticNode *ensureParasiticNode(const Pin *pin); ConcreteParasiticNode *ensureParasiticNode(const Pin *pin);
virtual float capacitance() const; virtual float capacitance() const;
ConcreteParasiticPinNodeMap *pinNodes() { return &pin_nodes_; } ConcreteParasiticPinNodeMap *pinNodes() { return &pin_nodes_; }
ConcreteParasiticSubNodeMap *subNodes() { return &sub_nodes_; } ConcreteParasiticSubNodeMap *subNodes() { return &sub_nodes_; }
void disconnectPin(const Pin *pin, Net *net); void disconnectPin(const Pin *pin,
Net *net);
virtual ParasiticDeviceIterator *deviceIterator(); virtual ParasiticDeviceIterator *deviceIterator();
virtual ParasiticNodeIterator *nodeIterator(); virtual ParasiticNodeIterator *nodeIterator();
virtual void devices(// Return value. virtual void devices(// Return value.

View File

@ -248,7 +248,7 @@ NullParasitics::deleteParasiticNetwork(const Net *,
ParasiticNode * ParasiticNode *
NullParasitics::ensureParasiticNode(Parasitic *, NullParasitics::ensureParasiticNode(Parasitic *,
Net *, const Net *,
int) int)
{ {
return nullptr; return nullptr;

View File

@ -99,7 +99,8 @@ public:
virtual void deleteParasiticNetwork(const Net *net, virtual void deleteParasiticNetwork(const Net *net,
const ParasiticAnalysisPt *ap); const ParasiticAnalysisPt *ap);
virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic, virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic,
Net *net, int id); const Net *net,
int id);
virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic, virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic,
const Pin *pin); const Pin *pin);
virtual void incrCap(ParasiticNode *node, float cap, virtual void incrCap(ParasiticNode *node, float cap,

View File

@ -161,7 +161,7 @@ public:
// Parasitic network component builders. // Parasitic network component builders.
// Make a subnode of the parasitic network net. // Make a subnode of the parasitic network net.
virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic, virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic,
Net *net, const Net *net,
int id) = 0; int id) = 0;
// Make a subnode of the parasitic network net connected to pin. // Make a subnode of the parasitic network net connected to pin.
virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic, virtual ParasiticNode *ensureParasiticNode(Parasitic *parasitic,