MLIR-AIE
AIERT.h
Go to the documentation of this file.
1//===- AIERT.h --------------------------------------------------*- C++ -*-===//
2//
3// This file is licensed under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7// Copyright (C) 2024, Advanced Micro Devices, Inc. All rights reserved.
8//
9//===----------------------------------------------------------------------===//
10
11#ifndef AIE_AIERT_H
12#define AIE_AIERT_H
13
17
18#include "llvm/Support/raw_ostream.h"
19
20#include <map>
21#include <optional>
22#include <string>
23
24namespace xilinx::AIE {
26
29
30 mlir::LogicalResult setIOBackend(bool aieSim, bool xaieDebug);
31 mlir::LogicalResult pushToBdQueueAndEnable(mlir::Operation &op, int col,
32 int row, int chNum,
33 const DMAChannelDir &channelDir,
34 int bdId, int repeatCount);
35 mlir::LogicalResult configureLocksAndBd(mlir::Block &block, int col, int row);
36 mlir::LogicalResult initLocks(DeviceOp &targetOp);
37 mlir::LogicalResult initBuffers(DeviceOp &targetOp);
38 mlir::LogicalResult configureSwitches(DeviceOp &targetOp);
39 mlir::LogicalResult addInitConfig(DeviceOp &targetOp);
40 mlir::LogicalResult addCoreEnable(DeviceOp &targetOp);
41 mlir::LogicalResult addAieElf(uint8_t col, uint8_t row,
42 const mlir::StringRef elfPath, bool aieSim);
43 mlir::LogicalResult addAieElfs(DeviceOp &targetOp,
44 const mlir::StringRef workDirPath,
45 bool aieSim);
46 void startTransaction();
47 void dmaUpdateBdAddr(int col, int row, size_t addr, size_t bdId);
48 std::vector<uint8_t> exportSerializedTransaction();
49 mlir::LogicalResult resetPartition();
50 mlir::LogicalResult resetDMA(int col, int row, bool on);
51 mlir::LogicalResult resetCore(int col, int row);
52 mlir::LogicalResult resetCoreUnreset(int col, int row);
53 mlir::LogicalResult resetSwitch(int col, int row);
54 mlir::LogicalResult resetLock(int col, int row, int lockId);
55 mlir::LogicalResult resetSwitchConnection(int col, int row,
56 WireBundle sourceBundle,
57 int sourceChannel,
58 WireBundle destBundle,
59 int destChannel);
60 mlir::LogicalResult resetPerfCounters(int col, int row);
61
62private:
63 const AIETargetModel &targetModel;
64 struct AIERtImpl;
65 std::unique_ptr<AIERtImpl> aiert;
66};
67
68} // namespace xilinx::AIE
69
70#endif // AIE_AIERT_H
Include the generated interface declarations.
mlir::LogicalResult resetPerfCounters(int col, int row)
Definition AIERT.cpp:957
mlir::LogicalResult resetCore(int col, int row)
Definition AIERT.cpp:865
mlir::LogicalResult pushToBdQueueAndEnable(mlir::Operation &op, int col, int row, int chNum, const DMAChannelDir &channelDir, int bdId, int repeatCount)
Definition AIERT.cpp:494
void dmaUpdateBdAddr(int col, int row, size_t addr, size_t bdId)
Definition AIERT.cpp:1014
mlir::LogicalResult resetPartition()
Definition AIERT.cpp:848
mlir::LogicalResult addAieElfs(DeviceOp &targetOp, const mlir::StringRef workDirPath, bool aieSim)
Definition AIERT.cpp:979
mlir::LogicalResult resetCoreUnreset(int col, int row)
Definition AIERT.cpp:899
mlir::LogicalResult setIOBackend(bool aieSim, bool xaieDebug)
Definition AIERT.cpp:257
std::vector< uint8_t > exportSerializedTransaction()
Definition AIERT.cpp:1026
mlir::LogicalResult initLocks(DeviceOp &targetOp)
Definition AIERT.cpp:533
mlir::LogicalResult resetDMA(int col, int row, bool on)
Definition AIERT.cpp:853
mlir::LogicalResult configureSwitches(DeviceOp &targetOp)
Definition AIERT.cpp:616
mlir::LogicalResult initBuffers(DeviceOp &targetOp)
Definition AIERT.cpp:564
mlir::LogicalResult resetSwitch(int col, int row)
Definition AIERT.cpp:871
mlir::LogicalResult addCoreEnable(DeviceOp &targetOp)
Definition AIERT.cpp:815
mlir::LogicalResult resetSwitchConnection(int col, int row, WireBundle sourceBundle, int sourceChannel, WireBundle destBundle, int destChannel)
Definition AIERT.cpp:917
mlir::LogicalResult addAieElf(uint8_t col, uint8_t row, const mlir::StringRef elfPath, bool aieSim)
Definition AIERT.cpp:826
mlir::LogicalResult configureLocksAndBd(mlir::Block &block, int col, int row)
Definition AIERT.cpp:512
mlir::LogicalResult addInitConfig(DeviceOp &targetOp)
Definition AIERT.cpp:743
mlir::LogicalResult resetLock(int col, int row, int lockId)
Definition AIERT.cpp:905