EDA技术及应用实践》课程设计报告

上传人:夏** 文档编号:498301071 上传时间:2023-05-21 格式:DOC 页数:11 大小:37.50KB
返回 下载 相关 举报
EDA技术及应用实践》课程设计报告_第1页
第1页 / 共11页
EDA技术及应用实践》课程设计报告_第2页
第2页 / 共11页
EDA技术及应用实践》课程设计报告_第3页
第3页 / 共11页
EDA技术及应用实践》课程设计报告_第4页
第4页 / 共11页
EDA技术及应用实践》课程设计报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《EDA技术及应用实践》课程设计报告》由会员分享,可在线阅读,更多相关《EDA技术及应用实践》课程设计报告(11页珍藏版)》请在金锄头文库上搜索。

1、EDA技术及应用实践课程设计报告目录1电子密码锁整体设计.3 1.1 设计要求.31.2 设计思路.3 1.2.1输入模块.31.2.2控制模块.31.3设计结构总图.41.4整体设计的仿真结果.52、各个功能模块的设计.62.1按键输入模块.62.1.1按键输入与对应的编码输出之间的关系.62.1.2输入模块程序.7输入模块仿真结果.8生成元件.82.2系统控制模块.9 2.2.1控制模块程序.10 2.2.2控制模块仿真结果.13 2.2.3生成元件.133、下载与硬件测试.144、课程设计感想.145、参考文献.15电子密码锁设计随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其

2、的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。本次课程设计采用VHDL语言,利用Maxplus软件完成相应的电子密码锁功能设计。1、电子密码锁整体设计1.1设计要求:设计一个电子密码锁,在锁开的状态下输入密码,密码共4位,用数据开关K1K10分别代表数字1、2、9、0,输入的密码用数码管显示,最后输入的密码显示在最右边的数码管上,即每输入一位数,密码在数码管上的显示左移一位。可删除输入的数字,删除的是最后输入的数字,每删除一位,密码在数码管的显示右移一位,并在左边空出的位上补充“0”。用一位输出电平的状态代表锁的

3、开闭状态。为保证密码锁主人能打开密码锁,设置一个万能密码,在主人忘记密码时使用。1.2设计思路:总的来说,设计成2个模块,即输入模块,控制模块,最后显示管静态显示。输入模块:在输入模块,我是用时钟脉冲clk来控制什么时候输入一位密码,即每来一个上升沿,输入一个数,且输入的数只在上升沿到来时有效,在其他时候视为无效。如果clk信号为系统设置的,那么很难做到自己输入密码的频率能与clk信号同步,因此本设计决定将clk信号设为手动,即输入好一位密码后,让clk信号由0到1,则该密码输入成功。1.2.2控制模块:在密码控制模块中,主要实现以下功能:每输入一位数,数码管左移一位,设置删除信号back,每

4、按一次,删除最后输入的数字,密码在数码管显示右移一位,左边空处0。设置密码确认信号set,在四位密码输入完毕后,按下set,则密码被送到寄存器锁存,比较器模块得到数据A,同时密码显示电路清零。设置密码锁状态显示信号lock。Lock=0表示锁未开,lock=1表示锁开,设置关锁信号close,当密码送到寄存器模块锁存后,按下close,则lock=0。设置密码检验信号compare ,在lock=0下从数据开关输入四位开锁数据,按下compare,则开锁数码送寄存器锁存,数据比较模块得到数据B,若A=B,则触发器被置”1”。1.3设计结构总图:图1(G1模块表示输入模块,G2表示控制模块)1.

5、4整体设计的仿真结果如下图2、各个功能模块的设计2.1按键输入模块:2.1.1按键输入与对应的编码输出之间的关系如表2-1所示表2-1 按键编码按键输入编码输出对应的数字0000000001000110000000010001020000000100001130000001000010040000010000010150000100000011060001000000011170010000000100080100000000100191000000000000002.1.2输入模块程序:library ieee;use ieee.std_logic_1164.all; use ieee.st

6、d_logic_unsigned.all;entity g1 isport( data:in std_logic_vector(9 downto 0);clk:in std_logic; dout:out std_logic_vector(3 downto 0); end g1;architecture at of g1 is signal temp:std_logic_vector(3 downto 0);beginprocess(clk)beginif clkevent and clk=1 thencase data is when 0000000001=temptemptemptempt

7、emptemptemptemptemptemptemp=1111;end case;end if;end process;dout=temp; end at;2.1.3输入模块仿真结果:选择FILE中creat default symbol选项创建元件符号如下:2.2系统控制模块密码锁的控制电路是整个电路的控制中心。设置set为密码设置端口,compare为密码检验端口,close为关锁端口,back为删除密码端口,clk1时钟输入端口,db3.0为3位数字输入端口,sout15.0为16位输出端口,lock密码锁状态显示端口。在此电路中每输一位数,密码在数码管上左移一位。设置删除密码back

8、,每按下一次back,删除最后输入的数字,左边空处补0。设置密码确认信号set,当四位密码输入完毕,按下set,设置的密码被存储。设置密码锁状态信号lock, lock=0表示锁未开,lock=1表示锁开。设置关锁信号close,按下close,则锁关闭。设置密码检验信号compare,在lock=0下从数据开关输入四位开锁数字,按下compare,若数据等于设置的密码或万能密码,则lock=1。模块程序流程图如图:2.2.1控制部分程序:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; ent

9、ity g2 isport( set,compare,close,back,clk:in std_logic; db:in std_logic_vector(3 downto 0);dout:out std_logic_vector(15 downto 0); lock:out std_logic); end g2; architecture aa of g2 is signal ch:std_logic; beginprocess(clk,db) variable lock1:std_logic;variable mima:std_logic_vector(15 downto 0);vari

10、able temp1,temp2,temp3,temp4:std_logic_vector(3 downto 0);begin ch=not(db(0) and db(1) and db(2) and db(3); lock1:=0;if clkevent and clk=1 then if ch=1 then temp4:=temp3; temp3:=temp2; temp2:=temp1; temp1:=db;end if; if back=1 then temp1:=temp2; temp2:=temp3;temp3:=temp4;temp4:=0000; lock1:=0; end if; if set=1 then mima:=temp4&temp3&temp2&temp1; lock1:=0; end if; if compare=1 then

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号