aboutsummaryrefslogtreecommitdiffstats
path: root/techlibs
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2019-03-05 15:23:01 -0800
committerGitHub <noreply@github.com>2019-03-05 15:23:01 -0800
commit724576a4e21191bb75e99521d4d3c55acd0707e1 (patch)
tree8dbf4f3e28bc8d8aa5ff2a707b9582faeb348bae /techlibs
parent3ef427f4a96ac8f890cf94079315e172db409526 (diff)
parent777864d02ea3382c822a764e928e06b6142da6ec (diff)
downloadyosys-724576a4e21191bb75e99521d4d3c55acd0707e1.tar.gz
yosys-724576a4e21191bb75e99521d4d3c55acd0707e1.tar.bz2
yosys-724576a4e21191bb75e99521d4d3c55acd0707e1.zip
Merge pull request #850 from daveshah1/ecp5_warn_conflict
ecp5: Demote conflicting FF init values to a warning
Diffstat (limited to 'techlibs')
-rw-r--r--techlibs/ecp5/ecp5_ffinit.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/techlibs/ecp5/ecp5_ffinit.cc b/techlibs/ecp5/ecp5_ffinit.cc
index 02945fff4..dbd16cac9 100644
--- a/techlibs/ecp5/ecp5_ffinit.cc
+++ b/techlibs/ecp5/ecp5_ffinit.cc
@@ -79,10 +79,12 @@ struct Ecp5FfinitPass : public Pass {
continue;
if (initbits.count(bit)) {
- if (initbits.at(bit) != val)
- log_error("Conflicting init values for signal %s (%s = %s, %s = %s).\n",
+ if (initbits.at(bit) != val) {
+ 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(initbit_to_wire[bit]), log_signal(initbits.at(bit)));
+ initbits.at(bit) = State::Sx;
+ }
continue;
}
@@ -121,6 +123,9 @@ struct Ecp5FfinitPass : public Pass {
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_signal(bit_q), val != State::S0 ? '1' : '0');
// Initval is the same as the reset state. Matches hardware, nowt more to do