0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用AXI4總線實現(xiàn)視頻輸入輸出

Hack電子 ? 來源:CSDN技術(shù)社區(qū) ? 作者:pigyyf ? 2022-10-11 14:26 ? 次閱讀

Xilinx vivado下通常的視頻流設(shè)計,都采用Vid In to axi4 stream --> VDMA write --> MM --> VDMA read --> axi4 stream to video out這樣的路徑。網(wǎng)上例子很多,官方參考也有xapp521,實現(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》)都明確說可以實現(xiàn)如下圖的框架。不需要VDMA的參與。但是沒有官方的XAPP,按照這個框架搭建后,調(diào)試很久視頻都不能正常顯示。

62005f40-3322-11ed-ba43-dac502259ad0.png

網(wǎng)上有些帖子,給出了一些建議參考。

但是,或多或少都沒有說明白的地方,配置GUI沒有展開細說,我照著搭建依舊出現(xiàn)很多困難,沒有成功。但反復(fù)琢磨上面幾個例子的異同,反復(fù)讀了pg043,pg016,pg044幾份文檔細節(jié),終于找到了出路?,F(xiàn)在總結(jié)如下。

1.先上總設(shè)計框圖

622355e0-3322-11ed-ba43-dac502259ad0.png

我是SDI輸入輸出(1920x1080@30P),用的GS2971和GS2972的組合,其他在頂層verilog測試好了,數(shù)據(jù)data、同步de/hs/vs直通顯示是沒有問題的,在這個基礎(chǔ)上添加了上述的IP,把同步視頻流轉(zhuǎn)到axi4-stream總線上。

該框圖設(shè)計在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));

框圖沒什么難點,關(guān)鍵是一些細節(jié)的連線,和IP內(nèi)部的設(shè)置,下面展開講講要注意的地方。

2. Video in to AXI4-stream下的配置

6242224a-3322-11ed-ba43-dac502259ad0.png

關(guān)于axis_enable管腳。

(1)axis_enable可以直接接“1”拉高,實測沒有問題。

(2)這里我把axis_enable接了vtc的INTC中的第8位(Detect Locked信號),是參考文檔上的描述,這樣更準確。

625d5902-3322-11ed-ba43-dac502259ad0.png

(pg043 pp10)

629412b2-3322-11ed-ba43-dac502259ad0.png

(pg016 pp12)

62c60dee-3322-11ed-ba43-dac502259ad0.png

(pg016 pp25)

(3)去INTC中第8位出來的IP使用slice來截取。IP配置如下

62f2e12a-3322-11ed-ba43-dac502259ad0.png

3. Video Timing Controller的配置

630d8336-3322-11ed-ba43-dac502259ad0.png

(1)注意synchronize generator to detector or fsync_in前的“勾"不能選! 選了就會顯示輸出不了。如果想讓輸入和輸出同步,怎么弄我還沒有搞明白,后續(xù)在研究。

(2) 不能選輸入和輸出同步,意味著enable detector可以不選,因此detect video in 的timing實際上沒有必要。也就意味著video in的timing_out可以不用接到vtc的timing_in上。實測也是工作的。

(3)第二頁,選1080p的時序模式

633327da-3322-11ed-ba43-dac502259ad0.png

4. AXI4-stream to Video Out的配置

635472fa-3322-11ed-ba43-dac502259ad0.png

(1)這種沒有VDMA的框架下timing mode要選slave模式。

為什么,具體解釋參見pg044, pp21-22

63717314-3322-11ed-ba43-dac502259ad0.png

換言之,如果包含VDMA的框架,這里要選master模式。

(2)vid_out輸出管腳vtg_ce必須要接到vtc的gen_clken上,它的作用是slave模式下保證vid_out和vtc的同步。

63b7753a-3322-11ed-ba43-dac502259ad0.png

(pg044 pp10)

5. aclken,reset等等為安全穩(wěn)妥起見,連接按圖上拉或下拉即可。

