DDR3接口

mig IP核的配置

  首先添加mig IP核
在这里插入图片描述
  然后确认以下工程信息,主要是芯片型号以及编译环境,没什么问题后点击next.
  如下图所示,这一页选择"Create Design",在"Component Name"一栏设置该IP元件的名称,这里取默认软件的名称,再往下选择控制器的数量,控制器的数量是指由多少片独立的DDR3,如果DDR3采用并联的方式则只需要一个控制器。我们采用的是两片DDR3并联的方式,因此只需要选择一个控制器就可以。最后是AXI4的接口,这里也勾选上。然后点击next。
在这里插入图片描述
  如下图所示,这一页主要是让用户选择可以兼容的芯片,本工程默认不勾选,即不需要兼容其他的芯片。然后继续点击next。
在这里插入图片描述
  如下图所示,这一页选择的是mig控制器控制的芯片,勾选DDR3即可,点击next。接下来正式配置mig IP核的参数。
在这里插入图片描述
  如下图所示,接下来介绍这些可配置参数的意义。
    (1)Clock Period:DDR3芯片的运行时钟周期,这个参数的范围和FPGA芯片的类型以及具体类型的速度等级有关。本试验选择2500ps,对应400M,这是本次试验所采用芯片可选的最大频率。注意这个时钟是MIG IP核产生,并输出给DDR3物理芯片使用的,它关系到DDR3的运行带宽。比如本次试验的开发板板载两颗DDR3芯片,数据位宽32位,且双边沿触发,带宽达到了 400 M ∗ 2 ∗ 32 b i t = 25.6 G b / s 400M*2*32bit=25.6Gb/s 400M232bit=25.6Gb/s
    (2)PHY to Controller Clock Ratio:DDR3芯片的运行时钟和MIG IP核的用户端(FPGA)的时钟之比,一般有4:1和2:1两个选项。本次试验选择4:1。由于DDR芯片的运行时钟是400MHz,因此在MIG IP核的用户时钟(ui_clk)就是100MHz。一般来说高速传输场合默认4:1,要求低速场合选择2:1。这里还要指出,当DDR3时钟选择了350MHz到400MHz,比例只能默认的4:1,低于350MHz才有4:1和2:1两个选项。
    (3)VCCAUX_IO:这是FPGA高性能bank的供电电压,Vccaux_io必须设置为2.0以实现最高数据速率。
在FPGA高范围bank中无法使用Vccaux_io。因为本试验使用的是高范围bank,所以未使用Vccaux_io。
    (4)Memory Type:DDR3存储器类型选择。本试验选择Component。
    (5)Memory Part:DDR芯片的具体型号。本实验选择MT41J128M16XX-125,这个型号其实和实际的硬件原理图上的型号NT5CB128M16FP-DI是不同的,但是也可以使用,只要用户的DDR芯片容量和位宽一致,大部分是可以兼容的。如果没有兼容的的器件,也可以点击"Create Custom Part(创建自定义器件)"按钮创建一个自定义器件。
    (6)Memory Voltage:是DDR3芯片的电压选择,本试验选1.5V。
    (7)Data Width:数据位宽选择,这里选择32,是因为两块DDR3拼接而成。数据宽度值可以根据之前选择的存储器类型选择。列表中显示了所选部件的所有支持的数据宽度。可以选择其中一个数据宽度。这些值通常是各个器件数据宽度的倍数。在某些情况下,宽度可能不是一个精确的倍数。例如16位是x16元件的默认数据宽度,但是8也是一个有效的值。
    (8)ECC:ECC校验使能,数据位宽为72位的时候才能使用。本试验不使用它。
    (9)Data Mask:数据屏蔽管脚使能。勾选它才会产生屏蔽信号,本试验没有用到数据屏蔽,但是还是把它勾选上。
    (10)Number of Bank Machines:Bank Machine的数量原本用来对具体的某个或者几个来单独控制的,选择多了效率就会高,相应的占用的资源也多,本试验选择4个,平均一个Bank Machine控制两个Bank(本次试验的DDR3是八个Bank)。
    (11)ORDERING:该信号用来决定MIG控制器是否可以对它接收到的指令进行重排序,选择Normal则允许,Strict则禁止。本试验选择Normal,从而获得更高的效率。
    (12)Create Custom Part:用于自定义DDR3的型号参数。
  配置完成后点击next。
在这里插入图片描述
  接下来配置AXI接口:
