diff options
author | Miodrag Milanović <mmicko@gmail.com> | 2022-08-01 16:21:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-01 16:21:28 +0200 |
commit | a207fd4b3356e759f0031173449a9c1f967dd01c (patch) | |
tree | 4e5028c1a6f12e47d895f7c09e79c5d456838f36 | |
parent | 6f792e2223cc87f72bbd4cc9f1820e5b72dfec3e (diff) | |
parent | 52a4a89265b656a97bba441ac8f5c768bdd5c73e (diff) | |
download | yosys-a207fd4b3356e759f0031173449a9c1f967dd01c.tar.gz yosys-a207fd4b3356e759f0031173449a9c1f967dd01c.tar.bz2 yosys-a207fd4b3356e759f0031173449a9c1f967dd01c.zip |
Merge pull request #3429 from YosysHQ/micko/verific_upto
Setting wire upto in verific import
-rw-r--r-- | frontends/verific/verific.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/frontends/verific/verific.cc b/frontends/verific/verific.cc index fd6208e86..ab527a253 100644 --- a/frontends/verific/verific.cc +++ b/frontends/verific/verific.cc @@ -1124,6 +1124,7 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::ma RTLIL::Wire *wire = module->addWire(RTLIL::escape_id(portbus->Name()), portbus->Size()); wire->start_offset = min(portbus->LeftIndex(), portbus->RightIndex()); + wire->upto = portbus->IsUp(); import_attributes(wire->attributes, portbus, nl); bool portbus_input = portbus->GetDir() == DIR_INOUT || portbus->GetDir() == DIR_IN; @@ -1144,7 +1145,8 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::ma wire->port_output = true; } net = portbus->ElementAtIndex(i)->GetNet(); - RTLIL::SigBit bit(wire, i - wire->start_offset); + int bitidx = wire->upto ? (wire->width - 1 - (i - wire->start_offset)) : (i - wire->start_offset); + RTLIL::SigBit bit(wire, bitidx); if (net_map.count(net) == 0) net_map[net] = bit; else if (bit_input) @@ -1308,6 +1310,7 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::ma RTLIL::Wire *wire = module->addWire(wire_name, netbus->Size()); wire->start_offset = min(netbus->LeftIndex(), netbus->RightIndex()); + wire->upto = netbus->IsUp(); MapIter mibus; FOREACH_NET_OF_NETBUS(netbus, mibus, net) { if (net) @@ -1322,7 +1325,7 @@ void VerificImporter::import_netlist(RTLIL::Design *design, Netlist *nl, std::ma { if (netbus->ElementAtIndex(i)) { - int bitidx = i - wire->start_offset; + int bitidx = wire->upto ? (wire->width - 1 - (i - wire->start_offset)) : (i - wire->start_offset); net = netbus->ElementAtIndex(i); RTLIL::SigBit bit(wire, bitidx); |