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

【RK3568+PG2L50H开发板实验例程】FPGA部分 | DDR3 读写实验例程

本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com)

1.实验简介

实验目的:

完成 DDR3 的读写测试。

实验环境:

Window11 PDS2022.2-SP6.4

芯片型号:

PG2L50H-484

2.实验原理

      开发板集成 1 颗 4Gbit(512MB)DDR3 芯片,型号为 MT41K256M16。DDR3 的总线宽度共为 16bit。DDR3 SDRAM 的最高数据速率 1066Mbps。

2.1. DDR3 控制器简介

      PG2L50H 为用户提供一套完整的 DDR memory 控制器解决方案,配置方式比较灵活,采用软核实现 DDR memory 的控制,有如下特点:

  • 支持 DDR3
  • 支持 x8、x16 Memory Device
  • 最大位宽支持 32 bit
  • 支持精简的 AXI4 总线协议
  • 一个 AXI4 256 bit Host Port
  • 支持 Self_refresh,Power down
  • 支持 Bypass DDRC
  • 支持 DDR3 Write Leveling 和 DQS Gate Training
  • DDR3 最快速率达 1066 Mbps

3.工程说明

   PDS 安装后,需手动添加 DDR3 IP,请按以下步骤完成:

   DDR3 IP 文件:PG2L_IP\PG2L_IP\DDR3\ips2l_hmic_s_v1_10.iar

    

3.1. DDR3 读写 Example 工程

   打开 PDS 软件,新建工程 ddr3_test,点开如下图标,打开 IP Compiler;

   选择 DDR3 IP,取名 ddr3_test,然后点击 Customize;

   在 DDR3 设置界面中 Step1 按照如下设置:

    Step2 按照如下设置,需要自己新建 DDR3 模型,选择 MT41K256M16XX 为模板,并保持Timing parameters 和地址以及 Drive Options 和下图设置的一致。

   Step3 按照如下设置,勾选 Custom Control/Address Group,管脚约束参考原理图:

     提醒:

     在设置 IP 核时,step 3:pin/bank options 中,管脚设置中的 Group Number 与原理图的对应关系如下图:

      R5 表示 BANK5,G1 表示 Group Nmuber 为 1。

      Step4 为概要,点击 Generate 可生成 DDR3 IP;

      关闭本工程,按此路径打开 Example 工程:

打开顶层文件,需要对顶层文件进行修改,具体参考详细代码。下图是经过修改后的顶层文件。

       对“Step3 已做管脚约束”外的其他管脚,对照原理图使用 UCE 工具进行修改,移植的话可以直接参考工程的 fdc 文件进行移植。

       以下管脚可约束在 LED,方便观察实验现象;

      可按以下方式查看 IP 核的用户指南,了解 Example 模块组成;

4.实验现象

      下载程序,可以看到 LED1 常亮,LED3 闪烁, LED4 闪烁,LED5 常亮;

      提醒:

      Heart_beat_led 信号闪烁表示 ddrphy 系统时钟正常。

      err_flag_led 信号闪烁说明数据检测无错误。可在 IP 核数据手册中找到。

      如果正常的话,err_flag_led 闪烁的速度快于 heart_beat_led 的闪烁速度。

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

相关文章:

  • 创客匠人:在 IP 变现浪潮中,坚守知识变现的本质
  • 飞算AI-idea强大的AI工具
  • 二分查找篇——在排序数组中查找元素的第一个和最后一个位置【LeetCode】
  • 如何把一个多行的RAS key放到环境变量中?
  • 最新全开源礼品代发系统源码/电商快递代发/一件代发系统
  • 红宝书单词学习笔记 list 26-50
  • 71、【OS】【Nuttx】【启动】启动函数分析
  • 股权结构解析
  • 首批 | 云轴科技ZStack加入施耐德电气技术本地化创新生态
  • 微算法科技从量子比特到多级系统,Qudits技术革新引领量子计算新时代
  • 从零开始学前端html篇2
  • Redis:分组与设备在 Redis 中缓存存储设计
  • K线训练关键代码
  • Laravel 动态生成 PDF:基于 KnpSnappy 实现多公司页眉页脚差异化配置
  • C++如何进行性能优化?
  • 安卓设备信息查看器 - 源码编译
  • PlantUML 在 IDEA 中文版中的安装与使用指南
  • Vim 编辑器常用操作详解(新手快速上手指南)
  • LKT4304稳定可靠高兼容性国产安全加密芯片
  • JAVA观察者模式demo【设计模式系列】
  • WebSocket实现多人实时在线聊天
  • 【TCP/IP】2. 计算机网络与因特网体系结构
  • 两张图片对比clip功能
  • 后端id设置long类型时,传到前端,超过19位最后两位为00
  • 解锁DevOps潜力:如何选择合适的CI/CD工作流工具
  • 【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
  • python:ImportError: cannot import name ‘ParameterSource‘ from ‘click.core‘
  • Linux 中的 .bashrc 是什么?配置详解
  • ESP32的OTA升级详解:2. OTA低层组件app_update介绍
  • 增强检索知识库系统1