![]() |
This section is useful when running the design in HW, and there is a stall/hang. First step is to examine the errors from XRT which in turn reflects the errors from the AIE driver. The steps below show you how to obtain this information running the tutorial design in HW.
The utility, xbutil
, is supported for PL/AI Engine debug. It can be used to
After the design is built correctly without error, we are ready to run on the hardware board.
- Flash the SD card with the built sd_card.img.
- Plug the flashed SD card into the SD card slot of the vck190 board.
- Connect the USB type C cable to the board and computer that supports serial port connection.
- Set the serial port configuration with Speed=115200, Data=8 bit, Parity=none, Stop bits=1 bit and flow control=none.
- Power up the vck190 board to see boot messages from serial connection.
Create an xrt.ini file on SD card using the following lines.
[Debug]
aie_status=true
aie_status_interval_us=1000
cd /run/media/mmcblk0p1
./host.exe a.xclbin
After the design run completes on the hardware, the generated profiling files and run_summary
files need to be collected and ready to be examined.
Make sure aie_status_edge.json
, aieshim_status_edge.json
, summary.csv
and xrt.run_summary
files are generated on the SD card.
Power off the board and take out the SD card from the board, and plug it into the host SD card reader.
Copy aie_status_edge.json
, aieshim_status_edge.json
, summary.csv
and xrt.run_summary
files from the SD card back to where the design is.
xrt.run_summary
: Run summary that contains list of files information that can be used byvitis analyzer
.aie_status_edge.json
: Status of AI Engine and AI Engine memory.aieshim_status_edge.json
: AI Engine interface tiles status.summary.csv
: Always created.
vitis_analyzer xrt.run_summary
After above command issued, expect to see vitis_analyzer
GUI is launched. Click on Set AI Engine compile summary
in the summary view to set the AI Engine compile summary
 value. It can be cross-probed with source code by clicking it. ;
try {
dut.wait();
}
catch (const std::system_error& ex) {
if (ex.code().value() == ETIME) {
xrt::error error(device, XRT_ERROR_CLASS_AIE);
auto errCode = error.get_error_code();
auto timestamp = error.get_timestamp();
auto err_str = error.to_string();
/* code to deal with this specific error */
std::cout << timestamp << " error code:" << errCode << " Error:" << err_str << std::endl;
} else {
/* Something else */
}
}
cp ${PROJECT_PATH}/sw/host.cpp.error_code ${PROJECT_PATH}/sw/host.cpp
cd ${PROJECT_PATH}
make host.exe
make package
Step 0 Prepare the boot image and boot the board
cd /run/media/mmcblk0p1
./host.exe a.xclbin
Issue command xbutil examine -d 0000:00:00.0 -r error
to VCK190 console to get output from console.
GitHub issues will be used for tracking requests and bugs. For questions go to support.xilinx.com.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
XD005 | © Copyright 2021-2022 Xilinx, Inc.