




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、NIOS II 開發常見問題1. 怎樣在TCL腳本分配管腳 source <pin_assign>.tcl 有點問題:# source stratix_pin_assign.tclcouldn't read file "stratix_pin_assign.tcl": no such file or directory 答: From the Tools menu select Tcl s cripts, and then from the project folder choose the setup s cript
2、 for your particular development board, and click Run.2D:TEST ios_sst60下載時出現錯誤:Error: Can't configure device. Expected JTAG ID code 0x020010DD for device 1, but found JTAG ID code 0x020B40DD. 答:SOPC所選器件和開發板上的不一致。3在NOIS II中Bulid例程hello_world都出現了錯誤,錯誤提示為:gdrive/c/altera/kits/nios
3、2/components/altera_nios2/HAL/src/alt_busy_sleep.c:68: error: parse error before '/' token等錯誤全部由alt_busy_sleep.c引起,都是關于括號不匹配的問題,而alt_busy_sleep.c是IDE中的一個默認程序。這個錯誤同樣出現在D:TESTDE2Projectsoftware ios2 ,培訓用的一個簡單實驗。 答:找到system.h文件,里面有個關于系統時鐘頻率的設置項,應該是沒有賦值,你手動賦值。比如你用50MHZ的時鐘,就設成50
4、000000。如果總是出現上述問題,可能和軟件有關系,建議重新安裝軟件。注意quartus和NIOS安裝版本一定要相同,不能混裝。4這個錯誤是什么原因引起,把那個sdk_arm刪除后,又提示另一個地方出錯。 答:運行NIOS II IDE,點Project->Clear,重新Builde,應該可以解決問題。5在SOPC中Generate出現如下錯誤是怎么回事? Error: Generator program for module 'epcs_controller' did NOT run successfully. 只要在SOPC中加
5、入epcs_controller就會出現此錯誤,無法生成一個元件。 答:可能和軟件有關系,建議重新安裝軟件(這個問題是我剛學NIOS遇到的最頭痛的一個問題,問題的原因是Quartus和Nios安裝的版本不一致)。6在Nios II IDE中,怎樣打開一個已經存在的工程?每次新建工程比較麻煩。 答:指定一個Nios II IDE的工作目錄,就打開了那個目錄下存在的工程。另外,在Nios II中是可以建立多個工程的。7在Quartus II 中編譯出現如下錯誤怎么辦?Error: Can't place pins as
6、signed to pin location Pin_AE24 (IOC_X65_Y2_N2) 答:按F1可以查看幫助,出現這樣的錯誤的原因是:CAUSE: You assigned two or more pins to the specified location, but the Fitter cannot place all the pins in that location.刪除這個管腳即可。有一種比較簡便的方法,就是在工程目錄中找到一個后綴為QSF的管腳配置文件,查找Pin_AE24刪除那行語句就行了。8.如何在NIOS II IDE 下跟蹤查看
7、變量的定義或者函數的定義? 答:按住CTRL鍵,鼠標移動到變量或者函數名的地方,就可以發現這些地方高亮顯示,單擊就可以進入到變量或者函數定義的地方。9. 在count_binary.c有這樣一段程序,它是如何操作的? unsigned int data = segmentshex & 15 | (segments(hex >> 4) & 15 << 8) 答:segmentshex & 15顯示個位0F;(segments(hex >> 4) & 15 &
8、lt;< 8)顯示十位數0F,個位0F,然后十位加一。10這個錯誤是由什么引起?提示LED_PIO_BASE沒有聲明 答:這是因為名字不一致引起的比如,在生成SOPC系統時,雙擊PIO(Parallel I/O)(在Avalon Modules -> Other 下),為系統添加輸出接口,你沒有把該組件改名成LED_PIO,而是保留了原始的名字:PIO_0;但你又通過 IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);來向該組件寫入數據,就會導致上述錯誤。解決辦法:1.可以修改sopc系統,為該PIO改
9、名為LED_PIO ;2.在hello_led.c的前面給LED_PIO_BASE賦值,如#define LED_PIO_BASE 0x00001800,后面的這個地址要與SOPC中的地址對應。11. 如何在NIOS II中驅動外部芯片或設備? 答:在開發過程中,我們經常會使用外接一些芯片,或外接一些實用電路,比如AD芯片、串并轉換芯片等等,那么如何在NIOS II中去使用這些芯片呢? 我們在開發中會有多個選擇: 1如果這個芯片是使用數據和地址總線的,并且補線時沒有足夠的單獨引腳,那么這個芯片必須掛接在tri_stat總線
10、上,這種用法和我們以往單片機或 MCU 類似,在SOPC Builder中直接定義用戶邏輯,如果有額外的控制引腳,就需要用PIO來驅動,雖然公用數據地址線節省了引腳,但做控制時序費勁了。 2如果這個芯片單獨使用數據和地址,那么我們會直接做成Avalone總線的Slave設備,在Sopc Builder中自己定義component。需要寫HDL模塊,自己定控制、狀態、數據寄存器和控制位定義,這種方式控制靈活,易于實現復雜的控制時序。 3在Quartus II 工程中畫電路模塊(或用HDL寫電路模塊),這種方式是獨立于SOPC
11、定義的模塊之外的,做一個純電路的處理模塊,有時候會比較容易實現某些靈活的處理。12.在SOPC添加Avalon Trisatate Bridge時,提示有如下錯誤,該如何解決?Tri state bridge/tristate master requires a slave of type Avalon tristate.Please add a slave of type Avalon tristate.Generate按鈕為灰色,無法Generate 答:需要一個專門接三臺橋的設備, 把flash添加到sopc中就可以了。13. 在做count_bina
12、ry這個例子時,出現一個錯誤: error: BUTTON_PIO_IRQ' undeclared (first use in this function) BUTTON_PIO_IRQ的值如何給他定義? 答:這個錯誤可能是在sopc builder中定制的pio端口名稱是否與程序中用的不一致,要和程序里的一致,把pio組件的名稱就改為button_pio。14.在Quartus II中編譯時出現如下錯誤:Error: Node instance "cpu_bht" instantiates undefined entity &q
13、uot;cpu_bht_module"點擊錯誤的地方彈出一個對話框這個錯誤是怎么回事?怎樣解決? 答:可能是在SOPC中所選的CPU型號不正確,換一個試試。15.怎樣自動分配管腳? 答:在Quartus II自動分配管腳有一個方法,點擊Assignments->Import Assginments,導入一個管腳分配文件,后綴為.csv .txt等,前提是在頂層原理圖中各個輸入輸出的名稱要和這個文件中的名稱一致。16.在NIOS II中編譯時出現如下錯誤怎么解決?錯誤是不是由SOPC中的RAM引起?regio
14、n ram is full (count_binary.elf section .text). Region needs to be 24672 bytes larger.address 0x80c1f8 of count_binary.elf section .rwdata is not within region ramUnable to reach edge_capture (at 0x00800024) from the global pointer (at 0x0081419c) because the offset (-82296) is out of the allowed ra
15、nge, -32678 to 32767. 答:可能時RAM的大小不夠,也有可能是中斷地址(exception address) 的偏余量不夠,設置大些就可以了。如果還是出現這個問題,加一個SDRAM試試。17在Quartus II中,為什么編譯一些樣板工程都會出錯?Error: DDR timing cannot be verified until project has been successfully compiled.Error: Evaluation of Tcl s cript auto_verify_ddr_timing.tcl unsucc
16、essfulError: Quartus II Shell was unsuccessful. 2 errors, 1 warning 答:在做樣板工程時要注意一個問題:Due to the library paths that are coded into the Quartus settings for this project, if a user wishes to modify the hardware design they must first strip out any old paths from within the project se
17、ttings file (qsf)在qsf文件中找到類似語句set_global_assignment-nameVHDL_FILE C:/MegaCore/ddr_ddr2_sdram-v3.2.0/lib/auk_ddr_tb_functions.vhd"這里的目錄是初始的目錄,把它改為正確的目錄。18.在NIOS II IDE編譯時出現如下錯誤是怎么回事?system_des cription/alt_sys_init.c:75: error: ONCHIP_MEMORY_BASE' undeclared here (not in a function)system_de
18、s cription/alt_sys_init.c:75: error: initializer element is not constantsystem_des cription/alt_sys_init.c:75: error: (near initialization for ext_flash.dev.write')system_des cription/alt_sys_init.c:75: error: initializer element is not constantsystem_des cription/alt_sys_init.c:75: error: (near
19、 initialization for ext_flash.dev.read') 答:ONCHIP_MEMORY_BASE沒有賦值,在alt_sys_init.c 程序的開頭加上#define ONCHIP_MEMORY_BASE 0x00000000后面的這個地址要與SOPC中的對應。19. 在NIOS II IDE編譯時出現如下錯誤是怎么回事?Pausing target processor: not responding.Resetting and trying again: FAILEDLeaving target processor pau
20、sed 答:以下是一位FAE的回答: 1. 關于USB-Blaster在Nios II IDE下載時會發生偶發性錯誤,這種現象主要是IDE software與Nios II CPU透過USB-Blaster在做通訊時發生錯誤,若是確認FPG上配置沒有錯誤,連續發生錯誤的機率應該是相當的低,您只需要重新下載即可。 2. 若您使用Nios II IDE 6.0,請盡量配合SOPC Builder 6.0重新build您的system,并且使用Quartus II 6.0重新compile您的
21、project,以減少CPU與IDE software不兼容的情形。20.在NIOS II IDE中工程的System Library選項中的這幾個選項代表什么意思?.text .rodata .rwdata 與reset .exception這幾個地址之間的關系是什么? 答:.text : 代碼區 .rodata:只讀數據區,一般存放靜態全局變量 .rwdata:可讀寫變量數據區另外還有.bss:存放未被初始化的變量。 .text the actual executable code
22、.rodata any read only data used in the execution of the code .rwdata where read/write variables and pointers are stored heap where dynamically allocated memory is located stack where function call parameters and other temporary data is stored21.
23、怎樣在NIOS II中操作PIO,提供一種參考方法。 答:hello_led.c是這樣寫IO口的:IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);首先在altera_avalon_pio_regs.h找到定義i nclude <io.h>#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0)#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data)因此在NIOSII中可以
24、調用i nclude <io.h>庫函數IORD/IOWR來操作PIO。在smallsoftwarehello_led_0_syslibDebugsystem_des cription下的system.h中,有以下內容:#define LED_PIO_TYPE "altera_avalon_pio"#define LED_PIO_BASE 0x00004000其中LED_PIO_BASE(IO寄存器地址?)為0x00004000同SopcBuilder中設置一致!(其實在SopcBuilder中有關NiosII的配置,就是通過system.h來傳送給IDE的!)
25、最后用IOWR(0x00004000, 0, led);替代IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);編譯,下載到開發板上,運行成功!22.怎樣讓SDRAM和FLASH,SRAM的地址公用? 答: sdram可以和sram,flash共用數據總線和地址總線.在sopc builder中添加SDRAM控制器時,在其share pins via tristate選擇項上勾上Controller shares dq/dqm/addr IO pins選項,這樣sdram可以和sram,flash共用數據總線和地址總
26、線.但是ATERA不推薦這樣做,因為這樣會降低SDRAM控制器的性能,在FPGA芯片管腳資源比較緊張的時候迫不得已才這樣做。23.怎樣使用DE2板上的數碼管,綁定管腳時需要注意什么?請舉一個例子說明。 答: DE2板上的數碼管只用了7位,小數點位默認為高電平。例如,在做例程count_binary時,需要用到兩個數碼管,以實現00到FF的計數,在 SOPC添加一個16位的PIO SEVEN_SEG15.0,綁定管腳時注意:使SEVEN_SEG0.6幫定到數碼管HEX06.0位,SEVEN_SEG8. 14綁定到數碼管HEX16.0位,SEVEN_SEG7和S
27、EVEN_SEG15直接接VCC,這樣才能讓兩個數碼管正常顯示并計數。24. 在NIOS II IDE 中調試,編譯通過的軟件時,出現了下面的提示,是什么原因?Using cable "ByteBlasterII LPT1", device 1, instance 0x00Processor is already pausedDownloading 00000000 ( 0%)Downloaded 57KB in 1.2s (47.5KB/s)Verifying 00000000 ( 0%)Verify failedLeaving target processor paus
28、ed 答: Verify failed這個問題說明板子的復位電路可能有問題,或裝載程序的外部SRAM或SDRAM和CPU 的連接或時序有問題,也有可能是軟件偶爾的錯誤。若是軟件偶爾的錯誤,可以先復位一下CPU,然后再下載程序;或者斷電后重新下載.sof和NIOS II 程序25.在練習C:alterakits ios2_51examplesverilog niosII_cycloneII_2c35的工程時,里面有很多元件DE2板上都沒有對應的管腳,比如網絡元件lan91c111,使用的IP核,還有 24位的ext_flash,而DE2板上的FLASH只有22
29、位。是不是SOPC中只能讓DE2板上有對應管腳的元件存在,其它的只能刪除? 答:這個目錄下的example是針對altera自己的板子的,和DE2硬件不能對應,只能作為參考,或者做一些修改后用。26.在SOPC中加了一個200KB的onchip_memory ,為什么在Quartus II 編譯時出現這個錯誤?Error: Selected device has 105 RAM location(s) of type M4K RAM. However, the current design needs more than 105 to successfull
30、y fit 答:SOPC中的onchip_memory和M4K RAM根本就不是一個概念。Quartus II中編譯出現這個錯誤,是由于設計中用到了太多的M4K。27. 關于sopc-builder 中reset address 的設置,一直搞得不是很明白。 答:SOPC中的reset address 指定的是最終全部軟件程序代碼下載到的地方,并且程序從reset address 啟動。SOPC 中的exception address 指定的是系統異常處理代碼存放的地方。如果exception address 和reset
31、 address 不一樣,那么程序從reset address 啟動后將把放在reset address 處的系統異常處理代碼拷貝到exception address 。NIOS II軟件中的text address指定的是程序運行的地方。如果text address和reset address 不一樣,那么程序從reset address 啟動后將把放在reset address 處的普通只讀程序代碼拷貝到text address 。NIOS II軟件中的rodata address指定的是只讀數據的存放地方。如果rodata address和reset address 不一樣,那么程序從r
32、eset address 啟動后將把放在reset address 處的只讀數據拷貝到rodata address 。NIOS II軟件中的rwdata address指定的是可讀寫數據的存放地方。如果rwdata address和reset address 不一樣,那么程序從reset address 啟動后將初始化rwdata address 處的可讀寫數據。28. 如何提高NIOS II系統的性能? 答:主要可以從這幾個方面入手: 1、使用fast CPU類型。 2、提高系統主頻。
33、 3、優先在SRAM中運行程序,SDRAM次之,最后選擇FLASH中運行。 4、使用片內RAM作為數據緩沖,片外SRAM次之,最后選SDRAM。 5、IO數據傳輸盡可能采用DMA。 6、對能并行處理的數據考慮使用多CPU協同處理。 7、典型算法做成用戶指令,有256條可以做,足夠你用的。 8、能用HDL模塊來完成工作嗎?能,就用HDL模塊做成外設來完成吧
34、160; 9、采用C2H。29.如何優化NIOS II里的應用工程? 答:Optimize your Nios II application design! 1.Creat an Blank Project:Select Altera Nios II " C/C+ Application" 2. In main.cyour main fuctional c/c+ file:i nclude "system.h"i nclude "alt_
35、types.h"#.int main (void) _attribute_ (weak, alias ("alt_main");int alt_main (void).return 0; 3."System Library Properties" OptionsSelect "Clean EXIT"Select "Small C Library"Select "Reduced Device Drivers"Spicify linker s cript
36、 position, to ext_flash, ext_ram or on-chip-ram30. 關于verify failed的總結 1. SDRAM的時序不對 有時候不正確的pll clock phase shift for sdram_clk_out就會導致SDRAM不能正常工作: 2. SDRAM的連線不對,物理板子的連線問題 3. 在調試的時候,程序下載的空間不是非易丟失存儲器(non-volatile memory)或者存儲器的空間不夠
37、也會導致這個錯誤 4. QuartusII的默認設置導致的錯誤 QuartusII默認將所有沒有使用的IO口接地,這種時候可能導致某些元器件工作不正常;最好將不用的IO口設置為三態 5. USB-blaster壞了,或者JTAG通信的信號噪聲太大 JTAG的端口需要一個弱上拉電阻來抗干擾 6. 確保你的sdram既連接到CPU的指令總線也連接到CPU的數據總線31.關于DMA傳輸的幾點說明: &
38、#160; 1memory 到 外設的傳輸,調用alt_dma_txchan_ioctl()時,有一個參數為alt_dma_tx_only_on等 2調用alt_dma_txchan_send函數時,在傳輸結束前就返回一個值,如果此值為負的話,說明發送請求失敗。正確傳輸結束后,調用done函數。 3 接收函數alt_dma_rxthan_prepare類似上面的1和2 4傳輸結束,有兩種可能:數據傳完或者end of packet(要預先使能) 5So
39、pc builder中例化時要制定哪些可以訪問DMA的主端口,DMA的avalon slave端口要接cpu。實際傳輸的最大數可以幫助確定設置的位數 6alt_dma_txchan_ioctl用于控制dma的一些工作性質,使用多的話可以用信號量等來“搶占” 7dma傳輸最小應該傳4字或者其倍數。32. 1. 建立CPU時,下面的那個HardWare Multiply里面可以選Embedded Multipliers,Logic Elements,None,這三個選項有什么區別呀? 答:
40、Embedded Multipliers,使用專門的內嵌硬件乘法單元(不可編程,僅能做乘法,且乘法速度最快),不是RAM。 Logic Elements,使用邏輯單元也就是FPGA中的查找表(速度較慢)。None,那就是不要聲長硬件乘法器了,這是只能通過軟件模擬乘法,速度最慢。33.下載是出現“not responding”錯誤的又一點發現: 答:在設計的過程中,經常使用板子上內部的兩個晶振作為CPU或者有些信號的時鐘,而且習慣用osc_27和osc_50命名。在綁定管腳時又經常導入一個 CSV文件,沒有手動一一綁定,而在那個CSV文件中晶振管腳名分別為CL
41、OCK_27,CLOCK_50,這樣系統的CPU根本就沒有綁定管腳,不出錯才怪。把名稱改為CLOCK_27,CLOCK_50,重新編譯下載就可以了。34. 安裝了nios2linux-1.4之后,為什么在New->Project時并沒有出現Microtronx NIOS II選項呢? 答:這個問題好像難倒過很多人,其實在運行nios2linux-1.4安裝的第一步,里面有個提示:Information Regarding the Installation ProcedureIMPORTANT: Please ensure that you specify the correct path for the Altera Nios II Kit installation directory and the Cygwin root directory. The typical Altera Nios II Kit d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設備監理機構管理制度
- 設備設施處置管理制度
- 設計公司保密管理制度
- 設計外包單位管理制度
- 評估機構選聘管理制度
- 診所患者流量管理制度
- 診所飲水設備管理制度
- 誠信公司經營管理制度
- 財務部門目標管理制度
- 財政補助資金管理制度
- 中小學生肥胖調查表
- 胃癌HER2判讀及評分課件
- 西安市綠化養護管理標準
- 學校機房網絡規劃與設計
- 開標一覽表(模板)
- 中儲糧警示教育心得體會三篇
- 船用空調電氣控制系統簡介課件
- 2009-2022歷年河北省公安廳高速交警總隊招聘考試真題含答案帶詳解2022-2023上岸資料匯編3
- 遙控器檢驗作業指導書
- 建筑工人實名制管理及農名工工資支付有關事項流程圖
- (完整版)蘇教版八年級數學下冊知識點(詳細精華版)
評論
0/150
提交評論