在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內(nèi)不再提示

最實(shí)用的Modelsim使用及仿真的基本步驟

FPGA技術(shù)江湖 ? 來(lái)源:FPGA技術(shù)江湖 ? 2024-03-06 09:58 ? 次閱讀

今天給大俠帶來(lái)最實(shí)用的Modelsim初級(jí)使用教程,話不多說(shuō),上貨。 1eb19c48-db4d-11ee-a297-92fbcf53809c.png

一、 Modelsim簡(jiǎn)介

Modelsim仿真工具是Model公司開發(fā)的。它支持Verilog、VHDL以及他們的混合仿真,它可以將整個(gè)程序分步執(zhí)行,使設(shè)計(jì)者直接看到他的程序下一步要執(zhí)行的語(yǔ)句,而且在程序執(zhí)行的任何步驟任何時(shí)刻都可以查看任意變量的當(dāng)前值,可以在Dataflow窗口查看某一單元或模塊的輸入輸出的連續(xù)變化等,比quartus自帶的仿真器功能強(qiáng)大的多,是目前業(yè)界最通用的仿真器之一。

對(duì)于初學(xué)者,modelsim自帶的教程是一個(gè)很好的選擇,在Help->SE PDF Documentation->Tutorial里面.它從簡(jiǎn)單到復(fù)雜、從低級(jí)到高級(jí)詳細(xì)地講述了modelsim的各項(xiàng)功能的使用,簡(jiǎn)單易懂。但是它也有缺點(diǎn),就是它里面所有事例的初期準(zhǔn)備工作都已經(jīng)放在example文件夾里,直接將它們添加到modelsim就可以用,它假設(shè)使用者對(duì)當(dāng)前操作的前期準(zhǔn)備工作都已經(jīng)很熟悉,所以初學(xué)者往往不知道如何做當(dāng)前操作的前期準(zhǔn)備。

二、 安裝

同許多其他軟件一樣,Modelsim SE 同樣需要合法的License,通常我們用Kengen產(chǎn)生license.dat。

1、解壓安裝工具包開始安裝,安裝時(shí)選擇Full product安裝。當(dāng)出現(xiàn)Install Hardware Security Key Driver時(shí)選擇否。當(dāng)出現(xiàn)Add Modelsim To Path選擇是。出現(xiàn)Modelsim License Wizard時(shí)選擇Close。

2、在C盤根目錄新建一個(gè)文件夾flexlm,用Keygen產(chǎn)生一個(gè)License.dat,然后復(fù)制到該文件夾下。若License通過(guò),但是打開ModelSim仍出錯(cuò),則將系統(tǒng)時(shí)間調(diào)到2008年之前,重新生成License,再將時(shí)間調(diào)回來(lái)即可。

3、修改系統(tǒng)的環(huán)境變量。右鍵點(diǎn)擊桌面我的電腦圖標(biāo),屬性->高級(jí)->環(huán)境變量->(系統(tǒng)變量)新建。按下圖所示內(nèi)容填寫,變量值內(nèi)如果已經(jīng)有別的路徑了,請(qǐng)用";"將其與要填的路徑分開。LM_LICENSE_FILE = c:flexlmlicense.dat

4、安裝完畢,可以運(yùn)行。

注意:

1、電腦的用戶名不能為中文;

2、安裝路徑不能出現(xiàn)中文和空格,只能有數(shù)字、英文字母和下劃線"_"組成

3、若計(jì)算機(jī)還需要使用ModelSim-Altera 6.4a (Quartus II 9.0),可不需做任何額外的設(shè)定,ModelSim SE 6.3g會(huì)自動(dòng)抓到這個(gè)系統(tǒng)變量,并使用這個(gè)license file;反之亦然。

1ed73ffc-db4d-11ee-a297-92fbcf53809c.jpg

1ee1cad0-db4d-11ee-a297-92fbcf53809c.jpg

圖1 設(shè)置modelsim所需環(huán)境變量(用戶)

關(guān)聯(lián)Quartus II 和 modelsim 操作

①完成上述工作之后需要在 Quartus II 中設(shè)置 modelsim 路徑,Quartus II 菜單Tools ——>General——>EDA Tool Options,進(jìn)行相關(guān)設(shè)置,如modelsim:C:Modeltech_6.3gwin32 如圖2所示。

1eeb5096-db4d-11ee-a297-92fbcf53809c.jpg

圖2 設(shè)置modelsim路徑

② 在Quartus II建立工程時(shí),設(shè)置 modelsim 作為仿真軟件,或者是在Assignments——>EDA Tool Settings進(jìn)行設(shè)置。

三、 Modelsim仿真方法

Modelsim的仿真分為前仿真和后仿真,下面先具體介紹一下兩者的區(qū)別。

3.1 前仿真

