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

多路智力抢答器VHDL代码Quartus仿真

06/26 15:22
529
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240110092022Q6.doc

共1个文件

名称:多路智力抢答器VHDL代码Quartus仿真

软件: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

  • 2-240110092022Q6.doc
    下载

相关推荐