Xilinx 7系列FPGA DDR控制器——mig使用总结(管脚分配)

本文转载自:FPGA的现今未

在一个需要使用DDR的FPGA项目开始的时候,都会遇到DDR的管脚分配,对于搞FPGA的人来说,一般会遇到2个问题,第一个是如何分配管脚,第二个是验证你的管脚分配。

K7 325T封装

在分配DDR的管脚前,需要对FPGA芯片的封装有一些基本的了解,这里以K7 325T为例,在7 Series FPGAs Packaging UG475 (v1.19)中,可以找到所有封装的基本情况,如下图所示:

K7 325T.png

它的管脚主要分成了3类,一类是走serdes信号,如图中黄色Quad115/116/117/118这4个bank,第二种是3.3V-capable high-range (HR) banks,第三种是1.8V-capable high-performance (HP) banks。所有在DDR管脚的分配中优先考虑HP bank。

管脚的分配原则

究竟如何分配DDR的管脚,这里以K7 325T为例,在Zynq-7000 SoC and 7 Series Devices Memory Interface Solutions v4.2, User Guide (UG586)中已经有了一些说明,结合在生成mig core时的参考提示,就可以很方便地完成管脚的分配。

1、以HP bank为例,每个bank分成4个Group,如下图所示:这是34 bank中的group 0,它一共有9个数据管脚和一对DQS管脚。这里就是DQ、DM和DQS的位置,一组DQ和DM刚好9bit。
管脚.png

2、地址线和控制线(RAS_N, CAS_N, WE_N, CS_N, CKE, ODT) 必须在同一个bank,对于使用3个bank的ddr场景,地址线和控制线必须在中间的bank,即bank33,不可以跨bank。

3、ck信号,必须用一对p-n管脚,而且这个管脚必须在控制线所在的Group中,它可以是SRCC, MRCC, 或者DQS pins。如下图所示:
管脚2.png
4、RESET_N 没有特定的要求,可以是任何一个可用的管脚,只要最后的timing满足要求即可,这里建议就直接放在地址线和控制线所在的bank即可。

5、系统时钟和参考时钟,这里就有2种方案,用外部时钟或者是内部时钟,如果用外部时钟,无论系统时钟还是参考时钟都需要通过SR/MR CC管脚输入,如果是内部时钟,就直接通过MMCM产生。

当完成管脚分配后,验证分配的是否正确,这个时候就可以使用mig这个core来验证,即在生成mig core的时候,有一个步骤是可以输入你分配的管脚,然后点击Validate即可检测分配的结果是否正确。

最新文章

最新文章