名稱:Quartus卡式電話計費器Verilog代碼遠程云端平臺
軟件:Quartus
語言:Verilog
代碼功能:
卡式電話計費器設(shè)計要求:
(1) 該計費器在卡插入后,能讀出卡中的余額并顯示;在通話中,根據(jù)通話種類進行扣費,卡內(nèi)余額每分鐘更新一次;對通話時間計時并顯示出來。
(2) 話務種類分為三種:市話、長途和特話。其中市話按每分鐘3角錢計算,長話按每分鐘6角錢計算,特話免費。
(3) 當卡中余額少于當前話務種類對應的一分鐘費用,產(chǎn)生告警信號,警告燈亮。
(4) 當告警時間達到15s時切斷當前通話。
(5) 設(shè)定卡內(nèi)余額最大為20角。
(6) 利用數(shù)碼管顯示卡內(nèi)余額和通話時間,燈顯示讀卡信號、寫卡信號、告警信號和切斷信號。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在遠程云端平臺驗證,遠程云端平臺如下,其他遠程云端平臺可以修改管腳適配:
演示視頻:
設(shè)計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. 仿真文件
7. 仿真圖
部分代碼展示:
//頂層 module?telephone( input?clk_1KHz, input?rst, input?card_key,//插卡按鍵,1表示插入 input?[1:0]oncall_key,//撥號--00表示不撥號,01表示市話,10表示長途,11表示特話 output?card_led,//插卡指示燈 output?[2:0]call_led,//通話指示燈 output?reminder_led,//告警信號,警告燈亮 //?利用數(shù)碼管顯示卡內(nèi)余額和通話時間 output?[7:0]?SEG1,//段選顯示 output?[3:0]?SEL1,?//位選顯示 output?[7:0]?SEG2,//段選顯示 output?[3:0]?SEL2?//位選顯示 ); wire?[7:0]?money_left;//卡內(nèi)余額 wire?[7:0]?minute;//通話時間 wire?[7:0]?second;//通話時間 telephone_ctrl?i_telephone_ctrl( .?clk_1KHz(clk_1KHz), .?rst(rst), .?card_key(card_key),//插卡按鍵,1表示插入 .?oncall_key(oncall_key),//撥號--00表示不撥號,01表示市話,10表示長途,11表示特話 .?card_led(card_led),//插卡指示燈 .?call_led(call_led),//通話指示燈 .?reminder_led(reminder_led),//告警信號,警告燈亮 //?利用數(shù)碼管顯示卡內(nèi)余額和通話時間 .?money_left(money_left),//卡內(nèi)余額 .?minute(minute),//通話時間 .?second(second)//通話時間 ); //數(shù)碼管顯示模塊 display?i_display( .?clk_1K(clk_1KHz), //?利用數(shù)碼管顯示卡內(nèi)余額和通話時間 .?money_left(money_left),//卡內(nèi)余額 .?minute(minute),//通話時間 .?second(second),//通話時間 .?SEG1(SEG1),//段選顯示 .?SEL1(SEL1),?//位選顯示 .?SEG2(SEG2),//段選顯示 .?SEL2(SEL2)?//位選顯示 ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=361