我用的小梅哥的7010的开发板,这个板子无法直接在PL这边使用DDR存储,必须通过AXI4总线。
High Performamce PORTS就是HP接口,为AXI接口,通常用于大量数据的高速传输。
AXI总线介绍
AXI是基于burst的传输,burst传输是一种适用于AMBA协议的规则形式,通过这种规则,我们可以控制AMBA进行具体的数据传输活动,在这种规则下,主设备发送控制信息和首地址信息,从设备根据这些信号计算接下来的地址信息。
换言之,在这种规则下,主设备只需要发送一拍信息,就可以通过计算,决定未来数拍,写入或读出的地址。下图中的读操作就生动形象的描述了这种Burst传输,一拍的地址和控制信号,操控了四拍的读出数据。通过这种形式,控制信号的效率大大提升。
下面这就是主设备发了一拍信息,决定了后面的读数据的任务。
五个独立的传输通道:
读地址通道(Read Address Channel,AR)
读数据通道(Read Data Channel,R)
写地址通道(Write Address Channel,AW)
写数据通道(Write Data Channel,W)
写响应通道(Write Response Channel,B)
地址通道内传递的数据是地址信息和控制信息,这些都是表示R或者W(数据通道)内的真实数据的一些特性。
写数据行为发生,写相应通道B告诉主设备,写行为完成。(读数据没有单独的读相应通道)
1、这五个通道都包含一个双路的valid、ready握手机制。信息源通过valid信号来指示通道中的数据和控制信息什么时候有效。目的源用ready信号来表示什么时候准备好接收数据。传输地址信息和数据都是在这俩信号同时为高时生效。
2、读写数据通道都包括一个last信号,用来标志最后一个数据。
3、读、写事务都有自己的地址通道,地址通道携带着传输事务所必须得地址和控制信息。
4、读数据通道传送者从设备到主机的读数据和读相应信息(没有读相应通道,所以在这)。
5、写数据通路传送着主机向从设备的写数据。写响应通道提供了设备响应写事务的一种方式。每一次突发式写会产生一个完成信号。
这是设计结构框图,说实话,这一章因为视频讲的一般,所以啃的很难,基本上是对着源代码和文档一点点自己弄的。
读写FIFO+AXI4接口转换模块。写FIFO数据读出放DDR,读DDR数据放读侧FIFO缓存。
fifo2axi4接口转换模块设计
一次完整的写事务流程:
1.主机向写地址通道写入地址和控制信息。
2.写数据通道突发写入数据
3.收到设备的写数据相应
一次完整的读事务流程
1.主机向读地址通道写入地址和控制信息
2.收到设备的读数据相应和读的数据。
IDLE是上电初始状态,先是复位就为上电初始状态。
我直接在代码中注释学习。
fifo2axi4.v
111
标签:DDR,信息,学习,地址,数据通道,AXI4,数据,Channel,通道 From: https://www.cnblogs.com/cjl520/p/18220651