芯片级协议

芯片级协议 文章目录一、计算机网络协议 vs 芯片总线级协议1.概念不同2.通信范围不同3.用计网的OSI 7层模型来类比 芯片验证协议4.总结迁移学习二、芯片协议概念1.芯片协议的概念2.芯片协议的分类芯片协议的三层金字塔(1)系统级/芯片间通信协议芯片间互联协议 (Inter-Chip/Die-to-Die Protocols)(2)片上总线协议 (SoC内部)片上系统内部协议 (On-Chip/SoC Interconnect Protocols)(3)外设接口协议 (低速/中速)低速外设协议 (Low-Speed Peripheral Protocols)3.芯片级一致性与通信4.验证工作各协议的出现场景5.学习曲线三、术语表四、经典的芯片协议1.PCIe协议(1)概念(2)特性(3)PCIe协议版本演进(4)PCIe三层协议栈(5)PCIe配置空间(6)各层详细功能i.事务层 (Transaction Layer)ii.数据链路层 (Data Link Layer)iii.物理层 (Physical Layer)(7)与计算机网络的类比2.AXI协议(1)概念(2)特性(3)总线类型(4)AXI五通道架构(5)READY/VALID握手机制(6)AXI与其他AMBA总线对比(7)典型应用场景(8)设计注意事项一、计算机网络协议 vs 芯片总线级协议1.概念不同408中的计算机网络协议是主机级协议是“主机与主机之间”的通信协议如IP协议、TCP协议而芯片验证中的芯片协议是芯片总线级协议是“芯片内部或芯片与外设之间”的通信协议如PCIe协议、AXI协议、SPI协议、I²C协议、UART协议、GPIO协议等2.通信范围不同┌─────────────────────────────────────────────────────────────────┐ │ 通信协议层次对比 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 计算机网络协议 芯片总线协议 │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ 应用层 │ │ 软件/驱动 │ │ │ ├─────────────┤ ├─────────────┤ │ │ │ TCP/UDP │ │ PCIe/USB │ 芯片间通信 │ │ ├─────────────┤ ├─────────────┤ │ │ │ IP层 │ │ AXI/AHB │ 片上总线 │ │ ├─────────────┤ ├─────────────┤ │ │ │ 以太网/WiFi│ │SPI/I2C/UART│ 外设接口 │ │ └─────────────┘ └─────────────┘ │ │ │ │ 范围公里级 范围毫米~米级 │ │ 速度Mbps~Gbps 速度Kbps~GT/s │ │ 延迟ms级 延迟ns级 │ │ │ └─────────────────────────────────────────────────────────────────┘3.用计网的OSI 7层模型来类比 芯片验证协议关键理解计算机网络关注远距离、可靠、多主机通信芯片验证关注近距离、高速、确定性通信┌─────────────────────────────────────────────────────────────────┐ │ 计算机网络 vs 芯片验证 协议类比 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ OSI模型 计算机网络 芯片验证 │ │ ───────────────────────────────────────────────────────────── │ │ 应用层 HTTP/FTP 寄存器配置/驱动程序 │ │ 表示层 JSON/XML 数据编码格式 │ │ 会话层 TCP Session 事务层(Transaction)│ │ 传输层 TCP/UDP PCIe TLP / AXI事务 │ │ 网络层 IP 地址映射/路由 │ │ 数据链路层 Ethernet MAC AXI握手 / I²C时序 │ │ 物理层 网线/光纤 引脚电平/差分信号 │ │ │ └─────────────────────────────────────────────────────────────────┘4.总结迁移学习┌─────────────────────────────────────────────────────────────────┐ │ 核心要点 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │1️⃣ 芯片协议芯片内部或芯片与外设之间的语言│ │ │ │2️⃣ 分层理解 │ │ • 系统级PCIe, DDR(芯片间高速通信)│ │ • 片上总线AXI, AHB, APB(SoC内部互联)│ │ • 外设接口UART, SPI, I²C, GPIO(连接外部设备)│ │ │ │3️⃣ 与计算机网络的区别 │ │ • 距离mm~m vs km │ │ • 延迟ns vs ms │ │ • 可靠性确定性 vs 容错性 │ │ │ │4️⃣ 你的优势 │ │ 计算机网络的协议分层思想、状态机理解、时序概念 │ │ 都可以迁移到芯片验证中 │ │ │ └─────────────────────────────────────────────────────────────────┘二、芯片协议概念1.芯片协议的概念芯片级协议是集成电路内部片上系统SoC或芯片之间用于数据交换、控制和通信的标准规则。常见协议包括用于高速组件互联的PCIe/CCIX、处理器间缓存一致性协议如ACE、CHI、低速外设接口I2C、SPI、UART以及芯片开发中的信号级设计规则。2.芯片协议的分类芯片协议的三层金字塔┌──────────────────────────────────────────────────────────────────┐ │ 芯片协议金字塔 │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────┐ │ │ │ 系统级/芯片间通信(高速)│ │ │ │ PCIe, DDR, Ethernet │ │ │ └─────────────────────────────────┘ │ │ │ │ │ ┌─────────────────────────────────┐ │ │ │ 片上总线(On-Chip Bus)│ │ │ │ AXI, AHB, APB(AMBA系列)│ │ │ └─────────────────────────────────┘ │ │ │ │ │ ┌─────────────────────────────────┐ │ │ │ 外设接口(低速/中速)│ │ │ │ SPI, I²C, UART, GPIO │ │ │ └─────────────────────────────────┘ │ │ │ └──────────────────────────────────────────────────────────────────┘(1)系统级/芯片间通信协议芯片间互联协议 (Inter-Chip/Die-to-Die Protocols)这类协议用于连接不同的芯片特别是在先进封装和Chiplet(小芯片)架构中PCIe (Peripheral Component Interconnect Express): 高速串行计算机扩展总线标准广泛用于CPU与GPU、存储器等设备通信。CCIX (Cache Coherent Interconnect for Accelerators): 专门为加速器创建的低延迟、缓存一致性协议。CXL (Compute Express Link): 基于PCIe的开放式高速互联协议支持CPU与设备间的内存共享。协议全称速度类比理解应用场景PCIePeripheral Component Interconnect Express2.5~32 GT/s相当于芯片界的高速公路GPU、NVMe SSD、网卡与CPU连接DDRDouble Data Rate3.2~8.4 Gbps相当于芯片界的内存专用通道CPU与DRAM内存连接Ethernet以太网1~400 Gbps与计算机网络同源网络接口控制器举例PCIe协议┌─────────────────────────────────────────────────────────┐ │ PCIe协议特点 │ ├─────────────────────────────────────────────────────────┤ │ • 串行高速接口点对点连接 │ │ • 支持多Lanex1, x4, x8, x16并行传输 │ │ • 分层架构事务层→数据链路层→物理层(类似OSI模型)│ │ • 支持热插拔、电源管理 │ │ • 验证重点TLP包格式、流控、错误处理、链路训练 │ └─────────────────────────────────────────────────────────┘(2)片上总线协议 (SoC内部)片上系统内部协议 (On-Chip/SoC Interconnect Protocols)用于SoC内部的核心、内存和外设之间的通信。AMBA (Advanced Microcontroller Bus Architecture): ARM公司定义包括高级高性能总线AHB、高级系统总线ASB和高级外设总线APB。ACE (AXI Coherency Extensions): 用于多核处理器中的高速缓存Cache一致性管理。CHI (Coherent Hub Interface): 新一代高性能、高扩展性的一致性网络接口。这是ARM公司AMBA标准的核心协议全称速度特点应用场景AXIAdvanced eXtensible Interface高频(500MHz)5通道、乱序、OutstandingCPU↔DDR、DMA、高性能IPAHBAdvanced High-performance Bus中高频单通道、简单CPU↔SRAM、中等性能IPAPBAdvanced Peripheral Bus低频最简单、2周期传输配置寄存器、低速外设┌─────────────────────────────────────────────────────────────────┐ │ SoC内部总线架构示例 │ │ │ │ ┌─────────┐ ┌─────────────────────────────┐ │ │ │ CPU │────────▶│ AXI Interconnect │ │ │ └─────────┘ └──────────────┬──────────────┘ │ │ │ │ │ ┌────────────────────────────┼────────────────────┐ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ DDR │ │ DMA │ │ AXI2AHB │ │ AXI2APB │ │ │ │ Controller│ │ Engine │ │ Bridge │ │ Bridge │ │ │ └─────────┘ └─────────┘ └────┬────┘ └────┬────┘ │ │ │ │ │ │ ┌──────┴──────┐ ┌──────┴──────┐│ │ │ AHB Bus │ │ APB Bus ││ │ └─────────────┘ └─────────────┘│ │ │ │ │ │ ┌────┴────┐ ┌────┴────┐ │ │ ▼ ▼ ▼ ▼ │ │ USB SDHC UART I2C │ │ │ └─────────────────────────────────────────────────────────────────┘(3)外设接口协议 (低速/中速)低速外设协议 (Low-Speed Peripheral Protocols)用于微控制器与传感器、显示屏等外设的简单通信。I2C (Inter-Integrated Circuit): 两线式串行总线用于简单器件控制。SPI (Serial Peripheral Interface): 高速、同步串行接口。UART (Universal Asynchronous Receiver-Transmitter): 通用异步收发传输器常用于串行通信。这些是芯片验证中最常见的协议用于连接各种外设协议全称线数速度同步/异步类比理解GPIOGeneral Purpose Input/Output任意低-相当于通用开关UARTUniversal Asynchronous Receiver/Transmitter2~4低(~10Mbps)异步相当于串行电话线SPISerial Peripheral Interface4中(~100Mbps)同步相当于高速专线I²CInter-Integrated Circuit2低(~3.4Mbps)同步相当于共享会议室三个外设接口协议对比┌──────────────────────────────────────────────────────────────────┐ │ UART、SPI、I²C 三协议对比 │ ├────────────┬──────────────┬──────────────┬──────────────────────┤ │ 特性 │ UART │ SPI │ I²C │ ├────────────┼──────────────┼──────────────┼──────────────────────┤ │ 线数 │2~4根 │4根 │2根 │ │ 时钟 │ 无(异步)│ 有(SCLK)│ 有(SCL)│ │ 方向 │ 全双工 │ 全双工 │ 半双工 │ │ 拓扑 │ 点对点 │ 点对点/多从 │ 多主多从 │ │ 寻址 │ 无需 │ CS片选 │7/10位地址 │ │ 速度 │ 低 │ 高 │ 低 │ │ 复杂度 │ 最简单 │ 中等 │ 中等 │ ├────────────┴──────────────┴──────────────┴──────────────────────┤ │ 典型应用 │ │ UART → 串口调试、GPS模块、蓝牙模块 │ │ SPI → Flash存储、ADC、OLED屏幕、SD卡 │ │ I²C → 传感器、EEPROM、RTC、电源管理芯片 │ └──────────────────────────────────────────────────────────────────┘GPIO特别说明┌─────────────────────────────────────────────────────────┐ │ GPIO详解 │ ├─────────────────────────────────────────────────────────┤ │ • 不是通信协议是通用输入输出口│ │ • 每个引脚可配置为输入/输出/中断/特殊功能 │ │ • 验证重点方向控制、电平读写、中断触发 │ │ • 应用按键、LED、蜂鸣器、片选信号等 │ │ │ │ 示例 │ │ ┌─────────┐ ┌─────────┐ │ │ │ CPU │────▶│ GPIO │────▶ LED/按键/其他芯片 │ │ │寄存器配置│ │ 控制器 │ │ │ └─────────┘ └─────────┘ │ └─────────────────────────────────────────────────────────┘3.芯片级一致性与通信在AI芯片或多核CPU中处理复杂缓存结构需要特定的一致性协议如监听协议Snooping Protocols来确保数据在多个内存块之间的一致性。重要总结 随着SoC复杂度增加协议一致性验证已成为确保芯片设计成功的关键环节VIPVerification IP通常用于验证这些协议。4.验证工作各协议的出现场景验证场景常见协议验证重点CPU子系统AXI, AHB一致性、乱序、Outstanding外设控制器UART, SPI, I²C时序、状态机、中断高速接口PCIe, USB, Ethernet协议合规性、链路训练存储子系统AXI, DDR带宽、延迟、缓存一致性寄存器配置APB, AXI-Lite读写、权限、复位值5.学习曲线┌─────────────────────────────────────────────────────────────────┐ │ 学习优先级建议 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 必须精通(数字IC验证核心)│ │ └─→ AXI(AXI4/AXI4-Lite/AXI-Stream)│ │ └─→ AHB/APB(理解AMBA体系)│ │ │ │ 重点掌握(常见外设验证)│ │ └─→ UART(最简单入门首选)│ │ └─→ SPI(高速外设常用)│ │ └─→ I²C(传感器常用)│ │ └─→ GPIO(基础中的基础)│ │ │ │ 了解即可(特定领域)│ │ └─→ PCIe(高速接口验证较复杂)│ │ └─→ DDR(内存控制器验证)│ │ └─→ USB/Ethernet(特定IP验证)│ │ │ └─────────────────────────────────────────────────────────────────┘三、术语表缩写英文全称中文全称拓展AXIAdvanced eXtensible Interface高级可扩展接口PCIePeripheral Component Interconnect Express外围组件高速互联或 高速外围组件互联四、经典的芯片协议1.PCIe协议(1)概念PCIePeripheral Component Interconnect Express外围组件高速互联是一种高速串行计算机扩展总线标准由Intel在2001年提出旨在替代旧的PCI、PCI-X和AGP总线标准。(2)特性PCIe核心特点1.高速串行点对点传输非共享总线2.支持热插拔、电源管理、错误报告3.端到端可靠性传输ACK/NAK机制4.服务质量(QoS)支持5.由PCI-SIG组织认证发布(3)PCIe协议版本演进版本发布时间速率(GT/s)编码方式每Lane带宽PCIe 1.020032.58b/10b250 MB/sPCIe 2.020075.08b/10b500 MB/sPCIe 3.020108.0128b/130b985 MB/sPCIe 4.0201716.0128b/130b1.97 GB/sPCIe 5.0201932.0128b/130b3.94 GB/sPCIe 6.0202264.0PAM47.88 GB/sPCIe 7.02025(预计)128.0PAM415.75 GB/s┌─────────────────────────────────────────────────────────────────┐ │ Lane数量与总带宽示例(PCIe4.0x16)│ │ ───────────────────────────────────────────────────────────── │ │ x1 → ~4 GB/s(网卡、SATA控制器)│ │ x4 → ~8 GB/s(NVMe SSD)│ │ x8 → ~16 GB/s(中端GPU)│ │ x16 → ~32 GB/s(高端GPU、加速卡)│ └─────────────────────────────────────────────────────────────────┘(4)PCIe三层协议栈PCIe采用分层架构与计算机网络OSI模型类似┌─────────────────────────────────────────────────────────────────┐ │ PCIe协议栈架构图 │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 事务层(Transaction Layer)│ │ │ │ • 生成/处理TLP(Transaction Layer Packet)│ │ │ │ • 事务类型Memory Read/Write, I/O, Configuration等 │ │ │ │ • 端到端流控(End-to-End Flow Control)│ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 数据链路层(Data Link Layer)│ │ │ │ • 添加LCRC校验、序列号 │ │ │ │ • ACK/NAK重传机制 │ │ │ │ • 链路管理(DLLP报文)│ │ │ │ • 电源管理、流控 │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 物理层(Physical Layer)│ │ │ │ ┌─────────────────────────────────────────────────┐ │ │ │ │ │ 逻辑子层(Logical Sub-Block)│ │ │ │ │ │ • 8b/10b或128b/130b编码 │ │ │ │ │ │ • 加扰/解扰 │ │ │ │ │ │ • LTSSM状态机控制 │ │ │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ │ ▼ │ │ │ │ ┌─────────────────────────────────────────────────┐ │ │ │ │ │ 电气子层(Electrical Sub-Block)│ │ │ │ │ │ • 串行化/解串行化(SerDes)│ │ │ │ │ │ • 差分信号传输(TX/RX)│ │ │ │ │ │ • 时钟恢复、均衡 │ │ │ │ │ └─────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘(5)PCIe配置空间PCIe config space┌─────────────────────────────────────────────────────────────────┐ │ PCIe配置空间布局 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 0x000 ┌─────────────────────────────────────────────────────┐ │ │ │ 标准PCI头(64字节)│ │ │ │ • Device ID, Vendor ID │ │ │ │ • Command, Status │ │ │ │ • Class Code, Revision ID │ │ │ 0x040 └─────────────────────────────────────────────────────┘ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ PCIe扩展能力(PCI Express Capability)│ │ │ │ • 链路能力、状态 │ │ │ │ • 设备能力、状态 │ │ │ 0x100 └─────────────────────────────────────────────────────┘ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ MSI/MSI-X能力 │ │ │ │ • 中断向量配置 │ │ │ 0x200 └─────────────────────────────────────────────────────┘ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ BAR空间(基地址寄存器)│ │ │ │ • 内存/IO映射地址 │ │ │ 0xFFF └─────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘(6)各层详细功能i.事务层 (Transaction Layer)核心职责处理PCIe总线的请求和完成是应用层的指挥官┌─────────────────────────────────────────────────────────────────┐ │ 事务层关键概念 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ TLP(Transaction Layer Packet)- 事务层数据包 │ │ ┌───────────────────────────────────────────────────────────┐ │ │ │ TLP Header(包头)│ TLP Data(数据)│ TLP Digest │ │ │ │ • 事务类型 │ • 负载数据 │ • 可选校验 │ │ │ │ • 地址/ID │ • 可变长度 │ │ │ │ │ • 长度/属性 │ │ │ │ │ └───────────────────────────────────────────────────────────┘ │ │ │ │ 事务类型分类 │ │ ┌──────────────┬──────────────┬──────────────┐ │ │ │ Memory │ I/O │ Configuration│ │ │ │ 内存读写 │ I/O读写 │ 配置空间读写 │ │ │ ├──────────────┼──────────────┼──────────────┤ │ │ │ Message │ Completion │ Vendor Defined│ │ │ │ 消息事务 │ 完成响应 │ 厂商自定义 │ │ │ └──────────────┴──────────────┴──────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ii.数据链路层 (Data Link Layer)核心职责保证TLP在PCIe链路中的正确传输是可靠传输的守护者┌─────────────────────────────────────────────────────────────────┐ │ 数据链路层关键机制 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │1. ACK/NAK协议 │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ 发送端 │ ──────▶ │ 接收端 │ │ │ │ TLP序列号 │ │ 校验确认 │ │ │ │ │ ◀────── │ ACK/NAK │ │ │ └─────────────┘ └─────────────┘ │ │ │ │2. Replay Buffer(重传缓冲区)│ │ • 保存已发送但未确认的TLP │ │ • 收到NAK时重传 │ │ │ │3. DLLP(Data Link Layer Packet)│ │ • 链路管理报文非数据 │ │ • 类型ACK, NAK, PM_Enter_L1, InitFC等 │ │ │ │4. LCRC校验(Link CRC)│ │ •32位循环冗余校验 │ │ • 检测传输错误 │ │ │ └─────────────────────────────────────────────────────────────────┘iii.物理层 (Physical Layer)核心职责负责数据的实际物理传输是信号世界的翻译官┌─────────────────────────────────────────────────────────────────┐ │ 物理层核心技术 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 逻辑子层(Logical Sub-Block)│ │ ┌───────────────────────────────────────────────────────────┐ │ │ │ • 编码/解码8b/10b(Gen1/2)或 128b/130b(Gen3)│ │ │ │ • 加扰/解扰防止长串0/1 │ │ │ │ • 有序集(Ordered Set)训练、同步、对齐 │ │ │ │ • LTSSM状态机控制 │ │ │ └───────────────────────────────────────────────────────────┘ │ │ │ │ 电气子层(Electrical Sub-Block)│ │ ┌───────────────────────────────────────────────────────────┐ │ │ │ • SerDes(串行化/解串行化)│ │ │ │ • 差分信号传输(TX/TX-, RX/RX-)│ │ │ │ • 时钟恢复(Clock Recovery)│ │ │ │ • 均衡(Equalization)补偿信道损耗 │ │ │ │ • PCIe6.0: PAM4调制(4电平)│ │ │ └───────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘(7)与计算机网络的类比┌─────────────────────────────────────────────────────────────────┐ │ PCIe协议 vs TCP/IP协议 类比 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ PCIe层 TCP/IP层 相似点 │ │ ───────────────────────────────────────────────────────────── │ │ 事务层 应用层/传输层 数据封装、事务处理 │ │(TLP生成/解析)(TCP/UDP段)│ │ │ │ 数据链路层 数据链路层 可靠传输、ACK/NAK │ │(ACK/NAK, LCRC)(MAC, CRC)│ │ │ │ 物理层 物理层 信号传输、编码 │ │(SerDes, 差分信号)(网线、光纤)│ │ │ │ LTSSM TCP三次握手 链路建立过程 │ │(链路训练)(SYN/SYN-ACK/ACK)│ │ │ └─────────────────────────────────────────────────────────────────┘2.AXI协议(1)概念AXI (Advanced eXtensible Interface / 高级可扩展接口) 是ARM公司设计的片上高速总线协议用于SoC内部各模块之间的高效数据通信。AXIAdvanced eXtensible Interface高级可扩展接口是ARM公司提出的AMBAAdvanced Microcontroller Bus Architecture高级微控制器总线架构协议中最重要的部分是一种面向高性能、高带宽、低延迟的片上总线协议。AXI3AMBA 3.0版本中首次引入AXI42010年发布的AMBA 4.0中包含的第二代版本版本发布时间主要特性AXI32003年 (AMBA 3.0)首次引入AXI协议AXI42010年 (AMBA 4.0)增强版支持更大地址空间AXI4-Lite2010年简化版用于寄存器访问AXI4-Stream2010年流式传输无地址通道AXI52020年 (AMBA 5.0)进一步优化┌─────────────────────────────────────────────────────────────────┐ │ AXI协议归属 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ARM公司 → AMBA(Advanced Microcontroller Bus Architecture)│ │ │ │ │ ├─→ AXI(Advanced eXtensible Interface)│ │ ├─→ AHB(Advanced High-performance Bus)│ │ ├─→ APB(Advanced Peripheral Bus)│ │ └─→ ACE(AXI Coherency Extensions)│ │ │ └─────────────────────────────────────────────────────────────────┘(2)特性┌─────────────────────────────────────────────────────────────────┐ │ AXI协议定位 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 应用场景SoC芯片内部高速总线互联 │ │ │ │ 典型连接 │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ CPU │ ──AXI──▶│ Interconnect │──AXI──▶│ DDR │ │ │ │ 主设备 │ │ 互连矩阵 │ │ 从设备 │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ │ 特点高性能、高带宽、低延迟、支持乱序传输 │ │ │ └─────────────────────────────────────────────────────────────────┘特点说明地址/控制与数据分离独立的通道设计提高传输效率支持乱序传输允许事务不按顺序完成支持Outstanding传输可在前一个事务完成前发起新事务支持突发传输只需首地址可连续传输多个数据支持不对齐数据传输灵活的数据访问READY/VALID握手机制可靠的流控机制易于时序收敛适合高频设计(3)总线类型┌─────────────────────────────────────────────────────────┐ │ AXI总线类型 │ ├─────────────────┬─────────────────┬─────────────────────┤ │ AXI4-Full │ AXI4-Lite │ AXI4-Stream │ ├─────────────────┼─────────────────┼─────────────────────┤ │ 高性能存储器映射 │ 简化版轻量级 │ 流式数据传输 │ │ 支持突发传输 │ 不支持突发传输 │ 无地址通道 │ │ 适用于内存访问 │ 适用于寄存器访问 │ 适用于数据流 │ └─────────────────┴─────────────────┴─────────────────────┘(4)AXI五通道架构AXI协议包含5个独立的传输通道┌──────────────────┐ │ AXI Master │ └────────┬─────────┘ │ ┌────────────────────┼────────────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ AW │ │ W │ │ B │ │ 写地址通道│ │ 写数据通道│ │ 写响应通道│ │(Master→│ │(Master→│ │(Slave→ │ │ Slave)│ │ Slave)│ │ Master)│ └─────────┘ └─────────┘ └─────────┘ ┌─────────┐ ┌─────────┐ │ AR │ │ R │ │ 读地址通道│ │ 读数据通道│ │(Master→│ │(Slave→ │ │ Slave)│ │ Master)│ └─────────┘ └─────────┘ │ ┌────────▼─────────┐ │ AXI Slave │ └──────────────────┘通道信号命名规则通道前缀含义方向AWAddress Write写地址通道主→从WWrite写数据通道主→从BBack/Response写响应通道从→主ARAddress Read读地址通道主→从RRead读数据通道从→主(5)READY/VALID握手机制┌─────────────────────────────────────────────────────────┐ │ AXI 握手机制(READY/VALID)│ ├─────────────────────────────────────────────────────────┤ │ VALID: 源端表示数据/地址/控制信息有效 │ │ READY: 目的端表示可以接收信息 │ │ │ │ 传输条件: VALIDREADY1时传输发生 │ │ │ │ 规则: │ │1. 源端不能依赖READY来驱动VALID │ │2. 目的端可以随时断言READY │ │3. 一旦VALID和READY同时为1传输必须发生 │ └─────────────────────────────────────────────────────────┘(6)AXI与其他AMBA总线对比特性AXIAHBAPB应用场景高性能内存访问高性能系统模块低速外设通道数5个独立通道单通道单通道突发传输支持支持不支持乱序传输支持不支持不支持Outstanding支持不支持不支持复杂度高中低(7)典型应用场景1.处理器与内存之间的数据传输2.DMA控制器与外设之间的数据交换3.多核SoC中各模块间的高速通信4.FPGA中高速数据流处理5.GPU、NPU等加速器的数据访问(8)设计注意事项1.单次Burst传输不可跨越4KB地址边界2.需要正确处理字节使能信号WSTRB3.注意响应状态码的处理OKAY、EXOKAY、SLVERR、DECERR