vivado hls的应用(hls需要verilog基础)

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

hls的开发虽然比较方便,但是本质上hls转成一个ip,还是需要c翻译成verilog的。所以从这个角度上来说,c语言就是一个中介。只是因为用c语言的人比较多,所以hls选择了c/c++作为开发的基础语言。就像android开发的话,选择java是一个道理。

verilog说简单也简单,主要是和c的思维不太一样,它的驱动就是clk,起始点就是reset。

1、最简单的verilog,就是clk、rst和led

最简单的verilog,其实就类似于c语言里面的hello world,它有时钟,有复位,有输出。这就是一个最小工程了。

2、状态机的引入

如果只是写一些led程序,基本照着verilog语法写就可以了。但是需要处理一些协议的话,就需要引入状态机,比如串口。不管什么接口,首先拆分成不同的状态,这样不同的信号在不同状态下的逻辑,就可以慢慢写出来了。

3、输入去抖

有了输出,还要有输入。而输入最简单的信号就是按键输入,然而输入的key一般是机械装置,这个时候就要引入防抖算法。这部分,可以借助于之前谈到的状态机,就可以轻松解决。

4、开始输出时钟

有一些协议不管是信号的输入、输出,有时候还需要输出时钟。对于低速的时钟,不需要pll倍频。直接使用verilog的输入时钟,分频处理就可以了,最典型的就是iic时钟、spi时钟。有了前面的输入、输出,再加上本次提到的时钟输出,就可以和外界芯片通信处理了,非常有效。

5、pll倍频

除了低速接口,还有一些高速接口需要处理,比如说vga、比如说sdram。这些接口的速率都比fpga的输入时钟要高。所以没办法,处理这些信号就有必要引入pll倍频ip。好在不管是altera,还是xilinx,本身eda都提供了对应的ip,直接拖过来使用即可。

6、引入fifo解决频率差异问题

既然模块倍频了,那么肯定会出现不同频率模块需要进行相互通信的case。最典型的就是图像处理的场景。一方面是图像采集的速度,一方面是图像播放的速度。为了解决速度差的问题,一般先把图片放到ddr,然后再从ddr送出去。由于ddr处理速度非常快,所以采集速度、ddr速度、播放速度都不一样。这个时候就引入fifo就可以完美解决这一问题,一个是read fifo,一个是write fifo。

7、延迟打拍

这一招在图像处理的时候经常需要用到的。比如采集到的图像需要做某个算法,或者是做某个统计值,这个时候就可以采用延迟打拍的方法来处理。比如说,最简单的就是把彩色的图像,转成黑白的图像,此时只需要把所有图像延迟几拍即可。

8、与mcu或者mpu协作

有一些功能用fpga来做并不是很合适,比如纯文件系统处理,或者是纯网络系统处理。这个时候就适合旁边接一个小mcu,或者是mpu,通过spi连接,获取fpga送过来的数据、信号、甚至是图片,这都是很合适的方式。

当然fpga的优势,还是在中高速接口、多接口、算法领域使用,比较合适。

相关推荐
传感器与混合集成电路20 小时前
伺服数据采集控制模块系统集成实战手册:接口设计要点、上电顺序与开发环境配置全解析
fpga开发
xxLearn1 天前
Vivado 2025.2 下载程序时提示:“ERROR : invalid command name ps7_init“
fpga开发
科恒盛远2 天前
【无标题】
fpga开发·硬件工程·信号处理
千寻xun2 天前
一、理论篇-NVME协议学习笔记
笔记·学习·fpga开发·nvme ssd·nvme协议
AndyHeee2 天前
【PCIe中的BAR、MMIO、MMU、mmap函数与页表】
fpga开发
nuoxin1143 天前
HR4988替代A4988-富利威
网络·人工智能·嵌入式硬件·fpga开发·dsp开发
一口一口吃成大V3 天前
vivado的bit 和 bin的区别
fpga开发
尤老师FPGA4 天前
HDMI数据的接收发送实验(十八)
fpga开发
北京青翼科技4 天前
青翼科技 JFM7K325T FPGA+FT-M6678 DSP 的全国产化信号处理平台丨FPGA开发板
fpga开发·数据采集卡·fmc子卡·fpga开发板·ad采集卡·图像处理卡·dsp信号处理
zlinear数据采集卡4 天前
从0到1硬核拆解:工业级数据采集卡的隔离设计与Modbus通信实战
arm开发·单片机·嵌入式硬件·fpga开发·开源