FPGA 历险记——xilinx MIG 使用(一)
FPGA 历险记——xilinx MIG 使用(一)
本篇文章主要分享和记录从零开始建立一个DDR3控制系统的过程
IP核:xilinx MIG
DDR3芯片:两颗 MT41J256M16RH-125:E,
FPGA板卡:黑金ax7013
一、芯片参数介绍
对于DDR3芯片和FPGA芯片主要参数介绍,参考上一篇文章《FPGA历险记——DDR3之带宽、位宽和频率使用》
二、MIG实例化
这里默认已经会用vivado新建工程,并会使用IP Catalog 找到MIG ip核)。
1)“MIG Output Options”
点击MIG打开后,来到“MIG Output Options”
Create Design:勾选后代表从零开始构建MIG核;
Verify Pin Changes and Update Dseign:勾选后,代表需要更新当前已有的MIG核(比如我们更改XDC文件约束后)。
Component Name: 很明显,就是命名生成的MIG叫啥名字(如 这里命名为DDR3)
Number of Controllers:MIG控制器的个数,这里我们只需用到一个,所以选1.(其实可这样理解,就是你要搭建几个DDR3系统)
AXI4 interface:勾选后,到时MIG输出的用户接口遵循AXI4协议格式,(建议不勾选,除非上游控制MIG的模块使用改协议)
点击“next”后继续
2)Pin Compatible FPGAs
这一页就是你好像让MIG兼容那个信号的FPGA,需要的话,可以在对应的型号前勾选上,我们暂时不需要勾选,点击“next”继续
3)Memory Selection
存储器类型选择,我们选DDR3 ,点击“Next”继续
4)Controller Options
Clock Period:设置MIG 提供给DDR 的IO时钟频率,更详细的介绍,请查看上一篇文章《FPGA历险记——DDR3之带宽、位宽和频率使用》
Phy to Controller Clock Ratio:同上,请查看《FPGA历险记——DDR3之带宽、位宽和频率使用》
Vccaux_io: 辅助电压,保持默认值
Memory Type: DDR3 芯片形式,因为我们是直接用DDR3芯片颗粒,所以选“Components”,如果用的是内存条形式(如网上购买的类存条),那就对应选其他的类型,对于其他类型详解这篇文章《服务器UDIMM、RDIMM、LRDIMM的区别》。
Memory Part:具体的DDR3芯片型号,当前我们用的是MT41J256M16RH-125:E。
Memory Voltage:保持默认值
Data Width: 数据位宽,因为我们使用的是两颗DDR3芯片,每一颗的位宽是16位,所以总共是2X16 = 32,所以选填32。
ECC:保持默认值。
Data Mask: 保持默认(这里暂不解释,后续会专门针对DDR3芯片分享一系列的文章,到时自然就明白了)。
Number of Bank Machines:注意,这不是指DDR3芯片实际的Bank数(DDR3实际bank数是8),所以这里保持默认值就好。它是MIG实现的一种Bank 管理机制,实行动态分配,使用推荐值,有易于面积和性能的平衡。《更多“Bank Machine ”问题参考》
ORDERING:对接收到的命令是否进行优化调整:选择NORM,允许优化调整;若选择STRICT,不允许调整,必须按照接收到的命令的先后顺序执行。这里选择“STRICT”,跟详细解释,如下图:
点击“Next”后,请继续参考下一篇文章
因能力所限,难免有理解不到位之处,欢迎大家批评指正
更多分享,请关注微信公众号:FPGA历险记