DDR3的使用(四)利用XILINX MIGIP核(native)读写DDR3—IP核信号分析

news2025/1/10 1:37:28

我们这一节继续结合仿真波形和逻辑分析仪测试波形来分析下MIGIP核的各个信号使用,这里主要说的是用户端的信号,这些信号直接与ip核进行交互,只有正确使用才能按我们的要求来读写数据。
请添加图片描述
1.我们先打开modelsim仿真软件,查看下example的仿真波形:请添加图片描述
请添加图片描述
modelsim仿真波形1
2.通过官方仿真波形我们来做一下初步分析: DDR3读写指令信号

信号名位宽I/O含义
app_cmd2I为0时表示写指令,为1表示读指令
app_addr29I读、写数据对应的地址
app_en1I读写指令使能信号
app_rdy1OMIG IP空闲指示信号

当app_en信号拉高时并且app_rdy信号也为高电平时,读写命令和地址才会被写入到MIG IP内部的一个指令FIFO中。如果app_rdy为低电平,则app_en、app_addr和app_cmd需要保持状态,直到app_rdy变为高电平为止,对应时序图如下所示。
请添加图片描述
通过modelsim仿真波形1我们也可以看到,app_rdy为低电平,则app_en、app_addr和app_cmd需要保持状态,直到app_rdy变为高电平为止。也可说Figure 1-53图中四个信号主要用来控制读写地址的写入。特别要说明的是app_rdy信号是MIG IP核读写命令接收准备完成标志,高电平有效信号,连续读写也就是背靠背模式下和写数据没有关系。
请添加图片描述
3.写数据相关的信号如下表所示,MIG IP数据和指令是分开的,可以不进行对齐。
请添加图片描述
下图是非背靠背模式的写数据与写命令的时序图,写数据可以与写命令对齐,写数据也可以提前写命令,写数据也可以滞后写命令,写数据滞后写命令不应该超过2个时钟的限制。
请添加图片描述如上图所示,写数据有三种情形均可以正确写入:
(1)写数据时序和写命令时序发生在同一拍;
(2)写数据时序比写命令时序提前一拍;
(3)写数据时序比写命令时序至多延迟两拍;
结合上图,写时序总结如下:首先需要检查 app_wdf_rdy,该信号为高表明此时 IP 核数据接收处于准
备完成状态,可以接收用户发过来的数据,在当前时钟拉高写使能(app_wdf_wren),给出写数据(app_wdf_data)。这样加上发起的写命令操作就可以成功向 IP 核写数据。
4.下图是背靠背模式的写数据与写命令的时序图,对于背靠背写,其实也有三种情形,唯一点不同的是,它没有最大延迟限制,如下图所示。
请添加图片描述
注意当数据比地址写入多很多时,app_wdf_rdy 会一直为低,当地址比数据写入多很多时,app_rdy 会一直为低。这里我们后面结合逻辑分析仪看一下。
这里还需要注意一点,在连续读的时候,读到的数据顺序跟请求的命令/地址是相对应的。通常使用DDR3 的时候,为了最大限度地提高 DDR3 效能,充分利用突发写的特点,非背靠背很少用,而更多地采用背靠背操作。
5.读数据相关的信号如下表所示,比较简单。
请添加图片描述
发出读命令后,用户只需等待数据有效信号(app_rd_data_valid)拉高,为高表明此时数据总线上的数据是有效的返回数据。需要注意的是,在发出读命令后,有效读数据要晚若干周期才出现在数据总线上。下面是背靠背读的情况,如下图所示。
请添加图片描述 6.MIG IP 核用户接口部分信号定义
请添加图片描述
7.以上我们就大概了解了上面信号的用法,下面我们再结合逻辑分析仪看看实际跑起来的信号。我们任然使用黑金的例程来进行测试实验。如图为一次完整的写入数据过程:
请添加图片描述
请添加图片描述
结合程序
请添加图片描述
请添加图片描述
我们看到当接收到wr_burst_req请求时将app_en置1,写入写数据指令,同时状态机跳转到MEM_WRITE状态。在MEM_WRITE状态中,主要写入地址和数据,写入地址时,只要app_rdy为高,我们就可以一直写入,直到地址达到我们想要的写入长度512个。同时写入数据,只要app_wdf_rdy=1,写入数据就一直写入,直到写入数据个数达到我们设定的数据长度。

这里有一点尤其重要

注意当数据比地址写入多很多时,app_wdf_rdy 会一直为低,当地址比数据写入多很多时,app_rdy 会一直为低。
请添加图片描述
我们看到进入写状态就一直写入数据和地址,在2处由于app_rdy信号拉低,这时候写入的数据数量比地址多很多,app_wdf_rdy就会拉低等待。同样地址比数据写入很多时,app_rdy就会主动拉低等待数据写入。
但是根据逻辑分析仪波形我们看到,只出现了数据等待地址的情况,也就是数据写得快,地址写得慢的情况,所以黑金的板子在编写例程时是按数据等待地址的思路编写的,跑下来也没出现问题。
到这里通过仿真波形和逻辑分析仪抓取波形我们就基本明白各个信号的含义了,这个为我们后面编写控制逻辑打下了一个很好的基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1969374.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习笔记 - RAFT 光流简读

一、光流 光流是图像序列中像素的表观运动。为了估计光流,场景中物体的移动必须具有相应的亮度位移。这意味着一个图像中移动的红球在下一个图像中应该具有相同的亮度和颜色,这使我们能够确定它以像素为单位移动了多少。下图显示了光流示例,其中一系列图像捕获了逆时针旋转的…

使用 宝塔面板 部署 语料库php网站

【语料库网站】宝塔面板 在线部署全过程 代码仓库:https://github.com/talmudmaster/RedCorpus 网站介绍 语料库提供双语文本检索和分享功能。供英语、翻译相关专业的爱好者,学生和老师学习使用。 该网站是对BiCorpus开源项目的二次开发。 技术栈&am…

一文全面了解高性能计算平台是什么、怎么选型?高性能计算平台CHPC 都能做什么?

一. 概述 随着技术的发展和数据量的爆炸性增长,企业面临的挑战日益复杂,对计算能力的需求也在不断增加。这些问题的解决超出了传统计算方法的能力范围,高性能计算(HPC)正是为解决这类问题而生。 高性能计算&#xff…

怎么锁定Word文档格式,保护文档完整性

在日常工作和学习中,我们经常会使用Word文档来编辑和保存重要信息。然而,在文档被多人编辑或分享的过程中,格式的意外变动往往会给后续工作带来不必要的麻烦。为了确保文档的格式在编辑和分享过程中保持不变,我们可以采取一些措施…

2024还有跨境玩家没解锁代理IP+设备多开模式的强大吗?

大多数跨境电商平台对于IP地址、浏览器环境等限制严格。若同一台电脑在同一个跨境电商平台注册多个账号,很容易被官方封禁。如何在不触发官方封禁机制的前提下,安全高效地开展多账号运营策略,成为了众多跨境电商从业者亟待解决的问题。本文将…

jenkins集成jmeter

jenkins 安装插件HTML Publisher startup trigger Groovy 脚本介绍 cd /app/jmeter rm -rf result.jtl jmeter.log report mkdir -p report sh /app/jmeter/apache-jmeter-5.6.3/bin/jmeter.sh -n -t test.jmx -l result.jtl -e -o ./report-n: 表示以非 GUI 模式运行 JMete…

堆的创建和说明

文章目录 目录 文章目录 前言 小堆: 大堆: 二、使用步骤 1.创建二叉树 2.修改为堆 3.向上调整 结果实现 总结 前言 我们已经知道了二叉树的样子,但是一般的二叉树是没有什么意义的,所以我们会使用一些特殊的二叉树来进行实现&a…

齿轮端面重合度学习笔记分享

我们知道两个渐开线圆柱齿轮能够正确啮合,他们的基节相等是正常传动的必要但不处分条件。由于轮齿的高度有限,啮合的区间有限,齿轮能否连续传动还要看轮齿对能否及时接替,即前一对轮齿脱离啮合时,后一对轮齿是否已进入…

