1. 前言
本课题为仿真版本的硬件调试扩展。在仿真版本的基础上,增加了图像存储模块、HDMI 接口模块、图像时序处理模块及 RGB 转 DVI 模块等。
2. 算法硬件测试效果图预览
用显示器显示原二值图:
原图像二值图:

腐蚀后的图像二值图:

3. 算法运行软件版本
Vivado 2022.2
4. 部分核心程序
wire [7:0] rgb_r_reg; // video red data register
wire [7:0] rgb_g_reg; // video green data register
wire [7:0] rgb_b_reg; // video blue data register
wire [7:0] doutR;
blk_mem_gen_R blk_mem_gen_0u1 (
.clka(clk),
.rsta(rst),
.wea(1'b0),
.addra(addra),
.douta(doutR),
.rsta_busy()
);
wire [7:0] doutG;
blk_mem_gen_G blk_mem_gen_0u2 (
.clka(clk),
.rsta(rst),
.wea(1'b0),
.addra(addra),
.douta(doutG),
.rsta_busy()
);
wire [7:0] doutB;
blk_mem_gen_B blk_mem_gen_0u3 (
.clka(clk),
.rsta(rst),
.wea(1'b0),
.addra(addra),
.douta(doutB),
.rsta_busy()
);
wire [7:0] o_gray;
main_gray main_gray_u(
.i_clk(clk),
.i_rst(rst),
.i_image_R(doutR),
.i_image_G(doutG),
.i_image_B(doutB),
.o_gray(o_gray)
);
wire [7:0] o_binary_image;
wire [7:0] o_expansion;
fushi fushi_u(
.i_clk(clk),
.i_rst(rst),
.i_I0(o_gray),
.o_binary_image(o_binary_image),
.o_expansion(o_expansion)
);
assign rgb_r_reg = (key == 1'b0) ? o_expansion : o_binary_image;
assign rgb_g_reg = (key == 1'b0) ? o_expansion : o_binary_image;
assign rgb_b_reg = (key == 1'b0) ? o_expansion : o_binary_image;
endmodule
5. 算法测试参数
parameter H_ACTIVE = 16'd1280; // horizontal active time (pixels)
parameter H_FP = 16'd110; // horizontal front porch (pixels)
parameter H_SYNC = 16'd40; // horizontal sync time (pixels)
parameter H_BP = 16'd220; // horizontal back porch (pixels)
parameter V_ACTIVE = 16'd720; // vertical active Time (lines)
parameter V_FP = 16'd5; // vertical front porch (lines)
parameter V_SYNC = 16'd5; // vertical sync time (lines)
parameter V_BP = 16'd20; // vertical back porch (lines)
parameter HS_POL = 1'b1; // horizontal sync polarity, 1 : POSITIVE, 0 : NEGATIVE
parameter VS_POL = 1'b1; // vertical sync polarity, 1 : POSITIVE, 0 : NEGATIVE


