日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

verilog学习笔记- 4)Modelsim 软件的安装、使用

發布時間:2024/3/24 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 verilog学习笔记- 4)Modelsim 软件的安装、使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

Modelsim 的安裝:

安裝:

Modelsim 的使用:

手動仿真:

建立 TestBench 仿真文件:

編譯仿真文件:

配置仿真環境:

自動仿真:

選擇 EDA 仿真工具:

編寫 TestBench:

配置仿真環境:

運行 RTL 仿真(功能仿真)



Modelsim 的安裝:

安裝:

雙擊運行“modelsim-win64-10.4-se.exe”文件

接下來一路【Next>】

現在處于安裝過程,在安裝的過程中會出現兩次信息提示框,第一次提示是否在桌面建立快捷方式, 點擊“Yes”,如下圖所示:

第二次提示是否將 Modelsim可執行文件放入Path 變量,選擇―Yes‖時可以從DOS 提示符執行Modelsim, 這里我們選擇―Yes‖,如下圖所示:


Modelsim 的使用:

手動仿真:

建立 Modelsim 工程并添加仿真文件

?首先在 LED 流水燈的“sim”文件夾下新建文件夾“tb”,然后啟動 Modelsim 軟件,我們直接雙擊桌 面上的 Modelsim 軟件圖標,打開 Modelsim 軟件,在 Modelsim 中選擇 File->Change Directory,如下圖所示:

?在彈出的對話框中選擇目錄路徑為剛才新建的 tb 文件夾。

在 modelsim 中建立 project,選擇 File->New->Project,如下圖所示:

在“Project Name”欄中填寫工程名,這里的命名方式,我們建議大家最好根據仿真的文件來進行命名, 時間久了,當我們記不得這個仿真工程是用來仿真什么的時候,我們看到這個工程名,就能夠知道它是用 來做什么的了。這里我們把工程命名為“flow_led_tb”

“Project Location”是工程路徑,可以根據需要把工程保存到不同的位置。因為前一步驟更改目錄的時候已 經做了選擇,所以這里保持默認即可。下面這兩部分是用來設置仿真庫名稱和路徑的,這里我們使用默認 即可。設置好工程名、工程位置,我們點擊【OK】按鈕,彈出如下圖所示界面:

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

在該頁面我們點擊“Browse”按鈕選擇“flow_led.v”文件,其他的保持默認設置,最后點擊【OK】按 鈕。

建立 TestBench 仿真文件:

我們選擇“Create New File”(創建新文件),如下圖所示:

在“File Name”欄中輸入文件名“flow_led_tb”,與工程名一致。―Add file as type‖欄中選擇文件類型 為―Verilog‖類型,點擊【OK】按鈕,然后我們再關閉【Add items to the Project】對話框。此時可以看到,兩個文件“flow_led.v”和―flow_led_tb.v‖添加至我們的 ModelSim 仿真工程中,如下圖所示。

雙擊“flow_led_tb.v”文件,彈出下圖所示界面:

在其中編寫 TestBench 仿真代碼,編寫完成后,單擊下圖所框的保存按鈕

編譯仿真文件:

?編譯的方式有兩種:Compile Selected(編譯所選)和 Compile All(編譯全部)。編譯所選功能需要先 選中一個或幾個文件,執行該命令可以完成對選中文件的編譯;編譯全部功能不需要選中文件,該命令是 按編譯順序對工程中的所有文件進行編譯。我們可以在菜單欄【Compile】中找到這兩個命令,也可以在快 捷工具欄或者在工作區中的右鍵彈出的菜單中找到這兩個命令。下面我們單擊 Compile All(編譯全部),?如下圖所示。

編譯完成后,結果如下圖所示:

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

配置仿真環境:

編譯完成后,接下來我們就開始配置仿真環境,我們在 ModelSim 菜單欄中找到【Simulate】→【Start Simulation...】菜單并點擊,彈出如下右圖所示頁面。

