Video to SDI Tx Bridge模塊video_data(SD-SDI)處理過程ide
1.Top Level Block Diagram of Video to SDI TX Bridge spa
Video_data首先進入Data Formatter模塊orm
Input [19:0]video_data視頻
打入Data Formatter模塊的video_data數據首先是判斷上下限,(004,3FC,3FB).而後video_data高10位存入v1寄存器,低10位存入v0寄存器。blog
Hblank_1和vblank_1信號對vid_a_c和vid_a_y進行填充。bfc
v1和v0寄存器中的數據分別存入vid_a_c和vid_a_y兩個寄存器。須要注意的是:y_mux_sel信號來選擇v1,v0傳遞到vid_a_y,也就是說當源是SD-SDI模式的時候,vid_a前十位和後十位是同樣的數據。程序
而後,vid_a_c,vid_a_y信號融合,存入vid_a信號中。im
從video_data到vid_a須要兩個時鐘週期。d3
Vid_a信號會進入fifo中,如今暫且不分析fifo:數據
對於SD-SDI模式的信號,不用分析fifo:
3G-SDI模式的數據須要經過fifo,可是SD-SDI模式的數據直接經過tx_ds2a,tx_ds1a輸出。
tx_ds2a,tx_ds1a數據進入了Sync and line Number Embedder模塊。
進入embedder模塊的數據先延時兩個時鐘週期
爲何會須要這麼處理,須要繼續研究。
TRS信號的生成:
當output_ce使能時,接收hblank,vblank信號
hblank,vblank存入hblank_del,vblank_del,當信號爲SD-SDI模式信號時,hblank_del,vblank_del存入vblank_mux,hblank_mux,vblank_mux,hblank_mux存入hblank_1和vblank_1(爲何須要這樣作延時處理)
程序中對hblank和vblank進行上升沿檢測和降低沿檢測。
XYZ序列的產生邏輯:
TRS狀態計數器(須要hblank的邊沿觸發):
SAV和EAV的初始化:
trs_type的值肯定數據是SAV仍是EAV,sav_active,sav_xyz表明當前傳入的trs_data數據是哪一部分的,是放在XYZ位上仍是3FF,或是000上。
當trs_type==0時,對SAV序列進行填充,先前傳入了3FF,下面依次傳入000,000,XYZ的數據,這樣就構成了trs_data數據序列。
當trs_type==1時,對EAV序列進行填充,3FF,000,000,再加上一些其它的序列。
視頻數據的輸出:
當標誌位sav_active或者eav_active,高電平時,trs_data數據傳給tx_video_a_y,tx_video_a_c
SAV和EAV之間的數據用tx_ds1a_2,tx_ds2a_2填充來傳遞給tx_video_a_y,tx_video_a_c.
tx_video_a_y,tx_video_a_c便是最終須要傳遞給SDI播出的數據流。