modelism簡明操作指南_第1頁
modelism簡明操作指南_第2頁
modelism簡明操作指南_第3頁
modelism簡明操作指南_第4頁
modelism簡明操作指南_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第一章介紹ModelSim第一課 CreateaProject1.ModelSimModelSim對(duì)話框,選取CreateaProject,或者選取File\New\Project,然后會(huì)翻開CreateProject對(duì)話框。2.在CreateProjecttest作為ProjectNameProjectLocationProjectDefaultLibraryName設(shè)置work。3.選取OK,會(huì)看到工作區(qū)消滅ProjectandLibraryTab。4.下一步是添加包含設(shè)計(jì)單元的文件,在工作區(qū)的Project中,點(diǎn)擊鼠標(biāo)AddFiletoProject。AddFiletoProject對(duì)話框中的Browse按鈕,翻開ModelSim安裝路徑中的example名目,選取counter.v和tcounter.v,ReferencefromcurrentlocationOK。在工作區(qū)的Project中,單擊右鍵,選取CompileAll。7.兩個(gè)文件編譯了,鼠標(biāo)點(diǎn)擊LibraryTab欄,將會(huì)看到兩個(gè)編譯了的設(shè)計(jì)單元列了出來??床坏骄鸵袻ibrary的工作域設(shè)為work。8.最終一不是導(dǎo)入一個(gè)設(shè)計(jì)單元,雙擊LibraryTab中的counter,將會(huì)消滅SimTab,其中顯示了counterDesign\Loaddesign來導(dǎo)入設(shè)計(jì)。Design\EndSimulationProjectFile\Close\Project。其次課 BasicVHDLSimulation預(yù)備仿真為這次練習(xí)建一個(gè)名目,然后拷貝example名目中全部的vhd文件到該名目ModelSim或是File\ChangeDirectory命令來完成。在編譯任何HDL代碼前,要建立一個(gè)設(shè)計(jì)庫來存放編譯結(jié)果。選取Design\CreateaNewLibraryCreate:anewlibraryandalogicalmappingtoitLibraryNamework,然后選取OKModelSim在這個(gè)名目中保存了名為_info的特別文件。(Prompt:vlibworkvmapworkwork)選取工具欄里的Compile命令來編譯counter.vhd文件到庫中。這將翻開CompileHDLSourceFilesvcom命令是看不到的。從列表中counter.vhdCompileDone??梢跃幾g多個(gè)文件,依據(jù)設(shè)計(jì)的需要依次選取進(jìn)展編譯。(Prompt:vcomcounter.vhd)選取工具欄里的Loaddesign按鈕,導(dǎo)入設(shè)計(jì)單元。Loaddesign對(duì)話框可(top-level)設(shè)計(jì)單元來仿真,你也可以為仿真選取SimulationResolution限制。這次仿真運(yùn)行,下述是缺省的顯示:SimulatorResolution:default(thedefaultis1ns)Library:workDesignUnit:counter假設(shè)設(shè)計(jì)單元是一個(gè)實(shí)體,你可以點(diǎn)擊前面的加號(hào),來掃瞄其關(guān)聯(lián)的構(gòu)造。(Prompt:vsimcounter)選取counter,然后選擇Load承受設(shè)置。下面,選取View\All翻開全部的窗口,關(guān)于窗口的描述,參閱ModelSim(Prompt:view*)SignalswindowView\List\SignalsinRegion,這個(gè)命令顯示Listwindow中的頂級(jí)top-level)信號(hào)。(Prompt:addlist/counter/*)SignalswindowView\Wave\SignalsinRegion添加頂級(jí)(top-level)Wavewindow。(Prompt:addwave/counter/*)運(yùn)行仿真通過應(yīng)用始終輸入鼓舞來開頭仿真。點(diǎn)擊主窗口,在vsim提示符下敲如下面的命令:forceclk1500100–repeat100)(MENU:Signals\Edit\Clock)ModelSimforce命令如下:forceclktothevalue1at50nsafterthecurrenttimethento0at100nsafterthecurrenttimerepeatthiscycleevery100ns現(xiàn)在你可以練習(xí)來自于主窗口或波形窗口工具條按鈕的兩個(gè)不同的Run功〔RunRun功能。RunRunAll。Run. 100ns后停頓。(PROMPT:run100)(MENU:Run\Run100ns)Run-All. Break。(PROMPT:run-all)(MENU:Run\Run-All)選取主窗口或波形窗口的Break按鈕來中斷仿真,一旦仿真到達(dá)一個(gè)可承受的停頓點(diǎn),它就停頓運(yùn)行?!布僭O(shè)暫停發(fā)生時(shí),仿真沒在評(píng)測(cè)一個(gè)過程,則沒有箭頭顯示在源文件窗口上〕。下面,你將在18行的函數(shù)內(nèi)部設(shè)置一個(gè)斷點(diǎn)。個(gè)紅點(diǎn),可以用鼠標(biāo)點(diǎn)擊切換斷點(diǎn)的使能與否,斷點(diǎn)制止后看到是一個(gè)小的紅色的園環(huán)。可以在斷點(diǎn)上點(diǎn)擊鼠標(biāo)右鍵,選取RemoveBreakPoint18來取消斷點(diǎn)。(PROMPT:bpcounter.vhd18)選取ContinueRun按鈕恢復(fù)中斷了的運(yùn)行,ModelSim會(huì)碰上斷點(diǎn),通過源文件中的一個(gè)箭頭或是在主窗口中的一條中斷信息來顯示出來。(PROMPT:run-continue)(MENU:Run\Continue)點(diǎn)擊StepVariableswindow中值的變化。假設(shè)Step。(PROMPT:run-step)(MENU:Step)當(dāng)你完成了,敲入以下命令完畢仿真。quit-force命令沒有尋求確認(rèn)就完畢了ModelSim。第三課 BasicverilogSimulation建一個(gè)名目,并設(shè)置該名目為當(dāng)前工作名目,通過從該名目調(diào)用ModelSimFile\ChangeDirectory命令來完成。拷貝example名目中verilogverilog文件前,verilog諸如CadenceVerilog-XL,ModelSim是一個(gè)編譯性Verilog仿真器,對(duì)于編譯它需要一個(gè)目標(biāo)設(shè)計(jì)庫。假設(shè)需要的話,ModelSim能夠編譯VHDLVerilog在編譯任何HDL代碼前,要建立一個(gè)設(shè)計(jì)庫來存放編譯結(jié)果。選取Design\CreateaNewLibraryCreate:anewlibraryandalogicalmappingtoitLibraryNamework,然后選取OKModelSim在這個(gè)名目中保存了名為_info的特別文件。(Prompt:vlibworkvmapworkwork)4VerilogVerilog文件counter.v包含一個(gè)名為counter的模塊,它執(zhí)行一個(gè)簡潔的八位加法計(jì)數(shù)器。另一個(gè)文件tcounter.v是一個(gè)測(cè)試臺(tái)模塊(test_counter),通常用來校驗(yàn)counter。在仿真下,你可以看到這兩個(gè)文件,通過一個(gè)被測(cè)試臺(tái)例示了的模塊counter的一個(gè)簡潔的實(shí)例〔名為dut的實(shí)例〕,來層次化的設(shè)置了。稍候你將有時(shí)機(jī)看一下這個(gè)代碼的構(gòu)造,現(xiàn)在,你需要編譯兩個(gè)文件work設(shè)計(jì)庫。通過選取工具條中的Compile按鈕來編譯兩個(gè)文件。(PROMPT:vlogcounter.vtcounter.v)CompileHDLSourceFiles對(duì)話框。選取兩個(gè)文件后,選擇Compile,編譯完成后選取Done。LoadDesign按鈕開頭仿真。(PROMPT:vsimtest_counter)LoadDesign對(duì)話框允許你從指定的庫中選取一個(gè)設(shè)計(jì)單元仿真。你也可以為仿真選取SimulationResolution限制,缺省的庫是work,缺省的SimulationResolution1ns。選取test_counter,點(diǎn)擊Load承受這些設(shè)置。vsimSignals、ListandWavewindow:viewsignalslistwave(MENU:View\<windowname\)為了列示頂級(jí)(top-level信號(hào),移動(dòng)鼠標(biāo)到SignalswindowView\List\SignalsinRegion。(Prompt:addlist/test_counter/*)WavewindowSignalswindowEdit\SelectAll選擇三個(gè)信號(hào),拖動(dòng)三個(gè)信號(hào)到Wavewindow的路徑名或是數(shù)值窗格的任一個(gè)中。HDL條目也能夠從一個(gè)窗口拷貝到另一個(gè)窗口〔或者是在WaveandListwindow〕,Edit\CopyEdit\Paste菜單命令。也能刪除選Edit\Delete。Sourcewindow,View\Source(Prompt:viewsource)導(dǎo)入設(shè)計(jì)的時(shí)候會(huì)在工作去開出一個(gè)的SimTab欄。這個(gè)StructurePane〔expandt來觀看。點(diǎn)擊其中的Functionincrement可以留意到其他窗口是怎么適當(dāng)?shù)淖詣?dòng)更的。明確地說,SourcewindowStructurewindow所選的層VerilogStructurePane類似于解釋性Verilog的范圍命令?,F(xiàn)在,點(diǎn)擊StructurePane的頂層線,確定test_counterSourcewindow。運(yùn)行仿真1.Run100ns,缺省設(shè)置。(PROMPT:run(MENU:Run\Run100ns)2.RunLength500nsRun。3.500ns,也可以設(shè)置仿真器推動(dòng)的時(shí)間run@30004.RunAll。(PROMPT:run-all(MENU:Run\Run-All)5.Break中斷運(yùn)行。Sourcewindow,觀看中斷執(zhí)行的語句。調(diào)試仿真在Listwindow選取/test_counter/count。從Listwindow菜單條中選取Prop\SignalProps。ModifySignalProperties(list)對(duì)話框翻開了。為信號(hào)counter選取十進(jìn)制〔在Radix〕,相應(yīng)的Listwindow的輸出也發(fā)生轉(zhuǎn)變,成為十進(jìn)制數(shù),而不是缺省的二進(jìn)制了。我們選取工作區(qū)StructurePane中的dut:counter,然后在counter.v中的30行〔這里包含一個(gè)到Verilog功能增量的調(diào)用〕設(shè)置斷點(diǎn)。按鈕,重載設(shè)計(jì)組件和重置仿真時(shí)間為零。(PROMPT:restart(MENU:File\Restart)確認(rèn)Restart對(duì)話框中全部條目被選中,然后點(diǎn)擊Restart。例子中的Verilog代碼中19行有一個(gè)stop語句,假設(shè)不Restart的話,將會(huì)停在這一句上。選取RunAll〔主窗口〕,恢復(fù)執(zhí)行仿真。中斷后看Sourcewindow。(PROMPT:run-all(MENU:Run\Run-All)檢測(cè)這些值。你能看顯示在Signalswindow中的值;可以在Sourcewindow中,在變量上點(diǎn)右鍵;或者使用examine命令。examinecount命令的結(jié)果是,值會(huì)輸出在主窗口。執(zhí)行單步跳使命令Step,遍歷Verilog源函數(shù)。7.完畢仿真的命令為:quit–force。第四課 MixedVHDL/verilogsimulation預(yù)備仿真生成一個(gè)的工作名目,拷貝..\examples\mixedhdl\下的*.vhd和*.v文件到WelcomeProceedtoModelSim。SelectDesign\CreateaNewLibrary〔PROMPT:vlibwork〕TypeLibraryName:workSelectOK!編譯文件(PROMPT:vlogcache.vmemory.vproc.v)(PROMPT:vcomutil.vhdset.vhdtop.vhd)CompileHDLSourceFiles對(duì)話框。逐個(gè)編譯Verilogcache.vmemeory.vproc.vtop.vhd編譯。依據(jù)下面的挨次編譯文件:util.vhdset.vhdtop.vhd5.Done。運(yùn)行仿真1.LoadDesign開頭仿真。LoadDesigntop實(shí)體點(diǎn)擊Load。(PROMPT:vsimtop)2.View\All,(PROMPT:view*)addlist*addwave*(SignalsMENU:View\List\SignalsinRegion)(SignalsMENU:View\Wave\SignalsinRegion)觀看一下工作區(qū)的Structurepane。留意設(shè)計(jì)中兩者的層次混合,VHDL級(jí)的用一個(gè)方框前綴指示,Verilog在Structurepane中點(diǎn)擊模塊c:cache,它的源代碼消滅在源文件窗口。6.cache.vcache_setEdit\Find。找到了可以覺察,cache_set是cache.v文件內(nèi)例示了的VHDL實(shí)體。7.Structurewindow,點(diǎn)擊行“s0:cache_set(only)Source顯示了cache_set實(shí)體的VHDL代碼。8.Quit-force第五課 DebuggingaVHDLsimulation預(yù)備仿真工作名目,并定位為當(dāng)前工作名目。生成一個(gè)庫:vliblibrary_2。vcom–worklibrary_2gates.vhdadder.vhdtestadder.vhd4.下一步是映射庫到工作庫可以編輯modelsim.ini 成映射或者vmap命令生成一個(gè)規(guī)律庫名字來完成。vmapworklibrary_2ModelSimmodelsim.ini文件。Design\LoadDesignLoadDesign對(duì)話框。simulationresolutiontest_adder_structuralLoad承受設(shè)置。(PROMPT:vsim–tnswork.test_adder_structural)7.翻開全部的窗口。(PROMPT:View*)(MENU:View\All)8.SignalswindowEdit\SelectAllListwindow中。(MENU:View\List\SignalsinRegion)(PROMPT:addlist*)9.Wavewindowaddwave*(MENU:View\Wave\SignalsinRegion)(DRAG&DROP)10. 1000ns。(MENU:Option\Simulation\Defaults)運(yùn)行調(diào)試仿真選取Run,運(yùn)行仿真。(PROMPT:run)主窗口中的一條消息將通報(bào)你有一個(gè)推斷錯(cuò)誤。執(zhí)行下面步驟查找錯(cuò)誤。首先,轉(zhuǎn)變仿真推斷選項(xiàng)。選取Option\Simulation。選取Assertions頁面。轉(zhuǎn)變選擇為BreakonAssertiontoError并點(diǎn)擊OKHDL選取Restart。(MENU:File\Restart)(PROMPT:restart)確定Restart對(duì)話框中全部條目被選,然后點(diǎn)擊Restart。5.選取Run??梢钥吹絊ourcewindow中的箭頭指向推斷語句。(MENU:Run\Run1000ns)(PROMPT:run)i=6。這表示仿真停留在測(cè)試模式環(huán)路的第六次重復(fù)中。點(diǎn)擊加號(hào)“+”開放名為test_patterns的變量。也要開放排列test_patterns〔6〕的第六次紀(jì)錄。Signalwindow中的sumVariableswindowsum字段。輸入a,b和cin的和應(yīng)當(dāng)?shù)扔谳敵鰏um。但是在測(cè)試向量內(nèi)有一個(gè)錯(cuò)誤。為了改正這個(gè)錯(cuò)誤,你需要重仿真且修改測(cè)試向量的初始值。restart–f命令參數(shù)-f使ModelSim不消滅確認(rèn)對(duì)話框就重仿真。testProcesswindowtestbenchprocessVariableswindow。Variableswindowtest_patternstest_pattern〔6點(diǎn)擊變量名字,高亮顯示.sumEdit\Change。value中數(shù)值的最終四位1000,替換為0111,并點(diǎn)擊Change〔〕選取Run。(MENU:Run\Run1us)(PROMPT:run)這樣,仿真運(yùn)行時(shí)就不會(huì)報(bào)錯(cuò)了。new-line缺省的,對(duì)于列出信號(hào)的每一次變化一條線顯示在Listwindow100ns1.ListwindowProp\DisplayProps。2.Triggers頁面完成這些步驟。·TriggerOn:Signals以制止在信號(hào)上觸發(fā)·TriggerOn:Strobestrobe·StrobePeriod100·FirstStrobeat70·OK承受設(shè)置最終一步將把信號(hào)a,b和sum改為十進(jìn)制。選取Prop\SignalProps,翻開ModifySignalProperties(list)對(duì)話框。選取信號(hào),轉(zhuǎn)變其屬性。然后完畢ModelSim,quit–force。第六課 Runningabatch-modesimulation批處理模式仿真必需運(yùn)行在DOS或UNIX提示符下。1.生成一個(gè)名目,設(shè)置成當(dāng)前工作名目??截?.\examples\counter.vhd該名目下。2.生成一個(gè)的設(shè)計(jì)庫:vlibwork3.映射庫:vmapworkwork編譯源文件:vcomcounter.vhd中。addlist–decimal*dostim.dowritelistcounter.lstvsim–doyourfile–wlfsaved.wlfcounter·在名為“counter”vsim通過-wlf這個(gè)可選項(xiàng)通知仿真器在名為saved.wlf的日志文件中保存仿真結(jié)果·yourfilestim.do;并將結(jié)果寫到名為counter.lstcounter。8.掃瞄仿真結(jié)果vsim–viewsaved.wlf9.viewsignalslistwaveaddwave*addlist*運(yùn)用Variableswindows試驗(yàn)保存的仿真結(jié)果。完成了完畢仿真:quit–fModelSimUser’sManul。第七課 ExecutingCommandsatstartup本課與第六課所介紹的工作于一樣的名目,也是以命令行方式操作。前工作名目??截恗odeltech名目下的modelsim.ininotepadini消下屬語句的注釋,它位于文件的[vsim]局部:(修改后保存)Startup=dostartup.do掃瞄這個(gè)DO文件,可以覺察它用了一個(gè)預(yù)定義變量$entity來為不同的設(shè)計(jì)在啟動(dòng)時(shí)作不同的事情。鍵入以下指令指定將被仿真的頂級(jí)設(shè)計(jì)單元,開頭仿真:vsimcounterview*包括在啟動(dòng)宏里面。ModelSimquit–f命令。在其他例子中是不需要startup.do文件的,所以用文本編輯器注釋掉modelsim.iniStartup第八課FindingnamesandvaluesFindingitemsbynameintreewindows〔List,Process,Signal,Source,Structure,Variables,andWa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論