表5 FPGA的Bottom边Bank中DM的分配
了解清楚FPGA中的DQS,DQ和DM分配,我们再来看看DDR2的架构。DDR2选用MICron生产的MT47H16M16BG-5E,其大小为16M×16bit,每一片分为4个Bank,每个Bank为4M×16bit。如果看到×16,你就认为这是一片×16架构的DDR2,再按照FPGA上×16架构的管脚去设计,那就大错特错了。
虽然该DDR2是16位的带宽,但其却有两个DQS,分别是LDQS和UQDS,也就是说其实两个DQS分别采样低8位和高8位数据。请注意,即使是32位带宽的DDR,其也有4个DQS,每个DQS也仅采样8位数据。至于有没有一个DQS能采样16位或32位数据的DDR,这就不为人知了。
确定了DDR2的架构,就确定了DDR2和FPGA的DQS,DQ和DM的连接方式。由于我们采用的是×8架构的DDR2,所以一组内的DQ仅需要8个,而有的DQS带有9个DQ,在选用该DQ的时候只要任意选取其中的8个就可以。
在SSTL-18电平标准中,为了实现更高的信号频率,输入信号需要和一个参考电压(VREF)进行比较输出后才被认为是实际输入。因为DDR2采用1.8V的SSTL电平进行数据传输,所以DDR2所在FPGA 的Bank电压必须是1.8V,FPGA就必须在该Bank使用VREF参考电压。在FPGA的每个Bank都有两个VREF参考电压输入,该Bank的I/O分属这两个VREF组,如在Bank3存在VREFB3N0和VREFB3N1。
当FPGA的一个Bank存在VREF输入或双向的管脚时,为了防止输出的开关噪声转移到VREF和限制输送到VCCIO的噪声水平,FPGA输入输出IO的位置有如下限制(BGA封装的FPGA):
• 每个VREF最多支持32个输入;
• 在Top和Bottom Bank每12个连续的管脚最多只支持9个输出。在Right和Left Bank每14个连续的管脚最多只支持9个输出;
• 在VREF和输出管脚(除了DQ和DQS)之间必须用两个输入或空脚进行隔离。一般是空着,因为输入会因为输出管脚引来的噪声而导致读入不正确;
• 如果不需VREF参考,一般在一个BANK中只要全部是同组数据总线或地址总线时,输出个数不受限制(即受同一个OE控制的不受限制)。如果不是同一个OE控制就要满足上面约束关系,以及驱动型接口要考虑驱动能力。
图4所示,输出脚必须和VREF用两个输入或空脚进行隔离。另外,由于DDR2的地址和控制线都是输出管脚,所以在手动分配管脚的时候很容易超出2所述的限制,而且FPGA是BGA封装,只从SYMBOL上很难看出管脚的连续性。FPGA的管脚在外部看来是方阵排列,但其在FPGA的内部却是线性的排列,所以硬件设计时最好通过软件去看管脚的连续性。在原理图设计分配DDR2所在Bank的输出管脚时,建议采用Quartus II软件自动分配,这样才能更好地避免错误。
图4 FPGA Output Pad
此外,还要注意:
• 在Cyclone III系列的FPGA中,不支持差分的DQS,该FPGA的IP只在写模式下用到DQS,在读数据时不用(因为IP复位时IP会发送接收训练序列自校正产生捕获时钟);
•多余不用的DQ可以当做普通I/O使用;
• Quartus II软件自动分配管脚时不会区分同一组的DQ和DM,即DQ和DM可以互换(在EP3C16时仅有TOP边的DQ和DM可以互换);
• DDR2的地址和控制线在FPGA上没有专用管脚,可以任意使用其它IO(只要符合输入输出位置限制);
• 可以使用任何一对临近的差分I/O管脚当作DDR2的时钟。
上一页 [1] [2] [3]