AMBA协议AXI-Stream(板级验证)

该文介绍了在XilinxZynq7010FPGA和ZyboZ7开发板上,使用AXI-Stream协议进行SOC系统验证的过程。内容包括环境配置、系统框图、IP核打包、硬件和软件设计,特别是AXI-Stream-testIP与AXI-DMA的集成,以及中断系统的设置。最后,文章提供了一个简单的上板实验,通过DMA进行数据传输并验证了结果的正确性。

系列文章目录

AMBA协议AXI-Stream(协议信号、设计实践)



前言

  在上一篇中,我们已经讲述了AXI-Stream(以下简写AXIS)的相关信号和对应的缓冲模块设计;
  在本篇中,将给出后续的上板实验过程;


一、环境

  本次上板基于Xilinx 的Zynq 7010 FPGA,Digilent 的Zybo Z7板卡,Vivado集成开发环境;采用软硬协同的方式进行逻辑验证;
  板卡图片:
在这里插入图片描述

二、验证SOC搭建

2.1 系统框图

  在设计验证系统时,我们参考正点原子的AXI-DMA实验,只不过将其中的FIFO替换成我们自己编写的AXI-Stream-test模块;
  正点原子系统框图在这里插入图片描述  AXIS验证系统框图

在这里插入图片描述  验证需要zynq硬核的参与,PS端的HP内存映射接口与AXI DMA进行数据流的通信,GP接口与AXI DMA进行AXI-Lite通信,DMA将数据流以AXIS协议发送给AXI-Stream-test IP,并将AXI-Stream-test IP处理后的数据通过HP接口写入DDR3;


2.2 IP核打包

  若想进行Block Design设计,则需要将AXI_Stream_test逻辑打包成IP;

  1.选择Tools->Creat and Package New IP在这里插入图片描述  2.选择Package a specified directory
在这里插入图片描述  首先进行File Groups,然后选择Ports and Interfaces,点击+号
在这里插入图片描述选择axis_trl接口,取名M_AXISMode选择master在这里插入图片描述  点击Port Mapping,绑定信号,绑定信息如下:
在这里插入图片描述
  继续绑定S_AXIS接口;在这里插入图片描述
  其端口映射如下:在这里插入图片描述
  4.点击Customization GUI,将C_M_Axis_Burst_Len参数托到Page0

在这里插入图片描述在这里插入图片描述5.点击Review and Package完成IP打包在这里插入图片描述

2.3 SOC系统硬件设计

  在Vivado中,SOC的BD设计如下所示:
在这里插入图片描述  其中,DMA配置如下:
在这里插入图片描述  取消勾选 Enable Scatter Gather Engine 选项;
  配置地址位宽为32
  配置数据流数据位宽为32


  其中,AXI_Stream_test IP配置如下:
在这里插入图片描述
  C_M_Axis_Burst_Len:为8(最大传输为8,每8个数据就拉高一次TLAST信号)
  Comb_Len:为4,缓冲4个数据(128bit);


2.4 SOC系统软件设计

  先后点击exportLaunch SDK
在这里插入图片描述
创建一个新工程;
在这里插入图片描述
在这里插入图片描述
在新工程中添加一个main.c文件,其中代码如下:

#include "xaxidma.h"
#include "xparameters.h"
#include "xil_exception.h"
#include "xscugic.h"
#include "../user/headfile.h"

/************************** Constant Definitions *****************************/

#define DMA_DEV_ID XPAR_AXIDMA_0_DEVICE_ID
#define RX_INTR_ID XPAR_FABRIC_AXIDMA_0_S2MM_INTROUT_VEC_ID
#define TX_INTR_ID XPAR_FABRIC_AXIDMA_0_MM2S_INTROUT_VEC_ID
#define INTC_DEVICE_ID XPAR_SCUGIC_SINGLE_DEVICE_ID
#define DDR_BASE_ADDR XPAR_PS7_DDR_0_S_AXI_BASEADDR //0x00100000
#define MEM_BASE_ADDR (DDR_BASE_ADDR + 0x1000000) //0x01100000
#define TX_BUFFER_BASE (MEM_BASE_ADDR + 0x00100000) //0x01200000
#define RX_BUFFER_BASE 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PPRAM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值