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