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 / 1ps

import 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; // 40MHz

design_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;
end

design_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);
    
    #200ns
    master_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);
    
    #200ns
    master_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 控制同步信号和作为时序主控。总的来说,本文为实现视频输出提供了全面的技术指导和详细的操作示例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/708552.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

八爪鱼现金流-023-独具特色的加密解决方案

大家一起来记账。 八爪鱼现金流。 独具特色的加密解决方案。金额数据加密后存储到数据库。 保证数据私密性。欢迎试用。 八爪鱼现金流。 点击【八爪鱼现金流-022-mybatis插件加密和国密SM4算法】文章查看详情。

MySQL从入门到高级 --- 15.优化 16.pymysql

文章目录 第十五章 && 第十六章:15.优化15.1 查询SQL执行效率15.2 定位低效率执行SQL15.3 explain分析执行计划 - 基本使用15.4 explain分析执行计划 - id15.5 explain分析执行计划 - select_type15.6 explain分析执行计划 - type15.7 explain分析执行计划 …

实验室管理系统实用性体现在哪些方面?

随着技术的不断进步和应用的不断深入,在当今的检验检测行业中,实验室管理系统的实用性成为了保证质量检测工作正常有效开展的基础,其重要性不言而喻。而实验室信息管理系统(LIMS)实用性不仅体现在其对实验室日常运作的…

项目实战--文档搜索引擎

在我们的学习过程中,会阅读很多的文档,例如jdk的API文档,但是在这样的大型文档中,如果没有搜索功能,我们是很难找到我们想查阅的内容的,于是我们可以实现一个搜索引擎来帮助我们阅读文档。 1. 实现思路 1…

ESP32基础应用之esp32连接腾讯云并使用微信小程序控制的智能灯

文章目录 1. 项目简介1.1 功能接收1.2 使用资源1.3 测试平台 2 腾讯云物联网开发平台3 esp32设备开发3.1 准备参考例程3.2 vscode平台创建测试工程3.3 修改工程 问题总结使用PowerShell命令行终端生成的二维码不能用 1. 项目简介 1.1 功能接收 实现腾讯云创建项目与设备&…

09-Spark架构

相比MapReduce僵化的Map与Reduce分阶段计算,Spark计算框架更有弹性和灵活性,运行性能更佳。 1 Spark的计算阶段 MapReduce一个应用一次只运行一个map和一个reduceSpark可根据应用复杂度,分割成更多的计算阶段(stage)…

怎么脚本ai创作?分享三个方法

怎么脚本ai创作?在数字化时代,AI技术正逐渐渗透到我们生活的方方面面,其中AI脚本创作软件的出现,极大地提高了创作效率,降低了创作门槛。今天,就为大家推荐三款备受好评的AI脚本创作软件,其中聪…

React-Redux

什么是Redux? Redux是React最常用的集中状态管理工具,类似于Vue中的Pinia(Vuex),可以独立于框架运行 作用:通过集中管理的方式管理应用的状态

定个小目标之刷LeetCode热题(19)

这是道简单题,直接用快慢指针,代码如下 public class Solution {public boolean hasCycle(ListNode head) {if (head null || head.next null) {return false;}ListNode slow head;ListNode fast head.next;while (slow ! fast) {//遇到null则retur…

java原子变量

在Java中,原子变量是一种特殊的变量,它们提供了一种不需要显式加锁的情况下进行线程安全的操作。Java.util.concurrent.atomic包提供了原子变量类,如AtomicInteger,AtomicLong等,它们利用底层硬件的原子操作来保证线程…

华三HCL模拟器安装及华三防火墙配置

0、前言 最近跟模拟器杠上了,主要是需要运行防火墙,目前已经成功模拟出华为、山石防火墙,而且模拟出来的设备能与物理网络环境进行互联。现在我又盯上华三防火墙了。 首先下载模拟器: 下载地址:H3C网络设备模拟器官方免…

小程序 UI 风格,清新脱俗

小程序 UI 风格,清新脱俗

电脑文件msvcr120.dll丢失怎样修复?具体的msvcr120.dll修复方法分享

电脑文件msvcr120.dll丢失是一种比较常见的现象,只要是经常使用电脑的人,那么遇到msvcr120.dll丢失的次数就越多,今天主要来给大家聊一下msvcr120.dll丢失的各种解决方法。 一.电脑文件msvcr120.dll msvcr120.dl是由Microsoft提供的关键系统…

vscode中模糊搜索和替换

文章目录 调出搜索(快捷键)使用正则(快捷键)替换(快捷键)案例假设给定文本如下目标1:查找所有函数名目标2:替换所有函数名为hello目标3:给url增加查询字符串参数 调出搜索…

分布式光纤测温DTS与红外热成像系统的主要区别是什么?

分布式光纤测温DTS和红外热成像系统在应用领域和工作原理上存在显著的区别,两者具有明显的差异性。红外热成像系统适用于表现扩散式发热、面式场景以及环境条件较好的情况下。它主要用于检测物体表面的温度,并且受到镜头遮挡或灰尘等因素的影响会导致失效…

IGMP Proxy

IGMP Proxy 如图左图所示,在一些简单的树形网络拓扑中,与用户网段相连的设备RouterB上并不需要运行复杂的组播路由协议(如PIM),而透传主机IGMP报文又会导致RouterA管理太多用户。当网络中存在大量成员主机或大量成员主…

跨境电商多平台账号运营管理,一文教你轻松搞定!

作为跨境电商多平台账号运营者,我相信大家和我有一样的困扰。因管理多个账号而感到头疼,不断地登录、注销、切换账号,浪费时间的同时又担心账号信息混乱和安全问题,甚至被封。 一、跨境电商店铺多账号运营要注意什么? …

Maven:一个下载jar依赖失败的问题解决方案

内部的一个jar包已经上传到了私服上,在私服管理端也能看到该jar包的完整信息,但是springboot项目引入该jar包发现死活下载不下来,报错如图: 从该错误信息中可以看到,找不到服务名是xxl-job这个的,我们要找的…

ios18新功能:设专属“咒语”动动嘴巴即可操作iphone

苹果 iOS / iPadOS 18 系统引入了“人声快捷指令”(Vocal Shortcuts)功能,即便iPhone、iPad 处于锁屏状态下,也能响应你的语音命令。 苹果官方对“人声快捷指令”的介绍如下:iPhone 和 iPad 用户可以通过人声快捷指令…

SpringAI学习及搭建AI原生应用

文章目录 一、SpringAI是什么二、准备工作1.GPT-API-free2.AiCore3.eylink 三、对话案例实现1.创建项目2.实现简单的对话 四、聊天客户端ChatClient1.角色预设2.流式响应3.call和stream的区别 五、聊天模型提示词提示词模板 六、图像模型(文生图)七、语音模型1.文字转语音(文生…