OR-1465) write verilog module sort
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
b25b2a77e7
commit
3992c34aee
|
|
@ -69,7 +69,7 @@ protected:
|
||||||
Network *network_;
|
Network *network_;
|
||||||
|
|
||||||
Set<Cell*> written_cells_;
|
Set<Cell*> written_cells_;
|
||||||
Set<Instance*> pending_children_;
|
Vector<Instance*> pending_children_;
|
||||||
int unconnected_net_index_;
|
int unconnected_net_index_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -128,6 +128,11 @@ VerilogWriter::writeModule(Instance *inst)
|
||||||
fprintf(stream_, "endmodule\n");
|
fprintf(stream_, "endmodule\n");
|
||||||
written_cells_.insert(cell);
|
written_cells_.insert(cell);
|
||||||
|
|
||||||
|
if (sort_)
|
||||||
|
sort(pending_children_, [this](const Instance *inst1,
|
||||||
|
const Instance *inst2) {
|
||||||
|
return stringLess(network_->cellName(inst1), network_->cellName(inst2));
|
||||||
|
});
|
||||||
for (auto child : pending_children_) {
|
for (auto child : pending_children_) {
|
||||||
Cell *child_cell = network_->cell(child);
|
Cell *child_cell = network_->cell(child);
|
||||||
if (!written_cells_.hasKey(child_cell))
|
if (!written_cells_.hasKey(child_cell))
|
||||||
|
|
@ -257,13 +262,17 @@ VerilogWriter::writeChildren(Instance *inst)
|
||||||
while (child_iter->hasNext()) {
|
while (child_iter->hasNext()) {
|
||||||
Instance *child = child_iter->next();
|
Instance *child = child_iter->next();
|
||||||
children.push_back(child);
|
children.push_back(child);
|
||||||
if (network_->isHierarchical(child))
|
if (network_->isHierarchical(child)) {
|
||||||
pending_children_.insert(child);
|
pending_children_.push_back(child);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
delete child_iter;
|
delete child_iter;
|
||||||
|
|
||||||
if (sort_)
|
if (sort_)
|
||||||
sort(children, InstancePathNameLess(network_));
|
sort(children, [this](const Instance *inst1,
|
||||||
|
const Instance *inst2) {
|
||||||
|
return stringLess(network_->name(inst1), network_->name(inst2));
|
||||||
|
});
|
||||||
|
|
||||||
for (auto child : children)
|
for (auto child : children)
|
||||||
writeChild(child);
|
writeChild(child);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue