ZYNQ学习之旅--PS_AXI_DDR(PL端利用AXI总线实现读写DDR)

简介

ZYNQ 将高性能 ARM Cotex-A 系列处理器与高性能 FPGA 在单芯片内紧密结合,为设计带来了如减小
体积和功耗、降低设计风险,增加设计灵活性等诸多优点。在将不同工艺特征的处理器与 FPGA 融合在一个芯片上之后,片内处理器与 FPGA 之间的互联通路就成了 ZYNQ 芯片设计的重中之重。如果 Cotex-A9 与FPGA 之间的数据交互成为瓶颈,那么处理器与 FPGA 结合的性能优势就不能发挥出来。
我们在前面的实验中介绍了一些 ZYNQ PS 与 PL 交互所使用的接口,比如《EMIO 按键控制 LED 实
验》中的 EMIO,以及《AXI GPIO 按键控制 LED 实验》中的 AXI4-Lite 接口等。其中 AXI4-Lite 接口属于AXI4 总线协议,接下来我们将对该协议作一个更具体的介绍。AXI 的英文全称是 Advanced eXtensible Interface,即高级可扩展接口,它是 ARM 公司所提出的 AMBA(Advanced Microcontroller Bus Architecture)协议的一部分。在介绍 AXI 协议之前,我们首先要对通信协议有一个基本的概念。
AXI 协议是一种高性能、高带宽、低延迟的片内总线,具有如下特点:

1、总线的地址/控制和数据通道是分离的;
2、支持不对齐的数据传输;
3、支持突发传输,突发传输过程中只需要首地址;
4、具有分离的读/写数据通道;
5、支持显著传输访问和乱序访问;
6、更加容易进行时序收敛。

在数字电路中只能传输二进制数 0 和 1,因此可能需要一组信号才能高效地传输信息,这一组信号就组
成了接口。AXI4 协议支持以下三种类型的接口:

1、 AXI4:高性能存储映射接口。
2、 AXI4-Lite:简化版的 AXI4 接口,用于较少数据量的存储映射通信。
3、 AXI4-Stream:用于高速数据流传输,非存储映射接口。

在这里我们首先解释一下存储映射(Meamory Map)这一概念。如果一个协议是存储映射的,那么主机
所发出的会话(无论读或写)就会标明一个地址。这个地址对应于系统存储空间中的一个地址,表明是针对该存储空间的读写操作。AXI4 协议支持突发传输,主要用于处理器访问存储器等需要指定地址的高速数据传输场景。AXI-Lite为外设提供单个数据传输,主要用于访问一些低速外设中的寄存器。而 AXI-Stream 接口则像 FIFO 一样,数据传输时不需要地址,在主从设备之间直接连续读写数据,主要用于如视频、高速 AD、PCIe、DMA 接口等需要高速数据传输的场合。
在本章我们重点介绍 AXI4 接口,它由五个独立的通道构成:

1、 读地址
2、 读数据
3、 写地址
4、 写数据
5、 写响应

下面是使用读地址和读数据通道实现读传输过程的示意图:
在这里插入图片描述
在这里插入图片描述

BD设计

在这里插入图片描述
这里的PL_DDR3_TEST只需要用创建的AXI总线的IP原来的例程就可了。

软件设计

#include <stdio.h>
#include "xil_cache.h"
#include "xparameters.h"
#include "xparameters_ps.h"
#include "xil_printf.h"
#include "xil_io.h"

#define DDR_BASEARDDR  0x10000000 //从设置基地址开始读取
#define DDR_HIGHADDR   XPAR_DDR_MEM_HIGHADDR

int main()
{
	int i=0;
	char A;
	int rev;

	Xil_DCacheDisable();
	print("PL RW DDR TEST!\n\r");
	print("Please input A to get data\n\r");
	while(1){
	scanf("%c",&A);
	if(A=='A'){
		printf("start\n\r");
		while(i*4<4096){
			        rev = Xil_In32(DDR_BASEARDDR+i*4);
			        xil_printf("the address at  %x data is : %d \r\n" ,DDR_BASEARDDR+i*4, rev);
			        ++i;
			}
			i=0;
		}
	}
	return 0;

}

AXI总线读写ddr时序

在这里插入图片描述
在这里插入图片描述
可以看到这里是突发传输,每次突发64个字节。

  • 5
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值