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

相关推荐
zlinear数据采集卡8 小时前
D223的PWM电机控制:6路独立脉冲+加减速算法深度解析
arm开发·stm32·嵌入式硬件·算法·fpga开发·架构
zlinear数据采集卡12 小时前
ZLinear产品线全景对比:D223 vs DABL7606 vs DABL-G511选型指南
arm开发·嵌入式硬件·算法·fpga开发·开源
何事误红尘16 小时前
ZYNQ学习FPGA笔记(一):vivado安装、XC7Z045
fpga开发
zlinear数据采集卡1 天前
D223的SRAM硬件记录仪:外部触发与瞬态波形捕获方案
arm开发·嵌入式硬件·fpga开发·开源
szxinmai主板定制专家1 天前
基于 RK3588 + Xilinx Kintex-7 FPGA 异构工业主控板设计方案
arm开发·人工智能·嵌入式硬件·fpga开发·zynq
Rambo.xia2 天前
RFSoC高速采集卡设计项目:一块板卡串联综合优化5大核心技术
单片机·嵌入式硬件·fpga开发
XMAIPC_Robot2 天前
RK3588+STM32:高性能机器人运动控制解决方案,兼顾实时性与AI算力
人工智能·stm32·嵌入式硬件·算法·fpga开发·机器人·arm+fpga
zlinear数据采集卡2 天前
D223的DDS信号发生器:10000点查找表与4通道16位DAC波形输出
arm开发·嵌入式硬件·fpga开发·开源
物质波波波2 天前
WS-RPE:面向边缘物理AI实时特征值计算的硬件工作窃取调度器与冗余PE激活架构
人工智能·fpga开发·架构·系统架构·硬件架构
我爱C编程2 天前
基于FPGA的DSB调制解调系统verilog开发
fpga开发·verilog·fpga·dsb