zoukankan      html  css  js  c++  java
  • DDR系列之结语-DDR问题总结及DDR时序问题解决方法

    DDR系列从开篇到现在已陆陆续续快4个月的时间了,终于到了要和大家说再见的时候啦,要不然我们自己也快审美疲劳了,在此又要开始感谢各位高速先生的粉丝们不厌其烦的关注我们,在此省略若干字……(再次表示感谢)。

    记得有人曾经问我:“你们在高速先生文章里毫无保留的把一些技术细节写出来,就不怕大家学会了不找你们做了吗?”我只能回答“呵呵!”我们本来就是一个技术平台,分享技术干货本就是我们的初衷,希望我们的分享能提升大家在平时工作中对一些问题有一个更全面的认识,这就是我们在做的事情,当然也就不怕大家学会了。在今天的DDR系列结语中我又想到了一个类似的问题:“大家看了我们的文章就一定能做到DDR系统不出问题了吗?”我看也未必,就算我们自己内部的人去设计也很难保证万无一失。懂得做和做出来成功的实现其实是两码事。

    我们的文章只能帮助大家提升自己对一些问题的认识,开阔大家的知识范围,知识积累的越多,在一定程度上就越有助于提升大家的成功率,另一方面也就是尽可能降低出错的风险。那么针对DDR系统,应该如何保证系统的一次成功率呢?这个是大家最关心的问题吧。

    个人认为DDR问题归根到底需要从3大方面去看:硬件、软件和时序。硬件就包括原理以及器件、加工等,软件包括系统配置文件、启动文件等,在此不是我们今天要讨论的,在此忽略。剩下来的就是时序,也就是和信号本身相关较大的问题,这个和我们平时的设计密不可分,我们的DDR设计其实就是在围绕着时序来进行的。

    很多人曾经咨询过他们的DDR系统启动不了该怎么解决,在我们查完板觉得PCB设计上没有太大问题的时候其实我们也无能为力,系统的启动和软硬件有很大的关系,这种问题我们很多时候基本上只能建议检查下软硬件原理,贴片导通性等,这种问题的解决叫瞎子摸大象,不是太靠谱。

    当有人说他们的DDR系统不能运行到额定速率,本来是按照800MHz的频率来设计的,但最终只能实现600MHz的时钟频率,听到这个,我想我们还是多少有办法可以解决的,因为这个最终的问题是时序上不去,通常可以从信号完整性的角度来解决,这种问题的解决叫解铃还须系铃人,对症下药。
    我们曾经写过一篇文章,就是关于DDR3系统不能运行到额定功率的文章,有兴趣的朋友可以在这看:http://www.edadoc.com/cn/TechnicalArticle/Show.aspx?id=660


    其实在前面的文章里我们在多个场合已经说过影响时序的各种因素,这里不妨再来温故下,列出了下面的主要几点:
    一、信号本身的质量影响。
    二、串扰、ISI的影响。
    三、电源、电源噪声、SSN的影响。
    四、等长的影响,包括pin delay,等长不等时的影响。

    这也是为什么我们在前面说过很多时候我们只需要通过检查PCB再简单的仿真下信号质量就能知道DDR系统时序的一个大致好坏情况。

  • 相关阅读:
    “epoll errno (EINTR)4” —— epoll遭遇EINTR(Interrupted system call)
    linux普通用户无法登录mysql,管理员用户却不用密码就能登录
    三小时快速入门Python第五篇--异常处理与迭代器
    三小时快速入门Python第四篇--函数与对象
    三小时快速入门Python第三篇--控制流分支与循环
    三小时快速入门Python第二篇--变量与集合
    三小时快速入门Python第一篇--原始数据类型与操作
    Go语言学习笔记十八-练习篇-Go语言版学生信息管理系统
    Go语言学习笔记十七--Go语言面向对象struct的基本使用
    Go语言学习笔记十六-Go语言init函数
  • 原文地址:https://www.cnblogs.com/edadoc/p/7339592.html
Copyright © 2011-2022 走看看