ModelSim輕松入門_第1頁
ModelSim輕松入門_第2頁
ModelSim輕松入門_第3頁
ModelSim輕松入門_第4頁
ModelSim輕松入門_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1Modelsim 6.0 Modelsim 6.0 使用教程 2006.12 qq:535796212Modelsim簡介 Modelsim仿真工具是Model公司開發(fā)的。它支持Verilog、VHDL以及他們的混合仿真,它可以將整個程序分步執(zhí)行,使設計者直接看到他的程序下一步要執(zhí)行的語句,而且在程序執(zhí)行的任何步驟任何時刻都可以查看任意變量的當前值,可以在Dataflow窗口查看某一單元或模塊的輸入輸出的連續(xù)變化等,比Quartus自帶的仿真器功能強大的多,是目前業(yè)界最通用的仿真器之一。ModelSim分幾種不同的版本:SE、PE和OEM,其中集成在 Actel、Atmel、Altera、X

2、ilinx以及Lattice等FPGA廠商設計工具中的均是其OEM版本。比如為Altera提供的OEM版本是ModelSim-Altera,為Xilinx提供的版本為ModelSim XE. SE版本為最高級版本,在功能和性能方面比OEM版本強很多,比如仿真速度方面,還支持PC 、 UNIX 、 LIUNX混合平臺.3為什么要學Modelsim?1.Modelsim是專業(yè)的HDL語言仿真器,比 Quartus自帶的仿真器功能強大的多.2. Quartus simulator不支持Testbench ,只支持波形文件.vwfvwf文件全稱是矢量波形文件(Vector Waveform File)

3、,是Quartus II中仿真輸入、計算、輸出數(shù)據(jù)的載體。一般設計者建立波形文件時,需要自行建立復位、時鐘信號以及控制和輸入數(shù)據(jù)、輸出數(shù)據(jù)信號等。其中工作量最大的就是輸入數(shù)據(jù)的波形錄入。比如要仿真僅1KB的串行輸入數(shù)據(jù)量,則手工輸入信號的波形要畫8000個周期,不僅費時費力而且容易出錯 怎樣入門?對于初學者,modelsim自帶的教程是一個很好的選擇,在Help-SE PDF Documentation-Tutorial里面.它從簡單到復雜、從低級到高級詳細地講述了modelsim的各項功能的使用,簡單易懂。4Modelsim的安裝同許多其他軟件一樣,Modelsim SE同樣需要合法的Lic

4、ense,通常我們用Kengen產(chǎn)生license.dat。 解壓安裝工具包開始安裝,安裝時選擇Full product安裝。當出現(xiàn)Install Hardware Security Key Driver時選擇否。當出現(xiàn)Add Modelsim To Path選擇是。出現(xiàn)Modelsim License Wizard時選擇Close。 在C盤根目錄新建一個文件夾flexlm,用Keygen產(chǎn)生一個license.dat,然后復制到該文件夾下。 修改系統(tǒng)的環(huán)境變量。右鍵點擊桌面我的電腦圖標,屬性-高級-環(huán)境變量-(系統(tǒng)變量)新建。按下圖所示內(nèi)容填寫,變量值內(nèi)如果已經(jīng)有別的路徑了,請用“;”將其與

5、要填的路徑分開。LM_LICENSE_FILE = c:flexlmlicense.dat 567使用Modelsim進行仿真Modelsim運行方式有4種:用戶圖形界面模式交互式命令行模式不顯示modelsim的可視化界面 ,僅通過命令控制臺輸入的命令完成所有工作Tcl和宏模式編寫可執(zhí)行擴展名為do或者tcl語法文件批處理模式其所有操作都在后臺進行,用戶看不到modelsim的界面,也不需要交互式輸入命令。當工程很大,文件比較多時,用批處理比較方便。直接運行批處理文件,在后臺調(diào)用modelsim,執(zhí)行modelsim的腳本文件* .do,完成操作注:http:/ 主旨在于驗證電路的功能是否符

6、合設計要求,其特點是不考慮電路門延遲與線延遲,主要是驗證電路與理想情況是否一致??删C合FPGA代碼是用RTL級代碼語言描述的,其輸入為RTL級代碼與Testbench.在設計的最初階段發(fā)現(xiàn)問題,可節(jié)省大量的精力門級仿真和時序列仿真 (后仿真) 使用綜合軟件綜合后生成的門級網(wǎng)表進行仿真,不加入時延文件的仿真就是門級仿真.可以檢驗綜合后的功能是否滿足功能要求,其速度比功能仿真要慢,比時序仿真要快. 在門級仿真的基礎上加入時延文件(.sdf)的仿真就是時序仿真,比較真實地反映了邏輯的時延與功能.綜合考慮電路的路徑延遲與門延遲的影響,驗證電路能否在一定時序條件下滿足設計構想的過程,是否存在時序違規(guī)9功

