四路抢答器EDA2

DEA设计——四路抢答器

学 院:

专 业:

姓 名 : 小组成员:

指导老师:

二零一五年九月二十八日

1 实验任务及要求 .................................................................................................................... 1

2 程序流程图 ............................................................................................................................ 2

3 电路原理图 ............................................................................................................................ 3

4 电路模块 ................................................................................................................................ 3

4.1 KEY模块 ..................................................................................................................... 3

4.2 KEEP模块 ................................................................................................................... 4

4.3 TIME模块 ................................................................................................................... 4

4.4 STATE模块 ................................................................................................................ 5

4.5 BEEP模块 ................................................................................................................... 6 5 下载程序 .............................................................................................. 错误!未定义书签。

5.1 分配引脚 ..................................................................................................................... 7

5.2 下载到实验箱 ............................................................................................................. 7

6 实验心得 ................................................................................................................................ 7

1 实验任务及要求

1.设计用于竞赛抢答的四人抢答器

1)有多路抢答,抢答台数为4;

2)抢答开始后20秒倒计时,20秒后无人抢答显示超时并报警;

3)能显示抢答台号并显示犯规警报;

2.系统复位后进入抢答状态,当有一路抢答键按下,该路抢答信号将其他各路抢答信号封锁,同时铃声响起,直至该路按键松开,显示该路抢答台号。

3.用VHDL语言设计符合上述功能要求的四人抢答器,并用层次化设计方法设计该电路。

4.完成电路设计后,通过系统试验箱下载验证设计的正确性。

程序流程图

图2.1 程序流程图

2

3 电路原理图

电路原理图如下:

图3.1 电路原理图

电路说明:

1)抢答状态由一个数码管显示,“F”代表超时,“E”代表犯规,“0”代表正常。

2)倒计时由两个数码管显示,从“20”记到“00”。

3)还有一个数码管用来显示当前抢答号“1”,“2”,“3”,“4”。

4 电路模块

在 这次实验当中,我在小组里负责编写STATE模块的编写,因此着重

介绍STATE模块的程序。

4.1 KEY模块

图4.1 Entity KEY

这一模块主要负责按键的输入部件,设计一个重置按钮,一个开始按钮,和4个抢答按钮。

代码:见附录

4.2 KEEP模块

图4.2 Entity KEEP

代码:见附录

4.3 TIME模块

图4.3Entity TIME20

这一模块主要负责时钟的产生,通过分频实现计时。

代码:见附录

模块仿真:

图4.4 TIME20仿真图(1)

图4.5 TIME20仿真图(2)

4.4 STATE模块

图4.6 Entity STATE

STATE这一模块由我负责,因此着重介绍。这一模块主要用来记录抢答器的状态,如果ifstart为0,ifsomeone为1,即说明计时没有开始,有人已经抢答。这时会输出1110,提示“E”表示有人抢答。如果ifstart为1,ifsomeone为1,这时输出0000,提示“0”,表示正常状态。如果ifover为1,这时输出1111,提示“F”,表示超时。具体程序如下。

代码:

Library ieee;

Use ieee.std_logic_1164.all;

Entity state is

port( ifsomeone,ifstart,ifover:in std_logic;

state:out std_logic_vector(3 downto 0) );

End state;

Architecture arch of state is

Begin

Process( ifstart,ifsomeone,ifover )

Begin

if( ifstart'event and ifstart='1' ) then

state

end if;

if( ifstart='0' and ifsomeone='1' ) then

state

elsif( ifover='1' ) then

state

else

state

end if;

End Process;

End arch;

模块仿真:

图4.9 STATE仿真图

4.5 BEEP模块

图4.10 Entity BEEP

这一模块负责,抢答器正常工作时,有人按下抢答按钮后的声音提示。 代码:见附录

5 下载程序

5.1 分配引脚

图5.1 分配引脚图

5.2 下载到实验箱

经下载调试,抢答器的各项功能基本都能实现。

6 实验心得

本次实验让我们基本学会了VHDL语言,让我们认识到EDA设计的强大之处。为我们以后的学习和工作打下了良好的基础。

附录:

其他模块程序:

Key模块程序:

Library ieee;

Use ieee.std_logic_1164.all;

Entity key is

port( k1,k2,k3,k4,feedback:in std_logic;

r1,r2,r3,r4,someone:out std_logic );

End key;

Architecture arch of key is

Begin

r1

r2

r3

r4

Process(k1,k2,k3,k4)

Begin

if( (k1 or k2 or k3 or k4)='1' ) then

someone

else

someone

end if;

end Process;

End arch;

Keep模块:

Library ieee;

Use ieee.std_logic_1164.all;

Entity keep is

port( p1,p2,p3,p4,start:in std_logic;

person:out std_logic_vector(3 downto 0); keepout:out std_logic );

End keep;

Architecture arch of keep is

Begin

Process( start,p1,p2,p3,p4 )

Begin

if( (p1 or p2 or p3 or p4)='1' ) then

person(3)

person(2)

person(1)

person(0)

keepout

elsif( start'event and start='1') then keepout

person

end if;

End Process;

End arch;

Time模块:

Library ieee;

Use ieee.std_logic_1164.all;

Entity time20 is

port(clk,start,stop:in std_logic;

dig2,dig1:out std_logic_vector(3 downto 0); over:buffer std_logic);

End time20;

Architecture arch of time20 is

signal ok:std_logic;

Begin

Process( clk,start,stop )

variable tmp1:integer range 0 to 10;

variable tmp2:integer range 0 to 2;

Begin

if( start='0' ) then

tmp2:=2;

tmp1:=0;

over

elsif( ( clk'event and clk='1')) then

if((stop='1' and over='0') )then

if( tmp1=0 and tmp2/=0) then tmp1:=9;

tmp2:=tmp2-1;

else

tmp1:=tmp1-1;

end if;

if( tmp2=0 and tmp1=0 ) then over

end if;

end if;

end if;

case tmp1 is

when 0 => dig1

when 1 => dig1

when 2 => dig1

when 3 => dig1

when 4 => dig1

when 5 => dig1

when 6 => dig1

when 7 => dig1

when 8 => dig1

when 9 => dig1

when others => null;

end case;

case tmp2 is

when 0 => dig2

when 1 => dig2

when 2 => dig2

when others => null;

end case;

End Process;

End arch;

Beep模块:

Library ieee;

Use ieee.std_logic_1164.all;

Entity beep is

port( someone,start,over:in std_logic;

beep,beeplong:out std_logic );

End beep;

Architecture arch of beep is

Begin

Process( start,someone,over )

Begin

if( start='0' and someone='1' ) then

beeplong

beep

elsif( start='1' and over='1' ) then

beeplong

beep

elsif( start='1' and someone='1' and over='0' ) then beeplong

beep

elsif( start='1' and someone='0' and over='0' ) then beeplong

beep

end if;

End Process;

End arch;

DEA设计——四路抢答器

学 院:

专 业:

姓 名 : 小组成员:

指导老师:

二零一五年九月二十八日

1 实验任务及要求 .................................................................................................................... 1

2 程序流程图 ............................................................................................................................ 2

3 电路原理图 ............................................................................................................................ 3

4 电路模块 ................................................................................................................................ 3

4.1 KEY模块 ..................................................................................................................... 3

4.2 KEEP模块 ................................................................................................................... 4

4.3 TIME模块 ................................................................................................................... 4

4.4 STATE模块 ................................................................................................................ 5

4.5 BEEP模块 ................................................................................................................... 6 5 下载程序 .............................................................................................. 错误!未定义书签。

5.1 分配引脚 ..................................................................................................................... 7

5.2 下载到实验箱 ............................................................................................................. 7

6 实验心得 ................................................................................................................................ 7

1 实验任务及要求

1.设计用于竞赛抢答的四人抢答器

1)有多路抢答,抢答台数为4;

2)抢答开始后20秒倒计时,20秒后无人抢答显示超时并报警;

3)能显示抢答台号并显示犯规警报;

2.系统复位后进入抢答状态,当有一路抢答键按下,该路抢答信号将其他各路抢答信号封锁,同时铃声响起,直至该路按键松开,显示该路抢答台号。

3.用VHDL语言设计符合上述功能要求的四人抢答器,并用层次化设计方法设计该电路。

4.完成电路设计后,通过系统试验箱下载验证设计的正确性。

程序流程图

图2.1 程序流程图

2

3 电路原理图

电路原理图如下:

图3.1 电路原理图

电路说明:

1)抢答状态由一个数码管显示,“F”代表超时,“E”代表犯规,“0”代表正常。

2)倒计时由两个数码管显示,从“20”记到“00”。

3)还有一个数码管用来显示当前抢答号“1”,“2”,“3”,“4”。

4 电路模块

在 这次实验当中,我在小组里负责编写STATE模块的编写,因此着重

介绍STATE模块的程序。

4.1 KEY模块

图4.1 Entity KEY

这一模块主要负责按键的输入部件,设计一个重置按钮,一个开始按钮,和4个抢答按钮。

代码:见附录

4.2 KEEP模块

图4.2 Entity KEEP

代码:见附录

4.3 TIME模块

图4.3Entity TIME20

这一模块主要负责时钟的产生,通过分频实现计时。

代码:见附录

模块仿真:

图4.4 TIME20仿真图(1)

图4.5 TIME20仿真图(2)

4.4 STATE模块

图4.6 Entity STATE

STATE这一模块由我负责,因此着重介绍。这一模块主要用来记录抢答器的状态,如果ifstart为0,ifsomeone为1,即说明计时没有开始,有人已经抢答。这时会输出1110,提示“E”表示有人抢答。如果ifstart为1,ifsomeone为1,这时输出0000,提示“0”,表示正常状态。如果ifover为1,这时输出1111,提示“F”,表示超时。具体程序如下。

代码:

Library ieee;

Use ieee.std_logic_1164.all;

Entity state is

port( ifsomeone,ifstart,ifover:in std_logic;

state:out std_logic_vector(3 downto 0) );

End state;

Architecture arch of state is

Begin

Process( ifstart,ifsomeone,ifover )

Begin

if( ifstart'event and ifstart='1' ) then

state

end if;

if( ifstart='0' and ifsomeone='1' ) then

state

elsif( ifover='1' ) then

state

else

state

end if;

End Process;

End arch;

模块仿真:

图4.9 STATE仿真图

4.5 BEEP模块

图4.10 Entity BEEP

这一模块负责,抢答器正常工作时,有人按下抢答按钮后的声音提示。 代码:见附录

5 下载程序

5.1 分配引脚

图5.1 分配引脚图

5.2 下载到实验箱

经下载调试,抢答器的各项功能基本都能实现。

6 实验心得

本次实验让我们基本学会了VHDL语言,让我们认识到EDA设计的强大之处。为我们以后的学习和工作打下了良好的基础。

附录:

其他模块程序:

Key模块程序:

Library ieee;

Use ieee.std_logic_1164.all;

Entity key is

port( k1,k2,k3,k4,feedback:in std_logic;

r1,r2,r3,r4,someone:out std_logic );

End key;

Architecture arch of key is

Begin

r1

r2

r3

r4

Process(k1,k2,k3,k4)

Begin

if( (k1 or k2 or k3 or k4)='1' ) then

someone

else

someone

end if;

end Process;

End arch;

Keep模块:

Library ieee;

Use ieee.std_logic_1164.all;

Entity keep is

port( p1,p2,p3,p4,start:in std_logic;

person:out std_logic_vector(3 downto 0); keepout:out std_logic );

End keep;

Architecture arch of keep is

Begin

Process( start,p1,p2,p3,p4 )

Begin

if( (p1 or p2 or p3 or p4)='1' ) then

person(3)

person(2)

person(1)

person(0)

keepout

elsif( start'event and start='1') then keepout

person

end if;

End Process;

End arch;

Time模块:

Library ieee;

Use ieee.std_logic_1164.all;

Entity time20 is

port(clk,start,stop:in std_logic;

dig2,dig1:out std_logic_vector(3 downto 0); over:buffer std_logic);

End time20;

Architecture arch of time20 is

signal ok:std_logic;

Begin

Process( clk,start,stop )

variable tmp1:integer range 0 to 10;

variable tmp2:integer range 0 to 2;

Begin

if( start='0' ) then

tmp2:=2;

tmp1:=0;

over

elsif( ( clk'event and clk='1')) then

if((stop='1' and over='0') )then

if( tmp1=0 and tmp2/=0) then tmp1:=9;

tmp2:=tmp2-1;

else

tmp1:=tmp1-1;

end if;

if( tmp2=0 and tmp1=0 ) then over

end if;

end if;

end if;

case tmp1 is

when 0 => dig1

when 1 => dig1

when 2 => dig1

when 3 => dig1

when 4 => dig1

when 5 => dig1

when 6 => dig1

when 7 => dig1

when 8 => dig1

when 9 => dig1

when others => null;

end case;

case tmp2 is

when 0 => dig2

when 1 => dig2

when 2 => dig2

when others => null;

end case;

End Process;

End arch;

Beep模块:

Library ieee;

Use ieee.std_logic_1164.all;

Entity beep is

port( someone,start,over:in std_logic;

beep,beeplong:out std_logic );

End beep;

Architecture arch of beep is

Begin

Process( start,someone,over )

Begin

if( start='0' and someone='1' ) then

beeplong

beep

elsif( start='1' and over='1' ) then

beeplong

beep

elsif( start='1' and someone='1' and over='0' ) then beeplong

beep

elsif( start='1' and someone='0' and over='0' ) then beeplong

beep

end if;

End Process;

End arch;


相关文章

  • 四路抢答器实训报告
  • 四路抢答器实训报告 一. 任务要求 抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优于 判决器电路,竞赛者可以分为若干组,抢答时各组对主持人提出的问题要在最短时间内做出判断,并按下强大按键回答问题.当第一个人按下按键以后,则在显示器上显 ...查看


  • 四路智力竞赛抢答器设计
  • 四路多路智能抢答器设计 前言 关于这次设计的用于多人竞赛抢答的器件,在现实生活中很常见,尤其是在随着各种智益电视节目的不断发展,越来越多的竞赛抢答器被用在了其中,这种抢答器的好处是不仅能够锻炼参赛选手的反应能力,而且能增加节目现场的紧张.活 ...查看


  • 四路抢答器毕业设计
  • 滁州职业技术学院机电系 毕 业 设 计 课 题: 抢答器 设计时间: 2014.11-2014.12 班 级: 机 电(4)班 学 号: 姓 名:指导教师: 杨入超 摘 要 随着微处理器.计算机和数字通讯技术的飞速发展,计算机控制已扩展到了 ...查看


  • 数电四路抢答器课程设计报告
  • 电子与通信工程系电子信息科学与技术 课程设计报告 课程名称: 数字电子技术基础 课题题目: 四路智能抢答器 专 业: 电子与信息工程系 姓 名: *** *** 学 号: ********* ********* 指导教师: *** 课题题目 ...查看


  • 四路抢答器的设计
  • 电 子 课 程 设 计 题目: 班 级: 0934101 专 业:电子信息工程 姓 名: 课程名称:电子课程设计 指导老师:胡玥 刘晓芳 电气与电子工程系 2012年6月 2012年6月 成绩评定: 一 .指导教师评语(根据学生课程设计质量 ...查看


  • 单片机 四路抢答器
  • 课程设计说明书 (2009/2010学年第二学期) 课程名称 :题 目 :专业班级 :学生姓名 :学 号 :指导教师 :设计周数 :设计成绩 : 单片机应用课程设计 四路抢答器 电气2班 韩昱 苗敬利 两周(10.6.28-10.07.09 ...查看


  • 四路智能抢答器课程设计
  • 摘 要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测日新月异.此次设计提出一种用AT89C52单片机作为核心控制元件与电阻.液晶显示屏.蜂鸣器等构成硬件条件,再利用C语言编程来控制抢答器的功能实现. 本论文对抢答 ...查看


  • 简易四路抢答器
  • 单片机课程设计 预习报告 班 级: 建电141 姓 名:学 号: 设计题目:设计时间: 评定成绩:评定教师: 四位竞赛抢答器系统设计 2016.01.03~01.07 目录 摘要 ------------------------------ ...查看


  • 四人智力竞赛抢答器
  • 电子工艺实训报告 实训课题 智力竞赛抢答器的制作与调试 学号 ************* 年级 ** 学院 ***** 专业 *********** 姓名 ****** 指导教师 ****** 一.实训目的 (1) 学习识别简单的电子元件与 ...查看


热门内容