-

1.1 AXI4总线

  1. AXI4是ARM公司提出的一种高性能、高宽带、低延时的片内总线
  2. 主要描述了主设备和从设备之间的传输方式
  3. 分类:AXI4_FULL、AXI4_LIFE、AXI4_STREAM
    1. AXI4_LIFE,不支持突发传输,常用于数据量较小的传输,可以理解成轻量级的AXI4_FULL
    2. AXI4_FULL 也被称为AXI4,支持突发传输,突发长度为1~256,在只指定一次地址后,可以一次传输多大256个数据(数据的宽度取决于带宽)
    3. AXI4_STREAM 丢弃了地址项,常用于高速数据传输,因为没有了地址总线,所以用于数据流传送,允许无限制的数据突发传输规模

本次实验目的

  1. 通过使用DDR3中AXI4接口协议,完成DDR3的读写操作,参考b站野火,使用IP核实现
  2. 从零开始,通过时序图编写程序,完成DDR3的读写操作,参考为小白FPGA基础班

1.2 应用场景

  1. AXI4.0-lite主要用于内核和外设寄存器之间的通信。功能类似STM32中外设与CPU之间的通信时使用的协议,比如当访问串口的数据寄存器时,只访问四个字节的数据,所以使用AXI4.0-lite就特别合适。再比如,在PL写一个用于PS端操作的外设时,其外设寄存器一般通过AXI4.0-lite总线和PS交互。
  2. AXI4.0-full主要用于往DDR或者OCM中写入大量数据时使用。
  3. AXI_stream主要用于往FIFO等没有地址的数据缓冲区传送大量数据时使用。
    关于每种协议详细的使用会在单独介绍中详细介绍,下面主要描述他们一致的地方。

1.3 常见名词解释

1.3.1 握手(handshake)是什么

双向握手机制使用xxVALIDxxREADY信号线来控制,只有当xxVALIDxxREADY信号线都为高电平时,传输线上的信息才有效。发送端发起一个请求,接收端收到之后会回复一个信号,如果接收端没有发送信号,发送端会一直保持请求的状态,直到收到接收端回复的信号

主机如何将“写数据”写入到从机、

WVALID:主机写数据有效信号,方向:主机->从机

WDATA:主机写数据,方向:主机->从机

WREADY:表示从机是否准备好了 ,为高代表从机准备好了,方向:从机->主机

总结:只有当WVALID和WREADY信号同时为高时,数据才能被有效写入到从机,握手信号不仅仅发生在“写数据”、发送“写地址”等过程,只要主机和从机之间有数据交换,就会发送握手信号

1.3.2 什么是片内,什么是片外?

以下是我个人理解,没有经过验证,酌情查阅

片内On-Chip,指的是在FPGA内部系统,如AXI4协议在ZYNQ中PS端到PL端的传输,不涉及到外设的芯片

片外Off-Chip,与片内系统相反,需要借助外部芯片进行传输协议,例如我们的FPGA需要通过SPI协议与外部设备进行数据交换的时候,此时就是片外通信协议

1.3.3 什么是突发传输?

image-20240718152806488

例如上面的图像,第一个时序是没有突发的,发送一次发送一个数据和一个地址进行对应,而下面的时序是具有突发传输的,主机发送4个字节,和首地址及末地址,不需要传输中间的地址,他的突发长度就是为4。还是比较好理解的

1.4 AXI4_LIFE通道介绍

总结:读写分离,读的时候没有读响应通道

分类 信号定义 方向 功能
系统 ACLK 时钟
系统 ARESETN 复位低有效
写地址通道 AWADDR 主机 to 从机 写地址
AWVALID0 主机 to 从机 写地址有效信号
AWREADY 从机 to 主机 表示从机准备好了,可以接收写地址
AWPROT 主机 to 从机 保护类型,表示一个传输的安全等级,默认为3’b000
写数据通道 WDATA 主机 to 从机 写数据
WVALID 主机 to 从机 写数据有效
WREADY 从机 to 主机 表示从机准备好了,可以接收写数据
WSTRB 主机 to 从机 指示有效字节位置,类似于掩码
写响应通道 BRESP 从机 to 主机 写响应
BVALID 从机 to 主机 写响应有效信号
BREADY 主机 to 从机 表示主机准备好了,可以接收从机的响应
读地址通道 ARADDR 主机 to 从机 读地址
ARVALID 主机 to 从机 读地址有效信号
ARREADY 从机 to 主机 表示从机准备好了,可以接收读地址
ARPROT 主机 to 从机 保护类型,表示一个传输的安全等级,默认为3’b000
读数据通道 RDATA 从机 to 主机 读数据
RVALID 从机 to 主机 读有效
RREADY 主机 to 从机 表示主机准备好了,可以接收从机的数据
RRESP 从机 to 主机 读响应

1.5 写数据的模式

1、主机发送写地址和写数据的顺序关系:
主机可以先发送写地址,后发送写数据:
主机可以先发送写数据,后发送写地址:
主机可以同时发送写地址和写数据:

2、从机接收写地址和写数据的顺序关系:
从机可以先接收写地址,后接收写数据
从机可以先接收写数据,后接收写地址:
从机可以同时接收写地址和写数据:

我们常用的方式是主机同时发送写地址和写数据,从机同时接收写地址和写数据,然后发送写响应表示写的没问题

1.6读数据的模式

主机发送一个读地址 –> 从机接受读地址 –> 从机发送读数据和读响应

下一节,我们进行AXI4_Lite的读写通道和仿真代码的实现


本站由 John Doe 使用 Stellar 1.28.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本"页面"访问 次 | 👀总访问 次 | 🥷总访客