嵌入式HLS 案例开发步骤分享——基于Zynq-7010/20工业开发板(1)
本帖最后由 Tronlong创龙 于 2024-7-21 15:16 编辑目 录
前 言 3
1 HLS 开发流程说明 5
1.1 HLS 工程导入 5
1.2 编译与仿真 6
1.3 综合 8
1.4 IP 核封装 10
1.5 IP 核测试 14
前 言
本文主要介绍 HLS 案例的使用说明,适用开发环境: Windows 7/10 64bit、Xilinx Vivado
2017.4 、Xilinx Vivado HLS 2017.4 、Xilinx SDK 2017.4。
Xilinx Vivado HLS (High-Level Synthesis,高层次综合) 工具支持将 C 、C++等语言转化
成硬件描述语言,同时支持基于 OpenCL 等框架对 Xilinx 可编程逻辑器件进行开发,可加
速算法开发的进程,缩短产品上市时间。
HLS 基本开发流程如下:
(1) HLS 工程新建/工程导入
(2) 编译与仿真
(3) 综合
(4) IP 核封装
(5) IP 核测试
测试板卡是基于创龙科技Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC工业级核心板。
https://p8.itc.cn/images01/20230101/81a0d4f622974457acc7cfa1793e87ec.jpeg HLS 案例位于产品资料“4-软件资料\Demo\FPGA-HLS-demos\”目录下, 案例目录详细
说明如下表。
目录
目录
文件/目录
说明
hls_ip_demo
bin 或
hw/bin
xxx_xc7z010.bin/xxx_xc7z010.bit
xc7z010 PL 端 IP 核测试可执行文件
xxx_xc7z020.bin/xxx_xc7z020.bit
xc7z020 PL 端 IP 核测试可执行文件
project 或 hw/project
xxx_xc7z010
xc7z010 PL 端 IP 核测试 Vivado 工程
xxx_xc7z020
xc7z020 PL 端 IP 核测试 Vivado 工程
sw
bin
PS 端 IP 核测试裸机可执行文件
project
PS 端 IP 核测试裸机工程
vivado_hls
ip_package
xxx.zip
IP 核
project
solution
仿真方案
src
HLS 工程源码
test_bench
HLS 工程仿真程序或测试文件
vivado_hls.app
HLS 工程文件
HLS 详细开发说明可参考产品资料“6-开发参考资料\Xilinx 官方参考文档\”目录下
的如下文档。
(1) ug871-vivado-high-level-synthesis-tutorial.pdf
(2) ug902-vivado-high-level-synthesis.pdf
1 HLS 开发流程说明
本章节以产品资料“4-软件资料\Demo\FPGA-HLS-demos\”目录下的 led_flash 案例为 例, 演示 HLS 开发流程。此案例的功能是由 PL 端控制评估底板的 LED2 进行闪烁。
在此之前, 请将对应案例目录拷贝至 Windows 非中文路径下。
备注: Windows 路径有长度限制,路径太长将会导致工程打开出错。
在进行本文如下操作前,请先按照调试工具安装文档安装 Xilinx Vivado 开发工具包。
本文默认使用创龙科技的 TL-DLC10 下载器进行操作演示。
1.1 HLS 工程导入
双击桌面如下图标打开Xilinx Vivado HLS 2017.4,并在弹出的界面中点击“Open Project” 选择案例“vivado_hls\project\”目录,然后点击“确定”导入 HLS 工程。
https://p8.itc.cn/images01/20230101/2078b309096943e58e47065742985806.jpeg图 1
https://p7.itc.cn/images01/20230101/2573b4461f97434684eec63e4ad51d71.jpeg图 2
https://p0.itc.cn/images01/20230101/c10fbd19f45d4e2f8c2579b6cde7a854.jpeg https://p4.itc.cn/images01/20230101/239fb4c41f254ddf93154d2f3a04ca64.jpeg图 3
亦可新建 HLS 工程,并使用C/C++等语言进行程序编写。
1.2 编译与仿真
仿真程序位于 Test Bench 目录下,用于验证Source 目录下的 HLS 工程源码。
导入 HLS 工程后,点击 (Run C Simulation)进行编译与仿真。
https://p9.itc.cn/images01/20230101/1ed05a51dc174eea81f6da64fab0ad41.jpeg图 4
弹出如下界面, 勾选“Launch Debugger” ,并点击 OK。
https://p8.itc.cn/images01/20230101/94fff5f243864b2fb5a706ddfc3d379b.jpeg图 5
编译完成后,即可全速或单步运行进行仿真。
https://p1.itc.cn/images01/20230101/50df2f41d85f4240896610174917d992.jpeg图 6
1.3 综合
本小节演示将 C/C++等程序综合成为 RTL 设计,并生成综合报告。
点击界面右上角Synthesis 返回至工程界面,然后点击
https://p3.itc.cn/images01/20230101/c33db8c1d21f434e946f90cad32566ee.jpeg 进行综合。
https://p6.itc.cn/images01/20230101/8e4472e03b3e49d09c5b34977a7a4987.jpeg图 7
https://p9.itc.cn/images01/20230101/8853904cdf3f47a2941047a0abb71298.jpeg图 8
综合完成后,报表文件将自动打开。
https://p9.itc.cn/images01/20230101/a774b8ec61ae4358b4f9c562192a505e.jpeg图 9
https://p9.itc.cn/images01/20230101/88f906fbe8ac490e99ddc6f21acb9679.jpeg 通过报表文件可查看本设计的时延、资源占用等信息。
https://p7.itc.cn/images01/20230101/eea57ebfc49a49c6afb0ced315c47c13.jpeg图 10
1.4 IP 核封装
综合完成后,点击 生成 IP 核。
https://p3.itc.cn/images01/20230101/b22aaa79b3a34d918610d79b72fb1586.jpeg图 11
https://p7.itc.cn/images01/20230101/b1282b0310b9426a80cea2de3a7c3ee9.jpeg图 12
https://p3.itc.cn/images01/20230101/6297dc08817149fe93d8a2e776889ed5.jpeg图 13
运行完成后,将会在案例“vivado_hls\project\solution1\impl\ip\”目录下生成 IP 核。
https://p2.itc.cn/images01/20230101/8f70d5000bff48dc931c83317f439637.jpeg图 14
https://p4.itc.cn/images01/20230101/a3927ffa076548b89f1674a62780cf5e.jpeg图 15
从 2022 年 1 月 1 日起,Vivado HLS 和 Vitis HLS 的导出 IP 命令将无法正常使用。原因 是 HLS 工具将 ip_version 设置为 YYMMDDHHMM 格式, 该值作为带符号整数(32 位) 访 问,会导致溢出并产生如下类似错误。
https://p7.itc.cn/images01/20230101/c39c4123293e49e795bb688146da9144.jpeg图 16
根据 Xilinx 官方建议,请将产品资料“4-软件资料\Tools\”目录下的y2k22_patch-
1.2.zip 补丁解压至 Vivado 2017.4 安装路径下。
https://p6.itc.cn/images01/20230101/de2edefd801047b6ad9457e3d4740b6d.jpeg图 17
确保 Windows 下已安装 Python 工具(2.7.5 版本以上),进入 Vivado 2017.4 安装路
径根目录下, 执行如下命令使用 Python 工具安装补丁。 安装完成后, 即可重新进行 IP 核
封装。
CMD# cd /d E:\App\xilinx\Vivado
CMD# python y2k22_patch\patch.py
https://p6.itc.cn/images01/20230101/ca60fba0d8c549adbb9300d763cfcac4.jpeg图 18
1.5 IP 核测试
进入案例“hls_ip_demo\project\”或“hls_ip_demo\hw\project\”对应平台 PL 端 IP 核测 试 Vivado 工程目录,双击.xpr 文件打开工程,工程默认已添加待测试的 IP 核。
https://p7.itc.cn/images01/20230101/3b74ad683f7c461ead8e1563a6bb5be0.jpeg图 19
如需自行导入 IP 核, 请参考如下步骤。
(1) 请点击“IP Catalog -> User Repository -> Add IP to Repository …” ,在弹出的界面中选择 IP 核后点击 OK。
https://p7.itc.cn/images01/20230101/481b36085ba544ee88c9b00f3f6b87e0.jpeg图 20
https://p0.itc.cn/images01/20230101/da0b4b185d3b41dfa4a8cc2c6a00f6e2.jpeg图 21
(2) 右击“User Repository”后点击“Refresh Repository”,即可看到添加的 IP 核。
https://p4.itc.cn/images01/20230101/30f654071f6447d5ac1f478f76ddfc25.jpeg图 22
https://p1.itc.cn/images01/20230101/ac2ddfe91bde4567b1f8de64f244c56b.jpeg图 23
(3) 如需添加 Vivado 自带的 IP 核, 点击“Open Block Design”,在弹出的界面中点击
https://p7.itc.cn/images01/20230101/e9c41b29134c46449ac2230f82cbaeb2.jpeg , 并选择所需 IP 核将其导入工程。
https://p5.itc.cn/images01/20230101/908d823f0fb74fb29d42539f5c6ec5dc.jpeg图 24
https://p9.itc.cn/images01/20230101/b51aa99ce62745549345f7c23f085e18.jpeg图 25
点击 Vivado 界面左侧的“Generate Bitstream”选项,在弹出的界面中点击 OK 进行 PL
端 IP 核测试 Vivado 工程编译。
https://p5.itc.cn/images01/20230101/a3d255b0fe8f45408b3072b3912bf44c.jpeg图 26
https://p2.itc.cn/images01/20230101/c8db3d7877fe49929b3a658b5ef47164.jpeg图 27
编译完成后,将会在工程“led_flash.runs\impl_1\”目录下生成.bit 和.bin 格式可执行文
。
https://p2.itc.cn/images01/20230101/8fb22c767a6941feb476f16c087a4d05.jpeg图 28
参考 PL 端案例开发手册说明加载 PL 端.bit 格式可执行文件,即可看到评估底板的 LED2 进行闪烁。
话说,编译一次这种代码,一般会占用多久啊?
页:
[1]