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

FPGA开发-ddr测试

文章目录

    • 概要
    • 整体架构流程
    • 技术名词解释
    • 技术细节
    • 小结

概要

提示:这里可以添加技术概要

例如:

本文以米联科开发板为例,介绍ddr测试相关例程。

整体架构流程

提示:这里可以添加技术整体架构

技术名词解释

提示:这里可以添加技术名词解释

例如:

app _addr:表示正在提交给用户界面的请求的地址。聚合外部所有地址字段,并向您显示一个平面地址空间,每个地址待变4BYTES。

app _cmd: 此输入指定请求的命令如下,001读,000时写.

app_en:用户输入时使用,

app_hi_pri:表示当前请求时高优先级,用不到;

app-wdf—data :当前正在写入外部存储器的数据;

app-wdf-mask:那些位被写入外部存储器

app-wdf-wren:该输入表示总线上数据有效

app_rdy: 此输出向用户显示正在提交给UI的请求是否被接受;

技术细节

提示:这里可以添加技术细节

根据原理图及相关要求,配置好FPGA的MIG核,可以点击官方的案例, open IP example design。

添加以下读写控制代码;

状态机代码:

parameter [1:0]IDLE =2'd0;

parameter[1:0]WRITE=2'd1;

parameter[1:0]WAIT=2'd2;

parameter[1:0]READ=2'd3;

设置读写命令;

parameter[2:0]CMD_READ =3'd1;

parameter[2:0]CMD_WRITE=3'd0; 

设置读写范围:

parameter TEST_DATA_RANGE=24'd1000;

这里小姐以下ddr地址的概念;

128M16   前面的128M表示地址。这里的地址时行列地址,还有bank地址一起,

通常我们说的地址是行列,所以是24位,整体式27位。每一位含有16位数据。

reg  [1:0] state=0;  这里式设置初始状态;后续表示状态机代码;

reg [23:0]count 128M*2*16/256(为什么除以256,我也没明白,我猜想式32*16)其实式一个bank的地址范围。

reg app_addr_begin=0

wire tg_compare_error;

assgin app_wdf_end =app_wdf_wren;

assgin app_en=(state==WRITE)?(app_rdy&&app_wdf_rdy):((state==READ)&&app_rdy);

assgin app_wdf_wren =(state==WRITE)?(app_rdy&&app_wdf_rdy):1'b0;

assgin app_cmd =(state==WRITE)?(app_rdy&&app_wdf_rdy):1'b0;

assgin app_addr =app_addr_begin;

assgin app_wdf_data={Count_64[7:0]};

下面式状态机跳转设计:

always@(posedge clk)

if(rst&!init_calib_complete)

begin 

state<=IDLE;

app_addr_begin<=29'd0;

Count_64<=24'd0;

end

这是复位状态;

else case (state)

IDLE:begin

state

if(app_addr_begin >10000)

app_addr_begin <=29'd0;

count64<=24'd0;

end

空闲状态

WRITE:

begin 

state<=(count_64==TEST_DATA_RANGE)&&app_rdy&&app_wdf_rdy?WAIT:atate;

