作者:Florent Werbrouck,Xilinx工程师
注意:本文来源于赛灵思中文社区论坛,如需转载,请写明出处作者及赛灵思论坛链接并发邮件至cncrc@xilinx.com,未经Xilinx及著作权人许可,禁止用作商业用途
引言
近来,几乎每个赛灵思 IP 都使用 AXI 接口。Zynq®、Zynq MP、MicroBlaze™ 和全新的 Versal™ 处理器都无一例外使用 AXI 接口。因此,AXI 接口已成为几乎所有新的赛灵思器件设计中不可或缺的一部分。充分了解其基础知识对于赛灵思器件的设计和调试都很有帮助。
本篇博文将介绍赛灵思器件上的 AXI3/AXI4 的相关基础知识。首先,我们将从一些通俗易懂的知识、理论和术语开始讲解。
何谓 AXI?
AXI 表示 Advanced eXtensible Interface(高级可扩展接口),它是由 Arm 定义的接口协议,包含在“高级微控制器总线架构 AMBA”标准中。
AXI3/AXI4 规格可通过 Arm 网站免费获取(链接),因此如果您对其感兴趣,我鼓励您务必下载。
AXI4 接口 (AMBA 4.0) 分 3 种类型:
注:本文不涵盖 AXI4-Stream 相关内容。此处“AXI”表示 AXI3、AXI4 和 AXI4-Lite。
注:AXI3 接口与 Full AXI 接口接近。
AXI 读写通道
AXI 协议定义了 5 条通道:
其中 2 条用于读取传输事务
另 3 条用于写入传输事务
通道 (channel) 是与 VALID 和 READY 信号关联的 AXI 信号的独立集合。
注:AXI4/AXI3/AXI4-Lite 接口只能用于读取(仅包含 2 条读取通道)或者只能用于写入(仅包含 3 条写入通道)。
任一通道上发射的每一条数据都称为一次传输 (transfer)。当 VALID 和 READY 信号均居高不下并且时钟存在上升沿时,就会发生传输。例如,在下图中,在 T3 处正在发生传输:
AXI 读取传输事务
AXI 读传输事务需要在 2 条读取信道上发生多次传输。
首先,地址读通道 (Address Read Channel) 从主设备 (Master) 发送到从设备 (Slave),以便设置地址和部分控制信号。
然后,此地址的数据通过读数据通道 (Read data channel) 从从设备发送到主设备。
请注意,根据下图所示,每个地址中可发生多次数据传输。此类型的传输事务称为突发 (burst)。
AXI 写入传输事务
AXI 写入传输事务需要在 3 条读取信道上存在多次传输。
写响应通道 (Write Response Channel) 上可能的响应值包括:
注:读取传输事务同样包含响应值,但此响应通过读响应通道 (Read Response Channel) 来发射
AXI4 接口要求
在 AXI4 规格中记录了部分要求。
最值得注意的是:
但是,READY 信号的状态可从属于 VALID 信号
在下一篇 AXI 基础系列文章中,我们将使用 AXI Verification IP (AXI VIP) 对 AXI4 接口进行仿真。