在这里插入图片描述

  接下来内存的操作方式:
    (1)Input Clock Period:MIG IP核的系统输入时钟,该输入时钟由FPGA内部产生,本次试验选择的时钟频率为5000ps(200MHz)。在Vivado软件20.2版本中存在一个软件BUG。生成IP后重新打开,会变成2500ps(400MHz),后续修改IP时注意此处。
    (2)Read Burst Type and Length:突发类型选择,突发类型有顺序突发和交叉突发两种,本试验选择顺序突发,其突发长度固定为8。
    (3)Output Driver Impdance Control:输出阻抗控制。本试验选择RZQ/7。
    (4)RTT:终结电阻,可进行动态控制,本次试验选择RZQ/4。
    (5)Controller Chip Select Pin:片选管脚输出使能。本试验选择enable,表示把片选信号cs#引出来,由外部控制。
    (6)BANK_ROW_COLUMN:寻址方式选择。本试验选择第二种,即BANK-ROW-COLUMN的形式,这是一种常见的DDR3寻址方式,即要指定某个地址,先指定Bank,再指定行,最后指定列,这样就确定了一个具体地址。一般来说这样寻址有利于降低功耗,但是读写性能上不如ROW_BANK_COLUMN。配置完成点击NEXT。
在这里插入图片描述
  接下来配置FPGA的操作模式:
    (1)System Clock:MIG IP核输入时钟。本试验选择NO Buffer,因为IP核的输入时钟是单端时钟,是由内部MMCM产生的,MMCM所产生的时钟默认添加了buffer。
    (2)Reference Clock:MIG IP核的参考时钟,同样选择NO Buffer,将有时钟模块生成。感兴趣的用户也可以选择Use System Clock这个选项。这时候的MIG IP系统时钟同时做了参考时钟,IP核的参考时钟要求是200MHz,而MIG IP核的系统时钟刚好也使用了200MHz的系统时钟。
    (3)System Reset Polarity:复位有效电平选择。本试验选择ACTIVE LOW低电平有效。
    (4)Debug Signals Control:该选项用于控制MIG IP核是否把一些调试信号引出来,他会自动添加到ILA,这些信号也包括一些DDR3芯片的校准状态信息。本试验选择OFF,不需要让IP核产生各种调试信息。
    (5)Sample Data Depth:采样深度选择。当Debug Signals Control选择OFF时,所有的采样深度时不可选的。
    (6)Internal Vref:内部参考管脚,表示某些参考管脚当成普通的输入管脚使用。由于开发板的IO资源较为紧张,因此这里要选择ON,把参考管脚当作普通的输入管脚来使用。
    (7)IO Power Reduction:IO管脚节省功耗设置。本试验选择ON,开启。
    (8)XADC Instantiation:XADC模块的例化。使用MIG IP核运行的时候需要进行温度补偿,可以直接选择XADC模块的温度数据引到MIG IP核来使用,否则需要额外提供温度数据,所以本试验选择Enable。配置完成点击NEXT。

在这里插入图片描述
  接下来配置内部高性能bank端接匹配阻抗的设置,这里不去改它,默认50欧姆即可。接下来点击NEXT。
在这里插入图片描述
  接下来开始绑定管脚,这里我们选用预先设置好的管脚,选择Fixed Pin选项,点击NEXT。
在这里插入图片描述
  进入下图界面后,选择Read XDC/UCF选项。选择预先设置好的DDR3配置文件,然后点击Validate。弹出对话框后点击Ok。管脚配置完成,点击NEXT。
在这里插入图片描述
  配置基本设置完成,后面都是一些查看和接受,直接点击NEXT即可。
  DDR3的仿真配置文件在生成IP核的同时也会生成,文件位置如下图所示:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Prometheus+grafana环境搭建Nginx(docker+二进制两种方式安装)(六)

由于所有组件写一篇幅过长,所以每个组件分一篇方便查看,前五篇链接如下 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabbitmq(docker二进制两种方式安装)(二)-CSDN博客 Prometheusgrafana环…

第十届蓝桥杯大赛个人赛省赛(软件类) CC++ 研究生组2.0

A立方和 #include<iostream> #include<cmath> using namespace std; int main(){int n, t, flag, x;long long ans 0;for(int i 1; i < 2019; i){t i;flag 0;while(t && !flag){x t % 10;if(x 2 || x 0 || x 1 || x 9) flag 1;t / 10;}if(fl…

prompt 工程案例

目录 prompt 工程是什么&#xff1f; 案例 vllm 推理加速框架 prompt 工程是什么&#xff1f; prompt&#xff1a;提示词&#xff0c;也就是我们使用网页版输入给大模型的内容就叫 prompt&#xff0c;那什么是 prompt 工程呢&#xff1f; 简单理解其实就是利用编写的 prom…

3个 JavaScript 字符串截取方法

在 JavaScript 中&#xff0c;可以使用 substr()、slice() 和 substring() 方法截取字符串. substring() substring() 方法返回一个字符串在开始索引到结束索引之间的一个子集&#xff0c;或从开始索引直到字符串的末尾的一个子集。语法如下&#xff1a; str.substring(inde…

