RM新时代网站-首页

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

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

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

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

FPGA之家 ? 來(lái)源:數(shù)字積木 ? 作者:數(shù)字積木 ? 2021-07-23 11:10 ? 次閱讀

4.1 新建仿真工程

在開(kāi)始動(dòng)手仿真之前,首先,我們需要?jiǎng)?chuàng)建一個(gè)文件夾用來(lái)放置我們的 ModelSim 仿真工程文件,這里我們就在之前創(chuàng)建的 Quartus 工程目錄下的 simulation 文件夾中創(chuàng)建一個(gè)manual_modelsim 文件夾。

manual_modelsim 文件夾創(chuàng)建好以后,我們還需要將已經(jīng)編寫(xiě)好的Verilog 仿真文件和 Testbench 仿真文件添加至我們的 manual_modelsim 文件夾中,這里我們就將自動(dòng)仿真時(shí)用到的 Verilog_First.v 文件和 Verilog_First.vt 文件復(fù)制到 manual_modelsim文件夾。

Verilog_First.v 文件在我們的 Quartus II 工程目錄下,Verilog_First.vt 文件在我們的Quartus II 工程目錄下 simulation 文件夾下的 modelsim 文件夾中。完成以上準(zhǔn)備工作之后,我們就可以打開(kāi) ModelSim-Altera 10.1d (Quartus II 13.1)軟件了,這里我們需要注意的是,我們打開(kāi)的 ModelSim 軟件版本是 ModelSim-Altera Starter Edition 免費(fèi)版本

打開(kāi)軟件之后,我們?cè)?ModelSim 軟件界面的菜單欄中找到【File】→【New】→【Project】菜單并點(diǎn)擊打開(kāi),彈出的對(duì)話(huà)框如圖

我們從對(duì)話(huà)框中可以看到,Project Name(工程名)就是用來(lái)設(shè)置我們的工程名,這里我們將它命名為 Verilog_First,這里的命名方式,我們建議大家最好根據(jù)我們仿真的文件來(lái)進(jìn)行命名,時(shí)間久了,當(dāng)我們記不得這個(gè)仿真工程是用來(lái)仿真什么的時(shí)候,我們看到這個(gè)工程名,就能夠知道它是用來(lái)做什么的了。

Project Location(工程路徑),可以設(shè)置工程保存的文件夾,使用者可以根據(jù)需要把工程保存到不同的位置。這 里 我 們 將 路 徑 設(shè) 置 在 了E:/A4_Plus_Verilog/Verilog_First/simulation/manual_modelsim 文件夾中。下面這兩部分是用來(lái)設(shè)置仿真庫(kù)名稱(chēng)和路徑的,這里我們使用默認(rèn)即可。設(shè)置好工程名、工程位置,我們點(diǎn)擊【OK】按鈕

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

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

4.2 編譯仿真文件

添加完文件以后,接下來(lái)我們就需要編譯我們的仿真文件。編譯的方有兩種:Compile Selected(編譯所選)和 Compile All(編譯全部)。編譯所選功能需要先選中一個(gè)或幾個(gè)文件,執(zhí)行該命令可以完成對(duì)選中文件的編譯;

編譯全部功能不需要選中文件,該命令是按編譯順序?qū)こ讨械乃形募M(jìn)行編譯。我們可以在菜單欄【Compile】中找到這兩個(gè)命令,也可以在快捷工具欄或者在工作區(qū)中的右鍵彈出的菜單中找到這兩個(gè)命令。下面我們單擊 Compile All(編譯全部),將會(huì)出現(xiàn)如圖

文件編譯后 Status 列可能會(huì)有三個(gè)不同狀態(tài)。除了上述的用“√”顯示的通過(guò)狀態(tài),還有兩個(gè)在設(shè)計(jì)中不希望出現(xiàn)的狀態(tài):編譯錯(cuò)誤和包含警告的編譯通過(guò)。編譯錯(cuò)誤即 Modelsim 無(wú)法完成文件的編譯工作。

通常這種情況是因?yàn)楸痪幾g文件中包含明顯的語(yǔ)法錯(cuò)誤,這是 Modelsim會(huì)識(shí)別出這些語(yǔ)法錯(cuò)誤并提示使用者,使用者可根據(jù) Modelsim 的提示信息進(jìn)行修改。編譯錯(cuò)誤時(shí)會(huì)在 Status 列中顯示紅色的“×”。包含警告的編譯通過(guò)是一種比較特殊的狀態(tài),表示被編譯的文件沒(méi)有明顯的語(yǔ)法錯(cuò)誤,但是可能包含一些影響最終輸出結(jié)果的因素。

這種狀態(tài)在實(shí)際使用中也較少會(huì)出現(xiàn),該狀態(tài)在 Status 欄中也會(huì)顯示“√”,但是在對(duì)號(hào)的后面會(huì)出現(xiàn)一個(gè)黃色的三角符號(hào),這類(lèi)信息一般在功能仿真的時(shí)候不會(huì)帶來(lái)明顯的影響,不過(guò)可能會(huì)在后續(xù)的綜合和時(shí)序仿真中造成無(wú)法估計(jì)的錯(cuò)誤,所以出現(xiàn)這種狀態(tài)時(shí)推薦讀者也要根據(jù)警告信息修改代碼,確保后續(xù)使用的安全性。

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

我們編譯完成后,接下來(lái)我們就開(kāi)始配置仿真環(huán)境,我們?cè)?ModelSim 菜單欄中找到【Simulate】→【Start Simulation.。。】菜單并點(diǎn)擊

從配置仿真功能頁(yè)面中我們可以看出,該頁(yè)面中含有 6 個(gè)標(biāo)簽,它們分別是:Design、VHDL、Verilog、Libraries、SDF 和 Others。對(duì)于這 6 個(gè)標(biāo)簽,我們用的最多的就屬 Design、Libraries和 SDF,這三個(gè)標(biāo)簽了,下面我們就來(lái)簡(jiǎn)單的介紹一下這 3 個(gè)標(biāo)簽,其余的標(biāo)簽我們一般用不到,這里我們就不再進(jìn)行介紹了。

首先介紹 Design 標(biāo)簽,該標(biāo)簽內(nèi)居中的部分是 Modelsim 中包含的全部庫(kù),可展開(kāi)看到庫(kù)中包含的設(shè)計(jì)單元,這些庫(kù)和單元是為了仿真提供選擇的,使用者可以選擇需要進(jìn)行仿真的設(shè)計(jì)單元開(kāi)始仿真,被選中的仿真單元的名字就會(huì)出現(xiàn)在下方的 Design Unit(s)位置。

Modelsim支持同時(shí)對(duì)多個(gè)文件進(jìn)行仿真,可以利用 Ctrl 和 Shift 鍵來(lái)選擇多個(gè)文件,被選中的全部文件名都會(huì)出現(xiàn)在 Design Unit(s)區(qū)域。在 Design Unit(s)區(qū)域的右側(cè)是 Resolution 選項(xiàng),這里可以選擇仿真的時(shí)間刻度。

時(shí)間刻度的概念類(lèi)似于長(zhǎng)度度量單位的米,在 Modelsim 進(jìn)行仿真的時(shí)候,有一個(gè)最小的時(shí)間單位,這個(gè)單位是使用者可以指定的。如最小單位是 10ns,在仿真器工作的時(shí)候都是按 10ns 為單位進(jìn)行仿真,對(duì) 10ns 單位一下發(fā)生的信號(hào)變化不予考慮或不予顯示,當(dāng)測(cè)試文檔有類(lèi)似于#1 a=1‘b1;的句子時(shí),Modelsim 就不會(huì)考慮句中延遲。

這個(gè)選項(xiàng)一般都是設(shè)置在默認(rèn)的狀態(tài),這時(shí)會(huì)根據(jù)仿真器中指定的最小時(shí)間刻度來(lái)進(jìn)行仿真,如果設(shè)計(jì)文件中沒(méi)有指定,則按 1ns 來(lái)進(jìn)行仿真。最下方的區(qū)域是 Optimization 區(qū)域,可以再仿真開(kāi)始的時(shí)候激活優(yōu)化,由于我們是免費(fèi)版本,很多功能都受限制,所以我們可以看到這里我們不能使用。第二個(gè)介紹的標(biāo)簽是 Libraries 標(biāo)簽

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

SDF 是 Standard Delay Format(標(biāo)準(zhǔn)延遲格式)的縮寫(xiě),內(nèi)部包含了各種延遲信息,也是用于時(shí)序仿真的重要文件。SDF Files 區(qū)域用來(lái)添加 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)對(duì)同一端口的驅(qū)動(dòng),如果有多個(gè)控制信號(hào)同時(shí)控制同一個(gè)端口或互連,且每個(gè)信號(hào)的延遲值不同,可以在此選項(xiàng)統(tǒng)一延遲。

