在用verilog編程時出現錯誤:“Can‘’t resolve multiple constant drivers for net 。..。”說明同一信號不能在不同 的進程中賦值,這是代碼可綜合方面的要求。
在用verilog編寫代碼的時候出現錯誤提示:“mixed single- and double-edge expressions are not supported”:在敏感驅動信號中,不能既有單邊沿的驅動又有雙邊沿的驅動,如always@(posedge Clk50Mhz or negedge RstN or StartFlag),即只能同意用一種,不能混合。
當編譯出現如下錯誤時: Error: Clock input port inclk[0] of PLL “PLL:inst1|altpll:altpll_component|pll” must be driven by a non-inverted input clock pin.是因為pll的輸入需要直接和時鐘相連接,在頂層文件中連接。看看是否相連了,或者說是名稱的大小寫是否寫對了。
在編譯niosii時出現如下兩個錯誤,同時出現的:
/cygdrive/c/altera/90/nios2eds/components/altera_hal/build/system_rules.mk /components/altera_hal/build/gnu_rules.mk: No such file or directory hello_world line 120 1300086018362 2
已經如下錯誤:make[1]:/cygdrive/c/altera/90/nios2eds/components/altera_hal/build/common.mk fork: Resource temporarily unavailable
因為在win7下的權限問題。具體解決方法參考的網上的:
Under your Quartus II folder, go to bin-》cygwin-》bin folder, select the following files in the list below and then right-click and choose ProperTIes. Under the CompaTIbility tab, check “Run this program in compaTIbility mode for:” and choose “Windows XP (Service Pack 2)”。 Check “Run this program as an administrator”, as well.
Here is the list of files that you can select to change their compaTIbility mode under the Quartus II-》bin-》cygwin-》bin folder:
1. Make.exe
2. Sh.exe
3. Echo.exe
4. Cygstart.exe
5. MakeInfo.exe
6. Perl.exe
7.Collect2.exe(undernios2eds\bin\nios2-gnutools\H-i686-pc-cygwin\libexec\gcc\nios2-elf\3.4.6)
8. Nios2-elf-g++.exe (under nios2eds\bin\nios2-gnutools\ H-i686-pc-cygwin\bin)
在英文網上查到的,這幾個不同的exe文件在不同的bin文件夾之間,依次右擊改掉屬性,把允許管理員使用權限前面打上勾即可。
5.如果run Niosii時經常出現到2%后N久也不動,也不報錯,甚至進度條也在滾,當然沒有前進了。這時隨便你等多久,他就呆在那里,很煩。后面發現是殺毒軟件的作用,我只有用360安全衛士,而是關掉了它15分鐘,在此期間,run就ok了,估計其他的殺毒軟件更猛,所以大家在run的時候最好關上殺毒軟件。
6.如果出現錯誤提示:There are no Nios II CPUs with debug modules available which match the values specified. Please check that your PLD is correctly configured, downloading a new SOF file if necessary.
則在nios IDE下,tools-》Flash Programmer 選項中的下圖打勾即可(條形框要下拉)。
7.在編譯niosii時如果出現了報錯make: *** [system_description/。./obj/system.h-t] Error 1。網上的一些解法:1.如果系統跑了uc/os系統,則必須加入timer,如果沒有跑系統可以不加,但是我沒有跑系統,并且我加了個timer試了下也不行。2.還有一種說法是右擊工程名在屬性欄中把ram選項改為on-chip momery,但是我不知道他說的哪個,反正沒有找到這個選項的地方。3.有人說是軟件或者操作系統問題,建議重裝軟件或系統,可是今天還能用,估計不是,重啟了下軟件,未果。4.后面的google中搜了下,網上人說在構建niosiicpu時,把設置頁面的MPU(內存保護單元)去掉即可。終于解決掉了這個可惡的問題。
8. 關于Nios II中Verify failed between address 0xxxx and 0xxxx錯誤的解決,錯誤一般的提示為:Verifying 000xxxxx ( 0%)% C; Q0 H2 R J7 W* Z9 O R* r
Verify failed between address 0xxxxxx and 0xxxxxx( O“ ^0 u; e9 E: E7 X
Leaving target processor paused
網上的人總結的解決方法如下:1. 首先要根據address后面的兩個地址判斷出錯的到底是什么器件。一般情況出現錯誤的大多是存儲器。
l1 _5 y: {+ r& Q2 e! }- G 判斷的方法是根據sopc中的地址,或者是system.h中的地址,查找相應出錯的器件。9 v$ ~- X5 h( r# T4 f” I$ D3 T
c0 `, z; n6 V2. 檢查硬件焊接是否正常。- O( Z“ V/ W4 h! L
很多時候有些問題是硬件焊接造成的,這個主要針對的是自己焊接的板子,一旦地址數據總線有任何焊接問題,都會出現verify failed錯誤。 N. B/ E# m1 b& ?5 N4 B5 W* B
) q- d$ E0 t: r& M8 A! o& K3. 檢查sopc中的componet是否正常。
( }& i, H) L. E 如果是自己加入的接口邏輯,這個部分要確認其正常與否。‘’ a# |, E9 U1 [& P3 z
$ F- x7 t‘’ u) L! Z( w4. 檢查Quartus中的設計:
- H$ O& j; |5 e$ Q+ ? _* M 檢查引腳鎖定是否正確,必須一一對應,不能有一個錯誤;
! k1 `% e6 [* b/ [‘’ @6 P$ s( q& {% R 地址對齊問題:針對8、16、32位的外部存儲器,對應地址最低位的應該是0、1、2。也就是說如果用16位的外部存儲器,那么它的最低位是ADD[1],而ADD[0]是不用的,其他同理。
2 i1 `& b2 w. k8 v8 i, E 數據總線必須是雙向IO口,這點很容易忽略。
* c$ G% \$ G% {* }) W- i 如果是SDRAM,需要計算并設定PLL的相移。
9 q+ O( F! H+ 5. Nios IDE中檢查項目設計是否正確。
6. 就是.bdf文件中的symbol在運用“Generat Pins for Symbol Ports”自動生成引腳的時候,生成的引腳表面上是與symbol連接在一起的,可實際上沒有,只要手動把Ports 與Pins連一下,問題便可以解決了
而我碰到的就是Sdram的問題,因為我的sdram忘了接clk時鐘腳了,那時候用的niosii核,核外是沒有與sdram的clk連接的引腳的,因為它的時鐘不是cpu產生,是由外部或者pll產生。
9.在用quartusII編譯時,包含了sopc系統,出現如下錯誤:
Error: Can‘’t name logic function TftTest of instance ”TftTest“ -- function has same name as current design file,未解決!
10.在 nios 里下載軟件程序時,會出現 assertion ”m_state == STATE_DEBUG“ failed: file
”nios2oci.cpp“, line 157 Using cable
”USB-Blaster [USB-0]“, device 1, instance 0x00 Pausing target processor: not
responding. Resetting and trying again: D:\altera\81\nios2eds\bin\nios2-download: line 594: 6300 Hangup
nios2-gdb-server --instance 0 --tcpport none --wri te-pid
。/Debug/nios2-download.pid 。/Debug/GigaCard.elf.srec
這個問題在我調試的過程中偶爾會出現,而且是沒有規律的,也正是這個問 題,總是阻礙著我們前進的腳步,后來我們發現一個程序本來是可以下到 onchi p-memory 中的,后來同樣的程序無論如何都下不進去了,于是我們基本可以確 定問題出在了硬件。對于有控制器的系統,晶振肯定是非常重要的,于是我們測 晶振的輸出是不是正常的,結果是有時正常有時不正常,這說明晶振虛焊了,經 過我們小寶同學精心補焊,上面那個問題就再也沒有出現過了。 在 nios 里下載軟件程序時,出現 Using cable ”USB-Blaster [USB-0]“, device 1, instance 0x00 Pausing target processor: not responding. Resetting and trying again: FAILED Leaving target processor paused 這個錯誤在可編程部分的原因大多是引腳分配錯誤。網上有人說要在 quart us 將沒有用到的 FPGA 的引腳設為“input tri-state”,但是我并沒有發現這是必 須的,可能只是一些特定地器件需要這樣設置。
評論
查看更多