目录
大家好,这里是程序员杰克。一名平平无奇的嵌入式软件工程师。
在前面的<AMBA>AXI篇对AXI总线进行了说明。本篇开始,结合AMBA内AXI总线协议内容以及Xilinx提供的AXI模板,对AXI总线的时序内容进行总结分享。本篇内容是以Xilinx官方提供的AXI参考资料对使用的AXI总线协议进行描述。
下面正式进入本章推送的内容。
01 Xilinx AXI协议架构
接口描述
Xilinx FPGA从Spartan-6和Virtex-6系列FPGA开始使用AXI4协议,后面在7系列、UltraScale架构、Zynq-7000系列所有的SOC平台继续使用。
Xilinx提供的相关IP核支持三种AXI4总线共六种接口,三种AXI4总线如下:
- AXI4:适用于高性能的内存映射传输
- AXI4-Lite:适用于简单、低吞吐的内存映射传输(寄存器读写)
- AXI4-Stream:适用于高速流数据传输
总线 | 描述 |
AXI4 | 内存映射接口(memory-mapped),支持最大256个数据传输周期的高吞吐量Burst(突发传输),主要用于访问存储器指定地址的高速数据传输场合 |
AXI4-Lite | AXI4的轻量化内存映射接口,仅仅支持单事务传输(Burst长度为1),占用很小的逻辑资源,主要用于简单寄存器的访问 |
AXI4-stream | 去掉了地址项,允许无限制的数据Burst(突发传输)规模. |
传输时,master(主机)与slave(从机)进行通信,因此共有6种接口,接口如下:
- axi4-full-master
- axi4-full-slave
- axi4-lite-master
- axi4-lite_slave
- axi4-stream-master
- axi4-stream-slave
地址通道
对于AXI4和AXI4-Lite接口,有5个独立的通道,如下所示:
- Read Address Channel(读地址通道)
- Write Address Channel(写地址通道)
- Read Data Channel(读数据通道)
- Write Data Channel(写数据通道)
- Write Response Channel(写响应通道)
数据可以同时在主机->从机、从机->主机两个方向传输,并且数据的位宽可变。AXI4总线最大支持256字节的burst传输;AXI4-Lite由于没有数据缓存,只能支持1字节的传输。读、写传输的事务模型如下所示:
02 文章总结
本篇推送主要是描述了Xilinx 官方对AXI协议的一些内容描述,主要让大家对AXI的3种总线、6种接口相关概念有大致了解。下篇开始,结合Xilinx 提供模板代码对3种总线时序以及相关知识进行分享。
参考文档:
《ug761_axi_reference_guide.pdf》
《UG1037-Vivado-AXI Reference Guide.pdf》
《IHI0022J_amba_axi_protocol_spec.pdf》