《verilog抢答器设计报告.doc》由会员分享,可在线阅读,更多相关《verilog抢答器设计报告.doc(6页珍藏版)》请在金锄头文库上搜索。
1、抢答器一任务解析用Verilog硬件描述语言设计抢答器,实现:1、四人通过按键抢答,最先按下按键的人抢答成功,此后其他人抢答无效。2、每次只有一人可获得抢答资格,一次抢答完后主持人通过复位按键复位,选手再从新抢答。3、有从新开始游戏按键,游戏从新开始时每位选手有5分的初始分,答对加1分,答错扣1分,最高分不能超过9分,当选手得分减为0时取消该选手抢答资格。4、选手抢答成功时其对应的分数闪烁。二方案论证(画框图并分析) 抢答部分(对应snatch模块)在quartusII下的仿真原理图如下所示:抢答部分的代码如下: 计分模块的代码如下: 顶层模块的代码如下: 三重难点解析 抢答器的核心部分为巧妙
2、地利用D触发器的反馈,在检测到第一个上升沿时将按键(未按下时接低电平)接入的与门锁住,以保证与门只有一个上升沿输出,从而实现“最先按下按键的人抢答成功,此后其他人抢答无效”。在与门输出上升沿的同时检测按键,以确定是哪位选手抢答,用寄存器存下抢答选手的信息,最后确定哪个led灯亮以及那位选手对应的分数闪烁。至于取消0分选手抢答资格,则是将各选手的分数反馈到选手抢答的按键,通过与门关闭相应选手按键上升沿的进入。其他功能的实现相对简单,在此不再赘述。将各模块代码写好并测试后,在主模块中调用并分配引脚,引脚分配好后,从新编译、下载就可实验了。分别验证上述的各种功能,看是否达到预期的效果。四硬件资源分配
3、(给出引脚分配说明)芯片选用EP1K30TC114-3,clr接全局清零键pin124,start(游戏从新开始键)接pin49,up(加分键)接pin47,down接pin48,四个抢答按键key3、key2、key1、key0、分别接pin59、pin60、pin62、pin63,7段数码管的7盏灯a、b、c、d、e、f、g分别pin118、pin119、pin120、pin121、pin122、pin128、pin130,数码管选择信号sel0、sel1、sel2分别接pin132、pin133、pin135,抢答指示灯led0、led1、led2、led3分别接pin136、pin13
4、7、pin138、pin140。五结果分析验证过程如下:1、分别按下start和clr键,游戏处于初始状态,此时8个数码管等间隔地显示4个5分,分数不闪烁。2、按下key0键,此时led0亮,第一个分数闪烁,再按其他按键,数码管及灯的状态不变。按下clr键,再同时按下几个按键,仍只有一个灯亮,且对应的分数闪烁,在按下clr键之前不管怎么按四个抢答键,数码管及灯的状态不变。3、不断按下key1键抢答并给其加分,一直加到9,发现分数加到9时不能再加了。4、不断按下key2键抢答并给其减分,一直减到0,发现分数减到0时再按key2抢答时没反应,led2不亮且对应的分数也不闪。而按其他键抢答仍然有效。
5、 通过对以上结果的分析发现,该抢答器具备了我们当初要求的功能,该抢答器总体上是比较成功的。六经验总结经过多次的修改和调试,实验总算成功了,在看到试验箱上的效果时,我内心非常激动,感觉当初的汗水总算没白费,多次失败的烦躁烟消云散,几近崩溃的意志也迅速放松下来。写这么一些代码就能实现你想要的功能,不得不让人感慨EDA的神奇以及立下学好EDA的誓言。当然,在品味成功的喜悦时,我们还要思考实验的得与失。以下是本次试验的心得:1、 在实验的开始阶段,我对所写的代码进行了波形仿真,发现波形仿真的结果是对的,而下到芯片去测试时,效果就不对了,经过多次修改,实验现象才逐步达到理想状态。因此,我觉得我们学EDA不能完全以来波形仿真,而应多在试验箱上测试,那里才是真正检验程序对错的地方。2、 在连接各个模块的时候我明白了一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只要让各个线宽互相匹配,才能得出正确的结果,否则,出现任何一点小的误差就会导致整个文件系统的编译出错。总之,EDA作为前沿学科,对于我们电子信息工程专业的学生来说,学习EDA对我们知识面以及运用知识的能力的提高有很大的帮助。相信自己学习的脚步不会停止! 感谢老师孜孜不倦的教诲。相信在EDA学习过程中自己思维能力、学习能力、思考方式的提高,定会在以后的学习过程中给我带来很大的帮助。