From 55189bc65cab819fd2014b7194a49e9d1829f77d Mon Sep 17 00:00:00 2001 From: "Emil J. Tywoniak" Date: Tue, 17 Mar 2026 18:04:41 +0100 Subject: [PATCH] flatten: redo signormalization to work around fanout issue --- passes/cmds/rename.cc | 3 +++ passes/hierarchy/flatten.cc | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/passes/cmds/rename.cc b/passes/cmds/rename.cc index 078ffb769..0f055b81d 100644 --- a/passes/cmds/rename.cc +++ b/passes/cmds/rename.cc @@ -379,6 +379,9 @@ struct RenamePass : public Pass { break; } + // TODO disable signorm due to rename I think? + design->sigNormalize(false); + if (flag_src) { extra_args(args, argidx, design); diff --git a/passes/hierarchy/flatten.cc b/passes/hierarchy/flatten.cc index 9ee410589..584370304 100644 --- a/passes/hierarchy/flatten.cc +++ b/passes/hierarchy/flatten.cc @@ -410,6 +410,8 @@ struct FlattenPass : public Pass { } extra_args(args, argidx, design); + bool was_signormed = design->flagSigNormalized; + RTLIL::Module *top = nullptr; if (design->full_selection()) for (auto module : design->modules()) @@ -449,6 +451,11 @@ struct FlattenPass : public Pass { design->remove(module); } + if (was_signormed) { + // TODO inconvenient workaround for fanout out of sync + design->sigNormalize(false); + design->sigNormalize(true); + } log_pop(); } } FlattenPass;