FPGA圖像處理之行緩存(linebuffer)的設(shè)計二
掃描二維碼
隨時隨地手機看文章
FPGA圖像處理之行緩存(linebuffer)的設(shè)計二
01
背景知識
在FPGA數(shù)字圖像處理中,行緩存的使用非常頻繁,例如我們需要圖像矩陣操作的時候就需要進行緩存,例如圖像的均值濾波,中值濾波,高斯濾波以及sobel邊緣查找等都需要行緩存設(shè)計。這里的重要性就不在贅述。
02
FPGA實現(xiàn)
圖1 行緩存菊花鏈結(jié)構(gòu)
如圖1所示,我們要設(shè)計n行同時輸出,就串聯(lián)n行。Line_buffer的大小設(shè)置由圖像顯示行的大小(圖像寬度)決定。例如480*272 (480)。下面我們將采用更加靈活的方法來設(shè)計行緩存(linebuffer),使用fifo來設(shè)計。
圖2 Hierarchy
如圖2所示,我們設(shè)計了3行行緩存,總共使用了三個fifo。
FPGA源碼
1 line_buffer_top模塊
如果我們需要緩存5行,7行或更多只需要增加i。這樣使得我們的設(shè)計更加容易移植和維護。
2 line_buffer 模塊
如果需要移植到其他FPGA芯片我們只需要將FIFO替換,或者修改scfifo_component.intended_device_family = "Cyclone IV E"為相應(yīng)的器件。
RTL viewer
圖3 RTL圖
如圖3所示,整個linebuffer由3個line_buffer組成,最終輸出3行緩存數(shù)據(jù)。
仿真頂層:
仿真結(jié)果
圖4 整體仿真效果
圖5 數(shù)據(jù)對齊輸出
設(shè)計成功。