ZYNQ-使用自定义AXI总线IP核进行DDR读写测试(一)

简介: ZYNQ-使用自定义AXI总线IP核进行DDR读写测试

学习内容


本文首先进行自定义IP的AXI总线IP的设计,然后在SDK下编写代码进行DDR的读写数据的测试。

开发环境


vivado 18.3&SDK

PYNQ-Z2开发板

系统框图


首先对本次工程进行简要说明:本次工程使用AXI-Full接口的IP进行DDR的读写测试。在我们的DDR读写IP中,我们把读写完成和读写错误信号关联到PL端的LED上,用于指示DDR读写IP的读写运行状态。然后使用PL部分消抖处理后的按键进行启动AXI总线工作,控制数据写入。通过AXI互联模块连接到AXI_HP0端口,由PS端口进行数据的读取操作,并通过串口进行读写数据的监控。

image.png

自定义IP设计


首先打开Vivado软件,在Tasks这里选择New IP lacation

image.png

image.png

点击next,对IP的信息进行设置,这里我们使用默认配置即可。设置好我们IP要保存的位置。

image.png

点击Tools中的创建和封装新的IP选项,

image.png

点击NEXT ,选择我们的封装类型。因为这里我们是直接进行打开IP设计的界面,前两个选项是可以在我们的vivado当前工程下面进行封装设计,这里我们只进行了IP设计没有建立工程,所以前两个选项是无法选中的。我们也可以通过工程界面,进入点击Tools中的创建和封装新的IP选项。

image.png

这里是用DDR读写IP来做主机,控制数据写入,PS作为从机进行读取IP中写入的数据。

image.png

可以直接选中进行编辑IP,用户可以根据自己的设计进行修改编辑IP的功能,这里没有对IP进行修改处理,所以可以直接保存选择第一个添加到IP库中即可。

image.png

若修改相应的逻辑功能打开IP,在对应位置编辑添加代码即可。

image.png

添加完成综合后对IP进行重新打包。DDR读写IP设计完成,创建的 IP 核将通过 AXI4 Master 端口向 Slave 端指定的 4K 存储空间中连续写入 1024 个数据, 写入的数值从 1 累加到 1024, 每个数据占 32bit。然后进行硬件平台的构建。

硬件平台构建


首先,添加ZYNQ7 IP核,以及添加已经完成设计的ddr读写IP核。

添加用户自定义IP


用户自定义的IP可通过以下步骤完成添加。点击Settings,

image.png

在project settings选择IP,依次点击,在IP库那里点击加号,把对应的IP目录文件夹添加后,点击OK或者Apply即可完成添加,在IP库中就可以找到用户设计的IP。

image.png

完成IP和ZYNQ7 IP的导入后,如下图:

image.png

双击打开zynq删除多余的接口,这里只需要保留uart,并打开Slave HP0端口、时钟、复位端口。

image.png

image.png

image.png

配置完,选择自动连接接口,完成部分连接设计。

image.png

整体设计图如下,

image.png

目录
相关文章
|
3月前
|
测试技术 Android开发 Python
探索软件测试的艺术:从基础到高级安卓应用开发中的自定义视图
【8月更文挑战第29天】在软件开发的世界中,测试是不可或缺的一环。它如同艺术一般,需要精细的技巧和深厚的知识。本文旨在通过浅显易懂的语言,引领读者从软件测试的基础出发,逐步深入到更复杂的测试策略和工具的使用,最终达到能够独立进行高效测试的水平。我们将一起探索如何通过不同的测试方法来确保软件的质量和性能,就像艺术家通过不同的色彩和笔触来完成一幅画作一样。
|
9天前
|
域名解析 网络协议 测试技术
IP、掩码、网关、DNS1、DNS2到底是什么东西,ping telnet测试
理解IP地址、子网掩码、默认网关和DNS服务器的概念是有效管理和配置网络的基础。通过使用ping和telnet命令,可以测试网络连通性和服务状态,快速诊断和解决网络问题。这些工具和概念是网络管理员和IT专业人员日常工作中不可或缺的部分。希望本文提供的详细解释和示例能够帮助您更好地理解和应用这些网络配置和测试工具。
32 2
|
1月前
|
机器学习/深度学习 JSON 算法
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-Seg模型进行图像分割的完整流程,包括图像分割的基础知识、YOLOv5-Seg模型的特点、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。通过实例代码,指导读者从自定义数据集开始,直至模型的测试验证,适合深度学习领域的研究者和开发者参考。
400 3
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
|
1月前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
190 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
1月前
|
机器学习/深度学习 算法 PyTorch
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-7.0版本进行目标检测的完整流程,包括算法介绍、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。YOLOv5以其高精度、快速度和模型小尺寸在计算机视觉领域受到广泛应用。
440 0
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
|
1月前
|
算法 Java 测试技术
数据结构 —— Java自定义代码实现顺序表,包含测试用例以及ArrayList的使用以及相关算法题
文章详细介绍了如何用Java自定义实现一个顺序表类,包括插入、删除、获取数据元素、求数据个数等功能,并对顺序表进行了测试,最后还提及了Java中自带的顺序表实现类ArrayList。
21 0
|
4月前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
295 5
|
3月前
|
SQL 缓存 关系型数据库
MySQL配置简单优化与读写测试
MySQL配置简单优化与读写测试
|
4月前
|
XML 测试技术 数据格式
《手把手教你》系列基础篇(八十五)-java+ selenium自动化测试-框架设计基础-TestNG自定义日志-下篇(详解教程)
【7月更文挑战第3天】TestNG教程展示了如何自定义日志记录。首先创建一个名为`TestLog`的测试类,包含3个测试方法,其中一个故意失败以展示日志。使用`Assert.assertTrue`和`Reporter.log`来记录信息。接着创建`CustomReporter`类,继承`TestListenerAdapter`,覆盖`onTestFailure`, `onTestSkipped`, 和 `onTestSuccess`,在这些方法中自定义日志输出。
50 6
|
5月前
|
Java 编译器
Java自定义测试框架测试对象中相应的成员方法
Java自定义测试框架测试对象中相应的成员方法
32 0