前仿真也稱為功能仿真,主旨在于驗(yàn)證電路的功能是否符合設(shè)計(jì)要求,其特點(diǎn)是不考慮電路門延遲與線延遲,主要是驗(yàn)證電路與理想情況是否一致。可綜合FPGA代碼是用RTL級(jí)代碼語(yǔ)言描述的,其輸入為RTL級(jí)代碼與Testbench。

3.2 后仿真

后仿真也稱為時(shí)序仿真或者布局布線后仿真,是指電路已經(jīng)映射到特定的工藝環(huán)境以后,綜合考慮電路的路徑延遲與門延遲的影響,驗(yàn)證電路能否在一定時(shí)序條件下滿足設(shè)計(jì)構(gòu)想的過(guò)程,是否存在時(shí)序違規(guī)。其輸入文件為從布局布線結(jié)果中抽象出來(lái)的門級(jí)網(wǎng)表、Testbench和擴(kuò)展名為SDO或SDF的標(biāo)準(zhǔn)時(shí)延文件。SDO或SDF的標(biāo)準(zhǔn)時(shí)延文件不僅包含門延遲,還包括實(shí)際布線延遲,能較好地反映芯片的實(shí)際工作情況。一般來(lái)說(shuō)后仿真是必選的,檢查設(shè)計(jì)時(shí)序與實(shí)際的FPGA運(yùn)行情況是否一致,確保設(shè)計(jì)的可靠性和穩(wěn)定性。選定了器件分配引腳后在做后仿真。

3.3 Modelsim仿真的基本步驟

Modelsim的仿真主要有以下幾個(gè)步驟:

(1)建立庫(kù)并映射庫(kù)到物理目錄;

(2)編譯原代碼(包括 Testbench);

(3)執(zhí)行仿真。

上述3個(gè)步驟是大的框架,前仿真和后仿真均是按照這個(gè)框架進(jìn)行的,建立modelsim工程對(duì)前后仿真來(lái)說(shuō)都不是必須的。

3.3.1建立庫(kù)

在執(zhí)行一個(gè)仿真前先建立一個(gè)單獨(dú)的文件夾,后面的操作都在此文件下進(jìn)行,以防止文件間的誤操作。然后啟動(dòng)Modelsim將當(dāng)前路徑修改到該文件夾下,修改的方法是點(diǎn)File->Change Directory選擇剛剛新建的文件夾見下圖。

1f07aee4-db4d-11ee-a297-92fbcf53809c.jpg

圖3 新建文件夾

做前仿真的時(shí)候,推薦按上述建立新的文件夾。

做后仿真的時(shí)候,在 Quartus II 工程文件夾下會(huì)出現(xiàn)一個(gè)文件夾:工程文件夾simulationmodelsim,前提是正確編譯 Quartus II 工程;因此,不必再建立新的文件夾了。

仿真庫(kù)是存儲(chǔ)已編譯設(shè)計(jì)單元的目錄,modelsim 中有兩類仿真庫(kù),一種是工作庫(kù),默認(rèn)的庫(kù)名為work,另一種是資源庫(kù)。Work庫(kù)下包含當(dāng)前工程下所有已經(jīng)編譯過(guò)的文件。所以編譯前一定要建一個(gè)work庫(kù),而且只能建一個(gè)work庫(kù)。資源庫(kù)存放work庫(kù)中已經(jīng)編譯文件所要調(diào)用的資源,這樣的資源可能有很多,它們被放在不同的資源庫(kù)內(nèi)。例如想要對(duì)綜合在cyclone芯片中的設(shè)計(jì)做后仿真,就需要有一個(gè)名為cyclone_ver的資源庫(kù)。

映射庫(kù)用于將已經(jīng)預(yù)編譯好的文件所在的目錄映射為一個(gè)modelsim可識(shí)別的庫(kù),庫(kù)內(nèi)的文件應(yīng)該是已經(jīng)編譯過(guò)的,在Workspace窗口內(nèi)展開該庫(kù)應(yīng)該能看見這些文件,如果是沒有編譯過(guò)的文件在庫(kù)內(nèi)是看不見的。

建立仿真庫(kù)的方法有兩種。一種是在用戶界面模式下,點(diǎn)File->New->Library出現(xiàn)下面的對(duì)話框,選擇a new library and a logical mapping to it,在Library Name內(nèi)輸入要?jiǎng)?chuàng)建庫(kù)的名稱,然后OK,即可生成一個(gè)已經(jīng)映射的新庫(kù)。另一種方法是在Transcript窗口輸入以下命令:

vlib work

vmap work work

1f114940-db4d-11ee-a297-92fbcf53809c.jpg

圖4 建立仿真庫(kù)

如果要?jiǎng)h除某庫(kù),只需選中該庫(kù)名,點(diǎn)右鍵選擇Delete即可。

需要注意的是不要在modelsim外部的系統(tǒng)盤內(nèi)手動(dòng)創(chuàng)建庫(kù)或者添加文件到庫(kù)里;也不要modelsim用到的路徑名或文件名中使用漢字,因?yàn)閙odelsim可能無(wú)法識(shí)別漢字而導(dǎo)致莫名其妙的錯(cuò)誤。

