1. 程式人生 > 其它 >基於FPGA的均值濾波(三)

基於FPGA的均值濾波(三)

基於FPGA的均值濾波(三)

之二維求和模組

在實現了視窗內一維行方向上的求和操作,現在要得到整個視窗內的畫素之和,還必須將每一行的計算結果再疊加起來。但是每一行的計算結果就不可以使用上面的增量更新的方法進行計算,這是由於縱向的資料流不是流水線式的。這時就只能採用普通的求和方式了。

同樣,在進行列方向上的求和時,需要進行行快取,並將一維行方向的求和結果打入行快取,行快取個數為視窗尺寸減1.

就視窗尺寸5x5而言,二維求和模組的帶你擼設計如下:

module sum_2d(

rst_n, //非同步復位訊號
clk, //同步時鐘
din_valid, //輸入資料有效
din, //輸入資料流
dout, //輸出資料流
vsync_din, //輸入場同步訊號
vsync_out, //輸出場同步訊號
is_boarder, //輸出邊界資訊
dout_valid                //輸出資料有效訊號
 );
parameter DW = 14;
parameter KSZ = 3;
parameter IH = 512;
parameter IW = 640;
//首先例化一個行方向上的求和模組
wire [2*DW-1:0] sum_row; //行求和模組
wire row_valid; //行求和結果有效訊號
sum_1d #(DW,KSZ)
rom_sum
(
.clk(clk),
.din(din),
.din_valid(din_valid),
.dout_valid(row_valid),
.dout(sum_row)
 );
//例化(KSZ-1)個行快取
generate
begin : line_buffer_inst
end
endgenerate
endmodule