【友晶科技Terasic】Modesim 完整教程 18.1版本(單口RAM的仿真)


Modelsim仿真

一、Modelsim的簡介

ModelSim是Model Technology(Mentor Graphics的子公司)的HDL硬件描述語言的仿真軟件,該軟件可以用來實現對設計的VHDL、Verilog HDL 或是兩種語言混合的程序進行仿真,同時也支持IEEE常見的各種硬件描述語言標准。在工程創建完成之后,通常需要使用專用的仿真工具,對設計進行功能仿真(也稱之為前仿真),驗證電路功能是否符合設計要求。通過功能仿真可以及時發現設計中的錯誤,在系統設計前期即可完成修改,提高設計的可靠性。

無論是從使用界面和調試環境,還是從仿真速度和效果上看,ModelSim都可以算的上是業界比較優秀的HDL語言仿真軟件。它是唯一的單內核支持VHDL和Verilog HDL混合仿真的仿真器,是做FPGA/ASIC設計的RTL級和門級電路仿真的好選擇,它采用直接優化的編譯技術,Tcl/Tk技術和單一內核仿真技術,具有仿真速度快,編譯的代碼與仿真平台無關,便於IP核的保護和加快錯誤程序定位等優點。

ModelSim分幾種不同的版本:ModelSim SE、ModelSim PE、ModelSim LE和ModelSim OEM,其中的SE、PE、LE是其最高版本,編譯速度是所有版本中最快的,而OEM版本就是集成在FPGA廠家設計工具中的版本,它們專門和某個廠家的FPGA配套來使用,如后面使用到的ModelSim AE就是專門針對Intel公司Quartus Prime的配套的OEM產品 。

二、Modelsim軟件的安裝

  1. 軟件下載

ModelSim軟件的下載鏈接可以從MyFPGA論壇獲取,然后按圖2.1所示下載軟件。本教程中所用到的ModelSim版本是Intel FPGA Starter Edition 10.5b。

圖2.1 ModelSim仿真軟件下載
  1. 軟件安裝
  • 雙擊下載的ModelSimSetup-18.1.0.625-windows.exe應用程序,出現如圖2.2所示的ModelSim安裝界面,點擊Next。

圖2.2 軟件安裝界面
  • 在出現的“Select the ModelSim edition you like to install 界面, 選擇ModelSim-Intel FPGA Starter Edition(該版本是不需要License的),如圖2.3所示,之后點擊Next。

圖2.3 選擇需要安裝的版本
  • 在License Agreement界面選擇“I accept the agreement”,並點擊Next。

圖2.4 選擇“I accept the agreement”
  • 將ModelSim軟件的安裝路徑選擇到Quartus的安裝路徑下,如圖2.5所示,點擊兩次Next,便可以開始安裝軟件。

圖2.5 選擇安裝路徑
  • 等待軟件安裝,如圖2.6所示。

圖2.6 等待軟件安裝
  • 軟件安裝完成后,點擊Finish,退出安裝界面。到此,ModelSim仿真軟件安裝成功。

圖2.7 軟件安裝成功

三、Test Bench測試平台的結構

Test Bench主要是為測試或仿真Verilog程序搭建了一個平台,給被測試的模塊施加激勵信號,通過觀察被測試模塊的輸出響應,來判斷其邏輯功能和時序關系是否正確。

測試模塊與一般的Verilog代碼書寫方式類似,其主要特點如下:

  1. 時間單位和時間精度一般是1、10和100這三種整數,單位有s、ms、us、ns、ps和fs;
  2. 測試模塊只有模塊名字,沒有端口列表;
  3. 輸入信號(激勵信號)必須定義為reg類型,用來保持信號值;
  4. 輸出信號(顯示信號)必須定義為wire類型;
  5. 例化測試模塊時,需要注意端口排列的順序與模塊定義時的順序要一致;
  6. 一般使用initial 、always來定義激勵信號波形;
  7. 在激勵信號的定義中還可以使用一些控制語句,比如if-else、case、while、repeat、wait、begin-end等;

四、Modelsim仿真應用實例

這部分將以單口ram工程為例,介紹如何編寫仿真腳本文件(即test bench文件),以及使用ModelSim工具對創建的工程進行仿真測試。

1. ModelSim軟件調用設置

在第一次用Quartus Prime調用ModelSim-Altera之前,需要指定EDA工具來為支持的模擬器生成仿真文件。首先,打開full_adder.qpf工程。然后,點擊Tools --> Options --> EDA Tool Options,在ModelSim-Altera欄選擇對應的ModleSim-Altera的安裝路徑,如圖5.1所示。點擊OK即可在Quartus Prime中調用ModelSim-Altera軟件。

圖4.1 指定ModelSim仿真工具

2. 新建Test Bench文件

  • 選擇 File --> New --> Verilog HDL,如圖4.2所示,新建空白.v文檔。

圖4.2 新建test bench文件
  • 點擊File --> Save as... ,這里將該.v文件命名為ram_tb.v,點擊保存,如圖4.3所示。
圖4.3 保存test bench文件
  • 在名為ram_tb.v的Verilog空白文檔中輸入如下代碼,並保存。

`timescale 1ns/1ns
module ram_tb;
reg clk;
reg rst_n;

wire [7:0]q;

initial
begin
clk=0;
rst_n=0;
#20 rst_n=1;
end

always #10 clk=~clk;
ram u_ram(
.clk(clk),
.rst_n(rst_n),
.q(q)
);
endmodule

3. 添加測試文件

  • 點擊Assignments --> Settings,如圖4.4;然后選中Simulation欄,Tool name選擇ModelSim-Altera,然后選擇新建Test Bench文件,如圖4.5所示的步驟。

圖4.4 選擇Settings

圖4.5選擇新建Test Bench文件
  • 按照圖4.6所示的步驟選擇ram_tb.v文件,點擊Add進行添加,然后點擊OK,如圖4.6所示。

圖4.6 添加Test Bench文件ram_tb.v
  • 這樣就可以在Test Bench看到添加的 ram_tb.v文件,點擊OK ,如圖4.7所示。添加完成后,在Settings窗口點擊OK,然后將其關閉。


圖4.7 Test Bench文件添加完成

4. 開始仿真

  • 在Quartus Prime中選擇菜單項Tools --> Run Simulation Tool --> RTL Simulation,即可調用ModelSim工具進行仿真,如圖4.8所示。

圖4.8 運行Simulation Tool
  • 運仿真結果如圖4.9所示,注意,如果wave窗口沒有顯示波形,可以在右下角點擊一下Wave選項進行切換。

圖4.9 ModelSim 仿真結果

sim窗口顯示的是需要仿真的激勵模塊;Objects(對象)窗口顯示的是仿真中的激勵信號和顯示信號;Transcript窗口(命令行窗口)會按照系統任務 $monitor 規定的格式打印輸出結果。

wave(波形)窗口顯示的是仿真波形,如果發現波形顯示的不夠完整,可以在波形窗口右鍵–>Range,按自己的需要調整顯示范圍。

從4.9中的波形圖可以看出:

wren為1時,數據寫入到ram, wren為0時,ram的數據讀出到q。

結果與預期一致,說明我們的ram控制功能已實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM