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.mzph.cn/news/852639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GitLab教程(五):高效的工作模式——Feature Branching

文章目录 1.什么是Feature Branching2.Feature Branching的Git实践 1.什么是Feature Branching 特性分支(Feature Branching)是一种软件开发工作流,尤其在使用Git或其他版本控制系统时被广泛采用。这种策略鼓励开发者为每一个新功能、改进或…

Go 语言在云计算和分布式系统开发中的优势和挑战是什么?

Go语言在云计算和分布式系统开发中有以下优势: 并发性能:Go语言具有轻量级的协程(goroutine)和高效的调度器,能够轻松地实现高并发和并行计算,适合处理大量的请求和任务。 高效的网络编程:Go语…

推荐一款好用的读论文软件操作方法

步骤: 1. 使用一译 —— 文档和论文翻译、对照阅读、讨论和社区 2.上传自己想要翻译的论文即可。 示例 Planing论文双语翻译 1.1 Parting with Misconceptions about Learning-based Vehicle Motion Planning 中英文对照阅读 1.2 Rethinking Imitation-based Pl…

SCT82A32 是一款 100V 电压模式控制同步降压控制器

主要特征 ◦ 5.5V-100V 宽输入范围 ◦ 0.8V-60V 可调输出电压 ◦ 0.8V1% 参考电压 ◦ 最低占空比下的40ns 最小 tON ◦ 最高占空比下的150ns 最小 tOFF • 100 KHz 到 1.2 MHz 开关频率 ◦ 时钟同步输入/输出功能 ◦ 可选择二极管仿真或 FPWM • 7.5V 门极驱动器 ◦ 2.3A …

Spring Cloud Gateway 详解:构建高效的API网关解决方案

Spring Cloud Gateway 详解:构建高效的API网关解决方案 Spring Cloud Gateway 是 Spring Cloud 生态系统中用于构建 API 网关的核心组件。它基于 Spring WebFlux 构建,旨在提供简单且有效的方式来路由和增强 API 请求。以下是 Spring Cloud Gateway 的详…

2024年十堰市“武当人才支持计划”科技创新团队申报条件、时间

2024年十堰市“武当人才支持计划”科技创新团队项目申报要求如下,十堰市的企业单位可以了解一下 一 、遴选计划 聚焦十堰市“一主四优多支撑”现代产业体系发展,重点围 绕新能源与智能网联汽车、生态文旅康养、新型电池、绿色食品饮料、生物医药健康等…

【iOS】YYModel源码阅读笔记

文章目录 前言一、JSON转换库对比二、YYModel性能优化三、YYModel的使用四、架构分析YYClassInfo 剖析 五、流程剖析转换前准备工作 – 将JSON统一成NSDictionary将NSDictionary 转换为Model对象提取Model信息使用NSDictionary的数据填充Model 总结 前言 先前写了JSONModel的源…

如何计算可截素数

什么是可截素数? 它本身是一个素数,如果从左往右逐一截去数字,剩下的仍然都是素数,如果从右往左逐一截去数字,剩下的也仍然都是素数。 例如:3797就是一个可截素数。 从左往右截去数字:797&a…

利用three-csg-ts对做物体交互式挖洞

默认物体均为居中,如果指定位置没有发生偏移,可能是因为在执行布尔操作之前没有正确设置变换。确保在进行布尔运算之前应用所有必要的变换。以下是经过修正的完整代码示例,它会确保圆柱正确旋转并与盒子进行 CSG 操作。 安装依赖 首先&…

Linux部署FTP服务

什么是FTP服务 FTP(File Transfer Protocol,文件传输协议)是TCP/IP协议组中的协议之一。该协议是Internet文件传输的基础,它由一系列规格说明文档所定义,目的是让用户能把一个主机上的文件复制到另一个主机上&#xff…

如何实现网络隔离后,军工单位内网数据导出的安全性?

在现代信息化战争中,军工单位在信息安全方面的需求尤为突出。通常会采用物理隔离,将网络隔离成内网和外网,防止外部网络的恶意入侵和数据窃取。隔离后的数据仍存在内外网交换的需求,即涉及到内网数据导出,因此每日会面…

盒马鲜生礼品卡如何使用?

盒马鲜生的礼品卡除了在门店用以外,还有什么用处啊 毕竟家附近的盒马距离都太远了,好多卡最后都闲置下来了,而且以前都不知道盒马卡还会过期,浪费了好多 还好最近发现了 盒马鲜生礼品卡现在也能在收卡云上兑现了,而且…

低功耗蓝牙ble开发(二)——bluez5源码分析

3、bluetoothctl工具代码分析 Bluetoothctl工具的入口程序client/main.c中的main函数,现在跳到main函数开始分析 (1)client/main.c/main函数分析 int main(int argc, char *argv[]) { ……//命令行输入初始化,该函数里面调…

深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南

📢📢📢 深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南 Spring Cloud Sentinel 是阿里巴巴开源的一款强大的分布式系统流量防卫组件,专为微服务架构设计,提供流量控制、熔断降级…

watcher学习小结

架构 主要是watcher-api,watcher-applier,watcher-decision-engine watcher-applier watcher-decision-engine 将DecisionEngineManager和DecisionEngineSchedulingService封装到oslo_service,然后调service的launch_service,实…

NetSuite ERP项目中非批次物料—批次物料数据转换流程

最近在刚结束的项目上也再次碰到了非批次物料转换为批次物料的操作,因此也想把我们在处理数据流程中的心得写出来,以便复盘与总结,也分享给各位。 整体的步骤我们可分为准备工作,调整工作以及检查工作: 准备工作 主…

抖店退款退货率太高,平台也不帮助商家,快做不下去了怎么办?

我是王路飞。 现在很多商家对抖店的评价是:比拼多多还狠,动不动就扣保证金,退款率太高,而平台一边倒站买家,要是再遇到个别发疯的买家,商家真的很无助。 其实关于抖店退款退货率高、平台也不站在商家这一…

【运维项目经历|031】GitLab自动化运维管理平台项目

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 🏅阿里云ACE认证高级工程师 🏅阿里云开发者社区专家博主 💊交流社区:CSDN云计算交流社区欢迎您的加入! 目…

【Flutter】路由组件的应用 (学习记录)

前言 在 Flutter 中,路由用于管理应用程序中不同页面之间的导航和跳转。Flutter 提供了多种方式来实现路由管理,包括基本的静态路由、动态路由、命名路由以及使用第三方库(如 GetX、Provider 等)来管理路由。 一、 静态路由&#…

编译结果处理的shell脚本

#!/bin/bash WEB"web" DIST"dist" RED\033[0:31m GREEN\033[0;32m NC\033[0m #生产打包传参 BUILD"b" if [ -e ${WEB} ];then#删历史文件rm -r ${WEB}rm ${WEB}.zip fi #编辑文件 npm run build #检查构建是否成功 if[ -e ${DIST} ];then#改名mv…