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