DDR3与MIG IP核详解(一)

发布于:2024-11-28 ⋅ 阅读:(13) ⋅ 点赞:(0)

一、ddr3(全称第三代双倍速率同步动态随机存储器):
    1、特点:1:掉电无法保存数据,需要周期性的刷新。2:时钟上升沿和下降沿都会传输数据。
                    3:突发传输,突发长度 Burst Length一般为8。
    2、DDR3的存储:bank、行地址和列地址

假设下图为bank 0:

    3、数据怎么存入DDR3:先指定一个Bank地址,再指定行地址,最后指定列地址。
    DDR3容量计算:bank数量 X 行数量 X 列数量 X 存储单元容量。
    比如bank address位宽为3,ROW address位宽为14,Coulmn address为10,则容量为2^3 X 2^14 X 2^10 X 16 

二、MIG IP核

MIG IP核(Memory Interface Generators)  IP 核是Xilinx公司针对DDR存储器开发的 IP,里面集成存储器控制模块,实现DDR读写操作的控制流程。通过MIG IP核,可以很容易的控制DDR3的读写操作,即只需要控制用户端的端口即可对DDR3进行操作。

基本框图如下:

写数据:用户把数据写入到MIG IP核,MIG IP核自动将数据写入到DDR3芯片

读数据:用户发送读命令给MIG IP核,MIG IP核收到命令后将数据从DDR3芯片读出来,再发送给用户端

1.时钟

MIG IP核有两个FPGA给的时钟,分别是sys_clk(系统时钟)和ref_clk(参考时钟),参考时钟频率必须为200M,DDR3芯片的时钟是由MIG IP核的sys_clk通过PL倍频输出给DDR3,且DDR3的工作时钟是由差分的形式(两条线,一条P,一条N,更稳定)。用户端也有一条时钟叫用户时钟,也是通过系统时钟倍频输出给用户端,一般叫ui_clk。

1.1.DDR3芯片工作的时钟与用户端时钟有一个比例关系:

DDR3芯片的工作频率:用户端时钟频率 = 4:1或者2:1,比如DDR3芯片时钟频率为400M的时候,用户端就只能为100M或者200M,但当DDR3芯片的工作时钟为800M时,比例只能为4:1,即用户端频率只能为200M。

2.如果是zynq系列的芯片流程有点不一样:

DDR3一般是挂在PS端这边的bank里,想往DDR3里写入数据不会例化这个IP核,可以直接往AXI_HP这个接口写数据

3:用户端接口有两种,分别是:Native接口和AXI4接口

3.1 Native接口:

3.2  AXI4接口:

 4:MIG IP核的配置

4.1 系统时钟有三个选项,Differential,Single-Ended,No Buffer。

各项配置信息网上资料很多,不再详细描述。

当系统时钟为200M时,这200M是从何而来的?

第一种:比如外面有个晶振,它产生频率为50M的时钟,时钟进入FPGA内部的倍频器(PLL),最后通过PLL产生200M时钟。这种情况选择NO Buffer

第二种:晶振产生的频率就为200M,且进入FPGA内部后未通过PLL,直接输入给MIG IP核,该种情况选择剩下的两种情况。如果外部产生的频率进入内部是通过差分的形式(双端)就选择 Differential,但外部输入时钟如果是单端的,就选择Single-Ended。如下图红框所示(绿线表示双端):

4.2 XADC作用:1.可以检测FPGA开发板的温度 2.模拟信号转化为数字信号(异核) 

XADC只能使用一次,别的模块使用了该XADC,在配置该IP核的时候就选择disabled,如果其他模块未使用XADC,就可以选择Enabled

4.3

参考:

MIG IP配置_哔哩哔哩_bilibili

MIG IP核详解-CSDN博客