名稱:電梯請求顯示系統(tǒng)Verilog代碼Quartus實驗箱
軟件:Quartus
語言:Verilog
代碼功能:
電梯請求顯示系統(tǒng)
二、題目要求:
(1)按鍵S1為一樓上行請求按鈕,按鍵S2為二樓上行請求按鈕,按鍵S3為三樓上行請求按鈕,按鍵S4為四樓上行請求按鈕,按鍵S5為五樓上行請求按鈕,按鍵S6為六樓上行請求按鈕;撥動開關(guān)K2為二樓下行請求按鈕,撥動開關(guān)K3為三樓下行請求按鈕,撥動開關(guān)K4為四樓下行請求按鈕,撥動開關(guān)K5為五樓下行請求按鈕,撥動開關(guān)K6為六樓下行請求按鈕,撥動開關(guān)K7為七樓下行請求按鈕;七段數(shù)碼管顯示當(dāng)前電梯所在樓層數(shù)字(初始為4);每次只有一個有效請求(不用考慮優(yōu)先級);當(dāng)請求發(fā)出后,比較請求樓層和當(dāng)前樓層數(shù)值,數(shù)碼管按照電梯每秒升或降一層(1Hz)進(jìn)行數(shù)值變換,直到顯示樓層與請求樓層相等后停止,同時綠燈閃爍三次(4Hz)。
(2)外部輸入脈沖信號頻率為1mhz;
三、設(shè)計原理:
(1)計數(shù):輸入脈沖信號為1mhz,七段數(shù)碼管顯示改變?yōu)?s,需要計數(shù)脈沖信號或者設(shè)計分頻器。
(2)七段數(shù)碼管顯示:七段數(shù)碼管是電子開發(fā)過程中常用的輸出顯示設(shè)備。在實驗系統(tǒng)中使用的是兩個四位一體、共陰極型七段數(shù)碼管。其單個靜態(tài)數(shù)碼管如下圖4-1所示。
由于七段數(shù)碼管公共端連接到GND(共陰極型),當(dāng)數(shù)碼管的中的那一個段被輸入高電平,則相應(yīng)的這一段被點亮。反之則不亮。共陽極性的數(shù)碼管與之相么。四位一體的七段數(shù)碼管在單個靜態(tài)數(shù)碼管的基礎(chǔ)上加入了用于選擇哪一位數(shù)碼管的位選信號端口。八個數(shù)碼管的a、b、c、d、e、f、g、h、dp都連在了一起,8個數(shù)碼管分別由各自的位選信號來控制,被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。
數(shù)碼管顯示模塊的電路原理如圖4-2所示,表4-1是其數(shù)碼管的輸入與FPGA的管腳連接表。
(3)消抖的原理:按鍵默認(rèn)輸入邏輯‘1’,當(dāng)有按鍵按下時對應(yīng)的輸入為邏輯‘0’(但會存在抖動),當(dāng)FPGA開始檢測到該引腳從‘1’變?yōu)椤?’后開始定時(按鍵抖動時間大約10ms),定時時間結(jié)束后若該引腳仍然為‘0’則表示確實發(fā)生按鍵按下,否則視為抖動而不予以理會;按鍵松開過程的消抖處理和按下時原理一樣。
基于VerilogHDL語言的電路設(shè)計、仿真與綜合;主要包括:各個電路子模塊的Verilog源文件、仿真文件,功能仿真波形;頂層設(shè)計的Verilog源文件、仿真源文件,功能仿真波形。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在實驗箱驗證,實驗箱如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 仿真文件
6. 仿真圖
管腳分配
部分代碼展示:
//電梯 module?lift( input?clk,//1MHz input?S1,S2,S3,S4,S5,S6,//上行請求按鍵 input?K2,K3,K4,K5,K6,K7,//下行請求按鍵 output?LED,//green?led output?[2:0]?HEX_sel,//數(shù)碼管位選 output?[7:0]?HEX//共陰極數(shù)碼管,高電平亮 ); wire?clk_1Hz;//1Hz時鐘 wire?clk_4Hz;//4Hz時鐘 wire?[3:0]?floor;//電梯樓層 wire?S1_debounce;//消抖后S1 //按鍵消抖 key_debounce?i_key_debounce( .?clk(clk), .?button_in(S1),//輸入 .?button_posedge(S1_debounce)//消抖后按鍵 ); //分頻模塊 div?i_div( .?clk(clk),//1MHz .?clk_1Hz(clk_1Hz),//1Hz時鐘 .?clk_4Hz(clk_4Hz)//4Hz時鐘 ); //電梯控制模塊 lift_ctrl?i_lift_ctrl( //.?clk(clk),//1MHz .?clk_1Hz(clk_1Hz),//1Hz時鐘 .?clk_4Hz(clk_4Hz),//4Hz時鐘 .?S1(S1_debounce),//消抖后S1 .?S2(S2), .?S3(S3), .?S4(S4), .?S5(S5), .?S6(S6),//上行請求按鍵 .?K2(K2), .?K3(K3), .?K4(K4), .?K5(K5), .?K6(K6), .?K7(K7),//下行請求按鍵 .?LED(LED), .?floor(floor)//電梯樓層 );
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=580