ecp5: Demote conflicting FF init values to a warning

Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
David Shah 2019-03-04 11:18:53 +00:00
parent 57f8bb471f
commit 777864d02e
1 changed files with 7 additions and 2 deletions

View File

@ -79,10 +79,12 @@ struct Ecp5FfinitPass : public Pass {
continue; continue;
if (initbits.count(bit)) { if (initbits.count(bit)) {
if (initbits.at(bit) != val) if (initbits.at(bit) != val) {
log_error("Conflicting init values for signal %s (%s = %s, %s = %s).\n", log_warning("Conflicting init values for signal %s (%s = %s, %s = %s).\n",
log_signal(bit), log_signal(SigBit(wire, i)), log_signal(val), log_signal(bit), log_signal(SigBit(wire, i)), log_signal(val),
log_signal(initbit_to_wire[bit]), log_signal(initbits.at(bit))); log_signal(initbit_to_wire[bit]), log_signal(initbits.at(bit)));
initbits.at(bit) = State::Sx;
}
continue; continue;
} }
@ -121,6 +123,9 @@ struct Ecp5FfinitPass : public Pass {
State val = initbits.at(bit_q); State val = initbits.at(bit_q);
if (val == State::Sx)
continue;
log("FF init value for cell %s (%s): %s = %c\n", log_id(cell), log_id(cell->type), log("FF init value for cell %s (%s): %s = %c\n", log_id(cell), log_id(cell->type),
log_signal(bit_q), val != State::S0 ? '1' : '0'); log_signal(bit_q), val != State::S0 ? '1' : '0');
// Initval is the same as the reset state. Matches hardware, nowt more to do // Initval is the same as the reset state. Matches hardware, nowt more to do