如何解決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_faq01.jpg


導致這個錯誤訊息的原因很多,可惜Nios II並沒有在錯誤訊息中明確的告知錯誤原因,導致初學者不知該如何debug。

Solution
請依序檢查以下設定:

1.在Quartus II中將Unused Pins設成tri-stated
Assignments -> Device

nios_faq02.jpg


出現Setteing視窗,按下Device & Pin Options

nios_faq03.jpg


出現Device & Pin Options視窗,將Reserve all unused pins:選擇 As input tri-stated。

nios_faq04.jpg


2.在SOPC Builder中,將singnal設成Assign in Quartus II Project

nios_faq05.jpg


(當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沒用!!

nios_faq06.jpg


pins.tcl

 如何解決Nios II的『Leaving target processor paused』的錯誤訊息? (IC Design) (Quartus II) (SOPC Builder) (Nios II) cmp add_assignment  " hello_world "   ""   " clk "   " LOCATION "   " PIN_N2 "
 如何解決Nios II的『Leaving target processor paused』的錯誤訊息? (IC Design) (Quartus II) (SOPC Builder) (Nios II)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)

你可能感兴趣的:(process)