aboutsummaryrefslogtreecommitdiffstats
path: root/backends
diff options
context:
space:
mode:
authorwhitequark <whitequark@whitequark.org>2020-11-01 15:25:55 +0000
committerwhitequark <whitequark@whitequark.org>2020-11-01 15:57:20 +0000
commit2ba05f5c31941967e84a2ab1a3dec89f60235057 (patch)
treef6c9693f73d1dcc9d343853c10a0729dcc67ea5c /backends
parentcc7ad65a7992d82e758011ec63704b65fcb2d7d6 (diff)
downloadyosys-2ba05f5c31941967e84a2ab1a3dec89f60235057.tar.gz
yosys-2ba05f5c31941967e84a2ab1a3dec89f60235057.tar.bz2
yosys-2ba05f5c31941967e84a2ab1a3dec89f60235057.zip
cxxrtl: don't assert on non-constant $meminit inputs.
Fixes #2129.
Diffstat (limited to 'backends')
-rw-r--r--backends/cxxrtl/cxxrtl_backend.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/backends/cxxrtl/cxxrtl_backend.cc b/backends/cxxrtl/cxxrtl_backend.cc
index da46711c1..ac4c78267 100644
--- a/backends/cxxrtl/cxxrtl_backend.cc
+++ b/backends/cxxrtl/cxxrtl_backend.cc
@@ -22,6 +22,7 @@
#include "kernel/sigtools.h"
#include "kernel/utils.h"
#include "kernel/celltypes.h"
+#include "kernel/mem.h"
#include "kernel/log.h"
USING_YOSYS_NAMESPACE
@@ -2347,8 +2348,9 @@ struct CxxrtlWorker {
if (sync->type == RTLIL::STi)
has_sync_init = true;
- for (auto cell : module->cells())
- if (cell->type == ID($mem))
+ // The Mem constructor also checks for well-formedness of $meminit cells, if any.
+ for (auto &mem : Mem::get_all_memories(module))
+ if (mem.packed)
has_packed_mem = true;
}
}