write_verilog wire for buses

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2023-05-15 18:22:11 -07:00
parent f7f2b0cadf
commit 358fb135a5
1 changed files with 3 additions and 3 deletions

View File

@ -232,7 +232,7 @@ VerilogWriter::writeWireDcls(Instance *inst)
{ {
Cell *cell = network_->cell(inst); Cell *cell = network_->cell(inst);
char escape = network_->pathEscape(); char escape = network_->pathEscape();
Map<const char*, BusIndexRange, CharPtrLess> bus_ranges; Map<string, BusIndexRange, std::less<string>> bus_ranges;
NetIterator *net_iter = network_->netIterator(inst); NetIterator *net_iter = network_->netIterator(inst);
while (net_iter->hasNext()) { while (net_iter->hasNext()) {
Net *net = net_iter->next(); Net *net = net_iter->next();
@ -243,7 +243,7 @@ VerilogWriter::writeWireDcls(Instance *inst)
string bus_name; string bus_name;
int index; int index;
parseBusName(net_name, '[', ']', escape, is_bus, bus_name, index); parseBusName(net_name, '[', ']', escape, is_bus, bus_name, index);
BusIndexRange &range = bus_ranges[bus_name.c_str()]; BusIndexRange &range = bus_ranges[bus_name];
range.first = max(range.first, index); range.first = max(range.first, index);
range.second = min(range.second, index); range.second = min(range.second, index);
} }
@ -256,7 +256,7 @@ VerilogWriter::writeWireDcls(Instance *inst)
delete net_iter; delete net_iter;
for (auto name_range : bus_ranges) { for (auto name_range : bus_ranges) {
const char *bus_name = name_range.first; const char *bus_name = name_range.first.c_str();
const BusIndexRange &range = name_range.second; const BusIndexRange &range = name_range.second;
string net_vname = netVerilogName(bus_name, network_->pathEscape()); string net_vname = netVerilogName(bus_name, network_->pathEscape());
fprintf(stream_, " wire [%d:%d] %s;\n", fprintf(stream_, " wire [%d:%d] %s;\n",