niosii和quartusi開(kāi)發(fā)常見(jiàn)問(wèn)題_第1頁(yè)
niosii和quartusi開(kāi)發(fā)常見(jiàn)問(wèn)題_第2頁(yè)
niosii和quartusi開(kāi)發(fā)常見(jiàn)問(wèn)題_第3頁(yè)
niosii和quartusi開(kāi)發(fā)常見(jiàn)問(wèn)題_第4頁(yè)
niosii和quartusi開(kāi)發(fā)常見(jiàn)問(wèn)題_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Builder/NiosII編譯過(guò)程中遇到的一些問(wèn)題與解決方法(I)couldn'treadfile"":nosuchfileordirectorysolution:FromtheToolsmenuselectTclScripts,andthenfromtheprojectfolderchoosethesetupscriptforyourparticulardevelopmentboard,andclickRun.下載時(shí)出現(xiàn)錯(cuò)誤:Error:Can'tconfiguredevice.ExpectedJTAGIDcode0x020010DDfordevice1,butfoundJTAGIDcode:SOPC所選器件和開(kāi)發(fā)板上的不一致。solution:提示

LED_PIO_BASE沒(méi)有聲明,這是由于名字不一致引起的。比方,

在生成

SOPC時(shí),雙擊系統(tǒng)PIO(ParallelI/O)(

AvalonModules->Other

下),為系統(tǒng)增加輸出接口

,你沒(méi)有把該組件更名成LED_PIO,而是保留了原始的名字:PIO_0;但你又經(jīng)過(guò)IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,led);來(lái)向該組件寫入數(shù)據(jù),就會(huì)以致上述錯(cuò)誤。解決方法:1.能夠更正sopc系統(tǒng),為該P(yáng)IO更名為L(zhǎng)ED_PIO;2.在的前面給LED_PIO_BASE賦值,如

#defineLED_PIO_BASE0x00001800

,后邊的這個(gè)地址要與

SOPC中的地址對(duì)應(yīng)。在QuartusII中,為什么編譯一些樣板工程都會(huì)出錯(cuò)?Error:DDRtimingcannotbeverifieduntilproject

hasbeensuccessfully

