Verilog代碼編寫完成后,可以Modelsim中進行編譯。
與其他編程軟件相同,錯誤(error)的定位不一定準確,錯誤的發生位置可能與編譯時提示的錯誤位置不同;檢查error時,要從第一行開始檢查,可能位置靠前的錯誤更正后,位置靠后的錯誤同時被更正。
與其他編程軟件不同,警告(Warning)不能忽略,只有error/warning都消除才能進行仿真。否則,仿真結果可能不正確,可能導致真實芯片出現問題,造成百萬元到千萬元人民幣的損失。
圖片來源:學堂在線《IC設計與方法》
正確編譯完成后,可以進行仿真。
Modelsim仿真將設計以樹狀表示,設計中的每一個實體,每一個module、每一個進程(always塊、initial塊等)在Modelsim仿真中以對象的形式展現。
如下圖所示樹狀結構,頂層是test_counter,即測試平臺。平臺下方是DUT(被測設計)和三個進程。三個進程是三個initial塊,分別用來產生時鐘信號、復位信號、其他動作。
圖片來源:學堂在線《IC設計與方法》
上圖右下角為Object窗口,顯示當前有哪些信號可以觀測,包括輸入信號、輸出信號、內部信號等,如在test_counter層次,可以觀測時鐘(clk)、復位(reset)、計數器(count)的信號。
仿真過程有四類控制操作需要掌握。Restart、仿真時間指定、持續仿真、強制停止。
Restart主要運用于修改源代碼或需要改變波形窗口顯示時間的情況,在做出相應的修改后,運用Restart控制仿真重新開始。
仿真時間指定、持續仿真、強制停止主要用于永遠執行的程序,永遠執行的程序會造成CPU資源的浪費,也會使波形窗口顯示時間過長,波形窗口顯示時間過長可能會導致觀測人員無法觀測需要的波形。因此需要上述三類操作控制仿真時間。
圖片來源:學堂在線《IC設計與方法》
仿真工具執行仿真結束后,設計人員需要檢查電路運行結果是否正確。最常見的方式是通過波形窗口觀測電路輸出信號的波形是否正確。主要觀測的信號包括輸入信號、內部信號、輸出信號。
檢測輸入信號的目的是排除輸入不正確造成輸出不正確的情況,需觀測輸入信號包括時鐘信號、復位信號、數據信號。設計人員需觀測時鐘信號的周期或頻率、0時刻時鐘信號的值、時鐘信號高電平和低電平的值,需觀測復位信號的有效脈沖(個人理解:能夠導致輸入信號變化的脈沖)是否符合期望、并確定復位信號的時鐘沿(個人理解:脈沖發生的時間)不能與時鐘信號重疊,需確定數據信號的時鐘沿不能與時鐘信號重疊。
觀測電路的內部信號包括狀態機(能夠控制電路內部狀態轉移)、控制信號。
圖片來源:學堂在線《IC設計與方法》
當出現無法觀測波形情況時,可以通過波形窗口調整。波形窗口調整方式包括總線展開和收縮、改變數據顯示方式、波形放大和縮小、光標操作、定位信號的事件、搜索特定信號值、增加驅動信號等。
圖片來源:學堂在線《IC設計與方法》
有時通過波形不容易尋找出芯片設計的問題,需要更高層次的方式,如數據流窗口調試,追蹤信號來源。在數據流窗口中可以顯示出設計的層次圖,選擇某一信號,仿真工具就將顯示產生這一信號的數據流圖(Dataflow),數據流圖可以分析某一信號故障的根源。
圖片來源:學堂在線《IC設計與方法》
數據流圖、波形窗口、源代碼可進行交叉定位,同時分析某一進程(如always塊)的輸入(數據流圖觀測)和行為(源代碼觀測),確定故障(波形窗口觀測)源于其輸入還是源于其行為,可以快速找出電路故障。
審核編輯 :李倩
-
ModelSim
+關注
關注
5文章
174瀏覽量
47126 -
編程軟件
+關注
關注
3文章
143瀏覽量
23465 -
時鐘信號
+關注
關注
4文章
445瀏覽量
28512
原文標題:芯片設計相關介紹(22)——Modelsim仿真工具
文章出處:【微信號:行業學習與研究,微信公眾號:行業學習與研究】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論