My title page contents

老虎机游戏设计VHDL代码Quartus仿真

名称:老虎机游戏设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

老虎机游戏

设计一个游戏机,用3位数码管来代替老虎机的3个轮盘,用0-7的数字来代替老虎机轮盘上的不同图案。按下key1,3个数码管的数字开始循环显示,再次按下key1,3个数码管的数字停止循环,当显示的3个数字相同时,游戏胜利。


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



设计文档:

设计文档(1).doc

1.工程文件


2.程序文件

3.程序编译


4.RTL图


5.管脚分配


6.仿真图

整体仿真图



数据控制模块




显示模块



赢了提示模块



部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
--按键控制
ENTITY data_ctrl IS
   PORT (
      clk_in         : IN STD_LOGIC;--50MHz
      rst_n          : IN STD_LOGIC;--复位
      key            : IN STD_LOGIC;--输入按键
      current_state  : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);--输出当前状态
      data_1         : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--数字1
      data_2         : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--数字2
      data_3         : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)--数字3
   );
END data_ctrl;
ARCHITECTURE behave OF data_ctrl IS
    constant  s_idle         : STD_LOGIC_VECTOR(2 DOWNTO 0) := "000";
    constant  s_count        : STD_LOGIC_VECTOR(2 DOWNTO 0) := "001";
    constant  s_cnt123       : STD_LOGIC_VECTOR(2 DOWNTO 0) := "010";
    constant  s_cnt23        : STD_LOGIC_VECTOR(2 DOWNTO 0) := "011";
    constant  s_cnt3         : STD_LOGIC_VECTOR(2 DOWNTO 0) := "100";
    constant  s_end          : STD_LOGIC_VECTOR(2 DOWNTO 0) := "101";
   SIGNAL cnt1      : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000";
   SIGNAL cnt2      : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000";
   SIGNAL cnt3      : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000";
   SIGNAL div_cnt_1 : STD_LOGIC_VECTOR(31 DOWNTO 0) := "00000000000000000000000000000000";
   SIGNAL div_cnt_2 : STD_LOGIC_VECTOR(31 DOWNTO 0) := "00000000000000000000000000000000";
   SIGNAL div_cnt_3 : STD_LOGIC_VECTOR(31 DOWNTO 0) := "00000000000000000000000000000000";
   SIGNAL state     : STD_LOGIC_VECTOR(2 DOWNTO 0) := "000";
   
   SIGNAL wait_1    : STD_LOGIC_VECTOR(31 DOWNTO 0) := "00000000000000000000000000000000";
   SIGNAL wait_2    : STD_LOGIC_VECTOR(31 DOWNTO 0) := "00000000000000000000000000000000";
   SIGNAL wait_3    : STD_LOGIC_VECTOR(31 DOWNTO 0) := "00000000000000000000000000000000";
BEGIN
   PROCESS (clk_in, rst_n)
   BEGIN
      IF ((NOT(rst_n)) = '1') THEN--复位
         div_cnt_1 = "00000000000000000000000000010000") THEN--5Hz
            div_cnt_2 <= "00000000000000000000000000000000";
         ELSE
            div_cnt_2 <= div_cnt_2 + "00000000000000000000000000000001";--累加
         END IF;
      END IF;
   END PROCESS;
   
   PROCESS (clk_in, rst_n)
   BEGIN
      IF ((NOT(rst_n)) = '1') THEN--复位
         div_cnt_3 <= "00000000000000000000000000000000";
      ELSIF (clk_in'EVENT AND clk_in = '1') THEN
         IF (div_cnt_3 >= "00000000000000000000000000100000") THEN--2Hz
            div_cnt_3 <= "00000000000000000000000000000000";
         ELSE
            div_cnt_3 <= div_cnt_3 + "00000000000000000000000000000001";--累加
         END IF;
      END IF;
   END PROCESS;

   

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 老虎机游戏设计VHDL代码Quartus仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员