当前位置: 首页 > news >正文

AXI4 DDR读写测试

一、实验任务

        本章的实验任务是在 PL 端自定义一个 AXI4 接口的 IP 核,通过 AXI_HP 接口对 PS DDR3 进行读写测试,读写的内存大小是 4K 字节。

二、实验整体框架

三、实验步骤

一、在原来的hello_word工程另存并修改zynq ip。添加axi hp接口,恢复以前的ip状态

二、自定义axi4 full ip核将ip改为主机接口。如图

三、添加自定义ip并修改参数

四、点击自动连接

五、添加pl端信号,m_axi_init_txn这个信号是初始化信号,检测到上升沿的时候才有效,检测到高电平后会立马对地址指向的数据内存初始化,然后我们对齐重命名。m_axi_txn_done这个是对写入和读出的数据对比完成信号。m_axi_erro这个是写入和读数据对比有误信号。这几个信号都改名和引出。如下几个图:

五、m_axi_init_txn连接按键,m_axi_txn_done和m_axi_erro连接led用作观察。由于我的板子只有一个pl端的led因此我就将m_axi_erro信号随便连接一个GPIO外设由于我们的按键一开始为高电平,而DDR初始化信号检测到上升沿才初始化。因此我们这里加一个取反模块。修改属性并手动连接。并验证整个设计

6、为AXI读写添加debug信号,并自动连接

7、生成模块并且更新顶层文件,其他的保持默认ok即可

8、综合以便添加引脚

9、添加引脚

10、生成bit流。

11、导出硬件设计,打开SDK,将原来的SDK删掉

12、新建项目添加以下文件。

这里由于我用不了scanf因此我就添加一个延迟烧录后在延迟这段时间进行初始化和生成debug触发信号。

#include "stdio.h"
#include "xil_cache.h"
#include "xil_io.h"
#include "xil_printf.h"
#include "sleep.h"int main()
{Xil_DCacheDisable();//char *data_in="I have write and read ddr data!\n";for(int i=0;i<100;i+=4){printf("%d is %d\n",i,(int)(Xil_In32(0x10000000+i)));}sleep(10);for(int i=0;i<100;i+=4){printf("%d is %d\n",i,(int)(Xil_In32(0x10000000+i)));}return 0;
}

12、观察数据,正确

http://www.dtcms.com/a/391104.html

相关文章:

  • 一个.h .hpp 笔记
  • MongoDB数据类型学习笔记
  • STM32实现USB的CDC+MSC+AUDIO的USB复合设备
  • x265静态编译win10--
  • STM32学习-Keli仿真
  • LeetCode hot 100 解题思路记录(一)
  • 01-搭建后端django项目
  • 深入探索卷积神经网络:从基础到高级架构(一)
  • 【大数据社科交叉方向会议】第六届大数据与社会科学国际学术会议(ICBDSS 2025)
  • 计算机网络 知识点梳理及讲解(二)物理层:编码调制、传输媒体、信道复用、宽带接入等
  • 学习嵌入式的第三十八天——ARM——概述
  • 初级会计【备考】
  • Windows系统忘记用户名密码怎么办
  • 市场部绩效考核关键指标与市场分析
  • 嵌入式 - ARM8
  • MongoDB备份数据库
  • 【OpenGL】LearnOpenGL学习笔记23 - ShadowMap、PCF
  • MongoDB文档规范
  • 让设计、办公、创作效率翻倍的技术文章大纲
  • 能不能写一个linux下类vim的编辑器
  • Linux02: 编辑器nano的常用技巧
  • UDP和TCP对比通俗讲解
  • 【ReText】1.3 Python multiprocessing 库详解
  • Liunx系统下出现“Could not resolve host: mirrorlist.centos.org; 未知的错误”地解决方案
  • CentOS Stream 9安装系统(LVM扩容案例)
  • Docusign AI 全球化:构建安全、合规的多语言协议管理
  • C# 基于halcon的视觉工作流-章37-零件测量
  • 第二部分:VTK核心类详解(第38章 vtkPointData点数据类)
  • 木卫四科技 × 一汽解放商用车开发院: 共驱商用车 AI 研发新程
  • 【C++闯关笔记】STL:stack与queue的学习和使用