From e771ba02360f496671ca71d2f68cb2490057acf3 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Wed, 31 Jul 2024 15:46:37 +0200 Subject: [PATCH] Simplified crossbar pip detection --- himbaechel/uarch/ng-ultra/ng_ultra.cc | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/himbaechel/uarch/ng-ultra/ng_ultra.cc b/himbaechel/uarch/ng-ultra/ng_ultra.cc index 84a8d442..6835f8f9 100644 --- a/himbaechel/uarch/ng-ultra/ng_ultra.cc +++ b/himbaechel/uarch/ng-ultra/ng_ultra.cc @@ -751,17 +751,9 @@ void NgUltraImpl::fixup_crossbars() { auto is_crossbar_pip = [&] (PipId pip) { - 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); - auto dst_orig_type = IdString(chip_tile_info(ctx->chip_info, pip.tile).wires[pd.dst_wire].wire_type).str(ctx); - 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; + const auto &pd = chip_pip_info(ctx->chip_info, pip); + const auto &extra_data = *reinterpret_cast(pd.extra_data.get()); + return (extra_data.name && extra_data.type == PipExtra::PIP_EXTRA_CROSSBAR); }; auto crossbar_key = [&] (PipId pip, bool src) {