1. 程式人生 > >FPGA QuartusII 13.0.1+ModelSim SE 10.1a聯合模擬以及Hello World測試程式

FPGA QuartusII 13.0.1+ModelSim SE 10.1a聯合模擬以及Hello World測試程式

一、實驗環境(藍色粗體字為特別注意內容)

1,環境:Windows 7 Ultimate 32 bit、QuartusII 13.0.1 win32、ModelSim SE 10.1a win32

2,參考文獻:

①http://bbs.eeworld.com.cn/thread-530964-1-1.html
②https://www.cnblogs.com/Jezze/archive/2012/09/14/2684333.html
③https://www.cnblogs.com/yuesheng/archive/2011/06/25/2090385.html ④https://www.cnblogs.com/luckybag/articles/3803991.html
⑤http://www.eefocus.com/nightseas/blog/12-03/242395_7df71.html ⑥

https://blog.csdn.net/ocean1171597779/article/details/25885105                                      ⑦https://www.jb51.net/softs/561414.html                                                    ⑧
https://blog.csdn.net/qq_18649781/article/details/81025650

 二、詳細步驟

2.1 QuartusII 13.0.1安裝&破解

1)按照參考文獻⑧的步驟,到度盤連結:https://pan.baidu.com/s/1I_6-9f0wvEpF_utkTjjsUQ 密碼:u6ef,將QuartusSetup-13.0.1.232還有破解器下載到電腦本地磁碟(cyclone好像不用下,QuartusSetup自帶,如果實在需要再下載,反正我下載下來安裝的時候提示我已經安裝過了,無語。。。)。

2)雙擊QuartusSetup-13.0.1.232.exe,選擇安裝位置,一路next將Quartus安裝到本地磁碟。最後,done!

3)如果你的電腦是32位,將破解器中的“Quartus_13.0_x86破解器.exe”複製到 “你的安裝路徑\quartus\bin”目錄下面,並且雙擊,將生成的"license"儲存。

4)如果你的電腦是64位,將破解器中的“Quartus_13.0_x64破解器.exe”複製到 “你的安裝路徑\quartus\bin64”目錄下面,雙擊,將生成的"license"儲存。

5)選擇對應版本,開啟QuartusII,Tools->License Setup->(NIC)ID 選擇第一個作為CID複製之,關閉Quartus。

6)開啟之前儲存的"licence.dat",將(NIC)ID替換掉裡面的xxxxxxx,開啟Quartus 定位到Tools->License Setup,License file選擇剛剛修改的license.dat,出現以下介面說明破解完成

2.2 ModelSim SE 10.1a安裝&破解

ModelSim是業界唯一的單核心支援VHDL和Verilog混合模擬的模擬器,比Quartus自帶的模擬器要強大很多,它採用直接優化的編譯技術、Tcl/Tk技術、和單一核心模擬技術,編譯模擬速度快,編譯的程式碼與平臺無關,便於保護IP核,個性化的圖形介面和使用者介面,為使用者加快調錯提供強有力的手段,是FPGA/ASIC設計的首選模擬軟體。目前有se、de、pe等多個版本,對應Altera和Xilinx還有對應的OEM版本,所有的版本功能最強速度最快的就是se,反正也是要破解,自然就裝最強的版本了,和Altera網站上的modelsim的區別在於,se的版本我們需要自己編譯對應的庫,所以Altera和Xilinx的都是自帶對應的庫無需編譯的,像我這樣同時裝了Quartus II和ISE的,自然還是自己編譯方便一點。

1)按照參考文獻⑦,將modelsim se 10.1c emouse.rar下載到本地,解壓之。

2)雙擊modelsim-win32-10.1a-se.exe選擇安裝路徑,安裝之,最後彈出一個對話方塊,點選“NO”即可。

3)將MentorKG.exe和crack.bat檔案複製到安裝根目錄win32目錄下,執行crack.bat檔案,生成txt檔案後另存為LICENSE.TXT

