EDA课程设计报告——数字抢答器

上传人:痛*** 文档编号:155514067 上传时间:2022-09-23 格式:DOC 页数:20 大小:229.50KB
收藏 版权申诉 举报 下载
EDA课程设计报告——数字抢答器_第1页
第1页 / 共20页
EDA课程设计报告——数字抢答器_第2页
第2页 / 共20页
EDA课程设计报告——数字抢答器_第3页
第3页 / 共20页
资源描述:

《EDA课程设计报告——数字抢答器》由会员分享,可在线阅读,更多相关《EDA课程设计报告——数字抢答器(20页珍藏版)》请在装配图网上搜索。

1、.数字式竞赛抢答器设计要求1、设计一个可容纳4组参赛的数字式抢答器,每组设一个按钮,供抢答使用。 2、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。 3、设置一个主持人“复位按钮。 4、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别,扬声器发出 23 秒的音响。 5、设置一个计分电路,每组开始预置 100 分,由主持人记分,答对一次加 10 分,答错一次减 10 分。 1、总体方案设计原理及分析1.1、方案原理按照设计要求,设计一个4组参赛的抢答器,所以这种抢答器要求有四路不同组别的抢答输入信号,并能识别最先抢答的信号,直观地通过数码显示和蜂鸣

2、报警等方式提示主持人并显示出组别;同时该系统还应有复位功能。主持人按下系统复位键RST,系统进入抢答状态,计分模块输出初始信号给数码显示模块并显示出初始值。当某参赛组抢先将抢答键按下时,系统将其余三路抢答信号封锁,同时扬声器发出2-3秒的声音提示,组别显示模块送出信号给数码显示模块,从而显示出该抢答成功组台号,并一直保持到下一轮主持人将系统清零为止。主持人对抢答结果进行确认,随后,计时模块送出倒计时计数允许信号,开始回答下列问题,计时显示器那么从初始值开始以计时,在规定的时间根据答题的正误来确定加分或减分,并通过数码显示模块将成绩显示出来。计时至0时,停止计时,扬声器发出超时报警信号,以中止未

3、回答完问题。当主持人给出倒计时停止信号时,扬声器停止鸣叫。假设参赛者在规定时间回答完为题,主持人可给出倒计时计数停止信号,以免扬声器鸣叫。主持人按下复位键,即RST为高电平有效状态,清除前一次的抢答组别,又可开始新的一轮的抢答。此抢答器的设计中采用自顶向下的设计思路,运用VHDL硬件描述语言对各个模块进行层次化、系统化的描述,并且先设计一个顶层文件,再把各个模块连接起来。1.2、方案设计框图主持人控制开关抢答按钮控制电路优先编码锁存器报警电路译码电路显示电路预制计分电路译码电路显示电路主电路 扩展功能电路图1 方案系统结构图1.3、方案各路功能分析此方案是由主体电路和扩展电路两部分构成,整个系

4、统包括这样几个主要模块:抢答鉴别模块、抢答计时模块、抢答计分模块、译码显示模块、报警模块。主体电路完成基本的抢答功能,接通电源时,主持人将开关置于“清除位置,抢答器处于禁止工作状态,编号显示器灭灯;抢答开始时,主持人将控制开关拨到“开始位置,扬声器给出声响提示,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。然后由译码显示电路显示编号,扬声器发出短暂声响,提醒主持人注意。扩展电路完成各选手的得分显示以及报警功能。选手回答下列问题完毕,主持人操作计分开关,计分电路采用十进制加/减计数器、数码管显示。本轮抢答完毕,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下

5、一轮抢答。系统的输入信号有:各组的抢答按钮s0、s1、s2、s3。系统清零信号CLR,系统时钟信号CLK,复位信号RST,加分按钮端ADD,计时中止信号stop;计时十位和个位信号tb,ta。;系统的输出信号有:四个组抢答状态的显示LEDxx表示参赛者的编号,四个组抢答时的计时数码显示控制信号假设干,抢答成功组别显示的控制信号假设干,各组计分动态显示的控制信号假设干。2、主要模块设计2.1、抢答鉴别模块在这个模块中主要实现抢答过程中的抢答鉴别功能。其电路框图如下。其中,rst为复位信号,当该信号高电平有效时,电路无论处于何种状态都恢复为初始状态,即所有的输出信号都为0;EN为抢答使能信号,该信

