diff --git a/kernel/rtlil.h b/kernel/rtlil.h index 827e3972b..992839f85 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -3079,6 +3079,8 @@ public: const pool &fanout(SigBit bit); const dict> &signorm_fanout() const; + bool signorm_indexed() const { return sig_norm_index != nullptr; } + const SigMap *signorm_sigmap(); // Equivalent to `connect(lhs, rhs)` followed by `sigNormalize()` for the diff --git a/passes/cmds/check.cc b/passes/cmds/check.cc index 128220f1c..d7d3f821f 100644 --- a/passes/cmds/check.cc +++ b/passes/cmds/check.cc @@ -31,7 +31,7 @@ PRIVATE_NAMESPACE_BEGIN int check_bufnorm_cell(RTLIL::Module *module, RTLIL::Cell *cell) { bool bufnorm = module->design->flagBufferedNormalized; - bool signorm = module->design->flagSigNormalized; + bool signorm = module->design->flagSigNormalized && module->signorm_indexed(); if (!bufnorm && !signorm) return 0; @@ -102,7 +102,7 @@ int check_bufnorm_wire(RTLIL::Module *module, RTLIL::Wire *wire) int check_signorm_fanout(RTLIL::Module *module) { - if (!module->design->flagSigNormalized) + if (!module->design->flagSigNormalized || !module->signorm_indexed()) return 0; int counter = 0;