Mark Lewis' BLOG

导航

【原创】NIOS Error: Illegal name "***" -- pin name already exists

想对现成的一个NIOS TFT工程结合我手上液晶屏的具体情况进行修改,删除了NIOS软核中的1个我用不上的8位 PIO组件,编译完事并对各个引脚名称进行了更改。通过"Assignments -> Remove Assignments... -> Pin, Location & Routing Assignments”删除原来的引脚锁定并通过"Assignments -> Import Assignments..."导入了新的引脚锁定。哪知道一编译,出了错:

Error: Illegal name "*****" -- pin name already exists

Error: Pin "*****" overlaps another pin, block, or symbol

Error: Can't elaborate top-level user hierarchy

如下图所示:

引脚名称真的存在重复使得报错么?仔细检查过引脚命名与锁定,绝对没有!

百度谷歌了下,没找着解决办法,但是比较认同 http://www.alteraforum.com/forum/showthread.php?t=1072 这个网址中pugmedia这位哥们的说法——即,初步认定,这是Quartus Ⅱ 10.1的BUG,我用的是10.1版本,别的版本会不会出现这个Bug我没有测试过。

怎么办呢?

重建工程?太费时费力了吧……

幸好,试了试很快找着了解决办法:

1)把出错的引脚全部选定,delete掉,注意必须包括引脚与FPGA之间的连线也都要删除掉。

2)在NIOS CPU软核上右键,Generate Pins for Symbol Ports 自动生成引脚。如果你连线没删除掉,Generate Pins for Symbol Ports是灰色的不能用,如下图所示。

3)为自动生成的引脚更名、锁定。

这样重新编译了下,恩,没有Error了~ 正在得意中~~ 忽然发现——咦?有不少"Warning"也就算了,怎么有个"Critical Warning"?

说是有14个引脚没有实际的引脚锁定?打开"Assignments -> Pin Planner",还真有……

怎么回事呢?——发现我的引脚锁定文件里引脚名称是大写,而原理图中是小写...呃..改成一致~

再编译~ 总算OK了~

——不过... 还不能得意太早。。

而后建立起软件工程,在"run as Hardware"的时候,Console窗口中又出现了这样的错误:

Verifying 000xxxxx ( 0%)
Verify failed between address 0800000 and 080FFFF
Leaving target processor paused

首先对照了下SOPC中的地址,出错器件又是SDRAM... 改了下相移,没用,再检查一遍,没发现哪有错误...

只好又一次Google了下,感谢这篇博文:http://www.cnblogs.com/hclmcu/archive/2010/07/12/1775855.html

他说道.bdf文件中的symbol在运用“Generat Pins for Symbol Ports”自动生成引脚的时候,生成的引脚表面上是与symbol连接在一起的,可实际上没有,只要手动把Ports 与Pins连一下,问题便可以解决了。

笔记下来,供后人参考~

posted on 2011-05-04 11:06  Mark Lewis  阅读(6856)  评论(4编辑  收藏  举报