一、AXI总线概述:三种协议对比与互连结构

大家好,我是做数字IC设计的老工程师了。今天咱们聊聊AXI总线。

说实话,AXI协议刚出来那会儿,我还觉得挺复杂的。后来项目做多了,发现它其实就是一套规则——告诉你怎么在芯片内部高效地传数据。我个人习惯把AXI比作「芯片内部的高速公路」,你想想看,没有这条路,各个模块之间怎么通信?

1.1 AXI4、AXI4-Lite、AXI4-Stream 到底有啥区别?

很多刚入行的朋友问我:这三种协议到底选哪个?我当年也踩过坑。咱们一个一个说清楚。

特性 AXI4 AXI4-Lite AXI4-Stream
数据宽度 8~1024位,可配置 固定32位或64位 任意宽度
突发传输 支持(Burst) 不支持 支持连续流
地址通道 有独立的读写地址通道 有独立的读写地址通道 无地址通道
典型应用 DDR控制器、DMA、高性能外设 配置寄存器、状态寄存器 视频流、音频流、数据流处理
握手信号 VALID/READY VALID/READY VALID/READY

AXI4 是完整版。它支持突发传输,一次地址请求可以传多个数据。我在项目中遇到过用AXI4接DDR控制器,一次突发传16个64位数据,效率非常高。

AXI4-Lite 是轻量版。说白了就是简化版,不支持突发,每次只能读或写一个数据。我建议用它来配寄存器——你想想,配置寄存器一次就写一个地址,用AXI4反而浪费。

AXI4-Stream 是流式版。它没有地址通道,数据像水管里的水一样流过去。嗯,这里要注意:它没有地址,所以适合视频像素流、音频采样流这种场景。我记得有个项目做图像处理,用AXI4-Stream传像素,一拍一个像素,干净利落。

核心区别一句话总结:

  • 要高性能、大数据量传输?选AXI4。
  • 要配寄存器、控制状态?选AXI4-Lite。
  • 要流式数据、不要地址?选AXI4-Stream。

1.2 AXI互连结构简介

单个主设备连单个从设备,很简单。但实际芯片里,往往是多个主设备(比如CPU、DMA、GPU)要访问多个从设备(比如DDR、SRAM、外设)。这时候就需要AXI互连结构了。

AXI互连说白了就是一个「交通枢纽」。它负责把多个主设备的请求,路由到正确的从设备上。我画了一张图,帮你理解这个结构。

AXI互连结构示意图 主设备1 (CPU) 主设备2 (DMA) 主设备3 (GPU) AXI互连 (仲裁 + 路由 + 译码) (跨时钟域处理) 从设备1 (DDR) 从设备2 (SRAM) 从设备3 (外设) 多个主设备通过AXI互连访问多个从设备 互连负责:地址译码、仲裁、数据路由、跨时钟域同步 ⚠ 时序约束重点:互连内部的跨时钟域路径、多路选择器延迟、握手信号时序

AXI互连内部主要做三件事:

  • 地址译码:判断主设备要访问哪个从设备
  • 仲裁:多个主设备同时请求时,决定谁先获得总线
  • 数据路由:把数据从主设备传到正确的从设备,或者反过来

另外,互连还要处理跨时钟域的问题。不同模块可能跑在不同时钟频率下,互连需要做同步处理。我曾经在一个项目中,CPU跑1GHz,外设只跑50MHz,互连里跨时钟域没处理好,结果数据偶尔丢一拍。查了三天才找到问题——嗯,从那以后我对跨时钟域设计格外小心。

个人经验:

做AXI互连时序约束时,我最关注三个点:

  1. 互连输入到输出的组合逻辑延迟——这决定了最高频率
  2. 跨时钟域路径的false path或set_max_delay设置
  3. 握手信号VALID/READY的时序关系——别让它们互相等死锁

避坑指南:

我曾经遇到一个坑:AXI互连里用了多级流水线,但没给足够的时序余量。结果后端PR时发现互连路径太长,setup违例。后来我学乖了,在RTL设计阶段就预估互连延迟,给后端留出余量。

1.3 三种协议在互连中的表现

在同一个互连结构里,三种协议可以共存。比如:

  • CPU通过AXI4访问DDR,跑大数据
  • CPU通过AXI4-Lite配置外设寄存器
  • 视频模块通过AXI4-Stream传像素流

互连需要同时支持这三种协议。我个人习惯把AXI4-Lite的路径单独约束,因为它频率通常不高,但寄存器访问的时序要求严格。AXI4-Stream则要关注数据流的连续性和背压(backpressure)时序。

好了,这一章就聊到这儿。三种协议的区别和互连结构,是后面所有时序约束的基础。你把这些搞清楚了,后面讲具体约束技巧时,就能理解为什么那么做了。

本章要点回顾:

  • AXI4:高性能、突发传输、有地址
  • AXI4-Lite:轻量、无突发、配寄存器用
  • AXI4-Stream:流式、无地址、适合数据流
  • AXI互连:仲裁+路由+译码+跨时钟域
  • 时序约束重点关注:组合逻辑延迟、跨时钟域、握手信号

可可精品资料库