zoukankan      html  css  js  c++  java
  • 转载: 友晶的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的,友晶做了改动,删减了一些信号,贸然使用友晶的源码可能导致数据读写出错,除非你的板子和友晶的一模一样。要用友晶的必须根据需要把必要的信号、命令补完整。

    写那些自己遇到的问题,然后解决的方式,不断吸取经验,坚持直到看见成功.
  • 相关阅读:
    OneThink学习笔记02----数据字典(即OneThink项目数据库里的表及其字段)
    php获取checkbox复选框的内容
    OneThink学习笔记01
    解决jQuery UI 对话框兼容性问题
    安装Visual Studio 2013 出现0x80070643错误
    科幻小说网1.0构思
    数据结构之二分查找(PHP)
    &nbsp;兼容性问题
    【转】Apache的Order Allow,Deny 详解
    adb错误解决
  • 原文地址:https://www.cnblogs.com/constanto/p/4424702.html
Copyright © 2011-2022 走看看