Quartus II和Nios II使用時遇到的錯誤及解決方法總結


問題1:

nios燒寫報錯error code 8 base=0x211000 --epcs --sidp=0x212AA0 --id=0x0 --accept-bad-sysid --device=1

代碼太大,超出了代碼空間的大小。html

問題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 取消選中全部選項便可。ios

問題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 編譯再也不報錯。sass

問題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不能精細的頂級用戶層次結構實體名字與你的工程名不一致。ide

問題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.

緣由一:flex

nios ide/sdk使用的sopcinfo或者ptf文件和你對fpga配置的文件不是同一個工程創建的。
緣由二:ui

system id不正確。在qsys中刪除systemid組件並從新添加,而後generate 解決。url

問題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中的設計:
    檢查引腳鎖定是否正確,必須一一對應,不能有一個錯誤;地址對齊問題:針對八、1六、32位的外部存儲器,對應地址最低位的應該是0、一、2。也就是說若是用16位的外部存儲器,那麼它的最低位是ADD[1],而ADD[0]是不用的,其餘同理。數據總線必須是雙向IO口,這點很容易忽略。若是是SDRAM,須要計算並設定PLL的相移。

  5. Nios IDE中檢查項目設計是否正確。


文章最後特別感謝網友李YZ對本文內容的貢獻。


往期推薦


Altera的Cyclone系列器件命名


更多精彩推薦,請關注咱們

本文分享自微信公衆號 - FPGA開源工做室(leezym0317)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索