当前位置:首页 >> 技术频道 >> PCB技术

调试FPGA电路板总结

来源:与非网 作者:佚名 发布时间:2009-06-24 09:50:27 发表评论

摘要:调试FPGA电路板总结

关键词:FPGA电路板

  在nios里下载软件程序时,出现

  Using cable "USB-Blaster [USB-0]", device 1, instance 0x00

  Pausing target processor: not responding.

  Resetting and trying again: FAILED

  Leaving target processor paused

  这个错误在可编程部分的原因大多是引脚分配错误。网上有人说要在quartus将没有用到的FPGA的引脚设为“input tri-state”,但是我并没有发现这是必须的,可能只是一些特定地器件需要这样设置。

  经过这次调试,感觉自己增长了不少调试经验,虽然之前调试过51板子,但是画那块板子时,参考电路有很多,所以调试起来比较顺利,没出太多问题。这次就不同了,问题出了一大堆,真有点不知所措。总结一下调试有主控芯片的电路,首先要保证电源没有问题,不仅是电源模块地输出没有问题,还有芯片地电源不能接错,因为电源一错,所以一切都要玩儿完,就像我们这次就因为电源的问题烧了几百块钱的芯片。在电源没有问题的情况下,就要看看主控芯片的晶振有没有问题,很多问题都是晶振引起的,我之前调试51板子的时候也是因为用了一个已经坏掉的晶振导致不能下载程序。遇到硬件方面的问题时需要一点一点地排查,在确定前面的模块是正确的情况下再进行后面的部分。

  关于FPGA的调试,我想要分为以下几步,首先要保证FPGA芯片的几个电源是正确的,然后先用一个最简单地用硬件描述语言写的小程序测试FPGA芯片是否能够正常下载并工作正常。然后用nios建立软件工程并把程序放在onchip-memory上下载。接下来再继续调试外围的电路。

  在nios里把程序放到onchip-memory上进行编译时,很多时候都会遇到错误,提示onchip-memory的空间不足。这是因为程序是用main作为主函数,这样的话nios会在程序进入main函数前进行一些系统的初始化工作,这做占用不少的空间。要在onchip-memory上跑程序,最好是采用alt_main作为主函数,例如采用下面的程序:

  #include

  #include

  #include

  #include

  #include "system.h"

  #include "sys/alt_sys_init.h"

  #include "sys/alt_irq.h"

  #include "priv/alt_file.h"

  #include "altera_avalon_pio_regs.h"

  int main (void) __attribute__ ((weak, alias ("alt_main")));

  int alt_main(void)

  {

  alt_irq_init (ALT_IRQ_BASE);

  alt_sys_init();

  alt_io_redirect (ALT_STDOUT, ALT_STDIN, ALT_STDERR);

  while(1)

  {

  IOWR(TEST_PIO_BASE,0,1);

  usleep(1000);

  IOWR(TEST_PIO_BASE,0,0);

  usleep(1000);

  }

  return 0;

  }

0
顶一下
0
踩一下

相关文章

发表评论

请自觉遵守互联网相关政策法规,作者管理后台可以删除恶意评论、广告和违禁词语。