The AMD-Xilinx Dynamic Function eXchange (DFX) is a technology that enables an incremental and partitioned hardware configuration of a programmable device. Details on DFX capabilities within the Vivado tool are available in UG909. In PL/FPGA-based DFX this enables a concept of reconfigurable partitions (RP) and reconfigurable modules (RM). The RP provides a pre-provisioned HW space allocation within which different RMs can be loaded dynamically. The system and solution capabilities of the DFX incremental HW configuration enable:
• Partitioned designs allowing one part of the system to be changed (reconfigured) while another part of the system remains running.
• “Slotted” architecture allowing for dynamically composable HW systems without having to recompile a monolithic configuration bitstream file.
• Decoupled life cycles for PL-based functions, facilitating a reconfigurable module (RM) to be deployed to the field later without having to update or rebuild the base platform design.
Detailed documentation and how to try this applcation is well documented here. Please go through the DFX documentation page for more details.
This repository contains application sources that demostrate DFX based accelerator functionality and Jupyter notebooks to demonstrate accelerator orchestration on multiple RM slots. The repository structure is outlined below.
Applications
AES128 - an application for encrypting and decrypting data
Application runs an internal test when no arguments or only slot is passed as argument.
Example -
# runs test on slot 0
sudo ./aes128
# runs test on slot 1
sudo ./aes128 1
requirements (to be passed to the application as command line arguments)
Usage example - sudo ./aes128 -s 0 -k AES128_dec_key.bin -i AES128_in_data.bin -o AES128_res_data.bin -d
AES192 - an application for encrypting and decrypting data
Application runs an internal test when no arguments or only slot is passed as argument.
Example -
# runs test on slot 0
sudo ./aes192
# runs test on slot 1
sudo ./aes192 1
requirements (to be passed to the application as command line arguments)
Usage example - sudo ./aes192 -s 0 -k AES192_dec_key.bin -i AES192_in_data.bin -o AES192_res_data.bin -d
FFT - an application for performing 4-channel Fast Fourier Transform
Application runs an internal test when no arguments or only slot is passed as argument.
Example -
# runs test on slot 0
sudo ./fft
# runs test on slot 1
sudo ./fft 1
requirements (to be passed to the application as command line arguments)
Usage example - sudo ./fft -s 0 -c FFT_config.bin -i FFT_in_data.bin -o FFT_res_data.bin
FIR - an application for filtering signals using FIR
Application runs an internal test when no arguments or only slot is passed as argument.
Internal test consists of pre-defined test cases
Example -
# runs test on slot 0
sudo ./fir
# runs test on slot 1
sudo ./fir 1
requirements (to be passed to the application as command line arguments)
Usage example - sudo ./fir -s 1 -c FIR_config.bin -r FIR_reload.bin -i FIR_in_data.bin -o FIR_res_data.bin
sudo apt install uuid-dev libdfx-dev cmake libdfx-mgr-dev bootgen-xlnx
git clone https://github.com/Xilinx/kria-dfx-apps
cd kria-dfx-apps
mkdir bld; cd bld
cmake ..; make
Steps to run the applications
sudo xmutil unloadapp
sudo xmutil loadapp AES128
sudo ./src/AES128/aes128 -s 0 -k ../src/data/AES128_dec_key.bin -i ../src/data/AES128_in_data.bin -o ../src/data/AES128_res_data.bin -d
sudo xmutil loadapp FIR
sudo ./src/FIR/fir -s 1 -c ../src/data/FIR_config.bin -r ../src/data/FIR_reload.bin -i ../src/data/FIR_in_data.bin -o ../src/data/FIR_res_data.bin
sudo xmutil unloadapp 1
sudo xmutil loadapp AES192
sudo ./src/AES192/aes192 -s 1 -k ../src/data/AES192_dec_key.bin -i ../src/data/AES192_in_data.bin -o ../src/data/AES192_res_data.bin -d
sudo xmutil unloadapp
sudo xmutil loadapp FFT
sudo ./src/FFT/fft -c ../src/data/FFT_config.bin -i ../src/data/FFT_in_data.bin -o ../src/data/FFT_res_data.bin
Check if the expected and resultant data matches or not
cd ../src/data
diff AES128_out_data.bin AES128_res_data.bin
diff AES192_out_data.bin AES192_res_data.bin
diff FIR_out_data.bin FIR_res_data.bin
diff FFT_out_data.bin FFT_res_data.bin
Please use -h flag with the applications for usage and more details
./aes128 -h
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。