3.3.2編寫與編譯測(cè)試文件

在編寫Testbench之前,最好先將要仿真的目標(biāo)文件編譯到工作庫(kù)中,點(diǎn)Compile->Compile或 ,將出現(xiàn)下面的對(duì)話框。

1f22e736-db4d-11ee-a297-92fbcf53809c.jpg

圖5 編譯目標(biāo)文件

在Library中選擇工作庫(kù),在查找范圍內(nèi)找到要仿真的目標(biāo)文件(Library選擇剛才建立的庫(kù),查找范圍選擇目標(biāo)文件所在的文件夾),然后點(diǎn)Compile和Done;或在命令行輸入vlog Counter.v。此時(shí)目標(biāo)文件已經(jīng)編譯到工作庫(kù)中,在Library中展開work工作庫(kù)會(huì)發(fā)現(xiàn)該文件。

當(dāng)對(duì)要仿真的目標(biāo)文件進(jìn)行仿真時(shí)需要給文件中的各個(gè)輸入變量提供激勵(lì)源,并對(duì)輸入波形進(jìn)行的嚴(yán)格定義,這種對(duì)激勵(lì)源定義的文件稱為Testbench,即測(cè)試臺(tái)文件。下面先講一下Testbench的產(chǎn)生方法。

方法一:我們可以在modelsim內(nèi)直接編寫Testbench,而且modelsim還提供了常用的各種模板。具體步驟如下:

⑴ 執(zhí)行File->New->Source->verilog,或者直接點(diǎn)擊工具欄上的新建圖標(biāo),會(huì)出現(xiàn)一個(gè)verilog文檔編輯頁(yè)面,在此文檔內(nèi)設(shè)計(jì)者即可編輯測(cè)試臺(tái)文件。需要說(shuō)明的是在Quartus中許多不可綜合的語(yǔ)句在此處都可以使用,而且testbench只是一個(gè)激勵(lì)源產(chǎn)生文件,只要對(duì)輸入波形進(jìn)行定義以及顯示一些必要信息即可,切記不要編的過(guò)于復(fù)雜,以免喧賓奪主。

⑵ Modelsim提供了很多Testbench模板,我們直接拿過(guò)來(lái)用可以減少工作量。在verilog文檔編輯頁(yè)面的空白處右鍵點(diǎn)Show Language Templates然后會(huì)出現(xiàn)一個(gè)加載工程,接著你會(huì)發(fā)現(xiàn)在剛才的文檔編輯窗口左邊出現(xiàn)了一個(gè)Language Templates窗口,見下圖。

1f2ddede-db4d-11ee-a297-92fbcf53809c.jpg

圖6 應(yīng)用模板生成 Testbench文件

雙擊Creat Testbench會(huì)出現(xiàn)一個(gè)創(chuàng)建向?qū)В娤聢D。

1f3e728a-db4d-11ee-a297-92fbcf53809c.jpg

圖7 創(chuàng)建向?qū)?/strong> 選擇Specify Design Unit工作庫(kù)下,work工作庫(kù)下的目標(biāo)文件,點(diǎn)Next,出現(xiàn)下面對(duì)話框:

1f4b5450-db4d-11ee-a297-92fbcf53809c.jpg

圖8 設(shè)置Testbench向?qū)?/strong> 可以指定Testbench的名稱以及要編譯到的庫(kù)等,此處我們使用默認(rèn)設(shè)置直接點(diǎn)Finish。這時(shí)在Testbench內(nèi)會(huì)出現(xiàn)對(duì)目標(biāo)文件的各個(gè)端口的定義還有調(diào)用函數(shù)接下來(lái),設(shè)計(jì)者可以自己往Testbench內(nèi)添加內(nèi)容了(有注釋的為添加的內(nèi)容),然后保存為.v格式即可。按照前面的方法把Testbench文件也編譯到工作庫(kù)中。

1f54b27a-db4d-11ee-a297-92fbcf53809c.jpg

圖9 生成及修改后的Testbench文件

方法二:在 Quartus II 內(nèi)編寫并編譯 Testbench ,之后將 Testbench 和目標(biāo)文件放在同一個(gè)文件夾下,按照前面的方法把 Testbench 文件和目標(biāo)文件都編譯到工作庫(kù)中之后。

PS:如果在工作庫(kù)中沒有該文件(在Testbench文件沒有端口的情況下),則在Simulate——>Start Simulate卡片中去掉優(yōu)化選項(xiàng),如下圖所示。之后再重新編譯,即可在工作庫(kù)中找到該文件。

1f6274b4-db4d-11ee-a297-92fbcf53809c.jpg

圖10 去掉優(yōu)化選項(xiàng)

3.3.3執(zhí)行仿真

因?yàn)榉抡娣譃榍胺抡婧秃蠓抡妫旅娣謩e說(shuō)明如何操作。

⑴ 前仿真

