资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
.word格式,青 岛 农 业 大 学理学与信息科学学院电子设计自动化及专用集成电路课程设计报告 设 计 题 目 一、设计一个二人抢答器 二、密码锁 学生专业班级 学生姓名(学号) 指 导 教 师 完 成 时 间 实 习(设计)地点 信息楼121 年 11 月 1 日一、课程设计目的和任务 课程设计目的:本次课程设计是在学生学习完数字电路、模拟电路、电子设计自动化的相关课程之后进行的。通过对数字集成电路或模拟集成电路的模拟与仿真等,熟练使用相关软件设计具有较强功能的电路,提高实际动手,为将来设计大规模集成电路打下基础。课程设计任务:一、设计一个二人抢答器。要求:(1) 两人抢答,先抢有效,用发光二极管显示是否抢到答题权。(2) 每人两位计分显示,打错不加分,答对可加10、20、30分。(3) 每题结束后,裁判按复位,重新抢答。(4) 累积加分,裁判可随时清除。二、密码锁设计四位十进制密码锁,输入密码正确,绿灯亮,开锁;不正确,红灯亮,不能开锁。密码可由用户自行设置。二、分析与设计1、设计任务分析(1)二人抢答器用Verilog硬件描述语言设计抢答器,实现:1、二人通过按键抢答,最先按下按键的人抢答成功,此后其他人抢答无效。2、每次只有一人可获得抢答资格,一次抢答完后主持人通过复位按键复位,选手再从新抢答。3、有从新开始游戏按键,游戏从新开始时每位选手初始分为零分,答对可选择加10分、20分,30分,最高九十分。4、选手抢答成功时其对应的分数显示。(2)密码锁1、第一个数字控制键用来进行密码的输入2、第二个按键控制数字位数的移动及调用密码判断程序。当确认后如果显示数据与预置密码相同,则LED 亮;如不相等,则无反应。按下复位键,计数等均复位2、设计方案论证详细设计(1)抢答器的主要利用D触发器的反馈,当检测到第一个上升沿时将按键(未按下时接低电平)接入的与门锁住,以保证与门只有一个上升沿输出,从而实现“最先按下按键的人抢答成功,此后其他人抢答无效”。在与门输出上升沿的同时检测按键,以确定是哪位选手抢答,用寄存器存下抢答选手的信息,最后确定哪个led灯亮以及那位选手对应的分数闪烁。将各模块代码写好并测试后,在主模块中调用并分配引脚,引脚分配好后,从新编译、下载就可实验了。分别验证上述的各种功能,看是否达到预期的效果。(2)根据密码输入信号控制I/0 口的输出,第一个按键控制数字的递加,第二个按键控制数字位数的移动及调用密码判断程序。当确认后如果显示数据与预置密码相同,则LED 亮;如不相等,则无反应。按下复位键,计数等均复位。系统流程如下:3、详细设计(1)二人抢答器。顶层模块部分在在quartusII下的仿真原理图如下所示:抢答部分的仿真图:加分模块部分(对应snatch模块)在quartusII下的仿真原理图如下所示:数码管显示模块部分(对应snatch模块)在quartusII下的仿真原理图如下所示:(2)密码锁密码锁模块部分(对应snatch模块)在quartusII下的仿真原理图如下所示:4、源代码分析, 专业.专注 .(1)二人抢答器代码module top(reset,key,score,clr,led,opin);/顶层模块部分input reset;/开始抢答按钮input1:0 key;/双人抢答按键input2:0 score;/加分按钮input clr;/清零按钮output1:0 led;/显示灯output31:0 opin;/数码管引脚控制wire1:0 m;wire7:0 q;snatch snatch(reset,key,led,m);/调用抢答模块store store(score,clr,m,q);/调用加分模块deled deled(q,opin);/调用显示模块endmodulemodule snatch(reset,key,led,m);/抢答模块部分input reset;input1:0 key;output1:0 led;output1:0 m;reg q;reg1:0 s;wire out=key0|key1;wire clk=(!q)&out;assign m=s;always(posedge clk or posedge reset)/判断是否清零if(reset)beginq=1b0;endelse q=1b1;always(posedge clk)/当开始抢答时,判断是否有人抢答,并将抢答的选手记录下来case(key)2b01:s=2b01;2b10:s=2b10;default:s=2b?;endcaseassign led=s;/对应选手的灯亮endmodulemodule store(score,clr,s,q);/加分模块input clr;input2:0 score;input1:0 s;output7:0 q;reg7:0 q;wire clk=score0|score1|score2;/判断是否进行加分always(posedge clr or posedge clk)/判断是清零还是加分beginif(clr) q=8h00;elsebegincase(s)/判断那位选手加分2b01:begin if(q3:04h9)begin if(score=3b001)q3:0=q3:0+4b0001;/选手一加10分else if(score=3b010)q3:0=q3:0+4b0010; /选手一加20分else q3:0=q3:0+4b0011; /选手一加30分end end2b10:begin if(q7:44h9)begin if(score=2b001)q7:4=q7:4+4b0001; /选手二加10分else if(score=2b010)q7:4=q7:4+4b0010; /选手二加20分else q7:4=q7:4+4b0011; /选手二加30分end endendcaseendendendmodulemodule deled(pin,opin);/数码管显示模块input7:0 pin;output31:0 opin;reg31:0 opin;always(pin0 or pin1 or pin2 or pin3 or pin4 or pin5 or pin6 or pin7)/判断是否有加分显示部分begincase(pin3:0)/判断一号选手的分数4b0000:opin15:0=16h3f3f;/显示零分4b0001:opin15:0=16h063f; /显示十分4b0010:opin15:0=16h5b3f; /显示二十分4b0011:opin15:0=16h4f3f; /显示三十分4b0100:opin15:0=16h663f; /显示四十分4b0101:opin15:0=16h6d3f; /显示五十分4b0110:opin15:0=16h7d3f; /显示六十分4b0111:opin15:0=16h073f; /显示七十分4b1000:opin15:0=16h7f3f; /显示八十分4b1001:opin15:0=16h6f3f; /显示九十分endcasecase(pin7:4)/判断二号选手的分数4b0000:opin31:16=16h3f3f; 4b0001:opin31:16=16h063f;4b0010:opin31:16=16h5b3f;4b0011:opin31:16=16h4f3f;4b0100:opin31:16=16h663f;4b0101:opin31:16=16h6d3f;4b0110:opin31:16=16h7d3f;4b0111:opin31:16=16h073f;4b1000:opin31:16=16h7f3f;4b1001:opin31:16=16h6f3f;endcaseendendmodule(2)密码锁module KeyPress(sysclk,reset,keyin,data_out,LED,YN);input sysclk; /系统时钟reg clk; /分频1reg clk2; /分频2input reset; /复位input 2:0 keyin; /三位输入output 7:0 data_out; /八位数码管输入reg 7:0 data_out;output YN; /判断密码正确与否的Led灯reg YN;reg 2:0 keyAA 2:0 ; /输入缓冲,防抖reg 25:0 count; /分频1计数?reg 25:0 count2; /分频2计数reg 3:0 count3; /分频2计数2reg 7:0 countA; /数码管显示延迟计数reg 3:0 key; /输入计数器
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号