EDA/IC设计
以下是网上找到的一些关于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(undernios2eds\bin\nios2-gnutools\H-i686-pc-cygwin\libexec\gcc\nios2-elf\3.4.6)
8. Nios2-elf-g++.exe (under nios2eds\bin\nios2-gnutools\ H-i686-pc-cygwin\bin)
在英文网上查到的,这几个不同的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:\altera\81\nios2eds\bin\nios2-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”,但是我并没有发现这是必 须的,可能只是一些特定地器件需要这样设置。
全部0条评论
快来发表一下你的评论吧 !