compiled.Error:EvaluationofTclscriptunsuccessfulError:QuartusIIShellwasunsuccessful.2errors,1warningsolution:在做樣板工程時(shí)要注意一個(gè)問(wèn)題:DuetothelibrarypathsthatarecodedintotheQuartussettingforthisproject,ifauserwishestomodifythehardwaredesigntheymustfirststripoutanyoldpathsfromwithintheprojectsettingsfile(qsf)在qsf文件中找到近似語(yǔ)句set_global_assignment-nameVHDL_FILEC:/megaCore/"這里的目錄是初始的目錄,把它改為正確的目錄在NiosIIIDE編譯時(shí)出現(xiàn)以下錯(cuò)誤是怎么回事?Pausingtargetprocessor:notresponding.Resettingandtryingagain:FAILEDLeavingtargetprocessorpausedsolution:以下是一位FAE的回答:關(guān)于USB-Blaster在NiosIIIDE下載時(shí)會(huì)發(fā)生偶發(fā)性錯(cuò)誤,這種現(xiàn)象主要是IDEsoftware與NiosIICPU透過(guò)USB-Blaster在做通訊時(shí)發(fā)生錯(cuò)誤,若是確認(rèn)FPG配置沒(méi)有錯(cuò)誤,連續(xù)發(fā)生錯(cuò)誤的機(jī)率應(yīng)該是相當(dāng)?shù)牡停灰匦孪螺d即可。2.若您使用NiosIIIDE,請(qǐng)盡量配合SOPCBuilder重新build您的system,而且使用QuartusII重新compile您的project,以減少CPU與IDEsoftware不兼容的狀況。在NiosIIIDE中調(diào)試,編譯經(jīng)過(guò)的軟件時(shí),出現(xiàn)了下面的提示,是什么原因?Usingcable"ByteBlasterII[LPT1]",device1,instance0x00ProcessorisalreadypausedDownloading00000000(0%)Downloaded57KBins)Verifying00000000(0%)VerifyfailedLeavingtargetprocessorpausedsolution:Verifyfailed這個(gè)問(wèn)題說(shuō)明板子的復(fù)位電路可能有問(wèn)題,或裝載程序的外面SRAM或SDRAM和CPU的連接或時(shí)序有問(wèn)題,也有可能是軟件有時(shí)的錯(cuò)誤。若是軟件有時(shí)的錯(cuò)誤,能夠先復(fù)位一下CPU,爾后再下載程序;也許斷電后重新下載.sof和NiosII程序1關(guān)于sopc-builder中resetaddress的設(shè)置,素來(lái)搞得不是很理解。solution:SOPC中的resetaddress指定的是最后全部軟件程序代碼下載到的地方,而且程序從resetaddress啟動(dòng)。SOPC中的exceptionaddress指定的是系統(tǒng)異常辦理代碼存放的地方。若是exceptionaddress和resetaddress不一樣,那么程序從resetaddress啟動(dòng)后將把放在resetaddress處的系統(tǒng)異常辦理代碼拷貝到exceptionaddress。NiosII軟件中的textaddress指定的是程序運(yùn)行的地方。若是textaddress和resetaddress不同樣,那么程序從resetaddress啟動(dòng)后將把放在resetaddress處的一般只讀程拷貝到序代碼textaddress。NiosII軟件中的rodataaddress果指定的是只讀數(shù)據(jù)的存放地方。如rodataaddress和resetaddress不同樣,那么程序從resetaddress啟動(dòng)后將把放在resetaddress處的只讀數(shù)據(jù)拷貝到rodataaddress。NiosII軟件中的rwdataaddress指定的是可讀寫數(shù)據(jù)的存放地方。若是rwdataaddress和resetaddress不同樣,那么程序從resetaddress啟動(dòng)后將初始化rwdataaddress處的可讀寫數(shù)據(jù)。1安裝了此后,為什么在New->Project時(shí)并沒(méi)有出現(xiàn)MicrotronxNiosII選項(xiàng)呢?solution:這個(gè)問(wèn)題憂如難倒過(guò)很多人,其實(shí)在運(yùn)行安裝的第一步,里面有個(gè)提示:InformationRegardingtheInstallationProcedureIMPORTANT:PleaseensurethatyouspecifythecorrectpathfortheAlteraNiosIIKitinstallationdirectoryandtheCygwinrootdirectory.ThetypicalAlteraNiosIIKitdirectoryis:c:\altera\kits\Nios2ThetypicalCygwinrootdirectoryis:c:\altera\quartus50\bin\cygwin問(wèn)題的要點(diǎn)就是上面的路徑不正確。關(guān)于Nios和的路徑分別為Nios_51和Nios_60,都不是Nios2,所以安裝后找不到模板工程很正常。但它的一些必要文件又確實(shí)是安裝在了Nios_51或Nios_60中。我也遇到了過(guò)同樣的問(wèn)題,想到了一個(gè)簡(jiǎn)單的方法能夠解決:1.把文件夾Nios_51或Nios_60改為Nios2,啟動(dòng)NiosII,就可以看到所需模板工程。退出NiosII,把文件夾名還原。3.再次啟動(dòng)NiosII,你會(huì)發(fā)現(xiàn)模板工程仍舊存在。這種問(wèn)題可能還出現(xiàn)在NiosII的不一樣版本安裝,可能由于沒(méi)有卸載干凈也出現(xiàn)找不到模板工程的狀況,把文件夾名悔悟來(lái)就可以了。這個(gè)問(wèn)題用命令的方式也能夠解決:運(yùn)行CMD,在開(kāi)始→運(yùn)行里面輸送CMD2.CD命令進(jìn)入到NiosII工作目錄中。進(jìn)入到eclips目錄下3.進(jìn)入到eclips目錄下,并輸入命令,進(jìn)入到NiosIDE的clean模式。選擇workplace,就可以看到自己所需要的模板工程。最后說(shuō)一句在安裝QuaryusII和NIOSII時(shí),版本必然要同樣,能夠防備很多不用要的麻煩.1.怎樣在TCL腳本分配管腳source.tcl有點(diǎn)問(wèn)題:#sourcecouldn'treadfile"":nosuchfileordirectory答:FromtheToolsmenuselectTclscripts,andthenfromtheprojectfolderchoosethesetupscriptforyourparticulardevelopmentboard,andclickRun.2.D:TESTios_sst60下載時(shí)出現(xiàn)錯(cuò)誤:Error:Can'tconfiguredevice.ExpectedJTAGIDcode0x020010DDfordevice1,butfoundJTAGIDcode0x020B40DD.答:SOPC所選器件和開(kāi)發(fā)板上的不一致。3.在NOISII中Bulid例程hello_world都出現(xiàn)了錯(cuò)誤,錯(cuò)誤提示為:gdrive/c/altera/kits/NIOS2/components/altera_nios2/HAL/src/:68:error:parseerrorbefore'/'token等錯(cuò)誤全部由引起,都是關(guān)于括號(hào)不般配的問(wèn)題,而是IDE中的一個(gè)默認(rèn)程序。這個(gè)錯(cuò)誤同樣出現(xiàn)在D:TESTDE2Projectsoftwareios2,培訓(xùn)用的一個(gè)簡(jiǎn)單實(shí)驗(yàn)。答:找到文件,里面有個(gè)關(guān)于系統(tǒng)時(shí)鐘頻率的設(shè)置項(xiàng),應(yīng)該是沒(méi)有賦值,你手動(dòng)賦值。比方你用50MHZ的時(shí)鐘,就設(shè)成。若是總是出現(xiàn)上述問(wèn)題,可能和軟件相關(guān)系,建議重新安裝軟件。注意quartus和NIOS安裝版本必然要同樣,不能夠混裝。4.這個(gè)錯(cuò)誤是什么原因引起,把那個(gè)sdk_arm刪除后,又提示另一個(gè)地方出錯(cuò)。答:運(yùn)行NIOSIIIDE,點(diǎn)Project->Clear,重新Builde,應(yīng)該能夠解決問(wèn)題。5.在SOPC中Generate出現(xiàn)以下錯(cuò)誤是怎么回事?Error:Generatorprogramformodule'epcs_controller'didNOTrunsuccessfully.只要在SOPC中加入epcs_controller就會(huì)出現(xiàn)此錯(cuò)誤,無(wú)法生成一個(gè)元件。答:可能和軟件相關(guān)系,建議重新安裝軟件(這個(gè)問(wèn)題是我剛學(xué)NIOS遇到的最頭痛的一個(gè)問(wèn)題,問(wèn)題的原因是Quartus和Nios安裝的版本不一致)。6.在NiosIIIDE中,怎樣打開(kāi)一個(gè)已經(jīng)存在的工程?每次新建工程比較麻煩。答:指定一個(gè)NiosIIIDE的工作目錄,就打開(kāi)了那個(gè)目錄下存在的工程。別的,在Nios中是能夠建立多個(gè)工程的。7.在QuartusII中編譯出現(xiàn)以下錯(cuò)誤怎么辦?Error:Can'tplacepinsassignedtopinlocationPin_AE24(IOC_X65_Y2_N2)答:按F1能夠查察幫助,出現(xiàn)這樣的錯(cuò)誤的原因是:CAUSE:Youassignedtwoormorepinstothespecifiedlocation,buttheFittercannotplaceallthepinsinthatlocation.刪除這個(gè)管腳即可。有一種比較簡(jiǎn)略的方法,就是在工程目錄中找到一個(gè)后綴為QSF的管腳配置文件,查找Pin_AE24刪除那行語(yǔ)句就行了。8.怎樣在NIOSIIIDE下追蹤查察變量的定義也許函數(shù)的定義?答:按住CTRL鍵,鼠標(biāo)搬動(dòng)到變量也許函數(shù)名的地方,就可以發(fā)現(xiàn)這些地方高亮顯示,單擊就可以進(jìn)入到變量也許函數(shù)定義的地方。9.在有這樣一段程序,它是怎樣操作的?unsignedintdata=segments[hex&15]|(segments[(hex>>4)&15]<<8)答:segments[hex&15]顯示個(gè)位0~F;(segments[(hex>>4)&15]<<8)顯示十位數(shù)0~F,個(gè)位0~F,爾后十位加一。電子開(kāi)發(fā)網(wǎng)10.這個(gè)錯(cuò)誤是由什么引起?提示LED_PIO_BASE沒(méi)有聲明答:這是由于名字不一致引起的比方,在生成SOPC系統(tǒng)時(shí),雙擊PIO(ParallelI/O)(在AvalonModules->Other下),為系統(tǒng)增加輸出接口,你沒(méi)有把該組件更名成LED_PIO,而是保留了原始的名字:PIO_0;但你又經(jīng)過(guò)IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,led);來(lái)向該組件寫入數(shù)據(jù),就會(huì)以致上述錯(cuò)誤。解決方法:1.能夠更正sopc系統(tǒng),為該P(yáng)IO更名為L(zhǎng)ED_PIO;2.在的前面給LED_PIO_BASE賦值,如#defineLED_PIO_BASE0x00001800,后邊的這個(gè)地址要與SOPC中的地址對(duì)應(yīng)。怎樣在NIOSII中驅(qū)動(dòng)外面芯片或設(shè)備?答:在開(kāi)發(fā)過(guò)程中,我們經(jīng)常會(huì)使用外接一些芯片,或外接一些合用電路,比方AD芯片、串并變換芯片等等,那么怎樣在NIOSII中去使用這些芯片呢?我們?cè)陂_(kāi)發(fā)中會(huì)有多個(gè)選擇:1.若是這個(gè)芯片是使用數(shù)據(jù)和地址總線的,而且補(bǔ)線時(shí)沒(méi)有足夠的單獨(dú)引腳,那么這個(gè)芯片必定掛接在tri_stat總線上,這種用法和我們過(guò)去單片機(jī)或MCU近似,在SOPCBuilder中直接定義用戶邏輯,若是有額外的控制引腳,就需要用PIO來(lái)驅(qū)動(dòng),誠(chéng)然公用數(shù)據(jù)地址線節(jié)省了引腳,但做控制時(shí)序費(fèi)勁了。2.若是這個(gè)芯片單獨(dú)使用數(shù)據(jù)和地址,那么我們會(huì)直接做成Avalone總線的Slave設(shè)備,在SopcBuilder中自己定義component。需要寫HDL模塊,自己定控制、狀態(tài)、數(shù)據(jù)存放器和控制位定義,這種方式控制靈便,易于實(shí)現(xiàn)復(fù)雜的控制時(shí)序。3.在QuartusII工程中畫電路模塊(或用HDL寫電路模塊),這種方式是獨(dú)立于SOPC定義的模塊之外的,做一個(gè)純電路的辦理模塊,有時(shí)會(huì)比較簡(jiǎn)單實(shí)現(xiàn)某些靈便的辦理。12.在SOPC增加AvalonTrisatateBridge時(shí),提示有以下錯(cuò)誤,該怎樣解決?Tristatebridge/tristatemasterrequiresaslaveoftypeAvalonaddaslaveoftypeAvalontristate.Generate按鈕為灰色,無(wú)法Generate答:需要一個(gè)特地接三臺(tái)橋的設(shè)備,把flash增加到sopc中就可以了。13.在做count_binary這個(gè)例子時(shí),出現(xiàn)一個(gè)錯(cuò)誤:error:`BUTTON_PIO_IRQ'undeclared(firstuseinthisfunction)BUTTON_PIO_IRQ的值怎樣給他定義?答:這個(gè)錯(cuò)誤可能是在sopcbuilder中定制的pio端口名稱可否與程序中用的不一致,要和程序里的一致,把pio組件的名稱就改為button_pio。在QuartusII中編譯時(shí)出現(xiàn)以下錯(cuò)誤:Error:Nodeinstance"cpu_bht"instantiatesundefinedentity"cpu_bht_module"點(diǎn)擊錯(cuò)誤的地方彈出一個(gè)對(duì)話框這個(gè)錯(cuò)誤是怎么回事?怎樣解決?答:可能是在SOPC中所選的CPU型號(hào)不正確,換一個(gè)試一試。15.怎樣自動(dòng)分配管腳?答:在QuartusII自動(dòng)分配管腳有一個(gè)方法,點(diǎn)擊Assignments->ImportAssginments,導(dǎo)入一個(gè)管腳分配文件,后綴為.csv.txt等,前提是在頂層原理圖中各個(gè)輸入輸出的名稱要和這個(gè)文件中的名稱一致。16.在NIOSII中編譯時(shí)出現(xiàn)以下錯(cuò)誤怎么解決?錯(cuò)誤可否是由

