芯片设计小白
我们当年做车也是用FPGA处理OV7725,延迟压到5ms内没问题。核心就一句话:让数据流动起来,别等。具体来说,从摄像头传感器拿到像素流(比如RGB565或YUV),立刻进流水线。第一级做色彩空间转换(比如转灰度),第二级做实时二值化(阈值可动态调整),第三级做边缘检测(比如用Sobel算子),这几级完全可以用寄存器打拍流水,像素进来就像过流水线,每个时钟周期都输出一个处理后的像素。关键在于,中间不要用帧缓存!一存一整帧,光存储延迟就十几毫秒了,绝对超时。我们的做法是,处理到一定行数(比如攒够8行)后,边缘检测模块就开始工作,并同时进行中线拟合。中线拟合可以用查找表(LUT)和累加器并行计算,在扫描过程中实时更新中线参数。这样,从第一个像素输入,到第一个中线参数输出,延迟也就几十微秒量级,主要就是管线深度和几个行缓冲的延迟。资源方面,行缓冲用Block RAM实现,非常省。注意时钟要和摄像头像素时钟同步或倍频,确保吞吐量匹配。
