📄 rd_ctr_mdf.v
字号:
mdf_y_a22<=rd_data_y1_d2;
mdf_y_a23<=rd_data_y1_d1;
end
else if(hde_out&&(!hde_d6))//second column
begin
mdf_y_a11<=rd_data_y1_d3;
mdf_y_a12<=rd_data_y1_d2;
mdf_y_a13<=rd_data_y1_d1;
mdf_y_a21<=rd_data_y1_d3;
mdf_y_a22<=rd_data_y1_d2;
mdf_y_a23<=rd_data_y1_d1;
end
else if((!hde_d2)&&hde_d3)//last 2 column
begin
mdf_y_a11<=rd_data_y1_d3;
mdf_y_a12<=rd_data_y1_d2;
mdf_y_a13<=rd_data_y1_d1;
mdf_y_a21<=rd_data_y1_d3;
mdf_y_a22<=rd_data_y1_d2;
mdf_y_a23<=rd_data_y1_d1;
end
else if((!hde_d3)&&hde_d4)//last column
begin
mdf_y_a11<=rd_data_y1_d3;
mdf_y_a12<=rd_data_y1_d2;
mdf_y_a13<=rd_data_y1_d1;
mdf_y_a21<=rd_data_y1_d3;
mdf_y_a22<=rd_data_y1_d2;
mdf_y_a23<=rd_data_y1_d1;
end
else if(hde_d6)
begin
mdf_y_a11<=rd_data_y1_d3;
mdf_y_a12<=rd_data_y1_d2;
mdf_y_a13<=rd_data_y1_d1;
mdf_y_a21<=rd_data_y1_d3;
mdf_y_a22<=rd_data_y1_d2;
mdf_y_a23<=rd_data_y1_d1;
end
end//if !rd_start
else
begin
if(line_switch)
begin
if(hde_d4&&(!hde_out))//first column
begin
mdf_y_a11<=rd_data_y1_d2;
mdf_y_a12<=rd_data_y1_d2;
mdf_y_a13<=rd_data_y1_d1;
mdf_y_a21<=rd_data_y2_d2;
mdf_y_a22<=rd_data_y2_d2;
mdf_y_a23<=rd_data_y2_d1;
end
else if(hde_out&&(!hde_d6))//second column
begin
mdf_y_a11<=rd_data_y1_d3;
mdf_y_a12<=rd_data_y1_d2;
mdf_y_a13<=rd_data_y1_d1;
mdf_y_a21<=rd_data_y2_d3;
mdf_y_a22<=rd_data_y2_d2;
mdf_y_a23<=rd_data_y2_d1;
end
else if((!hde_d2)&&hde_d4)//last 2 column
begin
mdf_y_a11<=rd_data_y1_d3;
mdf_y_a12<=rd_data_y1_d2;
mdf_y_a13<=rd_data_y1_d1;
mdf_y_a21<=rd_data_y2_d3;
mdf_y_a22<=rd_data_y2_d2;
mdf_y_a23<=rd_data_y2_d1;
end
else if((!hde_d2)&&hde_d4)//last column
begin
mdf_y_a11<=rd_data_y1_d3;
mdf_y_a12<=rd_data_y1_d2;
mdf_y_a13<=rd_data_y1_d1;
mdf_y_a21<=rd_data_y2_d3;
mdf_y_a22<=rd_data_y2_d2;
mdf_y_a23<=rd_data_y2_d1;
end
else if(hde_d6)
begin
mdf_y_a11<=rd_data_y1_d3;
mdf_y_a12<=rd_data_y1_d2;
mdf_y_a13<=rd_data_y1_d1;
mdf_y_a21<=rd_data_y2_d3;
mdf_y_a22<=rd_data_y2_d2;
mdf_y_a23<=rd_data_y2_d1;
end
end//if line_switch
else
begin
if(hde_d4&&(!hde_out))//first column
begin
mdf_y_a11<=rd_data_y2_d2;
mdf_y_a12<=rd_data_y2_d2;
mdf_y_a13<=rd_data_y2_d1;
mdf_y_a21<=rd_data_y1_d2;
mdf_y_a22<=rd_data_y1_d2;
mdf_y_a23<=rd_data_y1_d1;
end
else if(hde_out&&(!hde_d6))//second column
begin
mdf_y_a11<=rd_data_y2_d3;
mdf_y_a12<=rd_data_y2_d2;
mdf_y_a13<=rd_data_y2_d1;
mdf_y_a21<=rd_data_y1_d3;
mdf_y_a22<=rd_data_y1_d2;
mdf_y_a23<=rd_data_y1_d1;
end
else if((!hde_d2)&&hde_d4)//last 2 column
begin
mdf_y_a11<=rd_data_y2_d3;
mdf_y_a12<=rd_data_y2_d2;
mdf_y_a13<=rd_data_y2_d1;
mdf_y_a21<=rd_data_y1_d3;
mdf_y_a22<=rd_data_y1_d2;
mdf_y_a23<=rd_data_y1_d1;
end
else if((!hde_d2)&&hde_d4)//last column
begin
mdf_y_a11<=rd_data_y2_d3;
mdf_y_a12<=rd_data_y2_d2;
mdf_y_a13<=rd_data_y2_d1;
mdf_y_a21<=rd_data_y1_d3;
mdf_y_a22<=rd_data_y1_d2;
mdf_y_a23<=rd_data_y1_d1;
end
else if(hde_d6)
begin
mdf_y_a11<=rd_data_y2_d3;
mdf_y_a12<=rd_data_y2_d2;
mdf_y_a13<=rd_data_y2_d1;
mdf_y_a21<=rd_data_y1_d3;
mdf_y_a22<=rd_data_y1_d2;
mdf_y_a23<=rd_data_y1_d1;
end
end//else if line_switch
end//else if !rd_start
end//else if !rst_n
end//always
//this always block initializes mdf_uv_a* and generates
//correct mdf_uv_a* for median filter
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
mdf_uv_a11<=8'b0;
mdf_uv_a12<=8'b0;
mdf_uv_a13<=8'b0;
mdf_uv_a21<=8'b0;
mdf_uv_a22<=8'b0;
mdf_uv_a23<=8'b0;
end
else
begin
if(!rd_start)//for first line
begin
if(hde_d4&&(!hde_d6))//first column and second column
begin
mdf_uv_a11<=rd_data_uv1_d2;
mdf_uv_a12<=rd_data_uv1_d2;
mdf_uv_a13<=rd_data_uv1;
mdf_uv_a21<=rd_data_uv1_d2;
mdf_uv_a22<=rd_data_uv1_d2;
mdf_uv_a23<=rd_data_uv1;
end
else if((!hde_d2)&&hde_d4)//last 2 column and last column
begin
mdf_uv_a11<=rd_data_uv1_d4;
mdf_uv_a12<=rd_data_uv1_d2;
mdf_uv_a13<=rd_data_uv1_d2;
mdf_uv_a21<=rd_data_uv1_d4;
mdf_uv_a22<=rd_data_uv1_d2;
mdf_uv_a23<=rd_data_uv1_d2;
end
else if(hde_d6)
begin
mdf_uv_a11<=rd_data_uv1_d4;
mdf_uv_a12<=rd_data_uv1_d2;
mdf_uv_a13<=rd_data_uv1;
mdf_uv_a21<=rd_data_uv1_d4;
mdf_uv_a22<=rd_data_uv1_d2;
mdf_uv_a23<=rd_data_uv1;
end
end//if !rd_start
else//if !rd_start
begin
if(line_switch)
begin
if(hde_d4&&(!hde_d6))//first column and second column
begin
mdf_uv_a11<=rd_data_uv1_d2;
mdf_uv_a12<=rd_data_uv1_d2;
mdf_uv_a13<=rd_data_uv1;
mdf_uv_a21<=rd_data_uv2_d2;
mdf_uv_a22<=rd_data_uv2_d2;
mdf_uv_a23<=rd_data_uv2;
end
else if((!hde_d2)&&hde_d4)//last 2 column and last column
begin
mdf_uv_a11<=rd_data_uv1_d4;
mdf_uv_a12<=rd_data_uv1_d2;
mdf_uv_a13<=rd_data_uv1_d2;
mdf_uv_a21<=rd_data_uv2_d4;
mdf_uv_a22<=rd_data_uv2_d2;
mdf_uv_a23<=rd_data_uv2_d2;
end
else if(hde_d6)
begin
mdf_uv_a11<=rd_data_uv1_d4;
mdf_uv_a12<=rd_data_uv1_d2;
mdf_uv_a13<=rd_data_uv1;
mdf_uv_a21<=rd_data_uv2_d4;
mdf_uv_a22<=rd_data_uv2_d2;
mdf_uv_a23<=rd_data_uv2;
end
end//if line_switch
else//if line_switch
begin
if(hde_d4&&(!hde_d6))//first column and second column
begin
mdf_uv_a11<=rd_data_uv2_d2;
mdf_uv_a12<=rd_data_uv2_d2;
mdf_uv_a13<=rd_data_uv2;
mdf_uv_a21<=rd_data_uv1_d2;
mdf_uv_a22<=rd_data_uv1_d2;
mdf_uv_a23<=rd_data_uv1;
end
else if((!hde_d2)&&hde_d4)//last 2 column and last column
begin
mdf_uv_a11<=rd_data_uv2_d4;
mdf_uv_a12<=rd_data_uv2_d2;
mdf_uv_a13<=rd_data_uv2_d2;
mdf_uv_a21<=rd_data_uv1_d4;
mdf_uv_a22<=rd_data_uv1_d2;
mdf_uv_a23<=rd_data_uv1_d2;
end
else if(hde_d6)
begin
mdf_uv_a11<=rd_data_uv2_d4;
mdf_uv_a12<=rd_data_uv2_d2;
mdf_uv_a13<=rd_data_uv2;
mdf_uv_a21<=rd_data_uv1_d4;
mdf_uv_a22<=rd_data_uv1_d2;
mdf_uv_a23<=rd_data_uv1;
end
end//else if line_switch
end//else if !rd_start
end//else if !rst_n
end//always
//this always block initializes hs_out, vs_out and generates
//hs_out, vs_out
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
hs_out<=1'b0;
vs_out<=1'b0;
hs_d1<=1'b0;
vs_d1<=1'b0;
hs_d2<=1'b0;
vs_d2<=1'b0;
hs_d3<=1'b0;
vs_d3<=1'b0;
hs_d4<=1'b0;
vs_d4<=1'b0;
end
else
begin
hs_d1<=hs;
hs_d2<=hs_d1;
hs_d3<=hs_d2;
hs_d4<=hs_d3;
hs_out<=hs_d4;
vs_d1<=vs;
vs_d2<=vs_d1;
vs_d3<=vs_d2;
vs_d4<=vs_d3;
vs_out<=vs_d4;
end//else if !rst_n
end//always
//this always block initializes hde_out, vde_out and generates
//correct hde_out, vde_out
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
hde_d1<=1'b0;
hde_d2<=1'b0;
hde_d3<=1'b0;
hde_d4<=1'b0;
hde_out<=1'b0;//hde_out=hde_d5
hde_d6<=1'b0;
vde_1_d1<=1'b0;
vde_1_d2<=1'b0;
vde_1_d3<=1'b0;
vde_1_d4<=1'b0;
vde_1_out<=1'b0;
vde_2_out<=1'b0;
end
else
begin
hde_d1<=hde;
hde_d2<=hde_d1;
hde_d3<=hde_d2;
hde_d4<=hde_d3;
hde_out<=hde_d4;
hde_d6<=hde_out;
vde_1_d1<=vde;
vde_1_d2<=vde_1_d1;
vde_1_d3<=vde_1_d2;
vde_1_d4<=vde_1_d3;
vde_1_out<=vde_1_d4;
if(extra_vde&&hde_rd_start)
vde_2_out<=extra_vde;
else
vde_2_out<=1'b0;
end//else if !rst_n
end//always
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -