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

DDR3入门系列(二)------DDR3硬件电路及Xilinx MIG IP核介绍

1. 以FPGA作为控制器的DDR硬件电路

下图提供一种DDR3与FPGA硬件连接的参考电路,DDR3型号为MT41K256M16xx。

2. 赛灵思(Xilinx)MIG IP核的介绍

Mig(memory interface generator)IP核,是Xilinx官方提供的存储器接口控制器IP核,在Vivado软件的IP Catalog界面中可以搜索得到。双击进入该IP核GUI界面之后,先确认好FPGA型号。这里可以自己在电脑上对照着学。

点击Next后看到下一个界面:

  • MIG Output Options:输出选项,一般选择Create Design就行。

  • Component Name:组件名称,设置该界面下生成的模块的名称。

  • Multi-Controller:支持多个DDR控制器,根据实际需要选择。

  • AXI4 Interface:选择启用AXI4接口,适合CPU随机访问存储器里的地址。

点击Next后看到下一个界面:

  • Pin Compatible FPGAs:可以勾选一些兼容的型号器件,一般直接跳过。

点击Next后看到下一个界面:

  • Memory Selection:选择存储器类型。

点击Next后看到下一个界面:

  • Clock Period:接口时钟频率,用于FPGA输出给到DDR存储器时钟管脚的时钟,对于7系列的FPGA而言,这里最大可以设置到400MHz;

  • PHY to Controller Clock Ratio:DDR时钟频率与FPGA用户逻辑时钟频率的比值;如果它的值是4:1,且DDR接口时钟频率为400MHz,那么FPGA逻辑读写的频率就是100MHz。

  • Vccaux_io:电压电平,这个可以不用管;

  • Memory Type:存储器类型,一般就选择Components,表示单颗粒的结构;

  • Memory Part:存储器型号,每一种存储器型号的参数(频率、位宽、时序)都不一样,这个根据实际情况去选择;

  • Memory Voltage:保持默认即可;

  • Data Width:设置成存储器实际的数据位宽;

  • ECC:不用管;

  • Data Mask:使能Data Mask引脚,当Data Mask电平置高,数据无法写入;

  • Number of Bank Machines:DDR控制器的Bank Machines个数设置,不一定与DDR存储器的Bank数量一致,可以保持默认;

  • ORDERING:模式设置,如果是Normal模式,会允许控制器对用户发出的指令进行排序,从而得到更高效的利用,一般选择Strict模式,即不改变用户发出的指令顺序。

点击Next后看到下一个界面:

  • Input Clock Period:输入系统时钟频率设置,这个时钟是提供给MIG IP的时钟;

  • 其余按照默认即可。

这里扩展说明一下,MIG IP核使用需要提供的时钟有两种,一个是Reference Clock;一种是System Clock。

点击Next后看到下一个界面:

  • System Clock:系统时钟,这里不是外部输入的时钟,因此只能选择No Buffer模式;

  • Reference Clock:参考时钟。

  • System Reset Polarity:复位的极性;

  • Debug Signal for Memory Controller:调试信号,默认关掉就行;

  • 其余保持默认即可。

点击Next后看到下一个界面:

  • Internal Termination Impedance:内部阻抗匹配。

点击Next后看到下一个界面:

  • Pin/Bank Selection Mode:引脚模式选择,一种是New Design模式,系统会帮你选择一个最佳的引脚设置;另一种是Fixed Pin Out模式,自定义选择引脚。

点击Next后看到下一个界面:

  • Pin Selection For Controller:管脚选择。

后面的界面直接保持默认,最后选择Generate就可以了。

本期分享结束,感谢大家看完,私信我可获取相关详细资料!

http://www.dtcms.com/a/350258.html

相关文章:

  • 基于LZO的无损数据压缩IP,高性能压缩速率32Gbps,压缩率50%,适用FPGAASIC
  • TDengine IDMP 应用场景:IT 系统监控
  • HIVE创建UDF函数全流程
  • 【URP】Unity 插入自定义RenderPass
  • 【学习记录】CSS: clamp、@scope
  • C++ extern 关键字面试深度解析
  • 大模型的思考方式
  • 引脚电平异常?以下或许是原因
  • Java 高可用实现方式
  • 基于MATLAB长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析等领域中的实践技术应用
  • 面试常考算法题汇总
  • Java设计模式-观察者模式
  • MATLAB函数文件编写规范
  • imx6ull-驱动开发篇41——Linux RTC 驱动实验
  • 详解flink SQL基础(四)
  • 使用Docker+WordPress部署个人博客
  • 无人机和无人系统的计算机视觉-人工智能无人机
  • k8s的etcd备份脚本
  • 4G模块 EC200通过MQTT协议连接到阿里云
  • Java-面试八股文-Java高级篇
  • Springboot 集成 TraceID
  • 在react里使用路由,手动跳转
  • C++ 内存安全与智能指针深度解析
  • 【flutter对屏幕底部有手势区域(如:一条横杠)导致出现重叠遮挡】
  • YOLOv7:重新定义实时目标检测的技术突破
  • 浅聊RLVR
  • 绿色循环经济下的旧物回收App:重构闲置资源的价值链条
  • 设计仿真 | 从物理扫描到虚拟检具:Simufact Welding革新汽车零部件检测
  • 汽车零部件工厂ESOP系统工业一体机如何选型
  • 基于51单片机红外避障车辆高速汽车测速仪表设计