在紫光同创盘古50K开发板上进行DDR读写测试
本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处
适用于板卡型号:
紫光同创PGL50H开发平台(盘古50K开发板)
一:软硬件平台
软件平台:PDS_2022.1
硬件平台:小眼睛科技盘古50K开发板
二:IP介绍
紫光同创的HMIC_S IP只支持DDR3,IP顶层使用了精简的 AXI4 总线接口,最大支持32bit的数据位宽。IP的一次读写操作是burst地址8,选择32bit数据位宽下的IP数据接口位宽是32*8=256bit。
三:IP接口

如图所示,整个IP包括Simplified AXI4 接口、Config接口,还有物理接口。物理接口是连接片外DDR3的接口;Config接口为APB配置接口,通过该接口,用户可读取 DDR SDRAM 的状态,实现低功耗和MRS的控制;Simplified AXI4 接口包括写地址通道、读地址通道、写数据通道和读数据通道四个部分。具体可参考紫光IP Compiler下的DDR使用手册。
四:IP核参数配置

由于开发板外接了两块16bit数据位宽的DDR3,所以总数据位宽需要选择32;

因开发板的DDR3型号与默认项一致,step2不需要更改配置;

由于开发板的DDR3的控制/地址信号与默认项不一致,所以需要根据实际开发板的接口来自定义相关配置,最简单的方法复制一份有DDR3的开发板例程中fdc,勾选Enable fdc file select,导入fdc文件,DDR3的相关配置便会自动更改,而不需要手动一个一个更改。
五:测试读写逻辑
自增计数对DDR所有地址写一遍,写完后对所有地址读一遍,读出来的数据与写进去的数据做一个比较,比较错误则产生一个错误标志error_flag,error_flag接到LED1。






六:测试结果

如图所示,LED1为ddr3_init_done 的心跳灯,会以1s切换一次状态;LED2为error_flag指示灯,DDR3读写正确error_flag保持熄灭状态;LED3为写完成指示灯;LED4为读完成指示灯。

如图所示,为写DDR的时序图,当awvalid 和awready信号同时置1时,写地址发生传输。当wready信号置1时,数据发生传输,wusero_last信号为写数据最后一个标志。

如图所示,为读DDR的时序图,当arvalid和arready信号置1时,读地址发生传输。当rvalid信号置1时,代表读数据有效,rlast信号为读数据最后一个标志。