6.實測運行,顯示正常。

63e9e5d8-3322-11ed-ba43-dac502259ad0.png

補記:

1.我又精簡了一下,vtc沒有使能detector的模式,實測OK

6437ea12-3322-11ed-ba43-dac502259ad0.png

2. 又測試了下vtc使能detector,并且使能了auto generation mode,測試也顯示正常。(注意,這次意外的忘了連det_clken,也沒什么異常)

645518f8-3322-11ed-ba43-dac502259ad0.png

3. 關(guān)于synchronize detector to generater選項何時可以用的思考。

前面測試了無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 打勾。這種情形下,輸出可以與輸入信號同步了,實測成功,顯示正常。這樣就實現(xiàn)了輸出與輸入的幀頻同步了。

6482f8cc-3322-11ed-ba43-dac502259ad0.png

原文標題:不使用VDMA情況下使用AXI4總線實現(xiàn)視頻輸入輸出(低延遲首選)

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 視頻
    +關(guān)注

    關(guān)注

    6

    文章

    1946

    瀏覽量

    72918
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2167

    瀏覽量

    121440
  • AXI4
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    8894
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    812

    瀏覽量

    66547

原文標題:不使用VDMA情況下使用AXI4總線實現(xiàn)視頻輸入輸出(低延遲首選)

