Quartus II綜合modelsim模擬的實現____以LED燈二選一多路器為例
阿新 • • 發佈:2021-09-04
一、設計思想與驗證方法
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 inputled_testkey_in; //按鍵輸入埠 output led_out; //led輸出埠 //按下 led_out==a assign led_out= (key_in==0)? a:b ; endmodule
`timescale 1ns/1ps // 時間單位/時間精度 module led_test_tb; //激勵訊號定義,對應連線到待測試模組的輸入埠 reg signal_a; reg signal_b; reg signal_c; //待檢測訊號定義(led_out),對應連結到輸出埠led_test_tbwire 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
四、軟體具體操作步驟(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檔案,可能是軟體破解有問題,重新破解一遍