假设我们要传一帧1080P的图片到显示屏显示,那么需要多大的储存空间呢?
一帧1080P的RGB565图像数据需要1920*1080*16=33.1776Mb 存储空间
下图是ZYNQ-7000系列中Block RAM的大小:
可以看到最大存储空间的BRAM都不能存储一帧图片,那么该用什么存储呢?
DDR: Double Data Rate Synchronous Dynamic Random Access Memory,双倍数据率同步动态随机存储器。
DDR是一种高性能的随机存储器,它能够在时钟的上升沿和下降沿各进行一次数据传输,从而实现双倍速率。发展至今DDR已经一直迭代到了DDR5,不同版本的DDR有着各自独特的应用领域。
DDR3挂载在PS端,內部设计了DDR_Controller,通过可编程逻辑到内存互联与PL端交互。
存在以下三个问题
ZYNQ核:就是PS端到PL端一个功能的的封装。
前两个问题就可以用ZYNQ核实现,最后一个问题用AXI总线实现。
ZYNQ7000(PS端开发流程)系列PS端使用的是ARM公司的硬核CPU,内部使用的是ARM公司的AMBA架构,该架构包含AHB,ASB,APB,AXI四种协议。
1,AXI总线
AXI最早的版本为 AXI3,协议中地址/控制和数据相位是分离的,支持不对齐的数据传输、Outstanding 传输访问和乱序访问。数据以突发(burst)的形式组织,只需要首地址,就能完成一次多数据的突发传输。 2010 年,ARM 公司发布了 AMBA 4.0 协议,AXI协议也由AXI3 升级为 AXI4。相较于AXI3,AXI4协议移除了一些不太实用的信号,比如移除了用于标志写指令 ID 的 WID 信号,因此 AXI4 不再支持乱序写;除此之外添加了一些新的信号,比如说用户信号和 Qos 信号(Quality of Service);对一些功能也进 行了修改,比较有代表的就是突发长度由原来的最高 16,变为了最高 256;除 了这些之外,AXI4 还定义了一种新的协议——AXI4-Lite,这是一种简化版的 AXI4 协议,应用于一些总线性能要求较低的场景。
AXI4协议中设备有主机和从机之分,主从机通信时所有信号都是在全局时钟ACLK上升沿采样的,传输的数据以Burst形式组织,传输Burst这个操作称为AXI Transaction,每个Burst可被拆分为多次传输,每个拆分的数据称为Beat。
所以:AXI Transaction =m*burst= m*n*beat= m*n*transfer (m,n>= 1)
AXI协议总共有3种总线接口,不同接口面向不同的应用场景:
AXI4:主要面向高性能地址映射(memory map)通信的需求,是面向 地址映射的接口,在单地址传输的情况下最大允许 256 个时钟周期的数 据突发长度。AXI4 总线允许符合 AXI4 的系统实现非常高的数据吞吐 量,同时还支持数据大小调整、多个 outstanding 操作和乱序事务处理。 在硬件级别,AXI4 允许每个 AXI 主从使用不同的时钟构建系统。 此外, AXI4 协议允许插入寄存器片以帮助时序收敛。
AXI4-Lite:用于简单、低吞吐量的内存映射通信(例如,与控制寄存 器和状态寄存器之间的通信)。是一个轻量级的地址映射单次传输接口, 占用很少的逻辑单元。该接口是 AXI4 接口的简化版,突发长度从 256 被限制到 1,也就意味着无法进行突发传输,逻辑资源的减少,也就导 致无法实现较为复杂功能。
AXI4-Stream:主要面向高速流数据传输;与 AXI4 的区别是没有了地 址接口,因此不涉及读写数据的概念,数据只是进行简单的接收与发 送。这种方式减少了传输时的延时,允许无限制的数据突发传输规模。
AXI4 和 AXI4-Lite 接口由五个不同的通道组成,即: 1. 写地址通道(write address channel,AW) 2. 写数据通道(write data channel,W) 3. 写响应通道(write response channel,B) 4. 读地址通道(read address channel,AR) 5. 读数据通道(read data channel,R)
2,读写事务通道
AXI4 和 AXI4-Lite 接口由五个不同的通道组成,即:
1. 写地址通道(write address channel,AW)
2. 写数据通道(write data channel,W)
3. 写响应通道(write response channel,B)
4. 读地址通道(read address channel,AR)
5. 读数据通道(read data channel,R)
写事务,读事务中主机与从机之间的交互关系:
这两种事务包含以下特点:
1 这 5条独立的通道都包含一个双路的 VALID、READY握手机制。信息源通过VALID 信号来指示通道中的数据和控制信息什么时候有效。目地源用 READY 信号来表示何时准备好接收数据。传输地址信息和数据都是在 VALID 和 READY 同时为高时有效。
2 读数据和写数据通道都包括一个 LAST 信号,用来指明一个事务传输的最后一个数据。
3 读/写事务都有自己的地址通道,地址通道携带着传输事务所必须的地址 和信息。
4 读数据通道传送着从设备到主机的读数据和读响应信息。读响应信息指明读事务的完成状态。
5 写数据通道传送着主机向设备的写数据和写控制信息(TLAST)。写响应通道提供了设备响应写事务的一种方式。在每一次突发式写会产生一个完成信 号。
而每个AXI4-Stream 都充当具有握手数据流的单个单向通道。因此,AXI4- Stream 接口没有以上五个通道,但是传输前需要先进行上述握手过程,在握手 完成后,数据会被直接传输。
3,通道信号介绍
(1)写事务中写地址通道的信号和源:
(2)写事务中写数据通道的信号和源:
(3)写事务中写响应通道的信号和源:
(4)读事务中读地址通道的信号和源:
(4)读事务中读数据通道的信号和源:
读事务之间的依赖关系:
4,典型时序
下图分别 为 AXI4 突发写的典型时序和AXI4 突发读的典型时序,其中绿色信号为全局信号,红色信号为主机发送给从机的信号,蓝色信号为从机发送给主机的信号。
在进行写事务时,主机首先会将待写入数据的地址以及控制信号放入写地址通道,随后进行握手,握手成功后,地址和控制信号被写入从机。这里的控制信号包括突发长度、数据包大小、突发类型等等。接着主机通过写数据通道向从机传输数据,每传输一次数据就要进行一次握手,只有握手成功,数据才会被写入到从机中。当最后一组数据被放到写数据通道时,主机还会产生一个 写控制信号WLAST,用来告诉从机这是最后的数据。从机在接收了最后一 Beat 以及 WLAST 信号后,会通过写应答通道向主机发送写响应信号 BRESP,以告知主机,本次传输状态。
在进行读事务时,主机同样首先将待读取的地址以及控制信号放入读地址通道,随后进行握手,握手成功后,地址和控制信号被写入从机。接着从机将指定地址的读数据放入写数据通道,并产生读响应信号,当读数据通道握手成 功时,数据与响应信号被发送给主机。当最后一 Beat 数据被放到读数据通道时, 从机会拉高读控制信号 RLAST,以告知主机本次读传输结束。
5,握手机制
五个通道想要进行数据交互首先需要进行双向握手,握手时,传输源(发送方)会产生 VALID 信号来指明此时的数据或控制信号是否有效,目的源(接收方)会产生 READY 信号来告诉传输源,是否已经准备好接收数据或控制信号了。只有当这两个信号都为高时,才算握手成功,传输源会在握手成功时的时钟上升沿进行一次数据传输。
这种双向流控机制使得发送与接收双方都有能力控制传输速率,通过控制 VALID 和 READY 的高低电平来控制传输的时机以及速度。
既然是握手机制,自然也就跟我们平时握手时一样,会有个先后顺序, VALID 和 READY 在握手时共有三种关系:
1. VALID 信号先拉高, READY 信号后拉高
此时握手信号与数据以及时钟的关系如下:
这里的 ACLK 为 AXI4的全局时钟,INFORMATION 为待传输的内容, VALID/READY 为握手信号。从图中可以看到,VALID 信号在 T1 信号之后到来 (拉高),与其一起来的还有数据、地址或者控制信号。而 READY 信号则是在 T2之后被拉高,因为错过了上升沿,直到T3时刻才被检测到,此时握手成功, 内容得以被传输。
AXI4 协议中规定,VALID 信号一旦拉高,在握手成功之前不能被拉低,因 此,VALID 信号会一直等待,直到在上升沿时刻检测到 READY 为高后 VALID 才能被拉低。
2. READY 信号先拉高,VALID 信号后拉高
此时握手信号与数据以及时钟的关系如下:
可以看到,T1 时刻之后 READY 信号拉高,而 VALID 信号则是在 T2 时刻 之后拉高,因为错过了时钟上升沿,所以在 T3 时刻才握手成功,此时, INFORMATION 中的信息被传输。
实际上,即使 READY 信号被拉高,只要 VALID 信号没有被拉高,接收方也可以拉低 READY 信号。例如,接收方置高 READY后,发现自己还有传输需 要完成,而此时发送方还没准备好数据(未置高VALID),这时候接收方便能够拉低 READY信号,转去处理其他传输,传输完成后再回来拉高 READY等待接 收数据。
3. VALID 信号和 READY 信号一起拉高
这种情况下就比较简单,READY 信号与 VALID 信号同时拉高,在下一个 时钟上升沿也就是 T2 被检测到,此时握手成功,INFORMATION 得以传输。
五个通道都有自己的握手信号对,对应的名称如下: