Matlab HDL Coder与Xilinx Vitis HLS的HDL生成比较



我们正在考虑一个新项目的方法。我们的目标是开发图像处理算法并在fpga上实现它们。

Matlab HDL Coder将Matlab代码转换为HDL代码,Xilinx Vitis HLS将C/c++/SystemC合成为HDL代码。

我们可以快速判断,使用Matlab进行算法开发比使用C/c++/SystemC等低级编程语言要轻松得多。

关于这些工具还有什么我们应该知道的吗?

提前谢谢你。

Vitis HLS pro

Vitis HLS可提供:

  • 已经为您打包的IP,无需进一步修改
  • 生成的代码可能会使用原语和结构来帮助合成器生成网列表。
  • AXI接口(Stream, Lite, Full)准备集成到您的块设计中。
  • 很好的RTL/C联合模拟来检测早期的bug。

所以如果您的目标是Xilinx设备我建议使用c++ HLS + Vitis。

HLS挑战

请注意,HLS很难掌握,这是因为c++的过程性本质与HDLs根本不同。这使得条件分支的生成不清晰。注意不要在代码中使用太多的分支。

尽量保持"数据流"风格,其中数据以流方式输入,输出以清晰的、流水线的、流方式产生。

还要注意整个系统的内存访问和延迟,有时瓶颈并不在您认为的地方。

备选项

最后,一个关于使用HLS的建议。FPGA中已经完成了许多库(例如这里),它们使用本机FPGA HDL,但为计算机视觉的基本块提供加速器。在您的软件中使用。你可能只是想使用它们,而不需要重新发明轮子。

我希望它有帮助!

相关内容

  • 没有找到相关文章