SOPC中的RAM引起?regionramisfullsection.text).Regionneedstobe24672byteslarger.address0x80c1f8ofsection.rwdataisnotwithinregionramUnabletoreachedge_capture(at0x00800024)fromtheglobal

pointer

(at0x0081419c)becausetheoffset(-82296)isoutoftheallowedrange,-32678to32767.答:可能時(shí)

RAM的大小不夠,也有可能是中斷地址

(exceptionaddress)

的偏余量不夠,設(shè)置大些就可以了。若是還是出現(xiàn)這個(gè)

問(wèn)題,加一個(gè)

SDRAM試一試。17.在QuartusII中,為什么編譯一些樣板工程都會(huì)出錯(cuò)?Error:DDRtimingcannotbeverifieduntilprojecthasbeensuccessfullycompiled.Error:EvaluationofTclscriptunsuccessfulError:QuartusIIShellwasunsuccessful.2errors,1warning答:在做樣板工程時(shí)要注意一個(gè)問(wèn)題:DuetothelibrarypathsthatarecodedintotheQuartussettingsforthisproject,ifauserwishestomodifythehardware

designtheymustfirststripoutanyoldpathsfromwithintheprojectsettingsfile(qsf)在qsf文件中找到近似語(yǔ)句set_global_assignment-nameVHDL_FILEC:/MegaCore/"這里的目錄是初始的目錄,把它改為正確的目錄。在NIOSIIIDE編譯時(shí)出現(xiàn)以下錯(cuò)誤是怎么回事?system_description/:75:error:`ONCHIP_MEMORY_BASE'undeclaredhere(notinafunction)system_description/:75:error:initializerelementisnotconstantsystem_description/:75:error:(nearinitializationfor`')system_description/:75:error:initializerelementisnotconstantsystem_description/:75:error:(nearinitializationfor`')答:ONCHIP_MEMORY_BASE沒(méi)有賦值,在程序的開(kāi)頭加上#defineONCHIP_MEMORY_BASE0x00000000后邊的這個(gè)地址要與SOPC中的對(duì)應(yīng)。在NIOSIIIDE編譯時(shí)出現(xiàn)以下錯(cuò)誤是怎么回事?Pausingtargetprocessor:notresponding.Resettingandtryingagain:FAILEDLeavingtargetprocessorpaused答:以下是一位FAE的回答:1.關(guān)于USB-Blaster在NiosIIIDE下載時(shí)會(huì)發(fā)生偶發(fā)性錯(cuò)誤,這種現(xiàn)象主若是IDEsoftware與NiosIICPU透過(guò)USB-Blaster在做通訊時(shí)發(fā)生錯(cuò)誤,若是確認(rèn)FPG上配置沒(méi)有錯(cuò)誤,連續(xù)發(fā)生錯(cuò)誤的機(jī)率應(yīng)該是相當(dāng)?shù)牡?,您只要要重新下載即可。2.若您使用NiosIIIDE,請(qǐng)盡量配合SOPCBuilder重新build您的system,而且使用QuartusII重新compile您的project,以減少CPU與IDEsoftware不兼容的狀況。NIOSII常有問(wèn)題總結(jié)怎樣在TCL腳本分配管腳source.tcl有點(diǎn)問(wèn)題:#sourcecouldn''treadfile"":nosuchfileordirectory答:FromtheToolsmenuselectTclScripts,andthenfromtheprojectfolderchoosethesetupscriptforyourparticulardevelopmentboard,andclickRun.2.D:\TEST\nios_sst60下載時(shí)出現(xiàn)錯(cuò)誤:Error:Can''tconfiguredevice.ExpectedJTAGIDcode0x020010DDfordevice1,butfoundJTAGIDcode0x020B40DD.答:SOPC所選器件和開(kāi)發(fā)板上的不一致。3.在NOISII中Bulid例程hello_world都出現(xiàn)了錯(cuò)誤,錯(cuò)誤提示為:gdrive/c/altera/kits/nios2/components/altera_nios2/HAL/src/:68:error:parseerrorbefore''/''token等錯(cuò)誤全部由引起,都是關(guān)于括號(hào)不般配的問(wèn)題,而是IDE中的一個(gè)默認(rèn)程序。這個(gè)錯(cuò)誤同樣出現(xiàn)在D:\TEST\DE2Project\software\nios2,培訓(xùn)用的一個(gè)簡(jiǎn)單實(shí)驗(yàn)。答:找到文件,里面有個(gè)關(guān)于系統(tǒng)時(shí)鐘頻率的設(shè)置項(xiàng),應(yīng)該是沒(méi)有賦值,你手動(dòng)賦值。比方你用50MHZ的時(shí)鐘,就設(shè)成若是總是出現(xiàn)上述問(wèn)題,可能和軟件相關(guān)系,建議重新安裝軟件。注意quartus和NIOS安裝版本必然要同樣,不能夠混裝。4.這個(gè)錯(cuò)誤是什么原因引起,把那個(gè)sdk_arm刪除后,又提示另一個(gè)地方出錯(cuò)。答:運(yùn)行NIOSIIIDE,點(diǎn)Project->Clear,重新Builde,應(yīng)該能夠解決問(wèn)題。5.在SOPC中Generate出現(xiàn)以下錯(cuò)誤是怎么回事?Error:Generatorprogramformodule''epcs_controller''didNOTrunsuccessfully.只要在SOPC中加入epcs_controller就會(huì)出現(xiàn)此錯(cuò)誤,無(wú)法生成一個(gè)元件。答:可能和軟件相關(guān)系,建議重新安裝軟件(這個(gè)問(wèn)題是我剛學(xué)NIOS遇到的最頭痛的一個(gè)問(wèn)題,問(wèn)題的原因是Quartus和Nios安裝的版本不一致)。6.在NiosIIIDE中,怎樣打開(kāi)一個(gè)已經(jīng)存在的工程?每次新建工程比較麻煩。答:指定一個(gè)NiosIIIDE的工作目錄,就打開(kāi)了那個(gè)目錄下存在的工程。別的,在NiosII中是能夠建立多個(gè)工程的。7.在QuartusII中編譯出現(xiàn)以下錯(cuò)誤怎么辦?Error:Can''tplacepinsassignedtopinlocationPin_AE24(IOC_X65_Y2_N2)答:按F1能夠查察幫助,出現(xiàn)這樣的錯(cuò)誤的原因是:CAUSE:Youassignedtwoormorepinstothespecifiedlocation,buttheFittercannotplaceallthepinsinthatlocation.刪除這個(gè)管腳即可。有一種比較簡(jiǎn)略的方法,就是在工程目錄中找到一個(gè)后綴為QSF的管腳配置文件,查找Pin_AE24刪除那行語(yǔ)句就行了。8.怎樣在NIOSIIIDE下追蹤查察變量的定義也許函數(shù)的定義?答:按住CTRL鍵,鼠標(biāo)搬動(dòng)到變量也許函數(shù)名的地方,就可以發(fā)現(xiàn)這些地方高亮顯示,單擊就可以進(jìn)入到變量也許函數(shù)定義的地方。9.在有這樣一段程序,它是怎樣操作的?unsignedintdata=segments[hex&15]|(segments[(hex>>4)&15]<<8)答:segments[hex&15]顯示個(gè)位0~F;(segments[(hex>>4)&15]<<8)顯示十位數(shù)0~F,個(gè)位0~F,爾后十位加一。10.這個(gè)錯(cuò)誤是由什么引起?答:提示LED_PIO_BASE沒(méi)有聲明,這是由于名字不一致引起的比方,在生成SOPC系統(tǒng)時(shí),雙擊PIO(ParallelI/O)(在AvalonModules->Other下),為系統(tǒng)增加輸出接口,你沒(méi)有把該組件更名成LED_PIO,而是保留了原始的名字:PIO_0;但你又經(jīng)過(guò)IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,led);來(lái)向該組件寫入數(shù)據(jù),就會(huì)以致上述錯(cuò)誤。解決方法:1.能夠更正sopc系統(tǒng),為該P(yáng)IO更名為L(zhǎng)ED_PIO;2.在的前面給LED_PIO_BASE賦值,如#defineLED_PIO_BASE0x00001800,后邊的這個(gè)地址要與SOPC中的地址對(duì)應(yīng)。怎樣在NIOSII中驅(qū)動(dòng)外面芯片或設(shè)備?答:在開(kāi)發(fā)過(guò)程中,我們經(jīng)常會(huì)使用外接一些芯片,或外接一些合用電路,比方AD芯片、串并變換芯片等等,那么怎樣在NIOSII中去使用這些芯片呢?我們?cè)陂_(kāi)發(fā)中會(huì)有多個(gè)選擇:1.若是這個(gè)芯片是使用數(shù)據(jù)和地址總線的,而且補(bǔ)線時(shí)沒(méi)有足夠的單獨(dú)引腳,那么這個(gè)芯片必定掛接在tri_stat總線上,這種用法和我們過(guò)去單片機(jī)或MCU近似,在SOPCBuilder中直接定義用戶邏輯,若是有額外的控制引腳,就需要用PIO來(lái)驅(qū)動(dòng),誠(chéng)然公用數(shù)據(jù)地址線節(jié)約了引腳,但做控制時(shí)序費(fèi)勁了。2.若是這個(gè)芯片單獨(dú)使用數(shù)據(jù)和地址,那么我們會(huì)直接做成Avalone總線的Slave設(shè)備,在SopcBuilder中自己定義component。需要寫HDL模塊,自己定控制、狀態(tài)、數(shù)據(jù)存放器和控制位定義,這種方式控制靈便,易于實(shí)現(xiàn)復(fù)雜的控制時(shí)序。3.在QuartusII工程中畫電路模塊(或用HDL寫電路模塊),這種方式是獨(dú)立于SOPC定義的模塊之外的,做一個(gè)純電路的辦理模塊,有時(shí)會(huì)比較簡(jiǎn)單實(shí)現(xiàn)某些靈便的辦理。12.在SOPC增加AvalonTrisatateBridge時(shí),提示有以下錯(cuò)誤,該怎樣解決?Tristatebridge/tristatemasterrequiresaslaveoftypeAvalonaddaslaveoftypeAvalontristate.Generate按鈕為灰色,無(wú)法Generate答:需要一個(gè)特地接三臺(tái)橋的設(shè)備,把flash增加到sopc中就可以了。13.在做

