(原創) 如何解決Nios II的『Leaving target processor paused』的錯誤訊息? (IC Design) (Quartus II) (SOPC Builder) (Nios II)
Abstract
『Leaving target processor paused』是Nios II初學者常遇到的錯誤訊息,本文提出解決方法。
使用環境:Quartus 6.0 SP1 + Nios II 6.0 + DE2 (Cyclone II EP2C35F627C6)
Introduction
C++在template部分,有一個讓人詬病之處是:compiler所回報的錯誤訊息很難debug,導致很多人對template避而遠之。Nios II也是如此,錯誤訊息並不明顯,初學者常看到以下錯誤訊息。
導致這個錯誤訊息的原因很多,可惜Nios II並沒有在錯誤訊息中明確的告知錯誤原因,導致初學者不知該如何debug。
Solution
請依序檢查以下設定:
1.在Quartus II中將Unused Pins設成tri-stated
Assignments -> Device
出現Setteing視窗,按下Device & Pin Options
出現Device & Pin Options視窗,將Reserve all unused pins:選擇 As input tri-stated。
2.在SOPC Builder中,將singnal設成Assign in Quartus II Project
(當SOPC Builder中有設定Target Board時,才需設定此頁,若為Unspecified Board時,則無此頁設定。)
3.clk和reset_n也要加上pin assignment
初學者常忘記將clk和reset_n加上pin assignment,clk的pin assignment在DE2為PIN_N2 (50 Mhz),這沒問題,但reset_n要接什麼呢?這裡很tricky,一定要接上KEY!!接switch沒用!!
pins.tcl
cmp add_assignment "hello_world" "" "reset_n" "LOCATION" "PIN_G26"
Conclusion
這是我和Quartus II、SOPC Builder和NIOS II博鬥數天的心得,原本也懷疑是不是DE2開發版有問題,換過5塊版子後,證明是設定的問題。老實說,Quartus II這類EDA工具,還是沒有軟體開發工具如Visual Studio那樣成熟,Visual Studio的錯誤訊息很明顯,很容易根據錯誤訊息debug,但Quartus II、Nios II的錯誤訊息都很含糊, 完全需靠『經驗』和不斷的嘗試錯誤。
See Also
(原創) 如何解決Nios II的Timestamp不match的錯誤訊息? (IC Design) (DE2) (Nios II) (Quartus II) (SOPC Builder)
(原創) DE2_NIOS_Lite 1.0 (SOC) (Nios II) (SOPC Builder) (DE2)
(原創) (原創) 如何解決Nios II的『Leaving target processor paused』的錯誤訊息 (II)? (SOC) (Nios II) (SOPC Builder) (DE2-70)
(原創) 如何解決『Timestamp value does not match: image on board is older than expected』錯誤訊息? (SOC) (Nios II)