前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Quartus II和Nios II使用时遇到的错误及解决方法总结

Quartus II和Nios II使用时遇到的错误及解决方法总结

作者头像
FPGA开源工作室
发布2019-10-29 18:09:04
3.6K0
发布2019-10-29 18:09:04
举报
文章被收录于专栏:FPGA开源工作室FPGA开源工作室

问题1:

代码语言:javascript
复制
nios烧写报错error code 8 base=0x211000 --epcs --sidp=0x212AA0 --id=0x0 --accept-bad-sysid --device=1

代码太大,超出了代码空间的大小。

问题2:

代码语言:javascript
复制
nios 调试时出现FAILED downloading ELFfailed ,Nios调试的时候出现downloadingELFprocess failed但是 烧写 正常;并且在调试的过程中提示出错位置 Verify failed between address 0x11000 and 0x1101F
Leaving target processor paused

发现提示错误的器件是epcs,其实epcs是没有问题的。通过修改bsp的配置即可,Bsp右击-nios ii –bspeditor 取消选中所有选项即可。

问题3:

代码语言:javascript
复制
qsys加入epcs后的waring问题
Warning (12251): Kernel: "No matching role found for EPCS:epcs_control_port:endofpacket (endofpacket)"
Warning (12251): Kernel: "No matching role found for EPCS:epcs_control_port:dataavailable (dataavailable)"
Warning (12251): Kernel: "No matching role found for EPCS:epcs_control_port:readyfordata (readyfordata)"

因为同时出现了nios中烧写flash时候报epcs错误。后发现是代码太大超出了限制。精简代码后,quartus 编译不再报错。

问题4:

代码语言:javascript
复制
Quartus iiError (170040): Can't place all RAM cells in design Error: Peakvirtual memory: 882 megabytes

原因 ram资源不够。

问题5:

