Isim你不得不知道的技巧(整理)


來源:電子產品世界; 

 

 注:本文由NingHeChuan本人多出整理所得,原文章圖片不清晰,自己整理配圖后重新發表

  安裝好ISE,系統已經自帶了ISim仿真軟件,相比於專業的仿真軟件Modelsim,ISim是免費的,不用編譯庫,小型設計仿真速度較快,對於輕量級的設計應該是完全足夠的。Modelsim作為專業的仿真軟件,具備了ISim的所有功能,同時還具備了ISim不具備的功能比如波形顯示,任意添加中間變量到波形圖中,數據導出等。不過能夠真正用好ISim,掌握住仿真技巧,你就無敵啦。

  先來看看ISim的界面吧,跟ISE的界面類似,在界面的上方是菜單欄,和一些功能菜單,界面中間是波形界面,界面的下面是控制台窗口和一些其他功能窗口,界面的左側包含了仿真的工程文件(Instances and Processes Name),對應文件的輸入輸出端口(Objects)等,這些窗口都是可以自由拖動的,可以將窗口的位置擺放到一個自己習慣的位置,如果沒有這些窗口,可以點擊菜單欄的View -> Panels 勾選需要顯示的窗口即可。

 

技巧一:更改數據顯示格式

  ISim在仿真時默認是二進制格式,為了方便顯示,我們可以更改其顯示的格式,右鍵單擊需要更改顯示格式的數據上,Radix -> 選擇合適的格式即可(如圖2所示),Binary(二進制),Hexadecimal(十六進制),Unsigned Decimal(無符號十進制數),Signed Decimal(有符號十進制數),Octal(八進制),ASCII(ASCII碼)。如果發現高低位不對,可以選擇 Reverse bit order(反轉bit順序,即高位和地位對換)。

 

  對於1bit數據,有些人不喜歡看一個孤零零的線(類似於圖1中的CLK_62M5),可以選中這個數據右鍵單擊,選擇New Virtual Bus,然后修改名字為原來的信號名字,以防忘記。如圖3所示,為修改后的數據,將CLK_62M5修改成了New Virtual Bus形式,將datain更改成了無符號十進制數。

  

技巧二:查看中間變量

  有些時候由於溝通不到位,導致模塊與模塊之間的連接出現問題,則需查看中間變量來確定問題所在。

  在Instances and Processes Name 窗口中選擇對應的非頂層模塊(中間模塊),會在Objects中出現可以添加到波形文件的信號名字,選擇需要添加信號,可以直接拖到波形文件列表中,也可以右鍵添加至波形文件列表中(如圖4所示),或者按(Ctrl+W)添加對應信號到波形文件中。

  為了方便再次仿真,能夠看到這些中間變量,而不用手動添加(對更改數據顯示格式也適用),可以保存波形文件,File -> Save As 輸入你想要的名字即可,關閉ISim時記得保存波形文件。再次仿真時,ISim不會直接調用你保存的波形文件,而是一個defalut.wcfg,此時只需通過File->Open打開你保存的波形文件,然后重新仿真即可。

 

技巧三:斷點調試

  斷點調試是一個十分方便的功能,可以查看指定位置是否有錯誤,方便debug程序。相對與其他仿真,FPGA是並行執行,更多的時候是查看波形是否正確,通過波形發現錯誤,進而定位到對應的語句或者狀態,然后斷點查找錯誤。

  在Instances and Processes Name窗口中,雙擊對應模塊,則可打開對應的.v文件,然后在需要的地方加入斷點,此時點擊reset(Ctrl+Shift+F5)按鈕,然后點擊run all(F5)運行,即可運行到斷點處。此時可以點擊單步(step 快捷鍵F11)執行按鈕,查看是否有bug。

 

技巧四:產看Memory

  很多時候我們需要查看我們的存儲空間是否正確的存儲了我們所需的值;有些時候會遇到,明明給了使能,卻沒有數據輸出,或者數據輸出時錯誤的,此時,若能夠真實的看一看存儲器的狀態,然后在波形文件中添加入存儲器相關的變量,就很有可能發現問題了。

  點擊Memory窗口,如果沒有發現Memory窗口,可以點擊菜單欄的View -> Panels 勾選,然后雙擊需要顯示的內存空間,則可打開對應的memory空間。

默認顯示的數值為二進制,可以修改數據顯示的格式(二進制、十進制有符號數、十進制無符號數、十六進制、八進制、ASCII碼),同時也可以修改地址顯示的格式。如果要查找某個地址的值,只需在地址欄中輸入這個值,按回車即可。

 

技巧五:添加塊

  添加塊不是添加模塊,而是添加一個實心方塊或者分組,可以將不同模塊之間的信號,分個開,方便查看。如圖8所示。

  這樣添加分割線和分組后看起來就很方便了,一眼就看清楚了信號的作用以及所在模塊的,十分方便。

  點擊波形文件的Name 空白處,右鍵 –> New Divider/New Group,即可添加分割和分組,當然也可以選中需要加入分組的信號,然后右鍵 – > New Group然后修改為相應的名字即可,如圖9所示。

 

                                                           

