AHB 通道以及 AXI 通道访问
14 Jun 2024
Read time: 1 minute(s)
AHB 通道访问
AHB 访问通道需将访问外设的地址写入 xSPI_ADDR 寄存器,CMD 以及读写信息在 LUTn 寄存器配置,xSPI_START 寄存器写入对应的 LUTn ID
号触发读写行为。
- 若是写操作,需提前将数据写进 xSPI_TX
DATA 寄存器,此寄存器为 32 位宽,硬件将写数据搬至 TX FIFO。
FIFO 位宽为 8 bits,bit[7:0] 为第一个 byte,bit[15:8] 为第二个 byte,bit[23:16] 为第三个 byte,bit[31:24] 为第四个 byte,最多可写入 64 个 bytes,可查看 xSPI_FSR 查看 FIFO 中的数据个数。
- 若是读操作,则读数据存进 RX FIFO,FIFO 位宽为 8 bits,最多可写入 64 个 bytes,可在 xSPI_FSR 查看 FIFO
中的数据个数。
可在 xSPI_RX DATA 寄存器将数据取走,此寄存器为 32 位宽,bit[7:0] 为第一个 byte,bit[15:8] 为第二个 byte,bit[23:16] 为第三个 byte,bit[31:24] 为第四个 byte。
AXI 通道访问
AXI 访问通道需提前配置 LUTn 寄存器,为接下来的 AXI 做预准备。
AXI 对 Memeory Mapping 进行读写访问直接触发 xSPI 的读写操作,被访问的 Memory Mapping 地址映射为 Memory Device
的地址。
- 若是 AXI 写访问,则数据存进 AXI TX Buffer,触发 xSPI 从 LUT0 开始执行传输,其中 TX Buffer 最大为 64x64 bits 空间。
-
若是 AXI 读访问,则 AXI 发送读请求后,触发 xSPI 从 LUT16 开始执行数据传输,Memory Device 输入的数据存进 AXI RX Buffer,完成传输后 AXI 取走数据,其中 RX Buffer 最大为 64x64 bits 空间。