count_64<=app_rdy&&app_wdf_rdy?(count_64+24'd1):count_64;

app_addr_begin<=app_rdy&&app_wdf_rdy?(app_addr_begin+29'd16):app_addr_begin;

read

begin

state<=(count_64==test_data_range)&&app_rdy?idle:state;

count_64<=app_rdy?(count_64+24'd1):count_64;

app_addr_begin <=app_rdy?(app_addr_begin+29'd16):app_addr_begin;

end

以上式ddr读信号

以上就是测试ddr的核心代码,另外读者可以根据需要,增加一些debug信号来测试结果。

在设置好debug信号后,在进行编译,最后下载到FPGA。

小结

提示:这里可以添加总结

例如:

本文以FPGA核心板为例子,结合官方的案例,修改,进行了ddr测试。

相关文章:

FPGA开发-ddr测试

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示&#xff1a;这里可以添加技术概要 例如&#xff1a; 本文以米联科开发板为例&#xff0c;介绍ddr测试相关例程。 整体架构流程 提示&#xff1a;这里可以添加技术整体架构 技术名词解释 提示&#xff1a;这…...

BUUCTF 大帝的密码武器 1

题目描述&#xff1a;&#xff08;下载题目&#xff0c;然后修改后缀名为.zip打开&#xff1a;&#xff09; 公元前一百年&#xff0c;在罗马出生了一位对世界影响巨大的人物&#xff0c;他生前是罗马三巨头之一。他率先使用了一种简单的加密函&#xff0c;因此这种加密方法以…...

Linux 查看目录个数和大小

一、查看某目录下的文件个数 1. 查看目录下的文件个数 即当前目录/hdapp目录下有多少个文件&#xff0c;文件夹不计入数值 ls -l | grep "^-"| wc -l下面的命令文件夹也会计入数值 ls | wc -w2. 查看指定目录下的文件个数 如果省略指定目录就是默认当前目录 ls…...

Unity制作二次元卡通渲染角色材质——4 、内外描边和细节添加

Unity制作二次元材质角色 回到目录 大家好&#xff0c;我是阿赵。 这里继续讲二次元角色材质。这次打算讲一下描边和细节的添加。 一、外描边 外描边的做法也不止一种&#xff0c;比如后处理方法的偏导数ddx/ddy之类的&#xff0c;也能整个屏幕的求出边缘。但一般来说单模型渲…...

Ubuntu安装GCC10

使用包安装的方式安装 sudo apt upgradesudo apt install software-properties-commonsudo add-apt-repository ppa:ubuntu-toolchain-r/test QA: 更新python3.7后出现ModuleNotFoundError: No module named ‘apt_pkg‘错误QA: Cannot import name ‘_gi’ sudo apt updatesu…...

【flutter】Dart 规范2

高效 Dart 语言指南&#xff1a;用法示例 每天在你写的 Dart 代码中都会应用到这些准则。库的使用者可能不需要知道你在其中的一些想法&#xff0c;但是维护者肯定是需要的。 库 这些准则可以帮助你在多个文件编写程序的情况下保证一致性和可维护性。为了让准则简洁&#xf…...

k8s CoreDns详解

一、概述 服务发现是 K8s 的一项很重要的功能。K8s 的服务发现有两种方式&#xff0c;一种是将 svc 的 ClusterIP 以环境变量的方式注入到 pod 中&#xff1b;一种就是 DNS&#xff0c;从 1.13 版本开始&#xff0c;coreDNS 就取代了 kube dns 成为了内置的 DNS 服务器。 Cor…...

c++ 连sqlserver

//要在 C 中连接 SQL Server 数据库&#xff0c;可以使用 Microsoft 提供的 SQL Server Native Client 或者 //ODBC 驱动程序。以下是使用 SQL Server Native Client 连接数据库的基本步骤&#xff1a; //1. 安装 SQL Server Native Client 驱动程序。 //2. 在 C 代码中包含头…...

给钉钉的2个建议

1. 建议.MD文件可以实现在线编辑 .MD文件可以实现在线编辑。 现状&#xff1a;word、excel、txt等文件都可以实现在线编辑&#xff0c;期望.MD文件也可以进行在线编辑&#xff0c;便于喜欢用.MD文旦交流的人使用。 2. 增加群内根据关键词自定义提醒功能 随着个人加入的群聊增多…...

STL之优先级队列(堆)的模拟实现与仿函数(8千字长文详解!)

STL之优先级队列&#xff08;堆&#xff09;的模拟实现与仿函数 文章目录 STL之优先级队列&#xff08;堆&#xff09;的模拟实现与仿函数优先级队列的概念priority_queue的接口介绍优先级队列的构造函数 priority_queue模拟实现类成员构造函数向下调整算法——正常实现 push向…...

设施管理系统

随着经济的快速发展&#xff0c;各种基础设施都在更新&#xff0c;在企事业单位中各种设施也都难以管理&#xff0c;以往传统的管理模式已经无法适应现代社会的需求&#xff0c;设备管理的滞后反而会影响设施设备的使用效果&#xff0c;因此设施设备管理系统必不可少。那么什么…...

JavaScript:获取当前日期、星期、时间 | Data对象

文章目录 1 Date对象2 代码示例3 获取 yyyy-MM-dd 格式的日期 1 Date对象 JavaScript 中的 Date 对象表示日期和时间。Date 对象基于自 1970 年 1 月 1 日 00:00:00 UTC&#xff08;协调世界时&#xff09;以来的毫秒数。以下是 Date 对象的一些常用方法和属性。 getFullYear…...

Cadence原理图快速查找元器件的方法

1.Cadence原理图快速查找元器件的方法 ①在红框中输入元器件编号&#xff0c;点击望远镜的图标在底下的状态栏可看到查找到的相关元器件&#xff0c;点击元器件可自动定位当前元器件的位置。 ②点击hierarchy&#xff08;层&#xff09;可自主查找&#xff0c;找到后点击序号即…...

科目二 调整座椅

靠背倾角 座椅高低 座椅前后用手抬起座椅前的横杠&#xff0c;让座椅向后移动方便上车 靠背左侧&#xff0c;向后扳扳杠调整倾角 座椅左侧&#xff0c;上下扳动调整高低头顶距车顶有一拳的距离 座椅前横杠一只手提起横杠另一只手握住方向盘前拉、后推调整到合适位置&#xff0c…...

02.加载GDT表,进入保护模式

加载GDT表&#xff0c;进入保护模式 加载GDT表&#xff0c;实现操作系统从实模式进入保护模式 参考 操作系统学习 — 启动操作系统&#xff1a;进入保护模式 保护模式与实模式 GDT、GDTR、LDT、LDTR 调用门与特权级 趣谈 Linux 操作系统 在01.硬盘启动盘&#xff0c;加载操作系…...

MySQL(进阶篇3.0)

锁 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传统的计算机资源&#xff08;CPU、RAM、I/O&#xff09;的争用之外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题&…...

2023.6.8小记——嵌入式系统初识、什么是ARM架构?

今天还挺充实的&#xff0c;早上在图书馆本来想学一下notion&#xff0c;结果看李沐老师的动手深度学习看到十点半&#xff0c;在电脑上配置了李沐老师的d2l和jupyter&#xff0c;等后续有时间的时候再继续学。 下午看了一下notion的使用方法&#xff0c;这玩意初学者用起来是…...

分布式运用之ELK企业级日志分析系统

1.ELK的相关知识 1.1 ELK的概念与组件 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用&#xff0c; 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch&#xff1a; 是基于Lucene&#xff08…...

【华为OD机试真题 C语言】8、停车场车辆统计 | 机试真题+思路参考+代码解析

文章目录 一、题目&#x1f383;题目描述&#x1f383;输入输出&#x1f383;样例1&#x1f383;样例2 二、思路参考三、代码参考&#x1f3c6;C语言 作者&#xff1a;KJ.JK &#x1f342;个人博客首页&#xff1a; KJ.JK &#x1f342;专栏介绍&#xff1a; 华为OD机试真题汇…...

c++ MES 对接(XML、JSON、SOAP)

&#x1f5d1;️ 清空 //MES系统对接可以使用多种协议&#xff0c;包括XML、JSON和SOAP等。 //以下是使用C语言进行MES系统对接的示例代码&#xff1a; //1. XML协议对接&#xff1a; //c #include <iostream> #include <string> #include <vector> #incl…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程&#xff08;限时至2025/5/15&#xff09; Oracle AI Vector Search 1Z0-184-25考试&#xff0c;都顺利拿到certified了没。 各行各业的AI 大模型的到来&#xff0c;传统的数据库中的SQL还能不能打&#xff0c;结构化和非结构的话数据如何和…...