名称:基于FPGA的选手抢答器及结果显示驱动设计VHDL代码ISE仿真
软件:ISE
语言:Verilog
代码功能:
选手抢答器及结果显示驱动设计
要求:
1.至多10个选手参与抢答;
2.从某个选手最快按下抢答键开始,所有选手的抢答键被锁定(屏蔽)并令结果显示驱动器输出该选手的编号,用于驱动七段液晶显示器;
3.结果锁定后可以进行手动重置,并重新开始抢答;
4.需要分别完成以下3个模块的VHDL设计并分别进行仿真测试选手按键编码模块,抢答及锁定模块,结果显示驱动模块;
5.按照合理逻辑将上述三个模块进行连接,必要时适当添加周边电路完成整体的VHDL设计,再进行仿真测试。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. Testbench
5. 仿真图
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; --按键编码模块 ENTITY key_code IS PORT ( clk : IN STD_LOGIC;--时钟 reset : IN STD_LOGIC;--复位 key_1 : IN STD_LOGIC;--1号抢答按键 key_2 : IN STD_LOGIC;--2号抢答按键 key_3 : IN STD_LOGIC;--3号抢答按键 key_4 : IN STD_LOGIC;--4号抢答按键 key_5 : IN STD_LOGIC;--5号抢答按键 key_6 : IN STD_LOGIC;--6号抢答按键 key_7 : IN STD_LOGIC;--7号抢答按键 key_8 : IN STD_LOGIC;--8号抢答按键 key_9 : IN STD_LOGIC;--9号抢答按键 key_10 : IN STD_LOGIC;--10号抢答按键 valid : OUT STD_LOGIC;--按键按下 number : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)--按下序号 ); END key_code; ARCHITECTURE behave OF key_code IS signal key_in:STD_LOGIC_VECTOR(9 DOWNTO 0); BEGIN valid <= key_1 or key_2 or key_3 or key_4 or key_5 or key_6 or key_7 or key_8 or key_9 or key_10; key_in <= key_1 & key_2 & key_3 & key_4 & key_5 & key_6 & key_7 & key_8 & key_9 & key_10; PROCESS (key_in, reset) BEGIN IF (reset = '1') THEN--复位 number <= "0000"; ELSE case key_in is when "1000000000" =>number <= "0001";--按键1按下 when "0100000000" =>number <= "0010";--按键2按下 when "0010000000" =>number <= "0011";--按键3按下 when "0001000000" =>number <= "0100";--按键4按下 when "0000100000" =>number <= "0101";--按键5按下 when "0000010000" =>number <= "0110";--按键6按下 when "0000001000" =>number <= "0111";--按键7按下 when "0000000100" =>number <= "1000";--按键8按下 when "0000000010" =>number <= "1001";--按键9按下 when "0000000001" =>number <= "1010";--按键10按下 when others =>number <= "0000"; end case; end if; END PROCESS; END behave;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=799
阅读全文
473