1965
- 收藏
- 点赞
- 分享
- 举报
FPGA做的ddr sdram 控制器
问:我做的ddr sdram 控制器, 在软件仿真阶段完全正常, 但是到了FPGA 验证的时候出现了很奇怪的
现象:我的FPGA 用了4 片DDR 并行工作( 就是当作一片DDR 一样的发指令) 现在遇到的问题是
发现在active 后, 连着3 个write, 然后一个write with aotoprecharge,burstlength=4, 然后再读出来,
发现其中有3 片的数据在读写之后是一致的,然而,另外的一片的这16 个数没有写进去。该现象与频
率无关。然后在紧接着的地址上继续写, 读,所有的数据都是正确的。我怀疑initial 没有做好, 加了
好多refresh,precharte, 结果都一样,我很奇怪,为什么3 个片子上的数据都是正确的,只有一个片子
的前几位是错误的。
有可能是initial 没有做好?还是什么原因, 各位大侠有没有遇到这种情况?
我用开发板上提供的仿真程序, 发现没有这种错误, 对比p&r 后的报告, 我的程序和开发板上的时间
参数差不多( 基本一致)。暂时就能总结这么些现象, 请各位大侠们指教一下,就是帮我猜猜也好,谢谢!
答:DDR SDRAM 的设计很关键的是物理层读数据如何捕获的问题。远远不止是RTL coding 的问题。要
做DEBUG 首先要了解你的器件型号,时钟频率和DDR SDRAM 器件型号。要关心所有的细节。DDR
SDRAM 器件有工作频率下限,你的设计不会频率太低吧。
如果你的设计DDR SDRAM 频率不高,建议不用自己做了,用XIILINX 网上公开的参考设计就可以了。
至少可以参考MIG 工具生成的代码,和你自己的代码进行对照,用于参考。
上这个网页[url]http://www.xilinx.com/products/d[/url] ... ce/xaw_dram_ddr.htm
然后注册并下载 Memory Interface Generator (MIG) 工具
有个中文网站也提供资料 [url]http://www.21ic.com/news/n4748c89.aspx[/url] ,不过不知道版本是不是最新的。
另外,有一个叫做MPMC 的 High Performance Multi Port Memory Controller (XAPP535) 可以直接拿
过来用,连多端口访问仲裁器都带有了。
[url]http://www.xilinx.com/gsrd/[/url]
[url]http://www.xilinx.com/bvdocs/appnotes/xapp535.pdf[/url]
如果怀疑是实际调试问题而非一般代码设计问题,建议review 芯片的复位初始化过程,注意写模式寄
存器之前需要足够的等待时间。可以从micron 网站下载一个 芯片模型,例如 [url]http://download.micron.[/url]
com/downl ... ddr2/512Mb_ddr2.zip,做一个完整的RTL 仿真,或者利用MIG 生成的TESTBENCH,
把你自己的代码替换进去做前仿真。
现象:我的FPGA 用了4 片DDR 并行工作( 就是当作一片DDR 一样的发指令) 现在遇到的问题是
发现在active 后, 连着3 个write, 然后一个write with aotoprecharge,burstlength=4, 然后再读出来,
发现其中有3 片的数据在读写之后是一致的,然而,另外的一片的这16 个数没有写进去。该现象与频
率无关。然后在紧接着的地址上继续写, 读,所有的数据都是正确的。我怀疑initial 没有做好, 加了
好多refresh,precharte, 结果都一样,我很奇怪,为什么3 个片子上的数据都是正确的,只有一个片子
的前几位是错误的。
有可能是initial 没有做好?还是什么原因, 各位大侠有没有遇到这种情况?
我用开发板上提供的仿真程序, 发现没有这种错误, 对比p&r 后的报告, 我的程序和开发板上的时间
参数差不多( 基本一致)。暂时就能总结这么些现象, 请各位大侠们指教一下,就是帮我猜猜也好,谢谢!
答:DDR SDRAM 的设计很关键的是物理层读数据如何捕获的问题。远远不止是RTL coding 的问题。要
做DEBUG 首先要了解你的器件型号,时钟频率和DDR SDRAM 器件型号。要关心所有的细节。DDR
SDRAM 器件有工作频率下限,你的设计不会频率太低吧。
如果你的设计DDR SDRAM 频率不高,建议不用自己做了,用XIILINX 网上公开的参考设计就可以了。
至少可以参考MIG 工具生成的代码,和你自己的代码进行对照,用于参考。
上这个网页[url]http://www.xilinx.com/products/d[/url] ... ce/xaw_dram_ddr.htm
然后注册并下载 Memory Interface Generator (MIG) 工具
有个中文网站也提供资料 [url]http://www.21ic.com/news/n4748c89.aspx[/url] ,不过不知道版本是不是最新的。
另外,有一个叫做MPMC 的 High Performance Multi Port Memory Controller (XAPP535) 可以直接拿
过来用,连多端口访问仲裁器都带有了。
[url]http://www.xilinx.com/gsrd/[/url]
[url]http://www.xilinx.com/bvdocs/appnotes/xapp535.pdf[/url]
如果怀疑是实际调试问题而非一般代码设计问题,建议review 芯片的复位初始化过程,注意写模式寄
存器之前需要足够的等待时间。可以从micron 网站下载一个 芯片模型,例如 [url]http://download.micron.[/url]
com/downl ... ddr2/512Mb_ddr2.zip,做一个完整的RTL 仿真,或者利用MIG 生成的TESTBENCH,
把你自己的代码替换进去做前仿真。
我来回答
回答0个
时间排序
认可量排序

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片
相关问答
-
2020-05-18 17:09:40
-
2018-05-24 23:05:34
-
2018-12-05 11:03:25
-
2013-11-17 10:28:02
-
2018-12-19 10:08:53
-
2020-03-17 19:37:06
-
2012-12-24 15:18:41
-
2020-06-05 15:02:07
-
2020-05-20 15:10:04
-
2019-01-23 09:26:45
-
2008-06-23 14:16:09
-
2020-05-19 15:56:55
-
2018-10-09 17:49:41
-
2020-07-20 15:17:06
-
2018-06-21 10:25:30
-
2019-07-18 09:50:08
-
2018-08-13 14:59:39
-
2013-08-27 17:37:11
-
2020-02-29 18:16:51
无更多相似问答 去提问

点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认