ImageVerifierCode 换一换
格式:DOC , 页数:16 ,大小:195.50KB ,
资源ID:2317304      下载积分:7 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2317304.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(数字式竞赛抢答器VHDL.doc)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数字式竞赛抢答器VHDL.doc

1、_数字系统设计与硬件描述语言期末考试作业题目: 数字式竞赛抢答器设计 学院: 电子信息工程 专业: 电子信息工程 学号: 姓名: 一、 选题设计描述1. 功能介绍此设计用于竞赛的四人抢答,有如下的功能:(1) 具有多路抢答功能,台数设计为四;(2) 具有抢答器开始后30秒倒计时,30秒后无人抢答显示超时,并报警;(3) 能显示超前抢答犯规,并警报;(4) 能显示各组得分,大队加分,答错扣分;当系统复位,主持人按下抢答开始按键,处于使能状态,抢答开始,某路抢答键按下时,该路信号将其他路信号锁存,同时抢答铃声响起,直至此路按键松开,显示该路组号。2. 算法简介本设计采用分层设计思想,分为:信号鉴别

2、模块、计时模块、计分模块、BCD译码模块、分频器,还有顶层模块。信号鉴别模块。此模块主要实现抢答器的抢答功能,并能够分辨是正常抢答还是提前抢答,选取最先按下的一路信号,锁存其余信号,实现信号选取功能。在此模块中,用到的信号为抢答信号a、b、c、d;抢答使能信号en;抢答结果信号states;警报时钟信号clk2;复位信号rst;提前抢答信号fangui。计时模块。此模块主要实现抢答过程中的计时功能,在抢答开始后进行30秒的倒计时,且在30秒后显示无人抢答报警信号。其中有抢答时钟信号clk;系统复位信号rst;抢答使能信号en;无人抢答警报信号warn;计时中止信号stop;计时十位个位信号tb

3、,ta。计分模块。此模块主要实现给四个抢答器计分的功能,初始条件下,为每个抢答器信号预制5分,当某组抢答且回答正确时加一分,答错减一分,未获答题机会时保持不变。其中设有时钟信号clk;复位信号rst;抢答使能信号en;抢答结果显示信号states;记分加减信号add(add1时为加,add0时为减);四个信号的得分显示信号a_out,b_out,c_out,d_out。BCD译码模块。此模块主要实现将抢答结果信号显示在bcd七段译码器上。其中输入信号a;输出译码结果信号q。分频器。此模块主要实现时钟分频功能。在开头对时钟信号进行一次千分频。其中时钟输入信号clkin,输出信号clk。顶层模块。

