《深入理解AXI4协议:从入门到实践》 -- 第七篇:AXI4-Lite与AXI4-Stream

第七篇:AXI4-Lite与AXI4-Stream

AXI4协议针对不同场景提供了两个关键子协议: AXI4-Lite (轻量级控制)和 AXI4-Stream (流式数据传输)。本篇将深入对比它们的特性、接口设计及应用场景,帮助读者灵活选择适配方案。


1. AXI4-Lite:轻量级控制接口

AXI4-Lite是AXI4的简化版本,专为低复杂度、低带宽的寄存器或控制接口设计。

1.1 核心特性
  • 单次传输
    不支持突发传输(AxLEN=1),每次事务仅传输1拍数据。
    地址必须按数据宽度对齐(如32位数据对应地址末2位为0)。
  • 信号精简
    移除 AxLENAxBURSTAxCACHE等复杂信号。
    仅保留基础控制信号(AxADDRAxVALIDAxREADY等)。
  • 资源占用低
    逻辑复杂度较AXI4减少50%以上,适合FPGA资源受限场景。
1.2 接口信号

AXI4-Lite接口信号与AXI4对比(以写通道为例):

信号AXI4AXI4-Lite说明
AWADDR写地址
AWLEN突发长度(AXI4-Lite固定为1)
AWSIZE数据宽度(由总线宽度隐式定义)
WSTRB字节使能
BVALID/BREADY写响应通道
1.3 典型应用场景
  • 外设寄存器配置
    通过AXI4-Lite访问GPIO、UART、SPI等外设的控制寄存器。
  • 低带宽控制接口
    传感器校准参数写入、状态寄存器读取。
  • 硬件加速器控制
    启动/停止命令、工作模式配置。

示例操作 (32位寄存器写入):

verilog

// 写入地址0x1000,数据0x12345678  
assign AWADDR  = 32'h1000;  
assign WDATA   = 32'h12345678;  
assign AWVALID = 1'b1;  
assign WVALID  = 1'b1;  
assign WSTRB   = 4'b1111;  // 4字节使能  
// 等待AWREADY和WREADY握手  

2. AXI4-Stream:无地址流式传输

AXI4-Stream专为高吞吐量、无地址的连续数据流设计,适用于实时数据传输。

2.1 核心特性
  • 无地址机制
    数据按顺序连续传输,无需指定目标地址。
    接收端通过 TLAST标记数据包边界。
  • 极简接口
    仅包含数据通道(无地址、响应通道)。
    支持背压机制(通过 TVALID/TREADY握手)。
  • 高实时性
    数据流“即到即传”,无地址解析延迟。
2.2 接口信号

AXI4-Stream核心信号:

信号方向描述
TVALID主→从发送端数据有效
TREADY从→主接收端准备好接收数据
TDATA[N:0]主→从传输的数据(位宽可配置)
TLAST主→从标记数据包最后一拍
TKEEP[N/8-1:0]主→从字节使能(可选)
TUSER[M:0]主→从用户自定义附加信息(可选)
2.3 传输时序
  • 基本握手规则
    发送端在 TVALID=1时保持数据稳定,直到 TREADY=1完成传输。
    TLAST=1表示当前拍是数据包的结尾。
2.4 典型应用场景
  • 视频流处理
    摄像头数据通过AXI4-Stream传输到ISP(图像信号处理器)。
  • 高速数据采集
    ADC采样数据实时传输至FPGA处理模块。
  • DMA传输
    DMA控制器将内存数据以流形式推送至外设(如以太网MAC)。

示例操作 (视频行数据传输):

**verilog**

// 传输一行1920像素的RGB数据(每像素32位)
// 传输一行1920像素的RGB数据(每像素32位)  
for (int i=0; i<1920; i++) begin  
  assign TDATA  = rgb_data[i];  
  assign TVALID = 1'b1;  
  assign TLAST  = (i == 1919) ? 1'b1 : 1'b0;  
  wait (TREADY);  // 等待接收端准备  
end  
---
3. AXI4-Lite与AXI4-Stream对比
特性AXI4AXI4-LiteAXI4-Stream
传输类型地址映射读写单次寄存器读写无地址连续流
突发传输支持(1~256)不支持(固定1拍)无地址,持续流
通道数量5个独立通道5个(简化版)1个数据通道
吞吐量极高
典型应用内存控制器外设寄存器视频/传感器数据流

4. 混合系统设计案例
4.1 视频处理系统
  • AXI4-Stream
    摄像头输入 → 图像预处理模块 → HDMI输出。
  • AXI4-Lite
    CPU通过AXI4-Lite配置预处理参数(如对比度、亮度)。
  • AXI4
    帧缓冲区通过AXI4接口连接DDR内存。
4.2 数据采集与控制系统
  • AXI4-Stream
    ADC采集数据流 → FPGA滤波模块 → 实时显示。
  • AXI4-Lite
    CPU通过AXI4-Lite配置ADC采样率、滤波系数。

5. 设计注意事项
5.1 AXI4-Lite的地址对齐

若主设备发送未对齐地址,从设备需返回 SLVERR(或忽略未对齐位)。

5.2 AXI4-Stream的流控

接收端需及时置 TREADY=1,避免数据丢失。若接收缓冲满,可暂停握手。

5.3 协议转换桥接
  • AXI4-Stream转AXI4
    添加地址生成逻辑,将数据流写入内存(如DMA控制器)。
  • AXI4转AXI4-Stream
    从内存读取数据并转换为流格式(如视频帧读取)。

6. 总结

AXI4-Lite :轻量化控制接口,适合寄存器访问。
AXI4-Stream :高效流式传输,专为实时数据设计。

附录:协议转换代码片段

AXI4-Stream转AXI4写传输(Verilog片段)

verilog

// 状态机控制流数据写入内存  
always @(posedge ACLK) begin  
  case (state)  
    IDLE:  
      if (TVALID && TREADY) begin  
        AWADDR  <= target_addr;  
        WDATA   <= TDATA;  
        AWVALID <= 1'b1;  
        WVALID  <= 1'b1;  
        state   <= SEND_ADDR_DATA;  
      end  
    SEND_ADDR_DATA:  
      if (AWREADY && WREADY) begin  
        AWVALID <= 1'b0;  
        WVALID  <= 1'b0;  
        target_addr <= target_addr + 4;  // 32位数据,地址递增4  
        state   <= IDLE;  
      end  
  endcase  
end  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值