• 方案介紹
  • 附件下載
  • 相關推薦
申請入駐 產業(yè)圖譜

自動售貨機Verilog代碼vivado ego1開發(fā)板

4小時前
100
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2-24010310310SN.doc

共1個文件

名稱:自動售貨機Verilog代碼vivado? ego1開發(fā)板

軟件:vivado

語言:Verilog

代碼功能:

1、待售商品有兩種15元和3元(可通過開關或按鍵選擇,用led指示選擇結果)。

2、可投硬幣有兩種:5角和1元。分別用兩個按鍵表示,按下按鍵代表投入硬幣,同時數碼管顯示投入硬幣的總金額。

3、當投入金額與所選商品標價相同時,使用led燈進行提示。

4、增加待售商品數量。

5、增加硬幣種類為:5角、1元、2元。(至少增加至三種,金額可自定)。

6、自行設計售貨機其他功能,比如找零等。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在ego1開發(fā)板驗證,ego1開發(fā)板如下,其他開發(fā)板可以修改管腳適配:

ego1開發(fā)板.png

演示視頻:

設計文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. 管腳分配

5. RTL圖

6. Testbench

7. 仿真圖

整體仿真圖

按鍵消抖模塊

控制模塊

顯示模塊

部分代碼展示:

//自動售貨機
module?auto_sell(
input?clk_in,//100M
input?rst,//高電平有效
//按鍵?高電平有效(SW0,1,2,3)
input?Selection_goods_10,//選商品1元
input?Selection_goods_20,//選商品2元
input?Selection_goods_30,//選商品3元
input?Selection_goods_15,//選商品1.5元
//按鍵?高電平有效(S1,S2,S3)
input?throw_into_10_down,//投1.0元
input?throw_into_05_down,//投0.5元
input?throw_into_20_down,//投2.0元
//按鍵?高電平有效
input??confirm_button,//確認購買,高電平有效(SW7)
output?[7:0]?LED,//閃爍報警(3s)(D9~16)
output??outgo_done_10,//出貨指示燈(D1)
output??outgo_done_20,//出貨指示燈(D2)
output??outgo_done_30,//出貨指示燈(D3)
output??outgo_done_15,//出貨指示燈(D4)
output??[7:0]?dig_led_1,//數碼管段選顯示
output??[3:0]?wei_led_1,?//數碼管位選顯示
output??[7:0]?dig_led_2,//數碼管段選顯示
output??[3:0]?wei_led_2?//數碼管位選顯示
);
//所有按鍵取上升沿
wire?throw_into_10_down_out;
wire?throw_into_05_down_out;
wire?throw_into_20_down_out;
wire?confirm_button_out;
//按鍵消抖模塊
key_xiaodou??throw_into_10?
(
????.??clk_in(clk_in),?
????.??key_in(throw_into_10_down),
????.??key_out(throw_into_10_down_out)
);
//按鍵消抖模塊
key_xiaodou??throw_into_05?
(
????.??clk_in(clk_in),?
????.??key_in(throw_into_05_down),
????.??key_out(throw_into_05_down_out)
);
//按鍵消抖模塊
key_xiaodou??throw_into_20
(
????.??clk_in(clk_in),?
????.??key_in(throw_into_20_down),
????.??key_out(throw_into_20_down_out)
);
//按鍵消抖模塊
key_xiaodou??confirm_btt?
(
????.??clk_in(clk_in),?
????.??key_in(confirm_button),
????.??key_out(confirm_button_out)
);
wire?[7:0]?total_throw_inmoney;//投入總錢幣
wire?[7:0]?total_need_money;//選中商品價錢
wire?[7:0]?total_refund_money;//找零金額
//售貨狀態(tài)控制模塊
state_control?state_control_u(
.?clk_in(clk_in),
.?rst(rst),
.?Selection_goods_10(Selection_goods_10),
.?Selection_goods_20(Selection_goods_20),
.?Selection_goods_30(Selection_goods_30),
.?Selection_goods_15(Selection_goods_15),
.?throw_into_10_down_out(throw_into_10_down_out),
.?throw_into_05_down_out(throw_into_05_down_out),
.?throw_into_20_down_out(throw_into_20_down_out),
.?confirm_button_out(confirm_button_out),
.?LED(LED),
.?outgo_done_10(outgo_done_10),//出貨指示燈1
.?outgo_done_20(outgo_done_20),//出貨指示燈2
.?outgo_done_30(outgo_done_30),//出貨指示燈3
.?outgo_done_15(outgo_done_15),//出貨指示燈4
.?total_throw_inmoney_out(total_throw_inmoney),//投入總錢幣
.?total_need_money_out(total_need_money),//選中商品價錢
.?total_refund_money_out(total_refund_money)//找零金額
);
///////////////////////////////////////////////////////////////////////////////////////////////
//顯示模塊
display_num?i_display_num(
.?clk(clk_in),//100M
.?total_throw_inmoney(total_throw_inmoney),//投入總錢幣
.?total_need_money(total_need_money),//選中商品價錢
.?total_refund_money(total_refund_money),//找零金額
.?dig_led_1(dig_led_1),//數碼管段選顯示
.?wei_led_1(wei_led_1),//數碼管位選顯示
.?dig_led_2(dig_led_2),//數碼管段選顯示
.?wei_led_2(wei_led_2)//數碼管位選顯示
);
endmodule

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=472

  • 2-24010310310SN.doc
    下載

相關推薦