当前位置: 首页 > news >正文

Zynq学习笔记--AXI4-Stream到视频输出IP是如何工作的?

目录

1. 简介

2. 原理详解

2.1 示例工程

2.2 AXI4-Stream to Video Out

3. Master/Slave Timing Mode

3.1 Slave Timing Mode

3.2 Master Timing Mode

4. 总结


1. 简介

本文主要介绍了 AXI4-Stream 到视频输出 的内容。其中,示例工程展示了一个具体的设计,包括时钟、复位信号、视频数据以及一些参数设置。该示例工程使用 AXI4-Lite 接口配置视频输出的参数,例如图像的高度、宽度和背景图案。此外,文本还详细解释了 AXI4-Stream 到视频输出 IP 的组成部分,包括数据部分、时序信号部分和同步部分。同步器的工作原理涵盖了初始对齐阶段和时序模式,以实现数据和时序信号的同步。

2. 原理详解

2.1 示例工程

`timescale 1ns / 1psimport axi_vip_pkg::*;
import design_1_axi_vip_0_0_pkg::*;module tb_AXI4S_to_Vid_Out();bit aclk = 0, aresetn = 0;
xil_axi_resp_t 	resp;
bit vid_hblank, vid_vblank, vid_hsync, vid_vsync ;
bit [23:0] vid_data;
integer counter_width = 0, counter_height = 0;
integer final_width = 0, final_height = 0;parameter integer tpg_base_address = 12'h000;parameter integer TPG_CONTROL_REG    = tpg_base_address;parameter integer TPG_ACTIVE_H_REG   = tpg_base_address + 8'h10;parameter integer TPG_ACTIVE_W_REG   = tpg_base_address + 8'h18;parameter integer TPG_BG_PATTERN_REG = tpg_base_address + 8'h20;
integer height=480, width=640;always #12.5ns aclk = ~aclk; // 40MHzdesign_1_wrapper UUT(.aclk_40MHz     (aclk),.aresetn_0      (aresetn),.vid_data       (vid_data),.vid_hblank     (vid_hblank),.vid_hsync      (vid_hsync),.vid_vblank     (vid_vblank),.vid_vsync      (vid_vsync));initial begin#50ns aresetn = 1;
enddesign_1_axi_vip_0_0_mst_t      master_agent;initial begin    master_agent = new("master vip agent",UUT.design_1_i.axi_vip_0.inst.IF);master_agent.start_master();wait (aresetn == 1'b1);#200nsmaster_agent.AXI4LITE_WRITE_BURST(TPG_ACTIVE_H_REG, 0, height, resp);master_agent.AXI4LITE_WRITE_BURST(TPG_ACTIVE_W_REG, 0, width,  resp);master_agent.AXI4LITE_WRITE_BURST(TPG_BG_PATTERN_REG, 0, 9, resp);#200nsmaster_agent.AXI4LITE_WRITE_BURST(TPG_CONTROL_REG, 0, 8'h81, resp); 
end
endmodule

 注意:

  • 如果 Clock Mode 选用独立时钟,则启用fifo的跨时钟域功能。

  • fifo深度如何设定?答:在根据fifo_flag调试;
  • fid仅用于隔行扫描,很少用到;

2.2 AXI4-Stream to Video Out

其中:

fifo_flag: overflow, underflow

status:

status[1] – Course Align, Wait for VTG SOF

status[3] – Fine Align, VTG EOL Leading

status[8] – Fine Align Locked

AXI4-Stream到视频输出IP的组成部分:

  • 数据部分(红色):数据首先通过FIFO,然后进行格式化,以遵循Xilinx视频IP的AXI4-Stream编码(UG934中定义)。
  • 时序信号部分(绿色):时序信号直接从VTC(视频时序控制器)传递给AXI4-Stream到视频输出IP,无需修改。
  • 同步部分(橙色):输出同步器从AXI4-Stream接收帧边界信息信号(帧开始和行结束),以及来自VTC的时序信号,以实现数据和时序信号的同步。

同步器的工作原理:

  • 初始对齐阶段:AXI4-Stream到视频输出首先进入粗对齐阶段,然后进入精细对齐阶段,最终锁定。具体的对齐细节可以在PG044中找到。
  • 时序模式:根据Master或Slave模式,同步器控制VTC或内部FIFO,以实现同步。详细的时序模式说明在PG044的第3章中有。
  • 输出同步器块从AXI4-Stream接收帧边界信息信号(tuser, or sof and eol)以及从VTC IP接收的时序信号作为输入,以同步数据和时序信号。根据时序模式(Master 或 Slave),它将控制VTC(使用vtg_ce)或内部FIFO以实现同步。

3. Master/Slave Timing Mode

3.1 Slave Timing Mode

Slave Timing Mode,是指 VTC 是 Video Out 的从属,通过vtg_ce控制同步。 

3.2 Master Timing Mode

 

Master Timing Mode,是指 VTC 是 VDMA、Processing Pipe 和 Video Out 的时序主控。

4. 总结

本文介绍了 AXI4-Stream 到视频输出的工作原理和示例工程。通过该工程,详细展示了如何使用 AXI4-Lite 接口配置视频输出参数,包括图像高度、宽度和背景图案等。AXI4-Stream 到视频输出 IP 包含数据部分、时序信号部分和同步部分,确保数据与时序信号的同步。同步器通过初始对齐和时序模式来实现这一目标,支持独立时钟模式下的跨时钟域功能。最后,解释了 Master 和 Slave 时序模式,分别由 VTC 控制同步信号和作为时序主控。总的来说,本文为实现视频输出提供了全面的技术指导和详细的操作示例。

http://www.lryc.cn/news/374554.html

相关文章:

  • 2016-2023 年美国农业部作物序列边界
  • 数字人源码部署怎么做?如何高效搭建好用的数字人系统?
  • 解决虚拟机Ubuntu IP总是掉的问题
  • [13] CUDA_Opencv联合编译过程
  • uni-app canvas创建画布
  • Spring MVC详解(上)
  • 【Linux硬盘读取】Windows下读取Linux系统的文件解决方案:Linux Reader4.5 By DiskInternals
  • 操作系统—页表(实验)
  • github 本地仓库上传及报错处理
  • 【ZZULIOJ】1104: 求因子和(函数专题)
  • 轨迹优化 | 图解欧氏距离场与梯度场算法(附ROS C++/Python实现)
  • 【二维差分】2132. 用邮票贴满网格图
  • 【前端项目笔记】2 主页布局
  • t265 jetpack 6 px4 ros2
  • vue 应用测试(一) --- 介绍
  • Perl 语言入门学习
  • HarmongOS打包[保姆级]
  • SpringBoot怎么实现自定义接口全局异常捕获?详细教程
  • Ms08067安全实验室成功实施多家业务系统渗透测试项目
  • 小熊家政帮day22-day23 订单系统优化(订单状态机、练习分库分表、索引、订单缓存)
  • LeetCode 1731, 151, 148
  • Codeforces Round 953 (Div. 2)(A~D题解)
  • 晶圆切割机(晶圆划片机)为晶圆加工重要设备 我国市场国产化进程不断加快
  • 39、基于深度学习的(拼音)字符识别(matlab)
  • CCF 矩阵重塑
  • Aigtek高压放大器在柔性爬行机器人驱动性能研究中的应用
  • Postman下发流表至Opendaylight
  • C语言王国——数组的旋转(轮转数组)三种解法
  • MySQL中CAST和CONVERT函数都用于数据类型转换
  • 速盾:cdn影响seo吗?