欢迎来到天天文库
浏览记录
ID:18598401
大小:147.00 KB
页数:16页
时间:2018-09-19
《2011年数字逻辑课程设计报告new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、石家庄经济学院信息工程学院数字逻辑课程设计报告题目数字锁的设计姓名学号班号指导老师成绩2011年6月16目录1.功能描述32.开发工具选择33.设计方案34.模块描述45.VHDL实现56.调试仿真137.课程设计回顾总结15参考文献15附录1516一.功能描述数字锁即电子密码锁,锁内有若干密码,所用密码可由用户自己选定。如果输入代码与锁内密码一致,锁被打开;否则,应封闭开锁电路,并发出警告信号。设计的八位并行数码锁:(1)开锁代码为8位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯LT。否则,
2、系统进行错误状态,并发出警报信号。(2)开锁程序由设计者确定,并要求锁内给定的密码是可调的,且预置方便,保密性好。(3)数字锁的报警方式是点亮指示灯LF,并使喇叭鸣叫来报警,直到按下复位开关,警报才停止。此时,数字锁又自动进入等待下一次开锁的状态。二.开发工具选择(1)硬件描述语言电子密码锁的设计采用了功能强大的VHDL语言,它具有很强的行为能力描述,设计方法灵活,可以支持库和模块设计方法。(2)QuartusII软见开发工具本设计采用的软见开发工具是美国的Altera公司的QuartusII,它支持多种设计输入方法,包括原理图输入、文本输入。(3
3、)EDA实验开发系统本设计采用的EDA实验开发系统,主要用于提供可编程逻辑器件的下载电路及EDA实验开发的外围资源,供硬件验证用。三.设计方案本文所设计的电子密码锁,使用模块设计的思想:开始输入八位密码数字,然后进行选择,若选择开关S=0时,进行改密码并存入寄存器中;S-1时,进行开锁。若开锁成功,灯LT=1,开锁失败,灯LF=1且喇叭LB=1进行鸣笛。16流程图如下:四.模块描述1.模块一:简单选择输入密码后,进行选择,S=0就改密码,S=1就进行下一步开锁。2.模块二:寄存器16若进行改密码,则所改密码存入寄存器等待下一次比较;若进行开锁,则输
4、出存在寄存器中原有的密码。3.模块三:比较器若寄存器中存入的密码与进行开锁比较的密码相等,则开锁成功,指示灯LT=1;否则开锁失败,指示灯LF=1,喇叭LB=1进行鸣笛。4.模块四:复位开锁成功指示灯LT亮,按下复位键CLK=0,灯灭返回待选择状态。5.模块五:复位与门开锁失败指示灯LF亮,按下复位CLK=0,灯灭返回。6.模块六:与门开锁失败喇叭LB鸣笛,按下复位CLK=0,停止鸣笛。五:VHDL实现1.模块一:简单选择libraryieee;useieee.std_logic_1164.all;entityaddisport(D:instd_l
5、ogic_vector(7downto0);EN:instd_logic;Z0:outstd_logic_vector(7downto0);Z1:outstd_logic_vector(7downto0));end;architectureoneofaddis16beginprocess(D,EN)beginifEN='0'thenZ0<=D;Z1<=D;ENDIF;endprocess;endone;2.模块二:寄存器libraryieee;useieee.std_logic_1164.all;entityREG8Bisport(CLK:inst
6、d_logic;S:instd_logic;D:instd_logic_vector(7downto0);Q:outstd_logic_vector(7downto0));end;architectureONEofREG8BissignalM:std_logic_vector(7downto0):="00000000";beginprocess(S,CLK)16beginifCLK'eventandCLK='1'thencaseSiswhen'1'=>Q<=M;WHENOTHERS=>M<=D;endcase;endif;Q<=M;endproce
7、ss;end;2.模块三:比较器libraryieee;useieee.std_logic_1164.all;entitycompareisport(S:instd_logic;D1:instd_logic_vector(7downto0);D2:instd_logic_vector(7downto0);LT:outstd_logic;LF:outstd_logic;LB:outstd_logic);end;architectureONEofcompareis16beginprocess(S,D1)beginifS='0'thenLF<='0';L
8、B<='0';LT<='0';elsif(D1=D2)thenLT<='1';LF<='0';LB<='0';elseLF
此文档下载收益归作者所有