在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2406|回复: 2

[原创] 例说FPGA连载41:DDR控制器集成与读写测试之DDR2 IP核接口描述

[复制链接]
发表于 2016-10-27 16:27:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
例说FPGA连载41DDR控制器集成与读写测试之DDR2 IP核接口描述

特权同学,版权所有

配套例程和更多资料下载链接:

http://pan.baidu.com/s/1c0nf6Qc

1.jpg



如图4.13所示,这是DDR2 IP核与外部接口的功能框图。

2.jpg

4.13 DDR IP核功能框图

图左侧为用户逻辑(User logic),它与DDR2 IP核的接口通常命名为“local_*”;图右侧为FPGA外部的DDR2芯片,它与DDR2 IP核的接口通常命名为“mem_*”。

DDR2 IP核内部分两个部分,即图示的“ALTMEMPHY”和“存储控制器(Memory Controller)”,正如图中所示,它们各有分工。存储控制器产生DDR2芯片实际读写操作需要的时序;ALTMEMPHY有两部分功能,一个功能是对DDR2做自动校正(Aoto-Calibration),另一个功能是实现DDR2所需的物理接口。

DDR2的自动校正是在初始化阶段进行的,此时ALTMEMPHY断开用户逻辑和存储控制器之间的接口,ALTMEMPHY产生存储控制器所需的DDR2读写控制,直到校正完成。在初始化过后,ALTMEMPHY将不再需要控制存储控制器,而是一直保持用户逻辑和存储控制器的连通。

另外,图中未明确示意,实际上这个DDR2 IP核还包括了一个PLL,用于时钟的管理。


现在我们来看ddr2_controller模块例化的接口。这里可以分为三大类,第一类为系统类接口,主要是一些系统或PLL的复位、时钟等接口;第二类为带“local_*”的接口,是DDR2 IP核与用户逻辑间的接口;第三类为带“mem_*”的接口,是DDR2 IP核与FPGA外部DDR2芯片的接口。


对于第一类接口,功能描述如表4.1所示。

4.1 DDR2 IP核系统接口列表

信号名

方向

功能描述

global_reset_n[size=10.5000pt]

[size=10.5000pt]Input[size=10.5000pt]

IP核的全局异步复位信号,低电平有效。该信号有效时,将使得ALTMEMPHY(包括PLL)都进入复位状态。[size=10.5000pt]

pll_ref_clk[size=10.5000pt]

[size=10.5000pt]Input[size=10.5000pt]

PLL的输入参考时钟信号。[size=10.5000pt]

soft_reset_n[size=10.5000pt]

[size=10.5000pt]Input[size=10.5000pt]

IP核的全局异步复位信号,低电平有效。该信号只能复位ALTMEMPHY,而不能复位PLL[size=10.5000pt]

aux_half_rate_clk[size=10.5000pt]

[size=10.5000pt]Output[size=10.5000pt]

phy_clk时钟信号的引出,时钟频率与phy_clk一样,可用于用户逻辑使用。[size=10.5000pt]

aux_full_rate_clk[size=10.5000pt]

[size=10.5000pt]Output[size=10.5000pt]

phy_clk时钟信号的引出,时钟频率是phy_clk的两倍,可用于用户逻辑使用。[size=10.5000pt]

reset_request_n[size=10.5000pt]

[size=10.5000pt]Output[size=10.5000pt]

复位输出,用于指示用户逻辑DDR2 IP核的内部PLL输出locked还未完成。[size=10.5000pt]

phy_clk[size=10.5000pt]

Output[size=10.5000pt]

ALTMEMPHY产生供用户逻辑使用的半速率时钟信号。所有输入和输出到ALTMEMPHY的用户逻辑接口信号,都与此时钟同步。[size=10.5000pt]

reset_phy_clk_n[size=10.5000pt]

Output[size=10.5000pt]

[size=10.5000pt]与phy_clock时钟域相关的复位信号,低电平有效。可用此时钟复位所有DDR IP核和用户逻辑接口相关的信号。[size=10.5000pt]

注:方向是相对DDR2 IP核而言的。


对于第二类带local_*”的用户逻辑接口,功能描述如表4.2所示。

4.2 DDR2 IP核本地接口列表

信号名

方向

功能描述

local_address[22:0][size=10.5000pt]

[size=10.5000pt]Input[size=10.5000pt]

本地逻辑对DDR2 IP核的数据读出或写入地址。[size=10.5000pt]

local_write_req[size=10.5000pt]