下拉菜單中可供選擇的有三個(gè)選項(xiàng):latest、min 和 max。max 即選擇所有信號(hào)中延遲最大的值作為統(tǒng)一值,min 即選擇所有信號(hào)中延遲最小的值作為統(tǒng)一值,latest 則是選擇最后的延遲作為統(tǒng)一值。

至此,這三個(gè)標(biāo)簽我們就介紹完了,接下來(lái)我們?cè)?Design 標(biāo)簽頁(yè)面中選擇 work 庫(kù)中的Verilog_First_vlg_tst 模塊,然后點(diǎn)擊【OK】就可以開(kāi)始進(jìn)行功能仿真了,其余標(biāo)簽頁(yè)面中的配置我們使用默認(rèn)就可以了。

4.4 開(kāi)始功能仿真

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

接下來(lái)我們?cè)?Object 窗口中選中我們需要仿真的信號(hào),然后點(diǎn)擊右鍵,在彈出的菜單欄中找到【Add Wave】并單擊,我們會(huì)發(fā)現(xiàn),我們的信號(hào)添加到了 Wave 窗口中。

這時(shí),我們可以按快捷鍵 F9,也可以在 ModelSim 的菜單欄中找到【Run】按鈕,點(diǎn)擊運(yùn)行就會(huì)出現(xiàn)我們想要的波形,這里我們需要注意的是,默認(rèn)的運(yùn)行時(shí)間一次運(yùn)行的是 100ps,我們可以在菜單欄中進(jìn)行修改,也可以直接在控制臺(tái)中輸入命令 run 100ns,直接運(yùn)行 100ns

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

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guā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

    瀏覽量

    47162

