软件:Quartus
语言:VHDL
代码功能:
2.多路智力抢答器的VHDL设计(每班20号以后的双号)
设计任务要求
(1)利用硬件描述语言和FPGA器件,设计实现一个可容纳4、5、6、7组参赛者的多路智力抢答器,每组设置一个抢答按钮供抢答者使用。
(2)电路具有第一抢答信号的鉴别和锁存功能。
(3)设置计分电路。
(4)设置犯规扣分电路(选作)。
各模块实体名:XXXX自己两位学号,XXXX—一自己根据功能需要起名
任务学号对应:20、22、24号选7路;26、28、30号选6路;32、34、36号-选5路;38、40、42号选4路
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; ???USE?ieee.std_logic_arith.all; --数码管显示模块 ENTITY?display_26?IS ???PORT?( ??????clk?????????????:?IN?STD_LOGIC; ??????score_1?????????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--分数1 ??????score_2?????????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--分数2 ??????score_3?????????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--分数3 ??????score_4?????????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--分数4 ??????score_5?????????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--分数3 ??????score_6?????????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--分数4 ??????--数码管 ??????HEX0????????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0); ??????HEX1????????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0); ??????HEX2????????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0); ??????HEX3????????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0); ??????HEX4????????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0); ??????HEX5????????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0) ???); END?display_26; ARCHITECTURE?behavioral?OF?display_26?IS BEGIN ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN ?????????CASE?score_1?IS--显示1组分数 ????????????WHEN?"0000"?=> ???????????????HEX0?<=?"11000000"; ????????????WHEN?"0001"?=> ???????????????HEX0?<=?"11111001"; ????????????WHEN?"0010"?=> ???????????????HEX0?<=?"10100100"; ????????????WHEN?"0011"?=> ???????????????HEX0?<=?"10110000"; ????????????WHEN?"0100"?=> ???????????????HEX0?<=?"10011001"; ????????????WHEN?"0101"?=> ???????????????HEX0?<=?"10010010"; ????????????WHEN?"0110"?=> ???????????????HEX0?<=?"10000010"; ????????????WHEN?"0111"?=> ???????????????HEX0?<=?"11111000"; ????????????WHEN?"1000"?=> ???????????????HEX0?<=?"10000000"; ????????????WHEN?"1001"?=> ???????????????HEX0?<=?"10010000"; ????????????WHEN?OTHERS?=> ?????????END?CASE; ??????END?IF; ???END?PROCESS; ? ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN ?????????CASE?score_2?IS--显示2组分数 ????????????WHEN?"0000"?=> ???????????????HEX1?<=?"11000000"; ????????????WHEN?"0001"?=> ???????????????HEX1?<=?"11111001"; ????????????WHEN?"0010"?=> ???????????????HEX1?<=?"10100100"; ????????????WHEN?"0011"?=> ???????????????HEX1?<=?"10110000"; ????????????WHEN?"0100"?=> ???????????????HEX1?<=?"10011001"; ????????????WHEN?"0101"?=> ???????????????HEX1?<=?"10010010"; ????????????WHEN?"0110"?=> ???????????????HEX1?<=?"10000010"; ????????????WHEN?"0111"?=> ???????????????HEX1?<=?"11111000"; ????????????WHEN?"1000"?=> ???????????????HEX1?<=?"10000000"; ????????????WHEN?"1001"?=> ???????????????HEX1?<=?"10010000"; ????????????WHEN?OTHERS?=> ?????????END?CASE; ??????END?IF; ???END?PROCESS;? ??? ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN ?????????CASE?score_3?IS--显示3组分数 ????????????WHEN?"0000"?=> ???????????????HEX2?<=?"11000000"; ????????????WHEN?"0001"?=> ???????????????HEX2?<=?"11111001"; ????????????WHEN?"0010"?=> ???????????????HEX2?<=?"10100100"; ????????????WHEN?"0011"?=> ???????????????HEX2?<=?"10110000"; ????????????WHEN?"0100"?=> ???????????????HEX2?<=?"10011001"; ????????????WHEN?"0101"?=> ???????????????HEX2?<=?"10010010"; ????????????WHEN?"0110"?=> ???????????????HEX2?<=?"10000010"; ????????????WHEN?"0111"?=> ???????????????HEX2?<=?"11111000"; ????????????WHEN?"1000"?=> ???????????????HEX2?<=?"10000000"; ????????????WHEN?"1001"?=> ???????????????HEX2?<=?"10010000"; ????????????WHEN?OTHERS?=> ?????????END?CASE; ??????END?IF; ???END?PROCESS; ??? ??? ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN ?????????CASE?score_4?IS--显示4组分数 ????????????WHEN?"0000"?=> ???????????????HEX3?<=?"11000000"; ????????????WHEN?"0001"?=> ???????????????HEX3?<=?"11111001"; ????????????WHEN?"0010"?=> ???????????????HEX3?<=?"10100100"; ????????????WHEN?"0011"?=> ???????????????HEX3?<=?"10110000"; ????????????WHEN?"0100"?=> ???????????????HEX3?<=?"10011001"; ????????????WHEN?"0101"?=> ???????????????HEX3?<=?"10010010"; ????????????WHEN?"0110"?=> ???????????????HEX3?<=?"10000010"; ????????????WHEN?"0111"?=> ???????????????HEX3?<=?"11111000"; ????????????WHEN?"1000"?=> ???????????????HEX3?<=?"10000000"; ????????????WHEN?"1001"?=> ???????????????HEX3?<=?"10010000"; ????????????WHEN?OTHERS?=> ?????????END?CASE; ??????END?IF; ???END?PROCESS; ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN ?????????CASE?score_5?IS--显示5组分数 ????????????WHEN?"0000"?=> ???????????????HEX4?<=?"11000000"; ????????????WHEN?"0001"?=> ???????????????HEX4?<=?"11111001"; ????????????WHEN?"0010"?=> ???????????????HEX4?<=?"10100100"; ????????????WHEN?"0011"?=> ???????????????HEX4?<=?"10110000"; ????????????WHEN?"0100"?=> ???????????????HEX4?<=?"10011001"; ????????????WHEN?"0101"?=> ???????????????HEX4?<=?"10010010"; ????????????WHEN?"0110"?=> ???????????????HEX4?<=?"10000010"; ????????????WHEN?"0111"?=> ???????????????HEX4?<=?"11111000"; ????????????WHEN?"1000"?=> ???????????????HEX4?<=?"10000000"; ????????????WHEN?"1001"?=> ???????????????HEX4?<=?"10010000"; ????????????WHEN?OTHERS?=> ?????????END?CASE; ??????END?IF; ???END?PROCESS; ? ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN ?????????CASE?score_6?IS--显示6组分数 ????????????WHEN?"0000"?=> ???????????????HEX5?<=?"11000000"; ????????????WHEN?"0001"?=> ???????????????HEX5?<=?"11111001"; ????????????WHEN?"0010"?=> ???????????????HEX5?<=?"10100100"; ????????????WHEN?"0011"?=> ???????????????HEX5?<=?"10110000"; ????????????WHEN?"0100"?=> ???????????????HEX5?<=?"10011001"; ????????????WHEN?"0101"?=> ???????????????HEX5?<=?"10010010"; ????????????WHEN?"0110"?=> ???????????????HEX5?<=?"10000010"; ????????????WHEN?"0111"?=> ???????????????HEX5?<=?"11111000"; ????????????WHEN?"1000"?=> ???????????????HEX5?<=?"10000000"; ????????????WHEN?"1001"?=> ???????????????HEX5?<=?"10010000"; ????????????WHEN?OTHERS?=> ?????????END?CASE; ??????END?IF; ???END?PROCESS;? END?behavioral;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=522
							阅读全文
							
						
					
								
								
								
529