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

问题1:

nios烧写报错error code 8 base=0x211000 --epcs --sidp=0x212AA0 --id=0x0 --accept-bad-sysid --device=1

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

问题2:

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:

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:

Quartus iiError (170040): Can't place all RAM cells in design Error: Peakvirtual memory: 882 megabytes

原因 ram资源不够。

问题5:

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 :

Quartus II Error (12153): Can't elaborate top-leveluser hierarchy

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

问题7:

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:

nios ii SEVERE System ID mismatch -connected 0x1001703a, expected 0x0.

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

问题9:

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:

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设计框图时出现错误,错误信息如下:

  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:

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:

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:

nios ii SEVERE System ID mismatch - connected 0x1001703a, expected 0x0.

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

问题15:

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

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

问题16:

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中检查项目设计是否正确。

欢迎关注微信公众号:FPGA开源工作室
获取更多学习资料。
FPGA开源工作室

相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值