CPLD_FPGA设计及应用课程设计--数字密码锁.doc

上传人:公**** 文档编号:543648191 上传时间:2023-10-07 格式:DOC 页数:23 大小:9.76MB
返回 下载 相关 举报
CPLD_FPGA设计及应用课程设计--数字密码锁.doc_第1页
第1页 / 共23页
CPLD_FPGA设计及应用课程设计--数字密码锁.doc_第2页
第2页 / 共23页
CPLD_FPGA设计及应用课程设计--数字密码锁.doc_第3页
第3页 / 共23页
CPLD_FPGA设计及应用课程设计--数字密码锁.doc_第4页
第4页 / 共23页
CPLD_FPGA设计及应用课程设计--数字密码锁.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《CPLD_FPGA设计及应用课程设计--数字密码锁.doc》由会员分享,可在线阅读,更多相关《CPLD_FPGA设计及应用课程设计--数字密码锁.doc(23页珍藏版)》请在金锄头文库上搜索。

1、 CPLD/FPGA设计及应用课程设计课程设计报告题 目: 数字密码锁 院 (系): 信息科学与工程学院 专业班级: xxxxxxxx 学生姓名: xxxxx 学 号: xxxxxxxxxx 指导教师: xxxx 20 16年 4 月 11 日至20 16 年 5 月 6 日武昌首义学院制CPLD/FPGA设计及应用课程设计任务书一、设计题目数字密码锁。二、设计主要内容1. 掌握睿智FPGA开发板的基本构造和功能,并能设计一些简单的功能。2. 学会用VHDL语言来设计一些基本的逻辑模块。3. 了解时序逻辑的设计方式,并运用在密码锁的设计上。4. 精通数字编码,AD/DA方式在程序中的运作方式。

2、5. 状态机的使用,实现密码比对和储存读取功能。三、原始资料1. CPLD/FPGA设计及应用实验指导书 -马玲;2. CPLD/FPGA设计及应用马玲,彭敏;四、要求的设计成果1. 熟练运用QuartusII来设计逻辑时序的模块;2. 熟悉设计一个成果的过程;3. 更深一步的学习VHDL语言;4. 运用FPGA开发板设计数字密码锁,并具备消隐、设置密码和三次报错的功能。五、进程安排第1天:老师讲解课程设计目的、意义,布置课题任务,学生分组选题。第2天:学生根据所选课题自己下去通过网络或者其他途径寻找课题相关设计资料。第3-7天:在实验室或者自己的电脑上完成课题的程序以及相关的功能仿真通过。第

3、8天:在实验室结合EDA实验箱完成程序的调试以及功能的实现。第9天:通过老师的验收并回答老师的提问。第10天:下去完成课程设计报告。六、主要参考资料1. CPLD/FPGA设计及应用实验指导书 -马玲;2. CPLD/FPGA设计及应用马玲,彭敏;指导教师(签名): 2016 年 4 月 10 日目 录1课程设计目的52课程设计题目描述和要求 53课程设计报告内容53.1设计思路及原理 53.2设计需要解决的问题 53.3设计过程 64总结115.附录 123数字密码锁设计1. 课程设计目的l 设计一个四位十进制的密码锁。l 跟深一步的理解FPGA的用途,精通相应的开发板。2. 课程设计题目描

4、述和要求a) :密码锁串行输入四位十进制数字口令b) :输入口令全部正确即开锁c) :口令输入最大次数3次,要求在完全输入四位之后进行判断口令正确与否;输入3次之后还不能开锁,进入锁死状态d) 有相应的显示功能e) 可以对输入的口令消隐f) 开锁后能再次上锁3. 课程设计报告的内容1) 设计思路及原理i. 密码锁原理利用逻辑电路将外接输入的电信号转化为时序电路,经过内部设定的规则,当输入的信号经过处理后的时序逻辑达到内部设定的条件是开启某一种状态及时解锁状态,当没达到那种条件时始终保持一种或多种状态。ii. 密码锁的设计要求 设计密码锁的系统描述:数字密码锁在设定口令和开锁时要求输入四位十进制

