RM新时代网站-首页

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

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

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

ModelSim手動仿真教程

FPGA之家 ? 來源:數(shù)字積木 ? 作者:數(shù)字積木 ? 2022-07-11 10:58 ? 次閱讀

4.1 新建仿真工程

在開始動手仿真之前,首先,我們需要?jiǎng)?chuàng)建一個(gè)文件夾用來放置我們的 ModelSim 仿真工程文件,這里我們就在之前創(chuàng)建的 Quartus 工程目錄下的 simulation 文件夾中創(chuàng)建一個(gè)manual_modelsim 文件夾。manual_modelsim 文件夾創(chuàng)建好以后,我們還需要將已經(jīng)編寫好的Verilog 仿真文件和 Testbench 仿真文件添加至我們的 manual_modelsim 文件夾中,這里我們就將自動仿真時(shí)用到的 Verilog_First.v 文件和 Verilog_First.vt 文件復(fù)制到 manual_modelsim文件夾。(Verilog_First.v 文件在我們的 Quartus II 工程目錄下,Verilog_First.vt 文件在我們的Quartus II 工程目錄下 simulation 文件夾下的 modelsim 文件夾中。)完成以上準(zhǔn)備工作之后,我們就可以打開 ModelSim-Altera 10.1d (Quartus II 13.1)軟件了,這里我們需要注意的是,我們打開的 ModelSim 軟件版本是 ModelSim-Altera Starter Edition 免費(fèi)版本,如圖

f37f0c32-00c3-11ed-ba43-dac502259ad0.png

打開軟件之后,我們在 ModelSim 軟件界面的菜單欄中找到【File】→【New】→【Project】菜單并點(diǎn)擊打開,彈出的對話框如圖

f3960cc0-00c3-11ed-ba43-dac502259ad0.png

我們從對話框中可以看到,Project Name(工程名)就是用來設(shè)置我們的工程名,這里我們將它命名為 Verilog_First,這里的命名方式,我們建議大家最好根據(jù)我們仿真的文件來進(jìn)行命名,時(shí)間久了,當(dāng)我們記不得這個(gè)仿真工程是用來仿真什么的時(shí)候,我們看到這個(gè)工程名,就能夠知道它是用來做什么的了。Project Location(工程路徑),可以設(shè)置工程保存的文件夾,使用者可以根據(jù)需要把工程保存到不同的位置。這 里 我 們 將 路 徑 設(shè) 置 在 了E:/A4_Plus_Verilog/Verilog_First/simulation/manual_modelsim 文件夾中。下面這兩部分是用來設(shè)置仿真庫名稱和路徑的,這里我們使用默認(rèn)即可。設(shè)置好工程名、工程位置,我們點(diǎn)擊【OK】按鈕,彈出如圖

f3a42ec2-00c3-11ed-ba43-dac502259ad0.png

我們可以從該圖中的選擇窗口中看出,它共有四種操作:Create New File(創(chuàng)建新文件)、Add Existing File(添加已有文件)、Create Simulation(創(chuàng)建仿真)和 Create New Folder(創(chuàng)建新文件夾)。這里我們選擇 Add Existing File(添加已有文件),如圖

f3c0ee54-00c3-11ed-ba43-dac502259ad0.png

在 該 頁 面 中 我 們 可 以 看 到 , 我 們 將 我 們 之 前 準(zhǔn) 備 的 好 兩 個(gè) 文 件 Verilog_First.v 和Verilog_First.vt 添加至我們的 ModelSim 仿真工程中。添加好以后,我們點(diǎn)擊【OK】按鈕,然后我們再關(guān)閉【Add items to the Project】對話框,如圖

f3d2a19e-00c3-11ed-ba43-dac502259ad0.png

4.2 編譯仿真文件

添加完文件以后,接下來我們就需要編譯我們的仿真文件。編譯的方有兩種:Compile Selected(編譯所選)和 Compile All(編譯全部)。編譯所選功能需要先選中一個(gè)或幾個(gè)文件,執(zhí)行該命令可以完成對選中文件的編譯;編譯全部功能不需要選中文件,該命令是按編譯順序?qū)こ讨械乃形募M(jìn)行編譯。我們可以在菜單欄【Compile】中找到這兩個(gè)命令,也可以在快捷工具欄或者在工作區(qū)中的右鍵彈出的菜單中找到這兩個(gè)命令。下面我們單擊 Compile All(編譯全部),將會出現(xiàn)如圖

f3eb0d42-00c3-11ed-ba43-dac502259ad0.png