4、将前几个模块综合在一起,形成一个整体。分频器输出作为其他模块所需的时钟信号,使整个系统正常运转。二、 程序源代码及说明抢答信号鉴别模块的程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qdjb is port(clk2,en,rst:in std_logic; a,b,c,d:in std_logic; fangui:out std_logic; states:out std_logic_vector(3 downto 0);end qdjb;architecture one

5、of qdjb issignal sinor,fanguif,tmp:std_logic;signal cnt:std_logic_vector(5 downto 0);beginsinor=a or b or c or d;p1:process(a,rst,b,c,d,tmp) begin if rst=1 then -复位信号有效,系统复位。 tmp=1;states=0000; elsif tmp=1 then if a=1 then -判断哪路信号变化,进行选取 states=0001;tmp=0; -对states进行置数 elsif b=1 then states=0010;tmp

6、=0; elsif c=1 then states=0011;tmp=0; elsif d=1 then states=0100;tmp=0; else tmp=1;states=0000; end if ; end if;end process p1; p2:process(clk2,en,rst,cnt) -判断是否提前抢答并报警 begin if rst=1 then cnt=000000;fanguif=0; -初始化提前抢答犯规信号 elsif clk2event and clk2=1 then if en=0 and sinor=1 then if cnt111111 then f

7、anguif=not fanguif;cnt=cnt+1; else fanguif=0; end if; end if; end if;end process p2;fangui=fanguif;end one;计时模块的程序:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity js is port(clk,rst,en,stop:in std_logic; warn:buffer std_logic; ta,tb:buffer std_logic_vector(3 downto 0

8、);end js;architecture one of js issignal co:std_logic;beginp1:process(clk,rst,en,stop,ta) -个位计时信号进行0到9循环计数 begin if rst=1 or stop=1 then ta=0000; elsif clkevent and clk=1 then co=0; if en=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,en,st

9、op,tb) -十位计时信号0到3变化 begin if rst=1 or stop=1 then tb=0011; elsif coevent and co=1 then if en=1 then if tb=0000 then tb=0011; else tb=tb-1; end if; end if; end if;end process p2;p3:process(rst,ta,tb) -计时时间到达,报警 begin if rst=1 then warn=0; elsif ta=0000 and tb=0000 then warn=1; else warn=0; end if;end

10、 process p3;end one;计分模块的程序:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jf is port(clk,rst,en,add:in std_logic; states:in std_logic_vector(3 downto 0); a_out,b_out,c_out,d_out:buffer std_logic_vector(3 downto 0);end jf;architecture one of jf is beginp1:process(cl

11、k,rst,add,states,a_out,b_out,c_out,d_out) begin if (rst=1) then a_out=0101;b_out=0101;c_out=0101;d_out if add=1 then -add信号为高时,加1分 if a_out=1111 then -最多15分 a_out=0000; else a_out=a_out+1; end if; elsif add=0 then -add信号为0,减1分 if a_out=0000 then a_out=0000; else a_out if add=1 then if b_out=1111 the

12、n b_out=0000; else b_out=b_out+1; end if; elsif add=0 then if b_out=0000 then b_out=0000; else b_out if add=1 then if c_out=1111 then c_out=0000; else c_out=c_out+1; end if; elsif add=0 then if c_out=0000 then c_out=0000; else c_out if add=1 then if d_out=1111 then d_out=0000; else d_out=d_out+1; en

13、d if; elsif add=0 then if d_out=0000 then d_out=0000; else d_out a_out=a_out;b_out=b_out;c_out=c_out;d_out q q q q q q q q q q q=0000000; END case; END PROCESS; END behav;一千分频器模块程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_unsigned.ALL;ENTITY divf ISPORT(clk: IN STD_LOGIC; q : OUT

14、STD_LOGIC; qn: OUT std_logic_vector(9 downto 0);END divf;ARCHITECTURE behav OF divf IS signal rst: std_logic; signal qn1:std_logic_vector(9 downto 0); BEGIN PROCESS (clk,rst) BEGIN if rst=1 then qn1= 0000000000; elsif clkevent and clk=1 then qn1=qn1+1; end if; END PROCESS; rst=1 when qn1=1000 else 0

15、; qn=qn1; -计数 q=qn1(9); -分频输出,1000分频END behav;三、 仿真结果及分析系统总体框图:对于各个模块的仿真测试所得结果,仿真波形分析如下:1、 信号鉴别模块:仿真结果: 本模块主要实现抢答功能。当rst信号为1,en信号为1时,抢答开始,当有一路正常获得抢答时,系统会自动封锁另外三路的抢答信号,只允许一人处于答题状态;当主持人没有允许抢答时,若有人超前抢答,警报会响起,同时只要有人抢答那么抢答显示台(states)会显示哪一个在抢答。如上图示,在系统第一个复位信号来临后,电路自动复位,在允许抢答信号来临之前(即en=0),b台超前抢答,此时警报响起(即超前

16、抢答警报信号fangui获得一个频率很高的脉冲,就会响起),之后主持人复位,并允许抢答,a台最先抢答,此时抢答显示台显示其台号1。2、 计时模块:仿真结果:本模块主要实现计时功能。当rst信号为1时,计时复位为30秒倒计时,主持人允许的en信号为1时,开始进行倒计时,系统时钟每来一个上升沿,倒计时减1,当到30秒倒计时计玩仍然无人抢答时,警报指示灯亮(即warn=1),若有人抢答主持人可以按下中止键(即stop=1),这样倒计时就会回到30秒初始状态。图示的情况为在倒计时16秒时,主持人按下中止键,计时器变为初始值30,在下一轮抢答过程中,倒计时为0时仍然无人抢答,此时警报指示信号亮(即war

17、n=1)。3、计分模块:仿真结果:本模块主要实现记分功能,其工作情况为:系统复位信号来临(即rst=1),将每个选手的得分预置为5分,抢答显示台显示为0即无人抢答,当主持人允许抢答时,若有人抢答,答对(即add=1,假设所有人都答对了)的加一分,答错(即add=0)的减一分,没有抢答的保持不变。图示,开始后a台连续抢答5题,且都答对,a_out变成10了,之后c台连续抢答成功,且都答对加分,最高记到了15分数码管显示位F,此时获胜并把分数重新置为0。4、BCD7段译码模块:仿真结果: 本模块主要实现数据输入的7段输出。主要是0到9的数分别译出,10到15都译为“0000000”,实现了设置的功

18、能。5、一千分频模块:仿真结果:本模块实现输入信号的一千分频。另外还可以取其中的其他位,实现其他分频。如上图,qn0实现两分频,qn5实现64分频,qn6实现128分频,等等。6、顶层模块: 本模块为顶层文件,是综合抢答器鉴别模块、抢答器计时模块、抢答器记分模块、BCD7段译码模块和一千分频模块而成。在其仿真波形中描述的情况为:第一次系统复位后,主任人还没有宣布抢答开始,但a台超前抢答了,fangui信号脉冲波形出现了,主持人就知道a犯规了;接着第二轮系统复位后,主持人宣布抢答开始,b台先抢答成功,抢答显示台号显示为3,单答题错误(add=0),故减分,相应的数码管显示其总分情况。四、 心得体

19、会这次实验,首先最难的就是模块的划分,必须先有一个总体的规划,然后细化去写每个模块的程序,我在写程序的过程中,参考了课程使用的课件,参考了网上资料,觉得vhdl程序结构特别严密,并且quartus ii软件能为我找出程序语法上的低级失误,低级错误,使我对于vhdl语法规则有了更加深刻的理解。此外,在仿真的过程中,开始时经常忘了将当前实体设置为顶层实体使得仿真过程中出现了多次错误,所以进过这次实验我大概有了一个仿真的固定步骤,一步一步来才不至于出现这种问题。总之,这次实验还是收获颇丰的,我知道了采用自顶向下的设计思想,那么顶层的设计就很重要,顶层设计好后,下面各部分写起来就比较清楚容易了。Welcome ToDownload !欢迎您的下载,资料仅供参考!精品资料

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服