diff options
author | Jannis Harder <me@jix.one> | 2022-12-21 14:24:10 +0100 |
---|---|---|
committer | Jannis Harder <me@jix.one> | 2023-01-11 18:07:16 +0100 |
commit | 5042600c0d3adeae9ad7e936e92d4bf7ccff3e53 (patch) | |
tree | 165da5efba4120b999fa3522bf3a56d0918a9136 /passes/cmds/setundef.cc | |
parent | 673ad561b8cf75abdafd9afb3d44edf0edf1f1e1 (diff) | |
download | yosys-5042600c0d3adeae9ad7e936e92d4bf7ccff3e53.tar.gz yosys-5042600c0d3adeae9ad7e936e92d4bf7ccff3e53.tar.bz2 yosys-5042600c0d3adeae9ad7e936e92d4bf7ccff3e53.zip |
xprop, setundef: Mark xprop decoding bwmuxes, exclude them from setundef
This adds the xprop_decoder attribute to bwmuxes that drive the original
unencoded signals. Setundef is changed to ignore the x inputs of these
bwmuxes, so that they survive the prep script of SBY's formal flow. This
is required to make simulation (via sim) using the prep model show the
decoded x signals instead of 0/1 values made up by the solver.
Diffstat (limited to 'passes/cmds/setundef.cc')
-rw-r--r-- | passes/cmds/setundef.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/passes/cmds/setundef.cc b/passes/cmds/setundef.cc index 590a7eb1d..7293002f3 100644 --- a/passes/cmds/setundef.cc +++ b/passes/cmds/setundef.cc @@ -502,7 +502,15 @@ struct SetundefPass : public Pass { } } - module->rewrite_sigspecs(worker); + for (auto &it : module->cells_) + if (!it.second->get_bool_attribute(ID::xprop_decoder)) + it.second->rewrite_sigspecs(worker); + for (auto &it : module->processes) + it.second->rewrite_sigspecs(worker); + for (auto &it : module->connections_) { + worker(it.first); + worker(it.second); + } if (worker.next_bit_mode == MODE_ANYSEQ || worker.next_bit_mode == MODE_ANYCONST) { |