




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子一班28号王从维 EDA技术课程设计报告课程设计(论文)任务书 电气与电子工程 学院 电子信息工程 专业 2012- 1 班 一、课程设计(论文)题目 电子密码锁二 二、课程设计(论文)工作自 2015 年 1 月 5 日起至 2015 年 1 月 16 日止。三、课程设计(论文) 地点: 电子测控实验室 四、课程设计(论文)内容要求:课程设计任务:1.具有上锁键和开锁键,每次上锁之前要先按上锁键,然后自设密码(3位),开锁时要先按开锁键,然后输入上锁时设定的密码开锁;2.用led灯亮灭代表开锁和上锁;3.密码错误报警并锁定电子锁; 2)课程设计论文编写要求(1)课程设计任务及要求(2)总体电路设计(3)模块设计-给出各个模块的详细设计思路(4)管脚绑定-列表或截图给出管脚绑定情况(5)仿真及FPGA开发板调试-给出运行仿真波形截图,分析运行结果。(6)设计体会与小结-设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。(7)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)(8)报告按规定排版打印,要求装订平整,否则要求返工;(9)课设报告的装订顺序如下:封面-任务书-中文摘要-目录-正文-附录(代码及相关图片)(10)严禁抄袭,如有发现,按不及格处理。13)课程设计评分标准: (1)学习态度:10分;(2)系统设计:20分;(3)代码调试:20分;(4)回答问题:20分;(5)论文撰写:30分。4)课程设计进度安排进度安排:本设计持续10天,其中最后一天为答辩时间。第1-2天:讲解题目,准备参考资料,检查、调试实验软硬件,进入设计环境,开始设计方案和验证方案的准备;第3-4天:完成设计与验证方案,经指导老师验收后进入模块电路设计;第5-7天:完成模块电路设计,进行代码输入,并完成代码的初步仿真;第8-9天:代码功能仿真正确,约束设计,综合、下载,实现设计目标,并指导老师验收设计;整理设计资料,撰写报告、准备答辩;第10天:验收合格后进行答辩。学生签名:2015 年 1 月 5 日课程设计(论文)评审意见(1)学习态度(10分):优()、良()、中()、一般()、差(); (2)系统设计(20分):优( )、良()、中()、一般()、差(); (3)代码调试(20分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)论文撰写(30分):优()、良()、中()、一般()、差(); 评阅人: 职称: 2015 年 1 月 17 日1 中文摘要 作为最方便最经济的,当属应用编程方法实现电子密码锁。无论C语言还是c+,也无论是java还是VHDL,编程的思路大致相同。利用所学到的知识VHDL,在这我将设计一个具有较低成本的电子密码锁,本课设报告讲述了我整个设计过程及收获。本密码锁在上锁开关为1,开锁开关为0时进入上锁状态,此时上锁状态指示灯亮,在三个开关上输入三个初始密码,此时上锁成功指示灯亮,当上锁开关为0,开锁开关为1时进入开锁状态,此时开锁状态指示灯亮,在三个开关上输入三个开锁密码,如果这三个开锁密码与三个初始密码相同则开锁成功指示灯亮,并且蜂鸣器不报警,如果这三个开锁密码与三个初始密码不相同则开锁成功指示灯不亮,并且蜂鸣器报警。由于电路板所提供的开关个数只有八个,所以上锁用去三个,开锁用去三个,剩下两个用作使能端刚好用完,所以所有密码组合情况只有八种情况,如果开关个数能再多点,则可以设计密码更复杂的电子密码锁,但基本原理都是一样的,所以在此仅以三位的密码为例进行设计。摘要:电子密码锁 上锁状态 开锁状态 三位密码3 目录一、 课程设计任务及要求1二、 总体电路设计1三、 模块设计2四、 管脚绑定7五、 仿真及FPGA开发板调试8六、 设计体会与小结11七、 参考文献12八、 附录:13 11、 课程设计任务及要求 本次课程设计共有27个题目,其中有两个都是电子密码锁的设计,但两者的要求是不同的,这里讲的是第二个题目,可称作为“电子密码锁二”。电子密码锁二 1.具有上锁键和开锁键,每次上锁之前要先按上锁键,然后自设密码(3位),开锁时要先按开锁键,然后输入上锁时设定的密码开锁2.用led灯亮灭代表开锁和上锁3.密码错误报警并锁定电子锁2、 总体电路设计 本次电子密码锁的设计,开始时在与几个同学的讨论中和自己的综合考虑下,前前后后尝试着应用了多种方法,各个模块都尝试过,可谓是一波三折,比如在上锁模块最先是想调用数据存储器RAM或者ROM的,但是一来本次课设所要存储的数据很少,有点大材小用的感觉,二来它们还要编写初始文件(以.mif或者.hex结尾的初始文件),感觉都不是太理想,当然也尝试过几次,中间出了很多问题:初始文件不会写,时序分析比较发杂等等,后来又和同学讨论试图用电平触发型的寄存器,但不知怎么的在时序分析时控制它的输出总是会出现延迟,本来是在使能端enable=“10”时把输入付给输出,但它总在enable变化至下一个状态时才输出,这个问题询问了老师同学都没有解决,后来换成D触发器,所以这个问题现在也没搞懂。经过很多次尝试都不起作用后,后来终于想起所学过的D触发器也有记忆的功能,才得以解决这个问题。另外在比较模块,本来很简单的逻辑却在与同学的讨论中想复杂了,要用状态机,也尝试过很多次,出现了好多莫名其妙的问题,程序之类的都没错,可是编译时却总是报错,后来又与同学讨论,终于用最简单的逻辑解决了。 其实这个课设任务也不是太难,就是密码存储和比较两个功能,其他的都很简单,就是LED的控制和蜂鸣器的控制,所以本课设分成三个模块就可以搞定:第一个是存储模块即后面的上锁模块,像上面所说的用D触发器来实现,第二个是比较模块即开锁模块,一个if语句就能搞定,最后是密码输入正确与否以及蜂鸣器的控制,很简单,不在话下,具体框图如下所示:开锁密码输入LED和蜂鸣器正误判断的外电路显示比较结果控制LED和蜂鸣器初始密码输出密码存储(上锁)初始密码输入密码比较(开锁) 图2-1 设计流程3、 模块设计1.密码存储(上锁)模块 如前所述,本部分本来想用数据存储器RAM或ROM,或者是寄存器,但出现了很多问题,所以最后采用D触发器,下面简单介绍一下D触发器及其工作原理。(1).D触发器的VHDL描述 如上所述,D触发器只有在时钟上升沿到来时,并且使能端允许上升沿有效时,把输入付给输出,而且是把上升沿到来的前一个时刻的输入付给输出,假如不在时钟上升沿或者使能端不允许上升沿有效,则后来的输入不能付给输出,换句话说,输出不再随输入的变化而变化,从而达到数据存储的目的,当然这样的存储是要在不断电的情况下才能存储。 D触发器的VHDL描述语句为(假设使能端为enable,”10”有效): if clkevent and clk=1 then If enable=“10”then Dout=din; End if; end if;上述语句便是一个D触发器的VHDL描述,用不完整的if语句if.end if实现,注意到该语句只提到在满足上升沿并且上升沿有效时把输入din付给输出dout,并没说在其他情况下输入和输出间的关系,VHDL规定其他情况是保持状态,即在满足前述条件时原来输入给输出的是1,则在不满足时输出就是1,原来输入给输出的是0,则在不满足时输出就是0;正是由于这个规定,使D触发器具有了数据存储的功能。(2).模块说明 本模块正是利用了D触发器的上述优点,才得以解决燃眉之急。本模块例化的电路图和时序图如下 图3-1上锁模块的原理图 图3-2上锁模块的时序图 本模块还有一点值得注意的是,鉴于对满足课设要求和对所有模块的控制,采用了语句 Enable=shangsuo&kaisuo;即把两个使能端shangsuo和kaisuo并置起来付给enable,假如shangsuo和kaisuo分别为1和0,则enable就是“10”;以此类推。 如电路图所示,led1是上锁状态的指示灯,led2是上锁成功的指示灯,在默认密码“000”下led2不会亮,只有在其他值时才会亮。如时序图所示,只有在shangsuo=1并且kaisuo=0时即enable=“10”时,而且时钟上升沿时把输入值110付给输出,在此之前输出值一直是默认值000,之后保持110不变;当enable=“10”时led1=1,其他情况为0,实现了上锁状态的指示功能,当输出为110时led2为1,其他情况为0,实现了上锁成功的指示功能。 可见采用D触发器作为少量数据存储的器件是很有用的,而且这个时钟clk可以直接挂在任何频率上,只要有上升沿即可,不需分频进程。2.密码比较(开锁)模块 这个模块开始想用状态机,但出现了很多错误,经过慎重考虑,直接采用了一个if语句,所以变得相对简单,主要就是再输入一个三位数,与前个模块送来的三个初始密码进行比较看是否相同,相同则输出111,不同则输出000,供下一个模块检测用。它的模块电路图与时序图如下所示: 图3-3开锁模块的原理图 图3-4开锁模块的时序图3 如上电路图所示,本模块仍然由shangsuo和kaisuo两个控制端所控制,依旧把它们并置起来给enable,并且为了与密码存储模块所区分,本模块用enable=“01”有效来控制,dout0端口是前个模块的输出,本模块有效时它上面的三个位线电平不再变化,din1和dout1是本模块的输入和输出,输入作为开锁时的密码输入,也是三位,输出取值为000或者111,给下一个模块控制之用,led1在enable=“01”时点亮,指示开锁状态其他情况为0。 如时序图所示只有在shangsuo=0并且kaisuo=1即enable=“01”时才开启比较功能,如若dout0=din1则dout1=111,其他情况dout1都为默认值000,led1在shangsuo=0且kaisuo=1时为1,其他情况为0,这在逻辑上都是正确的。3.控制模块 本模块的功能主要是开锁成功后的电路现象呈现,本可以完全并入开锁模块,但课设有严格篇幅要求,所以还是保留了下来,以供充实课设篇幅长度。下面是它的电路图和时序图: 图3-5控制模块的原理图5 图3-6控制模块的时序图 在电路图中,可见仍然有shangsuo和kaisuo使能端,仍然用enable=“01”有效来控制,dout1是前个模块的输出端口,q是控制开锁成功的led灯的亮灭,当dout1=”111”时为1,其他情况为0,p是蜂鸣器的控制端口,与q的值相反,即控制开锁成功为0,其他情况下为1,注意是在enable=“01”时本模块有效,即在此情况下的其他情况下p=1。由时序图也可看出,在enable=“01”情况下p和q的相反的关系,在此情况下当dout1为111时q为1,其他情况为0,而当dout1为111时p为0,其他情况为1.所以逻辑上也是对的。4、 管脚绑定 在上述基础理论已经搭建好,各模块都已经分析仿真完成的情况下,把它们连接起来便形成了总的电路原理图,总电路图见第五个部分。下图是总电路图的管脚绑定图, 图4-1总电路管脚绑定图五仿真及FPGA开发板调试 下图是最终把各个模块连接好后的电路原理图,可见三个模块的使能端都是shangsuo和kaisuo两个端口,在统一的命令要求下易于管理和下达命令,各施其责,达到既定功能的实现。 在shangsuo上锁为1,kaisuo开锁开关为0时进入上锁状态,shangsuo模块起作用,后两个模块不起作用,此时shangsuozhuangtai上锁状态所控制的指示灯亮,在shangsuoshuru上锁输入输入三个初始密码,在shizhong时钟上升沿到来时把三个初始密码付给dout02.0,此时shangsuochenggong上锁成功指示灯亮,当shangsuo上锁开关为0,kaisuo开锁开关为1时进入开锁状态,shangsuo模块不起作用,后两个模块起作用,此时kaisuozhuangtai开锁状态所控制的指示灯亮,在kaisuoshuru开锁输入三个开关上输入三个开锁密码,如果这三个开锁密码与三个初始密码相同则kaisuochenggong开锁成功指示灯亮,并且fengmingqi蜂鸣器不报警,如果这三个开锁密码与三个初始密码不相同则开锁成功指示灯不亮,并且蜂鸣器报警。本部分的具体电路板功能已经向老师展示过,确定是对的。 图5-1总电路原理图5、 设计体会与小结 为期两周的EDA课程设计就这样结束了,其中一波三折,苦乐交织,不胜感叹。 在与同学的讨论中,得到了不同的指点,获得了很多灵感,这正是这一次课设最大的收获。而这种灵感的获得,重中之重正是自己要有足够的基础知识去支撑着,否则别人说的再多灵感也会插肩而过。虽然这只是一次课设,但无论课设还是科研还是编程,合作或者咨询或者讨论是度过难关的不二法门,也许自己煞费苦心也过不去的槛,别人一句话你就过去了,这是一种高端的过程,也是很难享受到的过程,特别是在他们的帮助下逻辑推理在心海中如汪洋大海一般狂扫过时,原来世间的一切都是可以这样的去实现。合作让我知晓取人之长补己之短的深刻道理,让我可以取纳不同人的意见综合起来起来为我所用,让我明白车到山前必有路!但在此过程中也要注意别人的想法固然可贵,也不能拘泥于他们,比如这次课设在数据存储部分,同学提议用RAM或者ROM,结果在尝试初始文件的编写时总是出问题,后来他们又建议用寄存器,我就一直用寄存器,结果搞了一天都没有成效,最后是冲破了他们的提议,自己选择了D触发器才得以越过去。而在数据比较模块,最开始他们提议的状态机个人当时也觉得很合理的,结果尝试了也失败了。最后一个同学说可以不用状态机,才想到了可以删繁就简直接实现的。 这次课设打开了我设计的大门,也是自己一个学期以来所学知识的全面应用。实践是检验真理的唯一标准,付诸实践时才发现我们所学到的知识是多么的皮毛和肤浅!老师曾经说过一句让我很受震撼的话“真正优秀的代码编写员,不在于用到了多少常人不常用的生僻的语句去实现所要满足的功能,而是要用最简短的代码去实现所要满足的功能”,这一次的课设,从删繁就简的角度去考虑,也是这一谆谆教导的具体实践! 也许以后自己会踏上编程的康庄大道,多年以后想起这次课程设计,又会有怎样的感慨呢? 2015年1月15日 于华东交大六参考文献番松,黄继业. EDA技术与VHDLM. 北京:清华大学出版社,2013年4月周金富.VHDL与EDA技术入门速成M.北京:人民邮电出版社,2009年6月杨健.EDA技术与VHDL基础M.北京:清华大学出版社,2013年3月雷伏容,李俊,尹霞.EDA技术与VHDL程序开发基础教程M.清华大学出版社,2012年5月七附录:上锁:RTL:library ieee;use ieee.std_logic_1164.all;entity shangsuo isport(din0:in std_logic_vector(2 downto 0);shangsuo,kaisuo,clk:in std_logic;led1,led2:out std_logic;dout0:out std_logic_vector(2 downto 0);end;architecture A of shangsuo issignal temp:std_logic_vector(2 downto 0):=000;signal enable:std_logic_vector(1 downto 0);beginenable=shangsuo&kaisuo;process(shangsuo,clk,kaisuo)-D触发器的VHDL描述beginif clkevent and clk=1 thenif enable=10 thentemp=din0;end if;elsenull;end if;end process;dout0=temp;led1=1 when enable=10 else0;-上锁状态指示灯led2din1,dout0=dout1,shangsuo=shangsuo1,kaisuo=kaisuo1,clk=clk,led1=led1,led2=led2);processbeginclk=0;wait for 10ms;clk=1;wait for 10ms;end process;shangsuo1=0,1after 10 ms,0after 30ms,1after 40ms,0after 50ms,1after 60ms,1after 70ms,0after 80ms;kaisuo1=0,1after 10ms,0after 20ms,1after 30ms,0after 40ms,1after 50ms,0after 60ms,0after 70ms;din1=100,011after 10ms,111after 20ms,101after 30ms,000after 40ms,110after 50ms,000after 60ms,110after 70ms,111after 80ms,101after 90ms;end; 图8-1上锁原理图 图8-2上锁时序图开锁:RTL:library ieee;use ieee.std_logic_1164.all; entity kaisuo is port(dout0:in std_logic_vector(2 downto 0); shangsuo,kaisuo: in std_logic; din1:in std_logic_vector(2 downto 0); led1: out std_logic; dout1:out std_logic_vector(2 downto 0); end; architecture A of kaisuo is signal temp:std_logic_vector(2 downto 0):=000; signal enable:std_logic_vector(1 downto 0); begin enable=shangsuo&kaisuo; process(dout0,din1,shangsuo,kaisuo)-两个输入的比较部分 begin if enable=01then if dout0=din1 then temp=111; else temp=000; end if;elsenull;end if; end process; dout1=temp; led1dout0,dout1=dout1,din1=din1,shangsuo=shangsuo1,kaisuo=kaisuo1,led1=led1); dout0=000,001after 5us,010after 10us,011after 15us,100after 20us,101after 25us,110after 30us,111after 35us; din1=111,110after 5us,101after 10us,011after 15us,011after 20us,1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电商行业劳务公司运营策略范文
- 大型工程项目债务担保协议样本
- 智能制造企业股权激励计划的成功因素
- 实习生的课堂管理经验总结
- 百年老字号中介合同
- 教育行业课程设计格式范文
- 跨国经营合同范本
- 有限责任公司股东协议书的关键条款
- 物流行业产品追溯流程
- 辅导课程借款协议
- 3D打印技术考试试卷及答案
- 《物业管理师》三级测试题及参考答案
- 人教版六年级上册数学百分数应用题专题分类复习(课件)
- 2025年中国人造晶体市场调查研究报告
- 不要慌太阳下山有月光二部合唱简谱
- 《早产儿护理查房》课件
- 中职高教版(2023)语文职业模块-第五单元:走近大国工匠(一)展示国家工程-了解工匠贡献【课件】
- 【MOOC期末】《中国文化传承与科技创新》(北京邮电大学)中国慕课期末网课答案
- 跨学科实践活动5基于碳中和理念设计低碳行动方案九年级化学人教版(2024)上册
- 计算与人工智能概论知到智慧树章节测试课后答案2024年秋湖南大学
- 隧道工程安全文明施工组织设计方案
评论
0/150
提交评论