diff --git a/kernel/rtlil.h b/kernel/rtlil.h index 434a4eadc..c5097f97e 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -1753,6 +1753,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 536227972..788b05533 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(); @@ -345,6 +358,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)