問題
某項目在完成算法模型的modelsim仿真之后,開始硬件上板調(diào)試。在modelsim仿真階段,仿真結(jié)果正常,符號算法預(yù)期,然而在硬件上板調(diào)試階段,實際測試結(jié)果卻和仿真不一致,且差異較大。
開始遇到這個問題我是十分詫異的,因為一般來說,仿真對了,上板大概率就能對,因為用的是同樣的代碼,只不過一個是仿真,一個是上板,然而結(jié)果就是不一樣。
解決辦法
后來經(jīng)過我的總結(jié),遇到此類現(xiàn)象,解決辦法概括為一句話:
找modelsim仿真和實際上板的區(qū)別。
1,時序的區(qū)別
仿真時都是理想的時序,時鐘按照我們約定的周期運行仿真,結(jié)果也是理想的。實際上板后,由于布局布線的原因,綜合后的邏輯電路某些信號可能時序延遲過大,導(dǎo)致上板的邏輯和仿真有所偏差。
這個時候首先就是要檢查程序中是否有報紅的時序問題,解決時序問題(參照之前的文章),合理約束時鐘周期,合理解決時序問題,解決之后再次綜合上板,觀測是否還有差異。
2,輸入參數(shù)和初始值的區(qū)別
雖然仿真和實現(xiàn)的代碼完全一樣,但在仿真中,使用的是我們自己設(shè)定的輸入?yún)?shù),某些變量的初始值也是我們仿真設(shè)定好的,因此在某模塊的功能異常時,仔細(xì)看看該模塊的輸入?yún)?shù)和初始值,在仿真和實現(xiàn)中有何不同。
3,次數(shù)的區(qū)別
modelsim仿真往往只對某個模塊仿真1次或者幾次,而實際上板中,有可能故障是在幾十次,幾百次,甚至更多次后才會出現(xiàn)。在實際上板中,某個模塊最初的幾次運行中也許不會出問題,但如果模塊中的邏輯不嚴(yán)密,隨著時間的推移,運行次數(shù)的增加,錯誤積累到一定條件下,就會觸發(fā)bug,這種錯誤往往是極難發(fā)現(xiàn)的。
審核編輯:劉清
-
仿真器
+關(guān)注
關(guān)注
14文章
1014瀏覽量
83591 -
ModelSim
+關(guān)注
關(guān)注
5文章
174瀏覽量
47088 -
MODELSIM仿真
+關(guān)注
關(guān)注
0文章
15瀏覽量
7275
原文標(biāo)題:modelsim仿真和實際上板結(jié)果不一致
文章出處:【微信號:FPGA通信小白成長之路,微信公眾號:FPGA通信小白成長之路】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論