概述
以下是网上找到的一些关于FPGA的EDA工具常见报错分析:
- 在用verilog编程时出现错误:“Can't resolve multiple constant drivers for net ....”说明同一信号不能在不同 的进程中赋值,这是代码可综合方面的要求。
- 在用verilog编写代码的时候出现错误提示:“mixed single- and double-edge expressions are not supported”:在敏感驱动信号中,不能既有单边沿的驱动又有双边沿的驱动,如always@(posedge Clk50Mhz or negedge RstN or StartFlag),即只能同意用一种,不能混合。
- 当编译出现如下错误时: Error: Clock input port inclk[0] of PLL "PLL:inst1|altpll:altpll_component|pll" must be driven by a non-inverted input clock pin.是因为pll的输入需要直接和时钟相连接,在顶层文件中连接.看看是否相连了,或者说是名称的大小写是否写对了.
- 在编译niosii时出现如下两个错误,同时出现的:
/cygdrive/c/altera/90/nios2eds/components/altera_hal/build/system_rules.mk /components/altera_hal/build/gnu_rules.mk: No such file or directory hello_world line 120 1300086018362 2
已经如下错误:make[1]:/cygdrive/c/altera/90/nios2eds/components/altera_hal/build/common.mk fork: Resource temporarily unavailable
因为在win7下的权限问题.具体解决方法参考的网上的:
Under your Quartus II folder, go to bin->cygwin->bin folder, select the following files in the list below and then right-click and choose Properties. Under the Compatibility tab, check “Run this program in compatibility mode for:” and choose “Windows XP (Service Pack 2)”. Check “Run this program as an administrator”, as well.
Here is the list of files that you can select to change their compatibility mode under the Quartus II->bin->cygwin->bin folder:
1. Make.exe
2. Sh.exe
3. Echo.exe
4. Cygstart.exe
5. MakeInfo.exe
6. Perl.exe
7.Collect2.exe(undernios2edsbinnios2-gnutoolsH-i686-pc-cygwinlibexecgccnios2-elf3.4.6)
8. Nios2-elf-g++.exe (under nios2edsbinnios2-gnutools H-i686-pc-cygwinbin)
在英文网上查到的,这几个不同的exe文件在不同的bin文件夹之间,依次右击改掉属性,把允许管理员使用权限前面打上勾即可.
5.如果run Niosii时经常出现到2%后N久也不动,也不报错,甚至进度条也在滚,当然没有前进了。这时随便你等多久,他就呆在那里,很烦。后面发现是杀毒软件的作用,我只有用360安全卫士,而是关掉了它15分钟,在此期间,run就ok了,估计其他的杀毒软件更猛,所以大家在run的时候最好关上杀毒软件。
6.如果出现错误提示:There are no Nios II CPUs with debug modules available which match the values specified. Please check that your PLD is correctly configured, downloading a new SOF file if necessary.
则在nios IDE下,tools->Flash Programmer 选项中的下图打勾即可(条形框要下拉)。
7.在编译niosii时如果出现了报错make: *** [system_description/../obj/system.h-t] Error 1。网上的一些解法:1.如果系统跑了uc/os系统,则必须加入timer,如果没有跑系统可以不加,但是我没有跑系统,并且我加了个timer试了下也不行。2.还有一种说法是右击工程名在属性栏中把ram选项改为on-chip momery,但是我不知道他说的哪个,反正没有找到这个选项的地方。3.有人说是软件或者操作系统问题,建议重装软件或系统,可是今天还能用,估计不是,重启了下软件,未果。4.后面的google中搜了下,网上人说在构建niosiicpu时,把设置页面的MPU(内存保护单元)去掉即可。终于解决掉了这个可恶的问题。
8. 关于Nios II中Verify failed between address 0xxxx and 0xxxx错误的解决,错误一般的提示为:Verifying 000xxxxx ( 0%)% C; Q0 H2 R J7 W* Z9 O R* r
Verify failed between address 0xxxxxx and 0xxxxxx( O" ^0 u; e9 E: E7 X
Leaving target processor paused
网上的人总结的解决方法如下:1. 首先要根据address后面的两个地址判断出错的到底是什么器件。一般情况出现错误的大多是存储器。
l1 _5 y: {+ r& Q2 e! }- G 判断的方法是根据sopc中的地址,或者是system.h中的地址,查找相应出错的器件。9 v$ ~- X5 h( r# T4 f" I$ D3 T
c0 `, z; n6 V2. 检查硬件焊接是否正常。- O( Z" V/ W4 h! L
很多时候有些问题是硬件焊接造成的,这个主要针对的是自己焊接的板子,一旦地址数据总线有任何焊接问题,都会出现verify failed错误。 N. B/ E# m1 b& ?5 N4 B5 W* B
) q- d$ E0 t: r& M8 A! o& K3. 检查sopc中的componet是否正常。
( }& i, H) L. E 如果是自己加入的接口逻辑,这个部分要确认其正常与否。' a# |, E9 U1 [& P3 z
$ F- x7 t' u) L! Z( w4. 检查Quartus中的设计:
- H$ O& j; |5 e$ Q+ ? _* M 检查引脚锁定是否正确,必须一一对应,不能有一个错误;
! k1 `% e6 [* b/ [' @6 P$ s( q& {% R 地址对齐问题:针对8、16、32位的外部存储器,对应地址最低位的应该是0、1、2。也就是说如果用16位的外部存储器,那么它的最低位是ADD[1],而ADD[0]是不用的,其他同理。
2 i1 `& b2 w. k8 v8 i, E 数据总线必须是双向IO口,这点很容易忽略。
* c$ G% $ G% {* }) W- i 如果是SDRAM,需要计算并设定PLL的相移。
9 q+ O( F! H+ 5. Nios IDE中检查项目设计是否正确。
6. 就是.bdf文件中的symbol在运用“Generat Pins for Symbol Ports”自动生成引脚的时候,生成的引脚表面上是与symbol连接在一起的,可实际上没有,只要手动把Ports 与Pins连一下,问题便可以解决了
而我碰到的就是Sdram的问题,因为我的sdram忘了接clk时钟脚了,那时候用的niosii核,核外是没有与sdram的clk连接的引脚的,因为它的时钟不是cpu产生,是由外部或者pll产生。
9.在用quartusII编译时,包含了sopc系统,出现如下错误:
Error: Can't name logic function TftTest of instance "TftTest" -- function has same name as current design file,未解决!
10.在 nios 里下载软件程序时,会出现 assertion "m_state == STATE_DEBUG" failed: file
"nios2oci.cpp", line 157 Using cable
"USB-Blaster [USB-0]", device 1, instance 0x00 Pausing target processor: not
responding. Resetting and trying again: D:altera81nios2edsbinnios2-download: line 594: 6300 Hangup
nios2-gdb-server --instance 0 --tcpport none --wri te-pid
./Debug/nios2-download.pid ./Debug/GigaCard.elf.srec
这个问题在我调试的过程中偶尔会出现,而且是没有规律的,也正是这个问 题,总是阻碍着我们前进的脚步,后来我们发现一个程序本来是可以下到 onchi
p-memory 中的,后来同样的程序无论如何都下不进去了,于是我们基本可以确 定问题出在了硬件。对于有控制器的系统,晶振肯定是非常重要的,于是我们测
晶振的输出是不是正常的,结果是有时正常有时不正常,这说明晶振虚焊了,经 过我们小宝同学精心补焊,上面那个问题就再也没有出现过了。 在 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 这个错误在可编程部分的原因大多是引脚分配错误。网上有人说要在 quart us 将没有用到的 FPGA
的引脚设为“input tri-state”,但是我并没有发现这是必 须的,可能只是一些特定地器件需要这样设置。
这两天新装了Quartus II 11.1和Nios II 11.1,安装成功后尝试着跑了一下Altera的一个例程,硬件部分没有问题,只是在SOPC中提示版本不同,原本代码是9.1版本的,现在用11.1版本的软件来跑,所以要将所有的硬件、软件重新跑一遍。到了Nios II部分后,问题出现了。编译到一半的时候老是会出现*.exe: *** fatal error - couldn't allocate heap, Win32 error之类的错误,后来在网上搜了一下,得知是兼容性问题。下面是网上搜到的相关资料,提供的方法有几个,但我只尝试了一个,就是更改Cygwin 程序分配的内存,操作如下:在开始菜单中打开cmd命令,输入“d: 回车”,转到软件的安装目录所在的硬盘下,再输入“cd D:altera11.1quartusbincygwinbin 回车”,来到regtool.exe所在的目录。然后“regtool -i set /HKLM/Software/Cygnus Solutions/Cygwin/heap_chunk_in_mb 1024 回车”,“regtool -v list /HKLM/Software/Cygnus Solutions/Cygwin 回车”。关闭cmd。回到Nios II重新编译,这次没有error了!!!
下文转自:http://blog.sina.com.cn/s/blog_86a00bb90100ykaf.html
我的quartus nios版本均为9.1SP1,这几日NIOS II 编译时会出现以下类似错误让我疼痛了好久,比如:
4 [main] ? (6340) d:altera91nios2edsbinnios2-gnutoolsH-i686-pc-cygwinbinnios2-elf-gcc.exe: *** fatal error - couldn't allocate heap, Win32 error 487, base 0x660000, top 0x680000, reserve_size 126976, allocsize 131072, page_const 4096 4 [main] nios2-elf-gcc 4328 fork: child -1 - died waiting for longjmp before initialization, retry 0, exit code 0x100, errno 11
make -s all includes 3 [main] ? (3732) c:altera91quartusbincygwinbinmake.exe: ***fatalerror- couldn'tallocateheap, Win32error487, base 0x9E0000, top 0xB30000, reserve_size 1372160, allocsize 1376256, page_const 4096 2 [main] make 7588 fork: child -1 - died waiting for longjmp before initialization, retry 0, exit code 0x100, errno 11 make: vfork: Resource temporarily unavailable
make -s all includes 3 [main] ? (4980) c:altera91quartusbincygwinbinmake.exe: ***fatalerror- couldn'tallocateheap, Win32error487, base 0x970000, top 0xA40000, reserve_size 847872, allocsize 851968, page_const 4096 2 [main] make 1972 fork: child -1 - died waiting for longjmp before initialization, retry 0, exit code 0x100, errno 11 make[1]: /cygdrive/c/altera/91/nios2eds/components/altera_hal/build/common.mk:54: fork: Resource temporarily unavailable Build completed in 40.947 seconds
网上大致有两种方案,这里给出连接,大家可以根据自己的实际情况使用。
1、 http://blog.sina.com.cn/s/blog_49ad960501000aqk.html(见下面附录1)
那么就将相应的修改目录下的make.exe的兼容性,改为windowsSP2或者windowsSP3
再比如 d:altera91nios2edsbinnios2-gnutoolsH-i686-pc-cygwinbinnios2-elf-gcc.exe: *** fatal error - couldn't allocate heap
则将目录下的nios2-elf-gcc.exe的兼容性,改为windowsSP2或者windowsSP3。
这样我最终解决了自己的问题,并且屡试不爽。
附录1:
附录2:
(转)Nios ii 中奇怪的报错(系统兼容性相关)
关键之处是把相应的编译软件改为与XP SP3或SP2的兼容模式,以管理员的模式运行即可
I am sharing my personal experience here. I have been using Quartus II 9.1 and NIOS II IDE 9.1 on Windows 7 since they were released. Now, I am using Quartus II 9.1 SP2 and NIOS II IDE 9.1 SP2.
Some says it is related to the Norton Antivirus software. Yes, my PC is installed with Norton Antivirus software. But I observed that it happened to Windows 7 PC which is not installed with Norton Antivirus software, as well. Turning off the Norton Antivirus software does slightly help to increase the probability that the project is successfully built, from 20% to about 40%.
By doing the steps mentioned above, the success rate of building a project in NIOS II IDE 9.1
最后
以上就是老迟到水池为你收集整理的FPGA的EDA工具常见报错分析8. 关于Nios II中Verify failed between address 0xxxx and 0xxxx错误的解决,错误一般的提示为:Verifying 000xxxxx ( 0%)% C; Q0 H2 R J7 W* Z9 O R* r Verify failed between address 0xxxxxx and 0xxxxxx( O" ^0 u; e9 E: E7 X Leaving target processor paused网上的人的全部内容,希望文章能够帮你解决FPGA的EDA工具常见报错分析8. 关于Nios II中Verify failed between address 0xxxx and 0xxxx错误的解决,错误一般的提示为:Verifying 000xxxxx ( 0%)% C; Q0 H2 R J7 W* Z9 O R* r Verify failed between address 0xxxxxx and 0xxxxxx( O" ^0 u; e9 E: E7 X Leaving target processor paused网上的人所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复