小弟刚做了个板,可是原来在开发板上能跑的程序放在我自己的板上就下载失败,程序大约50多KB,但把程序减到40K内时下载和校验都成功了,可是运行好像有点不对,比如程序是运行了,但LCD没有显示东西。请问这是什么问题呀?是我板做的不好吗?郁闷好久了,也没找到问题。
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的线距和线宽已经足够了。
那要是线距不到10mil呢??
还有,SRAM或FLASH这些高速总线是不是最好从一个BANK上出,比如addr[17..10]在BANK1,addr[9..0]在Bank2,这样可以吗?不会有什么影响吧。
还有,我用的是两层板,不是四层的。
一般来说不用同一个bank,不会有什么问题的。你的fpga用的什么芯片,你的布线自己看看,觉得有问题不,一般布这种板子,很少用两层啊,大多用四层的。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |