DDR3控制器(一)DDR3 IP调用

目录

一、DDR3 IP核简介

二、DDR3 IP核调用


在千兆以太网通信中用到了DDR3控制器,但是并没有对其做相关介绍。这次准备重新整理一下DDR3控制相关知识,复习巩固一下。

一、DDR3 IP核简介

        MIG IP核(Memory Interface Generator)是Xilinx提供的IP核,专门用于处理存储器接口的生成和管理。它的主要功能是简化和优化FPGA与外部存储器(如DDR SDRAM)之间的数据传输和通信。

        需要说明的是,DDR3 IP是软核,因此需要占用逻辑资源,在FPGA选型时需要注意。

二、DDR3 IP核调用

        本项目使用的Vivado软件版本为2020.2。在新建的工程中,打开IP catalog,搜索memory,找到MIG选项,双击打开。

         进入IP调取界面,在这里显示有选用的芯片型号、开发环境等信息。

      点击Next,这一页可以自己定义IP核名字,选则控制器数量。这里我们将IP核命名为mig_7serise_0,控制器数量为1。最后的选项选择是否使能AXI,我们这里不勾选。

         点击Next,进入芯片选择界面。如果有使用到的芯片型号可以选择,没有不用管。直接下一步。 

         这里我们选择控制器类型为DDR3。

         继续Next,进入IP核参数设置页面。

        Clock Period:设置DDR3 的工作频率。这里我们选择2500ps,即400M。

        PHY to Controller Clock Ratio:物理芯片运行时钟和 MIG IP 核的用户端( FPGA)的时钟之比,这里默认4:1。这个时钟就是之后代码中的ui_clk。

        Memory Type:选择DDR3芯片的信号,若选项中没有对应的芯片类型,可以在Creat Custom Part中自定义芯片参数。

        Memory Voltage:是 DDR3 芯片的电压选择,本实验选 1.5V。

        Data Width:数据位宽选择,由于我们使用的开发板上有两片DDR3组成32bit存储器,所以这里选择 32。

        这里计算一下DDR3的理论带宽=400 * 2 *32 = 25.6Gbps(400指PHY时钟,2指DDR,32指数据位宽),考虑半双工情况下带宽为一半

         点击Next,进入下一个memory参数设置页面。

        Input Clock Period:MIG控制器输入时钟周期,这里我们选择5000ps(200M)。这个值每次重新打开IP时会自己变为2500ps,很奇怪。

        Read Burst Type and Length:突发类型。选择顺序突发,这里有介绍:突发长度为8

        Memory Address Mapping Selection:寻址方式。这里我们选择第二种:先指定 bank,再指定行,最后指定列。

        Output Driver Impdance Control是阻抗设计相关选;RTT是终结电阻选项;Controller Chip Select Pin是片选管脚引出使能。本项目中这些选项默认即可。

        点击Next,设置系统时钟和参考时钟。

        System Clock: MIG IP 核系统时钟,准确地说应该是上一步设置的时钟的属性。系统时钟有 single_ended、deferential 和 no buffer 三种, single_ended 为来源于引脚的单端时钟, deferential为差分时钟, no buffer 为来源于 FPGA 内部的时钟。这里我们选择 no buffer。

        Reference Clock: MIG IP 核参考时钟。参考时钟有 single_ended、 deferential 、 no bufferuse和system clock四种。这里我们选择system clock。

        本界面其他现行默认即可。

         点击Next,选择DDR3终端电阻为50欧姆(默认):

         点击Next,进入如下界面。在这里选择第二项,导入约束文件。

         点击Next,选择Read XDC/UFC,打开约束文件。

         之后点击Validate,验证约束文件有效。

         点击Next,进入以下界面,默认即可。

         点击Next,这个界面是对创建的IP核的总结。

         点击Next,勾选Accrcpt。

         点击Next,最后点击Generate,生成IP核。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SiLM585x系列SiLM5851NHCG-DG一款具有分离的管脚输出 单通道隔离驱动器 拥有强劲的驱动能力

SiLM585x系列SiLM5851NHCG-DG是一款单通道隔离驱动器,具有分离的管脚输出,提供3.0A源电流和6.0A灌电流。主动保护功能包括退饱和过流检测、UVLO、隔离故障报警和 2.5A 米勒钳位。输入侧电源的工作电压为3V至5.5V,输出侧电源的工作电压范围为1…

计算机毕业设计Thinkphp/Laravel学生考勤管理系统zyoqy

管理员登录学生考勤管理系统后,可以对首页、个人中心、公告信息管理、年级管理、专业管理、班级管理、学生管理、教师管理、课程信息管理、学生选课管理、课程签到管理、请假申请管理、销假申请管理等功能进行相应操作,如图5-2所示。学生登录进入学生考勤…

一天跌20%,近500只下跌,低价可转债为何不香了?

6月以来,Wind可转债低价指数累计下跌7.3%,大幅跑输中价、高价转债。分析认为,市场调整的底层逻辑在于投资者对风险的重新评估和流动性的紧缩,宏观经济的波动和政策环境的不确定性、市场结构性的变化均对低价可转债市场产生了冲击。…

ai智能写作助手有哪些?3款AI工具推荐

ai智能写作助手有哪些?在数字化时代的浪潮中,AI智能写作助手如同智慧的灯塔,照亮了创作者们的道路。它们不仅极大地提升了写作效率,让文字流淌更加顺畅,更能够深入挖掘和激发创作者的内在灵感,将创意的火花…