count_binary

這個(gè)例子時(shí),出現(xiàn)一個(gè)錯(cuò)誤:

error:`BUTTON_PIO_IRQ''undeclared(firstuseinthisfunction)BUTTON_PIO_IRQ

的值怎樣給他定義?

答:這個(gè)錯(cuò)誤可能是在

sopcbuilder

中定制的

pio

端口名稱可否與程序中用的不一致,要和程序里的一致,把

pio

組件的名稱就改為

button_pio

,以以下圖:若是已經(jīng)這樣設(shè)置,還有可能是沒(méi)有設(shè)置中斷號(hào),詳盡應(yīng)該這樣設(shè)置:在QuartusII中編譯時(shí)出現(xiàn)以下錯(cuò)誤:Error:Nodeinstance"cpu_bht"instantiatesundefinedentity"cpu_bht_module"點(diǎn)擊錯(cuò)誤的地方彈出一個(gè)對(duì)話框這個(gè)錯(cuò)誤是怎么回事?怎樣解決?答:可能是在SOPC中所選的CPU型號(hào)不正確,換一個(gè)試一試。怎樣自動(dòng)分配管腳?答:在QuartusII自動(dòng)分配管腳有一個(gè)方法,點(diǎn)擊Assignments->ImportAssginments,導(dǎo)入一個(gè)管腳分配文件,后綴為.csv.txt等,前提是在頂層原理圖中各個(gè)輸入輸出的名稱要和這個(gè)文件中的名稱一致。16.在NIOSII中編譯時(shí)出現(xiàn)以下錯(cuò)誤怎么解決?錯(cuò)誤可否是由SOPC中的RAM引起?regionramisfullsection.text).Regionneedstobe24672byteslarger.address0x80c1f8ofsection.rwdataisnotwithinregionramUnabletoreachedge_capture(at0x00800024)fromtheglobalpointer(at0x0081419c)becausetheoffset(-82296)isoutoftheallowedrange,-32678to32767.答:可能時(shí)RAM的大小不夠,也有可能是中斷地址(exceptionaddress)的偏余量不夠,設(shè)置大些就可以了。若是還是出現(xiàn)這個(gè)問(wèn)題,加一個(gè)SDRAM試一試。17.在QuartusII中,為什么編譯一些樣板工程都會(huì)出錯(cuò)?Error:DDRtimingcannotbeverifieduntilprojecthasbeensuccessfullycompiled.Error:EvaluationofTclscriptunsuccessfulError:QuartusIIShellwasunsuccessful.2errors,1warning答:在做樣板工程時(shí)要注意一個(gè)問(wèn)題:DuetothelibrarypathsthatarecodedintotheQuartussettingsforthisproject,ifauserwishestomodifythehardwaredesigntheymustfirststripoutanyoldpathsfromwithintheprojectsettingsfile(qsf)在qsf文件中找到近似語(yǔ)句set_global_assignment-nameVHDL_FILEC:/MegaCore/"這里的目錄是初始的目錄,把它改為正確的目錄。在NIOSIIIDE編譯時(shí)出現(xiàn)以下錯(cuò)誤是怎么回事?system_description/:75:error:`ONCHIP_MEMORY_BASE''undeclaredhere(notinafunction)system_description/:75:error:initializerelementisnotconstantsystem_description/:75:error:(nearinitializationfor`'')system_description/:75:error:initializerelementisnotconstantsystem_description/:75:error:(nearinitializationfor`'')答:ONCHIP_MEMORY_BASE沒(méi)有賦值,在程序的開(kāi)頭加上#defineONCHIP_MEMORY_BASE0x00000000后邊的這個(gè)地址要與SOPC中的對(duì)應(yīng)。在NIOSIIIDE編譯時(shí)出現(xiàn)以下錯(cuò)誤是怎么回事?Pausingtargetprocessor:notresponding.Resettingandtryingagain:FAILEDLeavingtargetprocessorpaused答:以下是一位FAE的回答:1.關(guān)于USB-Blaster在NiosIIIDE下載時(shí)會(huì)發(fā)生偶發(fā)性錯(cuò)誤,這種現(xiàn)象主若是IDEsoftware與NiosIICPU透過(guò)USB-Blaster在做通訊時(shí)發(fā)生錯(cuò)誤,若是確認(rèn)FPG上配置沒(méi)有錯(cuò)誤,連續(xù)發(fā)生錯(cuò)誤的機(jī)率應(yīng)該是相當(dāng)?shù)牡停灰匦孪螺d即可。2.若您使用NiosIIIDE,請(qǐng)盡量配合SOPCBuilder重新build您的system,而且使用QuartusII重新compile您的project,以減少CPU與IDEsoftware不兼容的狀況。20.在NIOSIIIDE中工程的SystemLibrary選項(xiàng)中的這幾個(gè)選項(xiàng)代表什么意思?與reset.exception這幾個(gè)地址之間的關(guān)系是什么?答:.text:代碼區(qū).rodata:只讀數(shù)據(jù)區(qū),一般存放靜態(tài)全局變量.rwdata:可讀寫變量數(shù)據(jù)區(qū)別的還有.bss:存放未被初始化的變量?!?text—theactualexecutablecode■.rodata—anyreadonlydatausedintheexecutionofthecode.rwdata—whereread/writevariablesandpointersarestoredheap—wheredynamicallyallocatedmemoryislocatedstack—wherefunctioncallparametersandothertemporarydataisstored怎樣在NIOSII中操作PIO,供應(yīng)一種參照方法。答:是這樣寫IO口的:IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,led);第一在找到定義include#defineIORD_ALTERA_AVALON_PIO_DATA(base)IORD(base,0)#defineIOWR_ALTERA_AVALON_PIO_DATA(base,data)IOWR(base,0,data)因此在NIOSII中能夠調(diào)用#include庫(kù)函數(shù)IORD/IOWR來(lái)操作PIO。在small\software\hello_led_0_syslib\Debug\system_description下的中,有以下內(nèi)容:#defineLED_PIO_TYPE"altera_avalon_pio"#defineLED_PIO_BASE0x00004000其中LED_PIO_BASE(IO存放器地址?)為0x00004000同SopcBuilder中設(shè)置一致!(其實(shí)在SopcBuilder中相關(guān)NiosII的配置,就是經(jīng)過(guò)來(lái)傳達(dá)給IDE的!)最后用IOWR(0x00004000,0,led);取代IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,led);編譯,下載到開(kāi)發(fā)板上,運(yùn)行成功!22.怎樣讓SDRAM和FLASH,SRAM的地址公用?答:sdram能夠和sram,flash共用數(shù)據(jù)總線和地址總線.在sopcbuilder中增加SDRAM控制器時(shí),在其sharepinsviatristate選擇項(xiàng)上勾上Controllersharesdq/dqm/addrIOpins選項(xiàng),這樣sdram能夠和sram,flash共用數(shù)據(jù)總線和地址總線.但是ATERA不介紹這樣做,由于這樣會(huì)降低SDRAM控制器的性能,在FPGA芯片管腳資源比較緊張的時(shí)候迫不得已才這樣做。怎樣使用DE2板上的數(shù)碼管,綁定管腳時(shí)需要注意什么?請(qǐng)舉一個(gè)例子說(shuō)明。答:DE2板上的數(shù)碼管只用了7位,小數(shù)點(diǎn)位默認(rèn)為高電平。比方,在做例程count_binary時(shí),需要用到兩個(gè)數(shù)碼管,以實(shí)現(xiàn)00到FF的計(jì)數(shù),在SOPC增加一個(gè)16位的PIOSEVEN_SEG[15..0],綁定管腳時(shí)注意:使SEVEN_SEG[0..6]幫定到數(shù)碼管HEX0[6..0]位,SEVEN_SEG[8..14]綁定到數(shù)碼管HEX1[6..0]位,SEVEN_SEG[7]和SEVEN_SEG[15]直接接VCC,這樣才能讓兩個(gè)數(shù)碼管正常顯示并計(jì)數(shù)。在NIOSIIIDE中調(diào)試,編譯經(jīng)過(guò)的軟件時(shí),出現(xiàn)了下面的提示,是什么原因?Usingcable"ByteBlasterII[LPT1]",device1,instance0x00ProcessorisalreadypausedDownloading00000000(0%)Downloaded57KBins)Verifying00000000(0%)VerifyfailedLeavingtargetprocessorpaused答:Verifyfailed這個(gè)問(wèn)題說(shuō)明板子的復(fù)位電路可能有問(wèn)題,或裝載程序的外面SRAM或SDRAM和CPU的連接或時(shí)序有問(wèn)題,也有可能是軟件有時(shí)的錯(cuò)誤。若是軟件有時(shí)的錯(cuò)誤,能夠先復(fù)位一下CPU,爾后再下載程序;也許斷電后重新下載.sof和NIOSII程序25.在練習(xí)C:\altera\kits\nios2_51\examples\verilog\niosII_cycloneII_2c35的工程時(shí),里面有很多元件DE2板上都沒(méi)有對(duì)應(yīng)的管腳,比方網(wǎng)絡(luò)元件lan91c111,使用的IP核,還有24位的ext_flash,而DE2板上的FLASH只有22位??煞袷荢OPC中只能讓DE2板上有對(duì)應(yīng)管腳的元件存在,其他的只能刪除?答:這個(gè)目錄下的example是針對(duì)altera自己的板子的,和DE2硬件不能夠?qū)?yīng),只能作為參照,也許做一些更正后用。26.在SOPC中加了一個(gè)200KB的onchip_memory,為什么在QuartusII編譯時(shí)出現(xiàn)這個(gè)錯(cuò)誤?Error:Selecteddevicehas105RAMlocation(s)oftypeM4KRAM.However,thecurrentdesignneedsmorethan105tosuccessfullyfit答:SOPC中的onchip_memory和M4KRAM根本就不是一個(gè)看法。QuartusII中編譯出現(xiàn)這個(gè)錯(cuò)誤,是由于設(shè)計(jì)中用到了太多的M4K。27.關(guān)于sopc-builder中resetaddress的設(shè)置,素來(lái)搞得不是很理解。答:SOPC中的resetaddress指定的是最后全部軟件程序代碼下載到的地方,而且程序從resetaddress啟動(dòng)。SOPC中的exceptionaddress指定的是系統(tǒng)異常辦理代碼存放的地方。若是exceptionaddress和resetaddress不同樣,那么程序從resetaddress啟動(dòng)后將把放在resetaddress處的系統(tǒng)異常辦理代碼拷貝到exceptionaddress。NIOSII軟件中的textaddress指定的是程序運(yùn)行的地方。若是textaddress和resetaddress不同樣,那么程序從resetaddress啟動(dòng)后將把放在resetaddress處的一般只讀程序代碼拷貝到textaddress。NIOSII軟件中的rodataaddress指定的是只讀數(shù)據(jù)的存放地方。若是rodataaddress和resetaddress不同樣,那么程序從resetaddress啟動(dòng)后將把放在resetaddress處的只讀數(shù)據(jù)拷貝到rodataaddress。NIOSIIaddress和

