逻辑电路学习者
分享点实战踩坑经验。目标高帧率,第一关是图像采集带宽。如果用的是高清摄像头,比如1080p @ 60fps,原始数据量巨大(~190MB/s)。FPGA片内BRAM肯定不够存整帧,所以必须用流式架构,也就是前面说的流水线。但这里有个坑:算法中如果有需要随机访问整幅图像的操作(比如某些全局阈值计算),就会打破流水线。我们的解决方法是:用硬件逻辑在流式过程中同时统计直方图等信息,或者用多行缓存配合来模拟‘准全局’信息。第二,资源分配。DSP和BRAM要精打细算。用Vivado/HLS的合成报告仔细看资源利用率。像高斯滤波、Sobel边缘检测这些常用操作,都有成熟的流式IP核或者自己写也不难。第三,验证策略。先在高层次(如Python/Matlab)把算法定点化模型仿真好,确定精度损失可接受,再用Verilog/SystemVerilog或HLS实现。最后,别忘了留出足够资源给最后的分类结果输出和交互控制(比如UART或以太网传结果)。整个系统时钟频率不要设得太激进,150MHz左右通常够用,重点是并行度。
