diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2020-06-01 10:30:03 +0200 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2020-06-01 10:30:03 +0200 |
commit | 71072d1945b76107a4adc84f6666d100beca6ced (patch) | |
tree | 918943843549fca65476e602fe4a0ec43727248d /frontends/verific | |
parent | ff785cdb46d6b1ddc19d5acc21b4d1236b3adf3f (diff) | |
download | yosys-71072d1945b76107a4adc84f6666d100beca6ced.tar.gz yosys-71072d1945b76107a4adc84f6666d100beca6ced.tar.bz2 yosys-71072d1945b76107a4adc84f6666d100beca6ced.zip |
Support asymmetric memories for verific frontend
Diffstat (limited to 'frontends/verific')
-rw-r--r-- | frontends/verific/verific.cc | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/frontends/verific/verific.cc b/frontends/verific/verific.cc index fe4bda68e..cb0368fd5 100644 --- a/frontends/verific/verific.cc +++ b/frontends/verific/verific.cc @@ -974,6 +974,7 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::se module->memories[memory->name] = memory; int number_of_bits = net->Size(); + number_of_bits = 1 << ceil_log2(number_of_bits); int bits_in_word = number_of_bits; FOREACH_PORTREF_OF_NET(net, si, pr) { if (pr->GetInst()->Type() == OPER_READ_PORT) { @@ -1265,9 +1266,6 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::se int numchunks = int(inst->OutputSize()) / memory->width; int chunksbits = ceil_log2(numchunks); - if ((numchunks * memory->width) != int(inst->OutputSize()) || (numchunks & (numchunks - 1)) != 0) - log_error("Import of asymmetric memories of this type is not supported yet: %s %s\n", inst->Name(), inst->GetInput()->Name()); - for (int i = 0; i < numchunks; i++) { RTLIL::SigSpec addr = {operatorInput1(inst), RTLIL::Const(i, chunksbits)}; @@ -1295,9 +1293,6 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::se int numchunks = int(inst->Input2Size()) / memory->width; int chunksbits = ceil_log2(numchunks); - if ((numchunks * memory->width) != int(inst->Input2Size()) || (numchunks & (numchunks - 1)) != 0) - log_error("Import of asymmetric memories of this type is not supported yet: %s %s\n", inst->Name(), inst->GetOutput()->Name()); - for (int i = 0; i < numchunks; i++) { RTLIL::SigSpec addr = {operatorInput1(inst), RTLIL::Const(i, chunksbits)}; |