高层次综合基础-vivado hls第三章

Xilinx的vivado hls工具可以将C语言函数综合为IP,然后集成到FPGA硬件设计系统中。

Vivado hls的设计流程:

  1. 编译、C仿真、C执行和C语言算法的调试
  2. 将C语言算法综合为RTL实现,可选择使用用户最优化指令
  3. 将C语言算法综合生成综合性报告,并进行分析
  4. 使用按钮式流程来验证RTL的实现
  5. 将RTL设计实现封装为一套特定的IP格式

关于vivado hls的输入和输出

  1. 使用C,C++,SystemC编写的C语言函数,这个是Vivado hls的主要输入
  2. 函数可以包含子函数层级
  3. 约束是必需的。包括时钟周期约束,时钟的不确定性约束,FPGA目标器件的约束。时钟的不确定性如果没有指定,默认为12.5%
  4. 优化指令的使用。优化指令的使用并不是必要的,而是可选的。优化指令的作用是用于指示综合流程实现特定行为或者最优化操作
  5. 在传统的C程序设计中,顶层函数都是入口函数main()函数,但是,在vivado hls设计中,你可以将main()下任意子函数指定为综合的顶层函数。Main函数是无法被综合的。
  6. 允许指定main函数中其中的某一个函数为综合的顶层,一个设计只能有一个顶层函数
  7. 综合的顶层函数中的任意的子函数都会被进行综合
  8. 如果要综合的函数不包含在综合的顶层函数的层级下,必须将此类函数单独的进行综合,或者将其合并到顶层函数的层级下
  9. 不支持不可综合的C语言包括:动态内存分配,fpga的资源是固定的资源,不支持动态的创建和分配,你要多少资源,都是预先分配和感知的,不能够动态分配和创建
  10. OS操作系统的一些系统函数是不可综合。
  11. FPGA设计的所有数据都必须从输入的端口读取或者将数据写入输出端口。
  12. 操作系统的文件读写操作,时间和日期之类的操作系统函数是不支持综合的
  13. 任意精度数据类型库
  14. 半精度浮点数据类型库
  15. 数学运算库
  16. FFT函数和FIR函数
  17. 标准的C语言类型是8bit边界实现的,FPGA硬件平台,通常使用任意位宽边界的数据类型
  18. 任务执行流水线,允许当前任务完成之前就开始执行下一项任务
  19. 指定完成函数,循环和区域的时延
  20. 指定使用的资源数量限制
  21. Vivado hls中任何子函数使用的IO协议你是无法控制的,这个是vivado hls自行决定的,用户不能控制这些接口,只能指定接口是否寄存。
相关推荐
Discipline10292 小时前
尼泊尔河流流量:天气驱动的预测与高流量风险
人工智能·算法
XuCoder2 小时前
改一个数,右边全得重算,这题怎么扛住两万次查询
算法
小羊没烦恼!2 小时前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#
weixin_307779133 小时前
基于睿擎工业开发平台的预训练视觉模型轻量化适配与低代码部署优化
开发语言·算法
明德扬3 小时前
FPGA MIPI 多路视频聚合方案
fpga开发·mipi视频拼接·mipi多路拼接·mipi协议·mipi视频拼接方案·fpga mipi方案·mipi csi
XMAIPC_Robot3 小时前
为什么大型储能需要边缘 AI 协调控制器?RK3588+FPGA 高速采集方案
人工智能·嵌入式硬件·fpga开发·arm+fpga·rk3588+fpga·协调控制器
hold?fish:palm3 小时前
45 二叉树的右视图
开发语言·c++·算法
szxinmai主板定制专家4 小时前
RK3576+CODESYS+RK182X+FPGA异构架构:半导体精密设备一体化控制器方案
人工智能·fpga开发·架构·rk3576+codesys
szxinmai主板定制专家4 小时前
半导体设备控制器:RK3576+CODESYS+RK182X异构架构,实现晶圆视觉检测与运动联动闭环
人工智能·fpga开发·架构·视觉检测·边缘计算·codesys·rk3576
粤鼎恒业4 小时前
惠州工厂电子料回收厂家推荐:从交接单反推筛选标准
大数据·数据库·算法·硬件架构·硬件工程·pcb工艺·材料工程