cmake中报错undefined reference to `pthread_create‘的解决方法

出现报错&#xff1a; 解决方法 一般网上会建议在终端指令g/gcc后面增加参数-pthread,但是我们没有用到g/gcc指令. cmake的解决方法是在CMakeLists.txt文件里面增加一行. add_executable(server2 main.cpp) target_link_libraries(server2 pthread)问题就解决了

uniapp切换中英文

一、安装 npm install uni-i18n --save 二、创建中英文切换的文件 1.英文en.js文件 2.中文zh_CN.js文件 三、 main.js中引用 // Vue i18n 国际化 import VueI18n from /common/vue-i18n.min.js; Vue.use(VueI18n);// i18n 部分的配置&#xff0c;引入语言包&#xff0c;注意路…

c# wpf template itemtemplate+ListBox

1.概要 2.代码 <Window x:Class"WpfApp2.Window7"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/…

SCP 从Linux快速下载文件到Windows本地

需求&#xff1a;通过mobaxterm将大文件拖动到windows本地速度太慢。 环境&#xff1a;本地是Windows&#xff0c;安装了Git。 操作&#xff1a;进入文件夹内&#xff0c;鼠标右键&#xff0c;点击Git Bash here&#xff0c;然后输入命令即可。这样的话&#xff0c;其实自己本…

基于SpringBoot+微信小程序的农产品销售平台

一、项目背景介绍&#xff1a; 随着人们收入的不断增加、生活水平的普遍提高,对生活质量的要求也日益凸显。而作为关乎每个人的生命、健康安全的食品卫生、质量无疑更被人们所重视。所以,… 2. 其他国家的绿色有机食品所占其国家食品市场比重比较大,如德国在99年便已达到40%,美…

基于51单片机和MAX1898的智能手机充电器设计

**单片机设计介绍&#xff0c;基于51单片机和MAX1898的智能手机充电器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机和MAX1898的智能手机充电器设计概要 一、引言 随着智能手机的普及&#xff0c;其电池续航…

AcWing1402.星空之夜

【题目链接】1402. 星空之夜 - AcWing题库 夜空深处&#xff0c;闪亮的星星以星群的形式出现在人们眼中&#xff0c;形态万千。 一个星群是指一组非空的在水平&#xff0c;垂直或对角线方向相邻的星星的集合。 一个星群不能是一个更大星群的一部分。 星群可能是相似的。 如…

在深度学习模型中引入先验

当面对复杂问题的时候&#xff0c;在深度学习模型提取特征的过程中完全抛弃知识是非常不明智的策略。虽然有很多研究者在深度网络处理数据之前&#xff0c;利用具有某种知识的模型驱动方法对数据进行预处理&#xff0c;但是这种方法没有进行实质性地改造深度网络&#xff0c;且…

【美团笔试题汇总】2023-09-02-美团春秋招笔试题-三语言题解(CPP/Python/Java)

&#x1f36d; 大家好这里是KK爱Coding &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新美团近期的春秋招笔试题汇总&#xff5e; &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f…

Windows 2008虚拟机安装、安装VM Tools、快照和链接克隆、添加硬盘修改格式为GPT

一、安装vmware workstation软件 VMware workstation的安装介质&#xff0c;获取路径&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1AUAw_--yjZAUPbsR7StOJQ 提取码&#xff1a;umz1 所在目录&#xff1a;\vmware\VMware workstation 15.1.0 1.找到百度网盘中vmwa…

数字乡村创新实践探索:科技赋能农业现代化与乡村治理体系现代化同步推进

随着信息技术的飞速发展&#xff0c;数字乡村作为乡村振兴的重要战略方向&#xff0c;正日益成为推动农业现代化和乡村治理体系现代化的关键力量。科技赋能下的数字乡村&#xff0c;不仅提高了农业生产的效率和品质&#xff0c;也为乡村治理带来了新的机遇和挑战。本文旨在探讨…

哈希(数字+字符串)

模拟散列表 维护一个集合&#xff0c;支持如下几种操作&#xff1a; I x&#xff0c;插入一个整数 x&#xff1b;Q x&#xff0c;询问整数 x 是否在集合中出现过&#xff1b; 现在要进行 N 次操作&#xff0c;对于每个询问操作输出对应的结果。 输入格式 第一行包含整数 …

测开——Java、python、SQL、数据结构面试题整理

一、Java 1.Java中finally、final、finalize的区别 1.性质不同 &#xff08;1&#xff09;final为关键字; &#xff08;2&#xff09;finalize()为方法; &#xff08;3&#xff09;finally为为区块标志,用于try语句中; 2. 作用 &#xff08;1&#xff09;final为用于标识…

每日面经分享(Git经典题目,Git入门)

1. GitHub是什么 a. Git是一个分布式版本控制系统&#xff0c;作用是跟踪、管理和协调软件开发项目中的代码更改。 b. 提供了一种有效的方式来管理代码的版本历史&#xff0c;以及多人协作开发的能力。 2. Git的作用有哪些 a. 版本控制&#xff1a;Git可以记录每次代码更改的…

【机器学习】机器学习创建算法第4篇:K-近邻算法,学习目标【附代码文档】

机器学习&#xff08;算法篇&#xff09;完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;机器学习算法课程定位、目标&#xff0c;K-近邻算法定位,目标,学习目标,1 什么是K-近邻算法,1 Scikit-learn工具介绍,2 K-近邻算法API。K-近邻算法&#xff0c;1.4 …