大数跨境
0
0

AXI Lite总线介绍

AXI Lite总线介绍 至芯
2025-09-27
1

AXI Lite(Advanced eXtensible Interface Lite)是 ARM 公司推出的 AXI 总线协议族中的轻量级版本,专为 低带宽、简单控制类传输场景 设计(如外设配置寄存器读写),是 SoC(System on Chip)中连接处理器与外设的核心协议之一。它继承了 AXI 协议的高灵活性、低延迟特性,同时简化了信号与时序,降低了外设设计复杂度。

一、AXI Lite 总线的核心定位与应用场景

AXI 协议族包含三个主要子协议(AXI Full、AXI Lite、AXI Stream),其中 AXI Lite 的定位是 “轻量级控制总线”,与其他子协议的区别如下:

协议类型
传输带宽
核心用途
关键特点
典型应用场景
AXI Full
高带宽(突发传输)
高速数据传输
支持突发传输(1~256 拍)、乱序
DDR 控制器、PCIe 桥、DMA
AXI Lite
低带宽(单拍传输)
低速控制信号传输
仅支持单拍传输、无突发、顺序传输
外设寄存器配置(如 UART、I2C、GPIO)
AXI Stream
流数据(无地址)
连续流数据传输
无地址线、仅数据 + 控制信号
视频 / 音频处理、数据加密模块

核心应用场景:所有需要通过 “地址 + 数据” 进行 寄存器读写 的外设,例如:

  • 配置 UART 的波特率、数据位;
  • 读取 GPIO 的输入状态;
  • 控制 I2C 外设的启动 / 停止信号;
  • 访问 ADC/DAC 的采样值寄存器。

二、AXI Lite 总线的核心特性

AXI Lite 基于 “分离地址 / 数据通道” 和 “握手信号同步” 设计,核心特性可概括为以下几点:

1. 单拍传输,无突发

AXI Lite 不支持突发传输(Burst Transfer),每次传输仅包含 1 个数据节拍(Data Beat),即 “1 次地址传输 + 1 次数据传输”,简化了外设的时序逻辑(无需处理突发长度、突发类型)。

2. 分离的读写通道

AXI Lite 将 “读操作” 和 “写操作” 分为 两个独立通道(Read Channel + Write Channel),通道间完全解耦,可并行传输(如同时进行 “读寄存器 A” 和 “写寄存器 B”),提升总线利用率。

3. 握手信号机制

所有传输均通过 “Valid-Ready” 握手协议 同步,确保发送端(Source)和接收端(Destination)的时序匹配:

  • 发送端置位 VALID 信号,表示 “数据 / 地址已准备好”;
  • 接收端置位 READY 信号,表示 “已准备好接收数据 / 地址”;
  • 仅当 VALID == 1 且 READY == 1 时,传输成功(采样数据 / 地址)。

这种机制支持 背压(Backpressure)(接收端可通过拉低 READY 暂停传输),适配不同速度的外设。

4. 固定数据宽度

AXI Lite 仅支持两种标准数据宽度:

  • 32 位(最常用,适用于大多数嵌入式场景);
  • 64 位(用于需要宽数据的控制场景,如 64 位处理器配置)。

地址宽度可灵活配置(如 32 位、64 位),适配不同寻址空间的 SoC。

5. 支持访问权限与响应

  • 访问权限
    :地址传输时可携带 “特权级”“安全属性” 等信号(如 AXI4-Lite 的 PROT 信号),控制外设的访问权限;
  • 传输响应
    :读写完成后,接收端通过 RESP 信号返回传输结果(如 OKAY 表示成功,SLVERR 表示从机错误,DECERR 表示地址解码错误),便于错误处理。

三、AXI Lite 总线的信号组成(32 位数据宽度为例)

AXI Lite 分为 读通道 和 写通道,两类通道的信号独立,以下是完整的信号列表(按通道分类):

1. 读通道(Read Channel)

读通道用于 “主机(如处理器)从从机(如外设)读取数据”,包含 3 个子通道:读地址通道(AR)读数据 / 响应通道(RD)