前仿真,相對(duì)來(lái)說(shuō)是比較簡(jiǎn)單的。在上一步我們已經(jīng)把需要的文件編譯到工作庫(kù)內(nèi)了,現(xiàn)在我們只需點(diǎn)simulate->Start Simulation或快捷按鈕 會(huì)出現(xiàn)start simulate對(duì)話框。點(diǎn)擊Design標(biāo)簽選擇Work庫(kù)下的 Testbench 文件,然后點(diǎn) OK 即可,也可以直接雙擊 Testbench文件Counter_tb.v,此時(shí)會(huì)出現(xiàn)下面的界面。

1fa98f98-db4d-11ee-a297-92fbcf53809c.jpg

圖11 start simulate 在主界面中會(huì)多出來(lái)一個(gè)Objects窗口,里面顯示 Testbench 里定義的所有信號(hào)引腳,在Workspace里也會(huì)多出來(lái)一個(gè)Sim標(biāo)簽。右鍵點(diǎn)擊Counter_tb.v,選擇Add->Add to Wave,如下圖所示。然后將出現(xiàn)Wave窗口,現(xiàn)在就可以仿真了,見下圖。

1fb65ce6-db4d-11ee-a297-92fbcf53809c.jpg

圖12 Wave窗口 窗口里面已經(jīng)出現(xiàn)了待仿真的各個(gè)信號(hào),點(diǎn) 將開始執(zhí)行仿真到100ns,繼續(xù)點(diǎn)仿真波形也將繼續(xù)延伸,見下圖。

1fcbb87a-db4d-11ee-a297-92fbcf53809c.jpg

圖13 仿真波形

若點(diǎn) ,則仿真一直執(zhí)行,直到點(diǎn) 才停止仿真。

也可以在命令行輸入命令:run @1000

則執(zhí)行仿真到1000ns,后面的1000也可以是別的數(shù)值,設(shè)計(jì)者可以修改。在下一次運(yùn)行該命令時(shí)將接著當(dāng)前的波形繼續(xù)往后仿真。至此,前仿真步驟完成。

⑵ 后仿真

這里是采用的Cyclone ii做的一個(gè)counter的例子。

后仿真與前仿真的步驟大體相同,只不過(guò)中間需要添加仿真庫(kù)(和所選器件及所有IP Core相關(guān))、網(wǎng)表和延時(shí)文件的步驟。

后仿真的前提是quartus已經(jīng)對(duì)要仿真的目標(biāo)文件進(jìn)行編譯,并生成modelsim仿真所需要的.vo文件(網(wǎng)表文件)和.sdo文件(時(shí)延文件),具體操作過(guò)程又有兩種方法,一種是通過(guò)Quartus調(diào)用Modelsim,Quartus在編譯之后自動(dòng)把仿真需要的.vo文件以及需要的仿真庫(kù)加到modelsim中,操作簡(jiǎn)單;一種是手動(dòng)將需要的文件和庫(kù)加入modelsim進(jìn)行仿真,這種方法可以增加主觀能動(dòng)性,充分發(fā)揮modelsim的強(qiáng)大仿真功能。

① 通過(guò)Quartus調(diào)用Modelsim

使用這種方法時(shí)首先要對(duì)Quartus進(jìn)行設(shè)置。先運(yùn)行Quartus,打開要仿真的工程,點(diǎn)菜單欄的Assignments,點(diǎn)EDA Tool settings,選中左邊Category中的Simulation.,在右邊的Tool name中選ModelSim(Verilog),選中下面的Run Gate Level Simulation automatically after complication.見下圖。

1fda8bfc-db4d-11ee-a297-92fbcf53809c.jpg

圖14 對(duì)Quartus進(jìn)行設(shè)置 Quartus中的工程準(zhǔn)備好之后點(diǎn)擊start complication按鈕,此時(shí)modelsim會(huì)自動(dòng)啟動(dòng),而quartus處于等待狀態(tài)(前提是系統(tǒng)環(huán)境變量中用戶變量中PATH要設(shè)置好modelsim安裝路徑,如:D:Modeltech_6.3win32)。在打開的modelsim的Workspace窗口中你會(huì)發(fā)現(xiàn)多了工作庫(kù)和資源庫(kù),而且work庫(kù)中出現(xiàn)了需要仿真的文件。Modelsim自動(dòng)將quartus生成的.vo文件編譯到work庫(kù),并建立相應(yīng)的資源庫(kù)。如圖所示。

1ff558c4-db4d-11ee-a297-92fbcf53809c.jpg

圖15 Quartus II 編譯之后自啟動(dòng)modelsim

觀察庫(kù),可以發(fā)現(xiàn),多了verilog_libs庫(kù)、gate_work庫(kù)和work庫(kù),但是在"工程文件夾simulationmodelsim"下,只有verilog_libs和gate_work文件夾,為什么庫(kù)里面卻多了一個(gè)work庫(kù)呢?而且gate_work庫(kù)和work庫(kù)文件內(nèi)容相同。

