Xilinx FPGA AXI4总线(二)用实例介绍5个读写通道

可编程逻辑

1364人已加入

描述

3 种 AXI4

AXI4协议是一个点对点的主从接口协议,数据可以同时在主机(Master)和从机(Slave)之间双向 传输 ,且数据传输大小可以不同。

AXI4中的限制是一个突发事务(Burst)最多可以传输256个数据,AXI4-Lite只允许每个事务传输1个数据。

主机接口具有发起读写的权限,从机被主机控制。

AXI4 和 AXI4-Lite 都有 5 个通道, AXI 4- S tream协议为流数据的传输定义了单个通道 与AXI4不同, AXI 4- S tream接口可以突发无限数量的数据

BRAM

AXI4 实例

对于 AXI4 和 AXI4-Lite 的 5 个通道:

如下图所示为一个 AXI4 的实例,用于高性能内存映射需求(DDR、BRAM等)

Xilinx 的 ZYNQ 系列 FPGA 通过总线互联AXI Interconnect 连接到 AXI BRAM Controller 控制 BRAM 存储器资源,五种颜色的内分别表示一个通道,从上至下依次为 读地址通道 (araddr)、 写地址通道 (awaddr)、 写响应通道 (bresp)、 读数据通道 (rdata)和 写数据通道 (wdata), 每个通道中均有valid和ready握手信号

BRAM

读地址/写地址通道 ,主机通过这两个通道向从机写入地址和控制信息,通道的方向为主机Master向从机Slave传输,通道内除了ready信号外的其余信号均为输出,valid为高电平时表示主机认为自己输出的数据有效,ready信号为输入信号,由从机Slave给出,当ready为高时表示从机已经准备好接收主机的数据,ready和valid同时为高时代表 从机准备好接收主机数据且主机此时发送了有效的数据 ,正确的传输开始。除了传输地址外,arlen[7:0]代表突发传输的长度,8位可表示0255,代表传输长度1256。

写响应通道 ,从机通过该通道向主机发送响应,valid由从机发出,ready由主机发出。

读数据通道 ,从机通过该通道向主机发送读取出来的数据,valid由从机发出,ready由主机发出,含有一个last信号用来指示每个事务传输过程中的最后一个数据,表示当前事务传输结束。

此外,与写数据通道对比可知,读数据还多了一个读响应信号,省去了单独的读响应通道。

对 AXI4 的读数据/写数据通道,支持数据位宽 8 / 16 / 32 / 64 / 128 / 256 / 512 / 1024 bits。

使用AXI Interconnect互联结构时,对AXI4,支持地址位宽最大64位(默认32位),总线的数据位宽 32 / 64 / 128 / 256 / 512 / 1024 bits;对 AXI4-Lite,总线的数据位宽 32 bits。

** 对于传输的数据位宽不足总线位宽的** ,比如使用 32 bit 的总线传输 8 bit 的信息,则使用写通道的 WSTRB[3:0] 来表示有效的写字节,WSTRB[n] 对应 WDATA[8n+7 : 8n],当 WSTRB[3:0] = 4’b0001 时,表示 WDATA[7:0] 有效,属于窄传输的一种。

AXI4-Lite 实例

对AXI4-Lite协议,ZYNQ使用该协议驱动AXI GPIO,读写少量的控制、状态寄存器。与AXI4相比,AXI4-Lite是AXI4的删减版,适合轻量级的应用 ,也是包含5个通道,不同的是每个通道都进行了简化,去掉了对突发传输的支持(Burst)。

使用AXI Interconnect互联结构时,对AXI4-Lite,支持地址位宽最大64位(默认32位),数据位宽 32 / 64 bits。

BRAM

AXI4 的 5 个通道

写地址通道

主要涉及突发传输:

突发类型 AWBURST[1:0]

FIXED: 突发过程中地址固定不变,用于 FIFO 访问;

INCR: 增量突发,突发过程中地址递增,增加量取决于 AxSIZE 的值,支持突发长度 1 ~ 256;

WRAP: 回环突发,和 INCR 类似,但是会在特定高地址的边界处回到低地址处,支持突发长度 2/4/8/16,传输的首地址和每次传输的大小对齐,最低的地址和整个传输的大小对齐,回环边界等于 AxSIZE*AxLEN。

BRAM

写数据通道

非对齐传输和窄传输:

WSTRB[3:0]:对应写字节,WSTRB[n] 对应 WDATA[8n+7 : 8n]。

WVALID 为低电平时,WSTRB 可以为任意值,WVALID 为高电平有效时,WSTRB 为高的字节线必须指示有效的数据。

窄传输:

当主机产生比数据总线宽度更窄的数据传输时,由地址和控制信号决定哪个字节被传输。比如总线 32-bit,传输 8-bit。

INCR 和 WRAP,不同的字节线决定每次 burst 传输的数据;

BRAM

写响应通道

读传输的响应信息是附加在读数据通道上的,写传输的写响应有专门的写响应通道。

RRESP[1:0]:读响应;

BRESP[1:0]:写响应

OKAY('b00) :正常访问成功;

EXOKAY('b01) :Exclusive 访问成功;

SLAVERR('b10) :从机错误,表明访问已经成功到了从机,但是从机希望返回一个错误的情况给主机;

DECERR('b11) :译码错误,一般是由互联组件给出,表明没有对应的从机地址;

BRAM

读地址通道

与写地址一样。

BRAM

读数据通道

多出了读响应 ,其他与写数据一样,读传输的响应信息是附加在读数据通道上的。

读事务和写事务均有响应,对于读事务,读响应和读数据一起发给主机,而写事务则通过写响应通道传送。响应类型有 OKAY、EXOKAY、SLAVERR、DECERR。

上述响应分别表示:正常读写成功、独占式读写、设备错误、译码错误。

协议规定:请求的需要传输的数据数量必须执行,即使出现了错误报告,在一次突发式读写的剩余数据也不会被取消。

BRAM

AXI4-Lite 的 5 个通道

AXI4-Lite 是 AXI4 的精简版,保留了 5 个通道的基本功能 ,取消了突发,每次只能传输 1 个数据。

对于写地址/写数据/写响应通道:

取消了和突发传输相关的 AxBURST 信号以及突发长度等。

BRAM

对于读地址/读数据通道:

BRAM

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分