6、号高电平有效;s0、s1、s2、s3为抢答按钮,高电平时有效。当使能信号EN为低电平时,如果有参赛者按下按钮,那么提前抢答报警信号FALSE3.0的对应位输出高电平,以示警告;当EN为高电平时,首先将提前抢答报警信号FALSE3.0复位清0,然后根据选手按下抢答按钮的先后顺序选择最先抢答的信号,其对应的抢答状态显示信号LEDALEDD输出高电平,抢答成功组别编号由信号states输出,并锁存抢答器此时的状态,直到清0信号有效为止。在每一轮新的抢答之前,都要使用复位清零信号rst,清除上一轮抢答对判断电路留下的使用痕迹,使电路恢复初始状态。图2 抢答鉴别模块框图2.2、计时模块在这个模块中主要实

7、现抢答过程中的计时功能,在有组别抢答后开始倒计时,假设在规定时间没人回答,那么超时报警。其中有系统复位信号rst;抢答使能信号s;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。 图3 计时模块框图2.3、计分模块抢答计分电路的设计一般按照一定数制进行加减即可,但随着计数数目的增加,要将计数数目分解成十进制并进行译码显示会变得较为复杂。为了避免该种情况,通常是将一个大的进制数分解为数个十进制以的进制数,并将计数器级连。但随着数位的增加,电路的接口也会相应增加。因此,本设计采用IF语句从低往高判断是否有进位,以采取相应的操作,既减少了接口,又简化了设计。其电路框图如

8、下,该模块输入信号为加分选择信号add和组别选择信号chose3.0,其中,加分选择信号add高电平有效,有效时对组别选择信号chose3.0选择的参赛组进行加分;组别选择输入信号chose3.0即抢答鉴别模块的输出信号states3.0。输出信号分别对应四组竞赛者的得分。 图4 计分模块框图2.4、译码显示模块译码显示模块用于显示每组选手的分数,计时的时间等信息。显示电路的实质就是一个简单的LED共阴极显示模块的译码器。7段数码管LED常用的一般8字型为a,b,c,d,e,f,g,P,其中P为小数点,共阴LED低电平有效。在这里我们不需要用到小数点位,因此用位宽为7的矢量表示7段数码管即可。

9、7段LED共阴极显示模块的框图如下图。其中,IN430为输入信号,以4位2进制数表示;OUT760为输出信号,将输入的二进制数译码显示为十进制数字的09。图5 译码显示模块框图2.5、报警模块在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间有人抢答,指示灯显示抢答组别,扬声器发出 23 秒的音响。即有效电平输入信号i;状态输出信号q。图6 报警模块框图2.6、整体框图从上述设计方案中我们可以大致得到数字竞赛抢答器的系统框图,如下列图所示,其中抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号sto

10、p;计时十位和个位信号tb,ta。图7 抢答器系统框图3、仿真结果3.1、抢答鉴别模块仿真抢答鉴别模块的仿真波形图如下图。当鉴别模块的清零复位信号rst为高电平时,无论四组参赛者谁按下抢答按钮,系统输出均为零,同时组别显示端输出信号也显示为零;当清零信号rst为低电平时,s0、s1、s2、s3四组参赛者谁先按下抢答按钮,其对应的显示灯LEDx亮起,states3.0输出抢答成功的选手编号。图8 抢答鉴别模块仿真波形图3.2计时模块计时模块的仿真波形如下图。实现了抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。图9 计时模块仿真波形图3.3计分

11、模块仿真系统设计过程中,当计分复位端RST=1时,并且组别输入信号CHOSE=0000,其中的组别输入信号是抢答鉴别模块的输出信号,计分器复位,此时以上四组都不会产生加减分操作。然而当计分复位端RST=0时,此时计分器可以计分。当CHOS=0001时,组别显示为A组,此时主持人利用计分器对A组进行加减分操作;当CHOS=0010时,组别显示为B组,此时主持人那么利用计分器对B组进行加减分操作,以此类推。下列图仿真为A组回答正确,加分。图10 计分模块仿真波形图3.4 译码模块仿真 当in4= 0000 ,out7输出0111111,此时数码管显示0; 当in4= 0001 ,out7输出000

