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

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

3天内不再提示

Video Frame Buffer IP初学者入门案例分析

454398 来源:Xilinx工程师 作者:Xilinx工程师 2020-11-16 15:23 次阅读

Video Frame Buffer IP 简介

Video Frame Buffer Read/Write IP 支持您将视频数据从存储器域(AXI4 存储器映射接口)迁移到 AXI4-Stream 接口,或反之亦然。

从更高层次来看,它的作用与我们在先前视频系列(视频系列 24视频系列 25视频系列 26 等)中所使用过的 AXI VDMA IP 并无差异。

那么为什么要使用 Video Frame Buffer IP 核而不是 AXI VDMA IP 呢?

答案就记录在(赛灵思答复记录 72543)中。究其本质,AXI VDMA IP 从 AXI4-Stream 接口提取字节,并直接将其移植到存储器中,无关乎视频数据格式。

Video Frame Buffer 必须关注传入传出存储器的数据格式。根据所选格式,它能以不同方式将数据存储在存储器中。这对于 Linux 应用非常实用。

比如,V4L2 格式 YUYVUYVY 都表示 YUV4:2:2 8 位,唯一差别就在于两者在存储器中的存储方式。

因此,建议针对新设计采用 Video Frame Buffer IP。

如需了解有关 Video Frame Buffer Read/Write IP 的详情,请参阅 (PG278)。

为 Video Frame Buffer IP 生成设计示例

注意:下文是基于 2019.2 版本中提供的设计示例编写的。

硬件 (Vivado 2019.2) 设计示例

要生成应用设计示例的硬件部分 (Vivado Design),请遵循 (PG278) 的第 5 章中的步骤进行操作。此处设计示例可用于 KC705、ZCU102、ZCU104 和 ZCU106 评估板。即使您没有上述任意评估板,我也建议从设计示例开始实践。这始终都是最佳的起点。

注意:要利用 Vivado WebPack 许可证生成设计示例,请使用 ZCU104 评估板作为起点开始操作。

设计示例分为两种。一种用于 Video Frame Buffer Read IP,另一种用于 Video Frame Buffer Write IP。

我建议使用面向 Video Frame Buffer Write IP 的设计示例,因为 Video Frame Buffer Write IP 和 Video Frame Buffer Read IP 都囊括在其中。

Video Frame Buffer Write IP 设计示例的硬件设计属于非常基础性的设计。

它使用 Video Frame Buffer Read IP 将数据从存储器读取到 AXI4-Stream 接口。

随后,将其转换为本地视频,然后再使用 AXI4-Stream to Video Out IP 和 Video in to AXI4-Stream IP 重新转换为 AXI4-Stream。

最后使用 Video Frame Buffer Write IP 将 AXI4-Stream 数据重新写入存储器。


我认为对于此设计,有两个值得注意的要点:

1. 上述两个 Video Frame Buffer IP(Read 和 Write)各自的中断输出都连接到处理器。这是前提条件。Video Frame Buffer 是基于中断的 IP。


2. 而这两个 Video Frame Buffer IP 的复位输入则连接至 AXI GPIO IP。这一点至关重要,因为它支持您从处理器执行 IP 软复位。就像所有 HLS IP 一样,只要分辨率改变,就需要将 Video Frame Buffer 复位。

应用示例 (Vitis 2019.2)

要生成应用示例,在 Vivado 中,首先将硬件导出至赛灵思 Vitis(依次单击 File > Export > Export Hardware …)。

确保在导出的硬件中包含比特流。这将创建一个 XSA 文件。


启动赛灵思 Vitis 并选择要用作为工作空间的目录。

在 Vitis 中,单击 New > Platform project。


输入您所选的平台名称(例如,v_frmbuf_zcu104_pfm),然后单击 Next。


确保选中 Create from hardware specification (XSA),然后单击 Next。


选择从 Vivado 导出的 XSA 文件,确保已选中 A53 处理器,然后单击 Finish。


创建平台后,单击 psu_cortexa53_0 > standalone on psu_cortexa53_0 下的 Board Support Package,然后展开 Peripheral Drivers 部分。


在 Peripheral Drivers 下,查找对应于 Video Frame Buffer Write (v_frmbuf_wr) 的行,然后单击 Import Examples。


选择示例 (xv_frmbufwr_example),然后单击 OK。


运行应用示例

注意:以下步骤假定评估板已上电并且已通过 UART 连接,BOOT 模式开关已设置为 JTAG 模式和 JTAG,并且已打开 UART 终端(如 Tera Term)供正确的 COM 端口使用。

单击应用并单击锤子图标以构建应用:


要在硬件上启动应用示例,请右键单击设计应用示例,并单击 Run As > Run Configurations…


在 Create, manage, and run configurations 窗口中,右键单击 Single Application Debug,然后单击 New Configuration。


在配置窗口的 Target Setup 选项卡中,确保已启用 psu_init(如果在 ZCU102、ZCU104 或 ZCU106 评估板上运行)和 Program FPGA,然后单击 Run。


在 UART 终端中,可以看到此应用正在尝试不同的视频分辨率和色彩空间组合。


在应用运行结束时,可能会显示部分测试失败的原因(主要原因是硬件配置不支持)。


色彩空间和视频分辨率在应用中以 ColorFormats 和 TestModes 结构来定义。


