Simplified crossbar pip detection

This commit is contained in:
Miodrag Milanovic 2024-07-31 15:46:37 +02:00
parent 85603a9cf3
commit e771ba0236

View File

@ -751,17 +751,9 @@ void NgUltraImpl::fixup_crossbars()
{ {
auto is_crossbar_pip = [&] (PipId pip) { auto is_crossbar_pip = [&] (PipId pip) {
auto &pd = chip_pip_info(ctx->chip_info, pip); const auto &pd = chip_pip_info(ctx->chip_info, pip);
auto src_orig_type = IdString(chip_tile_info(ctx->chip_info, pip.tile).wires[pd.src_wire].wire_type).str(ctx); const auto &extra_data = *reinterpret_cast<const NGUltraPipExtraDataPOD *>(pd.extra_data.get());
auto dst_orig_type = IdString(chip_tile_info(ctx->chip_info, pip.tile).wires[pd.dst_wire].wire_type).str(ctx); return (extra_data.name && extra_data.type == PipExtra::PIP_EXTRA_CROSSBAR);
if (!boost::starts_with(dst_orig_type,"CROSSBAR_") || !boost::ends_with(dst_orig_type, "OUTPUT_WIRE")) {
return false;
}
// replace _OUTPUT_WIRE with _INPUT_WIRE and check same crossbar
if (src_orig_type != (dst_orig_type.substr(0, dst_orig_type.size() - 11) + "INPUT_WIRE")) {
return false;
}
return true;
}; };
auto crossbar_key = [&] (PipId pip, bool src) { auto crossbar_key = [&] (PipId pip, bool src) {