• 转载: 友晶的4口SDRAM使用技巧


    转-友晶Sdram_Control_4Port的全页操作Bug?

    http://www.cnblogs.com/edaplayer/p/3678897.html

    以前在学校初学fpga的时候碰到sdram就搞不定了,现在突然发现网上有好多现成的代码,友晶的,altera有个Mobile_DRAM_Altera_MAX_II_CPLD_Design_Example版本的,呵呵,拿来主义确实不错,以后有机会再自己试着写写。

    但是在用Sdram_Control_4Port的时候发现,全页写的时候图像数据出错,刷屏位置与预期有很大出入,而且只有vga横条显示是正常的,竖条和分形图都完全变形,看起来肯定不是同一个mom生的。问题到底出在哪里,我试着画半条单线看看,发现居然超出了屏幕一半的位置,这明显不科学。 抓波形看了,发送数据进fifo是正常的,那看来是sdram存储或输出数据出问题了,把sdram代码全部研究了一遍,依然无果,最终百度 sdram 页写,看到特权提到,sdram页读写要通过发送突发停止命令来结束操作,否则读写会从当前操作地址继续循环读写!Oh,mygod。最后查看关键的代码,发现突发停止命令根本永远不会发送给sdram,就是下面的代码,在command.v文件中。

    else if ((do_precharge==1) & ((oe1 == 1) | (rw_flag == 1))) begin 
    // burst terminate if write is active //CMD = 110 突发停止
    RAS_N <= 1;
    CAS_N <= 1;
    WE_N <= 0;

    看这个过程块的执行条件,(do_precharge==1) & ((oe1 == 1) | (rw_flag == 1)),我怎么找不出什么时候这个条件成立。。。

    于是我把do_precharge==1改成 PMSTOP == 1,呵呵,问题解决。

    实际上这个sdram controller原始代码是nwlogic的,友晶做了改动,删减了一些信号,贸然使用友晶的源码可能导致数据读写出错,除非你的板子和友晶的一模一样。要用友晶的必须根据需要把必要的信号、命令补完整。

    写那些自己遇到的问题,然后解决的方式,不断吸取经验,坚持直到看见成功.
  • 相关阅读:
    快速排序 C语言实现
    怎样认识女孩?
    看了你就想结婚!)
    C语言面试题大汇总
    VC6.0下载地址
    STL vector 容器介绍
    Beauty of Maths! Amazing!
    自我参考:Java学习的30个目标
    Beauty of Maths! Amazing!
    采用 Java 持久化框架:选择、时机和优缺点?
  • 原文地址:https://www.cnblogs.com/constanto/p/4424702.html
Copyright © 2020-2023  润新知