36 ConversionPatternRewriter &rewriter)
const override {
37 AIE::TileOp tile = op.getTileOp();
38 int col = tile.getCol();
39 int row = tile.getRow();
41 AIE::DeviceOp dev = op->getParentOfType<AIE::DeviceOp>();
48 tm.lookupRegister(
"Core_Control", tile.getTileID());
50 return op.emitOpError(
"target has no Core_Control register in its "
54 return op.emitOpError(
"Core_Control has no Reset field in the register "
56 std::optional<uint32_t> resetMask = tm.getFieldMask(*resetField);
58 return op.emitOpError(
"Core_Control Reset field does not fit in a 32-bit "
60 std::optional<uint32_t> resetValue = tm.encodeFieldValue(*resetField, 1);
62 return op.emitOpError(
63 "Core_Control Reset field value does not fit in its bit width");
65 Location loc = op.getLoc();
66 IntegerAttr colAttr = rewriter.getI32IntegerAttr(col);
67 IntegerAttr rowAttr = rewriter.getI32IntegerAttr(row);
82 NpuMaskWrite32Op::create(rewriter, loc, assertAddr, assertVal, assertMask,
83 nullptr, colAttr, rowAttr);
88 rewriter.replaceOpWithNewOp<NpuMaskWrite32Op>(
89 op, clearAddr, clearVal, clearMask,
nullptr, colAttr, rowAttr);