1. 程式人生 > 其它 >Quartus II綜合modelsim模擬的實現____以LED燈二選一多路器為例

Quartus II綜合modelsim模擬的實現____以LED燈二選一多路器為例

一、設計思想與驗證方法

  1、 設計定義

  2、 設計輸入

  3、 分析和綜合

  4、 功能模擬—modelsim

  5、 佈局佈線

  6、 時序模擬—modelsim

  7、 時序約束

  8、 IO分配以及配置檔案的生成

  9、 配置(燒寫FPGA)

  10、線上除錯

二、實驗要求

  兩個的輸入IO,a,b

  輸入按鍵按下,Led燈與a埠狀態保持一致

  按鍵釋放時,Led燈與b埠保持一致

三、原始碼

module led_test(a,b,key_in,led_out);

    input a;    //輸入埠a
    input b;    //輸入埠b
    
    input
key_in; //按鍵輸入埠 output led_out; //led輸出埠 //按下 led_out==a assign led_out= (key_in==0)? a:b ; endmodule
led_test
`timescale 1ns/1ps    //    時間單位/時間精度

module led_test_tb;

//激勵訊號定義,對應連線到待測試模組的輸入埠
    reg signal_a;
    reg signal_b;
    reg signal_c;
    
//待檢測訊號定義(led_out),對應連結到輸出埠
wire led; //例化待測試模組 led_test led_test0( .a(signal_a), .b(signal_b), .key_in(signal_c), .led_out(led) ); //產生激勵 initial begin signal_a=0; signal_b=0; signal_c=0; #100 signal_a=0; signal_b=0; signal_c=1
; #100 signal_a=0; signal_b=1; signal_c=0; #100 signal_a=0; signal_b=1; signal_c=1; #100 signal_a=1; signal_b=0; signal_c=0; #100 signal_a=1; signal_b=0; signal_c=1; #100 signal_a=1; signal_b=1; signal_c=0; #100 signal_a=1; signal_b=1; signal_c=1; #200 $stop; //系統函式,停止 end endmodule
led_test_tb

四、軟體具體操作步驟(Quartus II 13.0 / modelsim 裝新版即可)

1.開啟quartus 新建一個工程

如果有現成的檔案,新增就行了,沒有的話直接next,選擇開發板配置,然後finish

2.新建兩個verilog檔案,設計檔案+激勵檔案,ctrl+s 儲存到本地

3.執行程式碼

分別對兩個檔案進行分析和綜合,看是否有語法錯誤

4.功能模擬--RTL simulation

設定模擬軟體路徑,定位到模擬軟體所在資料夾下,軟體為modelsim,即如圖

設定指令碼,綜合執行

產生波形,按F鍵檢視全域性,如圖,說明從功能上來說可實現,關閉模擬軟體即可

5.佈局佈線--start compilation

6.後模擬(時序模擬)直接選擇最惡劣環境下執行--gate level simulation

發現有誤差脈衝(暫時忽略,後續學習再解決)

這裡電平變化出現延時

7.假設誤差可忽略,進行IO分配(管腳分配)--pin planner

網上搜電路板對應的管腳,和訊號對應即可

再進行一次全編譯--start compilation,生效管腳分配

點選programmer進行下載,如果沒有彈出框中沒有檔案,也可以手動新增sof檔案

若沒有生成sof檔案,可能是軟體破解有問題,重新破解一遍