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

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

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

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

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

4.1 新建仿真工程

在開始動手仿真之前,首先,我們需要創(chuàng)建一個文件夾用來放置我們的 ModelSim 仿真工程文件,這里我們就在之前創(chuàng)建的 Quartus 工程目錄下的 simulation 文件夾中創(chuàng)建一個manual_modelsim 文件夾。

manual_modelsim 文件夾創(chuàng)建好以后,我們還需要將已經(jīng)編寫好的Verilog 仿真文件和 Testbench 仿真文件添加至我們的 manual_modelsim 文件夾中,這里我們就將自動仿真時用到的 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 免費版本

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

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

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

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

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

4.2 編譯仿真文件

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

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

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

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

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

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

我們編譯完成后,接下來我們就開始配置仿真環(huán)境,我們在 ModelSim 菜單欄中找到【Simulate】→【Start Simulation.。?!坎藛尾Ⅻc擊

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

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

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

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

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

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

SDF 是 Standard Delay Format(標(biāo)準(zhǔn)延遲格式)的縮寫,內(nèi)部包含了各種延遲信息,也是用于時序仿真的重要文件。SDF Files 區(qū)域用來添加 SDF 文件,選擇 Add 進行添加,選擇 Modify進行修改,選擇 Delete 刪除添加的文件。

SDF Options 設(shè)置 SDF 文件的 warning 和 error 信息。第一個 Disable SDF warning 是禁用 SDF 警告,第二個 Reduce SDF errors to warnings 是把所有的 SDF 錯誤信息編程警告信息。Multi-Source delay 可以控制多個目標(biāo)對同一端口的驅(qū)動,如果有多個控制信號同時控制同一個端口或互連,且每個信號的延遲值不同,可以在此選項統(tǒng)一延遲。

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

至此,這三個標(biāo)簽我們就介紹完了,接下來我們在 Design 標(biāo)簽頁面中選擇 work 庫中的Verilog_First_vlg_tst 模塊,然后點擊【OK】就可以開始進行功能仿真了,其余標(biāo)簽頁面中的配置我們使用默認就可以了。

4.4 開始功能仿真

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

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

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

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

編輯:jq

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

    關(guān)注

    5

    文章

    174

    瀏覽量

    47925

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

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