gate_work 庫(kù)是Quartus II 編譯之后自動(dòng)生成的,而work庫(kù)是modelsim默認(rèn)庫(kù)。仔細(xì)觀察二者路徑,二者路徑相同,均為gate_work文件夾,可知 modelsim 將 gate_work 庫(kù)映射到 work 庫(kù)。因此,在后續(xù)的工作中操作gate_work 庫(kù)或者 work 庫(kù)都能得到正確結(jié)果。

編寫測(cè)試臺(tái)程序Counter_tb.v ,最好放在生成的.vo文件所在的目錄,以方便在需要手動(dòng)仿真時(shí)使用。點(diǎn)Compile在出現(xiàn)的對(duì)話框中選中Counter_tb.v文件,然后點(diǎn)Compile按鈕,編譯結(jié)束后點(diǎn)Done,這時(shí)在Work庫(kù)中會(huì)出現(xiàn)測(cè)試臺(tái)文件。如下圖所示。

2005326c-db4d-11ee-a297-92fbcf53809c.jpg

圖16 編譯測(cè)試文件 點(diǎn)擊simulate->Start Simulation或快捷按鈕 會(huì)出現(xiàn)start simulate對(duì)話框。點(diǎn)擊Design標(biāo)簽選擇Work庫(kù)下的Counter_tb.v文件,然后點(diǎn)擊Libraries標(biāo)簽在Search Library中點(diǎn)擊Add按鈕,選擇仿真所需要的資源庫(kù)(如果不知道需要選擇哪個(gè)庫(kù),可以先直接點(diǎn)Compile看出現(xiàn)的錯(cuò)誤提示中說(shuō)需要的庫(kù)名,然后再重復(fù)上述步驟)見下圖。

201b2270-db4d-11ee-a297-92fbcf53809c.jpg

圖17 選擇仿真所需要的資源庫(kù) 再點(diǎn)start simulate對(duì)話框的SDF標(biāo)簽。在出現(xiàn)的對(duì)話框的SDF File框內(nèi)加入.sdo時(shí)延文件路徑。在Apply To Region框內(nèi)有一個(gè)“/”, 在“/”的前面輸入測(cè)試臺(tái)文件名,即“Counter_tb”,在它的后面輸入測(cè)試臺(tái)程序中調(diào)用被測(cè)試程序時(shí)給被測(cè)試程序起的名稱,本例中為“DUT”,見下圖。然后點(diǎn)OK。后面觀察波形與前仿真步驟相同。

2024f49e-db4d-11ee-a297-92fbcf53809c.jpg

圖18 添加.sdo文件

自動(dòng)仿真和手動(dòng)仿真的區(qū)別:

① 自動(dòng)仿真

這種方法比較簡(jiǎn)單,因?yàn)镼uartus II調(diào)用Modelsim ,所以除了生成自動(dòng)生成了modelsim仿真所需要的.vo文件(網(wǎng)表文件)和.sdo文件(時(shí)延文件)外,還生成了gate_work文件夾、verilog_libs文件夾;gate_work文件夾(可以叫工作庫(kù),也可以叫編譯庫(kù))下存放了已編譯的文件,verilog_libs文件夾下存放了仿真所需要的資源庫(kù),上例是cycloneii_ver庫(kù)(文件夾)。而手動(dòng)仿真則需要自己添加這些文件和庫(kù)。具體如下。

②手動(dòng)仿真

手動(dòng)仿真需要自己添加文件和編譯庫(kù),但可以充分發(fā)揮modelsim強(qiáng)大的仿真功能。操作時(shí)也要先對(duì)quartus進(jìn)行設(shè)置,設(shè)置與前面相同只是不要選中Run Gate Level Simulation automatically after complication。然后啟動(dòng)modelsim,將當(dāng)前路徑改到"工程文件夾simulationmodelsim"下。如下圖所示。

2030e93e-db4d-11ee-a297-92fbcf53809c.jpg

圖19 啟動(dòng)modelsim

相比①中,這里少了一些庫(kù)(實(shí)際是verilog_libs庫(kù)、gate_work庫(kù)和work庫(kù)),因此下面要添加一個(gè)庫(kù)。新建一個(gè)庫(kù),此處默認(rèn)庫(kù)名為work,此時(shí),"工程文件夾simulationmodelsim"文件夾下出現(xiàn)了一個(gè)work文件夾,work庫(kù)下面沒有目標(biāo)文件和測(cè)試文件,即work文件夾下沒有任何文件,建庫(kù)的目的就是將編譯的文件都放在該庫(kù)里,即放在該文件夾下。編譯之前,還需要添加仿真所需要的資源庫(kù)cycloneii_atoms(用到EP2C8),將D:altera90quartusedasim_lib目錄下的cycloneii_atoms文件復(fù)制到.vo所在的目錄,即"工程文件夾simulationmodelsim"下。

如果按照①中的方法編寫testbench并同樣放在.vo所在的目錄,這時(shí)點(diǎn)Compile下的Compile或點(diǎn) 將會(huì)出現(xiàn)下面的對(duì)話框,將所選文件進(jìn)行編譯。

