RTL 类型的内核可以提供顶层 Verilog 设计,此设计由控制寄存器和 Vadd
子模块设计示例组成。下图显示了配置有 2 个 AXI4 主接口的顶层设计。如果修改了控制寄存器模块以确保它仍与位于 Vivado 内核工程的导入目录中的 kernel.xml 文件保持一致,则应该谨慎处理。此块示例可替换为您的定制逻辑,或者用作为设计的起点。
图 1. 内核类型 RTL 顶层
下图所示的 Vadd
块示例由简单的加法器函数、1 个 AXI4 读取主接口和 1 个 AXI4 写入主接口组成。每个已定义的 AXI4 接口都有一个独立的加法器代码示例。每个接口的第一个关联实参用作示例的数据指针。每个示例读取 16 KB 数据,执行 32 位加 1 操作,然后将 16 KB 数据写回原位(读写地址相同)。
图 2. 内核类型 RTL 示例
下表描述了 IP 工程示例内的部分重要文件,这些文件与内核的 Vivado 工程根目录有关,其中 <kernel_name>
是您在“RTL Kernel”Wizard 中指定的内核名称。
文件名 | 描述 | 随内核类型提供 |
---|---|---|
<kernel_name>_ex.xpr | Vivado 工程文件 | 全部 |
imports 目录 | ||
<kernel_name>.v | 内核顶层模块 | 全部 |
<kernel_name>_control_s_axi.v | RTL 控制寄存器模块 | RTL |
<kernel_name>_example.sv | RTL 块示例 | RTL |
<kernel_name>_example_vadd.sv | RTL AXI4 矢量加法块示例 | RTL |
<kernel_name>_example_axi_read_master.sv | RTL AXI4 读取主接口示例 | RTL |
<kernel_name>_example_axi_write_master.sv | RTL AXI4 写入主接口示例 | RTL |
<kernel_name>_example_adder.sv | RTL AXI4-Stream 加法器块示例 | RTL |
<kernel_name>_example_counter.sv | RTL 计数器示例 | RTL |
<kernel_name>_exdes_tb_basic.sv | 仿真测试激励文件 | 全部 |
<kernel_name>_cmodel.cpp | 用于软件仿真的软件 C 语言模型示例。 | 全部 |
<kernel_name>_ooc.xdc | 非关联赛灵思约束文件 | 全部 |
<kernel_name>_user.xdc | 用于内核用户约束的赛灵思约束文件。 | 全部 |
kernel.xml | 内核描述文件 | 全部 |
package_kernel.tcl | 内核封装脚本 proc 定义 | 全部 |
post_synth_impl.tcl | Tcl 实现后文件 | 全部 |
exports 目录 | ||
src/host_example.cpp | 主机代码实例 | 全部 |
makefile | makefile 示例 | 全部 |