ZYNQ7000系列中PS端与PL端的通信都是通过AXI总线进行连接的,利用好AXI协议是PS与PL交互的基础,因此设计这个实验来进一步了解两者间的通信。
1.实验目的
PL端通过AXI协议访问PS端的DDR内存,其中包括往DDR写数据,以及读取DDR内部的数据。
图 1 实验框图
2.如何实现
看起来实验目的很简单,但是对于像我这样的初学者而言那还是有很多的问题的。例如:
1.芯片内部硬件怎么连接(好比两个人打电话,总得知道电话号码才能交流)
2.谁是主机谁是从机(好比两个人打电话,谁打给谁)
3.什么时候发数据,什么时候读数据,总不能在别人还没存好数据的时候读吧(比如两个人打电话,一个人在睡觉,怎么都打不通吧)
3.设计思路
针对上述3个问题,来设计总的思路,这样能有条理的实现总体的功能。
4.芯片内部硬件连接
ZYNQ中有9个AXI总线(如图 1),其中包含4个General-Purpose Ports(AXI_GP),主要是一些常用的通信,位宽为32位,4个High-Performance Ports,高速的通信,位宽为64位,还有一个AXI_AXP这个我不太了解,不过位宽也是64位。
图 2 ZYNQ示意图
从图 2中可以看出访问DDR3的接口有三条①、②、③条接口,其中PL的访问有两条,分别为①和③,为了简单我们选个③,如果有兴趣可以使用③