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

自動售貨機(飲料)設(shè)計VHDL代碼vivado仿真

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

2-231230114246192.doc

共1個文件

名稱:自動售貨機(飲料)設(shè)計VHDL代碼vivado仿真

軟件:vivado

語言:VHDL

代碼功能:

自動售貨機(飲料)設(shè)計

1、具有5元、10元飲料;

2、可以投幣5元、10元、20元;

3、投幣后按鍵控制飲料推出;

4、具有出貨指示燈;

5、可以找零5元、10元,使用led表示。

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

演示視頻:

設(shè)計文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. 管腳分配

6. Testbench

7. 仿真圖

部分代碼展示:

??port
????????(
????????????clk?:in??std_logic;--clk
????????????rst_n?:in??std_logic;--rst
????????????key_in_0?:in??std_logic;--5元飲料
????????????key_in_1?:in??std_logic;--10元飲料
????????????key_in_2?:in??std_logic;--投幣5元
????????????key_in_3?:in??std_logic;--投幣10元
????????????key_in_4?:in??std_logic;--投幣20元
????????????key_in_5?:in??std_logic;--飲料推出
????????????led_red????:out?std_logic;--紅燈閃爍
????????????led_5Y?????:out?std_logic;--售賣5元指示燈
????????????led_10Y?????:out?std_logic;--售賣10元指示燈
????????????led_charge?????:out?std_logic_vector(1?downto?0)--5元找零信號,10元找零信號
????????);
????end?COMPONENT;
????
???--Inputs
???signal?clk?:??std_logic;--clk
???signal?rst_n?:??std_logic;--rst
???signal?key_in_0?:??std_logic;--5元飲料
???signal?key_in_1?:??std_logic;--10元飲料
???signal?key_in_2?:??std_logic;--投幣5元
???signal?key_in_3?:??std_logic;--投幣10元
???signal?key_in_4?:??std_logic;--投幣20元
???signal?key_in_5?:??std_logic;--飲料推出
???
???--outputs
???signal?led_red????:?std_logic;--紅燈閃爍
???signal?led_5Y?????:?std_logic;--售賣5元指示燈
???signal?led_10Y?????:?std_logic;--售賣10元指示燈
???signal?led_charge?????:?std_logic_vector(1?downto?0);--5元找零信號,10元找零信號
???--?Clock?period?definitions
???constant?clk_period?:?time?:=?10?ns;
???signal?key:??std_logic_vector(5?downto?0);
BEGIN
????????
????U_auto_sell:auto_sell
????????????port?map
????????????(
????????????????clk?=>?clk,--clk
????????????????rst_n?=>rst_n,--rst
????????????????key_in_0?=>key_in_0,--5元飲料
????????????????key_in_1?=>key_in_1,--10元飲料
????????????????key_in_2?=>key_in_2,--投幣5元
????????????????key_in_3?=>key_in_3,--投幣10元
????????????????key_in_4?=>key_in_4,--投幣20元
????????????????key_in_5?=>key_in_5,--飲料推出
????????????????led_red??=>led_red,--紅燈閃爍
????????????????led_5Y???=>led_5Y,--售賣5元指示燈
????????????????led_10Y??=>led_10Y,--售賣10元指示燈
????????????????led_charge=>led_charge--5元找零信號,10元找零信號
????????????);
???--?Clock?process?definitions
???clk_process?:process
???begin
clk?<=?'0';
wait?for?clk_period/2;
clk?<=?'1';
wait?for?clk_period/2;
???end?process;
???
???key_in_0?<=key(0);--5元飲料
???key_in_1?<=key(1);--10元飲料
???key_in_2?<=key(2);--投幣5元
???key_in_3?<=key(3);--投幣10元
???key_in_4?<=key(4);--投幣20元
???key_in_5?<=key(5);--飲料推出
???
???--?Stimulus?process
???stim_proc:?process
???begin
??????--?hold?reset?state?for?100?ns.
????rst_n?<=?'0';
????key?<=?"111111";
????????wait?for?5000?ns;
rst_n?<=?'1';
wait?for?10000?ns;
--購買5元飲料
key?<=?"111110";
wait?for?5000?ns;
key?<=?"111111";
wait?for?10000?ns;
key?<=?"110111";--投幣10元
????????wait?for?5000?ns;????
????????key?<=?"111111";
????????wait?for?clk_period*2000;
????????key?<=?"011111";--推出飲料
????????wait?for?5000?ns;????
????????key?<=?"111111";
????????wait?for?10000?ns;
????????--找零后進入空閑狀態(tài)
????????wait?for?clk_period*2000;
????????--購買10元飲料
????????key?<=?"111101";
????????wait?for?5000?ns;????
????????key?<=?"111111";
????????wait?for?10000?ns;????
????????key?<=?"111011";--投幣5元
????????wait?for?5000?ns;????
????????key?<=?"111111";
????????wait?for?10000?ns;????
????????key?<=?"110111";--投幣10元
????????wait?for?5000?ns;????
????????key?<=?"111111";
????????wait?for?clk_period*2000;
????????key?<=?"011111";--推出飲料
????????wait?for?5000?ns;????
????????key?<=?"111111";
????????wait?for?10000?ns;????
????????--找零后進入空閑狀態(tài)
????????wait?for?clk_period*2000;
????????--購買5元飲料
????????key?<=?"111110";
????????wait?for?5000?ns;????
????????key?<=?"111111";
????????wait?for?10000?ns;??
????????key?<=?"100011";--投幣錯誤
????????wait?for?50000?ns;????
????????key?<=?"111111";
????????wait?for?10000?ns;????
????????key?<=?"101111";--投幣20元
????????wait?for?5000?ns;????
????????key?<=?"111111";
????????wait?for?clk_period*2000;
????????key?<=?"011111";--推出飲料
????????wait?for?5000?ns;????
????????key?<=?"111111";
????????wait?for?10000?ns;????
????????--找零后進入空閑狀態(tài)
????????wait?for?clk_period*20;
????????wait;
???end?process;
END;

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

  • 2-231230114246192.doc
    下載

相關(guān)推薦