4)我的電腦右鍵->屬性->高階->環境變數,新增系統環境變數LM_LICENSE_FILE,值為LICENSE.TXT的路徑,如:D:\modeltech_10.1a\LICENSE.TXT

5)執行Modelsim

2.3 編寫測試程式

按照參考文獻①

第一步:新建工程
File --> New Project Wizard...


1.選擇工程目錄,指定工程名及設計入口,一般情況下建議工程目錄,工程名稱及設計入口同名,不能有中文路徑;
2.新增已有檔案,如果新建的工程,則直接跳過;
3.器件選擇,需要與實際用到的器件相同,Family選擇Cyclone IV E,Available device這裡選擇EP4CE6F17C8;
4.設定工具,一般直接next跳過;
5.資訊確認,如果無誤則點選Finish完成;

修改預設配置:
Assignments --> Device...
--> Device and Pin Option...


Unused Pins:未用到引腳選擇,As input tri-stated;
Valtage 引腳預設電壓值,選擇 3.3-V LVTTL;

第二步:建立HDL檔案
File--> New...
Design Files --> Verilog HDL File內容如下:

/*
* 功能描述:流水燈演示
*/
module demo (
    input clk,              // 時鐘輸入(外部50MHz晶振)
    input rst_n,            // 復位按鍵
    output reg [3:0] led    // 4位LED
);
// 暫存器定義
reg [31:0] timer;       // 用於定時器計數
// 計時時鐘
always @(posedge clk or negedge rst_n)
begin
    if(~rst_n)
        timer <= 0;
    else if(timer == 32'd200_000_000)
        timer <= 0;
    else
        timer <= timer + 1'b1;    // 通過脈衝數計算時間
end
// 檢測時鐘的下降沿和復位的下降沿
always @(posedge clk or negedge rst_n)
begin
    if (~rst_n)            // 復位訊號低電平有效
        led <= 4'b0000;    // LED燈輸出全為低,四個LED燈滅
    // 時鐘下降沿
    else
    begin
        // 50HMz的時鐘下,50個時鐘為1us
        if(timer == 32'd50_000_000)
            led <= 4'b0001;
        else if (timer == 32'd100_000_000)
            led <= 4'b0010;
        else if (timer == 32'd150_000_000)
            led <= 4'b0100;
        else if (timer == 32'd200_000_000)
            led <= 4'b1000;
    end
end
endmodule

儲存檔案,名稱與之前設定的入口檔案相同;(不然會出現報錯①)

第三步:綜合
點選Analysis & Synthesis進行綜合;

成功

第四步:引腳分配
Assignments --> Pins Planner開啟引腳分配頁面進行分配;

雙擊引腳對應的Location,彈出引腳選擇下拉列表


按照原理圖上分配對應的引腳:
CLK   --> E1
LED0 --> E10
LED1 --> F9
LED2 --> C9
LED3 --> D9
I/O Standard 根據實際電路選擇電平標準,這裡選擇3.3-V LVTTL;
同一個Bank的引腳的電平標準必須相同;


注意事項:
必須綜合之後,才能進行引腳分配,否則系統並不知道你用了哪些引腳;

第五步:編譯
雙擊Complile Design進行全編譯;

或者點選

第六步:下載測試
通過JTAG下載至RAM
點選Program Device開啟編譯器;
點選Add File...新增output_files目錄下生成的sof檔案;
點選Start即可進行下載;
下載完成後會自動執行,掉電後會丟失;

固化至配置晶片
檔案轉換:
File --> Convert Programming Files...
Programming file type:
選擇檔案格式,指定為jic格式,JTAG Indirect Configuration File(.jic)
Configuration device:
選擇配置晶片型號,與目標板上的型號一致(EPCS16)
Flash Loader:與目標板上FPGA的類別一致;
Sof Data:選擇編譯好的sof檔案;
點選Generate生成jic目標檔案;
(此時可選擇Save Conversion Setup... 保本配置引數,以便下次調入)
下載固化
點選Program Device開啟編譯器;
點選Add File...新增output_files目錄下生成的jic檔案;
點選Start即可進行下載;
下載完成後,不會自動執行,需要重上電才能正常執行;

注意事項:
一般只有在完成除錯完成後,交付測試時才需要固化,而在除錯過程中,則沒必要進行固化下載;

2.4 Modelsim聯合模擬

1)按照參考文獻②,第一次用modelsim+quartus的時候需要在quartus中設定modelsim的路徑,quartus->tools->options->general->EDA tool options ,在右邊選擇modelsim的安裝路徑\win32,如下圖:

2)點選Quartus->Assignments->Settings

 

選擇Simulation->Tool name選擇ModelSim

先選擇TestBenche None,點選OK

3)建立TestBench模板

我們可以通過Quartus自動生成一個Testbench的模板,選擇Processing -> Start -> Start Test Bench Template Writer,等待完成後開啟剛才生成的Testbench,預設是儲存在simulation\modelsim資料夾下的.vt格式檔案

Quartus開啟檔案,到“工程目錄\simulation\modelsim"下找到.vt檔案,開啟,

按照參考文獻⑤的語法規則編寫Testbench,填寫完成後內容如下

// Copyright (C) 1991-2013 Altera Corporation
// Your use of Altera Corporation's design tools, logic functions 
// and other software and tools, and its AMPP partner logic 
// functions, and any output files from any of the foregoing 
// (including device programming or simulation files), and any 
// associated documentation or information are expressly subject 
// to the terms and conditions of the Altera Program License 
// Subscription Agreement, Altera MegaCore Function License 
// Agreement, or other applicable license agreement, including, 
// without limitation, that your use is for the sole purpose of 
// programming logic devices manufactured by Altera and sold by 
// Altera or its authorized distributors.  Please refer to the 
// applicable agreement for further details.

// *****************************************************************************
// This file contains a Verilog test bench template that is freely editable to  
// suit user's needs .Comments are provided in each section to help the user    
// fill out necessary details.                                                  
// *****************************************************************************
// Generated on "10/27/2018 18:41:50"
                                                                                
// Verilog Test Bench template for design : demo
// 
// Simulation tool : ModelSim (Verilog)
// 

`timescale 1 ps/ 1 ps
module demo_vlg_tst();
// constants                                           
// general purpose registers
reg eachvec;
// test vector input registers
reg clk;
reg rst_n;
// wires                                               
wire [3:0]  led;
parameter PERIOD = 20;
// assign statements (if any)                          
demo i1 (
// port map - connection between master ports and signals/registers   
	.clk(clk),
	.led(led),
	.rst_n(rst_n)
);
initial                                                
begin                                                  
// code that executes only once                        
// insert code here --> begin                          
#0 clk   = 1'b0;
   rst_n = 1'b0;
#5 rst_n = 1'b1;                                                         
// --> end                                             
$display("Running testbench");                       
end                                                    
always  #(PERIOD/2)clk=~clk;                                                 
                                                  
endmodule

也就是對模板進行下面的修改,並儲存

複製*_vlg_test 

4)回到Quartus->Assignments->Settings->Simulation

點選Test Benches-》New,Test bench name貼上剛才複製的名字,Top level module in test bench自動填充雍陽的名字,勾選Use test bench to perform VHDL timing simulation,填寫i1,File name選擇"工程目錄\simulation\modelsim"下的.vt檔案,最後點選Add,OK關閉對話方塊,至此,設定完成!!下面開始模擬。

5)點選Tools -》Run Simulation tool-》RTL Simulation

漂亮的模擬介面出來啦~~~

FPGA開發環境 QuartusII+ModelSim SE配置完成!這個過程中可能會出現以下問題

①Error: Top-level design entity "simulate" is undefined

按照參考文獻⑥,將模組名和.v檔名改為一致即可。