系统整理一下关于赛灵思FPGA原理图的设计过程,一方面记录下,另一方面小伙伴沟通交流。之前提到了一下FPGA器件时钟源设计。本篇介绍FFVA1156 (XCKU040)内存设计、交代下文档路径:赛灵思官网-->产品-->FPGA-->UltraScaleFPGA选型手册-->pg150文档
本案以DDR4 SDRAM为例,原则上由FPGA工程师与硬件工程师确定好内存控制器、地址、位宽和颗粒型号后,先进行例化仿真,没有问题后开展原理图绘制。
如图为FPGA与内存之间的架构拓扑:Controller(内存控制器), Physical Layer(物理层接口), Application Interface(用户接口)三个部分,
FPGA内存功能架构
硬件原理设计的话,我们仅关注物理接口这一部分,P150文档有对接口PIN详细的绍,这里我结合参考板的原理图和工程文件捋一下, 在MIG2.2配置一下FPGA内存控制器和接口,基本都是根据所选择的颗粒规格配置的。例如参考设计所选择的颗粒为EDY4016AABG-DR-F-D,根据其规格参数,时钟1200MHz,CL:16,CWL:12等。
颗粒速率
颗粒时间参数
根据颗粒规格,使用Vivado配置相关IP核如下、:
MIG2.2配置
根据实际需求配置位宽,参考板位宽为:64,相应的原理图拓扑如下:
颗粒原理图实例
参考设计中为使用的颗粒规格:EDY4016A - 256Mb x 16。使用4个颗粒组成位宽4x16-bit即:数据位宽为16x4 = 64位,地址位宽:16位,内存总容量:256Mb x 16 x 4 = 16Gb,地址信号原理图与Vivado的内存配置也是严格对齐的。地址信号线与时钟告警使能等信号线共享、涉及数据和数据选通信号线独立,如下所示
参考板原理信号拓扑