Xilinx Video IP(一)Video In to AXI4-Stream

        之前我们在UG934中了解到了Xilinx关于视频处理系统的相关概念,想要开始搭建系统,还得了解一下每个涉及到的IP。先从视频输入开始,Xilinx视频系统中通常使用AXI4-Stream视频协议来传输视频,本章学习的目标就是完成常用视频接口(XIlinx文档中称为clocked parallel video data with synchronization signals,具有同步信号的时钟并行视频数据)到AXI4-Stream接口的转换,也就是本章标题提到的IP——Video In to AXI4-Stream(官方文档PG043)。

Video In to AXI4-Stream IP的概览

        IP接收的时钟需要像素时钟和并行视频数据,以及如下之一的时序信号:

  • Vsync,Hsync,and Data Valid(有时也称为Data Enable,DE)
  • Vblank,Hblank,and Data Valid
  • Vysnc,Hsync,Vblank,Hblank,and Data Valid

        文档特意提及了VTC的设置与上述信号选择相关,并建议使用VTC的“locked”信号连接“axis_enable”,在视频输入丢失或者不稳定时控制AXI4-Stream总线,看一下IP的示意框图。

        Xilinx建议在没有视频时钟的时候复位VTC和Video In to AXI4-Stream核。

性能

最大频率

        这一点的影响因素很多,FPGA型号、速度等级、可用资源、Xilinx工具版本等。

延迟

        当下游处理模块获取数据速率超过像素速率时,典型延迟为6个视频输入周期+3个AXI aclk。当下游处理模块获取数据速率低于像素速率时,需要使用FIFO来平衡输入输出速度的不匹配。此时会引入额外的延迟。

吞吐量

        因为AXI4-Stream总线上不会传输消隐数据,可以在总线时钟速率低于视频时钟的情况下满足平均速率所需的带宽。

        当总线时钟大于或等于输入视频时钟时,只需要最小的(深度32)的缓冲,当总线速度高于视频的平均速率(可简单理解为仅传输有效像素时的速率)低于输入视频时钟时,FIFO最小深度需要

FIFO depth min = 32 + Active Pixels * Fvclk / Faclk

Fvclk:视频输入时钟(像素时钟)

Faclk:总线时钟

IP接口

端口描述

通用接口

通用接口
信号名称方向位宽描述
aclk输入1AXI4-Stream时钟
aclk_en输入1AXI4-Stream时钟,高有效
aresetn输入1AXI4-Stream复位,低有效,ACLK时钟域
axis_enable输入1写FIFO使能,高有效,vid_io_in_clk时钟域
fid输出1隔行视频,0-奇数行,1-偶数行
vid_io_in_clk输入1视频时钟,仅在独立时钟模式
vid_io_in_ce输入1视频时钟使能
vid_io_in_reset输入1视频时钟域复位,高有效
overflow输出1FIFO溢出(写满),vid_io_in_clk时钟域
underflow输出1FIFO下溢(读空),aclk时钟域

视频时序接口(VTC)

视频时序接口
信号名称方向位宽描述
vtd_vsync输出1垂直同步
vtd_hsync输出1水平同步
vtd_vblank输出1垂直消隐
vtd_hblank输出1水平消隐
vtd_active_video输出11-有效视频,0-消隐视频
vtd_field_id输出10-偶数场,1-奇数场

视频输入接口

视频输入接口
信号名称方向位宽描述
vid_active_video输入10-消隐视频,1-有效视频
vid_vsync输入1垂直同步,高有效
vid_hsync输入1水平同步,高有效
vid_vblank输入1垂直消隐,高有效
vid_hblank输入1水平消隐,高有效
vid_data输入8-256并行视频输入数据
vid_field_id输入1视频场,0-偶数场,1-奇数场,非隔行视频接0

AXI4-Stream接口

这里需要注意,指南中位宽描述错误。

UG934中描述如下

整理后表格如下

AXI4-Stream接口
信号名称方向位宽描述
m_axis_video_tvalid输出1视频数据有效
m_axis_video_tdata输出nByte视频数据
m_axis_video_tuser输出1帧起始
m_axis_video_tlast输出1行结束
m_axis_video_tready输入1从设备就绪

数据        

        TDATA位宽是8比特的整数倍(按字节算),如果视频数据宽度不是8的整数倍,需要在高位补0。对于一个时钟多个像素数据的情况,AXI4-Stream输出会将其位宽填充到8的整数倍,但不会对数据进行解析(仅仅是一个转发功能,怎么进就怎么出)。

IP具有位宽转换功能,可以转换输入输出位宽,然后再将数据打包到AXI4-S总线上。直接在IP设置界面选择相应的位宽即可。

手册中对于位宽的示意如下,分别为输入视频位宽12位,AXI4-S总线上打包的视频位宽8位;输入视频位宽8位,AXI4-S总线上打包的视频位宽12位。

        IP相关情况介绍完了,下一章介绍IP的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值