RK3568平台开发系列讲解(I2C篇)利用逻辑分析仪进行I2C总线的全面分析

🚀返回专栏总目录 文章目录 1. 基础协议1.1. 协议简介1.2. 物理信号1.3. 总线连接沉淀、分享、成长,让自己和他人都能有所收获!😄 1. 基础协议 1.1. 协议简介 IIC-BUS(Inter-IntegratedCircuit Bus)最早是由PHilip半导体(现在被NXP收购)于1982年开发。 主要是用来方…

MYSQL 将某个字段赋值当前时间

如 我们需要将use_time 赋值为当前时间: 准备三条数据 : 执行sql ,2种当前时间赋值函数,1种关键字赋值 : update test_info SET use_timeNOW() WHERE id 1; update test_info SET use_timeCURRENT_TIMESTAMP() …

C++并发之阻塞队列(block,queue)

目录 1 概述2 实现3 测试3 运行 1 概述 最近研究了C11的并发编程的线程/互斥/锁/条件变量,利用互斥/锁/条件变量实现一个支持多线程并发的阻塞队列,队列大小没有限制。 阻塞队列是一个模板类,有两个模块参数,参数1是元素类型&…

【芯片】MCU的分类

MCU又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都…

MySQL报错Duplicate entry ‘0‘ for key ‘PRIMARY‘

报错现场 现象解释 因为你在插入时没有给 Customer.Id 赋值,MySQL 会倾向于赋值为 NULL。但是主键不能为 NULL,所以 MySQL 帮了你一个忙,将值转换为 0。这样,在第二次插入时就会出现冲突(如果已经有一条记录为 0&…

第二证券:什么是破净股票?破净股票好还是不好?

一家公司手上掌握的财物包含实物财物、公司注册资金、未分配利润、各种公积金及品牌价值等等,一家公司的负债包含贷款、应付款、其他公司给的预付款等等。公司的总财物减去总负债后得到的净财物,再除以股票总数,就是公司的每股净财物&#xf…

【LM-Debugger】让研究人员与开发者能够深入洞察并干预模型的预测过程,开启了模型透明度和可解释性的一扇新门

背景 基于 Transformer 的语言模型 (LM) 是现代 NLP 模型的支柱,但其内部预测构建过程不透明。这对于不了解模型为何做出特定预测的最终用户以及希望调试或修复模型行为的开发人员来说都是个问题用于检查和干预基于转换器的语言模型的交互式工具项目地址&#xff1…

React的Redux的状态管理

步骤 1.创建新项目 npx create-react-app react-redux 2.安装配套工具 npm i reduxjs/toolkit react-redux 3.启动项目 npm run start 4.在src目录下创建store文件夹 5.在store文件夹下创建modules文件夹 6.在store文件夹里创建index.js文件 7.在counterStore.js文件…

【扩散模型(二)】IP-Adapter 从条件分支的视角,快速理解相关的可控生成研究

系列文章目录 【扩散模型(一)】中介绍了 Stable Diffusion 可以被理解为重建分支(reconstruction branch)和条件分支(condition branch)本文将从该视角快速理解 IP-Adapter 以及相关可控生成研究。 文章目…

Open3D 删除点云中重复的点

目录 一、算法原理1、重叠点2、主要函数二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、重叠点 原始点云克隆一份   构造重叠区域   合并点云获得重叠点 2、主要…

第二期书生·浦语大模型实战营优秀项目一览

书生浦语社区于 2023 年年底正式推出了书生浦语大模型实战营系列活动,至今已有两期五批次同学参加大模型学习、实战,线上课程累计学习超过 10 万人次。 实战营特设项目实践环节,提供 A100 算力支持,鼓励学员动手开发。第 2 期实战…

SolidWorks北京正版代理商亿达四方:官方授权SolidWorks中国代理

在北京这座融合了古老文明与现代科技的都市中,亿达四方作为SolidWorks官方认证的北京区域正版代理商,正引领着一场设计与制造领域的革新风潮。我们致力于为北京及周边地区的企业提供原汁原味的SolidWorks软件及全方位的增值服务,共同推进首都…

想要用tween实现相机的移动,three.js渲染的canvas画布上相机位置一点没动,如何解决??

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

【Git】版本控制器的方式:SVN集中式版本控制工具和Git分布式版本控制工具

一、应用场景 二、版本控制器的方式 三、SVN 集中式版本控制工具 四、Git 分布式版本控制工具 五、Git工作流程 一、应用场景 Git 在开发过程中提供了多种应用场景,帮助开发团队高效地管理代码、协同工作,并保证代码质量。以下是一些具体应用场景和相应…

Springboot Mybatis 多数据源配置以及使用

在Spring Boot中配置MyBatis的多数据源是一个常见需求,尤其是在需要连接多个数据库时,下面是详细的步骤指南。 引入依赖 首先,在你的pom.xml文件中添加Spring Boot、MyBatis和数据库连接的相关依赖。例如,如果你使用的是MySQL数…

python基础篇(6):global关键字

使用 global关键字 可以在函数内部声明变量为全局变量 未使用global关键字的代码: # global关键字,在函数内声明变量为全局变量 num 200def test_a():print(f"test_a: {num}")def test_b():num 500print(f"test_b: {num}")test_…