名称:电子拔河游戏机VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
电子拔河游戏机
电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。由一排发光二极管表示拔河的“电子绳”。由甲乙双方通过按纽开关使发光二极管向一方的终点延伸当延伸到某方的最后一个发光二极管时,则该方获胜,连续比赛多局以定胜负。
基本要求
设计一个能进行拔河游戏的电路。
2、电路使用9个发光二极管,开机后只有中间一个发亮,此即拔河的中心点。
3、游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。
4、亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。
5、用数码管显示获胜者的盘数。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
原理图文件
代码文件
3. 程序编译
4. RTL图
5. 仿真图
整体仿真图
拔河控制模块仿真图
显示模块仿真图
部分代码展示:
library?IEEE; use?IEEE.std_logic_1164.all; use?IEEE.std_logic_unsigned.all; --拔河游戏 entity?bahe?is port?( ????--?CLOCK ????CLK:?in?std_logic; ????--?SEG7 ????HEX0:?out?std_logic_vector(7?downto?0);--数码管1 ????HEX1:?out?std_logic_vector(7?downto?0);--数码管2 ????--?KEY?(debounced) ????Button1:?in?std_logic;--选手1 ?Button2:?in?std_logic;--选手2 ????reset_n????????:?IN?STD_LOGIC;--复位信号,低有效? ????restart????????:?IN?STD_LOGIC;--裁判控制重新开始 ????--?LED ????LEDR:?out?std_logic_vector(8?downto?0) ?); end?bahe; architecture?behav?of?bahe?is ???? ?signal?score_1????????:?STD_LOGIC_VECTOR(3?DOWNTO?0);--选手1分数 ????signal?score_2????????:?STD_LOGIC_VECTOR(3?DOWNTO?0);--选手2分数 ? ????component?BIN2HEX ????port?( ????????bin:?in?std_logic_vector(3?downto?0); ????????hex:?out?std_logic_vector(7?downto?0));? ????end?component; ???? ????--?provide?the?component?of?your?design?here component?bahe_ctrl ???PORT?( ??????clk???????:?IN?STD_LOGIC;--标准时钟 ??????reset_n????????:?IN?STD_LOGIC;--复位信号,低有效? ??????restart????????:?IN?STD_LOGIC;--裁判控制重新开始 ??????Button1???????:?IN?STD_LOGIC;--选手1 ??????Button2???????:?IN?STD_LOGIC;--选手2 ??????led????????????:?OUT?STD_LOGIC_VECTOR(8?DOWNTO?0);--9个led ??????score_1????????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--选手1分数 ??????score_2????????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)--选手2分数 ???); END?component; ???? begin ????--拔河控制模块 U_bahe_ctrl:?bahe_ctrl ???port?map??( ??????clk=>CLK, ??????reset_n=>reset_n, ??????restart=>restart, ??????Button1=>Button1, ??????Button2=>Button2, ??????led=>LEDR, ??????score_1=>score_1, ??????score_2=>score_2 ???); ????--数码管显示模块 ????U_HEX0:?BIN2HEX ?port?map?( ?bin=>score_1,? ?hex=>HEX0 ?); ?--数码管显示模块 ????U_HEX1:?BIN2HEX? ?port?map?( ?bin=>score_2, ?hex=>HEX1 ?); end?behav;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=494