From: Miodrag Milanovic Date: Wed, 10 Jun 2020 09:27:44 +0000 (+0200) Subject: verific - detect missing memory to prevent crash. X-Git-Tag: working-ls180~484^2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d6bec3ba1c81ebd123a58231f790564aa99444ff;p=yosys.git verific - detect missing memory to prevent crash. --- 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);