diff --git a/include/pto/npu/a2a3/TPush.hpp b/include/pto/npu/a2a3/TPush.hpp index f3d100f0..6997f695 100644 --- a/include/pto/npu/a2a3/TPush.hpp +++ b/include/pto/npu/a2a3/TPush.hpp @@ -25,8 +25,9 @@ enum TSyncCVMode : uint8_t CV_CORES_SYNC = 2 }; -template +template struct TPipe { static constexpr uint8_t DIR_MASK = 0x7; static constexpr uint8_t DIR_TYPE = DIR_MASK & DirType; @@ -34,10 +35,14 @@ struct TPipe { static constexpr bool is_v2c = (DIR_TYPE == Direction::DIR_V2C); // 2 static constexpr bool is_both = (DIR_TYPE == Direction::DIR_BOTH); // 3 static constexpr bool is_v2c_ctrl = (DIR_TYPE == Direction::DIR_V2C_CTRL); // 4 + static constexpr bool IsNoSplit = + CompatLocalSlotNumOrIsNoSplit <= 1 && static_cast(CompatLocalSlotNumOrIsNoSplit); + static constexpr uint32_t EffectiveLocalSlotNum = + CompatLocalSlotNumOrIsNoSplit <= 1 ? LocalSlotNum : CompatLocalSlotNumOrIsNoSplit; static_assert(is_c2v || is_v2c || is_both || is_v2c_ctrl, "Fix: TPipe only supports C2V or V2C or Both or V2C_CTRL communication on A2A3."); - using RingFiFo = RingFIFO; + using RingFiFo = RingFIFO; PTO_INTERNAL static uint64_t getFFTSMsgCfg(TSyncCVMode mode, uint16_t flagID, uint16_t base_const = 0x1) {