注意,IP的用户接口交互时钟是IP内部产生的100MHz,且不能配置更改。Debugger中waveform的刻度与信号是不对齐的,且有时候不容易看出信号有效周期是多少,在调试时可以在Debugger中的设置里的waveform里选择Pulse Width,且在Hardware Parameter里设置对应的采样时钟频率,这样可以帮助我们更容易分析单bit信号的正确性。
相关文章:
在紫光同创盘古50K开发板上进行DDR读写测试
本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGL50H开发平台(盘古50K开发板) 一:软硬件平台 软件平台:PDS_…...
MySQL BinLog实战应用之二
一、前言 上篇 MySQL Binlog实战应用之一 主要讲了BinLog的开启以及用MySQLBinLog读取BigLog二进制文件,但MySQLBinLog很难直接对接Java,所以有了Canal这个Alibaba开发的用于MySQL增量日志解析,提供增量数据的订阅和消费组件。 二、Canal原…...
Visual Studio Code 快 捷 键
个人总结 Visual Studio Code 快 捷 键!满足日常使用,提高工作效率!! 1、搜索文件: Ctrl p 2、移到某一行: Ctrl g 一、切 换 行 注 释、切 换 块 注 释 1、行注释"//"快捷键…...
有色金属冶炼VR虚拟场景互动教学有何优势
真实模拟:VR虚拟现实技术可以提供一个真实的虚拟环境,模拟钢铁制造现场,包括设备、工艺流程、操作规程等,使学员获得直观、真实的体验。 安全可靠:钢铁制造技能培训可以在虚拟环境中进行,不会对人员或设备造…...
Python将知网导出的endnote题录转为Refworks模式
近期使用SATI文献分析系统,发现效果有限,vosviewer虽然聚类起来图片好看,但没有模块度以及轮廓值等评价标准,因此只能去找citespace,3000文献经过了筛选,重新在知网导一次太麻烦了,还是直接用py…...
单元测试反射注解
单元测试 就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试。 咱们之前是如何进行单元测试的?有啥问题 ? Junit单元测试框架 可以用来对方法进行测试,它是由Junit公司开源出来的 具体步骤 Junit框架的常见注解…...
Android 交叉编译openssl 、libxml2静态库
openssl: Android下openssl编译和使用(一)_安卓编译openssl 交叉编译 for arch in armeabi-v7a arm64-v8a-CSDN博客 libxml2: LIBXML2 2.9.11 build for Android_libxml2 android静态库_fredhurui的博客-CSDN博客...
神经网络气温预测
#引用所需要的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt import torch import torch.optim as optim#优化器 #过滤警告 import warnings warnings.filterwarnings(“ignore”) %matplotlib inline featurespd.read_csv(‘temps.csv’) feat…...
体验SOLIDWORKS钣金切口工具增强 硕迪科技
在工业生产制造中,钣金加工是一种常用的加工方式,在SOLIDWORKS2024新版本中,钣金切口工具再次增强了,从SOLIDWORKS 2024 开始, 您可以使用切口工具在空心或薄壁圆柱体和圆锥体中生成切口。 只需在现有空心或薄壁圆柱体…...
(八)Flask之app.route装饰器函数的参数
app.route参数 app.route()是Flask框架中用于定义路由的装饰器函数,它接受一些参数来指定路由的URL规则、请求方法等。 app.route()参数如下: rule(必选):定义URL规则的字符串,表示要匹配的URL路径。可以…...
ES6.8集群配置注意点
x-pack配置 当启用xpack.security.enabled时,确保集群中的所有节点都配置了此项,并确保所有节点都已重启。如果只有部分节点启用安全性,那么集群可能会遇到问题。 设置密码 使用elasticsearch-setup-passwords工具设置密码时,确保…...
Powercli批量修改分布式交换机端口组
背景 需求: 批量修改虚拟机的分布式端口组 解决方式一: 三条命令解决:先获取目标虚拟机、获取目标端口组、修改虚拟机端口组、检查虚拟机状态。 $vm Get-VM -Name <虚拟机名称> $portGroup Get-VirtualPortGroup -Name <端口…...
ZKP10.2 Efficient Recursion via Statement Folding (Nova)
ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 10: Recursive SNARKs, Aggregation and Accumulation (Dan Boneh) 10.3 Efficient Recursion via Statement Folding: Nova, Supernova, and generalizations The difficulty with full recursion Prover P needs to build a…...
高浓度cod废水怎么处理
高浓度COD废水的处理方法主要有物理法、生物法和化学法。 物理法:一般通过加入絮凝剂,利用絮凝剂的吸附、电中和等作用将水中的颗粒物结团沉降下去,从而达到去除部分来自颗粒物的COD。此方法基本上只对浓度上万、上千的COD起作用,…...
Docker学习——②
文章目录 1、Docker是什么1.1 Docker本质1.2 Docker的引擎迭代1.3 Docker和虚拟机的区别1.4 Docker 为什么比虚拟机资源利用率高,启动快?1.5 Docker 和 JVM 虚拟化的区别? 2、Docker架构3、Docker生态3.1 新时代软件诉求3.2 Docker 解决方案 …...
VSCode 设置平滑光标
1.点击左下角的设置按钮,再点击设置 2.点击文本编辑器,点击光标,勾选控制是否启用平滑插入动画。 3.随便打开一个文件,上下左右移动光标时,会发现非常的流畅。 原创作者:吴小糖 创作时间:2023…...
Spring、SpringMVC、Mybatis
一.Spring基础 1.Spring 框架是什么 Spring 是一款开源的轻量级 Java 开发框架,我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,例如,Spring core、Spring JDBC、Spring MVC 等,使用这些模块可…...
Kubernetes 架构
Kubernetes 架构 Kubernetes 最初源于谷歌内部的 Borg,提供了面向应用的容器集群部署和管理系统。Kubernetes 的目标旨在消除编排物理 / 虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。Kubernetes 也提…...
python---数据类型(列表)
组织列表 使用sort()方法对列表永久性排序 按照字母顺序排序: motorcycles [chunlan, yamaha, dayun, jianshe]motorcycles.sort()print(motorcycles) 字母倒序: motorcycles [chunlan, yamaha, dayun, jianshe]motorcycles.sort(reverseTrue)pri…...
CentOS 7升级gcc/G++版本
Centos 7默认gcc版本为4.8,有时需要更高版本,只需要执行几条命令,无需下载源码编译编译。 安装centos-release-scl sudo yum install centos-release-scl 安装devtoolset sudo yum install devtoolset-8-gcc* 注意,如果想安装…...
[qemu+kvm]: smmu stage 2 建立流程
1. qemu倡导 gpa和hpa映射关系在vm建立时不确定,在运行时触发缺页异常后建立映射关系(lazy binding)。 2. smmu stage 2要求 gpa和hpa的映射关系在vm建立时确定,若在运行时触发缺页,会导致dma失败(pcie ats…...
Pearcleaner:彻底清理Mac应用残留文件的开源解决方案
Pearcleaner:彻底清理Mac应用残留文件的开源解决方案 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾经在Mac上删除应用后,发…...
C语言编程实战:用ASCII码表玩转字符大小写转换(附完整代码)
C语言编程实战:用ASCII码表玩转字符大小写转换(附完整代码) 在编程的世界里,字符处理是最基础却又最容易被忽视的技能之一。很多C语言初学者在学习过程中,往往对字符和字符串的操作感到困惑——为什么a和A是不同的&…...
保姆级教程:在RK3568开发板上搞定ES8316声卡驱动(从DTS配置到tinymix调试全流程)
RK3568开发板ES8316声卡驱动全流程实战指南 从零开始的声音之旅 当你第一次拿到RK3568开发板,想要实现音频功能时,ES8316这颗高性能低功耗的音频编解码芯片可能会成为你的首选。但在嵌入式Linux环境下,从硬件连接到软件驱动,再到最…...
ESP32-S2开发入门:用VSCode远程连接WSL,打造丝滑的嵌入式开发工作流
ESP32-S2开发环境优化:VSCode与WSL的高效协作方案 嵌入式开发工程师常面临跨平台协作的挑战——既需要Linux环境的强大工具链,又依赖Windows的图形界面友好性。本文将揭示如何通过VSCode远程连接WSL,构建一个无缝衔接的ESP32-S2开发环境&…...
用GEE和Landsat 8数据,5步搞定城市生态健康“体检报告”(附完整代码)
城市生态健康体检实战:用GEE和Landsat 8生成可视化评估报告 城市规划师和环保工作者常常需要快速评估城市生态状况,但传统方法耗时费力。Google Earth Engine(GEE)平台结合Landsat 8数据,为我们提供了一种高效解决方案…...
Hertz.dev多模态应用探索:结合WebRTC的浏览器端音频处理
Hertz.dev多模态应用探索:结合WebRTC的浏览器端音频处理 【免费下载链接】hertz-dev first base model for full-duplex conversational audio 项目地址: https://gitcode.com/gh_mirrors/he/hertz-dev Hertz-dev是一款开源的全双工对话音频基础模型…...
别再傻等!EPLAN部件库导入太慢?试试这个解压导入法,效率翻倍
EPLAN部件库高效导入实战:解压法与便携式部署全解析 电气工程师们对EPLAN的部件库导入速度缓慢一定深有体会——当你拿到一个几百兆的EDZ文件,点击导入后泡杯咖啡回来可能进度条才走了一半。这种等待不仅浪费时间,更会打断工作节奏。本文将彻…...
C++ STL常用函数一览表(快速记忆版本)
C STL 常用数据结构与函数整理 这份笔记按常见 STL 容器分类整理,适合在刷题和复习时快速查阅。1. vector 1.1 特点 底层是动态数组支持随机访问尾部插入、删除效率高中间插入、删除效率低 1.2 常用定义 vector<int> v; vector<int> v(5); /…...
瑞芯微RK3572正式发布,中阶AIoT八核处理器,性能功耗双突破
5月8日,瑞芯微正式发布面向中阶AIoT市场的八核处理器RK3572。这款新品以8nm先进制程为基础,在高性能、低功耗与全栈 AI 能力之间实现突破性平衡,为消费电子、智能硬件等广泛场景提供极具竞争力的算力底座。根据官方数据。RK3572相比上一代中阶…...