12、0110,此时数码管显示1; 当in4= 0010 ,out7输出1011011,此时数码管显示2; 当in4= 0011 ,out7输出1001111,此时数码管显示3; 当in4= 0100 ,out7输出1100110,此时数码管显示4; 当in4= 0101 ,out7输出1101101,此时数码管显示5; 当in4= 0110 ,out7输出1111101,此时数码管显示6; 当in4= 0111 ,out7输出0000111,此时数码管显示7; 当in4= 1000 ,out7输出1111111,此时数码管显示8; 当in4= 1001 ,out7输出1101111,此时数码管显示

13、9;图11 译码显示模块仿真波形图3.5、报警模块仿真在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间如果人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号i;状态输出信号q。仿真如下列图。图12 报警模块仿真波形图3.6、整体仿真对电路整体进行仿真,得出如下仿真波形图12。图中,当复位信号rst为高电平时,系统所有信号都清零;当主持人按下开始键,抢答器开始工作。图13 整体仿真波形图4、 原理连线图根据系统设计要求,将各模块连线得到如下系统框图。主持人按下使能端EN,抢答器开始工作。四位抢答者谁先按下抢答按钮,那么抢答成功,对应的显示灯亮起,并通过显示电路模块显示参赛编

14、号。抢答成功的选手进入答题阶段,如果正确回答下列问题,那么加分信号add有效,给相应的参赛组加分。如果复位信号rst有效,使得抢答器在下一轮抢答前,其抢答成功的组别判断恢复为初始状态,开始新一轮抢答。图14 原理连线图5、致对于此次课程设计,首先我得诚挚的感我的指导老师,从设计、整改及论文的定稿过程中,自始至终都倾注着老师的心血。老师以严谨的治学之道、宽厚仁慈的胸怀、积极乐观的生活态度,兢兢业业的工作作风为我树立了学习的典,他们的教诲与鞭策将激励我在学习和生活的道路上励精图治,开拓创新。他们渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。我真诚地老师们的指导和关怀。于个人,通过这次课程设计

15、,我进一步加深了对电子设计自动化的了解。并进一步熟练了对QuartusII软件的操作。EDA这门课程也不像学习理论般那么空洞,有了更加贴切的了解及运用。做课程设计时,先查阅相关知识,把原理吃透,确定一个大的设计方向,在按照这个方向分模块的把要实现的功能用流程图的形式展示。最后参照每个模块把输入和输出引脚设定,运用我们所学的VHDL语言进行编程。总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。6、详细仪器清单名称型号数量计算机联想1Quartus II开发软件9.01EDA/SOPC实验开发系统GW48-PK21参

16、考文献1 俊逸.EDA技术课程设计.华中科技大学.2008.2-122 松.EDA应用技术.理工大学.20033 X志军.EDA技术与PLD设计M.科学.20024 黄仁欣.EDA技术实用教程.清华大学.20045 建明.电工电子EDA仿真技术.高等教育,20046 昕燕、周风臣、聂春燕.EDA技术试验与课程设计.清华大学.20077 自美.电子线路设计实验测试.华中科技大学.19998 世强、许杰.电子电路EDA技术.电子科技大学.20019 江国强.EDA技术习题与实验.电子工业.201210 高有堂.EDA技术及应用实践.清华大学.2006-08附录VHDL程序1) 抢答鉴别模块libr