7、能仿真功能仿真功能仿真需要的文件1設計HDL源代碼:可以使VHDL語言或Verilog語言。2測試激勵代碼:根據(jù)設計要求輸入/輸出的激勵程序3仿真模型/庫:根據(jù)設計內(nèi)調(diào)用的器件供應商提供的模塊而定,如:FIFO、ADD_SUB等 仿真步驟 以4 位計數(shù)器為例給出詳細步驟1.啟動modelsim軟件先在c盤建立文件夾count4,在modelsim中選擇File - Change Directory,在彈出的Choose folder對話框中設置目錄路徑為c:/count42.建立工程在modelsim中建立project,選擇File -New -Project.在Project Name欄中

8、填寫你的項目名字,建議和你的頂層文件名字一致。Project Location是你的工作目錄,你可通過Brose按鈕來選擇或改變。Ddfault Library Name可以采用工具默認的work。Workspace窗口的library中就會出現(xiàn)work庫. 10113.為工程添加文件工程建立后,選擇Add Exsiting File后,根據(jù)相應提示將文件加到該Project中這里是count4.v和其測試向量count_tp.v,源代碼如下:12134.編譯文件編譯(包括源代碼和庫文件的編譯)。編譯可點擊ComlileComlile All來完成。 5.裝載文件(1)雙擊libray 中wo

9、rk中的count_tp裝載(2)點擊simulate start simulation按右圖設置,點擊ok146.開始仿真點擊workspace下的sim,點擊count_tp,選擇add add to wave然后點run all,開始仿真157.退出仿真在仿真調(diào)試完成后退出仿真,在主窗口中選擇simulate end simulation16補充:(1)也可以不加testbench,仿真步驟跟前面相似, 裝載文件時雙擊count4在sim中點擊count4,add add to wave對輸入信號clk,reset編輯測試波形點擊run -all17(2)我們可以在modelsim內(nèi)直接

10、編寫TestbenchModelsim提供了很多Testbench模板,我們直接拿過來用可以減少工作量。點View-Source-Show Language Templates然后會出現(xiàn)一個加載工程,接著你會發(fā)現(xiàn)在剛才的文檔編輯窗口左邊出現(xiàn)了一個Language Templates窗口18 展開Verilog項,雙擊Creat Testbench會出現(xiàn)一個創(chuàng)建向?qū)нx擇Specify Design Unit工作庫下的目標文件,點Next可以指定Testbench的名稱以及要編譯到的庫等,此處我們使用默認設置直接點Finish。這時在Testbench內(nèi)會出現(xiàn)對目標文件的各個端口的定義還有調(diào)用函數(shù)

11、 接下來,設計者可以自己往Testbench內(nèi)添加內(nèi)容了,然后保存為.v格式即可。按照前面的方法把Testbench文件也編譯到工作庫中.19門級仿真和時序仿真門級仿真和時序仿真 仿真需要的文件仿真需要的文件 1綜合布局布線生成的網(wǎng)表文件2測試激勵3元件庫Altera仿真庫的位置為C:alteraquartus50edasim_lib4時序仿真的話,還需要具有時延時延信息的反標文件(sdf)門級仿真有兩種方法(1)工程編譯成功后自動啟動Modelsim運行門級仿真(2)先在quartus中生成網(wǎng)表文件和時延文件,然后調(diào)用modelsim進行仿真工程編譯成功后自動啟動Modelsim運行門級仿真

12、1.Quartus中設置仿真工具打開quartus,建立工程,選擇Assignments | EDA Tool Settings,選擇左欄的“Simulation”,設置如下:2021然后,我們單擊下方的“More Settings”按鈕,彈出“More Settings”對話框.這種門級仿真的testbench有兩種方法生成(1)自己手動編寫testbench count_tp.vmore settings 中設置如下然后點擊quartus的start compilation ,開始編譯,我們會發(fā)現(xiàn)QuartusII 狀態(tài)欄多出兩項“EDA Netlist Writer”和“EDA Simu

13、lation Tool”22在modelsim中我們可以看到,modelsim自動把仿真所需要元件庫庫文件加了進來,不用我們手動加入,同時仿真結果也出來了.退出ModelSim 后,QuartusII 才完成全部編譯運行ModelSim 后會彈出“Finish Vsim”對話框,單擊“否”2324(2)利用quartus II生成testbench文件在quartus II界面選擇FileNew,新建一個波形文件,編輯仿真信號的激勵源,最后保存帶有激勵信號的波形文件.轉換:Quartus II提供了把.vwf文件轉換成.vt的功能,選擇主菜單File Export,可以保存為.vt或者.v文件

14、,對仿真沒有影響25more settings 中設置如左圖底下的test bench mode name 是*vlg_vec_tst(對應verilog,*是你的主程序名),用*_vhd_vec_tst對應vhdl。然后編譯,以后的同上 26先在quartus中生成網(wǎng)表文件和時延文件,然后調(diào)用modelsim進行仿真Quartus II 中設置仿真工具,more settings 也不用設置27設置完后,成功編譯,quartus II會自動在當前project目錄下生成一個simulation目錄,在該目錄下有一個Modelsim的文件夾,此文件夾下有仿真所需要的網(wǎng)表文件及延時反標文件.如果

