This commit is contained in:
Miodrag Milanovic 2024-08-29 07:53:28 +02:00
parent 8ccbf10ab0
commit fa259de07a

View File

@ -756,11 +756,11 @@ void NgUltraImpl::fixup_crossbars()
return (extra_data.name && extra_data.type == PipExtra::PIP_EXTRA_CROSSBAR); return (extra_data.name && extra_data.type == PipExtra::PIP_EXTRA_CROSSBAR);
}; };
auto crossbar_key = [&] (PipId pip, bool src) { auto crossbar_key = [&] (PipId pip) {
auto &pd = chip_pip_info(ctx->chip_info, pip); auto &pd = chip_pip_info(ctx->chip_info, pip);
auto wire_name = IdString(chip_tile_info(ctx->chip_info, pip.tile).wires[src ? pd.src_wire : pd.dst_wire].name).str(ctx); const auto &extra_data = *reinterpret_cast<const NGUltraPipExtraDataPOD *>(pd.extra_data.get());
return std::make_pair(pip.tile, ctx->id(wire_name.substr(0, wire_name.rfind('.')))); return std::make_pair(pip.tile, IdString(extra_data.name));
}; };
for (auto &net : ctx->nets) { for (auto &net : ctx->nets) {
NetInfo *ni = net.second.get(); NetInfo *ni = net.second.get();
@ -788,7 +788,7 @@ void NgUltraImpl::fixup_crossbars()
for (auto pip : downstream.at(cursor)) { for (auto pip : downstream.at(cursor)) {
WireId dst = ctx->getPipDstWire(pip); WireId dst = ctx->getPipDstWire(pip);
if (is_crossbar_pip(pip)) { if (is_crossbar_pip(pip)) {
auto key = crossbar_key(pip, true); auto key = crossbar_key(pip);
if (!crossbar_entries.count(key)) { if (!crossbar_entries.count(key)) {
crossbar_entries[key] = ctx->getPipSrcWire(pip); crossbar_entries[key] = ctx->getPipSrcWire(pip);
} else { } else {