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

张开发
2026/4/19 2:15:39 15 分钟阅读

分享文章

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的优势还是在中高速接口、多接口、算法领域使用比较合适。

更多文章