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

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

08/14 14:19
515
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240RQ6325V17.doc

共1个文件

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

软件:Quartus

语言:VHDL

代码功能:

石头剪刀布猜拳游戏

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

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

演示视频:

设计文档:

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;

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

  • 2-240RQ6325V17.doc
    下载

相关推荐