原文標(biāo)題:ModelSim 使用【四】ModelSim手動(dòng)仿真

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RobotStudio 6.08的手動(dòng)操作方法

    點(diǎn)擊第個(gè) 圖標(biāo)。然后選中關(guān)節(jié),按住鼠標(biāo)左鍵進(jìn)行拖拽,即可實(shí)現(xiàn)對(duì)應(yīng)關(guān)節(jié)的手動(dòng)操作。 方法二:【基本】->【布局】,選中機(jī)器人,鼠
    的頭像 發(fā)表于 12-18 09:53 ?102次閱讀
    RobotStudio 6.08的<b class='flag-5'>手動(dòng)</b>操作方法

    使用modelsim時(shí)的問(wèn)題分析

    仿真對(duì)于FPGA設(shè)計(jì)來(lái)說(shuō)至關(guān)重要,我們經(jīng)常使用modelsim來(lái)進(jìn)行功能仿真或者時(shí)序仿真,這樣就需要將modelsim和設(shè)計(jì)軟件(quart
    的頭像 發(fā)表于 10-24 18:15 ?266次閱讀
    使用<b class='flag-5'>modelsim</b>時(shí)的問(wèn)題分析

    Efinity FIFO IP仿真問(wèn)題 -v1

    幾個(gè)文件? 我們來(lái)看下modelsim.do文件,里面vlog了fifo_tb.sv文件,另外還調(diào)用了flist文件里的文件,flist只有一個(gè)文件那就是fifo_sim.v。所以這個(gè)仿真只使用了兩個(gè)
    的頭像 發(fā)表于 10-21 11:41 ?980次閱讀
    Efinity FIFO IP<b class='flag-5'>仿真</b>問(wèn)題 -v1

    如何在ModelSim中添加X(jué)ilinx仿真庫(kù)

    今天給大俠帶來(lái)在FPGA設(shè)計(jì)應(yīng)用中如何在ModelSim中添加X(jué)ilinx仿真庫(kù),話(huà)不多說(shuō),上貨。 注意:ModelSim一定要安裝在不帶空格的目錄下,即不要安裝在“Program
    發(fā)表于 07-03 18:16

    FPGA入門(mén)必備:Testbench仿真文件編寫(xiě)實(shí)例詳解

    在編寫(xiě)完HDL代碼后,往往需要通過(guò)仿真軟件Modelsim或者Vivadao自帶的仿真功能對(duì)HDL代碼功能進(jìn)行驗(yàn)證,此時(shí)我們需要編寫(xiě)Testbench文件對(duì)HDL功能進(jìn)行測(cè)試驗(yàn)證。
    發(fā)表于 04-29 10:43 ?2001次閱讀

    fpga開(kāi)發(fā)一般用什么軟件

    此外,還有一些其他的輔助工具,如用于數(shù)字信號(hào)處理開(kāi)發(fā)的System Generator,以及用于HDL語(yǔ)言仿真ModelSim等。這些工具可以配合上述的主要FPGA開(kāi)發(fā)軟件使用,提高開(kāi)發(fā)效率和設(shè)計(jì)質(zhì)量。
    的頭像 發(fā)表于 03-27 14:54 ?4035次閱讀

    ISE 關(guān)聯(lián) Modelsim 詳細(xì)操作

    在兩者之間即可,然后保存。 第三步,打開(kāi)ISE,在菜單Edit-Preferences…,調(diào)出設(shè)置窗口。 設(shè)置好之后就到了最后一步,在新建工程時(shí),選擇對(duì)應(yīng)的modelsim即可,在看仿真時(shí)正常打開(kāi)就行了。
    發(fā)表于 03-22 18:55

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

    過(guò)程又有兩種方法,一種是通過(guò)Quartus調(diào)用Modelsim,Quartus在編譯之后自動(dòng)把仿真需要的.vo文件以及需要的仿真庫(kù)加到modelsim中,操作簡(jiǎn)單;一種是
    發(fā)表于 03-19 16:40

    fpga仿真文件怎么寫(xiě)

    首先,你需要選擇一個(gè)FPGA仿真軟件,如ModelSim、Vivado、Quartus II等。這些軟件都提供了強(qiáng)大的仿真功能,可以幫助你驗(yàn)證FPGA設(shè)計(jì)的正確性。
    的頭像 發(fā)表于 03-15 14:00 ?790次閱讀

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

    仿真也稱(chēng)為時(shí)序仿真或者布局布線(xiàn)后仿真,是指電路已經(jīng)映射到特定的工藝環(huán)境以后,綜合考慮電路的路徑延遲與門(mén)延遲的影響,驗(yàn)證電路能否在一定時(shí)序條件下滿(mǎn)足設(shè)計(jì)構(gòu)想的過(guò)程,是否存在時(shí)序違規(guī)。
    的頭像 發(fā)表于 03-06 09:58 ?9162次閱讀
    最實(shí)用的<b class='flag-5'>Modelsim</b>使用及<b class='flag-5'>仿真</b>的基本步驟

    【基于Lattice MXO2的小腳丫FPGA核心板】02ModelSim仿真

    ModelSim軟件用于FPGA的模塊仿真 軟件安裝 ModelSim仿真軟件隨著Diamond一同安裝,軟件的安裝和證書(shū)申請(qǐng)流程很簡(jiǎn)單可以參考電子森林Lattice Diamond教
    發(fā)表于 02-29 08:25

    Modelsim報(bào)錯(cuò), -novopt 開(kāi)關(guān)打開(kāi),仿真失敗

    在使用紫光同創(chuàng)PDS和Modelsim聯(lián)合仿真時(shí),modelsim報(bào)錯(cuò)不會(huì)解決,如下圖
    發(fā)表于 02-18 10:26

    仿真

    #2024,為FPGA生態(tài)加油,為FPGA社區(qū)點(diǎn)贊#...使用IP核時(shí)如何進(jìn)行modelsim仿真
    發(fā)表于 02-02 20:22

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

    ModelSim為HDL仿真工具,我們可以利用該軟件來(lái)實(shí)現(xiàn)對(duì)所設(shè)計(jì)的VHDL或Verilog程 序進(jìn)行仿真,支持IEEE常見(jiàn)的各種硬件描述語(yǔ)言標(biāo)準(zhǔn)。可以進(jìn)行兩種語(yǔ)言的混合仿真,但 推薦
    發(fā)表于 01-14 09:47 ?0次下載

    modelsim安裝運(yùn)行patch閃退

    模擬器的安裝和運(yùn)行是計(jì)算機(jī)科學(xué)中非常重要的一環(huán)。ModelSim是一種流行的數(shù)字電子設(shè)計(jì)自動(dòng)化工具,用于驗(yàn)證和仿真硬件設(shè)計(jì)。然而,有時(shí)安裝和運(yùn)行Patch可能會(huì)導(dǎo)致閃退問(wèn)題。本文將詳細(xì)解釋如何安裝
    的頭像 發(fā)表于 01-04 10:43 ?1508次閱讀
    RM新时代网站-首页