

























AMBA(The Advanced Microcontroller Bus Architecture) 是一种开放标准的片上互联规范,用于SOC设计。AMBA协议定义了功能模块之间的通信方式,简化了多处理器、大量控制器和外设的设计,被认可之后广泛应绿色与ASIC和SoC部件上,其良好的设计大大超出了原本只为微控制器设计的范畴并不断演变。
从最初我们熟知的APB AHB演变到

本文AMBA 以AXI4为主介绍,
AXI协议包含了非常多的标准和版本,包括AXI3 AXI4 AXI5 AXI-ST AXI-MM等等
在有主处理器体系中,ARM核心是核心数据的处理中枢,所以在AXI总线中一般担任主机角色做控制端,ARM-FPGA混合架构中,如ZYNQMP由于ARM有系统层控制力强,FPGA数据能力强,所以也一般是ARM作为FPGA的主机。
在纯FPGA IP的架构中,FPGA IP和IP之间会根据需求选择一个做主机,一个做葱鸡。
AXI协议是点对点协议,而非总线协议。只传输信号和时序。
单主机管理

多主机管理

从ARM的system diagram可以看到AXI,并且这里AXI3和AXi4不同接口之间会进行协议转换

在FPGA的blockdiaram中可以看到AXI主从之间由五路channels构成:地址R&数据W,数据R&数据W,写响应B

这里B是用于W的completed通知
Channel的传输有源和目的,分别由Valid信号 Ready信号来握手,依靠的是时钟上升沿

Channel-传输

如我们常在FPGA核心中看到的BVALID,就是B的有效信号
写-事务

并发写-事务

AXI会有一个响应超时时间,在做IP设计时要考虑这个,避免挂死整个链路
有些SOC上会有AXI超时模块来处理这个问题。
AWPROT 和 ARPROT 这两个保护信号用于访问保护和安全事务,如Arm TrustZone
AxPROT位有三位,


RA或WA生效时,事务必须在缓存中查找。
AXI提供两种原子访问的机制
AXI4引入了服务质量,用于优先处理较高优先级的事务

还有很多信号,这里主要了解AXI的主要功能,所以省略。
资料来自ARM
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。