文件編譯后 Status 列可能會有三個(gè)不同狀態(tài)。除了上述的用“√”顯示的通過狀態(tài),還有兩個(gè)在設(shè)計(jì)中不希望出現(xiàn)的狀態(tài):編譯錯(cuò)誤和包含警告的編譯通過。編譯錯(cuò)誤即 Modelsim 無法完成文件的編譯工作。通常這種情況是因?yàn)楸痪幾g文件中包含明顯的語法錯(cuò)誤,這是 Modelsim會識別出這些語法錯(cuò)誤并提示使用者,使用者可根據(jù) Modelsim 的提示信息進(jìn)行修改。編譯錯(cuò)誤時(shí)會在 Status 列中顯示紅色的“×”。包含警告的編譯通過是一種比較特殊的狀態(tài),表示被編譯的文件沒有明顯的語法錯(cuò)誤,但是可能包含一些影響最終輸出結(jié)果的因素。這種狀態(tài)在實(shí)際使用中也較少會出現(xiàn),該狀態(tài)在 Status 欄中也會顯示“√”,但是在對號的后面會出現(xiàn)一個(gè)黃色的三角符號,這類信息一般在功能仿真的時(shí)候不會帶來明顯的影響,不過可能會在后續(xù)的綜合和時(shí)序仿真中造成無法估計(jì)的錯(cuò)誤,所以出現(xiàn)這種狀態(tài)時(shí)推薦讀者也要根據(jù)警告信息修改代碼,確保后續(xù)使用的安全性。

4.3 配置仿真環(huán)境

我們編譯完成后,接下來我們就開始配置仿真環(huán)境,我們在 ModelSim 菜單欄中找到【Simulate】→【Start Simulation...】菜單并點(diǎn)擊,彈出如圖

f3fbb7e6-00c3-11ed-ba43-dac502259ad0.png

從配置仿真功能頁面中我們可以看出,該頁面中含有 6 個(gè)標(biāo)簽,它們分別是:Design、VHDL、Verilog、Libraries、SDF 和 Others。對于這 6 個(gè)標(biāo)簽,我們用的最多的就屬 Design、Libraries和 SDF,這三個(gè)標(biāo)簽了,下面我們就來簡單的介紹一下這 3 個(gè)標(biāo)簽,其余的標(biāo)簽我們一般用不到,這里我們就不再進(jìn)行介紹了。首先介紹 Design 標(biāo)簽,該標(biāo)簽內(nèi)居中的部分是 Modelsim 中包含的全部庫,可展開看到庫中包含的設(shè)計(jì)單元,這些庫和單元是為了仿真提供選擇的,使用者可以選擇需要進(jìn)行仿真的設(shè)計(jì)單元開始仿真,被選中的仿真單元的名字就會出現(xiàn)在下方的 Design Unit(s)位置。Modelsim支持同時(shí)對多個(gè)文件進(jìn)行仿真,可以利用 Ctrl 和 Shift 鍵來選擇多個(gè)文件,被選中的全部文件名都會出現(xiàn)在 Design Unit(s)區(qū)域。在 Design Unit(s)區(qū)域的右側(cè)是 Resolution 選項(xiàng),這里可以選擇仿真的時(shí)間刻度。時(shí)間刻度的概念類似于長度度量單位的米,在 Modelsim 進(jìn)行仿真的時(shí)候,有一個(gè)最小的時(shí)間單位,這個(gè)單位是使用者可以指定的。如最小單位是 10ns,在仿真器工作的時(shí)候都是按 10ns 為單位進(jìn)行仿真,對 10ns 單位一下發(fā)生的信號變化不予考慮或不予顯示,當(dāng)測試文檔有類似于#1 a=1'b1;的句子時(shí),Modelsim 就不會考慮句中延遲。這個(gè)選項(xiàng)一般都是設(shè)置在默認(rèn)的狀態(tài),這時(shí)會根據(jù)仿真器中指定的最小時(shí)間刻度來進(jìn)行仿真,如果設(shè)計(jì)文件中沒有指定,則按 1ns 來進(jìn)行仿真。最下方的區(qū)域是 Optimization 區(qū)域,可以再仿真開始的時(shí)候激活優(yōu)化,由于我們是免費(fèi)版本,很多功能都受限制,所以我們可以看到這里我們不能使用。第二個(gè)介紹的標(biāo)簽是 Libraries 標(biāo)簽,如圖

f41804c8-00c3-11ed-ba43-dac502259ad0.png

在該頁面中,我們可以設(shè)置搜索庫,可以指定一個(gè)庫來搜索實(shí)例化的 VHDL 設(shè)計(jì)單元。Search Libraries 和 Search Libraries First 的功能基本一致,唯一不同的是 Search Libraries First 中指定的庫會被指定在用戶庫之前被搜索。第三個(gè)介紹的標(biāo)簽是 SDF,其內(nèi)容如圖

f4285a44-00c3-11ed-ba43-dac502259ad0.png

SDF 是 Standard Delay Format(標(biāo)準(zhǔn)延遲格式)的縮寫,內(nèi)部包含了各種延遲信息,也是用于時(shí)序仿真的重要文件。SDF Files 區(qū)域用來添加 SDF 文件,選擇 Add 進(jìn)行添加,選擇 Modify進(jìn)行修改,選擇 Delete 刪除添加的文件。SDF Options 設(shè)置 SDF 文件的 warning 和 error 信息。第一個(gè) Disable SDF warning 是禁用 SDF 警告,第二個(gè) Reduce SDF errors to warnings 是把所有的 SDF 錯(cuò)誤信息編程警告信息。Multi-Source delay 可以控制多個(gè)目標(biāo)對同一端口的驅(qū)動,如果有多個(gè)控制信號同時(shí)控制同一個(gè)端口或互連,且每個(gè)信號的延遲值不同,可以在此選項(xiàng)統(tǒng)一延遲。下拉菜單中可供選擇的有三個(gè)選項(xiàng):latest、min 和 max。max 即選擇所有信號中延遲最大的值作為統(tǒng)一值,min 即選擇所有信號中延遲最小的值作為統(tǒng)一值,latest 則是選擇最后的延遲作為統(tǒng)一值。至此,這三個(gè)標(biāo)簽我們就介紹完了,接下來我們在 Design 標(biāo)簽頁面中選擇 work 庫中的Verilog_First_vlg_tst 模塊,然后點(diǎn)擊【OK】就可以開始進(jìn)行功能仿真了,其余標(biāo)簽頁面中的配置我們使用默認(rèn)就可以了。

4.4 開始功能仿真

在仿真前,Workspace 區(qū)域一般只有 Project 和 Library 兩個(gè)標(biāo)簽。開始仿真后,在Workspace 區(qū)域一般會增加 sim 標(biāo)簽、Files 標(biāo)簽和 Memory List 標(biāo)簽。除了 Workspace 區(qū)域會增加標(biāo)簽,在 MDI 窗口也會新出現(xiàn)一個(gè) Object 窗口等,在 Workspace 區(qū)域中的 sim 標(biāo)簽選中一個(gè)設(shè)計(jì)單元,在 Object 窗口就會出現(xiàn)該單元包含的輸入/輸出端口,如圖

f433fffc-00c3-11ed-ba43-dac502259ad0.png

接下來我們在 Object 窗口中選中我們需要仿真的信號,然后點(diǎn)擊右鍵,在彈出的菜單欄中找到【Add Wave】并單擊,我們會發(fā)現(xiàn),我們的信號添加到了 Wave 窗口中。這時(shí),我們可以按快捷鍵 F9,也可以在 ModelSim 的菜單欄中找到【Run】按鈕,點(diǎn)擊運(yùn)行就會出現(xiàn)我們想要的波形,這里我們需要注意的是,默認(rèn)的運(yùn)行時(shí)間一次運(yùn)行的是 100ps,我們可以在菜單欄中進(jìn)行修改,也可以直接在控制臺中輸入命令 run 100ns,直接運(yùn)行 100ns,如圖

f44478d2-00c3-11ed-ba43-dac502259ad0.png

到了這里,我們就完成了手動的功能仿真,后面的工作就是分析我們仿真出的波形,由于這部分內(nèi)容和我們在自動仿真中所講的內(nèi)容完全是一樣的,所以我們這里就不再進(jìn)一步重復(fù)講解了。


審核編輯:湯梓紅

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

    關(guān)注

    50

    文章

    4070

    瀏覽量

    133552
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110074
  • ModelSim
    +關(guān)注

    關(guān)注

    5

    文章

    174

    瀏覽量

    47162
