原创 初次使用Nios 系统莫名其妙的问题

2012-12-5 00:14 2513 9 9 分类: FPGA/CPLD

初次在产品中使用nios,除了很多离奇的问题,在系统中有个system_id,可是很多次编译后在nios中识别不到这个id号,只能在sopc中多generate几次。一般3次之内基本能识别。可是家里的电脑,i7的cpu,win7系统,又一次跑了5次都不成功,在单位就能成功。这个问题不知怎么解决。

还有一个问题,感觉nios中怎么那么奇怪,例化了一个双口ram,作为nios向逻辑单向传输32个数据的通道,只要用和双口ram有关的信号,nios就出错,跑的程序就莫名其妙的乱了。

未命名.jpg

 

我的程序如下,函数还没有调用,程序就跑错了,主函数中没有调用这个程序。
void Wr_USB_Ram(void)
{
CPU_USB_RAM_WREN_H;

IOWR_ALTERA_AVALON_PIO_DATA(CPU_USB_RAM_ADDR_BASE, 0);
IOWR_ALTERA_AVALON_PIO_DATA(CPU_USB_RAM_DATA_BASE, 0x12345678);
CPU_USB_RAM_CLK_L;
CPU_USB_RAM_CLK_H;


如果把这几句屏蔽掉,就可以运行。我的环境是quartus 11.1(64bit),曾经怀疑过系统有bug,后来想想,是不是因为数据宽度太大了,于是将其改成16位的,果然程序成功运行了。

还有一次,程序跑飞,最后的原因竟然是,有一个顶层HDL中测试输出的管脚没有分配管脚,不明白这根程序跑飞有什么关系。

总之,对nios还有很多不明白的东西,很多地方都会影响系统的运行。如何搭建一个可靠、稳定的系统,还有一段路要走。

文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /2 下一条