FPGA抢答器设计报告_fpga抢答器开题报告

其他范文 时间:2020-02-28 04:19:05 收藏本文下载本文
【www.daodoc.com - 其他范文】

FPGA抢答器设计报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“fpga抢答器开题报告”。

Vb开办上海电力学院

课程设计报告

信息工程系

抢答器设计报告

一、设计目的:

本课程的授课对象是电子科学与技术专业本科生,是电子类专业的一门重要的实践课程,是理论与实践相结合的重要环节。

本课程有助于培养学生的数字电路设计方法、掌握模块划分、工程设计思想与电路调试能力,为以后从事各种电路设计、制作与调试工作打下坚实的基础

二、实验器材和工具软件:

PC机一台、QuartusII软件、DE2板。

三、设计内容:

(1)抢答器可容纳四组12位选手,每组设置三个抢答按钮供选手使

用。

(2)电路具有第一抢答信号的鉴别和锁存功能。在主持人将系统复位并发出抢答指令后,蜂鸣器提示抢答开始,时显示器显示初始时间并开始倒计时,若参赛选手按抢答按钮,则该组指示灯亮并用组别显示器显示选手的组别,同时蜂鸣器发出“嘀嘟”的双音频声。此时,电路具备自锁功能,使其它抢答按钮不起作用。

(3)如果无人抢答,计时器倒计时到零,蜂鸣器有抢答失败提示,主持人可以按复位键,开始新一轮的抢答。

(4)设置犯规功能。选手在主持人按开始键之前抢答,则认为犯规,犯规指示灯亮和显示出犯规组号,且蜂鸣器报警,主持人可以终止抢答执行相应惩罚。

(5)抢答器设置抢答时间选择功能。为适应多种抢答需要,系统设有10秒、15秒、20秒和3O秒四种抢答时间选择功能。

四、设计具体步骤:

首先把系统划分为组别判断电路模块groupslct,犯规判别与抢答信号判别电路模块fgqd,分频电路模块fpq1,倒计时控制电路模块djs,显示时间译码电路模块num_7seg模块,组别显示模块showgroup模块这六个模块,各模块设计完成后,用电路原理图方法将各模块连接构成系统。

各模块功能及代码:

1、组别判别模块

(1)功能:可容纳四组12位选手,每组设置三个抢答按钮供选手使用。若参赛选手按抢答按钮,则输出选手的组别。此时,电路具

signal rst : std_logic;begin

h

“0001” when(a/=“000” and b=“000” and c=“000” and d=“000”)else

“0010” when(a=“000” and b/=“000” and c=“000” and d=“000”)else

“0100” when(a=“000” and b=“000” and c/=“000” and d=“000”)else

“1000” when(a=“000” and b=“000” and c=“000” and d/=“000”)else

“0000”;proce

begin

wait on clock until rising_edge(clock);

if clr='1' then

rst

g

end if;

if h/=“0000” then

if rst='1' then

g

rst

end if;

end if;

end proce;

end behave_groupslct;

2、犯规判别与抢答信号判别模块

(1)功能:若参赛选手在主持人按开始键之后按抢答按钮,则使该组指示灯亮并输出选手的组别,同时蜂鸣器发出响声。

选手在主持人按开始键之前抢答,则认为犯规,犯规指示灯亮并输出犯规组号,且蜂鸣器报警。

(2)原理:c[3..0]接组别判别模块的g[3..0],即此时c为按键组别的信息。go接主持人的“开始”按键。由于无论是在正常情况还是犯规情况下按下按键,都必须显示按键的组别且蜂鸣器响,所以将c的值给hex以输出按键组别,且在有按键按下(c/=“0000”)时输出fm为‘1’,否则为‘0’。若在开始之前有按键按下时,即go='0'且c/=“0000”,输出ledfg为‘1’,否则为‘0’。若在开始之后有按键按下,将c的值给led,使该组指示灯亮,开始之前led输出“0000”。

(3)程序代码:

library ieee;

use ieee.std_logic_1164.all;

entity fgqd is port(c:in std_logic_vector(3 downto 0);

go:in std_logic;

hex:out std_logic_vector(3 downto 0);

led:out std_logic_vector(3 downto 0);

ledfg,fm:out std_logic);

end fgqd;

architecture behave_fgqd of fgqd is begin);end djs;

architecture behave_djs of djs is begin

proce(clock,aclr,s)

begin

if(aclr='1')then

if(s=“00”)then

q

elsif(s=“01”)then

q

elsif(s=“10”)then

q

