可编程逻辑
学完SDRAM控制器后,可以感受到SDRAM的控制器的书写是十分麻烦的,因此在xilinx一些FPGA芯片内已经集成了相应的IP核来控制这些SDRAM,所以熟悉此类IP核的调取和使用是非常必要的。下面我们以A7的DDR3 IP核作为例子进行IP核调取。
DDR3是IP软核,什么是软核呢?软核就是使用查找表,寄存器搭建出来的IP核。需要占用FPGA的逻辑。
一、DDR3 SDRAM IP核建立流程
1、在工程建好之后,可以点即IP Catalog来建立相应的IP,具体界面如图所示。
在搜索区搜索memory,然后找到如下图所示的选项,双击。
2、点击next
3、定义器件名,选择控制器个数。控制器个数我们选择1个,点击next。
注:AXI4 Interface,就选择的是AXI格式的MIG核,不勾是传统的接口信号格式。
4、进入到如图所示的界面,如果使用的芯片相同,则可以选择,若没有,可以不选,继续点击next。
5、进入到选取控制器类型的界面,由此我们选择DDR3,点击next。
6、进入到DDR3 SDRAM相应参数的界面,我们首先选择的是DDR3的工作频率设置为400MHZ。因为开发板上的供电电压为1.35V,所以我们在此处设置为1.35V。设置DDR3的总线位宽是16位的。
位宽的计算:400*2*16=12.8Gbps带宽
400是控制器PHY的时钟,2是DDR双沿采样,16是16bit位宽,半双工,所以考虑读写的情况,平均分配的话每个操作占有6.4Gbps的理论带宽。
(1)Clock period:通过周期调整DDR3工作时钟。
(2)4:1和2:1部分,是选择用户的工作时钟。
4:1表示DDR3工作时钟400M情况下用户时钟为100M。
2:1表示DDR3工作时钟400M的情况下用户时钟为200M。
(3)memory part的意思是选择DDR3器件的型号。
(4)Number of Bank Machines:意思是bank的数量。
(5)Data mask:代表的是数据淹模
7、输入IP核的时钟设置为200Mhz,我们将200Mhz通过PLL倍频产生400MHZ的时钟,然后给PHY芯片。
(1)input clock period:IP核的工作时钟,常用时钟50M、200M必须直接连板子。
(2)read burst type and length 表示:数据顺序。
(3)memory address mapping selection表示:地址类型。
8、设置控制系统时钟和参考时钟
系统时钟有single_ended、deferential和no buffer三种,single_ended为来源于引脚的单端时钟,diferential为差分时钟,no buffer为来源于FPGA内部的时钟。参考时钟有4种,其中三种也为single_ended、deferential和no buffer,另外一种为use system clock,注意:只有在system clock时钟频率为199Mhz~201Mhz时,参考时钟才能存在use system clock选项。
注1:如果选择参考时钟,如果选择200Mhz系统时钟,可以不选参考时钟直接使用系统时钟作为参考时钟。
注2:system reset polarity意思是选择复位高低有效。
9、点击next,勾选第二项,再次可以直接导入DDR3 SDRAM的引脚信息,前提是引脚约束文件已经存在,引脚约束文件可以是ucf和xdc类型。然后点击如下两个图标找到ucf/xdc的路径,选择对应的约束文件,点击打开,之后点击validate来确认约束文件有效。
10、默认点击next,剩余的直接点击next就可以了。最后gengerate生成DDR3 IP核。
11、选择global,generate。
完毕。
责任编辑:zl
全部0条评论
快来发表一下你的评论吧 !