AXIS接口教程

免责声明:

本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。

读者在使用本文信息时,应自行验证其准确性和适用性,并对其使用结果负责。本文内容不构成专业技术咨询或建议,具体的技术实现和应用应根据实际情况和需要进行详细分析和验证。

本文所涉及的任何商标、版权或其他知识产权均属于其各自的所有者。若本文中引用了第三方的资料或信息,引用仅为学术交流目的,不构成对第三方内容的认可或保证。

若有任何疑问或需进一步信息,请联系本文作者或相关专业人士。


前言

AXI-Stream (AXIS) 总线是 Xilinx 公司的高级可扩展接口 (AXI) 协议家族中的一种协议,专门用于数据流的传输。它是基于 AXI4 协议简化的版本,设计用于高效传输数据流,常见于高速数据流处理应用,例如视频处理、通信系统和信号处理等。


一、AXI-Stream 的特点

  1. 简化的信号线:AXIS 去掉了地址信号和控制信号,只保留了数据和有效信号,这样可以减少线路和复杂性。
  2. 无握手机制 :与传统的 AXI 总线不同,AXIS 没有明确的握手机制。数据流通过 TVALIDTREADY 信号的配合来进行传输控制。
  3. 宽度可变:AXIS 支持不同位宽的数据传输,可以是 8 位、16 位、32 位或 64 位等,具体取决于系统的设计需求。
  4. 支持多通道:AXIS 可以支持多通道数据传输(TVLAST 和 TKEEP 信号),特别适用于视频和图像数据流,其中每个通道可能代表一个像素或一个颜色通道。
  5. 数据流传输:AXIS 设计用于传输连续的数据流,无需地址空间,可以更高效地处理连续数据的传输,如视频帧、音频流、网络数据包等。

二、AXI-Stream 的主要信号

  • TVALID (Transmit Valid):发送端有效信号,当数据有效时,TVALID 被拉高。
  • TREADY (Transmit Ready):接收端准备好信号,当接收端准备好接收数据时,TREADY 被拉高。
  • TDATA (Transmit Data):传输的数据位线,包含实际的数据内容。
  • TSTRB (Transmit Strobe):字节选通信号,指示哪些字节是有效的(通常用于部分字节有效的情况)。
  • TLAST:指示数据流的结束,用于标识一个数据包或帧的结束。
  • TIDTDEST:用于多路传输时标识数据流的 ID 和目标。
  • TUSER:用户定义信号,可以携带用户自定义的控制信息。

三、编写建议

在设计 AXIS 音视频接口时,如果数据传输的宽度固定且全字节有效,可以忽略 TSTRB 和 TKEEP 信号。TLAST 信号用于标识每行数据的结束,而 TUSER 信号可以作为帧标志或携带其他附加信息,需确保其解码与使用的一致性。 为了简化读时序控制,建议使用 First-Word Fall-Through (FWFT) 模式的 FIFO 作为缓存空间。这不仅减少了读取延迟,还使得数据读取更加直观和高效。确保 FIFO 深度满足设计需求,以避免数据溢出或饥饿现象。

什么时候从FIFO中读数据?

javascript 复制代码
assign rd_en  =  M_AXIS_TVALID && M_AXIS_TREADY;

什么时候产生TLAST?

使用计数器,当计数器到达行数据量 - 2 且M_AXIS_TVALID && M_AXIS_TREADY时,即可产生TLAST,当M_AXIS_TVALID && M_AXIS_TREADY握手完成时即可拉低TLAST

java 复制代码
always@(posedge M_AXIS_ACLK)
  if(!M_AXIS_ARESETN)
        M_AXIS_TLAST <= 'd0;
  else if(M_AXIS_TVALID && M_AXIS_TREADY)
            if(cnt == h_num - 2)
                M_AXIS_TLAST <= 'd1;
            else 
                M_AXIS_TLAST <= 'd0;
  else 
        M_AXIS_TLAST <= M_AXIS_TLAST;

什么时候拉低TUSER?

当一帧的第一次握手即可拉低TUSER,即:

javascript 复制代码
 M_AXIS_TVALID && M_AXIS_TREADY;
相关推荐
周湘zx13 小时前
项目三:信号源的FPGA实现
fpga开发
9527华安14 小时前
FPGA多路MIPI转FPD-Link视频缩放拼接显示,基于IMX327+FPD953架构,提供2套工程源码和技术支持
fpga开发·架构·音视频
上理考研周导师14 小时前
【FPGA】ISE13.4操作手册,新建工程示例
fpga开发
技术小白爱FPGA17 小时前
Xilinx 平台 drp 动态调节 mmcm
fpga开发
北京太速科技股份有限公司19 小时前
太速科技-889-基于RFSOC XCZU49DR的 16T16R的软件无线电硬件
fpga开发
stm 学习ing21 小时前
HDLBits训练5
c语言·fpga开发·fpga·eda·hdlbits·pld·hdl语言
超能力MAX21 小时前
IIC驱动EEPROM
单片机·嵌入式硬件·fpga开发
吉大一菜鸡1 天前
FPGA学习(基于小梅哥Xilinx FPGA)学习笔记
笔记·学习·fpga开发
9527华安2 天前
FPGA实现MIPI转FPD-Link车载同轴视频传输方案,基于IMX327+FPD953架构,提供工程源码和技术支持
fpga开发·架构·mipi·imx327·fpd-link·fpd953