0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用AXI4总线实现视频输入输出

Hack电子 来源:CSDN技术社区 作者:pigyyf 2022-10-11 14:26 次阅读

Xilinx vivado下通常的视频流设计,都采用Vid In to axi4 stream --> VDMA write --> MM --> VDMA read --> axi4 stream to video out这样的路径。网上例子很多,官方参考也有xapp521,实现起来参考无压力。

但这套方案明显的问题是,缓存图像带来帧延迟,对于一些延迟要求高的任务,反倒不希望有VDMA的参与。此外,对于一些简单的应用,不希望有Zynq PS核的参与配置,简化系统复杂度。因此我就有了 "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》)都明确说可以实现如下图的框架。不需要VDMA的参与。但是没有官方的XAPP,按照这个框架搭建后,调试很久视频都不能正常显示。

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

网上有些帖子,给出了一些建议参考。

但是,或多或少都没有说明白的地方,配置GUI没有展开细说,我照着搭建依旧出现很多困难,没有成功。但反复琢磨上面几个例子的异同,反复读了pg043,pg016,pg044几份文档细节,终于找到了出路。现在总结如下。

1.先上总设计框图

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

我是SDI输入输出(1920x1080@30P),用的GS2971和GS2972的组合,其他在顶层verilog测试好了,数据data、同步de/hs/vs直通显示是没有问题的,在这个基础上添加了上述的IP,把同步视频流转到axi4-stream总线上。

该框图设计在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));

框图没什么难点,关键是一些细节的连线,和IP内部的设置,下面展开讲讲要注意的地方。

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

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

关于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前的“勾"不能选! 选了就会显示输出不了。如果想让输入和输出同步,怎么弄我还没有搞明白,后续在研究。

(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等等为安全稳妥起见,连接按图上拉或下拉即可。

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. 关于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设置为synchronize detector to generater 打勾。这种情形下,输出可以与输入信号同步了,实测成功,显示正常。这样就实现了输出与输入的帧频同步了。

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

原文标题:不使用VDMA情况下使用AXI4总线实现视频输入输出(低延迟首选)

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 视频
    +关注

    关注

    6

    文章

    1945

    浏览量

    72903
  • Xilinx
    +关注

    关注

    71

    文章

    2167

    浏览量

    121389
  • AXI4
    +关注

    关注

    0

    文章

    20

    浏览量

    8888
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66515

原文标题:不使用VDMA情况下使用AXI4总线实现视频输入输出(低延迟首选)

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    看看在SpinalHDL中AXI4总线互联IP的设计

    不做过多的讲解(小伙伴可以自行下载AMBA总线协议规范或者翻看网络上AXI4总线协议相关文章)。在SpinalHDL中,关于Axi4总线,包
    发表于 08-02 14:28

    AMBA 4 AXI4AXI4-Lite和AXI4-流协议断言用户指南

    您可以将协议断言与任何旨在实现AMBA®4 AXI4的接口一起使用™, AXI4 Lite™, 或AXI4流™ 协议通过一系列断言根据协议检
    发表于 08-10 06:39

    AXI4接口协议的基础知识

    AXI-4 Memory Mapped也被称之为AXI-4 Full,它是AXI4接口协议的基础,其他AXI4接口是该接口的变形。总体而言,AXI-
    的头像 发表于 09-23 11:20 6068次阅读
    <b class='flag-5'>AXI4</b>接口协议的基础知识

    一文详解ZYNQ中的DMA与AXI4总线

    在ZYNQ中,支持AXI-Lite,AXI4AXI-Stream三种总线,但PS与PL之间的接口却只支持前两种,AXI-Stream只能在
    的头像 发表于 09-24 09:50 5308次阅读
    一文详解ZYNQ中的DMA与<b class='flag-5'>AXI4</b><b class='flag-5'>总线</b>

    ZYNQ中DMA与AXI4总线

    和接口的构架 在ZYNQ中,支持AXI-Lite,AXI4AXI-Stream三种总线,但PS与PL之间的接口却只支持前两种,AXI-St
    的头像 发表于 11-02 11:27 4336次阅读
    ZYNQ中DMA与<b class='flag-5'>AXI4</b><b class='flag-5'>总线</b>

    深入AXI4总线一握手机制

    本系列我想深入探寻 AXI4 总线。不过事情总是这样,不能我说想深入就深入。当前我对 AXI总线的理解尚谈不上深入。但我希望通过一系列文章,让读者能和我一起深入探寻
    发表于 03-17 21:40 25次下载
    深入<b class='flag-5'>AXI4</b><b class='flag-5'>总线</b>一握手机制

    深入 AXI4总线 (四):RAM 读取实战

    本系列我想深入探寻 AXI4 总线。不过事情总是这样,不能我说想深入就深入。当前我对 AXI总线的理解尚谈不上深入。但我希望通过一系列文...
    发表于 02-07 11:36 4次下载
    深入 <b class='flag-5'>AXI4</b><b class='flag-5'>总线</b> (四):RAM 读取实战

    AXI4AXI4-Lite 、AXI4-Stream接口

    AXI4 是一种高性能memory-mapped总线AXI4-Lite是一只简单的、低通量的memory-mapped 总线,而 AXI4
    的头像 发表于 07-04 09:40 8595次阅读

    AXI3与AXI4写响应的依赖区别​

    上面两图的区别是相比AXI3,AXI4协议需要确认AWVALID、AWREADY握手完成才能回复BVALID。为什么呢?
    的头像 发表于 03-30 09:59 1095次阅读

    FPGA AXI4协议学习笔记(二)

    上文FPGA IP之AXI4协议1_协议构架对协议框架进行了说明,本文对AXI4接口的信号进行说明。
    的头像 发表于 05-24 15:05 1499次阅读
    FPGA <b class='flag-5'>AXI4</b>协议学习笔记(二)

    Xilinx FPGA AXI4总线(一)介绍【AXI4】【AXI4-Lite】【AXI-Stream】

    从 FPGA 应用角度看看 AMBA 总线中的 AXI4 总线
    发表于 06-21 15:21 2280次阅读
    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协议的基本介绍

    本文主要集中在AMBA协议中的AXI4协议。之所以选择AXI4作为讲解,是因为这个协议在SoC、IC设计中应用比较广泛。
    发表于 01-17 12:21 2404次阅读
    漫谈AMBA<b class='flag-5'>总线</b>-<b class='flag-5'>AXI4</b>协议的基本介绍

    FPGA通过AXI总线读写DDR3实现方式

    AXI总线由一些核心组成,包括AXI主处理器接口(AXI4)、AXI处理器到协处理器接口(AXI4
    发表于 04-18 11:41 1272次阅读

    SoC设计中总线协议AXI4AXI3的主要区别详解

    AXI4AXI3是高级扩展接口(Advanced eXtensible Interface)的两个不同版本,它们都是用于SoC(System on Chip)设计中的总线协议,用于处理器和其它外设之间的高速数据传输。
    的头像 发表于 05-10 11:29 6717次阅读
    SoC设计中<b class='flag-5'>总线</b>协议<b class='flag-5'>AXI4</b>与<b class='flag-5'>AXI</b>3的主要区别详解

    AMBA AXI4接口协议概述

    AMBA AXI4(高级可扩展接口 4)是 ARM 推出的第四代 AMBA 接口规范。AMD Vivado Design Suite 2014 和 ISE Design Suite 14 凭借半导体产业首个符合 AXI4 标准的
    的头像 发表于 10-28 10:46 214次阅读
    AMBA <b class='flag-5'>AXI4</b>接口协议概述