FPGA的HLS案例开发|基于Kintex-7、Zynq-7045_7100开发板
前 言
本文主要介绍HLS案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx VivadoHLS 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核测试
基于创龙科技TLK7-EVM开发板,是一款基于Xilinx Kintex-7系列FPGA设计的高端评估板,由核心板和评估底板组成。核心板经过专业的
PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
评估板接口资源丰富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用户快速进行产品方案评估与技术预研。
![](https://img-blog.csdnimg.cn/img_convert/2b1089f953085528e785210e944df1bf.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图1 TLK7-EVM评估板
开发案例主要包括:
l CameraLink、SDI、HDMI、PAL视频输入/输出案例
l 高速AD(AD9613)采集+高速DA(AD9706)输出案例
l AD9361软件无线电案例
l UDP(10G)光口
通信案例
l UDP(1G)光口通信案例
l Aurora光口通信案例
l PCIe通信案例
l 案例源码、产品资料:site.tronlong.com/pfdownload
HLS案例位于产品资料“4-软件资料DemoFPGA-HLS-demos”目录下,案例目录详细说明如下表。
表1
hls_ip_demo
| bin
| IP核测试程序可执行文件
|
project
| IP核测试程序Vivado工程
|
vivado_hls
| ip_package
| IP核
|
poject
| solution1
| 仿真方案
|
src
| HLS工程源码
|
test_bench
| HLS工程仿真程序或测试文件
|
vivado_hls.app
| HLS工程文件
|
HLS详细开发说明可参考产品资料“6-开发参考资料Xilinx官方参考文档”目录下的《ug871-vivado-high-level-synthesis-tutorial.pdf》和《ug902-vivado-high-level-synthesis.pdf》。
HLS工程导入
双击桌面如下图标打开Xilinx Vivado HLS 2017.4,并在弹出的界面中点击“Open Project”选择案例“vivado_hlsproject”目录,然后点击“确定”导入HLS工程。
![](https://img-blog.csdnimg.cn/img_convert/5cd0e9b3a1c6fcc74ea8a2d00ed15c69.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图2
![](https://img-blog.csdnimg.cn/img_convert/47fbf0e15dc6a7fa27dd586d6b3834c7.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图3
![](https://img-blog.csdnimg.cn/img_convert/f21d64e4fc63667b4fd98e08daca43f6.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图4
亦可新建HLS工程,并使用C/C++等语言进行程序编写。
编译和仿真C代码
仿真程序位于工程的test_bench目录下,用于验证src目录下的HLS工程源码。
导入HLS工程后,点击(Run C Simulation)进行编译与仿真。
![](https://img-blog.csdnimg.cn/img_convert/23f038f0ad48858b594026c869382e35.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图5
弹出如下界面,勾选“Launch Debugger”,并点击OK。
![](https://img-blog.csdnimg.cn/img_convert/b965f42baa7dd6db858ef457915d1376.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图6
编译完成后即可全速或单步运行仿真代码。
![](https://img-blog.csdnimg.cn/img_convert/fa0e81f445bc85f9ab9427a840c4a41f.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图7
IP核封装
综合完成后,点击生成IP核。
![](https://img-blog.csdnimg.cn/img_convert/ff98f05e5d091cc26d1ec9946fedf4c9.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图12
![](https://img-blog.csdnimg.cn/img_convert/a6e1d2f9c12c92ae4bd4397da731e96a.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图13
![](https://img-blog.csdnimg.cn/img_convert/1e2ce656f2da1dd82f1ad0aa376b94e4.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图14
运行完成后,将会在案例“vivado_hlsprojectsolution1implip”目录下生成IP核。
![](https://img-blog.csdnimg.cn/img_convert/e90d59023fd19186ee3dbee7db77841e.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图15
![](https://img-blog.csdnimg.cn/img_convert/7921f11e9fa581597bffcf26a73580fd.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图16
IP核测试
进入案例“hls_ip_demoproject”的IP核测试程序Vivado工程目录,双击.xpr文件打开工程,工程默认已添加待测试的IP核。
![](https://img-blog.csdnimg.cn/img_convert/12e66e4fd88d8c2a12e74be6372c53f0.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图17
如需自行导入IP核,请参考如下步骤。
(1) 请点击“IP Catalog -> User Repository -> Add IP to Repository…”,在弹出的界面中选择IP核后点击OK。
![](https://img-blog.csdnimg.cn/img_convert/60143e099d918610cf9fd5e9f38e56e4.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图18
![](https://img-blog.csdnimg.cn/img_convert/5e3f59c944e9fb97971719de26f2e15f.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图19
(2) 右击“User Repository”后点击“Refresh Repository”,即可看到添加的IP核。
![](https://img-blog.csdnimg.cn/img_convert/41b031654b2200e641af211f216e07ea.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图20
![](https://img-blog.csdnimg.cn/img_convert/6fddaac6273dffceed21d39f35b29484.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图21
(3) 如需添加Vivado自带的IP核,点击“Open Block Design”,在弹出的界面中点击,并选择所需IP核将其导入工程。
![](https://img-blog.csdnimg.cn/img_convert/335fe621da67ef30673e79a335184c23.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图22
![](https://img-blog.csdnimg.cn/img_convert/e5cf4332116faf928a070f69c60eb874.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图23
点击Vivado界面左侧的“Generate Bitstream”选项,在弹出的界面中点击OK进行IP核测试程序Vivado工程编译。
![](https://img-blog.csdnimg.cn/img_convert/c516ff5bc9a460f969dc1ab18d1fc1fe.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图24
![](https://img-blog.csdnimg.cn/img_convert/10925af6c52d299d3a1f973b537376ca.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图25
编译完成后,将会在工程“led_flash.runsimpl_1”目录下生成.bit和.bin格式可执行文件。
![](https://img-blog.csdnimg.cn/img_convert/78afb06517e315f100c4ed6a9737e159.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图26
请参考基于Vivado的FPGA程序加载与固化手册加载.bit格式可执行文件,即可看到评估底板的LED2进行闪烁。
综合
本小节演示将C/C++等程序综合成为RTL设计,并生成综合报告。
点击界面右上角Synthesis返回至工程界面,然后点击进行综合。
![](https://img-blog.csdnimg.cn/img_convert/355d0259e6037c436f0b7e7d98ca842a.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图8
![](https://img-blog.csdnimg.cn/img_convert/893ac7c1726ede895caa7043ffc3f467.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图9
综合完成后,报表文件将自动打开。
![](https://img-blog.csdnimg.cn/img_convert/e3759b3fb927c4f5f95dd3a81802d2d5.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图10
通过报表文件可查看本设计的时延、资源占用等信息。
![](https://img-blog.csdnimg.cn/img_convert/ae6d29623ba660e71539698b3699b907.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图11
l 更多推荐
![](https://img-blog.csdnimg.cn/img_convert/4df7c8aff705737e56825d2b2faf11b1.png)
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)
图27