1、DDR3
1)DDR3所有的线连接到FPGA,FPGA内的BANK有固定引脚可以和DDR3对接,不能随意连接
2)DQ、DQS、DM在同一组,DQS组内位置固定,DQ和DM,组内互换;
3)DQ、DQS、DM在同一组,组和组之间可以互换,不同组之间,不可引脚互换;
4)输入到FPGA的DDR3参考时钟,最好在控制BANK
5)RZQ引脚可以在FPGA连接DDR3的任意BANK内,连接240Ω到GND
6)DDR3芯片的引脚可以占满FPGA某一BANK的所有引脚,因为FPGA芯片支持这种状态
7)DDR3的参考引脚VREFB2AN0_2A(BANK2A)、VREFB2AN0_2J(BANK2J),接DDR3的VREF电源。
8)差分引脚,注意P/N引脚
9)地址引脚、控制引脚和时钟引脚放在同一个BANK
10)GPIO和PLL和CLK时钟引脚,各自的最高传输时钟速率是多少?
2、Layout布局
3、Layout布线
1)考虑DDR3和FPGA的引脚在颗粒不同位置,需要考虑这部分的长度,实现等长,最终实现等时;
2)FPGA不会调整DDR3的数据引脚的时延(徐工,他没听说过会调整数据引脚延时),所以组内等长是必须的,组与组之间也尽量等长,容许的等长误差不会很大,10mil以内是可以的,我们一般5mil;
3)
调试经验:
1、240Ω接不通BANK位置。
时钟信号在颗粒2是完全fail的,而地址信号也是裕量非常的小。另外客户说能跑400M,我们也仿真看看400M的情况。
恩,400M的话从仿真来看,无论是时钟信号还是地址信号都有一些裕量,测试能OK也是有可能的。
这个板子的问题和解决方法都是非常清晰的,在我司重新进行改板设计后,把端接电阻放回到它应该在的位置上,测试800M就没有任何问题了。这个案例是“血”的教训,它告诉我们,有的规则是不能随便更改的,尤其是已经得到业界公认的规则,不然设计加工出来等待你们的就只有fail了。本期的文章就这么简单,希望能对大家有一定的启发。
经验2:
当汽车电子产品中采用4片或4片以上的AS4C64M16D3-12BIN时,为解决时序和信号完整性问题,DDR3内存的时钟、地址、控制命令需要采用Fly-by拓扑结构。Fly-By拓扑中,命令、地址信号以及时钟串联到各个内存模块上,它们可在不同的间隔时间内到达不同的内存模块,即具有读和写延时调整功能,这一功能可在与DDR3相连的处理器上进行设计,以满足DDR3系统的时序要求,减少走线拥挤度。另一方面,Fly-by拓扑下每片内存与时钟、地址、控制命令主线的分支就变得很短了,减小了分支的容性负载从而相应的减小了阻抗变化幅度,但这还不足以抵消分支众多带来反射、信号完整差的影响。
那么如何才能减小反射、提高信号质量呢?
我们都知道,影响信号质量的反射行为是由于阻抗不匹配造成的,在Fly-By拓扑中,我们在每个分支上都加终端匹配电阻是很难的,一是电阻太多,PCB上难以有空间放置,二是难以布线,三是成本也高。
怎么办?解决办法就是在反射最严重的分支上加终端匹配电阻,而最远分支是反射最严重的地方,因此在最远分支末端加上终端匹配电阻吸收反射来提高信号完整性是既经济又折中的方案,采取这种方案,DDR3可以在提高信号质量的同时提供更高的信号传输速率并提升内存系统的扩展性。图1给出了DDR3内存系统采用的Fly-by拓扑结构及终端匹配方案图,其中RT就是时钟、地址及控制命令线上的终端匹配电阻,它上拉到电源VTT。
图1 DDR3 Fly-by拓扑结构及终端匹配图
那终端匹配电阻RT的阻值大小、功耗及其尺寸又怎么设计呢?
掌握RT的功耗就可推算它所需要的尺寸大小,所以需要先算出它的功耗,首先来看下JEDEC对几个参数的规定:
经验3:
DDR3芯片地址组连接到VTT端点电阻这部分布线还需要等长吗?
问下:
DDR3的地址线的上拉电阻需要做等长设置吗?
已将DDR3控制器到DDR3芯片的地址线都做了等长处理,最后再将DDR3芯地址组连接到VTT端点电阻上拉;就是问下:DDR3芯片地址组连接到VTT端点电阻这部分布线还需要等长吗?
答:首先你在理解做等长意义,是让地址线参照时钟走线,让所有地址线尽量做到建立&保持时间保持一致;VTT上拉是增加驱动能力的,当一驱二或一驱多时驱动能力不足,才加VTT上拉。你觉得VTT这部分还要做等长吗?