(原創) 如何解決Nios II的Timestamp不match的錯誤訊息? (IC Design) (DE2) (Nios II) (Quartus II) (SOPC Builder)
Abstract
有時候Nios II會出現Timestamp不match的錯誤,該如何解決呢?
Introduction
使用環境:Quartus II 7.2 SP1 + Nios II EDS 7.2 SP1 + DE2(Cyclone II EP2C35F627C6)
有時候Nios II會出現以下惱人的錯誤訊息:
Pausing target processor: OK
Reading System ID at address 0x01101038:
ID value does not match: read 0xFFFFFFFF; expected 0x4AE5D5A2
Timestamp value does not match: image on board is older than expected
Read timestamp 7:59:59 1970/01/01; expected 18:41:20 2008/05/27
The software you are downloading may not run on the system which is currently
configured into the device. Please download the correct SOF or recompile.
Restarting target processor
簡單的說,出現這個錯誤訊息的原因是你Nios II軟體編譯所用的.sof,與你剛剛燒進DE2的.sof是不同一份。
若出現以下訊息,請依照以下方式檢查
Step 1:
你用的Quartus II硬體.sof檔,和Nios II軟體所用的.sof是不是為同一份,這是很容易犯的錯誤。尤其若你用的是Quartus II Web Edition,會產生_time_limited.sof,而非原本project名稱的.sof,但因為ptf對應的是_time_limited.sof,所以一不小心就可能燒錯.sof。
若不成功,請試試Step 2。
Step 2:
將DE2 reference design的DE2_NIOS.sof燒進DE2,用Hello World project template,成功後,再將自己project的.sof燒進去。詳細原因不知,很可能是DE2版子的cache造成誤判。
若不成功,請試試step 3。
Step 3:
將DE2電源off,然後重新on,先將你的Nios II的軟體C語言程式備份,刪除所有Nios II project,將SOPC Builder重新generate .ptf,將Quartus II重新compile .sof,然後重新建立Nios II project,將備份的C語言程式碼還原。
Conclusion
這是Nios II的bug,常常會出現,目前我用的Quartus II 7.2 SP1,或許更新的版本有改進,不過Altera的工具常常大改,經常聽到原來Quartus II 6.1與Quartus II 7.1所寫的程式,在Quartus II 7.2無法編譯,所以若你打算更新Quartus II版本,或許你要慎重考慮相容性問題。
See Also
(原創) 如何解決Nios II的『Leaving target processor paused』的錯誤訊息? (IC Design) (Quartus II) (SOPC Builder) (Nios II)