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

12 - AXI4接口之DDR读写实验

文章目录

  • 1 实验任务
  • 2 系统框图
  • 3 硬件设计
  • 4 软件设计

1 实验任务

本实验任务是通过按键触发PL端自定义AXI4接口IP核对PS端的DDR3进行读写操作,然后PS从DDR中读出数据并打印。

2 系统框图

在这里插入图片描述

3 硬件设计

  1. 添加ZYNQ7 Processing System IP核
    • 在PS-PL Configuration页面
      • 勾选FCLK_RESET0_N
      • 勾选S AXI HP0 interface
    • 在Peripheral I/O页面
      • 勾选UART
    • 在Clock Configuration页面
      • 勾选FCLK_CLK0
  2. 添加带有AXI4-Full Master接口的自定义IP核
  3. 添加System ILA IP核
  4. 自动连线

注意:

  1. 按键需要消抖,因为按键信号的上升沿会影响自定义IP核内部的诸多逻辑,不消抖会产生多个上升沿,从而导致DDR读写错误;
  2. 按键需要取反,否则程序下载后,会自动触发一次DDR读写操作;原因是,自定义IP核会对按键信号打拍,打拍信号在复位期间赋值为0,因为按键上拉电阻的存在,复位结束后,打拍信号值会变为1,从而产生一个上升沿,触发一次DDR读写操作;
  3. LED灯设计的是高灭低亮,不便于观察,因此驱动LED的信号在输出前同样进行取反操作。
    在这里插入图片描述

4 软件设计

注意事项:无。

/***************************** Include Files *********************************/
#include "stdio.h"
#include "xil_cache.h"
#include "xil_io.h"
/************************** Constant Definitions *****************************/

/**************************** Type Definitions *******************************/

/***************** Macros (Inline Functions) Definitions *********************/

/************************** Function Prototypes ******************************/

/************************** Variable Definitions *****************************/

/*****************************************************************************/

int main()
{
	//
	char ch;
	//
	Xil_DCacheDisable();
	//
	printf("AXI4 Write and Read DDR Test.\n");
	//
	while(1) {
		scanf(" %c", &ch);
		if(ch == 'c') {
			printf("Test Start.\n");
			for(int i = 0; i < 4096; i+=4) {
				printf("%d is %d\n", i / 4, (int)Xil_In32(0x10000000 + i));
			}
		}
		else {
			printf("Test Exit.\n");
			break;
		}
	}
	//
	return 0;
}

相关文章:

  • 深入解析缓冲区:计算机世界的“蓄水池”与“加速器”
  • Linux环境下安装部署Docker
  • ArayTS:一个功能强大的 TypeScript 工具库
  • nginx安装
  • 几种常见的.NET单元测试模拟框架介绍
  • 外贸人如何应对Temu的冲击?
  • LabVIEW从需求快速开发的方法
  • IP协议的介绍
  • 2025跨境平台突围战:商家自营+精准供货+智能代销全渠道增长引擎
  • Qt正则表达式QRegularExpression
  • logstash收集数据
  • Spring Boot 2.x 到 3.x 迁移实战:Redis 配置篇
  • 测试用例与需求脱节的修复方案
  • 基于MFC按钮逻辑
  • Linux内核审计规则及其数据结构
  • 基于OpenCV+MediaPipe手部追踪(1/2)
  • shell脚本实例练习(持续更新)
  • 为AI聊天工具添加一个知识系统 之154:理论框架、工程方案及两者的结合架构
  • 深入理解 JavaScript 的 Set 对象
  • 全面解析PRN文件:从原理到可视化的完整指南 【标签打印】
  • 做前端网站用什么工具/搜索引擎优化seo价位
  • 企业网站推广的方法有?/2024年1月新冠高峰期
  • 有原型怎么做网站/品牌营销策划
  • 做网站横幅的图片多大/线下推广怎么做
  • 网站建设的几种形式/百度站长平台链接
  • 什么网站做家具外贸好呢/免费的个人网页