基于QuartusII的密码锁筹划与设计毕业论文(设计) .doc_第1页
基于QuartusII的密码锁筹划与设计毕业论文(设计) .doc_第2页
基于QuartusII的密码锁筹划与设计毕业论文(设计) .doc_第3页
基于QuartusII的密码锁筹划与设计毕业论文(设计) .doc_第4页
基于QuartusII的密码锁筹划与设计毕业论文(设计) .doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

13届 分 类 号: 单位代码:10452 毕 业 论 文 ( 设 计 ) 基于 quartusii的密码锁筹划与设计 临沂大学 2013 届本科毕业论文(设计) 摘 要 本系统是以 eda作为开发工具,vhdl 语言为硬件描述语言,quartus ii 作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现 了设计目标.本系统采用有限状态机进行设计,目的在于实现八位二进制, 串行输入数字密码锁,并具有开锁与错误提示.开锁代码为八位二进制数, 当输入代码的位数和位值与预先设置的密码一致时方可开锁,并使数码管 显示由“b”变为“a” .当输入密码不正确时,计数器会进行一次计数. 关键词:eda;quartusii;密码锁;vhdl 临沂大学 2013 届本科毕业论文(设计) abstract this system is by eda took the development kit, the vhdl language for the hardware description language, quartus ii took the procedure movement platform, develops the procedure through the debugging movement, the profile simulation confirmation, has achieved the design goal initially. this system uses the limited state machine to carry on the design, the goal lies in realizes eight binary systems, the serial input numerical ciphers lock, and has the unblanking and the wrong prompt.the unblanking code is eight binary numbers, when the input code figure and the position value with establish in advance password consistent when only then unlocks, and causes the nixietube to demonstrate becomes “a” by “b”.when input password not correct, the counter can carry on a counting. key words: eda, quartusii, coded lock , vhdl 临沂大学 2013 届本科毕业论文(设计) 临沂大学 2013 届本科毕业论文(设计) 1 目 录 1 引言 .2 2 软件开发环境 .2 2.1 fpga简介 .2 2.2 quartusii设计平台 .6 3 数字密码锁的设计 .8 3.1系统设计 8 3.2单元电路设计 9 3.3软件设计 .11 4 系统测试 12 5 结论 14 附 录 15 参 考 文 献 .19 致 谢 20 临沂大学 2013 届本科毕业论文(设计) 2 1 引言 电子设计自动化,简称 eda(electronic design automation) 技术作 为现代电子设计技术的核心,他一来功能强大的计算机,在 eda工具软件平 台上,对以硬件描述语言 hdl (hardware description language) 为系统 逻辑描述手段完成的设计文件,自动的完成逻辑编译、逻辑化简、逻辑综 合、结构综合,以及逻辑优化和仿真测试,直至实现既定的电子线路系统功 能. 在现代高新电子产品的设计和生产中,微电子技术和现代电子设计技 术实现互促进、相互推动又相互制约的两个技术环节.前者代表了物理层 在广度和深度上硬件电路实现的发展,后者则反映了现代先进的电子理论、 电子技术、仿真技术、设计工艺和设计技术与最新的计算机软件技术有机 的融合和升华.因此,严格地说,eda 技术应该是这两者的结合,是这两个技 术领域共同孕育的奇葩. 全球提供 eda软件工具的厂商有近百家之多,大体分为两类:一类是 专业软件间公司开发的 eda开发工具,独立与半导体器件厂商;另一类是 半导体器件厂商为销售本公司可编程逻辑器件 pld产品开发的 eda软件工 具,只能开发该公司的 pld器件.这里介绍的 quartus ii开发工具属于后 者,是由 altera公司开发的 eda软件工具. quartus ii支持 altera公司的各系列可编程逻辑器件的开发,包括: acex系列、apex 系列、等等. 2软件开发环境 2.1 fpga简介 2.1.1 fpga概述 fpga是现场可编程门阵列(field programmable gate array)的简称, 与之相应的 cpld是复杂可编程逻辑器件(complex programmable logic device)的简称,两者的功能基本相同,只是实现原理略有不同,有时可以忽 略这两者的区别,统称为可编程逻辑器件 cpld/fpga.cpld/fpga几乎能完 成任何数字器件的功能,上至高性能 cpu,下至简单的 74电路.它如同一张 白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自 由的设计一个数字系统.通过软件仿真可以事先验证设计的正确性,在 pcb 完成以后,利用 cpld/fpga的在线修改功能,随时修改设计而不必改动硬件 临沂大学 2013 届本科毕业论文(设计) 3 电路.使用 cpld/fpga开发数字电路,可以大大缩短设计时间,减少 pcb面 积,提高系统的可靠性.这些优点使得 cpld/fpga技术在 20世纪 90年代以 后得到飞速的发展,同时也大大推动了 eda软件和硬件描述语言 vhdl的进 步. fpga采用了逻辑单元阵列 lca(logic cell array)这样一个概念, 内部包括可配置逻辑模块 clb(configurable logic block) 、输出输入模 块 iob(input output block)和内部连线(interconnect)三个部分. 2.1.2 fpga基本结构 fpga具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并 由可编程的互连资源连接这些逻辑功能块来实现不同的设计. fpga一般由 3种可编程电路和一个用于存放编程数据的静态存储器 sram组成.这 3种可编程电路是:可编程逻辑模块(clb-configurable logic block) 、输入/输出模块(iob-i/o block)和互连资源(ir interconnect resource).可编程逻辑模块 clb是实现逻辑功能的基本单 元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模 块(iob)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片 的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关, 它们将各个 clb之间或 clb、iob 之间以及 iob之间连接起来,构成特定功 能的电路.fpga 的结构如图 1 图1 fpga基本结构 1. clb是fpga的主要组成部分.它主要由逻辑函数发生器、触发器、 数据选择器等电路组成.clb中3个逻辑函数发生器分别是g、f和h,相应的 输出是g 、f和h.g有4个输入变量g1、g2、g3和g4;f也有4个输入变量 可编程开 关矩 输入输出 模块 互连资 源 clb clb clb clb clb clb b clb clb clb clb 矩 clb clb clb 块 clb clb clb b clb clb clbclb clb clb 临沂大学 2013 届本科毕业论文(设计) 4 f1、f2、f3和f4.这两个函数发生器是完全独立的,均可以实现4输入变量 的任意组合逻辑函数.逻辑函数发生器h有3个输入信号;前两个是函数发生 器的输出g和f,而另一个输入信号是来自信号变换电路的输出h1.这个 函数发生器能实现3输入变量的各种组合函数.这3个函数发生器结合起来, 可实现多达9变量的逻辑函数. clb中有许多不同规格的数据选择器(四选一、二选一等),通过对cl b内部数据选择器的编程,逻辑函数发生器g、f和h的输出可以连接到clb输 出端x或y,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能 信号以及输出信号.这些数据选择器的地址控制信号均由编程信息提供,从 而实现所需的电路结构. clb中的逻辑函数发生器f和g均为查找表结构,其工作原理类似于rom. f和g的输入等效于rom的地址码,通过查找rom中的地址表可以得到相应的 组合逻辑函数输出.另外,逻辑函数发生器f和g还可以作为器件内高速ram 或小的可读写存储器使用,它由信号变换电路控制. 2. 输入/输出模块iob.iob提供了器件引脚和内部逻辑阵列之间的连 接.它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组 成. 每个iob控制一个引脚,它们可被配置为输入、输出或双向i/o功能.当 iob控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器.缓 冲器的输出分成两路:一路可以直接送到mux,另一路延时几个纳秒(或者 没有延时)后送到输入通路d触发器,再送到数据选择器.通过编程给数据 选择器不同的控制信息,确定送至clb阵列的i1和i2是来自输入缓冲器,还 是来自触发器. 当iob控制的引脚被定义为输出时,clb阵列的输出信号out也可以有两 条传输途径:一条是直接经mux送至输出缓冲器,另一条是先存入输出通路d 触发器,再送至输出缓冲器. iob输出端配有两只mos管,它们的栅极均可编程,使mos管导通或截止, 分别经上拉电阻接通vcc、地线或者不接通,用以改善输出波形和负载能力. 3. 可编程互连资源ir.可编程互连资源ir可以将fpga内部的clb和clb 之间、clb和iob之间连接起来,构成各种具有复杂功能的系统.ir主要由许 多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电 路的连接. 2.1.3 fpga系统设计流程 临沂大学 2013 届本科毕业论文(设计) 5 一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为 几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具 体实现,这就是自顶向下的设计方法.目前这种高层次的设计方法已被广泛 采用.高层次设计只是定义系统的行为特征,因此还可以在厂家综合库的支 持下,利用综合优化工具将高层次描述转换为针对某种工艺优化的网络表, 使工艺转化变得轻而易举.cpld和fpga的主要区别是他们的系统结构.cpld 是一个有点限制性的结构.这个结构由一个或者多个可编辑的结果之和的 逻辑组列和一些相对少量的锁定的寄存器.这样的结果是缺乏编辑灵活性, 但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点.cpld 和fpga另外一个区别是大多数的fpga含有高层次的内置模块(比如加法器 和乘法器)和内置的记忆体.cpld/fpga系统设计的工作流程如图2所示. 系统划分 编译器 代码级功能仿真 综合器 适配前时序仿真 适配器 cpld/fpga 实现 适配后仿真模型 适配后时序仿真 适配报告 asic 实现 vhdl 代码或图形方式输入 仿真综合库 器件编程文件 图2 cpld/fpga系统设计流程 流程说明: 临沂大学 2013 届本科毕业论文(设计) 6 1.工程师按照“自顶向下”的设计方法进行系统划分. 2.输入vhdl代码,这是设计中最为普遍的输入方式.此外,还可以采用 图形输入方式,这种输入方式具有直观、容易理解的优点. 3.将以上的设计输入编译成标准的vhdl文件. 4.进行代码级的功能仿真,主要是检验系统功能设计的正确性.这一步 骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可 以大大减少设计重复的次数和时间.一般情况下,这一仿真步骤可略去. 5.利用综合器对vhdl源代码进行综合优化处理,生成门级描述的网络 表文件,这是将高层次描述转化为硬件电路的关键步骤.综合优化是针对as ic芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综 合库的支持下才能完成. 6.利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具 体器件的硬件特性,是较为粗略的.一般的设计,也可略去这一步骤. 7.利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻 辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线. 8.在适配完成后,产生多项设计结果:a.适配报告,包括芯片内部资源 利用情况,设计的布尔方程描述情况等;b.适配后的仿真模型;c.器件编程 文件.根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器 件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来 芯片的实际性能.如果仿真结果达不到设计要求,就修改vhdl源代码或选择 不同速度和品质的器件,直至满足设计要求. 最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标 芯片cpld/fpga中. 2.1.4 fpga开发编程原理 硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳 的实现方案,画出系统框图,选择芯片,设计pcb并最终形成样机. cpld/fpga软件设计可分为两大块:编程语言和编程工具.编程语言主 要是vhdl硬件描述语言;编程工具主要是两大厂家altera和xilinx的集成 综合eda软件quartusii以及第三方工具.具体的设计输入方式有以下几种: 1.vhdl语言.vhdl既可以描述底层设计,也可以描述顶层的设计,但它 不容易做到较高的工作速度和芯片利用率.用这种方式描述的项目最后所 能达到的性能与设计人员的水平、经验以及综合软件有很大的关系. 2.图形方式.可以分为电路原理图描述,状态机描述和波形描述3种形 临沂大学 2013 届本科毕业论文(设计) 7 式.电路原理图方式描述比较直观和高效,对综合软件的要求不高.一般大 都使用成熟的ip核和中小规模集成电路所搭成的现成电路,整体放到一片 可编程逻辑器件的内部去,其硬件工作速度和芯片利用率很高,但是当项目 很大时,该方法就显得有些繁琐;状态机描述主要用来设计基于状态机思想 的时序电路.在图形的方式下定义好各个工作状态,然后在各个状态上输入 转换条件以及相应的输入输出,最后生成hdl语言描述,送去综合软件综合 到可编程逻辑器件的内部.由于状态机到hdl语言有一种标准的对应描述方 式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于 综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入 与输出的波形关系. 2.2 quartusii设计平台 2.2.1软件开发环境及基本流程 本设计所用软件主要是quartusii,在此对它做一些介绍. quartusii是altera提供的fpga/cpld开发集成环境,altera是世界上 最大的可编程逻辑器件供应商之一.quartusii提供了一种与结构无关的设 计环境,使设计者能方便地进行设计输入、快速处理和器件编程. altera公司的quartusii 开发工具人机界面友好、易于使用、性能优 良,并自带编译、仿真功能.quartusii软件完全支持vhdl设计流程,其内部 嵌有vhdl逻辑综合器.quartusii 也可以利用第三方的综合工具,如fpga c ompiler ii,并能直接调用这些工具.同样,quartusii具备仿真功能,同时 也支持第三方的仿真工具.此外,quartusii与matlab和dsp builder结合, 可以进行基于fpga的dsp系统开发,是dsp硬件系统实现的关键eda技术. quartusii包括模块化的编译器.编译器包括的功能模块有分析/综合 器、适配器、装配器、时序分析器、设计辅助模块、eda网表文件生成器 、编辑数据接口等.可以通过选择start compilation来运行所有的编译器 模块,也可以通过选择start单独运行各个模块.在compiler tool窗口中, 可以打开该模块的设置文件或报告文件,或者打开其它相关窗口. 在设计输入之后,quartusii的编译器将给出设计输入的错误报告.qua rtusii拥有性能良好的设计错误定位器,用于确定文本或图形设计中的错 误.在进行编译后,可对设计进行时序仿真.在仿真前,需要利用波形编辑器 编辑一个波形激励文件.编译和仿真检测无误后,便可将下载信息通过quar tusii提供的编程器下载入目标器件中了. 2.2.2软件的具体设计流程 临沂大学 2013 届本科毕业论文(设计) 8 1.建立工作库文件夹和编辑设计文件 首先建立工作库目录,以便存储工程项目设计文件. 任何一项设计都是一项工程(project),都必须首先为此工程建立一 个放置与此工程相关的所有设计文件的文件夹.此文件夹将被eda软件默认 为工作库.一般来说,不同的设计项目最好放在不同的文件夹中,而同一工 程的所有文件都必须放在同一文件夹中. 2.创建工程 使用new project wizard可以为工程指定工作目录、分配工程名称以 及指定最高层设计实体的名称,还可以指定要在工程中使用的设计文件、 其它源文件、用户库和eda工具,以及目标器件系列和具体器件等. 3.编译前设置 在对工程进行编译处理前,必须做好必要的设置.步骤如下: a.选择fpga目标芯片 b.选择配置器件的工作方式 c.选择配置器件和编程方式 d.选择输出设置 e.选择目标器件闲置引脚的状态 4.全程编译 quartusii编译器是由一系列处理模块构成的,这些模块负责对设计项 目的检错、逻辑综合、结构综合、输出结果的编辑配置,以及时序分析.在 这一过程中,将设计项目适配到fpga目标器中,同时产生多种用途的输出文 件.编译器首先检查出工程设计文件中可能的错误信息,供设计者排除.然 后产生一个结构化的以网表文件表达的电路原理图文件. 如果编译成功,可以见到工程管理窗口左上角显示了工程(例如工程d iv)的层次结构和其中结构模块耗用的逻辑宏单元数;在此栏下是编译处 理流程,包括数据网表建立、逻辑综合、适配、配置文件装配和时序分析 等;最下栏是编译处理信息;中栏是编译报告项目选择菜单,单击其中各项 可以详细了解编译与分析结果. 5.时序和功能仿真 工程编译通过后,必须建立vwf文件对其功能和时序性质进行仿真测试,以 了解设计结果是否满足原设计要求.可以自己设置输入信号,再由功能仿真 出输出信号.这能在软件上实现硬件的功能,大大提高了硬件电路调试成功 率. 临沂大学 2013 届本科毕业论文(设计) 9 6.编程下载 编程下载指将编程数据放到具体的可编程器件中去.如果以上所有的 过程都没有发现问题,即满足设计要求,就可以将适配器产生的配置/下载 文件通过fpga编程器或下载电缆载入目标芯片fpga中.对fpga来说就是将 数据文件“配置”到fpga中去. 3 数字密码锁的设计 数字密码锁有两类:一类是并行接收数据,称为并行锁;一类是串行 接受数据,称为串行锁.如果输入代码与锁内密码一致,锁被打开;否则,应 封闭开锁电路. 3.1系统设计 本系统的设计要求是八位二进制,串行输入数字密码锁,并具有开锁与 错误提示. 当输入密码与预设置密码相匹配时,显示开锁提示“a”,当输入密码有误 时,错误次数显示自动加 1. 利用有限状态机对系统进行设计.本设计分为三个模块:其一,密码预 置模块,可自行设置 8位二进制的密码.其二,密码检测模块,检测输入的密 码与预先设置的密码是否一致.其三,计数模块,当输入密码与设置密码不 一致时,计数器计数一次.本设计程序简单,利用有限状态机其优点在于克 服了纯硬件数字系统顺序方式控制灵活的缺点,容易构成性能良好的同步 时序逻辑模块,而且单进程 moore状态机比较容易构成能避免出现毛刺现 象的状态机,易实现.流程图如图 4. 临沂大学 2013 届本科毕业论文(设计) 10 图 4 密码锁流程图 3.2单元电路设计 密码预置模块 shezhimima:该模块有 3个输入端,1 个输出端.din1 为 预置密码输入端,clr1 为清零端,clk1 为串行脉冲输入端.当 clr1在低电 平的状态下,din1 端可设置密码,给 ckl1输入八下计数脉冲即可完成密码 的预置.预设置的密码将会通过 dout输出到序列检测模块.元件图如图 5. clk clr din70 dout70 shezhimima inst9 图 5 设置密码模块 密码检测模块 schk:该模块有 4个输入端,1 个输出端.din2 为待检测 临沂大学 2013 届本科毕业论文(设计) 11 密码输入端,d_in 为已预置的密码输入端,clr2 为清零端,clk2 为串行脉冲 输入端.当 clr2在低电平的状态下,在 clk2输入串行输入脉冲,当给 clk2 输入八下计数脉冲时,即八位密码全部验证,如果密码正确,则在 ab输出口 输出 a.元件图如图 6. din clk clr d_in70 w ab30 schk inst1 图 6 密码检测模块 计数模块 cnt4:当输入密码错误时,1 个输入端,1 个输出端,会产生 一个计数脉冲进行一次计数,输出端接七段数码管用以显示.该模块不可清 零,以保证密码输入错误次数的正确累加.错误计数模块元件图如图 7. clk q30 cnt4 inst 图 7 计数模块 整体电路图及输入输出口连接如图 8. 临沂大学 2013 届本科毕业论文(设计) 12 pin_33 vcc din1 input pin_32 vcc clk1 input pin_11 vcc clr input pin_34 vcc clk2 input pin_38 pin_10 pin_7 pin_6 pin_5 pin_4 pin_3 pin_2 pin_1 vccdin270 input pin_106 pin_105 pin_103 pin_99 ab30output pin_98 pin_97 pin_96 pin_85 count30outputclk q30 cnt4 inst din clk clr d_in70 w ab30 schk inst1 clk clr din70 dout70 shezhimima inst9 图 8 系统原理图 3.3软件设计 altera的 quartus ii可编程逻辑软件属于第四代 pld开发平台该平 台支持一个工作组环境下的设计要求,其中包括支持基于 internet的协 作设计.quartus 平台与 cadence、exemplarlogic、 mentorgraphics、synopsys 和 synplicity等 eda供应商的开发工具相兼 容.改进了软件的 logiclock模块设计功能,增添 了 fastfit编译选项, 推进了网络编辑性能,而且提升了调试能力.系统设计者现在能够用 quartus ii软件评估 hardcopy stratix器件的性能和功耗,相应地进行最 大吞吐量设计. 本系统采用 vhdl语言编写,用 quartus ii软件进行仿真分析.程序见 附录 1.仿真分析目标芯片型号 cyclone. 图 9是密码预置模块 abc的仿真波形,有图可见当预置密码输入端串 行输入 8为 2进制密码后 dout会将密码输出. 临沂大学 2013 届本科毕业论文(设计) 13 图 9 密码预置模块仿真波形 图 10是密码检测模块的仿真波形,右图可见当待测密码端输入的密码 与预置的密码一致是 ab端会由 b变为 a. . 图 10 密码检测模块仿真波形 图 11是整个系统的仿真波形.输入密码与预置密码一致时 ab由 b跳为 a. 图 11 系统仿真波形 临沂大学 2013 届本科毕业论文(设计) 14 4系统测试 本系统采用 gw48系列 sopc/eda实验开发系统(gw48-pk2/ck)对系 统进行硬件仿真分析及测试,引脚锁定采用模式五.通过该锁定图,在实验 箱上对设计进行操作及验证,验证结果与预计相符. 硬件验证:实验箱编号 gw48pk2 ;目标芯片型号:cyclone.引脚设置如 图 12. 图 12 引脚锁定表 在试验箱进行检测时应选择模式 8,clk接键 6,对应 pio9,clr接键 7,对 应 pio11,din是串行数据输入口接 pio10,ab30数据比较结果,由数码 管 8显示,对应 pio47-pio44.显示”b”表示密码有错误,显示”a”表示, 密码正确键 2/键 1设置 8位待检测密码. 首先按键 7清零,随着连续按键 6,显示于发光管 d8-d1的设置好的数 据会左移,每一次时钟脉冲,向 pio10串入一位.电路设置如图 10. 临沂大学 2013 届本科毕业论文(设计) 15 图 13 试验箱设置图 临沂大学 2013 届本科毕业论文(设计) 16 5结论 本次密码锁采用 eda作为开发工具采用自顶向下的设计思想,利用 vhdl硬件描述语言和图形输入相结合的编程方式,并通过可编程逻辑器件 fpga进行硬件设计,用 led数码管静态显示计时结果. 通过硬件仿真分析及测试,结果与预计相符.从结果中得出本设计的 正确性,其结构简单易实现,突出了 moore状态机在应用中的优势.设计还 可以增加一个计数电路,当输入的密码不正确时统计错误次数. 通过本次设计,我学到了很多关于 eda的相关知识,充分理解了状态 机的原理.从接触 eda,进行相关学习到选择设计题目,海量收集资料,工程 初步建立,程序的调制,无数次的修改,仿真,从错误中加深对相关知识的理 解,从不断的失败到最后的成功,几经悲喜,多少次因为有一个可行的想法 兴奋的寝食俱忘,工程虽然简单,实现的功能亦不多,但每一句程序,每一个 模块,都是经过多次的调试运行最后终于成功. 临沂大学 2013 届本科毕业论文(设计) 17 附 录 附录 1: (1)密码预置模块 library ieee ; use ieee.std_logic_1164.all; entity shezhimima is port (din,clk,clr :in std_logic; dout : out std_logic_vector(7 downto 0); end shezhimima; architecture behave of shezhimima is type st_type is(st0,st1,st2,st3,st4,st5,st6,st7,st8); signal q : st_type; signal d : std_logic_vector(7 downto 0); begin process( clk,clr ) begin if clr = 1 then q d(7) d(6) d(5) d(4) d(3) d(2) d(1) d(0) q if din = d(7) then q if din = d(6) then q if din = d(5) then q if din = d(4) then q if din = d(3) then q if din = d(2) then q if din = d(1) then q if din = d(0) then q q=st0; end case ; end if; end process ; process(q) begin if q = st8 then ab = “1010“ ; r=1; else ab=“1011“; r=0; end if; end process ; process (e) begin if r=1 then w=0; elsif (e=8 and r=0) then w=1; else w=0; 临沂大学 2013 届本科毕业论文(设计) 20 end if; end process; end behav ; (3)错误计数模块: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt4 is port (clk : in std_logic; q :out std_logic_vector(3 downto 0); end; architecture bhv of cnt4 is signal q1 : std_logic_vector(3 downto 0); begin process (clk) begin if clkevent and clk=1 then q1=q1+1; end if; end process; q=q1; end bhv; 附录 2: 设计说明书 本次设计我选择了数字密码锁,设计要求是:8 位二进制,串行输入,有 开锁和错误提示,经研究及查阅资料后,决定采用摩尔(moore)来实现密 码的预置和检测并以 led数码管指示开锁是否成功.其原理图如图所示: 临沂大学 2013 届本科毕业论文(设计) 21 模块 shezhimima实现密码预置功能,用户可以自行设置密码,而且密 码可更改.模块 schk实现密码检测功能,当用户输入的待测密码与上一次 输入的密码一致之时开锁成功,此时 led数码管指示将由 b跳变为 a.本电 路基本由 pld来实现需外接 1个共阴数码管,6 个按键,6 个 led指示灯. 附录 3.使用说明书 首先预置密码,当 clr1(键 6)在低电平的状态下,din1(键 7)端可 设 置密码,给 ckl1(键 8)输入八下计数脉冲即可完成密码的预置.然后进行 密码检测,clr2(键 1)在低电平的状态下,在 din2(键 2)输入待检测密 码,在 clk2(键 3)输入串行输入脉冲,当给 clk2输入八下计数脉冲时,即 八位密码全部验证,如果密码正确,则在数码管 1显示将由 b跳变为 a,否则 数码管将保持显示 b.数码管 2显示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论