203b6594-db4d-11ee-a297-92fbcf53809c.jpg

圖20 編譯所需文件和資源庫(kù) 編譯完成之后,work工作庫(kù)下多了很多文件,同樣work文件夾下也多了很多文件(夾),建庫(kù)的目的可見一斑,其中有Counter_tb測(cè)試文件和counter目標(biāo)文件。點(diǎn)擊simulate->Start Simulation或快捷按鈕 會(huì)出現(xiàn)start simulate對(duì)話框。這里和①相比只有Libraries標(biāo)簽在Search Library時(shí)不一樣,其余2項(xiàng)都一樣。Libraries標(biāo)簽在Search Library的設(shè)置如下圖。

20574390-db4d-11ee-a297-92fbcf53809c.jpg

圖21 選擇仿真所需要的資源庫(kù)

后面的觀察波形步驟跟前面一樣。

四、觀察波形的一些方法和技巧

4.1 手動(dòng)創(chuàng)建輸入波形(待定)

對(duì)于復(fù)雜的設(shè)計(jì)文件,最好是自己編寫testbench文件,這樣可以精確定義各信號(hào)以及各個(gè)信號(hào)之間的依賴關(guān)系等,提高仿真效率。

對(duì)于一些簡(jiǎn)單的設(shè)計(jì)文件,也可以在波形窗口自己創(chuàng)建輸入波形進(jìn)行仿真。具體方法是鼠標(biāo)右擊work庫(kù)里的目標(biāo)仿真文件counter.v,然后點(diǎn)create wave,彈出wave default窗口。如下圖所示。

207134d0-db4d-11ee-a297-92fbcf53809c.jpg

圖22 Add to Wave

在wave窗口中選中要?jiǎng)?chuàng)建波形的信號(hào),如此例中的CLK,然后右鍵點(diǎn)擊,選擇Create/Modify/Wave項(xiàng)出現(xiàn)下面的窗口:

207ebcfe-db4d-11ee-a297-92fbcf53809c.jpg

圖23 設(shè)置輸入波形

在Patterns中選擇輸入波形的類型,然后分別在右邊的窗口中設(shè)定起始時(shí)間、終止時(shí)間以及單位,再點(diǎn)Next出現(xiàn)下面的窗口,我們把初始值的HiZ改為0,然后修改時(shí)鐘周期和占空比,然后點(diǎn)Finish。

208b2430-db4d-11ee-a297-92fbcf53809c.jpg

圖24 設(shè)置輸入波形

接著繼續(xù)添加其他輸入波形,出現(xiàn)下面的結(jié)果。前面出現(xiàn)的紅點(diǎn)表示該波形是可編輯的。后面的操作與用testbench文本仿真的方法相同 。

2095bf44-db4d-11ee-a297-92fbcf53809c.jpg

圖25 仿真波形

4.2 觀察特定信號(hào)波形

如果設(shè)計(jì)者只想查看指定信號(hào)的波形,可以先選中objects窗口中要觀察的信號(hào),然后點(diǎn)右鍵選擇Add to Wave->Selected signals,見下圖,那么在Wave窗口中只添加選中的信號(hào)。

20a7baa0-db4d-11ee-a297-92fbcf53809c.jpg

圖26 查看特定信號(hào)波形

4.3 保存和導(dǎo)入波形文件(待定)

如果要保存波形窗口當(dāng)前信號(hào)的分配,可以點(diǎn)File->Save,在出現(xiàn)的對(duì)話框中設(shè)置保存路徑及文件名,保存的格式為.do文件。

如果是想導(dǎo)出自己創(chuàng)建的波形(在文章最后有詳細(xì)的解釋)可以選擇File->Export Waveform在出現(xiàn)的對(duì)話框中選擇EVCD File并進(jìn)行相關(guān)設(shè)置即可。

如果導(dǎo)入設(shè)計(jì)的波形選擇File->Import ECVD即可。

4.4 Dataflow窗口觀察信號(hào)波形

在主界面中點(diǎn)View->Dataflow可以看到會(huì)出現(xiàn)dataflow窗口,在objects窗口中拖一個(gè)信號(hào)到該窗口中,你會(huì)發(fā)現(xiàn)在dataflow窗口中出現(xiàn)你剛才選中信號(hào)所在的模塊,如果雙擊模塊的某一引腳,會(huì)出現(xiàn)與該引腳相連的別的模塊或者引線,見下圖。

20bbdfe4-db4d-11ee-a297-92fbcf53809c.jpg

圖27 Dataflow窗口

在dataflow窗口中點(diǎn)View->Show Wave,會(huì)在dataflow窗口中出現(xiàn)一個(gè)wave窗口,雙擊上面窗口中的某一模塊,則在下面的wave窗口中出現(xiàn)與該模塊相連的所有信號(hào),如果已經(jīng)執(zhí)行過(guò)仿真,在wave窗口中還會(huì)出現(xiàn)對(duì)應(yīng)的波形,見下圖。

