• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

自动售货机设计VHDL代码Quartus仿真

09/28 09:56
663
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-241101104J3640.doc

共1个文件

名称:自动售货机设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

自动售货机

一台售货机:售货机中有一种商品(价格10元)

1、当顾客取消购买时退钱;

2、当顾客刚好放入10元并确定时吐出商品;

3、当顾客放入5元时等待继续投币;

4、当顾客放入15元且确定时吐出商品并找零。

在quartus II上用vhdl语言

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 仿真图

整体仿真图

按键模块仿真图

控制模块仿真图

显示模块仿真图

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
--顶层模块
ENTITY auto_sell IS
   PORT (
      clk_in        : IN STD_LOGIC;--时钟
      reset_n       : IN STD_LOGIC;--复位
      confirm_key_n  : IN STD_LOGIC;--确认按键
      cancel_key_n   : IN STD_LOGIC;--取消按键
      coin_5_n       : IN STD_LOGIC;--投币5元
coin_10_n      : IN STD_LOGIC;--投币10元
      buy_succeed    : OUT STD_LOGIC;--购买成功
      bit_select     : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--数码管位选
      seg_select     : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选
   );
END auto_sell;
ARCHITECTURE bahave OF auto_sell IS
--售货控制模块
component sell_ctrl IS
   PORT (
      clk            : IN STD_LOGIC;
      reset_n        : IN STD_LOGIC;
      confirm_p      : IN STD_LOGIC;
      concel_p       : IN STD_LOGIC;
      coin_5_p       : IN STD_LOGIC;
coin_10_p      : IN STD_LOGIC;--投币10元
      buy_succeed    : OUT STD_LOGIC;
      input_money    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
      refound_money  : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
   );
END component;
--按键下降沿检测模块
component key_jitter IS
   PORT (
      clkin        : IN STD_LOGIC;
      key_in       : IN STD_LOGIC;
      key_negedge  : OUT STD_LOGIC
   );
END component;
--显示模块
component display IS
   PORT (
      clk            : IN STD_LOGIC;
      input_money    : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
      refound_money  : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
      bit_select     : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
      seg_select     : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
   );
END component;
   SIGNAL input_money       : STD_LOGIC_VECTOR(3 DOWNTO 0);
   SIGNAL refound_money     : STD_LOGIC_VECTOR(3 DOWNTO 0);   
SIGNAL coin_5_p: STD_LOGIC;
SIGNAL coin_10_p: STD_LOGIC;
   SIGNAL confirm_p         : STD_LOGIC;
   SIGNAL concel_p          : STD_LOGIC;
   SIGNAL buy_succeed_buf : STD_LOGIC;
   SIGNAL bit_select_buf  : STD_LOGIC_VECTOR(3 DOWNTO 0);
   SIGNAL seg_select_buf  : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
   buy_succeed <= buy_succeed_buf;
   bit_select <= bit_select_buf;
   seg_select  clk_in,
         key_in       => confirm_key_n,
         key_negedge  => confirm_p
      );
   
   
--按键下降沿检测模块  
   i2_key_jitter : key_jitter
      PORT MAP (
         clkin        => clk_in,
         key_in       => cancel_key_n,
         key_negedge  => concel_p
      );
   
--按键下降沿检测模块
   i3_key_jitter : key_jitter
      PORT MAP (
         clkin        => clk_in,
         key_in       => coin_5_n,
         key_negedge  => coin_5_p
      );

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1310

  • 2-241101104J3640.doc
    下载

相关推荐