收藏 0人收藏

    評論

    相關(guān)推薦
    熱點推薦

    季豐電子推出低高溫手動探針臺設(shè)備

    為滿足客戶對低溫測試的要求,季豐電子成功自研了低高溫手動探針臺,目前已在季豐張江FA投入使用,該機臺填補了傳統(tǒng)常規(guī)型手動探針臺無法實現(xiàn)低溫測試環(huán)境的空白。
    的頭像 發(fā)表于 06-05 13:38 ?103次閱讀

    詳解ADC電路的靜態(tài)仿真和動態(tài)仿真

    ADC電路主要存在靜態(tài)仿真和動態(tài)仿真兩類仿真,針對兩種不同的仿真,我們存在不同的輸入信號和不同的數(shù)據(jù)采樣,因此靜態(tài)仿真和動態(tài)
    的頭像 發(fā)表于 06-05 10:19 ?264次閱讀
    詳解ADC電路的靜態(tài)<b class='flag-5'>仿真</b>和動態(tài)<b class='flag-5'>仿真</b>

    【紫光同創(chuàng)盤古100Pro+開發(fā)板,MES2L676-100HP教程】盤古676系列——Modelsim的使用和do文件編寫

    的基本使用方法,完成do文件的編寫,提高仿真效率。 實驗環(huán)境: Window11 PDS2022.2-SP6.4 Modelsim10.6rc 二:??????????????實驗原理 將Modelsim
    發(fā)表于 02-25 18:36

    ads124s08通道切換只能手動切嗎?

    ads124s08通道切換只能手動切嗎?多通道可不可以實現(xiàn)三個MUXP,MUXN,I2MUX,I1MUX 個一組,循環(huán)切換三組通道處理?還有這個轉(zhuǎn)換時間怎么評估?
    發(fā)表于 12-20 06:17

    RobotStudio 6.08的手動操作方法

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

    Verilog 測試平臺設(shè)計方法 Verilog FPGA開發(fā)指南

    指南: Verilog測試平臺設(shè)計方法 選擇仿真工具 : 選擇一款強大的仿真工具,如ModelSim、Xilinx ISE等。這些工具提供了豐富的功能,包括波形查看、調(diào)試功能、時序分析等,能夠滿足
    的頭像 發(fā)表于 12-17 09:50 ?1022次閱讀

    ADS8332在手動觸發(fā)、手動通道選擇情況下,它的SDI是如何進行指令的?

    芯片在手動觸發(fā)、手動通道選擇情況下,它的SDI是如何進行指令的,因為比如選擇通道0需要指令b0000;但是讀數(shù)則需要指令1101。 同時能否解讀一下內(nèi)部時鐘CCLK和外部時鐘SCLK之間的關(guān)系,后續(xù)可能會用到自動觸發(fā)。
    發(fā)表于 11-21 07:55

    AMC1306M25 SINC3濾波器數(shù)據(jù)采樣不準(zhǔn)是怎么回事?

    值小。這個怎么回事? 通過modelsim仿真發(fā)現(xiàn),要經(jīng)過次采樣后數(shù)據(jù)才是正確的,三次采樣數(shù)據(jù)偏小。但是查資料都是采樣三次就可以得到穩(wěn)定的數(shù)據(jù),這又是為什么呢? 給到AMC1306的MCLK一直都
    發(fā)表于 11-15 07:00

    使用modelsim時的問題分析

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

    基于51單片機的手動數(shù)字時鐘

    按鍵,可實現(xiàn)秒復(fù)位。仿真演示視頻:基于51單片機的手動數(shù)字時鐘-仿真視頻設(shè)計介紹51單片機簡介51單片是一種低功耗、高性能CMOS-8位微控制器,擁有靈巧的8位CPU和可編程Flash,使得51單片機為
    的頭像 發(fā)表于 10-22 14:12 ?537次閱讀
    基于51單片機的<b class='flag-5'>手動</b>數(shù)字時鐘

    Efinity FIFO IP仿真問題 -v1

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

    延時開關(guān)改手動開關(guān)怎么接線

    延時開關(guān)和手動開關(guān)是兩種不同類型的開關(guān),它們的工作原理和接線方式也有所不同。在某些情況下,我們可能需要將延時開關(guān)改為手動開關(guān),以滿足特定的使用需求。 一、延時開關(guān)和手動開關(guān)的區(qū)別 工作原理 延時開關(guān)
    的頭像 發(fā)表于 08-19 15:49 ?1439次閱讀

    TE Connectivity高級手動工具解決方案

    CERTI-CRIMP手動工具是業(yè)界頂級的優(yōu)質(zhì)手動操作工具,用于壓接各種端子、接觸件和專用布線器件。這些工具根據(jù)實現(xiàn)始終如一的高品質(zhì)端接所需的具體規(guī)范設(shè)計而成。使用壽命有可能達到 50,000 次以上,具體取決于操作員的維護。
    的頭像 發(fā)表于 07-19 16:23 ?525次閱讀
    TE Connectivity高級<b class='flag-5'>手動</b>工具解決方案

    如何在ModelSim中添加Xilinx仿真

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

    abb工業(yè)機器人手動操作有哪三種模式?

    ABB工業(yè)機器人是一種廣泛應(yīng)用于制造業(yè)、物流、醫(yī)療等領(lǐng)域的自動化設(shè)備。它具有高度的靈活性和精確性,可以完成各種復(fù)雜的任務(wù)。在操作ABB工業(yè)機器人時,通常有三種手動操作模式:手動單軸移動模式、手動線性
    的頭像 發(fā)表于 06-16 16:44 ?6448次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品