?? bt656_detection.v
字號(hào):
//---------------------------------------------------------------
//模塊名稱:bt656_detection
//功能說(shuō)明:BT656視頻參數(shù)檢測(cè)模塊
// 讀BT656視頻數(shù)據(jù),檢測(cè)相關(guān)參數(shù)
//日 期:20070906
//備 注:
// 1、視頻參數(shù)檢測(cè)
//
//公司:杭州自由電子科技
//電話:0571-85084089
//網(wǎng)址:www.freefpga.com
//郵件:tech@freefpga.com
//----------------------------------------------------------------
module bt656_detection(
// BT656視頻信號(hào)
v_clk,
v_data,
// BT656 相關(guān)參數(shù)
count_8010,
count_ycbcr,
count_total,
line_total,
odd_line,
even_line
);
//視頻信號(hào)
input v_clk; // 視頻數(shù)據(jù)時(shí)鐘
input [7:0]v_data; // 8bit YCbCr視頻數(shù)據(jù)
// BT656 相關(guān)參數(shù)
output [31:0]count_8010; //BLANKING 部分8010計(jì)數(shù)
output [31:0]count_ycbcr; //圖象數(shù)據(jù) 部分計(jì)數(shù)
output [31:0]count_total; //一行數(shù)據(jù)字節(jié)計(jì)數(shù)
output [31:0]line_total; // 總行數(shù)
output [31:0]odd_line; // 奇場(chǎng)行數(shù)
output [31:0]even_line; // 偶場(chǎng)行數(shù)
/////////////////////////// bt656視頻數(shù)據(jù)參數(shù)檢測(cè) ////////////////////////////////////////////////
reg [31:0]count_8010;
reg [31:0]count_ycbcr;
reg [31:0]count_total;
reg [31:0]tmp_8010;
reg [31:0]tmp_ycbcr;
reg [31:0]tmp_total;
reg [7:0]RR1,RR2,RR3;
always @(posedge v_clk)
begin
RR1 <= #1 v_data;
RR2 <= #1 RR1;
RR3 <= #1 RR2;
end
// EAV SAV CODE檢測(cè)
wire av_flag = (( RR3 == 8'hff) && ( RR2 == 8'h00 ) && ( RR1 == 8'h00)) ? 1 : 0;
// SAV and EAV
reg [2:0] previous_fvh,fvh;
wire f_flag = v_data[6]; // field flag
wire v_flag = v_data[5]; // blanking flag
wire h_flag = v_data[4]; // h=0 at SAV , h=1 at EAV
reg blanking; // 消隱信號(hào)
// 行信號(hào)參數(shù)檢測(cè)
always @(posedge v_clk)
if ( av_flag == 1'b1)
begin
if(h_flag == 1'b1) // EAV
begin
tmp_8010 <= #1 32'h00000000;
count_ycbcr <= #1 tmp_ycbcr - 3;
blanking <= #1 1'b1;
end else begin // SAV
count_8010 <= #1 tmp_8010 - 3;
tmp_ycbcr<= #1 32'h00000000;
count_total <= count_ycbcr + count_8010 + 32'h00000008;
blanking <= #1 1'b0;
end
end else begin
tmp_8010 <= #1 tmp_8010 + 32'h00000001;
tmp_ycbcr <= #1 tmp_ycbcr + 32'h00000001;
end
// 場(chǎng)相關(guān)參數(shù)檢測(cè)
reg [31:0]total_line;
reg [31:0]line;
reg [31:0]odd_line;
reg [31:0]even_line;
wire [1:0]odd_even={fvh[2],v_data[6]};
always @(posedge v_clk)
if ( av_flag == 1'b1 && h_flag == 1'b1) // EAV 期間
begin
fvh <= v_data[6:4];
case (odd_even)
2'b10: begin
total_line <= line; //奇偶場(chǎng)總行數(shù)
line <= 32'h00000000; //奇場(chǎng),行開(kāi)始
even_line <= line;
end
2'b01: begin
odd_line <= line;
line <= line +1;
end
default: line<= line +1;
endcase
end
endmodule
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -