提示:
package_xo
命令将从已封装的 IP 的 component.xml 创建 kernel.xml 文件,因此您无需手动提供此文件或使用“RTL Kernel”Wizard(RTL 内核向导)来生成此文件。针对每个 RTL 内核必须创建 1 个名为 kernel.xml 的 XML 内核描述文件,以供在 Vitis 应用加速开发流程中使用。此 kernel.xml 文件可指定内核属性,如运行时和 Vitis 工具流程所需的寄存器映射和端口。以下代码显示的是 kernel.xml 文件的示例。
<?xml version="1.0" encoding="UTF-8"?>
<root versionMajor="1" versionMinor="6">
<kernel name="vitis_kernel_wizard_0" language="ip_c"
vlnv="mycompany.com:kernel:vitis_kernel_wizard_0:1.0"
attributes="" preferredWorkGroupSizeMultiple="0" workGroupSize="1" interrupt="true">
<ports>
<port name="s_axi_control" mode="slave" range="0x1000" dataWidth="32" portType="addressable" base="0x0"/>
<port name="m00_axi" mode="master" range="0xFFFFFFFFFFFFFFFF" dataWidth="512" portType="addressable"
base="0x0"/>
</ports>
<args>
<arg name="axi00_ptr0" addressQualifier="1" id="0" port="m00_axi" size="0x8" offset="0x010" type="int*"
hostOffset="0x0" hostSize="0x8"/>
</args>
</kernel>
</root>
下表详细描述了 kernel.xml 的格式:
标签 | 属性 | 描述 |
---|---|---|
<root>
|
versionMajor
|
对于最新版本的 Vitis 软件平台,该属性设置为 1。 |
versionMinor
|
对于最新版本的 Vitis 软件平台,该属性设置为 6。 | |
<kernel> |
name
|
内核名称 |
language
|
对于 RTL 内核,该属性始终设置为 ip_c 。 |
|
vlnv
|
必须与 IP 的 component.xml 中的供应商、库、名称和版本属性匹配。例如,如果 component.xml 包含以下标签:
内核 XML 中的 vlnv 属性必须设置为: |
|
attributes
|
保留。将其设置为空字符串:"" | |
preferredWorkGroupSizeMultiple
|
保留。将其设置为 0。 | |
workGroupSize
|
保留。将其设置为 1。 | |
interrupt
|
如果 RTL 内核具有中断,该属性设置为“true”(interrupt="true"),否则省略。 | |
hwControlProtocol
|
指定 RTL 内核的控制协议。
|
|
<port>
|
name
|
指定端口名称。 重要:
AXI4-Lite 接口必须命名为
S_AXI_CONTROL 。 |
mode
|
至少需要一个 AXI4 主端口和一个 AXI4-Lite 从端口。 可指定 AXI4-Stream 端口以在内核之间进行数据串流。
|
|
range
|
端口的地址空间范围。 | |
dataWidth
|
通过此端口的数据宽度,默认为 32 位。 | |
portType
|
指示端口是否可寻址或进行串流。
|
|
base
|
对于 AXI4 主端口和从端口,将其设置为 0x0 。此标签不适用于 AXI4-Stream 端口。 |
|
<arg>
|
name
|
指定内核软件实参名称。 |
addressQualifier
|
有效值:
|
|
id
|
仅适用于 AXI4 主端口和从端口。ID 应是有顺序的。它用于确定内核实参的顺序。 不适用于 AXI4-Stream 端口。 |
|
port
|
指定与 arg 连接的 <port> 名称。 |
|
size
|
实参大小(以字节为单位)。默认值为 4 个字节。 | |
offset
|
表示寄存器存储器地址。 | |
type
|
实参的 C 数据类型。例如,uint* 、int* 或 float* 。 |
|
hostOffset
|
保留。设置为 0x0 。 |
|
hostSize
|
实参的大小。默认值为 4 个字节。 | |
memSize
|
对于 AXI4-Stream 端口,memSize 设置创建的 FIFO 的深度。提示: 不适用于 AXI4 端口。
|
|
以下标签用于为 AXI4-Stream 端口指定其它标签。这些标签不适用于 AXI4 端口。 | ||
<connection>
|
connection 标签用于描述硬件中的实际连接,从内核到针对 PIPE 插入的 FIFO 的连接或从 FIFO 到内核的连接。 | |
srcInst
|
指定连接的源实例。 | |
srcPort
|
指定连接的源实例上的端口。 | |
dstInst
|
指定连接的目标实例。 | |
dstPort
|
指定连接的目标实例上的端口。 |