write_spice cap order

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2024-05-31 10:41:37 -07:00
parent 14344c9969
commit 89f82a825c
1 changed files with 21 additions and 21 deletions

View File

@ -605,6 +605,27 @@ WriteSpice::writeParasiticNetwork(const Pin *drvr_pin,
}
delete pin_iter;
// Sort nodes for consistent regression results.
ParasiticNodeSeq nodes = parasitics_->nodes(parasitic);
sort(nodes.begin(), nodes.end(),
[=] (const ParasiticNode *node1,
const ParasiticNode *node2) {
const char *name1 = parasitics_->name(node1);
const char *name2 = parasitics_->name(node2);
return stringLess(name1, name2);
});
for (ParasiticNode *node : nodes) {
float cap = parasitics_->nodeGndCap(node);
// Spice has a cow over zero value caps.
if (cap > 0.0) {
streamPrint(spice_stream_, "C%d %s 0 %.3e\n",
cap_index_++,
nodeName(node),
cap);
}
}
// Sort coupling capacitors consistent regression results.
ParasiticCapacitorSeq capacitors = parasitics_->capacitors(parasitic);
sort(capacitors.begin(), capacitors.end(),
@ -636,27 +657,6 @@ WriteSpice::writeParasiticNetwork(const Pin *drvr_pin,
coupling_name,
cap);
}
// Sort nodes for consistent regression results.
ParasiticNodeSeq nodes = parasitics_->nodes(parasitic);
sort(nodes.begin(), nodes.end(),
[=] (const ParasiticNode *node1,
const ParasiticNode *node2) {
const char *name1 = parasitics_->name(node1);
const char *name2 = parasitics_->name(node2);
return stringLess(name1, name2);
});
for (ParasiticNode *node : nodes) {
float cap = parasitics_->nodeGndCap(node);
// Spice has a cow over zero value caps.
if (cap > 0.0) {
streamPrint(spice_stream_, "C%d %s 0 %.3e\n",
cap_index_++,
nodeName(node),
cap);
}
}
}
Net *