After creating the AI Engine graph project, which also creates the
top-level system project, and a hw-link project, you can create PL kernel projects to add your
system. Your PL kernel can be included as part of the graph or be outside the graph but
connected to it. You need to create a PL application project and add it to your system
project using the following process.
Tip: There is one
difference when creating a PL project for a kernel that is inside the graph versus
outside the graph. It is marked as Inside the AIE
graph as described in the following section.
- In the Explorer
view, select the top-level system project to create a new PL project to add to
it. Right-click on the system project and select the Add Hw Kernel Project command, as shown in the following
figure.
- This displays the Hw Kernel Project
Details page of the New Project wizard as shown in the
following figure.
Make sure the project is assigned to the existing system project, which also contains your AI Engine graph project. Specify the HW Kernel project name. Click Next to proceed.
- This creates the PL kernel project and adds it to the hierarchy of the
top-level system project. Next you must add the source code for your kernel. In
the Explorer view,
select the src folder of the PL kernel and
click the Import Sources command () to open
the dialog box shown in the following figure.
Browse to and select the necessary source files for your PL kernel. Click Finish to import the source files to your HW kernel project.
- With the source files added to the project, you must define the HW function to place into the PL region. In the Project Editor window, select the Add Hardware Function command () and specify the name of the function to implement in the PL region.
- If the PL kernel is defined inside the AI Engine graph, then you must also select the PL Kernel in AIE Graph check box in the
Hardware Function
section of the Project
Editor window, as shown in the following figure. This
tells the Vitis tool that the PL kernel is
already defined in the graph and its connections do not need to be defined as
described in Configuring the HW-Link Project.
With the PL kernel project created and the HW function
defined, you can build the kernel project for the Emulation-SW, Emulation-HW, or
Hardware targets. You can build these targets directly in the PL kernel project or as
part of building the top-level system project. The top-level project uses an incremental
build approach that recognizes the state of the sub-projects and only rebuilds projects
that need to be updated.