石头剪刀布猜拳游戏设计VHDL代码Quartus仿真

名称:石头剪刀布猜拳游戏设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

石头剪刀布猜拳游戏

做一个猜拳器,与系统进行猜拳,玩家通过开发板上的开关输入石头剪刀布,然后和系统随机生成的石头剪刀布来比较,评出胜负后通过数码管进行积分,三局两胜后通过亮灯判定谁赢,用quartus实现,VHDL/verilog两种语言,需要仿真波形图,并且在FPGA板上实现


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


演示视频:

设计文档:

设计文档.doc

1. 工程文件


2. 程序文件


3. 程序编译


4. RTL图


5. 管脚分配


6. Testbench


7. 仿真图





部分代码展示:


LIBRARY ieee;
   USE ieee.std_logic_1164.all;
--石头剪刀布游戏
--3表示石头,2表示剪刀,1表示布
ENTITY guess_game IS
   PORT (
      clk          : IN STD_LOGIC;--时钟
      rst_n        : IN STD_LOGIC;--复位
      key_start    : IN STD_LOGIC;--开始按键
      switch       : IN STD_LOGIC_VECTOR(2 DOWNTO 0);--拨码开关
      key_comfirm  : IN STD_LOGIC;--确认按键
      win_led      : OUT STD_LOGIC;--获胜led
      lose_led     : OUT STD_LOGIC;--失败led
      SEG_EN       : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);--数码管位选
      SEG_DATA     : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选
   );
END guess_game;
ARCHITECTURE behave OF guess_game IS
--数码管显示模块
   COMPONENT seg_display IS
      PORT (
         clk          : IN STD_LOGIC;
         win_num      : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
         lose_num     : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
         player_num   : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
         system_num   : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
         SEG_EN       : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);
         SEG_DATA     : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
      );
   END COMPONENT;
 
--状态机控制模块 
   COMPONENT state_ctrl IS
      PORT (
         clk          : IN STD_LOGIC;
         rst_n        : IN STD_LOGIC;
         key_start    : IN STD_LOGIC;
         switch       : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
         key_comfirm  : IN STD_LOGIC;
         win_led      : OUT STD_LOGIC;
         lose_led     : OUT STD_LOGIC;
         win_num      : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
         lose_num     : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
         player_num   : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
         system_num   : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
      );
   END COMPONENT;
   
   --信号
   SIGNAL win_num        : STD_LOGIC_VECTOR(3 DOWNTO 0);--获胜次数
   SIGNAL lose_num       : STD_LOGIC_VECTOR(3 DOWNTO 0);--失败次数
   SIGNAL player_num     : STD_LOGIC_VECTOR(3 DOWNTO 0);--玩家出的值
   SIGNAL system_num     : STD_LOGIC_VECTOR(3 DOWNTO 0);--系统出的值
   
BEGIN
   --调用状态机控制模块
   i_state_ctrl : state_ctrl
      PORT MAP (
         clk          => clk,
         rst_n        => rst_n,
         key_start    => key_start,
         switch       => switch,
         key_comfirm  => key_comfirm,
         win_led      => win_led,
         lose_led     => lose_led,
         win_num      => win_num,
         lose_num     => lose_num,
         player_num   => player_num,
         system_num   => system_num
      );
   
   
   --调用数码管显示模块
   i_seg_display : seg_display
      PORT MAP (
         clk         => clk,
         win_num     => win_num,
         lose_num    => lose_num,
         player_num  => player_num,
         system_num  => system_num,
         SEG_EN      => SEG_EN,
         SEG_DATA    => SEG_DATA
      );
   
END behave;



代码文件(付费下载):




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

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

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