文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    看看在SpinalHDL中AXI4總線互聯(lián)IP的設(shè)計

    不做過多的講解(小伙伴可以自行下載AMBA總線協(xié)議規(guī)范或者翻看網(wǎng)絡(luò)上AXI4總線協(xié)議相關(guān)文章)。在SpinalHDL中,關(guān)于Axi4總線,包
    發(fā)表于 08-02 14:28

    AMBA 4 AXI4、AXI4-Lite和AXI4-流協(xié)議斷言用戶指南

    您可以將協(xié)議斷言與任何旨在實現(xiàn)AMBA?4 AXI4的接口一起使用?, AXI4 Lite?, 或AXI4流? 協(xié)議通過一系列斷言根據(jù)協(xié)議檢
    發(fā)表于 08-10 06:39

    AXI4接口協(xié)議的基礎(chǔ)知識

    AXI-4 Memory Mapped也被稱之為AXI-4 Full,它是AXI4接口協(xié)議的基礎(chǔ),其他AXI4接口是該接口的變形。總體而言,AXI-
    的頭像 發(fā)表于 09-23 11:20 ?6080次閱讀
    <b class='flag-5'>AXI4</b>接口協(xié)議的基礎(chǔ)知識

    一文詳解ZYNQ中的DMA與AXI4總線

    在ZYNQ中,支持AXI-Lite,AXI4AXI-Stream三種總線,但PS與PL之間的接口卻只支持前兩種,AXI-Stream只能在
    的頭像 發(fā)表于 09-24 09:50 ?5313次閱讀
    一文詳解ZYNQ中的DMA與<b class='flag-5'>AXI4</b><b class='flag-5'>總線</b>

    ZYNQ中DMA與AXI4總線

    和接口的構(gòu)架 在ZYNQ中,支持AXI-Lite,AXI4AXI-Stream三種總線,但PS與PL之間的接口卻只支持前兩種,AXI-St
    的頭像 發(fā)表于 11-02 11:27 ?4339次閱讀
    ZYNQ中DMA與<b class='flag-5'>AXI4</b><b class='flag-5'>總線</b>

    深入AXI4總線一握手機制

    本系列我想深入探尋 AXI4 總線。不過事情總是這樣,不能我說想深入就深入。當前我對 AXI總線的理解尚談不上深入。但我希望通過一系列文章,讓讀者能和我一起深入探尋
    發(fā)表于 03-17 21:40 ?25次下載
    深入<b class='flag-5'>AXI4</b><b class='flag-5'>總線</b>一握手機制

    深入 AXI4總線 (四):RAM 讀取實戰(zhàn)

    本系列我想深入探尋 AXI4 總線。不過事情總是這樣,不能我說想深入就深入。當前我對 AXI總線的理解尚談不上深入。但我希望通過一系列文...
    發(fā)表于 02-07 11:36 ?4次下載
    深入 <b class='flag-5'>AXI4</b><b class='flag-5'>總線</b> (四):RAM 讀取實戰(zhàn)

    AXI4 、 AXI4-Lite 、AXI4-Stream接口

    AXI4 是一種高性能memory-mapped總線,AXI4-Lite是一只簡單的、低通量的memory-mapped 總線,而 AXI4
    的頭像 發(fā)表于 07-04 09:40 ?8603次閱讀

    AXI3與AXI4寫響應(yīng)的依賴區(qū)別?

    上面兩圖的區(qū)別是相比AXI3,AXI4協(xié)議需要確認AWVALID、AWREADY握手完成才能回復(fù)BVALID。為什么呢?
    的頭像 發(fā)表于 03-30 09:59 ?1100次閱讀

    FPGA AXI4協(xié)議學(xué)習(xí)筆記(二)

    上文FPGA IP之AXI4協(xié)議1_協(xié)議構(gòu)架對協(xié)議框架進行了說明,本文對AXI4接口的信號進行說明。
    的頭像 發(fā)表于 05-24 15:05 ?1503次閱讀
    FPGA <b class='flag-5'>AXI4</b>協(xié)議學(xué)習(xí)筆記(二)

    Xilinx FPGA AXI4總線(一)介紹【AXI4】【AXI4-Lite】【AXI-Stream】

    從 FPGA 應(yīng)用角度看看 AMBA 總線中的 AXI4 總線。
    發(fā)表于 06-21 15:21 ?2285次閱讀
    Xilinx FPGA <b class='flag-5'>AXI4</b><b class='flag-5'>總線</b>(一)介紹【<b class='flag-5'>AXI4</b>】【<b class='flag-5'>AXI4</b>-Lite】【<b class='flag-5'>AXI</b>-Stream】

    漫談AMBA總線-AXI4協(xié)議的基本介紹

    本文主要集中在AMBA協(xié)議中的AXI4協(xié)議。之所以選擇AXI4作為講解,是因為這個協(xié)議在SoC、IC設(shè)計中應(yīng)用比較廣泛。
    發(fā)表于 01-17 12:21 ?2409次閱讀
    漫談AMBA<b class='flag-5'>總線</b>-<b class='flag-5'>AXI4</b>協(xié)議的基本介紹

    FPGA通過AXI總線讀寫DDR3實現(xiàn)方式

    AXI總線由一些核心組成,包括AXI主處理器接口(AXI4)、AXI處理器到協(xié)處理器接口(AXI4
    發(fā)表于 04-18 11:41 ?1277次閱讀

    SoC設(shè)計中總線協(xié)議AXI4AXI3的主要區(qū)別詳解

    AXI4AXI3是高級擴展接口(Advanced eXtensible Interface)的兩個不同版本,它們都是用于SoC(System on Chip)設(shè)計中的總線協(xié)議,用于處理器和其它外設(shè)之間的高速數(shù)據(jù)傳輸。
    的頭像 發(fā)表于 05-10 11:29 ?6738次閱讀
    SoC設(shè)計中<b class='flag-5'>總線</b>協(xié)議<b class='flag-5'>AXI4</b>與<b class='flag-5'>AXI</b>3的主要區(qū)別詳解

    AMBA AXI4接口協(xié)議概述

    AMBA AXI4(高級可擴展接口 4)是 ARM 推出的第四代 AMBA 接口規(guī)范。AMD Vivado Design Suite 2014 和 ISE Design Suite 14 憑借半導(dǎo)體產(chǎn)業(yè)首個符合 AXI4 標準的
    的頭像 發(fā)表于 10-28 10:46 ?228次閱讀
    AMBA <b class='flag-5'>AXI4</b>接口協(xié)議概述