编辑:hfy


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

    关注

    38

    文章

    7513

    浏览量

    163987
  • 赛灵思
    +关注

    关注

    32

    文章

    1794

    浏览量

    131334
  • Video
    +关注

    关注

    0

    文章

    195

    浏览量

    45209
  • Vitis
    +关注

    关注

    0

    文章

    147

    浏览量

    7456
收藏 人收藏

    评论

    相关推荐

    EE-269:以太网802.3初学者指南

    电子发烧友网站提供《EE-269:以太网802.3初学者指南.pdf》资料免费下载
    发表于 01-05 09:48 0次下载
    EE-269:以太网802.3<b class='flag-5'>初学者</b>指南

    XD08M3232红外感应单片机开发板适合初学者吗?

    到学习效果和兴趣保持。以下是关于XD08M3232开发板是否适合初学者的详细分析。 1. 硬件特性 XD08M3232开发板具有丰富的硬件特性,如8K字节的FLASH、128字节的EEPROM、256字节
    发表于 12-07 14:55

    我用的是multisim14.0,因为是初学者,仿真电路的时候找不到合适的模型,应该怎么办?

    我用的是multisim14.0,因为是初学者,仿真电路的时候找不到合适的模型,应该怎么办? 比如我电路用的是AO3400的NMOS,但是在multisim14.0软件自带的元件库里面没找到类似的,开启电压是1.5v的nmos,请教大家,应该怎么办?
    发表于 08-23 10:59

    类比法快速入门电子电路系列教程

    的 - 电是由一个个电荷组成的 ::: info 注意 本书目标读者为电子电路零基础或不入门初学者,尽可能的通俗易懂,所以很多地方没有深入到物理层面,书中描述的概念可能不严谨,建议读完本书后与权威
    发表于 08-17 18:03

    手把手教你!STM32单片机入门指南:从初级到中级工程师的学习路线

    首选的跳板。为了帮助初学者们系统地学习STM32,我们提供了一条从初级到中级的学习路线,涵盖了从基础知识到进阶应用的全方位技能提升,最终助力初学者达到嵌入式系统设计
    的头像 发表于 07-22 14:38 3324次阅读
    手把手教你!STM32单片机<b class='flag-5'>入门</b>指南:从初级到中级工程师的学习路线

    适合初学者的嵌入式项目有哪些?

    适合初学者的嵌入式项目有哪些? 嵌入式学习是一个实践性很强的领域,通过实际项目可以帮助你巩固理论知识并提升技能。以下是几个适合初学者练手的嵌入式项目,每个项目都涵盖了从硬件到软件的不同层面
    发表于 07-11 10:23

    初学者必看:破解PCB设计常见错误!

    在新手开始PCB设计时,通常将该过程视为简单的“连接点”:只要建立了连接,如何建立这些连接并不是特别重要。不幸的是,这与事实相去甚远。作为PCB设计工程师,尤其是随着电子设备速度的不断提高和排放标准的严格,我们需要关注PCB和互连的最复杂的细节。如果我们粗心大意,我们就有可能面临信号完整性差和电磁兼容性差的风险。在过去的几年里,我们遇到了相当多的其他PCB设
    的头像 发表于 06-21 18:22 1593次阅读
    <b class='flag-5'>初学者</b>必看:破解PCB设计常见错误!

    基于STM32的智能循迹小车

    初学者的智能小车
    的头像 发表于 05-08 14:43 3815次阅读
    基于STM32的智能循迹小车

    如何快速入门FPGA?

    时钟管理模块、嵌入式块RAM、布线资源等。 学习FPGA编程语言: 掌握Verilog HDL(硬件描述语言)。Verilog用于数字电路的系统设计,具有简洁的语法和清晰的仿真语义,非常适合初学者入门
    发表于 04-28 08:54

    如何用STM8S001J3设计一个手摆控制LED灯的程序?

    我是初学者,想试试如何用STM8S001J3设计一个手摆控制LED灯的程序,但是我一点都无从入手,想知道如何入门
    发表于 04-23 07:33

    国内哪家的FPGA适合初学者

    如题,想着手学习FPGA的话,国内哪家的比较好,更适合初学者学习?这方面的经验,是一点都没。
    发表于 04-14 19:17

    种草一块国产FPGA开发板,不用烧录器,一根TypeC线即插即用,盘古PGX-MINI 4K开发板

    分享一块国产入门级FPGA开发板,不用烧录器,盘古PGX-MINI 4K开发板,一根TypeC线即插即用,一键式便携操作,非常适用于初学者!!!而且配套的资料和实验例程很丰富,对于想尝试国产FPGA平台的友友们,墙裂推荐~~ 需要资料的可联系
    发表于 03-04 16:04

    FX3 an75779判断一帧结束的条件是什么?

    full buffer indicates there is more data to go in this video frame. */ CyFxUVCAddHeader
    发表于 02-27 07:58

    初学者请问各位大佬

    为什么在89C51单片机中R1可以提供低地址 在外部扩展RAM中不是P0口提供低8位地址P2口提供高8位地址吗初学者有些不理解望各位大佬解答一下谢谢
    发表于 02-23 16:39

    【国产FPGA+OMAPL138开发板体验】(原创)7.硬件加速Sora文生视频源代码

    _index; // 当前生成的视频像素索引 reg text_buffer_full; // 文本缓冲区是否已满 reg video_frame_ready; // 视频帧是否已准备好 // FPGA
    发表于 02-22 09:49