基于VHDL密码锁设计.doc

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于VHDL密码锁设计

基于FPGA的数字密码器设计(黑体小三,1.5倍行距,段后1行,新起一页,居中) 4.1数字密码器总体设计(黑体四号,1.5倍行距,段前0.5行) 4.1.1 设计要求(黑体小四,1.5倍行距,段前0.5行) 1)密码预先在内部设置,可以设置任意位密码,这里采用6位十进制数字作为密码; 2)密码输入正确后,密码器将启动开启装置。这里密码器只接受前6位密码输入,并以按键音提示,多余位数的密码输入将不起作用; 3)允许密码输入错误的最大次数为三次, 密码错误次数超过三次则进入死锁状态, 并发出警报; 4)报警后,内部人员可以通过按键SETUP使密码器回到初始等待状态; 5)密码器具有外接键盘,可以用来输入密码和操作指令; 4.1.2设计思路(黑体小四,1.5倍行距,段前0.5行) 先对数字密码器进行顶层设计并写出相应的VHDL程序,然后将数字密码器划分为分频模块、消抖同步模块、使能电路模块、密码预置模块、编码模块、比较模块、计数器选择模块、数码管显示译码模块、指示电路模块、数码管扫描模块、误码模块和控制器模块12个部分,将各个模块一一实现。顶层设计中各个模块是作为元件来引用的,因此这里需要将各个模块设计成独立设计实体的具体形式,这样便可以在顶层设计来引用这些模块了。 4.1.3 数字密码器的基本原理(黑体小四,1.5倍行距,段前0.5行) 首先,密码器通过外接键盘输入数字密码,然后密码需要经过10线至4线编码器变成BCD码;接下来通过4位比较器与存储在系统中的预置密码进行比较,同时将输入的密码通过数码管扫描模块和数码管显示译码模块显示出来;最后将比较的结果DEP送到控制器模块中。 本次设计中的密码是串行输入的,每次分别与一个预置码比较。可见,6个十进制的密码分别有24个端口送入,因此需要使用一个数据选择器来进行选择。这里,数据选择器是一个4位的六选一数据选择器,它的两位选择信号是由一个模6的计数器来给出的,计数器的控制信号是由控制信号RESET和时钟信号CNP是由控制模块来提供的。外接键盘每送一个密码数字,计数器的计数值加1。如果计数器的数值计到6时,那么表示6个密码已经输入完毕。接下来计数器应向控制器发出反馈信号FULL,这表示控制器已经可以进入到启动状态。 计数器2用来记录输入密码错误次数,当密码输入错误时,密码器将发出警报,并提示用户还可以输入密码的次数。当密码输入错误的达到次数三次时,计数器2应向控制器反馈信号NOTC, 密码器将进入死锁状态, 并发出警报。这时只能通过内部按键SETUP使密码器回到初始状态。 ×××(宋体小四,1.25倍行距) 4.2数字密码器的实现××××(黑体四号,1.5倍行距,段前0.5行) 密码器的顶层设计由各个子模块构成。其中各个模块是以元件的形式给出的,首先必须进行元件的说明,然后进行元件的例化调用就可以构成顶层模块。顶层设计的模块图如图2-3所示。 图2-3 顶层设计模块图 由上图可以给出数字密码器的对外接口信号,即输入和输出信号。 数字按键输入信号A0~A9,用来进行密码的输入操作; 外部时钟信号CLK,用来作为内部操作时钟和驱动蜂鸣器; 按键输入信号READY,用来设置密码器的准备操作状态; 按键输入信号WAIT_T,用来建立密码器的等待状态; 按键输入信号SETUP,用来恢复密码器的等待状态; 按键输入信号OPEN_T, 用来设置密码器进入到启动状态; 绿灯指示驱动信号LED_G,驱动绿灯显示; 红灯指示驱动信号LED_R,驱动红灯显示; 蜂鸣器驱动信号ALERT,驱动报警蜂鸣器; 10、数码管显示译码输出A,B,C,D,E,F,G。 ×××××××(宋体小四,1.25倍行距) 4.2.1 分频模块设计(黑体小四,1.5倍行距,段前0.5行) 1、分频模块的输入、输出 图2-4 分频模块图 分频模块的模块图如图2-4所示,可以定义输入、输出信号如下: CLK: 系统输入时钟,300Hz。 CLK_DIV1、CLK_DIV2: 分频输出时钟信号,分别为10Hz、1Hz。 2、模块描述 在数字密码器中,它的外部时钟信号CLK是由外部晶振来提供的,时钟频率为300Hz。对CLK进行分频输出两路时钟CLK_DIV1 和CLK_DIV2,其中CLK_DIV1作为按键检测消抖时钟和控制器模块时钟,而CLK_DIV2作为密码错误次数计数模块的时钟。CLK时钟信号还作为蜂鸣器启动信号和LED显示扫描时钟信号。CLK_DIV1设为CLK的30分频,为10Hz。再将CLK_DIV1进行10分频可以得到CLK_DIV2时钟,为1HZ。因此,分频模块可以采用10分频和30分频电路来构成,如图2-5所示。 3、VHDL设计 由图2-5可知,分频模块内部含有两个单元电路:30分频电路和10分频

文档评论(0)

ranfand + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档