免责声明:
本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。
读者在使用本文信息时,应自行验证其准确性和适用性,并对其使用结果负责。本文内容不构成专业技术咨询或建议,具体的技术实现和应用应根据实际情况和需要进行详细分析和验证。
本文所涉及的任何商标、版权或其他知识产权均属于其各自的所有者。若本文中引用了第三方的资料或信息,引用仅为学术交流目的,不构成对第三方内容的认可或保证。
若有任何疑问或需进一步信息,请联系本文作者或相关专业人士。
前言
小编最近项目中涉及到ISP,而xilinx的ISP架构中视频流是以AXI4-Stream接口输入输出,本期教程将讲述Video In to AXI4-Stream的使用。
一、时序信号
注:不管视频信号是使用哪一组时序信号,核都可以正确地接受视频输入并转换为 AXI4-Stream 格式。
二、AXI4-Stream信号
输出端使用 AXI4-Stream 接口,该接口以主模式(master mode)工作。
- tdata:并行视频数据。这个信号携带实际的视频像素数据。
- tvalid 和 tready:握手信号,用于管理数据传输。tvalid 表示数据有效,当 tvalid 和 tready 同时为高时,表示数据传输成功。
- tlast 和 tuser:标志信号,用于标识视频流中特定的像素
由于 AXI4-Stream 总线上没有同步或消隐信号,仅传输有效像素数据,因此需要 tlast 和 tuser 标志来标识像素的位置。
- tlast 用于标识每行最后一个有效像素的位置(EOL)。
- tuser 用于标识每帧第一个有效像素的位置(SOF)。
三、Latency
1.典型延迟:
- 当 AXI4-Stream 总线上下游的处理模块能够以像素速率或更快的速率接收数据时,通过 Video In to AXI4-Stream 核的典型延迟是 6 个 vid_io_in_clk 时钟周期 + 3 个 aclk 时钟周期。
- 这是在理想情况下,即下游模块能够快速处理数据而不会造成瓶颈时的延迟。
2.使用 FIFO 平衡速率不匹配:
- 如果下游模块以较慢的速率接收像素数据,那么 FIFO 会用来平衡输入和输出速率之间的不匹配。
- FIFO 的作用是缓冲输入数据,以确保即使下游处理速度较慢,数据流也能平稳进行。
3.额外延迟:
- 当使用 FIFO 时,由于存储像素数据,这会增加延迟。
- 这种额外的延迟取决于数据流入和流出核心的速率,可能会随行和帧的变化而变化。
四、Throughput
额外的 FIFO 深度需求:
- 需要额外的 FIFO 深度来平滑瞬时速率的不匹配。这是为了处理输入视频像素时钟(Fvclk)和 AXI4-Stream 时钟(Faclk)之间的速率差异。
时钟速率限制:
- Fvclk 和 Faclk 的速率受限于整体的最大时钟频率(Fmax)。
Faclk ≥ Fvclk 的情况:
- 如果 Faclk 等于或大于 Fvclk,只需要最小的缓冲区大小(32 个位置)。
- 这假设 Video In to AXI4-Stream 核下游的核能够以全视频速率接收数据。例如,下游核可以以几乎连续的流方式接受数据,仅在 EOL(行结束)之后有间隙,每行连续接受数据,行之间的间隙仅在 SOF(帧开始)之前出现。在这种情况下,FIFO 在每行的 EOL 之后会清空。
Faclk 小于 Fvclk 的情况:
- 当 Faclk 小于 Fvclk 时,需要额外的缓冲来处理视频时钟和 AXI4-Stream 时钟之间的速率差异。
- 具体来说,FIFO 必须足够大,以处理像素在视频时钟速率(Fvclk)下进入,而在较慢的 AXI4-Stream 总线时钟速率(Faclk)下输出的差异。
输入 FIFO 深度计算:
- 对于 Faclk 频率高于平均行频率但低于 Fvclk 的情况,输入 FIFO 的最小深度(FIFO depth min)计算公式如下:
FIFO depth min = 32 + Active Pixels * Fvclk / Faclk
下游处理核心的速率低于 aclk:
- 如果下游处理核心接受数据的速率低于 aclk,那么需要额外的缓冲以防止 FIFO 在帧传输期间溢出。
- 这种情况下,FIFO 的深度需要足够大,以保证即使在传输整帧数据时,FIFO 也不会溢出。
五、Core Interfaces
六、General Design Guidelines
七、Customize IP
Pixels Per Clock:该参数指定每个时钟周期并行输出的像素数量。
Video Format: Specifies the video format used.
Native Video Input Component Width: Specifies the video component bit width over
the input video data bus.
AXI4S Video Output Component Width: Specifies the video component bit width
over the output AXI4-Stream TDATA bus.
FIFO Depth: Specifies the number of locations in the input FIFO. The options for FIFO
depth are 32, 1024, 2048, 4096, and 8192.
Clock Mode: The clock mode is used to specify whether the AXI4-Stream output and
Video input signals are clocked using common or independent clocks.
总结
以上就是Video In to AXI4-Stream的重点内容,读者可根据自己的理解进行验证。
标签:Stream,Fvclk,FIFO,像素,速率,Video,AXI4 From: https://blog.csdn.net/qq_52538756/article/details/141017249