電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子教材>ModelSim簡(jiǎn)明操作指南

ModelSim簡(jiǎn)明操作指南

2017-11-23 | doc | 80KB | 次下載 | 1積分

資料介紹

本指南是為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)于給仿真初始化。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費(fèi)下載
  2. 0.00 MB  |  1490次下載  |  免費(fèi)
  3. 2單片機(jī)典型實(shí)例介紹
  4. 18.19 MB  |  92次下載  |  1 積分
  5. 3S7-200PLC編程實(shí)例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識(shí)別和講解說(shuō)明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  10次下載  |  免費(fèi)
  11. 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
  12. 0.11 MB  |  4次下載  |  免費(fèi)
  13. 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
  14. 0.63 MB  |  3次下載  |  免費(fèi)
  15. 89天練會(huì)電子電路識(shí)圖
  16. 5.91 MB  |  3次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費(fèi)
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費(fèi)
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費(fèi)
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費(fèi)
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費(fèi)
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費(fèi)
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費(fèi)
  15. 8開關(guān)電源設(shè)計(jì)實(shí)例指南
  16. 未知  |  21539次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191183次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183277次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138039次下載  |  免費(fèi)