Merge pull request #2424 from whitequark/cxxrtl-multiple-drivers

cxxrtl: don't assert on wires with multiple drivers
This commit is contained in:
whitequark 2020-11-01 13:52:59 +00:00 committed by GitHub
commit cc7ad65a79
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 0 deletions

View File

@ -2182,6 +2182,8 @@ struct CxxrtlWorker {
if (wire->name.begins_with("$") && !elide_internal) continue; if (wire->name.begins_with("$") && !elide_internal) continue;
if (wire->name.begins_with("\\") && !elide_public) continue; if (wire->name.begins_with("\\") && !elide_public) continue;
if (edge_wires[wire]) 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); log_assert(flow.wire_comb_defs[wire].size() == 1);
elided_wires[wire] = **flow.wire_comb_defs[wire].begin(); elided_wires[wire] = **flow.wire_comb_defs[wire].begin();
} }