Skip to content

Commit

Permalink
rmports now works on all modules in the design, not just the top.
Browse files Browse the repository at this point in the history
azonenberg committed Aug 14, 2017
1 parent d5e5bba commit bd2ac68
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions passes/opt/rmports.cc
Original file line number Diff line number Diff line change
@@ -27,7 +27,7 @@ USING_YOSYS_NAMESPACE
PRIVATE_NAMESPACE_BEGIN

struct RmportsPassPass : public Pass {
RmportsPassPass() : Pass("rmports", "remove top-level ports with no connections") { }
RmportsPassPass() : Pass("rmports", "remove module ports with no connections") { }
virtual void help()
{
// |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
@@ -42,7 +42,10 @@ struct RmportsPassPass : public Pass {
virtual void execute(std::vector<std::string> /*args*/, RTLIL::Design *design)
{
log_header(design, "Executing RMPORTS pass (remove top level ports with no connections).\n");
ProcessModule(design->top_module());

auto modules = design->selected_modules();
for(auto mod : modules)
ProcessModule(mod);
}

virtual void ProcessModule(RTLIL::Module* module)
@@ -114,7 +117,7 @@ struct RmportsPassPass : public Pass {
//Print the ports out as we go through them
for(auto port : unused_ports)
{
log(" removing unused top-level port %s\n", port.c_str());
log(" removing unused port %s\n", port.c_str());

//Remove from ports list
for(size_t i=0; i<module->ports.size(); i++)
@@ -132,7 +135,7 @@ struct RmportsPassPass : public Pass {
wire->port_output = false;
wire->port_id = 0;
}
log("Removed %zu unused top-level ports.\n", unused_ports.size());
log("Removed %zu unused ports.\n", unused_ports.size());

//Re-number all of the wires that DO have ports still on them
for(size_t i=0; i<module->ports.size(); i++)

0 comments on commit bd2ac68

Please sign in to comment.