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关键字的根本目的,就是明确区分,这段代码应该最终综合成什么样的电路,这还是比较重要的。

相关推荐
博览鸿蒙1 小时前
数字芯片设计实战路线:硬件工程师的 FPGA
fpga开发
zhutier-2 小时前
Vivado+Artix7+W25Q128JVEIQ FPGA固化程序到FLASH里面教程
fpga开发
hexiaoyan8272 小时前
FMC 子卡设计原理图:154-基于FMC 八路SFP+万兆光纤子卡
fpga开发·光纤收发·fmc 子卡·万兆光纤子卡·sfp+万兆光纤
北京青翼科技14 小时前
青翼基于PCIe总线架构的4路HD-SDI/3G-SDI视频图像模拟源丨图像处理
fpga开发·图像模拟源·fpga开发板·pcie板卡
涛tao讲道18 小时前
星载FPGA选型与抗辐射设计手册
fpga开发·抗单粒子翻转·涛tao悟道·涛的天道观·seu
艾芯微科技18 小时前
钰泰 ETA6973PQ3Y|QFN3×3 2A 同步降压 Buck,I2C 可配置多档输出,动态调压 PMIC
网络·单片机·嵌入式硬件·fpga开发·集成测试·51单片机
NamoAmitabha12818 小时前
lwIP 问答---deepseek
fpga开发
吉他英雄一里18 小时前
时钟IP核(MMCM PLL)
fpga开发
星夜离尘5618 小时前
FPGA实现CRC-8/SMBUS:从参数和位序核对到1041次自检
fpga开发·verilog·fpga·crc
匠行科技1 天前
6U‑VPX 高密度异构处理板硬件方案实践
fpga开发·硬件工程