Sdram控制器(二)

经过几天的Sdram项目调试,小编想说简直了~,感触颇深,今天就分享给大家喽~

Sdram项目调试感悟:

1. 首先保证仿真正确,能够完全读写整个sdram model【难点二】

2. 保证板子上的sdram是正常工作的。

3. 时钟:sdram的输入时钟能在数据中间采样(做相移或者output delay)【难点一】

4. 约束:时序约束和物理约束

5. 其他

  • 复位或者VIO:Debug的时候会感受到这个神奇之处
  • Oddr2的使用,这里有两个坑:

(1)如果输出管脚不是时钟引脚,则需要加CLOCK_DEDICATED_ROUTE = FALSE;

(2)输出的时钟不能作为ila的采样时钟。

  • 初始化时序:两次自动刷新和预充电的先后顺序可以不用管(具体的可以看手册),其实这个很好理解,这里相当于一个刷新模块而已,然后进行模式寄存器配置。【难点三】
  • 刷新:刷新操作其实可以定义的间隔非常小,这样会一直发出请求,但是对于读写来说是独占的,只有等读写完成后才会进行刷新,这样就避免了读写操作被中断,存储行业里很少有指令的记录这个说法,不能读写一半的时候去做别的操作,然后再返回来进行读写,这个是很难实现的,因为后面的操作请求会将以前的“冲”掉。
  • Ras,Cas,We的时序:这个可以使用示波器观察是否跟波形一致,测试是否命令到达sdram芯片【难点四】
  • Addr:可以用示波器采最低位,这样就会是一个方波(作为验证地址是否到达sdram芯片的手段)
  • inout信号的控制,最好放在顶层进行处理

图Ⅰ 输出有错

接下来

跟着小编一起去攻破难点问题吧

难点一:Sdram的时钟问题

为了保证数据被时钟的上升沿采到,所以设计中使用了一个-150°的相移,示波器才采集到的时钟的确也没有问题。

(图1 黄色是pll产生的无相位偏移的时钟 蓝色是相位偏移-150°后结果)

难点二:仿真出错

当读写数据如果超过1024行,会有错误,这是因为在预充电的时候必须指定充电类型,如果A[10]为0,则需要在数据读写完成后加入一个预充电命令(关闭一行的作用);如果A[10]为1,则需要在数据读写完成后不予理会;

仿真在超过1024行出错(已解决)

难点三:上版调试

上板调试无结果这是因为inout信号最好在顶层进行处理,如果在内部处理,综合后可能会出错,反正我是入过“坑”了,搞了三天都没有数据读出。

上板调试的初始化时序

上板调试的刷新时序

上板调试的写时序

上板调试的写时序

难点四:控制信号的把握

We信号与时钟的关系

Ras与时钟的关系

Cas下降沿与时钟关系

Cas上升沿与时钟关系

因为sdram对于我们来说其实相当于是一个“黑盒子”,必须保证所有的操作都正确,才能读写。所以此处关键就是借助示波器来分析是否信号传送给sdram芯片,下面是一个几个信号的时序与时钟的相位关系。

原文发布于微信公众号 - 瓜大三哥(xiguazai_tortoise)

原文发表时间:2018-04-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张高兴的博客

为什么树莓派不会受到 Spectre 和 Meltdown 攻击

1682
来自专栏机器之心

处理器高危漏洞无人幸免?树莓派:我们不受影响

2495
来自专栏杨平安的专栏

微信 PaxosStore:海量数据冷热分级架构

导语 本文整理自笔者在“腾讯大讲堂”的演讲。 作者介绍:杨平安,来自广州的微信事业群,在腾讯已经工作五年。 主要分享内容: 为何公司卓越研发金奖花落PaxosS...

1.7K6
来自专栏SEO

「知识」你不知道的百度网页分块权重评估方法

2716
来自专栏Java架构师历程

推介5个Java异常检测工具

应用程序故障可能由于各种原因而发生,并且有一些工具可以解决每个可能的错误源,例如日志管理工具,错误跟踪器,性能监视解决方案等。实际上,我们已经研究这个颇有几分,...

7405
来自专栏ytkah

如何将北京时间批量转为Unix时间?用Excel!

  前面我们说过Unix时间戳转换怎样在Excel批量修改,有些人就想如果有特殊需求,那能不能批量将北京时间批量转成unix时间呢?能!用Excel就可以实现!...

54910
来自专栏张高兴的博客

为什么树莓派不会受到 Spectre 和 Meltdown 攻击

3427
来自专栏资深Tester

记线上bug分析

1833
来自专栏SeanCheney的专栏

《这就是搜索引擎》爬虫部分摘抄总结

首先从互联网页面中精心选择一部分网页,以这些网页的链接地址作为种子URL,将这些种子URL放入待抓取URL队列中,爬虫从待抓取URL队列依次读取,并将URL通过...

1194
来自专栏互联网杂技

开源巨献:Google最热门60款开源项目

0、机器学习系统 TensorFlow ★Star 62533 ? TensorFlow 是谷歌的第二代机器学习系统,按照谷歌所说,在某些基准测试中,Tenso...

7636

扫码关注云+社区