HLS 工程
New Vivado HLS Project - Add/Remove Files -- 添加顶层函数名 - Next - Next - Device Selection Dialog
编写 C++/C 代码 - C synthesis - Export RTL
创建的 HLS 工程如图所示
- Includes 目录包含有 HLS 开发中可用的库函数
- Source 为源文件,打开此文件时,在右侧的 Directive 栏会列出程序中所有用到的变量,函数和循环结构等
- Test Bench 为测试文件
- solution1 文件夹为通过 HLS 进行 C synthesis 和 Export RTL 的过程文件和结果
constrains 文件夹为相关的 tcl 文件
impl 文件夹为 C synthesis 和 Export RTL 的过程文件和可在 Vivado 加载的 IP 核,其中 ip 文件夹下的压缩文件即 IP 核
syn 文件夹为生成的 systemc、Verilog 和 VHDL 版本的源文件和 Synthesis 的报告 (.rpt 文件)
对应 Vivado 工程中的操作
在工程里
IP Catalog - Add Repositories... -- 选择创建的 HLS 工程所在路径
即可直接添加并使用此 IP
HLS 中包含的库文件 (Includes 目录)
其中:
- /include/... -- 实际开发中的重要库,如:数据类型相关的 (ap_cint.h、ap_int.h、systemc.h 等)、HLS 流相关的 (hls_stream.h)、Math 相关的 (math.h、cmath.h)、视频与图像相关的 (hls_video.h、hls_opencv.h)、数据处理相关的 (hls_fft.h、hls_fir.h、ap_shift_reg.h、hls_linear_algebra.h、hls_dsp.h)
- /msyc/include -- MSYS 相关支持包和基于 MinGW 的 GCC 相关支持包
- /win64/tools/auto_cc/include --
- /win64/tools/systemc/include -- systemc 类型的支持包,如数据类型相关的 systemc.h 等
- D:/... -- 最后一个是用户在创建 HLS 工程时所创建的顶层函数
Synthesis Report (.rpt)
General Information -- 一般信息,如工程的名称、建立日期、所用软件版本、ZYNQ 芯片
Performance Estimates -- 性能估计,时钟、延迟等的性能估计
Utilization Estimates -- 使用率估计,BRAM_18K、DSP48E、FF、LUT 的使用率,还提供有使用率的详细信息
Interface -- 接口相关,即各接口的详细信息列表
Cosimulation Report (.rpt)
Result -- RTL 仿真的报告
Vivado HLS 接口
在 HLS 中设计 IP 与外部的接口时,需要使用 HLS Pragmas 语句,需要注意各接口的支持情况
来自于:UG-902
注意,上图中的 D 即为默认"Default",注意各类接口的使用情景和同类各接口的支持情况和综合结果的不同
注:
可参考用户手册:UG-871 UG-902
可参考 B 站相关视频: