aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorclairexen <claire@symbioticeda.com>2020-06-10 12:42:43 +0200
committerGitHub <noreply@github.com>2020-06-10 12:42:43 +0200
commita408771c62eed4252cd2a8f4ae6dd7fa75d1e696 (patch)
treeb9974c0f5b93951ebd6f245d30a713ef09741b22
parent5c426d2bff07825042b0fa0449805ea9cb8b9f58 (diff)
parentd6bec3ba1c81ebd123a58231f790564aa99444ff (diff)
downloadyosys-a408771c62eed4252cd2a8f4ae6dd7fa75d1e696.tar.gz
yosys-a408771c62eed4252cd2a8f4ae6dd7fa75d1e696.tar.bz2
yosys-a408771c62eed4252cd2a8f4ae6dd7fa75d1e696.zip
Merge pull request #2139 from YosysHQ/verific_missing_memory
verific - detect missing memory to prevent crash.
-rw-r--r--frontends/verific/verific.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/frontends/verific/verific.cc b/frontends/verific/verific.cc
index cb0368fd5..65e71876a 100644
--- a/frontends/verific/verific.cc
+++ b/frontends/verific/verific.cc
@@ -1262,7 +1262,10 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::se
if (inst->Type() == OPER_READ_PORT)
{
- RTLIL::Memory *memory = module->memories.at(RTLIL::escape_id(inst->GetInput()->Name()));
+ RTLIL::Memory *memory = module->memories.at(RTLIL::escape_id(inst->GetInput()->Name()), nullptr);
+ if (!memory)
+ log_error("Memory net '%s' missing, possibly no driver, use verific -flatten.\n", inst->GetInput()->Name());
+
int numchunks = int(inst->OutputSize()) / memory->width;
int chunksbits = ceil_log2(numchunks);
@@ -1289,7 +1292,9 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::se
if (inst->Type() == OPER_WRITE_PORT || inst->Type() == OPER_CLOCKED_WRITE_PORT)
{
- RTLIL::Memory *memory = module->memories.at(RTLIL::escape_id(inst->GetOutput()->Name()));
+ RTLIL::Memory *memory = module->memories.at(RTLIL::escape_id(inst->GetOutput()->Name()), nullptr);
+ if (!memory)
+ log_error("Memory net '%s' missing, possibly no driver, use verific -flatten.\n", inst->GetInput()->Name());
int numchunks = int(inst->Input2Size()) / memory->width;
int chunksbits = ceil_log2(numchunks);