一、設計思想與驗證方法
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

`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
四、軟件具體操作步驟(Quartus II 13.0 / modelsim 裝新版即可)
1.打開quartus 新建一個工程
如果有現成的文件,添加就行了,沒有的話直接next,選擇開發板配置,next
選擇對應的仿真軟件和語言(modelsim--Verilog),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文件,可能是軟件破解有問題,重新破解一遍