20cbf83e-db4d-11ee-a297-92fbcf53809c.jpg

圖28 Dataflow窗口觀察仿真波形

在波形窗口中拖動(dòng)游標(biāo),上面模塊的引腳信號(hào)的值也會(huì)隨著游標(biāo)當(dāng)前位置的改變而改變。

如果要在modelsim中修改原設(shè)計(jì)文件,在文檔頁(yè)面點(diǎn)擊右鍵,取消Read Only,即可修改,修改后繼續(xù)仿真。如果想結(jié)束仿真可以點(diǎn)Simulate->End Simulation,或直接在命令行輸入quit -sim,此時(shí)quartus也會(huì)顯示結(jié)束所有編譯過(guò)程。

五、 一些說(shuō)明

關(guān)于在testbench里使用`timescale的問(wèn)題

`timescale 是編譯器指令,用來(lái)定義時(shí)延精度和時(shí)延單位,命令格式如下:

`timescale time_unit/time_precision

其中time_unit定義時(shí)延單位,即后面模塊中出現(xiàn)的時(shí)延數(shù)值的單位,time_precision定義時(shí)延精度。例如`timescale 1ns/100ps 表示時(shí)延單位為1ns,時(shí)延精度為100ps。如果后面有語(yǔ)句 #5.22 a=1;此時(shí)時(shí)延值5.22ns應(yīng)該對(duì)應(yīng)為5.2ns,因?yàn)榫葹?.1ns。

