verific - detect missing memory to prevent crash.

This commit is contained in:
Miodrag Milanovic 2020-06-10 11:27:44 +02:00
parent 5c426d2bff
commit d6bec3ba1c
1 changed files with 7 additions and 2 deletions

View File

@ -1262,7 +1262,10 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::se
if (inst->Type() == OPER_READ_PORT) 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 numchunks = int(inst->OutputSize()) / memory->width;
int chunksbits = ceil_log2(numchunks); 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) 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 numchunks = int(inst->Input2Size()) / memory->width;
int chunksbits = ceil_log2(numchunks); int chunksbits = ceil_log2(numchunks);