從配置仿真功能頁面中我們可以看出,該頁面中包含 6 個標簽,分別是:Design、VHDL、Verilog、Libraries、 SDF 和 Others。對于這 6 個標簽,我們用的最多的是 Design、Libraries 和 SDF 這三個標簽了,下面我們就 來簡單的介紹一下這 3 個標簽,其余的標簽我們一般用不到,這里我們就不再進行介紹了。 首先看一下 Design 標簽,該標簽內居中的部分是 Modelsim 中當前包含的全部庫,可展開看到庫中包含 的設計單元,這些庫和單元是為仿真服務的,使用者可以選擇需要進行仿真的設計單元開始仿真,此時被 選中的仿真單元的名字就會出現在下方的 Design Unit(s)位置。Modelsim 支持同時對多個文件進行仿真, 可以使用 Ctrl 和 Shift 鍵來選擇多個文件,被選中的全部文件名都會出現在 Design Unit(s)區域。在 Design Unit(s)區域的右側是 Resolution 選項,這里可以選擇仿真的時間精度。在 Modelsim 進行仿真的時候,有 一個最小的時間單位,這個單位是使用者可以指定的,如最小單位是 1ns,仿真器在工作的時候按 1ns 為單 位進行仿真,對小于 1ns 發生的信號變化不予考慮或不予顯示。因而這個最小時間單位也就是仿真的時間精 度。這個選項一般都是設置在默認狀態,這時 Modelsim 依照仿真設計文件中指定的最小時間刻度來進行仿 真,如果設計文件中沒有指定,則按 1ns 來進行仿真。最下方的區域是 Optimization 區域,可以在仿真開始 的時候使能優化。接下來我們來看一下 Libraries 標簽,如下圖所示。

在該標簽中,我們可以設置搜索庫。Search Libraries 和 Search Libraries First 的功能基本一致,唯一不 同的是 Search Libraries First 中指定的庫會在指定的用戶庫之前被搜索。現在我們來看一下 SDF 標簽,如下圖所示。

SDF 是 Standard Delay Format(標準延遲格式)的縮寫,內部包含了各種延遲信息,也是用于時序仿真 的重要文件。SDF Files 區域用來添加 SDF 文件,可以選擇 Add 按鈕進行添加,選擇 Modify 按鈕進行修改, 選擇 Delete 按鈕刪除添加的文件。

SDF Options 區域設置 SDF 文件的 warning 和 error 信息。第一個“Disable SDF warning”是禁用 SDF 警告,第二個“Reduce SDF errors to warnings”是把所有的 SDF 錯誤信息變成警告信息。區域 Multi-Source delay 中可以控制多個目標對同一端口的驅動,如果有多個控制信號同時控制同一個端口或互連,且每個信 號的延遲值不同,可以使用此選項統一延遲。下拉列表中可供選擇的有三個選項:latest、min 和 max。latest 選項選擇最后的延遲作為統一值,max 選項選擇所有信號中延遲最大的值作為統一值,min 選項選擇所有信號中延遲最小的值作為統一值。 至此,這三個標簽我們就介紹完了,接下來我們在 Design 標簽頁面中選擇 work 庫中的 flow_led_tb 模 塊,在 Optimization 一欄中取消勾選(注意一定要取消優化的勾選,否則無法觀察信號波形),然后點擊【OK】 就可以開始進行功能仿真了,其余標簽頁面中的配置我們使用默認就可以了,如下圖所示。

點擊【OK】后彈出下圖所示界面:

鼠標右鍵單擊―u0_flow_led‖,選擇―Add Wave‖選項,如下圖所示:

彈出下圖所示界面,可以看到信號已經添加到窗口中。

我們選擇仿真時間為 1ms,如下圖所示,單擊右邊的運行按鈕。

運行后的結果如下圖所示:

為了方便大家更容易觀察波形,我們這里將會對 ModelSim 軟件中幾個常用小工具進行簡單的講解。

前面的幾個放大鏡模樣的工具是放大、縮小和全局顯示功能,鼠標放到圖標上會顯示出它們的快捷鍵, 后邊的黃色圖標是用來在波形圖上添加用來標志的黃色豎線,緊跟著的是將添加的黃色豎線對齊到信號的 下降沿和上升沿。利用上述工具出來,可以看到在仿真結果中,當計時器 cnt 計到 4 時,led[0]由高電平變 低電平,計時器 cnt 計到 10 時 led[1]由低電平變成高電平,且 cnt 清零,形成了最初流水態,與預設的功能相同。

自動仿真:

所謂自動仿真,其實是在 Quartus II 中調用 ModelSim 軟件來進行仿真,所以也稱聯合仿真。在調用過 程中,Quartus II 會幫我們完成 ModelSim 中的所有操作,我們只需要分析最后的仿真結果。

選擇 EDA 仿真工具:

首先我們打開之前的 Quartus II 工程,在菜單欄中找到【Tool】→【Options】按鈕,如下圖所示:

