当前位置:首页 > 新闻资讯 > FPGA之家动态 >

【FPGA视频图像处理】- AXI4-Stream协议详解

时间:2024-07-29      来源:网络搜集 关于我们 0

AXI4-Stream协议,作为高级可扩展接口(AXI)的一部分,专为高速数据流传输而设计,它在FPGA和ASIC设计中扮演着重要角色。

本文将深入探讨AXI4-Stream协议的基本概念、信号定义、工作机制以及其在FPGA设计中的应用。

延伸:

FPGA入门真的难吗?少走弯路,少踩坑。

一、AXI4-Stream协议概述

AXI4-Stream协议是ARM定义的AMBA(高级微控制器总线架构)标准中的一部分。

它与AXI4-Full和AXI4-Lite一起构成了AXI4接口的三种类型。

AXI4-Stream协议专为无地址的流式数据传输设计,适用于不需要地址信息的高速数据通信场合 。

二、AXI4-Stream协议特点

与基于内存映射的AXI4-Full和AXI4-Lite不同,AXI4-Stream不涉及内存地址,它通过流的方式传输数据,类似于串口通信,不关心数据的存储细节 。

这种设计使得AXI4-Stream非常适合于视频、音频、网络数据包等高速数据流的传输。

在AMD视频处理IP中应用非常广泛,大部分都是使用AXI4接口。

三、AXI4-Stream信号定义

AXI4-Stream协议的信号定义相对简单,主要包括以下几类:

1、全局信号

ACLK:全局时钟信号,所有信号在该时钟的上升沿采样。

ARESETN:全局复位信号,低电平有效 。

2、握手信号

TVALID:由发送方(主机)控制,表示数据是否有效。

TREADY:由接收方控制,表示是否准备好接收数据。

3、数据信号

TDATA:实际传输的数据。

TSTRB:数据的字节修饰符,指示哪些字节是有效的(可选)。

TKEEP:数据的有效性修饰符,指示哪些字节是有效的,通常与TSTRB配合使用(可选)。

TUSER:一帧数据起始信号,也表示为SOL(start of frame)。

TLAST:一行数据结束信号,或数据包结束信号,也表示为EOL(end of line signal)

4、通讯时序图

四、AXI4-Stream工作机制

AXI4-Stream的工作机制基于握手协议。

发送方通过TVALID信号表示数据准备就绪,接收方通过TREADY信号表示准备好接收数据。

只有当TVALID和TREADY都为高电平时,数据才会在ACLK的上升沿被传输 。

五、视频数据格式

AXI4-Stream为了传输不同数据格式的视频数据,约定了不同的编码格式,如不同视频通道(RGB、YUV420、YUV422、YUV444等)以及数据位深(8bit、10bit、12bit等等)。

1、静态数据格式

(1)单像素格式

10 bit RGB格式:

紧凑型数据格式,但是按照RBG顺序排列

更多的数据格式如下:

(2)多像素数据格式

多像素数据格式

这里需要注意的是多像素数据顺序

更多数据格式如下:这里需要注意不同格式数据排序。YUV420数据格式:从图中可以看出,每帧偶数行有UV数据,奇数行是UV数据无效,行计数从0开始。2、动态数据格式AXI4-stream是支持动态配置数据格式的,但一般不建议这样用,后续IP不一定支持,且逻辑更复杂,这块了解一下即可。简单理解,如果是高位宽通道传递低位宽数据,比如10bit通道位宽传输8bit数据,只要做高位对齐就行。(1)单像素格式(2)双像素格式(3)多像素格式

六、AXI4-Stream的优势与局限性

1、优势

高效率:无地址的流式传输减少了协议开销,提高了数据传输效率。

灵活性:适用于多种高速数据流的应用场景。

简洁性:协议简单,易于在FPGA中实现。

2、局限性

缺乏地址信息:由于不涉及地址信息,AXI4-Stream不适用于需要内存映射的应用。

数据流控制:需要额外的机制来控制数据流的开始和结束。

UG934手册:

https://pan.quark.cn/s/a2f9a8efc550

如果需要更多学习资料和源码,想要学习FPGA实战入门进阶,

请阅读下面这篇文章:

FPGA入门真的难吗?少走弯路,少踩坑。


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言