收藏 人收藏

    評論

    相關(guān)推薦

    modelsim時(shí)序仿真總是出錯(cuò)為什么

    在使用quartusii modelsim仿真時(shí)。。功能仿真可以好用,。但是時(shí)序仿真就出錯(cuò)。。無論是手動打開
    發(fā)表于 11-26 21:06

    【雨的FPGA筆記】基礎(chǔ)實(shí)踐-------ModelSim手動仿真

    基于流水燈的ModelSIm軟件仿真為例子在工程文件sim下新建一個(gè)文件夾用來存放仿真文件代碼然后新建Modelsim文件存放在工程文件sim下 然后把在quartus II 寫的代碼
    發(fā)表于 01-13 16:34

    【正點(diǎn)原子DFPGL22G開發(fā)板體驗(yàn)】PDS聯(lián)合modelsim進(jìn)行HDL語言級別仿真

    modelsim進(jìn)行HDL語言級別仿真,操作比較簡潔,流程清晰,對modelsim第三方軟件支持較好,該方式比modelsim手動
    發(fā)表于 02-06 22:36

    Altera ModelSim 6.5仿真入門教程

    Altera ModelSim 6.5仿真入門教程,需要的可自行下載。 平臺 軟件: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仿真(適合xilinx ISE)

    基于Xilinx ISE的modelsim仿真教程
    發(fā)表于 11-30 15:52 ?8次下載

    使用 ModelSim 進(jìn)行設(shè)計(jì)仿真詳解

    本章為ModelSim的初級教程,讀者讀完本章可以較為熟練的使用ModelSim進(jìn)行設(shè)計(jì)仿真,本章沒有也不可能涉及ModelSim的各個(gè)方面,要想全面的掌握
    發(fā)表于 12-24 18:29 ?0次下載

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

    modelsim仿真詳細(xì)過程(功能仿真與時(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ì)過程(功能<b class='flag-5'>仿真</b>與時(shí)序<b class='flag-5'>仿真</b>)

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

    ModelSim不僅可以用于數(shù)字電路系統(tǒng)設(shè)計(jì)的功能仿真,還可以應(yīng)用于數(shù)字電路系統(tǒng)設(shè)計(jì)的時(shí)序仿真。 ModelSim的使用中,最基本的步驟包括創(chuàng)建工程、編寫源代碼、編譯、啟動
    的頭像 發(fā)表于 12-29 11:35 ?9624次閱讀

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

    筆者一直以來都在糾結(jié),自己是否要為仿真編輯相關(guān)的教程呢?一般而言,Modelsim等價(jià)仿真已經(jīng)成為大眾的常識,但是學(xué)習(xí)仿真是否學(xué)習(xí)Modelsim
    發(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使用二聯(lián)合Quarus自動仿真教程

    3 ModelSim工程實(shí)戰(zhàn)之自動仿真說完了 ModelSim 的使用流程,接下來我們將會對每個(gè)流程進(jìn)行詳細(xì)的操作演示,一步步、手把手帶領(lǐng)大家學(xué)習(xí)使用 ModelSim 軟件。首先我們
    的頭像 發(fā)表于 07-23 10:51 ?2071次閱讀
    基于<b class='flag-5'>ModelSim</b>使用二聯(lián)合Quarus自動<b class='flag-5'>仿真</b>教程

    基于ModelSim使用四ModelSim手動仿真教程

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

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

    時(shí)序仿真與功能仿真的步驟大體相同,只不過中間需要添加仿真庫、網(wǎng)表(.vo)文件和延時(shí)(.sdo)文件。到了這里,問題來了,仿真庫、網(wǎng)表(.vo)文件和延時(shí)(.sdo)文件怎么獲得呢?網(wǎng)
    的頭像 發(fā)表于 07-23 11:55 ?2310次閱讀

    如何夾帶modelsim仿真波形白底黑線

    Modelsim使用技巧—波形白底黑線設(shè)置 在發(fā)表期刊或者論文時(shí),我們需要夾帶modelsim仿真波形在我們的論文里,在modelsim默認(rèn)模式下的波形一般是黑底綠線白字,如圖1所示
    的頭像 發(fā)表于 08-26 11:23 ?3936次閱讀

    芯片設(shè)計(jì)之Modelsim仿真工具

    Modelsim仿真將設(shè)計(jì)以樹狀表示,設(shè)計(jì)中的每一個(gè)實(shí)體,每一個(gè)module、每一個(gè)進(jìn)程(always塊、initial塊等)在Modelsim仿真中以對象的形式展現(xiàn)。
    的頭像 發(fā)表于 08-12 15:04 ?2612次閱讀

    Vivado調(diào)用Modelsim仿真

    Modelsim是十分常用的外部仿真工具,在Vivado中也可以調(diào)用Modelsim進(jìn)行仿真,下面將介紹如何對vivado進(jìn)行配置并調(diào)用Models
    的頭像 發(fā)表于 07-24 09:04 ?3731次閱讀
    Vivado調(diào)用<b class='flag-5'>Modelsim</b><b class='flag-5'>仿真</b>
    RM新时代网站-首页