青岛农业大学电子设计自动化及专用集成电路课程设计报告.doc

上传人:laozhun 文档编号:4150759 上传时间:2023-04-07 格式:DOC 页数:17 大小:203.50KB
返回 下载 相关 举报
青岛农业大学电子设计自动化及专用集成电路课程设计报告.doc_第1页
第1页 / 共17页
青岛农业大学电子设计自动化及专用集成电路课程设计报告.doc_第2页
第2页 / 共17页
青岛农业大学电子设计自动化及专用集成电路课程设计报告.doc_第3页
第3页 / 共17页
青岛农业大学电子设计自动化及专用集成电路课程设计报告.doc_第4页
第4页 / 共17页
青岛农业大学电子设计自动化及专用集成电路课程设计报告.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《青岛农业大学电子设计自动化及专用集成电路课程设计报告.doc》由会员分享,可在线阅读,更多相关《青岛农业大学电子设计自动化及专用集成电路课程设计报告.doc(17页珍藏版)》请在三一办公上搜索。

1、青 岛 农 业 大 学理学与信息科学学院电子设计自动化及专用集成电路课程设计报告 设 计 题 目 一、设计一个二人抢答器 二、密码锁 学生专业班级 学生姓名(学号) 指 导 教 师 完 成 时 间 实 习(设计)地点 信息楼121 年 11 月 1 日一、课程设计目的和任务 课程设计目的:本次课程设计是在学生学习完数字电路、模拟电路、电子设计自动化的相关课程之后进行的。通过对数字集成电路或模拟集成电路的模拟与仿真等,熟练使用相关软件设计具有较强功能的电路,提高实际动手,为将来设计大规模集成电路打下基础。课程设计任务:一、设计一个二人抢答器。要求:(1) 两人抢答,先抢有效,用发光二极管显示是否

2、抢到答题权。(2) 每人两位计分显示,打错不加分,答对可加10、20、30分。(3) 每题结束后,裁判按复位,重新抢答。(4) 累积加分,裁判可随时清除。二、密码锁设计四位十进制密码锁,输入密码正确,绿灯亮,开锁;不正确,红灯亮,不能开锁。密码可由用户自行设置。二、分析与设计1、设计任务分析(1)二人抢答器用Verilog硬件描述语言设计抢答器,实现:1、二人通过按键抢答,最先按下按键的人抢答成功,此后其他人抢答无效。2、每次只有一人可获得抢答资格,一次抢答完后主持人通过复位按键复位,选手再从新抢答。3、有从新开始游戏按键,游戏从新开始时每位选手初始分为零分,答对可选择加10分、20分,30分

3、,最高九十分。4、选手抢答成功时其对应的分数显示。(2)密码锁1、第一个数字控制键用来进行密码的输入2、第二个按键控制数字位数的移动及调用密码判断程序。当确认后如果显示数据与预置密码相同,则LED 亮;如不相等,则无反应。按下复位键,计数等均复位2、设计方案论证详细设计(1)抢答器的主要利用D触发器的反馈,当检测到第一个上升沿时将按键(未按下时接低电平)接入的与门锁住,以保证与门只有一个上升沿输出,从而实现“最先按下按键的人抢答成功,此后其他人抢答无效”。在与门输出上升沿的同时检测按键,以确定是哪位选手抢答,用寄存器存下抢答选手的信息,最后确定哪个led灯亮以及那位选手对应的分数闪烁。将各模块

4、代码写好并测试后,在主模块中调用并分配引脚,引脚分配好后,从新编译、下载就可实验了。分别验证上述的各种功能,看是否达到预期的效果。(2)根据密码输入信号控制I/0 口的输出,第一个按键控制数字的递加,第二个按键控制数字位数的移动及调用密码判断程序。当确认后如果显示数据与预置密码相同,则LED 亮;如不相等,则无反应。按下复位键,计数等均复位。系统流程如下:3、详细设计(1)二人抢答器。顶层模块部分在在quartusII下的仿真原理图如下所示:抢答部分的仿真图:加分模块部分(对应snatch模块)在quartusII下的仿真原理图如下所示:数码管显示模块部分(对应snatch模块)在quartu

5、sII下的仿真原理图如下所示:(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);/调用抢答模

6、块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;

7、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)/判断是清零

8、还是加分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+

9、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

10、=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:o

11、pin31: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,key

12、in,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; /数码管显

13、示延迟计数reg 3:0 key; /输入计数器reg 3:0 num; /数字计算reg 3:0 numSAT3:0; /数字输出reg 3:0 movX; /Led灯选择计数和判断密码reg 3:0 LEDtem; /led灯选择缓冲output 3:0 LED; /led灯选择reg 3:0 LED; reg enterX; /未定义(本来用作可以自定密码的)/分频1always(posedge sysclk or negedge reset) if (!reset) begin count = 26B0; end else if (count=120000)begincount= 26

14、B0;clk = clk;end elsebegin count=count+26B1;end/分频2always(posedge sysclk or negedge reset) if (!reset) begin count2 = 26B0; count3 = 4B0000; end else if (count2=1200000) begin count2 = 26B0; count3 = count3+ 4B0001;if (count3=4B0011)beginclk2= clk2;count3 = 4B0000;end endelsebegin count2=count2+26B1

15、;end/输入always(posedge clk or negedge reset) if (!reset)beginkeyAA0 =3B111;keyAA1 =3B111;keyAA2 =3B111;endelsebeginkeyAA0 = keyin;keyAA1 = keyAA0;end/判断按键并且比较,赋值,主程序always(posedge clk2 or negedge reset)beginif (!reset)beginmovX= 4B0000;enterX= 1B0;numSAT0 = 4B0;numSAT0 = 4B0;numSAT0 = 4B0;numSAT0 = 4