17、ary ieee;use ieee.std_logic_1164.all;entity qdjb isport(rst:in std_logic;EN:in std_logic; s0,s1,s2,s3:in std_logic;LEDA:out std_logic;LEDB:out std_logic; LEDC:out std_logic; LEDD:out std_logic; false:out std_logic_vector(3 downto 0); states:out std_logic_vector(3 downto 0);end qdjb;architecture one

18、of qdjb issignal tmp: std_logic_vector(3 downto 0);signal tag: std_logic;begintmp=s0&s1&s2&s3;process(rst,EN,s0,s1,s2,s3,tmp)begin if rst=1THEN states=0000; LEDA=0; LEDB=0; LEDC=0; LEDD=0; false=0000; tag=0;elsif EN=0then if s0=1thenfalse(3)=1;end if;if s1=1thenfalse(2)=1;end if;if s2=1thenfalse(1)=

19、1;end if;if s3=1thenfalse(0)=1;end if;elsefalse=0000;if tag=0then if tmp=1000then LEDA=1; LEDB=0; LEDC=0; LEDD=0; states=1000; tag=1; elsif tmp=0100then LEDA=0; LEDB=1; LEDC=0; LEDD=0; states=0100; tag=1; elsif tmp=0010then LEDA=0; LEDB=0; LEDC=1; LEDD=0; states=0010; tag=1; elsif tmp=0001then LEDA=

20、0; LEDB=0; LEDC=0; LEDD=1; states=0001; tag=1; end if; end if; end if; end process;end one;2) 计时模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity js is port(clk,rst,s,stop:in std_logic;warn:out std_logic;ta,tb:buffer std_logic_vector(3 downto 0);end js;architecture on

21、e of js issignal co:std_logic;beginp1:process(clk,rst,s,stop,ta) begin if rst=0 or stop=1 then ta=0000; elsif clkevent and clk=1 then co=0; if s=1 then if ta=0000 then ta=1001;co=1; else ta=ta-1; end if; end if; end if;end process p1;p2:process(co,rst,s,stop,tb) begin if rst=0 or stop=1 then tb=0010

22、;elsif coevent and co=1 then if s=1 then if tb=0000 then tb=0011; else tb=tb-1; end if; end if; end if;end process p2;end one;3) 计分模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jf is port(rst: in std_logic;add: in std_logic;chose: in std_logic_vector(3 downto 0);a

23、a2,aa1,aa0,bb2,bb1,bb0: out std_logic_vector(3 downto 0); cc2,cc1,cc0,dd2,dd1,dd0: out std_logic_vector(3 downto 0);end entity jf;architecture art of jf isbegin process(rst,add,chose) is variable a2,a1:std_logic_vector(3 downto 0); variable b2,b1:std_logic_vector(3 downto 0); variable c2,c1:std_logi

24、c_vector(3 downto 0); variable d2,d1:std_logic_vector(3 downto 0); begin if(rst=1)then a2:=0001;a1:=0000; b2:=0001;b1:=0000; c2:=0001;c1:=0000; d2:=0001;d1:=0000; elsif(addevent and add=1)then if chose=0001then if a1=1001then a1:=0000; if a2=1001then a2:=0000; else a2:=a2+1; end if; else a1:=a1+1; e

25、nd if; elsif chose=0010then if b1=1001then b1:=0000; if b2=1001then b2:=0000; else b2:=b2+1; end if; else b1:=b1+1; end if; elsif chose=0100then if c1=1001then c1:=0000; if c2=1001then c2:=0000; else c2:=c2+1; end if; else c1:=c1+1; end if; elsif chose=1000then if d1=1001then d1:=0000; if d2=1001the

26、n d2:=0000; else d2:=d2+1; end if; else d1:=d1+1; end if; end if; end if; aa2=a2;aa1=a1;aa0=0000; bb2=b2;bb1=b1;bb0=0000; cc2=c2;cc1=c1;cc0=0000; dd2=d2;dd1=d1;dd0out7out7out7out7out7out7out7out7out7out7out7=0000000; end case; end process;end architecture; 5) 报警模块library ieee;use ieee.std_logic_1164

27、.all;use ieee.std_logic_unsigned.all;entity alarm isport(clk,i:in std_logic;q:out std_logic);end alarm;architecture behave of alarm is signal warn:std_logic; signal n:integer range 0 to 20;begin q= warn; process(clk) begin if clkevent and clk=1 then if i=0 then warn =0; elsif(i=1and n=19)then warn =not warn; n=n+1; elsewarn zbxs);u5:alarm port map(clk,i,q);end rtl;-

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!