From 227520f94d5fe0eb983889b61ed9b72640f1b4f4 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Mon, 25 Mar 2013 17:13:14 +0100 Subject: Added nosync attribute and some async reset related fixes --- passes/proc/proc_arst.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'passes') diff --git a/passes/proc/proc_arst.cc b/passes/proc/proc_arst.cc index 62dfebae..d0a0d864 100644 --- a/passes/proc/proc_arst.cc +++ b/passes/proc/proc_arst.cc @@ -150,6 +150,11 @@ static void proc_arst(RTLIL::Module *mod, RTLIL::Process *proc, SigMap &assign_m for (auto &action : sync->actions) { RTLIL::SigSpec rspec = action.second; RTLIL::SigSpec rval = RTLIL::SigSpec(RTLIL::State::Sm, rspec.width); + rspec.expand(), rval.expand(); + for (int i = 0; i < int(rspec.chunks.size()); i++) + if (rspec.chunks[i].wire == NULL) + rval.chunks[i] = rspec.chunks[i]; + rspec.optimize(), rval.optimize(); RTLIL::SigSpec last_rval; for (int count = 0; rval != last_rval; count++) { last_rval = rval; -- cgit v1.2.3