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

  • 相关阅读:
    C语言 realloc为什么要有返回值,realloc返回值具体解释/(解决随意长度字符串输入问题)。
    opencv中的vs框架中的Blob Tracking Tests的中文注释。
    Java实现 蓝桥杯VIP 算法提高 棋盘多项式
    Java实现 蓝桥杯VIP 算法提高 棋盘多项式
    Java实现 蓝桥杯VIP 算法提高 棋盘多项式
    Java实现 蓝桥杯VIP 算法提高 棋盘多项式
    Java实现 蓝桥杯VIP 算法提高 分苹果
    Java实现 蓝桥杯VIP 算法提高 分苹果
    Java实现 蓝桥杯VIP 算法提高 分苹果
    Java实现 蓝桥杯VIP 算法提高 分苹果
  • 原文地址:https://www.cnblogs.com/sepeng/p/6668117.html
Copyright © 2011-2022 走看看