diff --git a/kernel/rtlil.h b/kernel/rtlil.h index 74ded6a55..cf146f786 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -2119,6 +2119,7 @@ public: pool pending_deleted_cells; dict> buf_norm_connect_index; void bufNormalize(); + void dump_sigmap(); protected: SigNormIndex *sig_norm_index = nullptr; diff --git a/kernel/rtlil_bufnorm.cc b/kernel/rtlil_bufnorm.cc index 78f99731f..182e159b2 100644 --- a/kernel/rtlil_bufnorm.cc +++ b/kernel/rtlil_bufnorm.cc @@ -55,6 +55,19 @@ struct RTLIL::SigNormIndex setup_fanout(); } + void dump_sigmap() { + for (auto [name, wire] : module->wires_) { + log_debug("wire %s %p %s\n", name, wire, wire->name); + SigSpec ss(wire); + log_debug("ss %s\n", log_signal(ss)); + sigmap(ss); + log_debug("sigmapped %s\n", log_signal(ss)); + } + for (auto [lhs, rhs] : module->connections_) { + log_debug("connection %s %s\n", log_signal(lhs), log_signal(rhs)); + } + } + void normalize() { flush_connections(); flush_newly_driven(); @@ -346,6 +359,12 @@ void RTLIL::Module::sigNormalize() } +void RTLIL::Module::dump_sigmap() +{ + if (sig_norm_index != nullptr) + sig_norm_index->dump_sigmap(); +} + void RTLIL::Module::clear_sig_norm_index() { if (sig_norm_index == nullptr)