資料介紹
本指南是為ModelSim5.5f版本編寫的,該版本運(yùn)行于UNIX和Microsoft Windows 95/98/Me/NT/2000的操作系統(tǒng)環(huán)境中。本指南覆蓋了VHDL和Verilog模擬仿真,但是你在學(xué)習(xí)過程中會發(fā)現(xiàn)對于單純的HDL設(shè)計(jì)工作而言,它是一個很有用的參考。ModelSim具備強(qiáng)大的模擬仿真功能,在設(shè)計(jì)、編譯、仿真、測試、調(diào)試開發(fā)過程中,有一整套工具供你使用,而且操作起來極其靈活,可以通過菜單、快捷鍵和命令行的方式進(jìn)行工作。ModelSim的窗口管理界面讓用戶使用起來很方面,它能很好的與操作系統(tǒng)環(huán)境協(xié)調(diào)工作。ModelSim的一個很顯著的特點(diǎn)就是它具備命令行的操作方式,類似于一個shell有很多操作指令供你使用,給人的感覺就像是工作在Unix環(huán)境下,這種命令行操作方式是基于Tcl/Tk的,其功能相當(dāng)強(qiáng)大,這需要在以后的實(shí)際應(yīng)用中慢慢體會。
ModelSim的功能側(cè)重于編譯、仿真,不能指定編譯的器件,不具有編程下載能力。不象Synplify和MAX+PLUS II可以在編譯前選擇器件。而且ModelSim在時序仿真時無法編輯輸入波形,不象MAX+PLUS II可以自行設(shè)置輸入波形,仿真后自動產(chǎn)生輸出波形,而是需要在源文件中就確定輸入,如編寫測試臺程序來完成初始化、模塊輸入的工作,或者通過外部宏文件提供激勵。這樣才可以看到仿真模塊的時序波形圖。另外對于Synplify來說,也只具有編譯能力,但是比MAX+PLUS II可編譯的verilog的內(nèi)容要多,所以常??梢袁F(xiàn)在Synplify下編譯,生成編譯文件再送到MAX+PLUS II中使用。
ModelSim還具有分析代碼的能力,可以看出不同的代碼段消耗資源的情況,從而可以對代碼進(jìn)行改善,以提高其效率。
第二章 ModelSim的主要結(jié)構(gòu)
ModelSim的主窗口(Main window)包括菜單欄、工具欄、工作區(qū)和命令行操作區(qū)。
在工作區(qū)可以顯示Project Tab、Library Tab、Sim Tab(顯示Load Design、Hierarchical Structure);在命令行操作區(qū),可以用命令提示符的方式進(jìn)行編譯、仿真設(shè)計(jì),同時打開其他窗口。
在菜單欄View下可以打開,source window、list window、wave window、structure window、signal window、dataflow window、process window、viarables window等窗口,用來測試仿真、調(diào)試仿真。由此也可以看出該軟件具有強(qiáng)大的仿真設(shè)計(jì)能力,它提供的工具很多。
在幫助菜單里有SE的幫助文件和Tcl的幫助文件,是學(xué)用ModelSim很好的幫手。
第三章 ModelSim的簡要使用方法
在這一章里通過一些課程來簡單介紹ModelSim的使用方法,更多的需要在實(shí)際應(yīng)用中熟練和掌握。
第一課 Create a Project
1. 第一次打開ModelSim會出現(xiàn)Welcome to ModelSim對話框,選取Create a Project,或者選取File\New\Project,然后會打開Create Project對話框。
2. 在Create Project對話框中,填寫test作為Project Name;選取路徑Project Location作為Project文件的存儲目錄;保留Default Library Name設(shè)置為work。
3. 選取OK,會看到工作區(qū)出現(xiàn)Project and Library Tab。
4. 下一步是添加包含設(shè)計(jì)單元的文件,在工作區(qū)的Project page中,點(diǎn)擊鼠標(biāo)右鍵,選取Add File to Project。
5. 在這次練習(xí)中我們加兩個文件,點(diǎn)擊Add File to Project對話框中的Browse按鈕,打開ModelSim安裝路徑中的example目錄,選取counter.v和tcounter.v,再選取Reference from current location,然后點(diǎn)擊OK。
6. 在工作區(qū)的Project page中,單擊右鍵,選取Compile All。
7. 兩個文件編譯了,鼠標(biāo)點(diǎn)擊Library Tab欄,將會看到兩個編譯了的設(shè)計(jì)單元列了出來??床坏骄鸵袻ibrary的工作域設(shè)為work。
8. 最后一不是導(dǎo)入一個設(shè)計(jì)單元,雙擊Library Tab中的counter,將會出現(xiàn)Sim Tab,其中顯示了counter設(shè)計(jì)單元的結(jié)構(gòu)。也可以Design\Load design來導(dǎo)入設(shè)計(jì)。
到這一步通常就開始運(yùn)行仿真和分析,以及調(diào)試設(shè)計(jì),不過這些工作在以后的課程中來完成。結(jié)束仿真選取Design \ End Simulation,結(jié)束Project選取File \ Close \ Project。
第二課 Basic VHDL Simulation
準(zhǔn)備仿真
1. 為這次練習(xí)新建一個目錄,然后拷貝example目錄中所有的vhd文件到該目錄下。設(shè)置該目錄為當(dāng)前工作目錄,這一步通過從該目錄調(diào)用ModelSim或是選取File\Change Directory命令來完成。
2. 在編譯任何HDL代碼前,要建立一個設(shè)計(jì)庫來存放編譯結(jié)果。選取Design \ Create a New Library生成一個新的設(shè)計(jì)庫。確定選取Create: a new library and a logical mapping to it,在Library Name域中鍵入work,然后選取OK。這就在當(dāng)前目錄中建立了一個子目錄,即你的設(shè)計(jì)庫。ModelSim在這個目錄中保存了名為_info的特殊文件。
?。?Prompt : vlib work
vmap work work )
3. 選取工具欄里的Compile命令來編譯counter.vhd文件到新庫中。這將打開Compile HDL Source Files對話框。使用vcom命令是看不到的。從列表中選取counter.vhd再點(diǎn)擊Compile,完成后選取Done??梢跃幾g多個文件,按照設(shè)計(jì)的需要依次選取進(jìn)行編譯。
( Prompt : vcom counter.vhd )
4. 選取工具欄里的Load design按鈕,導(dǎo)入設(shè)計(jì)單元。Load design對話框可以讓你選擇庫和頂級( top-level )設(shè)計(jì)單元來仿真,你也可以為仿真選取Simulation Resolution限制。這次仿真運(yùn)行,下述是缺省的顯示:
? Simulator Resolution: default (the default is 1 ns)
? Library: work
? Design Unit: counter
如果設(shè)計(jì)單元是一個實(shí)體,你可以點(diǎn)擊前面的加號,來瀏覽其關(guān)聯(lián)的結(jié)構(gòu)。
?。?Prompt : vsim counter )
5. 選取counter,然后選擇Load接受設(shè)置。
6. 下面,選取View \ All打開所有的窗口,關(guān)于窗口的描述,參閱ModelSim User’s Manual。
( Prompt : view * )
7. 在Signals window選取View\List\Signals in Region,這個命令顯示List window中的頂級( top-level )信號。
?。?Prompt : add list /counter/* )
8. 下步,通過從Signals window選取View\Wave\Signals in Region添加頂級( top-level )信號到Wave window。
?。?Prompt : add wave /counter/* )
運(yùn)行仿真
通過應(yīng)用始終輸入激勵來開始仿真。
1. 點(diǎn)擊主窗口,在vsim提示符下敲如下面的命令:
?。?force clk 1 50 , 0 100 –repeat 100 )
?。?MENU : Signals\Edit\Clock )
ModelSim解釋force命令如下:
n force clk to the value 1 at 50 ns after the current time
n then to 0 at 100 ns after the current time
n repeat this cycle every 100 ns
2. 現(xiàn)在你可以練習(xí)來自于主窗口或波形窗口工具條按鈕的兩個不同的Run功能。(Run功能在主窗口和波形窗口中定義,即這兩個窗口中有Run功能)。首先選取Run按鈕,運(yùn)行完成之后選取Run All。
Run. 運(yùn)行仿真,在100ns后停止。
?。≒ROMPT: run 100) (MENU: Run \ Run 100ns)
Run-All. 一直運(yùn)行仿真,直到選取Break。
?。≒ROMPT: run -all) (MENU: Run \ Run -All)
3. 選取主窗口或波形窗口的Break按鈕來中斷仿真,一旦仿真到達(dá)一個可接受的停止點(diǎn),它就停止運(yùn)行。
在源文件窗口中的箭頭指向下一條將被執(zhí)行的語句。(如果暫停發(fā)生時,仿真沒在評測一個過程,則沒有箭頭顯示在源文件窗口上)。
下面,你將在18行的函數(shù)內(nèi)部設(shè)置一個斷點(diǎn)。
4. 移動鼠標(biāo)到源文件窗口,在18行上點(diǎn)擊設(shè)置斷點(diǎn),可以看到緊挨著行號有一個紅點(diǎn),可以用鼠標(biāo)點(diǎn)擊切換斷點(diǎn)的使能與否,斷點(diǎn)禁止后看到是一個小的紅色的園環(huán)??梢栽跀帱c(diǎn)上點(diǎn)擊鼠標(biāo)右鍵,選取Remove BreakPoint 18來取消斷點(diǎn)。
( PROMPT : bp counter.vhd 18 )
5. 選取Continue Run按鈕恢復(fù)中斷了的運(yùn)行,ModelSim會碰上斷點(diǎn),通過源文件中的一個箭頭或是在主窗口中的一條中斷信息來顯示出來。
(PROMPT: run -continue) (MENU: Run \ Continue)
6. 點(diǎn)擊Step按鈕可以單步執(zhí)行仿真,注意Variables window中值的變化。如果你愿意可以持續(xù)點(diǎn)擊Step。
?。≒ROMPT: run -step) (MENU: Step)
7. 當(dāng)你完成了,敲入以下命令結(jié)束仿真。
quit -force
8. 命令沒有尋求確認(rèn)就結(jié)束了ModelSim。
第三課 Basic verilog Simulation
1. 新建一個目錄,并設(shè)置該目錄為當(dāng)前工作目錄,通過從該目錄調(diào)用ModelSim或是選取File\Change Directory命令來完成。
2. 拷貝example目錄中verilog文件到當(dāng)前目錄下。在你編譯verilog文件前,你需要在新目錄下生成一個設(shè)計(jì)庫。如果你僅僅熟悉解釋性verilog仿真器,諸如Cadence Verilog-XL,那么對于你來說這是一個新的方法。因?yàn)镸odelSim是一個編譯性Verilog仿真器,對于編譯它需要一個目標(biāo)設(shè)計(jì)庫。如果需要的話,ModelSim能夠編譯VHDL和Verilog代碼到同一個庫中。
3. 在編譯任何HDL代碼前,要建立一個設(shè)計(jì)庫來存放編譯結(jié)果。選取Design \ Create a New Library生成一個新的設(shè)計(jì)庫。確定選取Create: a new library and a logical mapping to it,在Library Name域中鍵入work,然后選取OK。這就在當(dāng)前目錄中建立了一個子目錄,即你的設(shè)計(jì)庫。ModelSim在這個目錄中保存了名為_info的特殊文件。
?。?Prompt : vlib work
vmap work work )
4. 下面你將編譯Verilog設(shè)計(jì)。
這個設(shè)計(jì)例子由兩個Verilog源文件組成,每一個都包含一個唯一的模塊。文件counter.v包含一個名為counter的模塊,它執(zhí)行一個簡單的八位加法計(jì)數(shù)器。另一個文件tcounter.v是一個測試臺模塊(test_counter),通常用來校驗(yàn)counter。在仿真下,你可以看到這兩個文件,通過一個被測試臺例示了的模塊counter的一個簡單的實(shí)例(名為dut的實(shí)例),來層次化的設(shè)置了。稍候你將有機(jī)會看一下這個代碼的結(jié)構(gòu),現(xiàn)在,你需要編譯兩個文件到work設(shè)計(jì)庫。
5. 通過選取工具條中的Compile按鈕來編譯兩個文件。
?。?PROMPT : vlog counter.v tcounter.v )
這就打開了Compile HDL Source Files對話框。
選取兩個文件后,選擇Compile,編譯完成后選取Done。
6. 選取工具條中的Load Design按鈕開始仿真。
?。?PROMPT : vsim test_counter )
Load Design對話框允許你從指定的庫中選取一個設(shè)計(jì)單元仿真。你也可以
為仿真選取Simulation Resolution限制,缺省的庫是work,缺省的Simulation Resolution是1ns。
7. 選取test_counter,點(diǎn)擊Load接受這些設(shè)置。
8. 通過在主窗口下的vsim提示符下敲入下述命令來調(diào)出Signals、List and Wave window:
view signals list wave
(MENU: View\《window name\)
9. 為了列示頂級( top-level )信號,移動鼠標(biāo)到Signals window,選取View\List\Signals in Region。
?。?Prompt : add list /test_counter/* )
10. 現(xiàn)在向Wave window添加信號。在Signals window選取Edit\Select All選擇三個信號,拖動三個信號到Wave window的路徑名或是數(shù)值窗格的任一個中。
HDL條目也能夠從一個窗口拷貝到另一個窗口(或者是在Wave and List window內(nèi)部),通過Edit \ Copy和Edit \ Paste菜單命令。也能刪除選取的條目Edit \ Delete。
11. 下面打開Source window,選取View \ Source
?。?Prompt : view source )
12. 導(dǎo)入設(shè)計(jì)的時候會在工作去開出一個新的Sim Tab欄。這個Structure Pane展示了設(shè)計(jì)的層次結(jié)構(gòu)。你可以點(diǎn)即“+”(expand)或“-”(contract)來觀察。
13. 點(diǎn)擊其中的Function increment可以注意到其他窗口是怎么適當(dāng)?shù)淖詣痈碌?。明確地說,Source window顯示了你在Structure window所選的層次水平的Verilog代碼。在這種方式下使用Structure Pane類似于解釋性Verilog的范圍命令?,F(xiàn)在,點(diǎn)擊Structure Pane的頂層線,確定test_counter模塊顯示在Source window。
運(yùn)行仿真
1. Run運(yùn)行100ns,缺省設(shè)置。
?。≒ROMPT: run ) (MENU: Run\Run 100ns)
2. 設(shè)置Run Length為500ns,然后Run。
現(xiàn)在仿真運(yùn)行了600ns,在工作取底部狀態(tài)欄可以看到這些信息。
3. 上個命令使仿真器前進(jìn)了500ns,也可以設(shè)置仿真器推進(jìn)的時間
run @ 3000
實(shí)際仿真器向前推進(jìn)了2400ns(3000-600)
4. 選取主窗口Run All。
?。≒ROMPT: run -all ) (MENU: Run\Run -All)
5. 選取Break中斷運(yùn)行。
看Source window,察看中斷執(zhí)行的語句。
調(diào)試仿真
1. 在List window選取/test_counter/count。從List window菜單條中選取 Prop \ Signal Props。Modify Signal Properties (list) 對話框打開了。
為信號counter選取十進(jìn)制(在Radix),相應(yīng)的List window的輸出也發(fā)生改變,成為十進(jìn)制數(shù),而不是缺省的二進(jìn)制了。
2. 我們選取工作區(qū)Structure Pane中的dut:counter,然后在counter.v中的30行(這里包含一個到Verilog功能增量的調(diào)用)設(shè)置斷點(diǎn)。
3. 選取Restart按鈕,重載設(shè)計(jì)組件和重置仿真時間為零。
?。≒ROMPT: restart ) (MENU: File\Restart)
確認(rèn)Restart對話框中所有條目被選中,然后點(diǎn)擊Restart。
例子中的Verilog代碼中19行有一個stop語句,如果不Restart的話,將會停
在這一句上。
4. 選取Run –All(主窗口),恢復(fù)執(zhí)行仿真。中斷后看Source window。
?。≒ROMPT: run -all ) (MENU: Run\Run -All)
5. 正常的,當(dāng)中斷到達(dá)后你對一個或多個信號的值感興趣,你有幾個選項(xiàng)可以檢測這些值。你能看顯示在Signals window中的值;可以在Source window中,在變量上點(diǎn)右鍵;或者使用examine命令。
examine count
命令的結(jié)果是,值會輸出在主窗口。
6. 執(zhí)行單步跳使命令Step,遍歷Verilog源函數(shù)。
7. 結(jié)束仿真的命令為:quit –force。
第四課 Mixed VHDL/verilog simulation
準(zhǔn)備仿真
1. 生成一個新的工作目錄,拷貝。.\examples\mixedhdl\下的*.vhd和*.v文件到新目錄中。設(shè)置為為當(dāng)前工作目錄。運(yùn)行軟件,如果Welcome對話框出現(xiàn),選取Proceed to ModelSim。
2. Select Design\Create a New Library
?。≒ROMPT:vlib work)
Type Library Name:work
Select OK!
3. 編譯文件
?。≒ROMPT : vlog cache.v memory.v proc.v)
?。≒ROMPT : vcom util.vhd set.vhd top.vhd)
打開Compile HDL Source Files對話框。 逐個編譯Verilog文件。
cache.v memeory.v proc.v
4. 依賴設(shè)計(jì),VHDL的編譯次序是特定的。在這個例子中,top.vhd文件必須最后編譯。按照下面的順序編譯文件:
util.vhd set.vhd top.vhd
5. 編譯完成,點(diǎn)Done。
運(yùn)行仿真
1. 選取Load Design開始仿真。Load Design對話框打開,選取top實(shí)體點(diǎn)擊Load。
(PROMPT : vsim top)
2. View\All,(PROMPT : view *)
3. add list *
add wave *
?。⊿ignals MENU: View\List\Signals in Region)
?。⊿ignals MENU: View\Wave\Signals in Region)
4. 觀察一下工作區(qū)的Structure pane。注意設(shè)計(jì)中兩者的層次混合,VHDL級的用一個方框前綴指示,Verilog級的用一個圓形前綴指示。
5. 在Structure pane中點(diǎn)擊模塊c:cache,它的源代碼出現(xiàn)在源文件窗口。
6. 用查找功能定位cache.v文件中cache_set的聲明。
Edit\Find。
找到了可以發(fā)現(xiàn),cache_set是cache.v文件內(nèi)例示了的VHDL實(shí)體。
7. 在Structure window,點(diǎn)擊行“s0:cache_set(only)”。則Source window顯示了cache_set實(shí)體的VHDL代碼。
8. Quit -force
第五課 Debugging a VHDL simulation
準(zhǔn)備仿真
1. 拷貝。.\example\下的gates.vhd,adder.vhd,testadder.vhd文件到新建的工作目錄,并定位為當(dāng)前工作目錄。
2. 生成一個新庫:vlib library_2。
3. 在命令行的方式下敲入以下命令將源文件編譯到新庫中
vcom –work library_2 gates.vhd adder.vhd testadder.vhd
4. 下一步是映射新庫到工作庫,可以編輯modelsim.ini文件來生成映射,或者用vmap命令生成一個邏輯庫名字來完成。
vmap work library_2
ModelSim為你修改modelsim.ini文件。
5. 選取Design\Load Design,打開Load Design對話框。
6. 確認(rèn)simulation resolution為缺??;在設(shè)計(jì)單元中選取名為test_adder_structural的配置;單擊Load接受設(shè)置。
(PROMPT : vsim –t ns work.test_adder_structural)
7. 打開所有的窗口。(PROMPT:View *)(MENU:View\All)
8. 在Signals window中選區(qū)所有信號Edit\Select All然后拖到List window中。
?。∕ENU:View\List\Signals in Region) (PROMPT:add list *)
9. 同樣地,把信號加到Wave window中。鍵入命令:add wave *
?。∕ENU:View\Wave\Signals in Region)(DRAG&DROP)
10. 在主工具條上的運(yùn)行時間選擇器中,改變運(yùn)行時間設(shè)置為1000ns。
(MENU:Option\Simulation\Defaults)
運(yùn)行調(diào)試仿真
1. 選取Run,運(yùn)行仿真。(PROMPT:run)
主窗口中的一條消息將通報(bào)你有一個判斷錯誤。執(zhí)行下面步驟查找錯誤。
2. 首先,改變仿真判斷選項(xiàng)。選取Option\Simulation。
3. 選取Assertions頁面。改變選擇為Break on Assertion to Error并點(diǎn)擊OK。這將使仿真停在HDL判斷語句上。
4. 選取Restart。(MENU:File\Restart) (PROMPT:restart)
確定Restart對話框中所有條目被選,然后點(diǎn)擊Restart。
5. 選取Run??梢钥吹絊ource window中的箭頭指向判斷語句。
?。∕ENU:Run\Run 1000 ns) (PROMPT:run)
6. 在Variables window中,你可以看到i=6。這表示仿真停留在測試模式環(huán)路的第六次重復(fù)中。
7. 點(diǎn)擊加號“+”展開名為test_patterns的變量。
8. 也要展開排列test_patterns(6)的第六次紀(jì)錄。
判斷表明了Signal window中的 sum不等于Variables window中的sum字段。輸入a,b和cin的和應(yīng)該等于輸出sum。但是在測試向量內(nèi)有一個錯誤。為了改正這個錯誤,你需要重仿真且修改測試向量的初始值。
9. 執(zhí)行restart –f命令
參數(shù)-f使ModelSim不出現(xiàn)確認(rèn)對話框就重新仿真。
10. 在test Process window中選取 testbench process更新 Variables window。
11. 再次展開Variables window中的test_patterns和test_patterns(6)。點(diǎn)擊變量名字,高亮顯示.sum紀(jì)錄,然后選取Edit\Change。
12. 把value中數(shù)值的最后四位(1000),替換為0111,并點(diǎn)擊Change。(這只是暫時編輯,你必須用文本編輯器永久地改變源代碼。)
13. 選取Run。
?。∕ENU:Run\Run 1 us) (PROMPT:run)
這樣,仿真運(yùn)行時就不會報(bào)錯了。
改變new-line觸發(fā)
缺省的,對于列出信號的每一次變化一條新線顯示在List window中。下面的步驟將改變觸發(fā)因而每100ns就列出這些值。
1. 在List window中,選取Prop\Display Props。
2. 在Triggers頁面完成這些步驟。
·取消選取Trigger On:Signals以禁止在信號上觸發(fā)
·選取Trigger On:Strobe以開啟strobe
·在Strobe Period域鍵入100
·在First Strobe at域鍵入70
·單擊OK接受設(shè)置
3. 最后一步將把信號a,b和sum改為十進(jìn)制。選取Prop\Signal Props,打開Modify Signal Properties(list)對話框。
4. 選取信號,改變其屬性。然后結(jié)束ModelSim,quit –force。
第六課 Running a batch-mode simulation
批處理模式仿真必須運(yùn)行在DOS或UNIX提示符下。
1. 生成一個新目錄,設(shè)置成當(dāng)前工作目錄??截?。.\examples\counter.vhd到該目錄下。
2. 生成一個新的設(shè)計(jì)庫:vlib work
3. 映射庫:vmap work work
4. 編譯源文件:vcom counter.vhd
5. 使用宏文件為計(jì)數(shù)器提供激勵??截?。.\example\stim.do文件到當(dāng)前工作目錄中。
6. 生成批處理文件,內(nèi)容為:
add list –decimal *
do stim.do
write list counter.lst
7. 執(zhí)行下面的命令,運(yùn)行批處理模式仿真:
vsim –do yourfile –wlf saved.wlf counter
·在名為“counter”的設(shè)計(jì)單元調(diào)用vsim仿真器
·通過-wlf這個可選項(xiàng)通知仿真器在名為saved.wlf的日志文件中保存仿真結(jié)果
·運(yùn)行yourfile指定:值以十進(jìn)制的方式列示出來;執(zhí)行名為stim.do的激勵;并將結(jié)果寫到名為counter.lst的文件中。缺省的設(shè)計(jì)名為counter。
8. 瀏覽仿真結(jié)果 vsim –view saved.wlf
9. 打開一些窗口 view signals list wave
10. 在窗口中放置信號 add wave *
add list *
11. 運(yùn)用Variables windows實(shí)驗(yàn)保存的仿真結(jié)果。完成了結(jié)束仿真:
quit –f
有關(guān)批處理和命令行模式更多的信息,請參閱ModelSim User’s Manual。
第七課 Executing Commands at startup
本課與第六課所介紹的工作于相同的目錄,也是以命令行方式操作。
1. 這里將用到宏文件(DO)提供啟動信息??截?。.\examples\startup.do到當(dāng)前工作目錄。
2. 拷貝modeltech目錄下的modelsim.ini文件到當(dāng)前工作目錄。然后編輯該文件,指定一個在設(shè)計(jì)導(dǎo)入之后被執(zhí)行的命令。用notepad打開ini文件,取消下屬語句的注釋,它位于文件的[vsim]部分:(修改后保存)
Startup=do startup.do
3. 瀏覽這個DO文件,可以發(fā)現(xiàn)它用了一個預(yù)定義變量$entity來為不同的設(shè)計(jì)在啟動時作不同的事情。
4. 鍵入以下指令指定將被仿真的頂級設(shè)計(jì)單元,開始仿真:vsim counter
注意到?jīng)]有顯示對話框仿真器就導(dǎo)入了設(shè)計(jì)單元。對于一再地仿真同一個設(shè)計(jì)單元,這樣做是很便捷的。還可以注意到所有的窗口都打開了,這是因?yàn)槊顅iew *包括在啟動宏里面。
5. 結(jié)束ModelSim,執(zhí)行quit –f命令。
6. 在其他例子中是不需要startup.do文件的,所以用文本編輯器注釋掉modelsim.ini文件中的Startup這一行。
第八課 Finding names and values
Finding items by name in tree windows
你可以使用各個窗口(List,Process,Signal,Source,Structure,Variables,and Wave window)中的查找對話框找尋你需要的HDL條目。Edit\Find
Searching for item values in the List and Wave windows
你可以在List and Wave windows中搜尋HDL條目的值。Edit\Search
你能夠?yàn)镾ignal Name(s)定位值,搜尋基于以下的選項(xiàng):
·Search Type:Any Transition搜尋選取信號的任何變化
·Search Type:Rising Edge搜尋選取信號的上升沿
·Search Type:Falling Edge搜尋選取信號的下降沿
·Search Type:Search for Signal Value
搜尋Value域中指定的值(符合VHDL or Verilog的數(shù)值格式)
·Search Type:Search for Expression
搜尋評測一個布爾真值的Expression域中的表達(dá)式
表達(dá)式可以調(diào)用一個以上的信號,但是限制在紀(jì)錄于List windows上的信號。表達(dá)式可以包括常量、變量和Tcl宏。如果沒有指定表達(dá)式,搜尋將返回一個錯誤。參閱ModelSim Command Reference以獲取更多關(guān)于表達(dá)式語法的信息。
·Search Options:Match Count
你能夠搜尋關(guān)于值的第n個變化或者是第n個匹配。Match Count指示了搜尋到的變化或匹配的數(shù)量。
·Search Options:Ignore Glitches
忽略VHDL信號和Verilog網(wǎng)表中的零寬度的脈沖干擾。
搜尋的結(jié)果顯示在對話框的底部。
第四章 使用中的注意事項(xiàng)
1. 如果打開ModelSim,沒有出現(xiàn)Welcom to ModelSim對話框,可以在主窗口點(diǎn)擊Help \ Enable Welcome,則以后打開ModelSim就會出現(xiàn)該對話框。
2. 在工作區(qū)底部的狀態(tài)欄里會顯示一些有用的信息。
3. 操作哪個目錄中的文件一定要定位到該目錄,或者是設(shè)置為當(dāng)前工作目錄。
4. 不能用UNIX或window命令來生成work子目錄,因?yàn)槔锩鏇]有_info文件,只能用菜單或vlib命令。
5. 斷點(diǎn)只能設(shè)置在可執(zhí)行的行上,這些行以綠色行號指示
6. 在Basic Verilog Simulation一課里面,編譯兩個文件的次序是不重要的(不同于被編譯器指示生成的源碼的從屬性)。Verilog-Xl的用戶可能再次感到奇怪,他們了解設(shè)計(jì)單元之間的接口檢測或是編譯器指示的繼承關(guān)系上可能存在的問題。ModelSim推遲了這樣的檢測,直到設(shè)計(jì)被導(dǎo)入。所以在這里,如果你選擇在tcounter.v之前或之后編譯counter.v不存在任何問題。
7. 一組Verilog文件可以以任意次序編譯,但是在一個混合VHDL/Verilog設(shè)計(jì)中,Verilog文件必須在VHDL文件值前編譯。
8. force命令可以驅(qū)動clk,相當(dāng)于給仿真初始化。
- MachCAD操作指南
- Modelsim與MATLAB的聯(lián)合仿真 33次下載
- 通信原理簡明內(nèi)容教程 10次下載
- 西門子810D-840D數(shù)控系統(tǒng)簡明調(diào)試指南技術(shù)手冊 31次下載
- 西門子變頻器G120-CU240S簡明操作手冊 27次下載
- FPGA的Quartus ModelSim的安裝介紹和使用等基本操作資料免費(fèi)下載 23次下載
- Modelsim仿真軟件的入門指導(dǎo)教程免費(fèi)下載 2次下載
- ModelSim 10.1a版本經(jīng)典教程資料免費(fèi)下載 0次下載
- Modelsim仿真教程Modelsim的基礎(chǔ)入門基礎(chǔ)教程免費(fèi)下載
- ModelSim PE Student Edition官方軟件免費(fèi)下載 257次下載
- IAR WE430使用簡明指南 8次下載
- modelsim使用簡明指南 3次下載
- Altera ModelSim 6.5仿真入門教程 255次下載
- ModelSim SE 入門
- ModelSim快速上手指南 0次下載
- 使用modelsim時的問題分析 329次閱讀
- 怎樣單獨(dú)使用modelsim仿真xilinx呢? 1556次閱讀
- 淺析Modelsim的仿真步驟 1905次閱讀
- Modelsim的仿真之路(Memory小技能) 1509次閱讀
- 使用ModelSim軟件進(jìn)行時序仿真 1363次閱讀
- ModelSim手動仿真教程 5209次閱讀
- 使用Modelsim編譯激勵文件的詳細(xì)流程 3313次閱讀
- 使用Vivado 2017調(diào)用Modelsim的詳細(xì)步驟 1.7w次閱讀
- 仿真軟件ModelSim及其應(yīng)用,ModelSim的仿真流程 9664次閱讀
- 一文詳解ModelSim仿真具體流程 3596次閱讀
- 關(guān)于quartus如何調(diào)用modelsim詳細(xì)解說 3.6w次閱讀
- modelsim仿真詳細(xì)過程(功能仿真與時序仿真) 6.7w次閱讀
- Xilinx ISE是如何調(diào)用ModelSim進(jìn)行仿真的 1w次閱讀
- ModelSim SE的幾個操作:open,load,import,save format 1188次閱讀
- modelsim中的兩個操作:do wave.do 和combine signals 2743次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1490次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費(fèi)
- 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
- 0.63 MB | 3次下載 | 免費(fèi)
- 89天練會電子電路識圖
- 5.91 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評論