名称:电子拔河游戏设计VHDL代码Quartus DE2-115开发板
软件:Quartus
语言:VHDL
代码功能:
任务与要求
1、设计一个能进行拔河游戏的电路;
2、电路使用15个(或9个)发光二极管,开机后只有中间一个发亮,此即拔河的中心点;
3、游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 管脚分配
4. 程序编译
5. RTL图
6. 仿真图
整体仿真图
拔河控制模块仿真图
显示模块仿真图
部分代码展示:
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)); --DE10 LITE 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 );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1180
阅读全文
735