ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:543.39KB ,
资源ID:23883151      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23883151.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(modelsim四部曲.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

modelsim四部曲.docx

1、modelsim四部曲準備事項1. ModelSim試用版下載 2. 範例程式下載 (史丹佛大學一門課的期末專題Implememtation of Viterbi Decoder:constrain length K=3, code rate R=1/2, register-exchange) 整個project共含7個Verilog程式:system.v (top-level) |- clkgen.v |- chip_core.v |- controller.v |- spu.v |- acs4.v |- acs1.v (或是另外一個Verilog的簡單例子,可以從C: SynaptiCAD

2、 Examples TutorialFiles VeriLoggerBasicVerilogSimulation add4.v and add4test.v)(或是另外一個VHDL的簡單例子,可以從C: Modeltech_5.7e examples adder.vhd and testadder.vhd) ModelSim PE /LE /SE 差別在哪? 本篇文章內容主要在教導軟體使用,以Verilog程式為範例。假設各位讀者已經熟悉Verilog,廢話不多說,讓我們馬上來見識一下ModelSim .快速上手四部曲:建立Project、引進HDL Files、Compile、模擬(Simu

3、late/Loading and Run)1. 建立一個新的Project 1-1 第一次執行程式時,可以從 開始 程式集 ModelSim SE ModelSim;或是執行ModelSim在桌面的捷徑在Library標籤頁中,展開各Library就可以看到其下含的所有Package (for VHDL),進一步以Edit打開,可檢視該Package與Package Body內容1-2 File New Project . 輸入project name and Location按OK鍵後 指定的路徑下會產生一個叫work的預設子資料夾,還有Viterbi.cr.mti、Viterbi.mpf

4、兩個檔案 主操作畫面左邊的Workspace內,在原本的Library標籤外,會出現另一個Project標籤(但此時裡面內容是空的) 還會蹦出另一個Add items to the Project視窗 .mpf 檔儲存的是此project的相關資料,下次要開啟此project 就是利用 File Open Project. 開啟此.mpf若要移除之前建立的project,請從 File Delete Project. 移除 2. 載入Project 的HDL source codes 按Add items to the Project視窗中的Add Existing File (或是從File

5、 Add to Project Existing Files .)HDL files擺放的位置,路徑名稱不能有中文,否則軟體會抓不到files關掉Add items to the Project視窗,此時的Project下出現了HDL File,一堆問號表示這些檔案都還沒compile。如果要對project新增或移除HDL File:在Workspace內按滑鼠右鍵,選擇 Add to Project Existing File. (新增) Remove from Project (移除) 3. Compile 在Project標籤頁內,選定任一檔案,按滑鼠右鍵選擇 Compile Comp

6、ile All 或是直接按 icon Compile Out-of-Data只重新compile有修改過的檔案 (比較節省時間,故也較常用) 此刻只做Compile 還沒做Simulate,而ModelSim必須要作完Simulate (Loading)後才會把所有檔案link起來。如果compiler的結果出現有errors或warnings的訊息,直接在該訊息上雙擊,即可進一步帶出詳細的訊息說明。 如果您處理的是VHDL project,那在做Compile前,先在Project標籤頁內,選定所有檔案,按滑鼠右鍵選擇Properties做如下設定: 3. Simulate (Loading

7、) 切換到Library標籤頁,展開work目錄,其下可以看到此project包含的所有檔案,檔案前的符號M,表示這些檔案的性質是Module;如果你寫的是VHDL程式那檔案前所看到的符號會變成E(Entity) and A(Architecture)。 如果compiler完,work目錄底下仍然看不到東西,無法展開,請稍等510秒(等程式update最新狀態),或是按滑鼠右鍵選擇Update重新整理 4-1 直接以滑鼠左鍵雙擊要Simulate 的檔案,或是按滑鼠右鍵選擇Simulate。此處選擇要Simulate (Loading)的檔案不一定要是top-level file,但如果你選

8、的不是top-level file,project中的sub-ciricuit必須一個一個load,比較麻煩。 請注意,這裡的Simulate並沒有真的做模擬,只是把程式Loading進來,並將sub-module 彼此間 link 起來 Loading 要simulate 的檔案的動作,也可以按Simulate icon 來完成 執行以上動作時,如果再附加一個設定步驟:到Options標籤頁下,核選Enable source file coverage,即可在模擬的程序中,附帶幫你檢查testbench 對於 if / case conditional statement的模擬涵蓋率。 執行

9、完Simulate (Load)的動作後,程式會自動再跳出兩個標籤頁Sim與Files,此時在Sim下可以看到整個Project的Hierarchy關係 要編輯HDL file,可以從Project(顯示檔案的狀態)或File標籤頁內雙擊HDL檔案以開啟編輯視窗(edit window)。sim標籤頁內雖然也有列出所有HDL檔案,但雙擊HDL檔案開啟的是來源視窗(source window),不能edit。 檔案編輯(修改)完成(存檔)後,回到Project標籤頁內看該檔案的狀態時,會發現它變成未compile的問號,要重新對它做compile,把目前的Simulate關掉(Simulate

10、End Simulation.),再重新 load一次,才能對新的程式做模擬 。 若要查看此project架構,必須切換到Sim標籤頁;不像VeriLogger Pro只要Compiler完,就可以在同一個Project畫面下看到整個project structure / hierarchy。Sim 標籤頁另外一個有趣的功能是:在Sim 標籤頁內選定哪一個module,其相對的內容會自動update 於signals、source、edit.等window (如果你有開啟這些視窗的話)。另外,source與edit window兩者都可用來查看模擬時的某一個變數值或設定中斷點,但前者不可編輯。

11、 Project 標籤頁用以顯示HDL檔案的狀態(也可以開啟其編輯視窗) Library 標籤頁用以選定要Simulate的檔案 Sim 標籤頁用以查看project structure與開啟某module的來源視窗 File 標籤頁用以開啟某HDL檔案的編輯視窗= 四個功能拆成四個設定頁,這是ModelSim 比較耍寶的地方。 以下,我們接著要把想觀察的訊號引出來,然後Run simulation. 4-2 在Sim標籤頁內選定top-level file (system.v),打開 signals window:View Signals 就可以看到top-level file的所有I/O

12、signal。 4-3 在signals window的左半邊欄位內選定想看的訊號(如orig_bit_s1、y1_s1、y2_s1、decoded_coulmn_s1),按滑鼠右鍵 Add to Wave Selected Signals,會跳出另一個wave window並把您想觀察的訊號都列出來 直接把signals window 的訊號拖曳到wave window 也可以 (訊號的排列次序也可以用左鍵拖曳搬移)。 訊號的排列次序,可以直接用滑鼠拖曳調整。如果要看的是module / sub-module 所有訊號,4-24-3步驟可以一次完成: 4-4切回主視窗,Simulate Ru

13、n Run 100ns - 預設Run length=100ns (一次跑100ns;可以更改) Simulate Run Run-All - 跑到按 Break 才暫停 - 按Continue Run 則繼續 Simulate Run Step - 單步執行程式 (for debugging) Simulate Run Restart - 重新執行模擬 程式執行暫停或是跑到中斷點時,要查看任一訊號或變數的數值,方法有三種 從wave window查看 游標指到source or edit視窗內的該變數,即會顯示該變數當時的數值 View Variables 模擬結果如下 如果想要看所有波形的

14、範圍:View Zoom Zoom Full 以滑鼠左鍵在波形顯示區域點一下,就會出現黃色的垂直座標線(cursor, 參閱step 5-4)。 直接在訊號波形上雙擊,會帶出Dataflow window (step 5-3);如果你是在紅色的(unknown)線上雙擊,還可以進一步的在Dataflow window內選定該unknown signal 的wire,按滑鼠右鍵選擇 TraceX 協助你debug 如果訊號不想以預設的二進位表示,可以在wave window內選定該訊號名稱,按滑鼠右鍵選擇Signal Properties.,然後選擇表示方法(如十進位表示Decimal)。 5.

15、 Dataflow window (for debugging and tracing) Dataflow window可用來檢視所設計的電路,其訊號的實際連接情況(Drivers / Receivers),也就是顯示訊號在執行模擬的過程中,經過哪些程序(process),開啟的方法有兩個: 直接雙擊wave window的訊號波形,會自動跳出dataflow window,其中顯示該訊號的連接情況;以這種方法帶出dataflow window會在下方同時顯示wave viewer,不需要的話可以從ViewShow Wave取消。 從ModelSim主視窗中的ViewDataflow開啟視窗,

16、從signals window將要看的訊號拖曳到Dataflow window 5-1 假設我們要看的是orig_del_bit_s1訊號,此時Dataflow window顯示如下:5-2 如果想進一步察看此訊號的Receiver,選定其輸出連線(red highlight),按 (expand net to all readers, ie. dow-stream circuit) 就會顯示如下結果: (直接以滑鼠左鍵雙擊red highlighted line也有同樣效果)同理,可以使用 查看訊號的Drivers (ie. up-stream circuit)、使用 查看訊號的Driver

17、s and Receivers。(Erase All):清除dataflow window 5-3 從dataflow視窗的ViewShow Wave,打開embedded wave viewer 選定dataflow視窗內的元件#ASSIGN#104,此時會看到wave視窗內列出該元件的所有I/O: (此時如果有打開edit or source window,會自動顯示出元件#ASSIGN#104在原始碼的相對位置) 5-4 執行模擬3500 ns,結果如下:可以看到此cell的輸入觸發輸出的情況 1. 選定想要用cursor測量觸發時間點的訊號 2. 以滑鼠左鍵在wave顯示視窗上點一下,

18、cursor(黃色垂直線含時間座標)會自動出現 3. 利用Finder Previous Transition、Finder Next Transition兩個icons,可以讓cursor自動貼到trigger edge,以便正確的量測觸發時間點。此功能非常便於尋找訊號的觸發/轉態點(active point) 如果想將某一個cursor快速顯示在wave window內(將顯示波形範圍移到該處): View Cursors 選擇想跳至的cursor 5-5 如何step by step追蹤output被input觸發的情況呢?1. 選定想要追蹤被觸發情況的訊號 2. 按 Trace inp

19、ut net to event icons 3. 自動產生另一個cursor指到前一個觸發output的input時間點,多按幾次Trace input net to event,會看到如下圖所示的情況,兩個cursor之間的時間間距,為白色文字所顯示的100 ns。 5. 如果只要編輯與Compile HDL file File New Source VHDL or Verilog or Other 或是 File Add to Project New File (或是在Project標籤內,按滑鼠右鍵Add to Project New File) 6. 儲存檔案並關閉程式 File Sa

20、ve . Simulate End Simulation. File Close Project(要先關掉simulation,project才能關掉) File Quit(直接Quit 最快,可以省下上面關閉Simulation、Project的動作) 6. 重新開啟 Project File Open Project.(選擇.mpf檔) 1. 進一步訊息,請參考Help SE PDF Documentation Tutorials 線上使用手冊一些值得進一步參閱的功能:creating and viewing datasets、performance analyzer、code cover

21、age .其他用途: (以下這些做法,必須在工作站下執行,PC環境下產生的檔案不能用) 如何用ModelSim產生.vcd檔(Value Change Dump)在testbench內加入以下這段程式,然後執行ModelSim從compile - Simulate - Run -All,關閉ModelSim後,就會在工作目錄下看見file_name.vcd。 如何用ModelSim產生.fsdb檔 在testbench內加入以下這段程式,然後執行ModelSim從compile - Simulate - Run -All,關閉ModelSim後,就會在工作目錄下看見file_name.fsdb

22、。要用ModelSim產生.fsdb的條件是:跑ModelSim的環境下必須有安裝Debussy,否則ModelSim會說它看不懂fsdbDumpfile這個指令 如何用ModelSim產生.vec檔 (vector file) 在testbench內加入以下這段程式,然後執行ModelSim從compile - Simulate - Run -All,關閉ModelSim後,就會在工作目錄下看見add4.vec。您必須依自己的需要,在header information那幾行稍做修改,改成你design的I/Os(此處所列是一個4-bit full-adder的vector範例)。這是目前我所知道產生vector file最快的方法,否則你就必須先從testbench.v轉成file.vcd再轉成file.vec。(參閱NanoSim教學Step 1 2)系統任務(system task)命令$monitor, $fmonitor, $display, $fdisplay的用法,請自行參閱Verilog書籍2sec. 3-3, sec. 9-5

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1