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


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

    关注

    39

    文章

    7753

    浏览量

    172156
  • 赛灵思
    +关注

    关注

    33

    文章

    1798

    浏览量

    133637
  • Video
    +关注

    关注

    0

    文章

    197

    浏览量

    46661
  • Vitis
    +关注

    关注

    0

    文章

    158

    浏览量

    8424
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    面向测量初学者入门专栏:为什么要测量声音和振动?

    面向测量初学者入门专栏:为什么要测量声音和振动?您有没有想过,其实我们每天都生活在各种“声音”和“振动”之中?这些复杂交织的声音和振动,如果按照频率(也就是声音的高低)进行分解,并分析其大小、甚至
    的头像 发表于 04-17 09:51 345次阅读
    面向测量<b class='flag-5'>初学者</b>的<b class='flag-5'>入门</b>专栏:为什么要测量声音和振动?

    关于TNC同轴线缆结构:这是一篇被很多射频初学者忽视的干货文

    很多射频初学者常将TNC接口视作BNC的“螺纹加强版”,却忽略了其内部严丝合缝的物理结构对信号传输的决定性影响。本文深度拆解TNC同轴线缆的四大核心层:从利用集肤效应的中心导体,到决定特征阻抗
    的头像 发表于 04-16 16:19 53次阅读
    关于TNC同轴线缆结构:这是一篇被很多射频<b class='flag-5'>初学者</b>忽视的干货文

    ATX电源电路分析详解开关电源的原理

    ATX电源电路分析详解开关电源的原理,WORD版,图文并茂,详细说明各个元件在电路中的作用。适合初学者
    发表于 03-29 16:47 1次下载

    国产DSP/FPGA选型、环境搭建与初学者调研全指南

    作为全国产解决方案的标杆,其核心选型(长城银河FT-M6678N DSP、复旦微JFM7VX690T36 FPGA)、开发环境搭建,以及适配初学者的调研路径,都值得细细拆解。更关键的是,芯片与板卡在实际使用中的各类问题、易忽略的技术细节,直接决定实操成功率,也是发烧友
    的头像 发表于 03-10 18:52 661次阅读
    国产DSP/FPGA选型、环境搭建与<b class='flag-5'>初学者</b>调研全指南

    RDMA设计45:RoCE v2 原语功能验证与分析2

    本博文主要交流设计思路,在本博客已给出相关博文约170篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。续上,为便于查看,给出表1部分 表1 RoCE v2原语功能
    发表于 02-26 07:52

    AI端侧部署案例(SC171开发套件V2-FAS)

    AI端侧部署案例(SC171开发套件V2-FAS) 序列 课程名称 视频课程时长 视频课程链接 课件链接 工程源码 1 初学者入门手写数字识别案例 32分21秒 https
    发表于 02-11 12:08

    RDMA设计39:寄存器功能验证与分析

    本博文主要交流设计思路,在本博客已给出相关博文约116篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 续前面寄存器功能验证思路,下面对各功能模块介绍。 (1
    发表于 02-11 09:24

    AI端侧部署案例(SC171开发套件V3)2026版

    AI端侧部署案例(SC171开发套件V3)2026版 序列 课程名称 视频课程时长 视频课程链接 课件链接 工程源码 1 初学者入门手写数字识别案例 25分29秒 https
    发表于 01-15 10:40

    FPGA初学者求助

    Vivado2025.1配置MIG时出现报错 大家好,我是一名研一的学生,同时也是一名FPGA初学者,最近在使用vivado2025.1配置MIG的时候遇到了问题,具体问题如下: 我这个mig的配置
    发表于 12-07 11:43

    RDMA设计5:RoCE V2 IP架构

    专注高性能存储与传输,在本博客已给出相关博文已100多篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 为便于读者更好的理解IP设计,这里以高速数据传输为背景,根据
    发表于 11-25 10:34

    Video Processing Subsystem与HDMI示例设计

    在撰写本文时,HDMI Transmitter Subsystem IP 核与 Video Processing Subsystem IP 核均有多个示例设计可供使用,但并没有演示将两者功能结合在一起来使用的设计。
    的头像 发表于 11-07 10:35 925次阅读
    <b class='flag-5'>Video</b> Processing Subsystem与HDMI示例设计

    学习物联网怎么入门?

    的相关书籍和视频进行学习。也可以通过参加线下班、工作坊和实践活动来学习。不同的学习方式适合不同的人群,初学者可以根据自己的实际情况选择适合自己的学习方式。   第三,进行实践操作是入门学习物联网
    发表于 10-14 10:34

    C语言入门(硬件嵌入式那种不是APP开发的)

    C语言入门(硬件嵌入式那种不是APP开发的),有没有对初学者很友好的书籍、视频等资料推荐一下,一直以来看了正dian原子、野火等的视频、文档结果从快要入门到放气,然后再从放气到快要入门
    发表于 09-27 12:03

    避雷!树莓派初学者常犯的5个错误!

    如果你刚刚入手树莓派,你就会知道它潜力无穷,几乎能实现你想到的任何功能。然而,这种自由也让你可能在不知不觉中做出对系统有害的操作。在本文中,我将介绍要避免犯哪些错误。初学者最常犯的错误包括:损坏SD
    的头像 发表于 07-22 17:16 1532次阅读
    避雷!树莓派<b class='flag-5'>初学者</b>常犯的5个错误!

    射频设计入门之S参数

    射频设计是一个复杂而深奥的领域,对于初学者来说,往往不知道从哪里入手。然而,有时候,一个简单的起点就能为我们打开通往知识的大门。今天,我们就来聊聊为什么射频入门可以从S参数开始。
    的头像 发表于 06-13 10:47 2784次阅读
    射频设计<b class='flag-5'>入门</b>之S参数