如果設(shè)計(jì)中多個(gè)模塊帶有自身的`timescale,編譯時(shí)模擬器總是定義在所有模塊的最小時(shí)延精度上,并且所有模塊中的時(shí)延都自動(dòng)地?fù)Q算為到最小試驗(yàn)精度上。

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ModelSim
    +關(guān)注

    關(guān)注

    5

    文章

    174

    瀏覽量

    47398

原文標(biāo)題:最實(shí)用的Modelsim使用教程

文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    最實(shí)用的Modelsim使用教程

    。選定了器件分配引腳后在做后仿真。 3.3 Modelsim仿真的基本步驟 Modelsim仿真
    發(fā)表于 03-19 16:40

    新人求助關(guān)于modelsim仿真的問(wèn)題

    最近幾天在學(xué)習(xí)用quartus調(diào)用modelsim進(jìn)行仿真,可是仿真的時(shí)候一直出現(xiàn)這種情況,一直處于loading的狀態(tài)。求幫助。另外我的版本是quartus9,modelsim10.
    發(fā)表于 10-26 16:12

    關(guān)于modelsim仿真的問(wèn)題

    在quartus 中編好程序,生成仿真需要的 .vho 和 .sdf 文件在用modelsim仿真的時(shí)候出現(xiàn)如下錯(cuò)誤,# ** Error: (vsim-SDF-3250) C:/Users
    發(fā)表于 04-05 13:28

    FIR在單獨(dú)用modelsim仿真

    quartus和modelsim聯(lián)合仿真容易出現(xiàn)問(wèn)題,所以一般單獨(dú)用modelsim仿真,附件是modelsim
    發(fā)表于 02-17 20:21

    Altera ModelSim 6.5仿真入門教程

    Altera ModelSim 6.5仿真入門教程,需要的可自行下載。 平臺(tái) 軟件:ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition 內(nèi)容 1 設(shè)計(jì)流程 使用
    發(fā)表于 08-15 15:40 ?255次下載
    Altera <b class='flag-5'>ModelSim</b> 6.5<b class='flag-5'>仿真</b>入門教程

    Modelsim的功能仿真和時(shí)序仿真

    ModelSim 進(jìn)行功能仿真,進(jìn)行功能仿真首先要檢查設(shè)計(jì)的語(yǔ)法是否正確;其次檢查代碼是否達(dá)到設(shè)計(jì)的功能要求。下文主要介紹仿真步驟和測(cè)試激
    發(fā)表于 11-13 15:35 ?9480次閱讀

    Xilinx ISE是如何調(diào)用ModelSim進(jìn)行仿真的

    在我們用ModelSim仿真的時(shí)候經(jīng)常是修改一點(diǎn)一點(diǎn)修改代碼,這樣會(huì)造成一個(gè)無(wú)奈的操作循環(huán):修改代碼--->編譯代碼--->仿真設(shè)置--->進(jìn)入仿真頁(yè)面--->添加需要觀察的波形---
    發(fā)表于 02-11 15:25 ?1.1w次閱讀
    Xilinx ISE是如何調(diào)用<b class='flag-5'>ModelSim</b>進(jìn)行<b class='flag-5'>仿真的</b>

    modelsim仿真詳細(xì)過(guò)程(功能仿真與時(shí)序仿真

    modelsim仿真詳細(xì)過(guò)程(功能仿真與時(shí)序仿真).ModelSim不僅可以用于數(shù)字電路系統(tǒng)設(shè)計(jì)的功能仿
    發(fā)表于 12-19 11:14 ?6.8w次閱讀
    <b class='flag-5'>modelsim</b><b class='flag-5'>仿真</b>詳細(xì)過(guò)程(功能<b class='flag-5'>仿真</b>與時(shí)序<b class='flag-5'>仿真</b>)

    通過(guò)ModelSim-Altera生成測(cè)試臺(tái)并通過(guò)NativeLink運(yùn)行RTL仿真的步驟

    如何通過(guò)ModelSim-Altera生成測(cè)試臺(tái),并通過(guò)NativeLink運(yùn)行RTL仿真
    的頭像 發(fā)表于 06-22 09:00 ?4605次閱讀

    仿真軟件ModelSim及其應(yīng)用,ModelSim仿真流程

    ModelSim不僅可以用于數(shù)字電路系統(tǒng)設(shè)計(jì)的功能仿真,還可以應(yīng)用于數(shù)字電路系統(tǒng)設(shè)計(jì)的時(shí)序仿真ModelSim的使用中,最基本的步驟包括
    的頭像 發(fā)表于 12-29 11:35 ?9708次閱讀

    Modelsim仿真教程Modelsim的基礎(chǔ)入門基礎(chǔ)教程免費(fèi)下載

    Modelsim,但是Modelsim不是仿真,嚴(yán)格來(lái)講Modelsim只是仿真所需的工具而已,又或者說(shuō)
    發(fā)表于 04-30 18:24 ?23次下載
    <b class='flag-5'>Modelsim</b><b class='flag-5'>仿真</b>教程<b class='flag-5'>Modelsim</b>的基礎(chǔ)入門基礎(chǔ)教程免費(fèi)下載

    基于ModelSim使用四ModelSim手動(dòng)仿真教程

    4.1 新建仿真工程 在開始動(dòng)手仿真之前,首先,我們需要?jiǎng)?chuàng)建一個(gè)文件夾用來(lái)放置我們的 ModelSim 仿真工程文件,這里我們就在之前創(chuàng)建的 Quartus 工程目錄下的 simula
    的頭像 發(fā)表于 07-23 11:10 ?4193次閱讀

    基于ModelSim使用modelsim手動(dòng)時(shí)序仿真教程

    時(shí)序仿真與功能仿真的步驟大體相同,只不過(guò)中間需要添加仿真庫(kù)、網(wǎng)表(.vo)文件和延時(shí)(.sdo)文件。到了這里,問(wèn)題來(lái)了,仿真庫(kù)、網(wǎng)表(.v
    的頭像 發(fā)表于 07-23 11:55 ?2371次閱讀

    modelsim波形仿真的基本操作了解

    的時(shí)間在5分鐘左右。為此,通過(guò)不斷地學(xué)習(xí),終于將波形仿真的各個(gè)事項(xiàng)了解清楚。這里做一下記錄,方便以后回顧。
    的頭像 發(fā)表于 11-29 09:52 ?3444次閱讀

    Vivado調(diào)用Modelsim仿真

    Modelsim是十分常用的外部仿真工具,在Vivado中也可以調(diào)用Modelsim進(jìn)行仿真,下面將介紹如何對(duì)vivado進(jìn)行配置并調(diào)用Models
    的頭像 發(fā)表于 07-24 09:04 ?3983次閱讀
    Vivado調(diào)用<b class='flag-5'>Modelsim</b><b class='flag-5'>仿真</b>
    主站蜘蛛池模板: 色精品一区二区三区 | 亚洲精品网站日本xxxxxxx | free chinese 国产精品 | www.夜夜骑| 色视频免费国产观看 | 激情亚洲色图 | 欧美人成网 | 久久国产乱子伦精品免 | 黄色免费在线网站 | 四虎在线最新永久免费播放 | 在线 | 一区二区三区四区 | 天堂色| 天天综合色天天桴色 | 久久精品国产亚洲婷婷 | 美女张开腿露出尿口让男人桶 | 97婷婷色| 日本一区二区视频在线观看 | 亚洲毛片儿 | 亚洲经典一区二区三区 | 精品国产污污免费网站入口 | 日本在线一本 | 亚洲综合亚洲综合网成人 | 97影院午夜在线观看视频 | 在线播放一区二区精品产 | 久久亚洲精品玖玖玖玖 | 一级片aaaaaa | 黄色网址在线免费观看 | 国产乱人视频免费播放 | 人人做人人爽人人爱秋霞影视 | 亚洲天天做夜夜做天天欢人人 | 黄色视屏免费在线观看 | 一级特黄性色生活片一区二区 | 国产精品成人aaaaa网站 | 69xxxxx日本护士 | 天天欲色| 婷婷亚洲综合五月天小说在线 | 久久天天躁狠狠躁夜夜不卡 | 在线观看s色 | 一级特黄女人生活片 | 1000又爽又黄禁片 | 日本三级黄 |