軟件中的rwdataaddress指定的是可讀寫數(shù)據(jù)的存放地方。若是resetaddress不同樣,那么程序從resetaddress啟動(dòng)后將初始化

rwdatarwdataaddress

處的可讀寫數(shù)據(jù)。怎樣提高NIOSII系統(tǒng)的性能?答:主要能夠從這幾個(gè)方面下手:1、使用fastCPU種類。2、提高系統(tǒng)主頻。3、優(yōu)先在SRAM中運(yùn)行程序,SDRAM次之,最后選擇FLASH中運(yùn)行。4、使用片內(nèi)RAM作為數(shù)據(jù)緩沖,片外SRAM次之,最后選SDRAM。5、IO數(shù)據(jù)傳輸盡可能采用DMA。6、對(duì)能并行辦理的數(shù)據(jù)考慮使用多CPU共同辦理。7、典型算法做成用戶指令,有256條能夠做,足夠你用的。8、能用HDL模塊來(lái)完成工作嗎?能,就用HDL模塊做成外設(shè)來(lái)完成吧9、采用C2H。怎樣優(yōu)化NIOSII里的應(yīng)用工程?答:OptimizeyourNiosIIapplicationdesign!anBlankProject:SelectAlteraNiosII"C/C++Application"2.In[yourmainfuctionalc/c++file]:include""include""#......intmain(void)__attribute__((weak,alias("alt_main")));intalt_main(void){......return0;}3."SystemLibraryProperties"OptionsSelect"CleanEXIT"Select"SmallCLibrary"Select"ReducedDeviceDrivers"Spicifylinkerscriptposition,toext_flash,ext_ramoron-chip-ram30.關(guān)于verifyfailed的總結(jié)1.SDRAM的時(shí)序不對(duì)有時(shí)不正確的pllclockphaseshiftforsdram_clk_out就會(huì)以致SDRAM不能夠正常工作:SDRAM的連線不對(duì),物理板子的連線問(wèn)題3.在調(diào)試的時(shí)候,程序下載的空間不是非易扔掉儲(chǔ)藏器(non-volatilememory)也許儲(chǔ)藏器的空間不夠也會(huì)以致這個(gè)錯(cuò)誤4.QuartusII的默認(rèn)設(shè)置以致的錯(cuò)誤QuartusII最好將不用的