else

q

end if;

else

if rising_edge(clock)then

if en='1' then

q

if(q=“00000” and grpsl=“0000”)then

time0

else

time0

end if;

end if;

end if;

end if;

end proce;end behave_djs;

4、分频器模块

(1)功能:实现50MHz—1Hz的分频,为倒计时模块提供时钟。

(2)程序代码

library ieee;

use ieee.std_logic_1164.all;

entity fpq1 is port(clkin :in std_logic;

clkout:out std_logic);end fpq1;

architecture behave_fpq1 of fpq1 is constant N: Integer:=24999999;signal Counter:Integer RANGE 0 TO N;signal Clk: Std_Logic;begin

proce(clkin)

begin

if rising_edge(clkin)then--每计到N个(0~n-1)上升沿,输出信号翻转一次

if Counter=N then

Counter

Clk

else

Counter

end if;

end if;

end proce;clkout

5、时间显示译码器

(1)功能:将时间信息在7段数码管上显示。

(2)程序代码

library ieee;

use ieee.std_logic_1164.all;

entity num_7seg is port(c:in std_logic_vector(4 downto 0);

hex:out std_logic_vector(13 downto 0));

end num_7seg;

architecture behave_num_7seg of num_7seg is begin

with c(4 downto 0)select

hex

“10000001111001” when “00001” ,--“1”

“10000000100100” when “00010” ,--“2”

“10000000110000” when “00011” ,--“3”

“10000000011001” when “00100” ,--“4”

“10000000010010” when “00101” ,--“5”

“10000000000010” when “00110” ,--“6”

“10000001111000” when “00111” ,--“7”

“10000000000000” when “01000” ,--“8”

“10000000010000” when “01001” ,--“9”

“11110011000000” when “01010” ,--“10”

“11110011111001” when “01011” ,--“11”

“11110010100100” when “01100” ,--“12”

“11110010110000” when “01101” ,--“13”

“11110010011001” when “01110” ,--“14”

“11110010010010” when “01111” ,--“15”

“11110010000010” when “10000” ,--“16”

“11110011111000” when “10001” ,--“17”

“11110010000000” when “10010” ,--“18”

“11110010010000” when “10011” ,--“19”

“01001001000000” when “10100” ,--“20”

“01001001111001” when “10101” ,--“21”

“01001000100100” when “10110” ,--“22”

“01001000110000” when “10111” ,--“23”

“01001000011001” when “11000” ,--“24”

“01001000010010” when “11001” ,--“25”

“01001000000010” when “11010” ,--“26”

“01001001111000” when “11011” ,--“27”

来。然后就是将选出的组别锁存。将按下按键的组别赋给一内部信号“h”(没有按键按下时h=“0000”),当复位键按下时(clr=‘1’)输出g=“0000”并且将另一内部信号rst置1。当复位后(rst=‘1’)有按键按下时将h的值给输出信号g,并且将标志信号rst清零。这样就实现最快按键组别锁存功能。

六、心得体会

通过此次设计,我掌握了数字电路的设计方法,尤其是模块划分、工程设计思想与电路调试能力,都有了一定的提高。为以后从事各种电路设计、制作与调试工作打下坚实的基础。

基于fpga的四路抢答器课程设计报告

一、课题设计的基础和实验条件 1.工作基础 (1)数字电路,模拟电路的学习;对所需使用的芯片管脚及 功能的了解;掌握了基本的数字电路设计流程。(2)学会使用MAX+PLUS 软件设计数字电路;......

EDA4人抢答器设计报告

四人抢答器一、设计任务:l、设计用于竞赛的四人抢答器,功能如下: (1) 有多路抢答器,台数为四;(2) 具有抢答开始后20秒倒计时,20秒倒计时后无人抢答显示超时,并报警; (3) 能显示超前......

74LS148四路抢答器设计报告

目录1.设计任务和要求…………………………………….3 2.设计方案…………………………………………….3 2.1 设计思路………………………………………3 2.2 设计原理………......

简易抢答器设计

简易抢答器设计一.设计目的1、通过本课程设计的学习,学生将复习所学的专业知识,使课堂学习的理论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力;2、掌握Quar......

抢答器设计心得

回顾上一周课程设计的时间,收获了很多,也付出了很多,周一至周二主要熟悉ewb软件的操作使用,学会仿真,周三至周四是看书查找资料,对相关元器件做一些了解,并把元器件布好线,以待焊接,......

下载FPGA抢答器设计报告word格式文档
下载FPGA抢答器设计报告.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文