学完了axi4-stream和axi4-lite总线,我们可以轻松学习标准的axi4总线。axi4总线和axi4-lite总线差不多也有五个独立通道,
axi4-lite总线是axi4总线的子集,即axi4-lite的握手机制、独立通道配合等在axi4这儿一样适用。我们现在讲一下axi4的独特之处。
猝发类型:
axi4可支持猝发传输,即一次可以传输多达256个数据。而且每一次猝发传输在完成所有数据传输前不能提前结束,即使数据错误,不想要也要含泪走完整个流程。
回卷猝发、递增猝发、固定猝发。所有猝发都不能超过4KB地址边界
回卷猝发
猝发长度仅支持2、4、8、16,地址会回卷,地址增加到某个地址后会回到初始地址。
递增猝发
每次传输地址会在上一个地址基础上增加,递增幅度与传输宽度相同。适合对于 RAM 等通过地址映射(mapped memory)的存储介质进行读写操作。
固定猝发
即每次传输都使用一个地址-初始地址,该模式适合对某个固定地址进行多次数据更新。比如读写fifo.
读写时序图
当地址出现在地址总线后,传输的数据将出现在读数据通道上。设备保持VALID 为低直到读数据有效。为了表明一次突发式读写的完成,设备用 RLAST 信号来表示最后一个被传输的数据。
主机发送地址和控制信息到写地址通道中,然后主机发送每一个写数据到写数据通道中。当主机发送最后一个数据时,WLAST 信号就变为高。当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成。
信号线详解
axi4-lite总线里讲解过的部分信号此处跳过,大家想看的话可以点击这里axi4-lite总线
全局信号
ACLK
ARESETn
写地址通道信号
主机(master)控制的信号
AWVALID AWADDR AWPROT
AWID:写地址ID。这个信号用于写地址信号组的标记。
AWLEN:猝发长度,给出突发传输中准确的传输个数。在回卷猝发和递增猝发模式有效。
AWSIZE:猝发传输宽度。这个信号用于确定突发传输中每个传输的大小。不能大于总线宽度。有1、2、4、8……128字节可选
AWBURST:猝发类型。
AWLOCK:锁类型。该信号提供了关于传输原子特性的额外信息(普通或互斥访问)。
AWCACHE:缓存类型,建议值为0011。
AWREGION:用于每个写操作的地址通道上的域标识符。
从机(slave)控制的信号
AWREADY
写数据通道信号
主机(master)控制的信号
WVALID WDATA WSTRB
WLAST:最后一个数据指示信号
WUSER:xilinx不支持
从机(slave)控制的信号
WREADY
写应答通道信号
主机(master)控制的信号
BREADY
从机(slave)控制的信号
BVALID BRESP
BID:响应ID,必须与AWID相匹配。
读地址通道信号
主机(master)控制的信号
ARVALID ARADDR ARPROT
ARID
ARLEN
ARSIZE
ARLOCK
ARBURST
ARCACHE
ARREGION
以上信号解析与写地址通道的相类似。
从机(slave)控制的信号
ARREADY
读数据通道信号
从机(slave)控制的信号
RREADY
主机(master)控制的信号
RVALID RDATA RRESP
RLAST
RID