From: whitequark Date: Sun, 1 Nov 2020 12:49:20 +0000 (+0000) Subject: cxxrtl: don't assert on wires with multiple drivers. X-Git-Tag: working-ls180~213^2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cdf4ce98719b4a05a959651e209eb54d6cf17dab;p=yosys.git cxxrtl: don't assert on wires with multiple drivers. Fixes #2374. --- diff --git a/backends/cxxrtl/cxxrtl_backend.cc b/backends/cxxrtl/cxxrtl_backend.cc index dfea04409..da46711c1 100644 --- a/backends/cxxrtl/cxxrtl_backend.cc +++ b/backends/cxxrtl/cxxrtl_backend.cc @@ -2182,6 +2182,8 @@ struct CxxrtlWorker { if (wire->name.begins_with("$") && !elide_internal) continue; if (wire->name.begins_with("\\") && !elide_public) continue; if (edge_wires[wire]) continue; + if (flow.wire_comb_defs[wire].size() > 1) + log_cmd_error("Wire %s.%s has multiple drivers.\n", log_id(module), log_id(wire)); log_assert(flow.wire_comb_defs[wire].size() == 1); elided_wires[wire] = **flow.wire_comb_defs[wire].begin(); }