uniapp结合uview-ui创建项目关键步骤一步一图教程

文章目录 1 构建项目准备工作2 项目创建2.1 打开开发者工具HBuilderX2.2 创建一个新的项目2.3 引入uview-ui组件2.4 uview-ui组件配置2.4.1 uview-ui组件简单介绍2.4.2 修改main.js2.4.3 修改page.json2.4.4 修改App.vue2.4.5 修改uni.scss2.4.6 修改index.vue 2.5 api接口封装…

antv x6使用Vue+ElementPlus实现右键菜单

基于X6官方给出的React版的右键菜单示例,实现Vue版本的,其中右键菜单使用的是ElMenu的样式。 import { ToolsView } from antv/x6 import { h, render } from vue import { ElMenu, ElMenuItem } from element-plus export class ContextMenuTool exten…

公司的Spring框架接受MIME类型为json格式的带null的字符串,然后这个带null的字段被自动忽略了,排查了好久

接收方法: 解决方案: 先去掉RequsetBody 因为使用RequsetBody时,框架会调用HttpMessageConvert读取HttpRequest的InputStram反序列化为对象,这个InputStram只能读一次。 后续你的代码再通过Reader读输入流时,已经没有…

小米SU7对手来了,魅族汽车今年上市

新能源车市场竞争白热化的 2024 年,那些当初一股脑扎堆入场的各路新势力们,估计压根没想到造个车也能这么卷吧! 还是那句话,当一个行业开始极度内卷,也就意味着已经到了整个淘汰赛最残酷的环节。 目前来说&#xff0…

相位相关法图像配准

小结:本文主要介绍基于相位相关法的图像配准。 1. 相位相关法 在时域中信号的平移运动可以通过在频域中相位的变化表现出来(这是傅里叶变换的特性,见下图)。平移不影响傅氏变换的幅值(谱),对应…

利用人工智能ChatGPT自动生成基于PO的数据驱动测试框架

简介 PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类,并以页面为单位来写测试用例,实现页面对象和测试用例的分离。 数据驱动测试(DDT)是一种方法&#xff0c…

IOday5

一、思维导图 二、练习 使用两个线程完成两个文件的拷贝&#xff0c;分支线程1拷贝前一半&#xff0c;分支线程2拷贝后一半&#xff0c;主线程回收两个分支线程的资源 #include<myhead.h>//定义结构体存储需要传到线程函数中的内容 struct Buf {const char *file[2]; …

Python爬虫:下载人生格言

Python爬虫:下载人生格言 爬取网页 将这些格言下载存储到本地 代码: import requests #导入requests库&#xff0c;用于提取网页 from lxml import etree#导入lxml库&#xff0c;用于Xpath数据解析#请求头 header{ user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) A…

aurora8b10b ip的使用(未完)

文章目录 一、Aurora8B/10B协议二、时钟、复位与状态指示1、时钟2、复位3、状态指示 三、数据发送、接受接口&#xff08;1&#xff09;AXI4-Stream位排序&#xff08;2&#xff09;Streaming接口&#xff08;3&#xff09;Framing接口&#xff08;帧传输接口&#xff09; 四、…

输入成绩问题(c语言)

1.问题&#xff1a;期中考试开始了&#xff0c;大家想要取得好成绩&#xff0c;争夺前五名&#xff0c;从键盘输入n个学生成绩&#xff08;不超过40个&#xff09;&#xff0c;输出每组的前五名的成绩 两行&#xff0c;第一行输入一个整数&#xff0c;表示n个学生&#xff08;…

springboot学习笔记第一天

springboot的简单了解 Java Spring 是一个开源的轻量级应用框架&#xff0c;在 Java 应用开发中起到了简化开发、提高效率、促进模块化和松耦合、支持技术集成等多重作用&#xff0c;成为了广大企业和开发者首选的企业级 Java 应用开发框架之一。 Spring Boot 是一个基于 Spr…