5、数据,当输入状态开启时,输入正确显示一种状态,如果错误则显示错误次数加1,累计3次锁死状态并报警,如果不输入则一直保持原来状态;当检测到储存状态时,输入密码并存储改变原有的储存密码;当检测到消隐信号时,将不显示输入的数据。 2) 设计中需要解决的问题01. 时钟扫描读取输入的信号:过小,还没检测到就进入下次判断或者多记一次,过大,响应过慢,加上消斗模块后容易引起码间干扰不易读取信号02. 密码读取:读入按键开关信号要将信号处理编码送入显示和密码比较状态03. 密码比较:首先是要将存入的数字进行存储和逻辑排序,然后将输入的数据进行一一比对,并进行计数,正确与否输出状态信号04. 显示模块:将输入

6、模式、开锁状态、密码存储状态和锁死状态等的显示状态显示的编码05. 开发板引脚的配置等3) 设计过程l 密码锁的系统描述a) 输入输出端口定义:Sdin:输入十进制数信号按键(由于按键不够,将09数据以按键按下次数来编译)Lock:上锁按键Sec:解锁按键Clr:确认按键Set:密码存储按键Crack:开锁状态按键Clk:输入数字确定按键Dout:送现输出信号端Yn:选码信号S3锁死b) 系统状态转换图S2错误S1解锁 错误 累计次数=3 解锁 错误次数3S0初始S4开锁 密码正确设置 上锁c) 编码规则输入信号编码信号逻辑意义000011000000数字“0”000111111001数字“1

7、”001010100100数字“2”001110110000数字“3”010010011011数字“4”010110010010数字“5”011010000010数字“6”011111111000数字“7”100010000000数字“8”100110010000数字“9”101011101111解锁成功“A”101101111111解锁失败Others11111111其他状态01-11000000上锁状态10-00011000解锁状态l 时钟模块 由于输入时钟是50MHZ,一般扫描频率一般1000HZ左右,过50分频得到1M的频率后经过后续得到两路时钟来分别接入按键和比对模块。l 输入设置输

8、入模块,由于进行消斗处理用D触发器来消抖动,将输入的信号送入输出,时序时钟推迟一个周期。l 计数模块和按键累积计数将输入的信号进行A/D转换,根据确认按键的输入来计数时序,将输入的3个数字按顺序送入下个模块;计数模块达到3次输出alert报警。l 编码和处理模块将输入的十进制信号转化成断码,将时序逻辑进行编码来选码管。l 选码模块将时序信号进行编码。4) 设计得到的成果及现象l 得到的总体结构:l 引脚配置:l 实物图:1. 初始状态:2. 解锁状态:3. 上锁状态:4. 总结l 在这次课设中虽然遇到很多麻烦,刚刚开始用自己的方法编写了个简单的密码比对,但缺乏很多功能,而且在消斗方面很不完善,

9、容易属错误,现象出不来,后来网上搜了一个,但由于时钟没有完善,所以出错,后来看懂了也可以调,但各个模块的时钟不一,所以难以完善,后来看了指导书上才做出来。l 在VHDL语言上有了很大的完善和提高,对基本的设计都应该没问题了,但还需要努力。l 在设计过程中需要细心、冷静。5. 附页(程序)50分频:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity PIN1M isport(clkin:in std_logic; clkout:out std_logic);end entity PIN1M

10、;architecture bj of PIN1M isbeginprocess(clkin)variable cnttemp : INTEGER RANGE 0 To 49;begin if clkinevent and clkin=1 then if cnttemp=49 then cnttemp:=0; else if cnttemp25 then clkout=1; else clkout=0;end if;cnttemp:=cnttemp+1; end if; end if;end process;end bj;时钟分频:library ieee;use ieee.std_logic

11、_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity fdiv isport(clk:in std_logic; divout:out std_logic);end entity fdiv;architecture bj of fdiv issignal d:std_logic_vector(3 downto 0);signal o: std_logic;beginprocess(clk)begin if clkevent and clk=1 then if d=1001 then d=000

12、0;o=not o; else d=d+1; end if; divout=o; end if;end process;end bj;触发器:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY Dchu IS PORT (trig,sdin,lock,sec,clr,set,crack:IN STD_LOGIC; sdin1,lock1,sec1,clr1,set1,crack1:OUT STD_LOGIC); END; ARCHITECTURE FFQ OF Dchu IS SIGNAL Q1,Q2,Q3,Q4,Q5,Q6:STD_LOGIC; BEGIN PROCESS (Q1,Q2,Q3,Q4,Q5,Q6,trig) BEGIN IF trigEVENT AND trig=1 THEN Q1=sdin; Q2=lock; Q3=sec; Q4=clr; Q5

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

最新文档


当前位置:首页 > 资格认证/考试 > 银行/金融从业资格

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