Xilinx vivado下通常的視頻流設(shè)計(jì),都采用Vid In to axi4 stream --> VDMA write --> MM --> VDMA read --> axi4 stream to video out這樣的路徑。網(wǎng)上例子很多,官方參考也有xapp521,實(shí)現(xiàn)起來參考無壓力。
但這套方案明顯的問題是,緩存圖像帶來幀延遲,對于一些延遲要求高的任務(wù),反倒不希望有VDMA的參與。此外,對于一些簡單的應(yīng)用,不希望有Zynq PS核的參與配置,簡化系統(tǒng)復(fù)雜度。因此我就有了 "Video In to AXI4-stream" to "AXI4-stream to Video Out" directly with VTC without VDMA的需求。
看過好幾個Xilinx的product guide(pg043 vid_in_axi4s)和其他的第三方參考(AVNET的《building a video design from scratch tutorial》)都明確說可以實(shí)現(xiàn)如下圖的框架。不需要VDMA的參與。但是沒有官方的XAPP,按照這個框架搭建后,調(diào)試很久視頻都不能正常顯示。
	
網(wǎng)上有些帖子,給出了一些建議參考。
但是,或多或少都沒有說明白的地方,配置GUI沒有展開細(xì)說,我照著搭建依舊出現(xiàn)很多困難,沒有成功。但反復(fù)琢磨上面幾個例子的異同,反復(fù)讀了pg043,pg016,pg044幾份文檔細(xì)節(jié),終于找到了出路?,F(xiàn)在總結(jié)如下。
1.先上總設(shè)計(jì)框圖
	
我是SDI輸入輸出(1920x1080@30P),用的GS2971和GS2972的組合,其他在頂層verilog測試好了,數(shù)據(jù)data、同步de/hs/vs直通顯示是沒有問題的,在這個基礎(chǔ)上添加了上述的IP,把同步視頻流轉(zhuǎn)到axi4-stream總線上。
該框圖設(shè)計(jì)在top.v接口代碼如下:
design_1_wrapper sSDI_design( .sdi_clk_in1(wClkSDI), .sdi_data_in1({DOUT[9:2],{DOUT[19:12]}}), .sdi_de_in1(SDI_IN_DE), .sdi_hs_in1(SDI_IN_H), .sdi_vs_in1(SDI_IN_V), .sdi_data_out1({DIN[9:2],DIN[19:12]}), .sdi_de_out1(SDI_OUT_DE), .sdi_hs_out1(SDI_OUT_H), .sdi_vs_out1(SDI_OUT_V));
框圖沒什么難點(diǎn),關(guān)鍵是一些細(xì)節(jié)的連線,和IP內(nèi)部的設(shè)置,下面展開講講要注意的地方。
2. Video in to AXI4-stream下的配置
	
關(guān)于axis_enable管腳。
(1)axis_enable可以直接接“1”拉高,實(shí)測沒有問題。
(2)這里我把a(bǔ)xis_enable接了vtc的INTC中的第8位(Detect Locked信號),是參考文檔上的描述,這樣更準(zhǔn)確。
	
(pg043 pp10)
	
(pg016 pp12)
	
(pg016 pp25)
(3)去INTC中第8位出來的IP使用slice來截取。IP配置如下
	
3. Video Timing Controller的配置
	
(1)注意synchronize generator to detector or fsync_in前的“勾"不能選! 選了就會顯示輸出不了。如果想讓輸入和輸出同步,怎么弄我還沒有搞明白,后續(xù)在研究。
(2) 不能選輸入和輸出同步,意味著enable detector可以不選,因此detect video in 的timing實(shí)際上沒有必要。也就意味著video in的timing_out可以不用接到vtc的timing_in上。實(shí)測也是工作的。
(3)第二頁,選1080p的時序模式
	
4. AXI4-stream to Video Out的配置
	
(1)這種沒有VDMA的框架下timing mode要選slave模式。
為什么,具體解釋參見pg044, pp21-22
	
換言之,如果包含VDMA的框架,這里要選master模式。
(2)vid_out輸出管腳vtg_ce必須要接到vtc的gen_clken上,它的作用是slave模式下保證vid_out和vtc的同步。
	
(pg044 pp10)
5. aclken,reset等等為安全穩(wěn)妥起見,連接按圖上拉或下拉即可。
6.實(shí)測運(yùn)行,顯示正常。
	
補(bǔ)記:
1.我又精簡了一下,vtc沒有使能detector的模式,實(shí)測OK
	
2. 又測試了下vtc使能detector,并且使能了auto generation mode,測試也顯示正常。(注意,這次意外的忘了連det_clken,也沒什么異常)
	
3. 關(guān)于synchronize detector to generater選項(xiàng)何時可以用的思考。
前面測試了無VMDA的video_out工作在slave模式,時序同步是通過vtc_ce反向傳給gen_clken完成的。這種情形不允許,generator與detector同步。
那么在有VDMA參與的video out工作在master模式下呢?我返回了一個包含VDMA的工程,我們把vtc_ce反饋撤掉(之前也是把vtc_ce接到gen_clken的),gen_clken常拉高置1,此時再給vtc設(shè)置為synchronize detector to generater 打勾。這種情形下,輸出可以與輸入信號同步了,實(shí)測成功,顯示正常。這樣就實(shí)現(xiàn)了輸出與輸入的幀頻同步了。
	
原文標(biāo)題:不使用VDMA情況下使用AXI4總線實(shí)現(xiàn)視頻輸入輸出(低延遲首選)
審核編輯:湯梓紅
- 
                                視頻
                                +關(guān)注
關(guān)注
6文章
1996瀏覽量
74554 - 
                                Xilinx
                                +關(guān)注
關(guān)注
73文章
2190瀏覽量
129439 - 
                                AXI4
                                +關(guān)注
關(guān)注
0文章
20瀏覽量
9149 - 
                                Vivado
                                +關(guān)注
關(guān)注
19文章
844瀏覽量
70348 
原文標(biāo)題:不使用VDMA情況下使用AXI4總線實(shí)現(xiàn)視頻輸入輸出(低延遲首選)
文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
NVMe IP之AXI4總線分析
看看在SpinalHDL中AXI4總線互聯(lián)IP的設(shè)計(jì)
AXI4接口協(xié)議的基礎(chǔ)知識
    
深入AXI4總線一握手機(jī)制
    
深入 AXI4總線 (四):RAM 讀取實(shí)戰(zhàn)
    
AXI4 、 AXI4-Lite 、AXI4-Stream接口
AXI3與AXI4寫響應(yīng)的依賴區(qū)別?
FPGA AXI4協(xié)議學(xué)習(xí)筆記(二)
    
Xilinx FPGA AXI4總線(一)介紹【AXI4】【AXI4-Lite】【AXI-Stream】
    
漫談AMBA總線-AXI4協(xié)議的基本介紹
    
FPGA通過AXI總線讀寫DDR3實(shí)現(xiàn)方式
SoC設(shè)計(jì)中總線協(xié)議AXI4與AXI3的主要區(qū)別詳解
    
AMBA AXI4接口協(xié)議概述
    
          
        
        
使用AXI4總線實(shí)現(xiàn)視頻輸入輸出
                
 
    
    
           
            
            
                
            
評論