默認(rèn)將全部沒(méi)有使用的IO口設(shè)置為三態(tài)

IO口接地,這種時(shí)候可能以致某些元器件工作不正常

;5.USB-blaster壞了,也許JTAG通訊的信號(hào)噪聲太大JTAG的端口需要一個(gè)弱上拉電阻來(lái)抗攪亂6.保證你的sdram既連接到CPU的指令總線也連接到CPU的數(shù)據(jù)總線關(guān)于DMA傳輸?shù)膸c(diǎn)說(shuō)明:1.memory到外設(shè)的傳輸,調(diào)用alt_dma_txchan_ioctl( )時(shí),有一個(gè)參數(shù)為alt_dma_tx_only_on等2.調(diào)用alt_dma_txchan_send函數(shù)時(shí),在傳輸結(jié)束前就返回一個(gè)值,若是此值為負(fù)的話,說(shuō)明發(fā)送央求失敗。正確傳輸結(jié)束后,調(diào)用done函數(shù)。3.接收函數(shù)alt_dma_rxthan_prepare近似上面的1和24.傳輸結(jié)束,有兩種可能:數(shù)據(jù)傳完也許endofpacket(要起初使能)5.Sopcbuilder中例化時(shí)要擬定哪些能夠接見(jiàn)DMA的主端口,DMA的avalonslave端口要接cpu。實(shí)質(zhì)傳輸?shù)淖畲髷?shù)能夠幫助確定設(shè)置的位數(shù)6.a(chǎn)lt_dma_txchan_ioctl用于控制dma的一些工作性質(zhì),使用多的話能夠用信號(hào)量等來(lái)“搶占”7.dma傳輸最小應(yīng)該傳4字也許其倍數(shù)。32.1.建立CPU時(shí),下面的那個(gè)HardWareMultiply里面能夠選①EmbeddedMultipliers,②LogicElements,③None,這三個(gè)選項(xiàng)有什么差異呀?答:①EmbeddedMultipliers,使用特地的內(nèi)嵌硬件乘法單元(不能編程,僅能做乘法,且乘法速度最快),不是RAM。②LogicElements,使用邏輯單元也就是FPGA中的查找表(速度較慢)。③None,那就是不要聲長(zhǎng)硬件乘法器了,這是只能經(jīng)過(guò)軟件模擬乘法,速度最慢。33.下載是出現(xiàn)“notresponding”錯(cuò)誤的又一點(diǎn)發(fā)現(xiàn):答:在設(shè)計(jì)的過(guò)程中,經(jīng)常使用板子上內(nèi)部的兩個(gè)晶振作為CPU也許有些信號(hào)的時(shí)鐘,而且習(xí)慣用osc_27和osc_50命名。在綁定管腳時(shí)又經(jīng)常導(dǎo)入一個(gè)CSV文件,沒(méi)有手動(dòng)一一綁定,而在那個(gè)CSV文件中晶振管腳名分別為CLOCK_27,CLOCK_50,這樣系統(tǒng)的CPU根本就沒(méi)有綁定管腳,不出錯(cuò)才怪。把名稱改為CLOCK_27,CLOCK_50,重新編譯下載就可以了。34.安裝了此后,為什么在New->Project時(shí)并沒(méi)有出現(xiàn)MicrotronxNIOSII選項(xiàng)呢?答:這個(gè)問(wèn)題憂如難倒過(guò)很多人,其實(shí)在運(yùn)行安裝的第一步,里面有個(gè)提示:InformationRegardingtheInstallationProcedureIMPORTANT:PleaseensurethatyouspecifythecorrectpathfortheAlteraNiosIIKitinstallationdirectoryandtheCygwinrootdirectory.ThetypicalAlteraNiosIIKitdirectoryis:c:\altera\kits\nios2ThetypicalCygwinrootdirectoryis:c:\altera\quartus50\bin\cygwin問(wèn)題的要點(diǎn)就是上面的路徑不正確。關(guān)于Nios和的路徑分別為nios_51和nios_60,都不是nios2,因此安裝后找不到模板工程很正常。但它的一些必要文件又確實(shí)是安裝在了nios_51或nios_60中。我也遇到了過(guò)同樣的問(wèn)題,想到了一個(gè)簡(jiǎn)單的方法能夠解決:1.把文件夾nios_51或nios_60改為nios2,啟動(dòng)NiosII,就可以看到所需模板工程。退出NiosII,把文件夾名還原。再次啟動(dòng)NiosII,你會(huì)發(fā)現(xiàn)模板工程仍舊還在。35.NiosII漢化解決方案答:NIOSIIIDE實(shí)際上是在eclipse平臺(tái)上的一個(gè)應(yīng)用插件,而Eclipse是一個(gè)開(kāi)放源代碼的軟件開(kāi)發(fā)項(xiàng)目,專注于為高度集成的工具開(kāi)發(fā)供應(yīng)一個(gè)全功能的、擁有商業(yè)質(zhì)量的工業(yè)平臺(tái)??山右?jiàn)以下網(wǎng)站:官方網(wǎng)站中國(guó)Eclipse社區(qū)下面介紹怎樣漢化NIOSII(實(shí)質(zhì)上可是漢化了eclipse)1.打開(kāi)NIOSII,點(diǎn)help->aboutNIOSIIIDE,會(huì)看到相關(guān)NIOS的版權(quán)信息。能夠看到NIOSII的版本上的Eclipse版本是Eclipse在Eclipse官方網(wǎng)站上找到Eclipse多國(guó)語(yǔ)言包下載地址:...在NIOSII的安裝目錄中,你能夠找到一個(gè)eclipse目錄,如:C:\altera\kits\nios2\bin\eclipse,在這個(gè)目錄下新建2個(gè)文件夾language和links4.將解壓到language目錄下5.在links文件夾下用記事本新建一個(gè)文件,取名為(必定是此擴(kuò)展名)6.在里輸入代碼以下:path=c:/altera/kits/nios2/bin/eclipse/language保留此文件。漢化完成。說(shuō)明,這種方法可

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論