技巧七:測量時間

  在有些時候,需要測量兩個信號之間的時間間隔,可以通過如下方式來實現。

  如果只是簡單的測量兩個邊沿的時間間隔,如圖10所示,可先按着鼠標左鍵選中一個邊沿,然后拖動鼠標到另一個邊沿,此時在波形的下面將出現時間軸,則可測量兩個上升沿之間的時間。

                

 

  如果需要測量的時間太多,可以添加Marker,鼠標左鍵單擊擊到要加入標記的地方,然后點擊標記按鈕,或者右鍵 –> Markers->Add Marker,此時並不能出現時間軸,鼠標單擊Marker線,藍色的線將變成白色,並以此為時刻0點,此時就可以看到時間間隔啦,如圖11所示。

技巧八:重仿真

  在編寫verilog模塊后,很重要的一部分就是對所編寫的模塊進行仿真。而在仿真過程中,很重要的一部分就是觀察波形。這里所談的技巧其實是對於我個人而言,可能大部分人都已經知道。但還是記錄下來,算是對我自己的提醒吧。

   現在想想還是覺得好笑,以前每次打開波形窗口的時候,都是點擊下圖的Simulate Behavioral Model.每次修改了代碼,都是關掉原來的波形窗口,然后再重新點擊打開,麻煩程度不言而喻(好吧,當初因為程序簡單,其實還不覺得很麻煩。)

                                                                                       

  現在明白了,對於這種情況,肯定是會有簡單的操作的,否則這用戶體驗也太差了。

  當然,第一次仿真打開波形窗口時,還是老方法,點擊上圖的Simulate Behavioral Model。添加內部信號以及修改數值進制后結果如下圖(這里采用的是一個FIFO讀寫程序,程序不是這里需要在意的問題,我們只關心軟件的操作)。

                                   

  下面我們通過修改din[3:0]的初始值來反映這個過程,由上圖可知,din[3:0]的初始值為6.接下來我把代碼中din[3:0]的初始值改為0后重新觀察波形,那該如何操作呢?千萬不要像我以前那么傻的關掉現有窗口然后重新仿真打開了。這樣我們又要重新添加內部信號以及修改數值顯示了。

方便的步驟應該是,首先,將該波形保存,這部很簡單就不貼圖了,保存的其實就是你對該窗口的各種配置,哪怕以后你重新打開軟件,也可以通過打開之前保存的波形配置來查看仿真波形,而不用重新配置了。

保存后,修改完代碼(這里我把din[3:0]的初始值改為0,另外,代碼要記得保存,保存后代碼才能生效),然后點擊波形窗口的re-launch(如果之前沒進行保存操作的話,點擊re-launch后軟件也會提示你保存的).就可以看到仿真波形發生了變化,din[3:0]的初始值由之前的6變成了0.

                               

  另外,關於re-launch邊上的那幾個按鈕,也都是很有用處的,尤其仿真時間設置的,甚至有的時候還會因為這些設置的問題導致老是不能出現預期結果,這些操作很簡單,就不一一解釋了,大家稍微用用就知道了。

  注意:當你每次修改完test_bench文件后,就不用關閉isimulator,重新打開,這樣可以提高仿真的效率。

技巧九:改變波形顏色

  在進行比較大的工程進行仿真時,信號比較多,仿真起來不容易查看波形,所以可以選中信號右鍵點擊 signal color,可以把你的信號設置成各種你喜歡的顏色,這樣便提高了仿真的效率!

技巧十:重新打開之前配置好的仿真分組

我們為了仿真方便,一次仿真后將仿真所配置的分組和文件保存到指定文件夾,為了后面再次打開。

 

如下圖,右鍵點擊Simulate Behavioral Model,選擇Process Properties。

 勾選Use Custom Waveform Configuration File這一選項

 在下面那一欄添加你剛才保存的仿真文件路徑,完成后點擊apply。

如下圖,右鍵點擊Simulate Behavioral Model,點擊Run ,這樣你就可以打開自己原來所配置的仿真分組文件了。

最后

  仿真真的是很重要,我學習了一年FPGA才真正算的是仿真能力入了門,如果對於一個工程仿真做的好的話,可以節省你很多時間的。這是我最近用的vivodo中的Isim做的仿真,算是充分利用了仿真工具,這么久以來,這可能是我做過的最漂亮的仿真了!

 

轉載請注明出處:NingHeChuan(寧河川)

個人微信訂閱號:NingHeChuan

如果你想及時收到個人撰寫的博文推送,可以掃描左邊二維碼(或者長按識別二維碼)關注個人微信訂閱號

知乎ID:NingHeChuan

微博ID:NingHeChuan

原文地址:http://www.cnblogs.com/ninghechuan/p/6214706.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM