首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

自制板SRAM问题,求救。

自制板SRAM问题,求救。

小弟刚做了个板,可是原来在开发板上能跑的程序放在我自己的板上就下载失败,程序大约50多KB,但把程序减到40K内时下载和校验都成功了,可是运行好像有点不对,比如程序是运行了,但LCD没有显示东西。请问这是什么问题呀?是我板做的不好吗?郁闷好久了,也没找到问题。

以无法为有法,以无限为有限。
有没有遇过同样问题的忙我一下吧。
以无法为有法,以无限为有限。
两个板子的硬件相同吗?完全不能下载到你的新板子上吗?你说的把代码减小是下载到开发板上运行的不对还是你自己的板子上。
在交流中前进,共同实现nios的应用。

FPGA(EP1C6Q240)和SRAM(IS61LV25616)两个板子上是一样的,只是开发板上有一片SRAM,我的板子上有两片,我的两片都是有各自的连线,在FPGA中是两组tri_state_bridge。还有就是我的板子的布线粗(11mil)间距也小(10mil);开发板的布线间距拉的大,间距小的地方只占很少的比例;而我的基本上都是贴在一起走线的,我不知道会不会是分布电容的原因。

在开发板上程序一切正常,大小程序都好用;但在我的板子上就只能下载40K内的,再大一点,就会出现:
Downloaded 41KB in 1.3s (31.5KB/s)

Verifying 00080000 ( 0%)
Verify failed between address 0x80000 and 0x8A177
Leaving target processor paused
------------------------------------------------------------------------------------------
由于我的板子上有两片SRAM,且小程序好用,所以我写了个测试程序:

#include "system.h"
#include <stdio.h>
#include "io.h"

int main()
{
  unsigned char tdata;
  unsigned int i,offset;
  printf("Hello from Nios II!\n");
  for(i=0;i<=0x7ffff;i++)
  {
    tdata=0x0;
    offset=i*1;
    IOWR_8DIRECT(UNTITLED_0_BASE,offset,0x45);
    tdata=IORD_8DIRECT(UNTITLED_0_BASE,offset);
    if(tdata==0x45)
    {
      printf("%x :OK\n",i);
    }else
    {
      printf("%X :FALL! DATA: 0x%X\n",UNTITLED_0_BASE+offset,tdata);
      return -1;
    }
  }
  return 0;
}

把程序下到SRAM1中测试SRAM0,读写都是正确的,反之也一样,但我就是不知道下的程序一大为什么就校验出错。

以无法为有法,以无限为有限。

现在我把总线时钟降到25Mhz下载不出错了,程序也运行正常了,但在开始的50Mhz下就不行。而50M的设置在开发板上就行,这可能是我的板子布线问题??

以无法为有法,以无限为有限。
还是不太对劲,急死我了。
以无法为有法,以无限为有限。

看起来很像是你的板子布的有问题,但是一般来说10mil的线距和线宽已经足够了。

在交流中前进,共同实现nios的应用。

那要是线距不到10mil呢??

还有,SRAM或FLASH这些高速总线是不是最好从一个BANK上出,比如addr[17..10]在BANK1,addr[9..0]在Bank2,这样可以吗?不会有什么影响吧。

以无法为有法,以无限为有限。

还有,我用的是两层板,不是四层的。

以无法为有法,以无限为有限。

一般来说不用同一个bank,不会有什么问题的。你的fpga用的什么芯片,你的布线自己看看,觉得有问题不,一般布这种板子,很少用两层啊,大多用四层的。

在交流中前进,共同实现nios的应用。
返回列表