信号名
方向(主机→从机)
位宽
核心功能描述
ARVALID
输出
1
主机:表示读地址 / 控制信号已准备好
ARREADY
输入
1
从机:表示已准备好接收读地址 / 控制信号(握手信号)
ARADDR
输出
32
主机:读操作的目标地址(需对齐到数据宽度,如 32 位数据需地址 4 字节对齐)
ARPROT
输出
3
主机:读操作的保护信号(bit0:特权级,bit1:安全属性,bit2:数据 / 指令访问)
ARLOCK
输出
1
主机:锁定信号(AXI Lite 仅支持 0,表示非锁定传输)
ARID
输出
1
主机:读地址标识(AXI Lite 仅支持 0,无多事务标识需求)
ARBURST
输出
2
主机:突发类型(AXI Lite 仅支持 00,表示固定地址,无突发)
ARLEN
输出
4
主机:突发长度(AXI Lite 仅支持 0000,表示 1 拍传输)
ARSIZE
输出
3
主机:传输大小(AXI Lite 仅支持 010,表示 4 字节,即 32 位数据)
---
---
---
---(读数据 / 响应通道,方向:从机→主机)---
RDVALID
输入
1
从机:表示读数据 / 响应信号已准备好
RDREADY
输出
1
主机:表示已准备好接收读数据 / 响应信号(握手信号)
RDATA
输入
32
从机:返回给主机的读数据
RDRESP
输入
2
从机:读操作的响应结果(00=OKAY,01=EXOKAY,10=SLVERR,11=DECERR)
RDID
输入
1
从机:读数据标识(与 ARID 对应,AXI Lite 仅支持 0

2. 写通道(Write Channel)

写通道用于 “主机向从机写入数据”,包含 3 个子通道:写地址通道(AW)写数据通道(WD)写响应通道(WR)

信号名
方向(主机→从机)
位宽
核心功能描述
AWVALID
输出
1
主机:表示写地址 / 控制信号已准备好
AWREADY
输入
1
从机:表示已准备好接收写地址 / 控制信号(握手信号)
AWADDR
输出
32
主机:写操作的目标地址(需 4 字节对齐)
AWPROT
输出
3
主机:写操作的保护信号(同 ARPROT
AWLOCK
输出
1
主机:锁定信号(AXI Lite 仅支持 0
AWID
输出
1
主机:写地址标识(AXI Lite 仅支持 0
AWBURST
输出
2
主机:突发类型(AXI Lite 仅支持 00
AWLEN
输出
4
主机:突发长度(AXI Lite 仅支持 0000
AWSIZE
输出
3
主机:传输大小(AXI Lite 仅支持 010,4 字节)
---
---
---
---(写数据通道,方向:主机→从机)---
WDVALID
输出
1
主机:表示写数据 / 字节使能信号已准备好
WDREADY
输入
1
从机:表示已准备好接收写数据 / 字节使能信号(握手信号)
WDATA
输出
32
主机:待写入从机的数据
WDSTRB
输出
4
主机:字节使能信号(每 bit 对应 WDATA 的 1 个字节,1 表示该字节有效)
WDID
输出
1
主机:写数据标识(AXI Lite 仅支持 0
---
---
---
---(写响应通道,方向:从机→主机)---
WRVALID
输入
1
从机:表示写响应信号已准备好
WRREADY
输出
1
主机:表示已准备好接收写响应信号(握手信号)
WRRESP
输入
2
从机:写操作的响应结果(同 RDRESP
WRID
输入
1
从机:写响应标识(与 AWID 对应,AXI Lite 仅支持 0

关键信号说明

  • 字节使能(WDSTRB)
    :用于 “部分字节写入”,例如仅写入 32 位数据的低 8 位时,WDSTRB = 4'b0001
  • 响应信号(RDRESP/WRRESP)
    OKAY 是最常见的响应,SLVERR 表示从机内部错误(如寄存器读写越界),DECERR 表示地址未映射到任何从机(地址错误)。

四、AXI Lite 总线的传输时序(核心流程)

AXI Lite 的传输时序基于 “握手协议”,分为 读操作时序 和 写操作时序,以下是典型的单拍传输流程(32 位数据宽度)。

1. 读操作时序(主机读从机数据)

完整的读操作包含 2 个阶段:地址握手 和 数据 / 响应握手,时序图如下(关键信号时序):

时序步骤

  1. 地址阶段(AR Channel)

    • 主机置位 ARVALID,并输出 ARADDR(如 0x100,目标寄存器地址)和 ARPROT
    • 从机准备好后置位 ARREADY
    • 当 ARVALID & ARREADY == 1 时,地址握手成功,从机锁存 ARADDR,开始读取对应寄存器数据。
  2. 数据 / 响应阶段(RD Channel)

    • 从机读取数据后,置位 RDVALID,并输出 RDATA(如 0x12345678)和 RDRESP(00=OKAY);
    • 主机准备好接收后置位 RDREADY
    • 当 RDVALID & RDREADY == 1 时,数据握手成功,主机锁存 RDATA,读操作完成。

关键说明:地址阶段和数据阶段可 “重叠”(从机在地址握手后立即准备数据,无需等待地址阶段结束),减少传输延迟。

2. 写操作时序(主机写从机数据)

完整的写操作包含 3 个阶段:地址握手数据握手响应握手,时序图如下:

时序步骤

  1. 地址阶段(AW Channel)

    • 主机置位 AWVALID,输出 AWADDR(如 0x104)和 AWPROT
    • 从机置位 AWREADY,地址握手成功,从机锁存 AWADDR
  2. 数据阶段(WD Channel)

    • 主机置位 WDVALID,输出 WDATA(如 0x87654321)和 WDSTRB(如 1111,表示 4 字节全有效);
    • 从机置位 WDREADY,数据握手成功,从机锁存 WDATA,并写入对应寄存器。
  3. 响应阶段(WR Channel)

    • 从机完成写入后,置位 WRVALID,输出 WRRESP(00=OKAY);
    • 主机置位 WRREADY,响应握手成功,主机确认写操作完成。

关键说明:地址阶段和数据阶段可并行(主机可同时发送地址和数据),进一步缩短写操作延迟。

五、AXI Lite 从机设计要点(以 FPGA 为例)

在 FPGA 中实现 AXI Lite 从机(如自定义外设)时,需重点关注以下设计要点,确保时序合规和功能正确:

1. 地址解码逻辑

从机需根据主机发送的 ARADDR/AWADDR,解码出 “目标寄存器地址”,例如:

  • 若从机的地址映射范围为 0x1000_0000 ~ 0x1000_00FF,则需判断 ARADDR 是否在此范围内;
  • 解码后选择对应的寄存器(如 0x1000_0000 对应 “控制寄存器”,0x1000_0004 对应 “数据寄存器”)。

注意:地址需对齐到数据宽度(32 位数据需 4 字节对齐),否则从机应返回 DECERR 响应。

2. 握手信号同步

从机的 ARREADY/WDREADY/RDVALID/WRVALID 信号需严格遵循握手协议:

  • ARREADY
    :可设计为 “组合逻辑”(如收到 ARVALID 后立即置 1)或 “时序逻辑”(如需要时钟周期准备);
  • RDVALID
    :必须在从机读取寄存器数据后置位,且仅在 RDREADY 置位时释放(避免数据残留);
  • 避免 “组合逻辑冒险”:所有握手信号的输出需通过寄存器打拍(尤其是高频场景,如 100MHz 以上)。

3. 寄存器映射设计

从机的核心是 “寄存器组”,需明确寄存器的 地址、读写属性、复位值,例如:

寄存器地址
名称
读写属性
复位值
功能描述
0x1000_0000
CTRL
读 / 写
0x0000_0000
控制寄存器(bit0:使能,bit1:中断使能)
0x1000_0004
DATA_IN
0x0000_0000
数据输入寄存器(读取外设采样值)
0x1000_0008
DATA_OUT
0x0000_0000
数据输出寄存器(配置外设输出值)
0x1000_000C
STATUS
0x0000_0000
状态寄存器(bit0:忙信号,bit1:错误标志)

设计原则

  • 读写寄存器分开映射,避免同一地址同时支持读写导致的冲突;
  • 状态寄存器(如 STATUS)仅支持读,控制寄存器(如 CTRL)支持读写,确保数据一致性。

4. 响应信号生成

从机需根据传输结果生成 RDRESP/WRRESP

  • 地址在映射范围内,且寄存器读写正常 → OKAY
  • 地址在映射范围内,但读写越界(如写只读寄存器) → SLVERR
  • 地址不在映射范围内 → DECERR
  • 响应信号需与 RDVALID/WRVALID 同步输出,确保主机正确采样。

5. 时序约束

FPGA 设计中需为 AXI Lite 信号添加时序约束,确保跨时钟域(若主机与从机时钟不同)或同时钟域的时序收敛:

  • 同时钟域:约束 ARVALIDARREADYWDVALIDWDREADY 等路径的最大延迟,不超过时钟周期;
  • 跨时钟域:需通过 “异步 FIFO” 或 “握手同步器” 处理,避免亚稳态(如主机用 100MHz,从机用 50MHz)。

六、AXI Lite 工具链与开源资源

在实际开发中,无需手动编写所有 AXI Lite 代码,可借助工具自动生成或复用开源 IP:

1. FPGA 厂商工具

  • Xilinx Vivado
    :提供 AXI Lite IP(如 AXI GPIOAXI UART Lite),支持通过 IP Integrator 图形化配置,自动生成从机代码;
  • Intel Quartus
    :提供 Avalon-ST to AXI Lite Bridge 等 IP,支持 AXI Lite 与 Intel 总线的转换。

2. 开源 IP 与框架

  • AXI Lite Slave Template
    (Xilinx):Vivado 自带的从机模板,包含完整的握手逻辑和寄存器映射框架,可直接修改寄存器定义;
  • OpenCores AXI Lite
    :开源的 AXI Lite 从机 / 主机 IP,支持 Verilog/VHDL 实现,可自定义数据宽度和地址映射;
  • PULP Platform AXI Lite
    :面向嵌入式处理器(如 RISC-V)的 AXI Lite 外设库,包含 UART、I2C、SPI 等常用外设的 AXI Lite 接口。

3. 验证工具

  • UVM(Universal Verification Methodology)
    :工业界标准的验证框架,可搭建 AXI Lite 总线的验证环境,覆盖正常传输、错误响应、背压等场景;
  • Xilinx Vitis HLS
    :支持 C/C++ 代码自动生成 AXI Lite 从机 IP,降低高级语言开发者的硬件设计门槛。

七、总结

AXI Lite 是一款 轻量级、高可靠性 的控制总线,核心优势在于:

  1. 简化的信号与时序(无突发、单拍传输),降低外设设计复杂度;
  2. 分离的读写通道,支持并行传输,提升总线效率;
  3. 完整的握手与响应机制,确保传输稳定性和错误可追溯。

它是 SoC 中 “处理器 - 外设” 控制交互的事实标准,广泛应用于嵌入式系统、FPGA 原型验证、ASIC 设计等场景。掌握 AXI Lite 的信号定义、时序流程和从机设计要点,是硬件工程师进行 SoC 集成的核心能力之一。

🌻亲爱的读者们,今天的分享就到这里啦!如果今天的内容对你有启发

记得点亮右下角的“❤️”或转发给需要的朋友,让温暖传递的更远!

生活或许没有标准答案,但每一次【分享】和【点赞】,都是我们相遇的印记。你最近有哪些感悟或故事?欢迎留言区聊一聊~~~

你的认可,是我们深夜码字的充电桩🔋

明天见!保持好奇,永远鲜活~

🔍关注我们,不错过每一次相遇图片图片图片

扫码领取免费学习资料~~~


往期精彩部分

SATA数据链路层介绍
乒乓操作实现过程

【声明】内容源于网络
0
0
至芯
至芯科技关于FPGA信息的交流平台
内容 392
粉丝 0
至芯 至芯科技关于FPGA信息的交流平台
总阅读47
粉丝0
内容392