欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于QuartusII的密码锁筹划与设计毕业论文(设计).doc

    • 资源ID:4144836       资源大小:656KB        全文页数:26页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于QuartusII的密码锁筹划与设计毕业论文(设计).doc

    13届 分 类 号: 单位代码:10452 毕业论文(设计)基于QuartusII的密码锁筹划与设计 摘 要 本系统是以EDA作为开发工具,VHDL语言为硬件描述语言,QUARTUS II作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标.本系统采用有限状态机进行设计,目的在于实现八位二进制,串行输入数字密码锁,并具有开锁与错误提示.开锁代码为八位二进制数,当输入代码的位数和位值与预先设置的密码一致时方可开锁,并使数码管显示由“B”变为“A” .当输入密码不正确时,计数器会进行一次计数.关键词:EDA;quartusII;密码锁;VHDLABSTRACTThis 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 目 录1 引言22 软件开发环境22.1 FPGA简介22.2 QuartusII设计平台63 数字密码锁的设计83.1系统设计83.2单元电路设计93.3软件设计114 系统测试125 结论14附 录15参 考 文 献19致 谢201 引言电子设计自动化,简称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的在线修改功能,随时修改设计而不必改动硬件电路.使用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)和互连资源(IRInterconnect Resource).可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路.FPGA的结构如图1可编程开关矩CLBCLBCLBCLBCLBBCLBCLBCLBCLB矩CLBCLBCLB块CLBCLBBCLBCLBCLBCLBCLBCLB 输入输出模块互连资源 图1 FPGA基本结构 1. CLB是FPGA的主要组成部分.它主要由逻辑函数发生器、触发器、数据选择器等电路组成.CLB中3个逻辑函数发生器分别是G、F和H,相应的输出是G、F和H.G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4.这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数.逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变换电路的输出H1.这个函数发生器能实现3输入变量的各种组合函数.这3个函数发生器结合起来,可实现多达9变量的逻辑函数.CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器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系统设计流程一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是自顶向下的设计方法.目前这种高层次的设计方法已被广泛采用.高层次设计只是定义系统的行为特征,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换为针对某种工艺优化的网络表,使工艺转化变得轻而易举.CPLD和FPGA的主要区别是他们的系统结构.CPLD是一个有点限制性的结构.这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器.这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点.CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体.CPLD/FPGA系统设计的工作流程如图2所示.系统划分编译器代码级功能仿真综合器适配前时序仿真适配器CPLD/FPGA实现适配后仿真模型适配后时序仿真适配报告ASIC实现VHDL代码或图形方式输入仿真综合库器件编程文件图2 CPLD/FPGA系统设计流程流程说明:1.工程师按照“自顶向下”的设计方法进行系统划分.2.输入VHDL代码,这是设计中最为普遍的输入方式.此外,还可以采用图形输入方式,这种输入方式具有直观、容易理解的优点.3.将以上的设计输入编译成标准的VHDL文件.4.进行代码级的功能仿真,主要是检验系统功能设计的正确性.这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间.一般情况下,这一仿真步骤可略去.5.利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤.综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成.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种形式.电路原理图方式描述比较直观和高效,对综合软件的要求不高.一般大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,其硬件工作速度和芯片利用率很高,但是当项目很大时,该方法就显得有些繁琐;状态机描述主要用来设计基于状态机思想的时序电路.在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生成HDL语言描述,送去综合软件综合到可编程逻辑器件的内部.由于状态机到HDL语言有一种标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系.2.2 QuartusII设计平台2.2.1软件开发环境及基本流程本设计所用软件主要是QuartusII,在此对它做一些介绍.QuartusII是Altera提供的FPGA/CPLD开发集成环境,Altera是世界上最大的可编程逻辑器件供应商之一.QuartusII提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程.Altera公司的QuartusII 开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能.QuartusII软件完全支持VHDL设计流程,其内部嵌有VHDL逻辑综合器.QuartusII 也可以利用第三方的综合工具,如FPGA Compiler II,并能直接调用这些工具.同样,QuartusII具备仿真功能,同时也支持第三方的仿真工具.此外,QuartusII与MATLAB和DSP Builder结合,可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA技术.QuartusII包括模块化的编译器.编译器包括的功能模块有分析/综合器、适配器、装配器、时序分析器、设计辅助模块、EDA网表文件生成器、编辑数据接口等.可以通过选择Start Compilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块.在Compiler Tool窗口中,可以打开该模块的设置文件或报告文件,或者打开其它相关窗口.在设计输入之后,QuartusII的编译器将给出设计输入的错误报告.QuartusII拥有性能良好的设计错误定位器,用于确定文本或图形设计中的错误.在进行编译后,可对设计进行时序仿真.在仿真前,需要利用波形编辑器编辑一个波形激励文件.编译和仿真检测无误后,便可将下载信息通过QuartusII提供的编程器下载入目标器件中了.2.2.2软件的具体设计流程1.建立工作库文件夹和编辑设计文件首先建立工作库目录,以便存储工程项目设计文件.任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹.此文件夹将被EDA软件默认为工作库.一般来说,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中.2.创建工程使用New Project Wizard可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称,还可以指定要在工程中使用的设计文件、其它源文件、用户库和EDA工具,以及目标器件系列和具体器件等.3.编译前设置在对工程进行编译处理前,必须做好必要的设置.步骤如下:a.选择FPGA目标芯片b.选择配置器件的工作方式c.选择配置器件和编程方式d.选择输出设置e.选择目标器件闲置引脚的状态4.全程编译QuartusII编译器是由一系列处理模块构成的,这些模块负责对设计项目的检错、逻辑综合、结构综合、输出结果的编辑配置,以及时序分析.在这一过程中,将设计项目适配到FPGA目标器中,同时产生多种用途的输出文件.编译器首先检查出工程设计文件中可能的错误信息,供设计者排除.然后产生一个结构化的以网表文件表达的电路原理图文件.如果编译成功,可以见到工程管理窗口左上角显示了工程(例如工程div)的层次结构和其中结构模块耗用的逻辑宏单元数;在此栏下是编译处理流程,包括数据网表建立、逻辑综合、适配、配置文件装配和时序分析等;最下栏是编译处理信息;中栏是编译报告项目选择菜单,单击其中各项可以详细了解编译与分析结果.5.时序和功能仿真工程编译通过后,必须建立VWF文件对其功能和时序性质进行仿真测试,以了解设计结果是否满足原设计要求.可以自己设置输入信号,再由功能仿真出输出信号.这能在软件上实现硬件的功能,大大提高了硬件电路调试成功率.6.编程下载编程下载指将编程数据放到具体的可编程器件中去.如果以上所有的过程都没有发现问题,即满足设计要求,就可以将适配器产生的配置/下载文件通过FPGA编程器或下载电缆载入目标芯片FPGA中.对FPGA来说就是将数据文件“配置”到FPGA中去.3 数字密码锁的设计数字密码锁有两类:一类是并行接收数据,称为并行锁;一类是串行接受数据,称为串行锁.如果输入代码与锁内密码一致,锁被打开;否则,应封闭开锁电路.3.1系统设计本系统的设计要求是八位二进制,串行输入数字密码锁,并具有开锁与错误提示.当输入密码与预设置密码相匹配时,显示开锁提示“A”,当输入密码有误时,错误次数显示自动加1.利用有限状态机对系统进行设计.本设计分为三个模块:其一,密码预置模块,可自行设置8位二进制的密码.其二,密码检测模块,检测输入的密码与预先设置的密码是否一致.其三,计数模块,当输入密码与设置密码不一致时,计数器计数一次.本设计程序简单,利用有限状态机其优点在于克服了纯硬件数字系统顺序方式控制灵活的缺点,容易构成性能良好的同步时序逻辑模块,而且单进程Moore状态机比较容易构成能避免出现毛刺现象的状态机,易实现.流程图如图4.图4 密码锁流程图3.2单元电路设计密码预置模块shezhimima:该模块有3个输入端,1个输出端.DIN1为预置密码输入端,CLR1为清零端,CLK1为串行脉冲输入端.当CLR1在低电平的状态下,DIN1端可设置密码,给CKL1输入八下计数脉冲即可完成密码的预置.预设置的密码将会通过DOUT输出到序列检测模块.元件图如图5.图5 设置密码模块 密码检测模块SCHK:该模块有4个输入端,1个输出端.DIN2为待检测密码输入端,D_IN为已预置的密码输入端,CLR2为清零端,CLK2为串行脉冲输入端.当CLR2在低电平的状态下,在CLK2输入串行输入脉冲,当给CLK2输入八下计数脉冲时,即八位密码全部验证,如果密码正确,则在AB输出口输出A.元件图如图6.图6 密码检测模块计数模块 CNT4:当输入密码错误时,1个输入端,1个输出端,会产生一个计数脉冲进行一次计数,输出端接七段数码管用以显示.该模块不可清零,以保证密码输入错误次数的正确累加.错误计数模块元件图如图7. 图7 计数模块整体电路图及输入输出口连接如图8.图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会将密码输出.图9 密码预置模块仿真波形图10是密码检测模块的仿真波形,右图可见当待测密码端输入的密码与预置的密码一致是AB端会由B变为A. . 图10 密码检测模块仿真波形图11是整个系统的仿真波形.输入密码与预置密码一致时AB由B跳为A. 图11 系统仿真波形4系统测试本系统采用GW48系列SOPC/EDA实验开发系统(GW48-PK2/CK)对系统进行硬件仿真分析及测试,引脚锁定采用模式五.通过该锁定图,在实验箱上对设计进行操作及验证,验证结果与预计相符.硬件验证:实验箱编号 GW48PK2 ;目标芯片型号:cyclone.引脚设置如图12.图12 引脚锁定表在试验箱进行检测时应选择模式8,CLK接键6,对应PIO9,CLR接键7,对应PIO11,DIN是串行数据输入口接PIO10,AB3.0数据比较结果,由数码管8显示,对应PIO47-PIO44.显示”B”表示密码有错误,显示”A”表示,密码正确键2/键1设置8位待检测密码. 首先按键7清零,随着连续按键6,显示于发光管D8-D1的设置好的数据会左移,每一次时钟脉冲,向PIO10串入一位.电路设置如图10.图13 试验箱设置图5结论 本次密码锁采用EDA作为开发工具采用自顶向下的设计思想,利用VHDL硬件描述语言和图形输入相结合的编程方式,并通过可编程逻辑器件FPGA进行硬件设计,用LED数码管静态显示计时结果.通过硬件仿真分析及测试,结果与预计相符.从结果中得出本设计的正确性,其结构简单易实现,突出了Moore状态机在应用中的优势.设计还可以增加一个计数电路,当输入的密码不正确时统计错误次数.通过本次设计,我学到了很多关于EDA的相关知识,充分理解了状态机的原理.从接触EDA,进行相关学习到选择设计题目,海量收集资料,工程初步建立,程序的调制,无数次的修改,仿真,从错误中加深对相关知识的理解,从不断的失败到最后的成功,几经悲喜,多少次因为有一个可行的想法兴奋的寝食俱忘,工程虽然简单,实现的功能亦不多,但每一句程序,每一个模块,都是经过多次的调试运行最后终于成功.附 录附录1:(1)密码预置模块LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY shezhimima ISPORT (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); BEGINPROCESS( CLK,CLR ) BEGIN IF CLR = '1' THEN Q <= ST0 ; ELSIF CLK'EVENT AND CLK='1' THEN CASE Q IS WHEN ST0=> D(7)<=DIN ;Q<=ST1; WHEN ST1=> D(6)<=DIN ;Q<=ST2; WHEN ST2=> D(5)<=DIN ;Q<=ST3; WHEN ST3=> D(4)<=DIN ;Q<=ST4; WHEN ST4=> D(3)<=DIN ;Q<=ST5; WHEN ST5=> D(2)<=DIN ;Q<=ST6; WHEN ST6=> D(1)<=DIN ;Q<=ST7; WHEN ST7=> D(0)<=DIN ;Q<=ST8; WHEN OTHERS => Q<=ST0; END CASE ; END IF ; END PROCESS ;PROCESS( Q ) BEGIN IF Q = ST8 THEN DOUT <=D ;END IF;END PROCESS ;END behave;(2)密码检测模块LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SCHK IS PORT(DIN,CLK,CLR :IN STD_LOGIC; D_IN :IN STD_LOGIC_VECTOR(7 DOWNTO 0); W : OUT BIT; AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END SCHK;ARCHITECTURE behav OF SCHK 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); SIGNAL P : STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL E : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL R : STD_LOGIC;BEGIN D <= D_IN; PROCESS( CLK,CLR ) BEGIN IF CLR = '1' THEN Q <= ST0 ; E<="0000" ELSIF CLK'EVENT AND CLK='1' THEN E<=E+1; CASE Q IS WHEN ST0=> IF DIN = D(7) THEN Q <= ST1 ; ELSE Q <= ST0 ; END IF ; WHEN ST1=> IF DIN = D(6) THEN Q <= ST2 ; ELSE Q <= ST0 ; END IF ; WHEN ST2=> IF DIN = D(5) THEN Q <= ST3 ; ELSE Q <= ST0 ; END IF ; WHEN ST3=> IF DIN = D(4) THEN Q <= ST4 ; ELSE Q <= ST0 ; END IF ; WHEN ST4=> IF DIN = D(3) THEN Q <= ST5 ; ELSE Q <= ST0 ; END IF ; WHEN ST5=> IF DIN = D(2) THEN Q <= ST6 ; ELSE Q <= ST0 ; END IF ; WHEN ST6=> IF DIN = D(1) THEN Q <= ST7 ; ELSE Q <= ST0 ; END IF ; WHEN ST7=> IF DIN = D(0) THEN Q <= ST8 ; ELSE Q <= ST0 ; END IF ; WHEN OTHERS => 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' END IF; END PROCESS;END behav ;(3)错误计数模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4 ISPORT (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 CLK'EVENT AND CLK='1' THEN Q1<=Q1+1; END IF; END PROCESS; Q<=Q1;END BHV;附录2:设计说明书本次设计我选择了数字密码锁,设计要求是:8位二进制,串行输入,有开锁和错误提示,经研究及查阅资料后,决定采用摩尔(moore)来实现密码的预置和检测并以LED数码管指示开锁是否成功.其原理图如图所示:模块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潘松、黄继业编著EDA技术与VHDL(第三版) M,清华大学出版社2011.7. 2袁俊泉,孙敏琪,Verilog HDL数字系统设计及其应用M,西安电子科技大学出版社,2002,20-86. 3张亮著,数字电路设计与Verilog HDLM,人民邮电出版社,2000.4Donald E.Thomas, Philip R.Moorby,硬件描述语言VerilogM,4,清华大学出版社,2001.5王金明、杨吉斌,数字系统设计与Verilog HDLM,电子工业出版社,2002.1.6Altera Max II Development Board Data Sheet, V1.0, Oct 2004 7戴立江,基于EDA技术的FPGA应用研究D,天津工业大学,2004.8曾繁泰、李冰、李晓林著,EDA工程概论M,清华大学出版社,2002.1. 9王志鹏、付丽琴,可编程逻辑器件开发技术MAX+plus2M,国防工业出版社,2005.3,51-203.10杜建国,Verilog HDL硬件描述语言M,国防工业出版社,2004.11黄任,VHDL入门.解惑.经典实例.经验总结M,北京航空航天大学出版社,2005,136-143.12Altera公司,Data Book 2000.13Altera公司,Max+PlusII Getting Started14阎石 主编,数字电子技术基础,高等教育出版社,1998 15谭会生等主编,EDA技术及应用,西安电子科技大学出版社,2001 16廖裕评等主编,CPLD数字电路设计使用MAX+plus入门篇,清华大学出版社,2001 17冯涛等主编,可编程逻辑器件开发技术:MAX+plus入门与提高,人民邮电出版社,2002 18杨崇志,特殊新型电子元件手册,辽宁科学技术出版社,1999 致 谢光阴似箭,岁月如梭,不知不觉我即将走完大学生涯的第四个年头,回想这一路走来的日子,父母的疼爱关心,老师的悉心教诲,朋友的支持帮助一直陪伴着我,让我渐渐长大,也慢慢走向成熟. 首先,我要衷心感谢一直以来给予我无私帮助和关爱的老师们,特别是我的导师王传聪老师,导员朱庆峰老师、刘怀强老师、韩荣昌老师,还有那些熟悉和不熟悉的专业课.谢谢你们这四年以来对我的关心和照顾,从你们身

    注意事项

    本文(基于QuartusII的密码锁筹划与设计毕业论文(设计).doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开