16、B0;YN = 1B1;endelse if (keyin=keyAA1)beginif(keyin=3B110)key=4B0001;else if (keyin=3B101)key=4B0010;else if (keyin=3B011)key=4B0011;/按键1,数值递增,赋值if (key=4B0001)begin #20; num = num+4B1;if(movX=4B0000)numSAT0 = num;else if (movX=4B0001)numSAT1 = num;else if (movX=4B0010)numSAT2 = num;else if (movX=4B0

17、011)numSAT3 = num; if (num=4B1010)num = 4B0;key =4B0011;end/按键2,移位if (key=4B0010)begin #30 movX =movX+4B0001; if(movX=4B0100) begin if(numSAT0=1) if(numSAT1=2) if(numSAT2=3) if(numSAT3=4)YN =1B0;elseYN =1B1;elseYN =1B1;elseYN =1B1;elseYN =1B1;end if (movX=4B0101)movX = 4B0;key=4B0011;end/按键3,未定义if(k

18、ey=4B0011)beginenterX =1B0;endendend/根据数字,输出到数码管always(posedge clk or negedge reset)beginif (!reset)begindata_out = 8B0011_1111;endelsebegincountA= countA+8B1;if(countA=8B0000_0010)beginLED =4B1110;/高电平有效case(numSAT0)4B0000: data_out=8B0011_1111;/04B0001: data_out=8B0000_0110;/14B0010: data_out=8B01

19、01_1011;/24B0011: data_out=8B0100_1111;/34B0100: data_out=8B0110_0110;/44B0101: data_out=8B0110_1101;/54B0110: data_out=8B0111_1101;/64B0111: data_out=8B0000_0111;/74B1000: data_out=8B0111_1111;/84B1001: data_out=8B0110_1111;/9default: data_out=8B0011_1111;/0endcaseendelse if (countA=8B0000_0100)beg

20、inLED =4B1101;case(numSAT1)4B0000: data_out=8B0011_1111;/04B0001: data_out=8B0000_0110;/14B0010: data_out=8B0101_1011;/24B0011: data_out=8B0100_1111;/34B0100: data_out=8B0110_0110;/44B0101: data_out=8B0110_1101;/54B0110: data_out=8B0111_1101;/64B0111: data_out=8B0000_0111;/74B1000: data_out=8B0111_1

21、111;/84B1001: data_out=8B0110_1111;/9default: data_out=8B0011_1111;/0endcaseendelse if (countA=8B0000_0110)beginLED =4B1011;case(numSAT2)4B0000: data_out=8B0011_1111;/04B0001: data_out=8B0000_0110;/14B0010: data_out=8B0101_1011;/24B0011: data_out=8B0100_1111;/34B0100: data_out=8B0110_0110;/44B0101:

22、data_out=8B0110_1101;/54B0110: data_out=8B0111_1101;/64B0111: data_out=8B0000_0111;/74B1000: data_out=8B0111_1111;/84B1001: data_out=8B0110_1111;/9default: data_out=8B0011_1111;/0endcaseendelse if (countA=8B0000_1000)beginLED =4B0111;case(numSAT3)4B0000: data_out=8B0011_1111;/04B0001: data_out=8B000

23、0_0110;/14B0010: data_out=8B0101_1011;/24B0011: data_out=8B0100_1111;/34B0100: data_out=8B0110_0110;/44B0101: data_out=8B0110_1101;/54B0110: data_out=8B0111_1101;/64B0111: data_out=8B0000_0111;/74B1000: data_out=8B0111_1111;/84B1001: data_out=8B0110_1111;/9default: data_out=8B0011_1111;/0endcasecoun

24、tA =8B0;endendendendmodule三、系统实施仿真图如下:当裁判按下允许抢答按钮,之后选手一按下抢答按钮,之后选手一的灯亮,之后将内存器的q置1,选手二再按下按钮时已经失效,根据答题部分裁判加10分,如果裁判按下清零键之后选手分手显示零分,重新开始。四、总结与体会 经过这次课程设计我收获了很多,虽然在这次课程设计过程中我们遇到很多的麻烦,但是我们还是逐一解决了。各个模块调试没有没有错误,但放在一块调试的时候就出现了错误,还有就是定义变量的时候对后续应用时变量赋值有事出现问题。之后运行没有错误之后仿真却又出现错误,当时特别失望,没有办法只好再一个一个模块的找问题,最终在引脚定义

25、方面发现错误,经过改进成功完成了本次实验。通过本次课程设计我用到了有关数字电路、模拟电路、电子设计自动化的相关课程的知识。也对这些知识进一步的巩固。通过对数字集成电路或模拟集成电路的模拟与仿真,我熟练使用相关软件设计具有较强功能的电路,提高实际动手,为将来设计大规模集成电路打下基础。更锻炼了自己的动手能力。总之,EDA对于我们通信工程专业的学生来说非常重要,此次实习让我们将课本知识进行实际应用,对我们的能力提高有很大的帮助。 感谢老师孜孜不倦的教诲。相信在EDA学习过程中自己思维能力、学习能力、思考方式的提高,定会在以后的学习过程中给我带来很大的帮助。五、参考书目美 Samir Palnitkar Verilog HDL数字设计与综合(第二版) 电子工业出版社2012年4月课程设计成绩评定表学生姓名专业班级设计题目一、 设计一个二人抢答器二、 设计一个四位密码锁指导教师评语及意见:指导教师评阅成绩: 指导教师签字: 年 月 日注:此表装订在课程设计之后。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号