15、使用vhdl語言,則網(wǎng)表文件是.vho,反標文件是.sdo;如果使用verilog語言,則網(wǎng)表文件是.vo,sdf文件也是.sdo.這個時候的testbench最好是自己手動編寫的,這里是count_tp.vModelsim后仿真主要步驟建立庫并映射庫到物理目錄;編譯Testbench;執(zhí)行仿真。 28建立庫仿真庫是存儲已編譯設計單元的目錄,modelsim中有兩類仿真庫,一種是工作庫,默認的庫名為work,另一種是資源庫。Work庫下包含當前工程下所有已經(jīng)編譯過的文件。所以編譯前一定要建一個work庫,而且只能建一個work庫。資源庫存放work庫中已經(jīng)編譯文件所要調(diào)用的資源,這樣的資源可能

16、有很多,它們被放在不同的資源庫內(nèi).映射庫用于將已經(jīng)預編譯好的文件所在的目錄映射為一個modelsim可識別的庫,庫內(nèi)的文件應該是已經(jīng)編譯過的,在Workspace窗口內(nèi)展開該庫應該能看見這些文件,如果是沒有編譯過的文件在庫內(nèi)是看不見的。在Modelsim中加入Quartus的仿真庫有兩種方法:1.自己新建一個庫,用來存放仿真需要調(diào)用的仿真文件2.把Altera的器件加到了work這個library里 29利用方法1進行后仿真1.在modelsim中建立project與功能仿真相似,建立工程count4,并加入文件count4.vo,count_tp.v,庫文件cycloneii_atoms.v

17、,此時就不需要源代碼文件了.在成功建立Project后,Modelsim會增加一個頁面,點擊Modelsim左下角的Library 點擊FileNewLibrary。在在Library Name中輸入庫名,該名應和Altera的庫名保持一致。這里取名為cycloneii 30所需編譯的庫因所用HDL語言的不同而不同。假設用tratix器件,對Verilog語言,則需編譯STRATIX_ATOMS.文件。對VHDL,所要編譯的庫文件為STRATIX_ATOMS.VHD和STRATIX_ATOMS_COMPONENTS.VHD;2.編譯庫文件和網(wǎng)表完成以上進程后,點擊workspace下方的pro

18、ject,選擇cycloneii_atoms.v,設置其屬性如下然后對cycloneii_atoms.v單獨編譯,編譯后可看到cycloneii庫里有很很多文件,這些都是仿真是要用到的3132然后分別編譯count4.vo,count_tp.v3.3.仿真準備仿真準備已經(jīng)準備了仿真所需要的所有的文件.選擇simulatestart simulation.單擊libraries標簽,單擊add按紐,將剛才建立的cycloneii加入33在design標簽欄中做如下設置34如果是對時序仿真,還要加入sdf文件,單擊sdf,再單擊add,將生成的.sdo文件找到,加入.sdo文件后,做如下設置:在A

19、pply to Region框內(nèi)填入反標文件所對應的模塊。Count_tp為測試激勵程序,mycount為被仿真的模塊在激勵程序中的例化名字。單擊ok將sdf文件加入,然后單擊load,就可已開始仿真了。 3536利用方法2進行后仿真把Altera的器件加到了work這個library里把需要的altera仿真庫拷貝到你要編譯的文件所在的文件夾里。先編譯這個文件,等于是把Altera的器件加到了work這個library里。然后再在library下編譯你要用的文件就可以了。這樣方便些,也不用建立新庫了.大家可以試一試37如何仿真altera中的megacore呢?跟上面所講的仿真沒什么差別仿真

20、megacore在時,一般要用到altera仿真庫中的220model.v 和altera_mf.v 以fifo為例:用MEGA生成一個FIFO.V并添加到modelsim工程中必須為FIFO.V添加支撐文件(這幾個問題建要比FIFO.V先編譯),位于 .alteraquartus50edasim_lib要添加的文件如下:220model.v altera_mf.vcycloneii_atoms.v (這個是根據(jù)你altera的Fpga器件決定 )詳細操作步驟可見文檔PLL在MODELSIM SE中的仿真步驟 38利用利用modelsimmodelsim進行系統(tǒng)仿真進行系統(tǒng)仿真 以LED 實驗

21、為例在quartus中建立工程,在sopc builder中建立系統(tǒng),如下:39點擊generate前設置modelsim路徑,然后generate選擇“File | SOPC Builder Setup”選擇ModelSim 安裝目錄下的“Win32”文件40單擊“Run Nios II IDE”按鈕運行NiosII IDE新建工程,源代碼如下#include system.h#include altera_avalon_pio_regs.h#include alt_types.hint main (void) _attribute_ (weak, alias (alt_main);int al

溫馨提示

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

評論

0/150

提交評論