| |||
FPGA型号:xcku115-flvb2104-1-c
DDR3颗粒型号:MT41K512M16HA
MT41K512M16HA端口介绍:
引脚 | 类型 | 描述 |
A[15:0] | 输入 | 地址输入 |
BA[2:0] | 输入 | BANK地址输入 |
CK, CK# | 输入 | 时钟 |
CKE | 输入 | 时钟使能 |
CS# | 输入 | 片选 |
LDM | 输入 | 低字节输入屏蔽信号 |
ODT | 输入 | 片上终端电阻 |
RAS#, CAS#, WE# | 输入 | 行通道选通、列通道选通以及写使能 |
RESET# | 输入 | 复位 |
UDM | 输入 | 高字节输入屏蔽信号 |
DQ[7:0] | 输入输出 | 数据输入 |
DQ[15:8] | 输入输出 | 数据输入 |
LDQS, LDQS# | 输入输出 | 低字节数据选通 |
UDQS, UDQS# | 输入输出 | 高字节数据选通 |
VDD | 电压 | 电源供给 |
VDDQ | 电压 | DQ电源供给 |
VREFCA | 电压 | 用于控制、命令和地址的参考电压 |
VREFDQ | 电压 | 数据的参考电压 |
VSS | 电压 | 地 |
VSSQ | 电压 | DQ地 |
ZQ |
系统整体结构图:
Block Design:
MIG参数设置:
Memory Device Interface Speed (ps):
内存设备接口速度:用于选择DDR3的工作频率,范围在1071到3300之间,这里设置的频率为1600ps,等于625MHz,对应DDR3颗粒的输入时钟频率为625MHz。
Reference Input Clock Speed (ps):
输入参考时钟:MIG的参考时钟,勾选上面的选项就能在Advanced Clocking中自定义,这边不能连接MMCM,因为内部存在一个PLL用于生成时钟。
Configuration:
配置:DDR3颗粒选型
Memory Part:
颗粒型号:MT41K512M16HA-125
Data Width:
数据位宽:单个DDR3颗粒是16位,由于硬件上是两个,因此选择32。
软件侧:
#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
int main()
{
init_platform();
print("---Entering main---\n\r");
unsigned int *test_val;
test_val=( unsigned int * ) 0x80000000;
for(unsigned int i = 0;i<536870912;i++)
{
test_val[i] = i;
}
print("Send data has finished!\n\r");
for(unsigned int j = 0;j<536870912;j++)
{
if (test_val[j] != j)
{
xil_printf("%x:ddr3 test failed!\n\r", test_val[j]);
break;
}
}
print("---Exiting main---\n\r");
while (1);
cleanup_platform();
return 0;
}
创建一个首地址为80000000的数组,由于是无符号整形,数据大小为32bit,占4个地址空间。硬件端采用了两个DDR3颗粒,每个颗粒的地址空间为1G,因此一共有2G的地址空间可供使用,通过循环写入再读出的方式,遍历全部2G的地址空间。