zoukankan      html  css  js  c++  java
  • 友晶Sdram_Control_4Port的全页操作Bug?

    以前在学校初学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的,友晶做了改动,删减了一些信号,贸然使用友晶的源码可能导致数据读写出错,除非你的板子和友晶的一模一样。要用友晶的必须根据需要把必要的信号、命令补完整。

  • 相关阅读:
    英语词汇——day 1
    英语词汇——day 2
    PHP的流程控制语句(上)
    思维导图——四级词汇1
    PHP语句块中使用date()函数时需注意wampserver的设置
    (转)Linux服务器调优
    (转)linux服务器安全配置攻略
    mysql 创建[序列],功能类似于oracle的序列
    计算服务器最大并发量http协议请求以webSphere服务器为例考虑线程池
    Spring中ApplicationContextAware接口的说明
  • 原文地址:https://www.cnblogs.com/edaplayer/p/3678897.html
Copyright © 2011-2022 走看看