zoukankan      html  css  js  c++  java
  • ddr3调试经验分享(二)——KC705上的ddr3初始化不成功

      最近在玩KC705上的ddr3.开始信誓旦旦的说要自己写controller。

      于是开始读datasheet,在镁光的官网上弄了一个ddr3 的module的仿真模型,仿真读写有效的之后就屁颠屁颠的跑的群里问大家这个clock怎么匹配。然后才知道有PHY这个东西,不用PHY就玩ddr,秀逗了!

       下面的过程以及结论也许对于有些人也有些秀逗,但是对于我这个初玩ddr的人来说,它还真的卡了我一个星期了。

      先用MIG 玩通ddr3,再想着怎么玩MIG生成的PHY吧。

           一,按照XTP196上的步骤step by step 。文档上的vivado是2014版本,我的是2016稍微有点差异。感觉有差异就参考rdf0186-kc705-mig-c-2014-3这个官方例子中的top层进行修改。比如例子中当然没有说这LED灯的控制程序你需要copy一下这里的顶层。工程做完了,编译生成bit下载到板子,ddr初始化成功。

       二,自己按照XTP196上的MIG配置,再生成一个自己的project。然后用modelsim仿真一下发现ddr3初始化是成功的。自己加上一个简单的LED接口,并约束到管脚。生成bit后下板子 —— 初始化不成功

        2.1 对比example 中的xci与自己工程中的xci发现一模一样。

        2.2对比example中的top层和自己的top层,还是一模一样。

              初步认定是约束问题

            免费版的Diffuse 软件不支持xdc文件的对比,好吧,自己来。

        2.3 对比ddr的pin绑定管脚以及电平 ,还是一模一样。

            再对比剩下的部分,把example中的约束一点一点的删,每删除一次就重新生成bit下板子。最后终于发现了一个东西,打开它初始化就成功了,关闭它初始化就失败了。

            set_property DCI_CASCADE {32 34} [get_iobanks 33]。

      在UG586中对它是这么描述的

            

         是不是ddr的pin用到了bank33,32,34。所以需要这个约束呢?  还是因为我在MIG中把这个钩子选上了所以才需要的。

           没有具体去查,以后再补上吧

    欢迎加入: FPGA广东交流群:162664354

          FPGA开发者联盟: 485678884

  • 相关阅读:
    whoami
    w
    id
    su
    chpasswd
    chage
    password
    scrapy框架中Download Middleware用法
    scrapy框架持久化存储
    scrapy框架中Item Pipeline用法
  • 原文地址:https://www.cnblogs.com/sepeng/p/6668117.html
Copyright © 2011-2022 走看看