parastics const
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
54a9a48f5c
commit
be4b2f0139
|
|
@ -101,8 +101,8 @@ public:
|
||||||
makeParasiticNetwork(const Net *net,
|
makeParasiticNetwork(const Net *net,
|
||||||
bool pin_cap_included,
|
bool pin_cap_included,
|
||||||
const ParasiticAnalysisPt *ap);
|
const ParasiticAnalysisPt *ap);
|
||||||
virtual ParasiticDeviceIterator *deviceIterator(Parasitic *) { return nullptr; }
|
virtual ParasiticDeviceIterator *deviceIterator(const Parasitic *) { return nullptr; }
|
||||||
virtual ParasiticNodeIterator *nodeIterator(Parasitic *) { return nullptr; }
|
virtual ParasiticNodeIterator *nodeIterator(const Parasitic *) { return nullptr; }
|
||||||
virtual bool includesPinCaps(const Parasitic *parasitic) const;
|
virtual bool includesPinCaps(const Parasitic *parasitic) const;
|
||||||
virtual void deleteParasiticNetwork(const Net *net,
|
virtual void deleteParasiticNetwork(const Net *net,
|
||||||
const ParasiticAnalysisPt *ap);
|
const ParasiticAnalysisPt *ap);
|
||||||
|
|
|
||||||
|
|
@ -153,8 +153,8 @@ public:
|
||||||
virtual Parasitic *makeParasiticNetwork(const Net *net,
|
virtual Parasitic *makeParasiticNetwork(const Net *net,
|
||||||
bool includes_pin_caps,
|
bool includes_pin_caps,
|
||||||
const ParasiticAnalysisPt *ap) = 0;
|
const ParasiticAnalysisPt *ap) = 0;
|
||||||
virtual ParasiticDeviceIterator *deviceIterator(Parasitic *parasitic) = 0;
|
virtual ParasiticDeviceIterator *deviceIterator(const Parasitic *parasitic) = 0;
|
||||||
virtual ParasiticNodeIterator *nodeIterator(Parasitic *parasitic) = 0;
|
virtual ParasiticNodeIterator *nodeIterator(const Parasitic *parasitic) = 0;
|
||||||
// Delete parasitic network if it exists.
|
// Delete parasitic network if it exists.
|
||||||
virtual void deleteParasiticNetwork(const Net *net,
|
virtual void deleteParasiticNetwork(const Net *net,
|
||||||
const ParasiticAnalysisPt *ap) = 0;
|
const ParasiticAnalysisPt *ap) = 0;
|
||||||
|
|
|
||||||
|
|
@ -131,13 +131,13 @@ ConcreteParasitic::setPoleResidue(const Pin *,
|
||||||
}
|
}
|
||||||
|
|
||||||
ParasiticDeviceIterator *
|
ParasiticDeviceIterator *
|
||||||
ConcreteParasitic::deviceIterator()
|
ConcreteParasitic::deviceIterator() const
|
||||||
{
|
{
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
ParasiticNodeIterator *
|
ParasiticNodeIterator *
|
||||||
ConcreteParasitic::nodeIterator()
|
ConcreteParasitic::nodeIterator() const
|
||||||
{
|
{
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
@ -688,15 +688,15 @@ ConcreteParasiticNetwork::deleteDevices()
|
||||||
}
|
}
|
||||||
|
|
||||||
ParasiticNodeIterator *
|
ParasiticNodeIterator *
|
||||||
ConcreteParasiticNetwork::nodeIterator()
|
ConcreteParasiticNetwork::nodeIterator() const
|
||||||
{
|
{
|
||||||
ConcreteParasiticNodeSeq *nodes = new ConcreteParasiticNodeSeq();
|
ConcreteParasiticNodeSeq *nodes = new ConcreteParasiticNodeSeq();
|
||||||
ConcreteParasiticPinNodeMap::Iterator node_iter2(pin_nodes_);
|
ConcreteParasiticPinNodeMap::ConstIterator node_iter2(pin_nodes_);
|
||||||
while (node_iter2.hasNext()) {
|
while (node_iter2.hasNext()) {
|
||||||
ConcreteParasiticPinNode *node = node_iter2.next();
|
ConcreteParasiticPinNode *node = node_iter2.next();
|
||||||
nodes->push_back(node);
|
nodes->push_back(node);
|
||||||
}
|
}
|
||||||
ConcreteParasiticSubNodeMap::Iterator node_iter1(sub_nodes_);
|
ConcreteParasiticSubNodeMap::ConstIterator node_iter1(sub_nodes_);
|
||||||
while (node_iter1.hasNext()) {
|
while (node_iter1.hasNext()) {
|
||||||
ConcreteParasiticSubNode *node = node_iter1.next();
|
ConcreteParasiticSubNode *node = node_iter1.next();
|
||||||
nodes->push_back(node);
|
nodes->push_back(node);
|
||||||
|
|
@ -705,7 +705,7 @@ ConcreteParasiticNetwork::nodeIterator()
|
||||||
}
|
}
|
||||||
|
|
||||||
ParasiticDeviceIterator *
|
ParasiticDeviceIterator *
|
||||||
ConcreteParasiticNetwork::deviceIterator()
|
ConcreteParasiticNetwork::deviceIterator() const
|
||||||
{
|
{
|
||||||
ConcreteParasiticDeviceSet *devices1 = new ConcreteParasiticDeviceSet();
|
ConcreteParasiticDeviceSet *devices1 = new ConcreteParasiticDeviceSet();
|
||||||
devices(devices1);
|
devices(devices1);
|
||||||
|
|
@ -713,11 +713,11 @@ ConcreteParasiticNetwork::deviceIterator()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ConcreteParasiticNetwork::devices(ConcreteParasiticDeviceSet *devices)
|
ConcreteParasiticNetwork::devices(ConcreteParasiticDeviceSet *devices) const
|
||||||
{
|
{
|
||||||
// Collect devices into a set so they are only deleted once
|
// Collect devices into a set so they are only deleted once
|
||||||
// because multiple sub-nodes or pin nodes can refer to them.
|
// because multiple sub-nodes or pin nodes can refer to them.
|
||||||
ConcreteParasiticSubNodeMap::Iterator node_iter1(sub_nodes_);
|
ConcreteParasiticSubNodeMap::ConstIterator node_iter1(sub_nodes_);
|
||||||
while (node_iter1.hasNext()) {
|
while (node_iter1.hasNext()) {
|
||||||
ConcreteParasiticSubNode *node = node_iter1.next();
|
ConcreteParasiticSubNode *node = node_iter1.next();
|
||||||
ConcreteParasiticDeviceSeq::Iterator device_iter(node->devices());
|
ConcreteParasiticDeviceSeq::Iterator device_iter(node->devices());
|
||||||
|
|
@ -727,10 +727,10 @@ ConcreteParasiticNetwork::devices(ConcreteParasiticDeviceSet *devices)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ConcreteParasiticPinNodeMap::Iterator node_iter2(pin_nodes_);
|
ConcreteParasiticPinNodeMap::ConstIterator node_iter2(pin_nodes_);
|
||||||
while (node_iter2.hasNext()) {
|
while (node_iter2.hasNext()) {
|
||||||
ConcreteParasiticPinNode *node = node_iter2.next();
|
ConcreteParasiticPinNode *node = node_iter2.next();
|
||||||
ConcreteParasiticDeviceSeq::Iterator device_iter(node->devices());
|
ConcreteParasiticDeviceSeq::ConstIterator device_iter(node->devices());
|
||||||
while (device_iter.hasNext()) {
|
while (device_iter.hasNext()) {
|
||||||
ConcreteParasiticDevice *device = device_iter.next();
|
ConcreteParasiticDevice *device = device_iter.next();
|
||||||
devices->insert(device);
|
devices->insert(device);
|
||||||
|
|
@ -1468,16 +1468,16 @@ ConcreteParasitics::makeResistor(const char *name,
|
||||||
}
|
}
|
||||||
|
|
||||||
ParasiticDeviceIterator *
|
ParasiticDeviceIterator *
|
||||||
ConcreteParasitics::deviceIterator(Parasitic *parasitic)
|
ConcreteParasitics::deviceIterator(const Parasitic *parasitic)
|
||||||
{
|
{
|
||||||
ConcreteParasitic *cparasitic = static_cast<ConcreteParasitic*>(parasitic);
|
const ConcreteParasitic *cparasitic = static_cast<const ConcreteParasitic*>(parasitic);
|
||||||
return cparasitic->deviceIterator();
|
return cparasitic->deviceIterator();
|
||||||
}
|
}
|
||||||
|
|
||||||
ParasiticNodeIterator *
|
ParasiticNodeIterator *
|
||||||
ConcreteParasitics::nodeIterator(Parasitic *parasitic)
|
ConcreteParasitics::nodeIterator(const Parasitic *parasitic)
|
||||||
{
|
{
|
||||||
ConcreteParasitic *cparasitic = static_cast<ConcreteParasitic*>(parasitic);
|
const ConcreteParasitic *cparasitic = static_cast<const ConcreteParasitic*>(parasitic);
|
||||||
return cparasitic->nodeIterator();
|
return cparasitic->nodeIterator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -142,8 +142,8 @@ public:
|
||||||
virtual void makeResistor(const char *name, ParasiticNode *node1,
|
virtual void makeResistor(const char *name, ParasiticNode *node1,
|
||||||
ParasiticNode *node2,
|
ParasiticNode *node2,
|
||||||
float res, const ParasiticAnalysisPt *ap);
|
float res, const ParasiticAnalysisPt *ap);
|
||||||
virtual ParasiticDeviceIterator *deviceIterator(Parasitic *parasitic);
|
virtual ParasiticDeviceIterator *deviceIterator(const Parasitic *parasitic);
|
||||||
virtual ParasiticNodeIterator *nodeIterator(Parasitic *parasitic);
|
virtual ParasiticNodeIterator *nodeIterator(const Parasitic *parasitic);
|
||||||
|
|
||||||
virtual const char *name(const ParasiticNode *node);
|
virtual const char *name(const ParasiticNode *node);
|
||||||
virtual const Pin *connectionPin(const ParasiticNode *node) const;
|
virtual const Pin *connectionPin(const ParasiticNode *node) const;
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,8 @@ public:
|
||||||
virtual void setPoleResidue(const Pin *load_pin,
|
virtual void setPoleResidue(const Pin *load_pin,
|
||||||
ComplexFloatSeq *poles,
|
ComplexFloatSeq *poles,
|
||||||
ComplexFloatSeq *residues);
|
ComplexFloatSeq *residues);
|
||||||
virtual ParasiticDeviceIterator *deviceIterator();
|
virtual ParasiticDeviceIterator *deviceIterator() const;
|
||||||
virtual ParasiticNodeIterator *nodeIterator();
|
virtual ParasiticNodeIterator *nodeIterator() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Pi model for a driver pin.
|
// Pi model for a driver pin.
|
||||||
|
|
@ -414,10 +414,10 @@ public:
|
||||||
ConcreteParasiticSubNodeMap *subNodes() { return &sub_nodes_; }
|
ConcreteParasiticSubNodeMap *subNodes() { return &sub_nodes_; }
|
||||||
void disconnectPin(const Pin *pin,
|
void disconnectPin(const Pin *pin,
|
||||||
const Net *net);
|
const Net *net);
|
||||||
virtual ParasiticDeviceIterator *deviceIterator();
|
virtual ParasiticDeviceIterator *deviceIterator() const;
|
||||||
virtual ParasiticNodeIterator *nodeIterator();
|
virtual ParasiticNodeIterator *nodeIterator() const;
|
||||||
virtual void devices(// Return value.
|
virtual void devices(// Return value.
|
||||||
ConcreteParasiticDeviceSet *devices);
|
ConcreteParasiticDeviceSet *devices) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void deleteNodes();
|
void deleteNodes();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue