前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DDR3 接口分析

DDR3 接口分析

作者头像
数字芯片社区
发布2020-07-20 16:05:02
1.3K0
发布2020-07-20 16:05:02
举报
文章被收录于专栏:数字芯片数字芯片

1.认识顶层文件example_top.v

打开顶层文件example_top.v

下图为各种参数设定,有bank、column、rank等参数设置(其实你不用动他们,这些都是之前选好的,不记得自己选了什么?乖乖!不如再翻翻DDR3 IP 核配置?)

下图为DDR的各种接口;

column和row地址是在ddr3_addr里面复用的,column一般是10bit宽度,row一般是14-16bit宽度;

ddr3_ba是选bank的,一般是3bit宽度,对应8个bank;

下图为各种参数配置,相互之间的关系换算等(作为设计者不要管他)

下图为各种wire定义(你有兴趣研究码?我是没兴趣!)

下图为DDR3例化实体

只需要改动下面几个参数(具体后边介绍):

.app_addr (app_addr),

.app_cmd (app_cmd),

.app_en (app_en),

.app_wdf_data (app_wdf_data),

.app_wdf_end (app_wdf_end),

.app_wdf_wren (app_wdf_wren),

下图为Traffic gen实例化和traffic gen相关参数(对设计没用,不管他)

以上就是example_top.v工程的顶层文件内容,在整个设计中,需要你改动的就只有example_top.v,而且只有以下几个port;

.app_addr (app_addr),

.app_cmd (app_cmd),

.app_en (app_en),

.app_wdf_data (app_wdf_data),

.app_wdf_end (app_wdf_end),

.app_wdf_wren (app_wdf_wren),

2.用户接口管脚

app_addr 操作地址,按照结构从高位到低位是 rank+bank+row+column

app_cmd 操作命令,其实你只需要用到3‘b000(写入命令)和3’b001(读出命令)

app_en 操作地址app_addr的使能,只有使能拉高时,app_addr才有效

app_wdf_data 写入数据接口

app_wdf_end 实际中和app_wdf_wren一样(app_wdf_end=app_wdf_wren即可)

app_wdf_wren 写入数据接口app_wdf_wren的使能,拉高时,app_wdf_data才有效

以上6个信号就是需要你通过编写程序的用户接口信号;

3.DDR3时序分析

写数据时序图

app_rdy :在app_rdy拉高的时候拉高app_en,地址app_addr才有效;

app_wdf_rdy:在app_wdf_rdy拉高的时候拉高app_wdf_wren,写入数据app_wdf_data才有效;

所以写入数据是两系统:一是地址,二是数据

  • 地址内容是app_addr,它在app_rdy(DDR控制)和app_en(设计者自己控制)同时拉高的时候才有效;
  • 数据内容是app_wdf_data,它在app_wdf_rdy(DDR控制)和app_wdf_wren(设计者自己控制)同时拉高时才有效;

这两套系统在时序上对齐,就可以成功将数据写入DDR;

其实,两系统不对齐也是ok的,如下图,1是严格对齐,2和3说明早写入和晚写入也是ok的;具体可以参考:DDR3读写数据

读数据时序图

app_rd_data:读数据

app_rd_data_valid读数据使能

同样,在app_rdy和app_en拉高的时候才有效;

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字ICer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.认识顶层文件example_top.v
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档