單擊此按鈕,在打開的頁面左側我們找到“EDA Tool Options”點擊,如下圖所示頁面。.

在該頁面中,ModelSim 這一欄,我們需要設置 ModelSim 的安裝路徑下的可執行文件的路徑,路徑設 置完成以后,我們點擊【OK】返回我們的 Quartus II 軟件界面。

我們在 Quartus II 軟件頁面的菜單欄中,我們找到【Assignments】→【Settings】按鈕,如下圖所示頁面。

單擊此按鈕,在打開的頁面左側我們找到“EDA Tool Settings”點擊,如下圖所示頁面。

我們之前創建工程的時候,由于在 Quartus II 軟件中沒有用到仿真,所以我們將這里設置成了“None”, 現在我們需要用到仿真工具了,我們需要在這里將“Simulation”設置成“ModelSim、Verilog HDL”。設置 完成之后,我們點擊【OK】返回 Quartus II 軟件頁面中。

編寫 TestBench:

介紹一下如何使用 Quartus II 軟件生成 TestBench 模板

在 Quartus II 軟件頁面的菜單欄中,我們找到【Processing】→【Start】→【Start TestBench Template Writer】 按鈕,如下圖所示:

并點擊該按鈕,這時 Message 窗口中會顯示,如下圖所示:

從畫橫線處我們可以看到 Quartus II 軟件已自動給我們生成了一個 TestBench 模板并顯示該模塊的存放 路徑,我們只需要找到這個模板并稍作修改就能直接使用了。我們在工程目錄下找到“flow_led.vt”文件, 用記事本或 Quartus II 軟件打開它進行修改,這里我們在 Quartus II 軟件中進行,打開后如下圖:

在該圖中我們可以看到,Quartus II 軟件已經為我們完成了一些基本工作,包括端口部分的代碼、變量 的聲明以及例化測試的工程等,我們要做的就是在這個模板里添加我們需要的測試代碼(也就是我們常說 的激勵)。eachvec 和@eachvec 是多余的信號,沒有特殊的作用,我們可以將它刪除也可以不刪。修改后將其另存為 flow_led_tb.vt,以保持文件名與模塊名一致。

配置仿真環境:

接下來我們需要在Quartus II軟件中配置仿真環境,我們在Quartus II軟件界面的菜單欄找到【Assigement】 →【Settings】按鈕并打開,在打開的頁面中,我們找到左側的 Simulation 點擊,出現如下圖所示的頁面。

我們選中“Compile Test bench”,然后單擊后面的【Test Benches】按鈕,則出現如下圖所示的“Test Benches” 窗口:

接著我們單擊【New】按鈕,則會出現如下圖所示的“New Test Bench Settings”窗口:

在該頁面,我們將 TestBench 文件名輸入到“Test bench name”,將 TestBench 頂層模塊名輸入到“Top level module in test bench”的編輯欄中,因為一般而言 TestBench 文件名和頂層模塊名相同,所以這里只用 在“Test bench name”這一欄輸入即可,軟件自動同步添加“Top level module in test bench”。接著我們在 “Test bench and simulation files”列表框中添加 TestBench 仿真文件,這里我們選擇 Quartus II 生成的 TestBench 模板文件―flow_led_tb.vt”。當然了,也可以選擇在手動仿真節里編寫的“flow_led_tb.v”文件。 添加仿真文件如下圖:

然后單擊【Add】按鈕添加到最下面的列表中。完成后我們單擊【OK】按鈕,便可看到下圖所示的“Test benches”窗口的列表中出現了剛才添加的仿真文件相關信息。

然后單擊【OK】按鈕,至此,我們仿真文件添加完成了,接著我們單擊【OK】按鈕,返回到 Quartus II 軟件界面。?

運行 RTL 仿真(功能仿真)

我們在 Quartus II 軟件界面中的菜單欄中找到【Tools】→【Run Simulation Tool】→【RTL Simulation】 按鈕,如下圖所示界面。

單擊此按鈕,則會出現如下圖所示的波形圖界面。

在該軟件啟動過程中,我們不需要任何操作,它會自動完成仿真,并給出我們所需要的波形。從下圖 可以看到在 310ns 時 led[0]由高電平變成低電平,led[1]由低電平變成高電平,形成了最初的流水態,然后 經過 220ns led[1]由高電平變成低電平,led[2]由低電平變成高電平。

總結

以上是生活随笔為你收集整理的verilog学习笔记- 4)Modelsim 软件的安装、使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。