vivado hls的应用(开篇)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

我们都知道,在xlinx的fpga上面,如果需要做硬编码,有两种方式,一种是verilog,一种是hls。两种都是xilinx支持的编码方式。在这两种方式当中,hls虽然是用c或者是c++编写,最终也是要变成verilog,部署在block design之中的。目前hls已经非常好用,但是还是有很多人怀疑hls,那么对于一般的场景,verilog和hls应该怎么使用呢?

1、hls适合算法,verilog更适合接口

如果是基础接口协议,毫无疑问,那就是verilog。但是偏算法类的ip,再用verilog来做,就效率很低了。这个时候,特别适合用hls来进行开发。

2、hls更适合软件专业的同学入手

fpga本身如果只是用于接口,用于ad/da采样,那就大材小用了。其实fpga的并发性,对于算法的优化是非常合适的。加上zynq这种二合一芯片,arm和fpga可以同时访问ddr,两者可以通过dma共享数据的内容,hls就更加适合软件专业的同学入手了。

3、hls设计完了,需要连接到block design当中测试

如果是hls设计完了,建议先本地仿真测试下。**测试没有问题之后,再把hls生成的ip合并到最终的block design当中,这是非常关键的一步。**我们自己设计的ip有没有用,只有放到block design里面去,才能发挥出它应有的作用。

4、用好dma

ip如果要访问ddr,一种方式就是通过m_axi自己去读取ddr,还有一种方式就是通过dma的方式进行处理,比如axis接口。有了dma,就可以通过mm2s获取到数据,然后送给ip。而ip这边处理完数据之后,接着发送给dma,通过s2mm写回ddr。这样就能达到一个高效处理io数据的目的。

5、ddr数据+ip算法是一个标配

很多时候,外设的数据都是通过模块,或者外设芯片,或者是网络协议送到ddr的。这部分数据如果用传统的cpu去处理,很可能效率偏慢,或者处理不及时。这种情况下就可以采用hls ip实现算法的形式,去实现加速处理。

6、pragma关键字是hls实现的关键

我们虽然可以用c编写业务逻辑,但是c只是一层皮。在这层皮之下,哪些是输入,哪些是输出,哪些是寄存器部分,哪些是m_axi,哪些是axis,这些部分都是通过pragma可以设置好的。而pragma关键字的根本目的,就是明确区分,这段代码应该最终综合成什么样的电路,这还是比较重要的。

相关推荐
博览鸿蒙3 天前
FPGA开发使用的语言
fpga开发·fpga
明德扬3 天前
机器人多摄像头如何做FPGA多路视频聚合?
学习·fpga开发·fpga
JoYER_cc4 天前
FPGA 调试实录:LED 闪烁程序从踩坑到仿真验证的完整经验总结
fpga开发
ktd0074 天前
复旦微开发环境搭建流程备忘录
fpga开发
ERROR:994 天前
陈工,试试Agent开发FPGA
fpga开发
威嵌神州4 天前
复旦微 FMQL100TAI 开发 8 问:仿真器、系统、接口高频问题解答
人工智能·嵌入式硬件·fpga开发
北京青翼科技4 天前
青翼基于PCIe的VU13P FPGA信号处理板
fpga开发·fpga开发板·图像处理卡·pcie板卡
szxinmai主板定制专家4 天前
NXP LS1046A 硬件方案: LS1046A+FPGA 异构加速架构实践
大数据·图像处理·人工智能·嵌入式硬件·fpga开发
Riwuarua5 天前
从近似0基础开始FPGA开发 -- part.14 JESD204协议、IP核与嵌入式初始化
fpga开发·jesd
第二层皮-合肥5 天前
Vivado 自动生成的 AXI‑Lite 从机 IP 的操作步骤
fpga开发