Xilinx DDR IP详解与时序分析

DDR3:使用流程

一. 配置过程
1>首先找到IP核

2>选择兼容的片子,这个ddr兼容K7系列的三个片子

3>选择ddr3

4>配置工作时钟部分
配置时钟前我们先了解一下ddr3的ip核的时钟关系,如下图,共三个时钟。Ip核心的工作时钟和参考时钟,必须直接连在电路板上,不可由IP核分频得到。

IP核的工作时钟常用频率:50M/200M(不必再选参考时钟)


①:通过周期调整DDR3工作时钟
②: 4:1和2:1部分,是选择用户的工作时钟
4:1 表示在DDR3工作时钟400M情况下用户时钟为100M
2:1 表示在DDR3工作时钟400M的情况下用户时钟为200M
③:选择DDR3器件型号
④:选择数据的位宽,需要根据器件而定,比如64M*16bit=128M的ddr3芯片,挂两片的位宽就是32bit

⑤:表示数据掩膜,与keep线类似。
⑥:DDR3的bank数量
5>配置IP核时钟

①表示:IP核的工作时钟,常用时钟50M、200M(可以不选择参考时钟) 必须直连板子
②表示:数据顺序
③表示:地址类型
6>继续配置时钟

①选择系统时钟的输入方式:单端or差分
②选择参考时钟,如果选择200M系统时钟,可以不选参考时钟直接使用系统时钟作为参考时钟
③选择复位高低有效
7>该配置引脚了

8>配置引脚
分别为:信号名称(由原理图决定)/bank号/Byte号/引脚号/然后校对一下

分配参考时钟引脚

二. ip核引脚说明

引脚名称

引脚方向

备注

ddr3_addr

output

 

ddr3_ba

output

 

ddr3_cas_n

output

 

ddr3_ck_n

output

 

ddr3_ck_p

output

 

ddr3_cke

output

 

ddr3_ras_n

output

 

ddr3_reset_n

output

复位状态信号

ddr3_we_n

output

 

ddr3_dq

inout

 

ddr3_dqs_n

inout

 

ddr3_dqs_p

inout

 

init_calib_complete

output

初始化完成信号

ddr3_cs_n

output

 

ddr3_dm

output

 

ddr3_odt

output

 

 

 

 

app_addr

input

要操作地址每次step为8

app_cmd

Input

写000读001

app_en

Input

使能信号

app_wdf_data

input

写入的数据【255:0】

app_wdf_end

input

last

app_wdf_wren

input

写使能

app_rd_data

output

读出的数据【255:0】

app_rd_data_end

output

最后一行一个上升沿last

app_rd_data_valid

output

读有效

app_rdy

output

 

app_wdf_rdy

output

 

app_sr_req

input

赋0

app_ref_req

input

赋0

app_zq_req

input

赋0

app_sr_active

Output

 

app_ref_ack

Output

 

app_zq_ack

Output

 

ui_clk

output

Usr的always时钟

ui_clk_sync_rst

output

Usr的复位信号

app_wdf_mask

input

Keep信号

 

 

 

sys_clk_i

input

直连板子时钟

clk_ref_i

input

直连板子时钟

sys_rst

input

直连板子系统复位

 

 

 

 

 

 

三.时序分析

1>写时序:在app_rdy与app_wdf_ready都拉高后,便可以进行操作。下达写数据cmd拉一个app_en同时输入写入的数据和地址,值得注意的是:DDR允许写使能信号落后cmd两个时钟后期之内。但是还是建议写的数据和地址都在一个周期之内

2>读时序

先下达读命令,同时拉高一个app_en和addr。然后就等着有效信号等着读数据。下几个周期的指令,回几个周期的数据。

四.效果
做了一个往AADR0写入全F的数据,再读出的程序。效果如下:

文章转载自: https://blog.csdn.net/fzhykx/article/details/79642327

最新文章

最新文章