【FPGA】DDR3调试总结

发布于:2024-08-02 ⋅ 阅读:(30) ⋅ 点赞:(0)

1 DDR3概述

        DDR,名称:double data rate SDRAM,全称:双倍数据率同步动态随机存储器。允许在时钟的上升沿,下降沿传输数据,其主要作用是为了和CPU频率同步,进而大大提高数据传输效率。本工程使用的为DDR3 SDRAM,它具备更低的工作电压(1.5v),240线接口、支持8bit预读;

项目所使用的芯片为紫光国芯SCB13H4G160AF-11MI,该芯片容量为512GB(4Gbit),最大支持933MHz时钟输入。

2 DDR3管脚介绍

DDR3管脚根据不同的功能可以分为:数据组、地址组、控制组和电源组。如图上所示,共96个管脚。

2.1数据组

        DQ[15:0]:双向信号,16位数据总线;                                                                                                DQS /DQS: 数据选通,用于数据同步,读时是输出,边缘与读出的数据对齐。写时是输入。中心与写数据对齐。                                                                                                                                  DM:输入数据掩码。

2.2地址组

        BA0~BA2:Bank地址选通;                                                                                                                A0~A14:地址线;

2.3控制组 

        CK,/CK:差分时钟输入;                                                                                                                  CKE:时钟使能信号;                                                                                                                        /CS:片选信号;                                                                                                                                  /RAS:行地址选通信号;                                                                                                                      /CAS:列地址选通信号;                                                                                                                      /WE:读使能信号;                                                                                                                              ODT:片上终端使能信号。DDR3芯片数据组是有片上端接的,无需外部端接,而控制信号和地址位保证信号完整性需要端接匹配;                                                                                                      ZQ:校准管脚,下拉240Ω电阻到VSSQ。

2.4电源组 

        VDDQ:DQ供电,1.283V到1.45V或者1.5V±0.075V:                                                                        VSSQ:DQ的地;                                                                                                                              VDD:电源电压,1.283V到1.45V或者1.5V±0.075V:                                                                      VSS:电源地;                                                                                                                                  VERFDQ:数据参考电压,电压为VDD/2;                                                                                          VERFCA: 控制、命令和地址参考电压,电压为VDD/2; 

3 DDR3寻址及容量计算

        将DDR芯片在逻辑上分为8个Bank,每个Bank可以理解为一个二维数组bool Array。Row/Column就是指示这个二维数组里的坐标。读写某个Bank,需要先指定一个行(Row),再指定一个列(Column)。

如图,Row Address = 15bit,Column Address = 10bit,Bank Address = 3bit,总的存储单元:2^15×2^10×2^3=2^28=256M,总的容量为:256M×16bit = 512MB(4Gbit)。

4 DDR3引脚分配

4.1 7系列FPGA引脚划分

 7系列的FPGA开始才有HP BANK和HR BANK,UltraScale FPGA有HP BANK、HR BANK和HD BANK,但并不是一个FPGA中会同时包含HP/HR/HDBANK。

HP:High Performance,应用于高速场景,比如DDR或其他高速差分线(不是GTX)

HR:High Range,应用于宽范围I/0,最高能够支持到3.3V的电压。

HD:High Density,应用于低速I/O的场景,最高速率限制在250M以内,最高电压也是支持到3.3V。

如图,DDR的引脚分配一般在HPBank上,也就是Bank32,33,34.

4.1.1 用户Bank

        FPGA的管脚按照Bank进行划分,每个Bank独立供电,以使FPGA I/O适应不同电压标准,增强I/O设计的灵活性。每个用户Bank包括50个I/O管脚,或者说24对差分对管脚,顶端和底端各一个单端管脚。

        在上图中,红色圈住的是两个单端信号蓝色圈住的是时钟管脚,在不作为时钟输入时可以当作普通I/O使用。

4.2 DDR3引脚分配原则

        1.FPGA的一个Bank可以放置4个Group的DDR3信号。                                                                      2.每个Group包含1对DQS差分信号,8个数据信号,1个DM信号。其中DQS的位置是固定的,不能随意接,数据信号DQ和DM在组内可以互换,注意要按组摆放。                                                3.时钟信号必须放置在同一差分对上。

        如图,T0,T1,T2,T3为Bank33的4个组,分别用红色框圈了出来,蓝色框圈的为DQS信号,每一组的DQS都在固定位置。一个MIG控制器最多支持的数据位宽为72bit,这些数据分布在3个Bank上。其中地址、控制、时钟信号必须在中间Bank。比如使用7K325T的Bank32,33,34,地址控制、时钟信号必须放置在Bank33.

        本项目的数据位宽为32bit,故选用了2个Bank,分别是33,34。他的引脚分配如上图所示。