代码语言:javascript
复制
Description  Resource  Path Location Type undefined reference to `__alt_invalid'    alt_sys_init.c problem.

nios中偶尔出现了这个错误,后发现dsp文件的配置有错误,在dsp文件右击,选择niosii—dsp editor,打开的dsp edit偶尔选项卡中,在前面三项都选择jtag_uart再次编译工程,不会报错。打开APP工程内的Makefile,寻找C_SRCS关键字,没有的话自己手动加入。然后在后面添加错误的文件C_SRCS += src/debug/debug.c。

问题6 :

代码语言:javascript
复制
Quartus II Error (12153): Can't elaborate top-leveluser hierarchy

Quartus II不能精细的顶级用户层次结构实体名字与你的工程名不一致。

问题7:

代码语言:javascript
复制
Description  Resource Path Location Type address 0x17fa0 of RGLVPulseSoftware.elfsection `.rwdata' is not within region `onchip_memory2' RGLVPulseSoftware    C/C++ Problem address 0x19e84 of RGLVPulseSoftware.elfsection `.onchip_memory2' is not within region  onchip_memory2'C/C++ Problem

也是片上ram空间不够引起的。

问题8:

代码语言:javascript
复制
nios ii SEVERE System ID mismatch -connected 0x1001703a, expected 0x0.

原因一:

nios ide/sdk使用的sopcinfo或者ptf文件和你对fpga配置的文件不是同一个工程建立的。 原因二:

system id不正确。在qsys中删除systemid组件并重新添加,然后generate 解决。

问题9:

代码语言:javascript
复制
Error (176310): Can't place multiple pinsassigned to pin location Pin_6 (IOPAD_X0_Y22_N21)
       Info(176311): Pin o_epcs_sdo is assigned to pin location Pin_6 (IOPAD_X0_Y22_N21)
       Info(176311): Pin ~ALTERA_ASDO_DATA1~ is assigned to pin location Pin_6(IOPAD_X0_Y22_N21)

原因是不能分配给多功能管脚Pin_K22 。这是由于Pin_K22 是一个多功能管脚,还有一个功能是nCEO,也是默认的功能。如果要用它当普通IO,需要提前设置一下:

assignments>device>deviceand pin options>dual-purpose pins里面把nCEO设置成use as regular i/o就可以了。

问题10:

代码语言:javascript
复制
Error: Can't place 108 pins with 2.5 V I/Ostandard because Fitter has only 81 such free pins available for generalpurpose I/O placement.

为了避免以上情况的出现,常常使用Virtual Pin对非IO引脚的信号进行约束,经过约束的信号,综合布线器将不对其分配IO资源。 具体方法如下: 在Quartus II中Assignments->AssignmentEditor,在Category栏选择logicoptions,到列表中To列下添加要设置的引脚接口,将AssignmentName设置为Virtual Pin,将Value设置为On,Enabled 设置为Yes,如果需要设置的很多,可以通过在Pin Planner中将引脚复制过来。   这样设置为Virtual Pin 就不会占用FPGA的IO资源,而且时序仿真不会增加额外的延时,更加准确。

问题11:

用quartus设计框图时出现错误,错误信息如下:

代码语言:javascript
复制
  Error: Can't place 117 pins with LVTTLI/O standard because Fitter has only 85 such free pins available for generalpurpose I/O placement
  Error: Can't place pins due to device constraints
  Error: Can't fit design in device
  Error: Quartus II Fitter wasunsuccessful. 3 errors, 0 warnings
  Error: Quartus II Full Compilation wasunsuccessful. 3 errors, 0 warnings

解决方法: 在你开发的时候,你在给芯片指定管脚的时候, 可能因为某些原因删除了一些管脚, 而你在ALL PIN列表中却没有删除,当你继续分配的时候,虽然你实际用到的管脚不到85,但是你曾经分配的管脚已经有117个了。所以解决方法很简单,就是在ALLPIN列表中删除未用管脚。

问题12:

代码语言:javascript
复制
Error: Can't place 98 pins with 3.3-VLVTTL I/O standard because Fitter has only 80 such free pins available forgeneral purpose I/O placement。

提示信息表明错误:不能够放置98个3.3LVTTL I?O标准电平引脚,因为Fitter只能有80个空余的引脚用来作为GPIO。请检查你的工程管理的器件,不能满足你的应用,得更换更多引脚或更高性能的芯片。

问题13:

代码语言:javascript
复制
quartus的Error Can't place multiple pins assigned to pin locatio
Error (176310): Can't place multiple pins assigned to pin location Pin_6 (IOPAD_X0_Y22_N21)
Info (176311): Pin o_epcs_sdo is assigned to pin location Pin_6 (IOPAD_X0_Y22_N21)
Info (176311): Pin ~ALTERA_ASDO_DATA1~ is assigned to pin location Pin_6 (IOPAD_X0_Y22_N21)

原因是不能分配给多功能管脚Pin_K22 。这是由于Pin_K22 是一个多功能管脚,还有一个功能是nCEO,也是默认的功能。如果要用它当普通IO,需要提前设置一下:

assignments>device>device and pin options>dual-purpose pins里面把nCEO设置成use as regular i/o就可以了。

问题14:

代码语言:javascript
复制
nios ii SEVERE System ID mismatch - connected 0x1001703a, expected 0x0.

原因一: nios ide/sdk使用的sopcinfo或者ptf文件和你对fpga配置的文件不是同一个工程建立的。 原因二: system id不正确。在qsys中删除systemid组件并重新添加,然后generate 解决。

问题15:

代码语言:javascript
复制
nios 中出现undefined reference to `__alt_invalid'alt_sys_init.c CC++ Problem
nios中偶尔出现了这个错误,后发现dsp文件的配置有错误,

在dsp文件右击,选择nios ii—dsp editor 打开的dsp edit偶尔选项卡中,在前面三项都选择jtag_uart再次编译工程,不会报错。

问题16:

代码语言:javascript
复制
Verifying 000xxxxx ( 0%) Verify failed between address 0xxxxxx and 0xxxxxx Leaving target  processor
  1. 首先要根据address后面的两个地址判断出错的到底是什么器件。一般情况出现错误的大多是存储器。判断的方法是根据sopc中的地址,或者是system.h中的地址,查找相应出错的器件。
  2. 检查硬件焊接是否正常。很多时候有些问题是硬件焊接造成的,这个主要针对的是自己焊接的板子,一旦地址数据总线有任何焊接问题,都会出现verify failed错误。
  3. 检查sopc中的componet是否正常。如果是自己加入的接口逻辑,这个部分要确认其正常与否。
  4. 检查Quartus中的设计: 检查引脚锁定是否正确,必须一一对应,不能有一个错误;地址对齐问题:针对8、16、32位的外部存储器,对应地址最低位的应该是0、1、2。也就是说如果用16位的外部存储器,那么它的最低位是ADD[1],而ADD[0]是不用的,其他同理。数据总线必须是双向IO口,这点很容易忽略。如果是SDRAM,需要计算并设定PLL的相移。
  5. Nios IDE中检查项目设计是否正确。

文章最后特别感谢网友李YZ对本文内容的贡献。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA开源工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题1:
  • 问题2:
  • 问题3:
  • 问题4:
  • 问题5:
  • 问题6 :
  • 问题7:
  • 问题8:
  • 问题9:
  • 问题10:
  • 问题11:
  • 问题12:
  • 问题13:
  • 问题14:
  • 问题15:
  • 问题16:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档