[size=10.5000pt]Input[size=10.5000pt]

本地逻辑对DDR2 IP核的数据写入请求信号,高电平有效。[size=10.5000pt]

local_read_req[size=10.5000pt]

[size=10.5000pt]Input[size=10.5000pt]

本地逻辑对DDR2 IP核的数据读出请求信号,高电平有效。[size=10.5000pt]

local_burstbegin[size=10.5000pt]

[size=10.5000pt]Input[size=10.5000pt]

本地逻辑对DDR2 IP核的数据突发传输起始标志信号。多个数据传输时,该信号在 local_write_req[size=10.5000pt]或local_read_req信号拉高的第一个时钟周期时保持高电平,用于指示传输的起始。[size=10.5000pt]

local_wdata[63:0][size=10.5000pt]

[size=10.5000pt]Input[size=10.5000pt]

本地逻辑写入到DDR IP核的数据总线信号,每次写入416bit数据。[size=10.5000pt]

local_be[7:0][size=10.5000pt]

[size=10.5000pt]Input[size=10.5000pt]

读写数据字节使能标志信号。[size=10.5000pt]Local_be的每个位对应local_wdatalocal_rdata8bit数据是否有效。[size=10.5000pt]

local_size[2:0]
[size=10.5000pt]

[size=10.5000pt]Input[size=10.5000pt]

突发传输的有效数据数量,即传输多少个local_wdatalocal_rdata数据。[size=10.5000pt]

local_ready[size=10.5000pt]

[size=10.5000pt]Ouput[size=10.5000pt]

DDR2 IP核输出的当前读写请求已经被接收的指示信号,高电平有效。[size=10.5000pt]

local_rdata[63:0][size=10.5000pt]

[size=10.5000pt]Output[size=10.5000pt]

DDR IP核输出的本地逻辑读出数据总线信号,每次读出416bit数据。[size=10.5000pt]

local_rdata_valid[size=10.5000pt]

[size=10.5000pt]Output[size=10.5000pt]

local_rdata数据总线输出有效信号,高电平有效。[size=10.5000pt]

local_refresh_ack[size=10.5000pt]

[size=10.5000pt]Input[size=10.5000pt]

本地逻辑输入到DDR IP核的刷新请求信号。[size=10.5000pt]

local_init_done[size=10.5000pt]

[size=10.5000pt]Output[size=10.5000pt]

ALTMEMPHY完成DDR存储控制器的自动校准操作,拉高该信号。该信号可以作为用户逻辑的复位信号。[size=10.5000pt]

注:方向是相对DDR2 IP核而言的。


第三类是带mem_*”的DDR2芯片接口,前面已经给出基本的功能描述,这里不再赘述。DDR2的在我们设计中例化的接口映射代码如下所示。


////////////////////////////////////////////////////


//DDR2 controller and phy IP core


ddr2_controller

ddr2_controller_inst (




.local_address(local_address),




.local_write_req(local_write_req),




.local_read_req(local_read_req),




.local_burstbegin(local_read_req | local_write_req),




.local_wdata(local_wdata),




.local_be(8'hff),




.local_size(3'd1),




.global_reset_n(sys_rst_n),




.pll_ref_clk(clk_100m),




.soft_reset_n(1'b1),




.local_ready(local_ready),




.local_rdata(local_rdata),




.local_rdata_valid(local_rdata_valid),




.local_refresh_ack(
),




.local_init_done(local_init_done),




.reset_phy_clk_n(reset_phy_clk_n),




.mem_odt(mem_odt),




.mem_cs_n(mem_cs_n),




.mem_cke(mem_cke),




.mem_addr(mem_addr),




.mem_ba(mem_ba),




.mem_ras_n(mem_ras_n),




.mem_cas_n(mem_cas_n),




.mem_we_n(mem_we_n),




.mem_dm(mem_dm),




.phy_clk(phy_clk),




.aux_full_rate_clk(
),




.aux_half_rate_clk(
),




.reset_request_n(
),




.mem_clk(mem_clk),




.mem_clk_n(mem_clk_n),




.mem_dq(mem_dq),




.mem_dqs(mem_dqs)



);





发表于 2016-10-27 22:19:30 | 显示全部楼层
看着你的书 然后追随到eetop 哈哈哈哈啊哈哈哈
发表于 2017-8-30 09:59:54 | 显示全部楼层
特权同志还是良心著作啊!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-3 11:57 , Processed in 0.018212 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表