三位密码锁实验报告DOC_第1页
三位密码锁实验报告DOC_第2页
三位密码锁实验报告DOC_第3页
三位密码锁实验报告DOC_第4页
三位密码锁实验报告DOC_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、数字系统设计实习(训)报告评语等级:评阅人: 职称:年 月 日南 工 程实习(训)报告实习目的(内容):电子密码锁实习时间:自6月17 日至6月28日共12天实习地点:三号实验楼 A307实习单位:45指导老师:翁嘉民系主任:#目录1. 引言 52. 设计思想 62.1 系统原理框图2.2 总体实现原理3. 芯片主控设计 73.1 系统设计方案3.2FPGA有限状态机3.3 设计流程3.4 状态编码3.5 密码的输入3.6 密码记录与比较3.7 密码的显示4. 引脚锁定 115. 程序仿真 136. 方框图 147. 心得体会 18基于Verilog HDL的FPGA的电子密码锁的设计报告摘要

2、:基于FPGA设计的电子密码锁是一个小型的数字系统,与普通机械锁 相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即 可开锁等。目前使用的电子密码锁大部分是基于单片机技术, 以单片机为主要器 件。在实际应用中,程序容易跑飞,系统的可靠性较差。本文介绍的一种基于现 场可编辑门阵列FPGA器件的电子密码锁的设计方法,采用VHDL语言对系统进行 描述,并在EP3C10E144C上实现。通过仿真调试,利用可编程逻辑器件 FPGA的电子密码锁的设计基本达到了 预期目的。 当然,该系统在一些细节的设计上还需要不断地完善和改进, 特别是 对系统的扩展有很好的使用系统和设计的价值。一、引言

3、数字电路主要是基于两个信号(我们可以简单的说是有电压和无电压),用数字信 号完成对数字量进行算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算 和逻辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。1 EDA简介EDA( Electronics Design Automation)技术是随着集成电路和计算机技术的飞速 发展应运而生的一种高级、快速、有效的电子设计自动化工具。它是为解决自动控制系 统设计而提出的,从70年代经历了计算机辅助设计(CAD,计算机辅助工程(CAE, 电子系统设计自动化(ESDA3个阶段。前两个阶段的EDA产品都只是个别或部分的解 决了电子产品设计中的工程

4、问题;第三代EDAT具根据工程设计中的瓶颈和矛盾对设计 数据库实现了统一管理,并提出了并行设计环境概念,提供了独立于工艺和厂家的系统 级的设计工具。EDA关键技术之一就是采用硬件描述语言对硬件电路进行描述,且具有 系统级仿真和综合能力。目前应用比较广泛的硬件描述语言就是/erilog HDL。2 Verilog HDL 简介Verilog HDI和VHDL样,是目前大规模集成电路设计中最具代表性、使用最广泛的硬 件描述语言之一。 Verilog HDL 具有如下特点:(1)能够在不同的抽象层次上,如系统级、行为级、RTL级、门级和开关级,对设计系 统进行精确而简练的描述。(2,能够在每个抽象层

5、次的描述上对设计进行仿真验证,及时发现及时发现可能存在的错误,缩短设计周期,并保存整个设计过程的正确性。(3)由于代码描述与工艺过程实现无关,便于设计标准化,提高设计的可重用性。如 国有C语言的编程基础经验,只需很短的时间就能学会和掌握Verilog HDL,因此, Verilog HDL可以作为学习HDI设计方法的入门和基础。本设计名称为密码锁,共有六个模块,分别为,按键去抖、输入密码、显示模 块、比较模块、状态转换模块、输出控制。最终由总程序来实现所需功能。设计所要实现的功能为:1手动用8个拨码开关设计三位密码(0-5)或开锁。2当输入密码开锁,当密码输入正确时,指示灯亮,表示开锁成功。3

6、当密码输入错误时,灯亮(非同一个灯),表示开锁失败。二、设计思想2.1系统原理框图本系统由主控芯片(FPGA),键盘,显示电路,报警电路和开/关门电路组 成,而主控芯片又可分为按键处理部分, 控制部分和译码显示部分。系统原理框 图如图2.1所示:2.2 总体实现原理本系统有 8个按键, K0,K1,K2,K3,K4,K5 代表数字 0-9共10个数字和 1个 确认键, 1 个复位键。密码长度为四位,并且固化在锁内,输入正确密码后,按 确认键即可开门,本系统设置为 LED D8 灯亮。在输入密码的过程中,当用户键 入错误密码时,报警灯 LED D1 灯亮。按下复位键,可使报警停止,同时清除所 有

7、密码显示。三、芯片主控设计3.1 系统设计方案本电路的主要控制部分和接口输入部分都是在 FPGA 内部通过 Verilog HDL 语言实现的,所以 FPGA 模块为本设计的核心。 根据系统要求的功能, 以及 FPGA 芯片容量的分级,本论文选用 ALTERA 公司 MAX7000S 系列的 EP2C35F672C8 器件作为主控芯片, 它是一种基于乘积项结构的复杂可编程逻辑器件, 它的基本 逻辑单元是由一些与、或阵列加上触发器构成, 其中与或阵列完成组合逻辑功能, 触发器完成时序逻辑。 它的逻辑控制灵活, 可反复编程, 有利于系统的扩展和修 改,而且其集成度高,保密性好。作为通用电子密码锁,

8、 主要由六个部分组成: 键盘处理电路、 输入密码电路、 显示部分、比较密码部分、状态转换部分、输出控制部分。3.2 FPGA 有限状态机本设计是通过 FPGA 有限状态机来实现,设计有限状态机最开始的工作时要 确定电路,包括哪些状态,比如某个电路包括四个状态,S0,S1,S2,S3然后对所有状态给出一个状态编码, 比如为状态 S 0赋予编码 00,为状态 S1 赋予编码 01, 为状态S2赋予编码10,为状态S3赋予编码11。状态编码是状态的标识,保存 在寄存器当中,对于此编码形式,只需一个 2 位的寄存器就可以了。FSM Encoding Style 主要有:Binary EncodingO

9、ne Hot EncodingGray Encoding状态机可以认为是组合逻辑和寄存器逻辑的特殊租户,它一般包括两个部分:组合逻辑部分和寄存器逻辑部分。 寄存器用于存储状态,组合电路用于状态 译码和产生输出信号。状态机的下一个状态及输出,不仅与输入信号有关,而且 还有寄存器当前所处的状态有关。根据输出信号产生方法的不同,状态机可以分成两类:Mealy型和Moore型。 Moore型状态机的输出只是当前状态的函数, 而Mealy型状态机的输出则是当前 状态和当前输入状态的函数。其原理如下两图:Mealy State MachineIn putsNext-State LogicnsStateRe

10、gisterOutputLogicOutputs11#Next state and the outputs depend on the current state and the inputs严 next_state(t) = h(current_state(t), input(t)> output(t) = g(current_state(t), input(t)图3.1Mealy型状态机输出原理Moore State MachineInputs State RegisterOutputsNext state depends on the current state and the I

11、nputs but the output depends only on the present state> next_state(t) = h(currenLstate(t)f input(t)> output = g(current_state(t)图3.2 Moore型状态机输出原理3.3设计流程本次密码锁的设计,有限状态机应该包括以下状态:密码为输入前的等待状 态、输入密码时的等待状态、输入密码正确时的通过状态、 输入密码错误时的警 报状态。其中当密码输入时又可包括以下状态,正常输入状态、异常输入状态(包括命令状态)、输入确认状态。下面的图(图是在程序编译后,tools-

12、>Netlist_Vewers->RTL Vewer得到的)表示了 密码输入的时候的次状态机,表示了 4个密码输入的顺序状态,以及输入完成后 的等待确认状态。图3.4次有效状态机的状态转换3.4状态编码状态编码主要有二进制编码、格雷编码和一位独热编码等方式。格雷编码时,相邻状态每次只有一个比特位产生变化, 这样减少了瞬变的次 数,也减少了产生毛刺和一些状态的可能。采用一位独热编码,虽然多用了触发器,当可以有效节省和简化组合电路。对于寄存器数量多而逻辑相对缺乏的 FPGA器件来说,采用一位独热编码可以有 效提高电路的速度和可靠性,也有利于提高器件资源的利用率。将产生状态的组合逻辑电路

13、和用于保存状态的寄存器分别写在不同的 always块中。其中主要包括:输出控制部分、警报计时部分、锁打开后的计时部 分、比较密码部分、记录密码部分和记录错误次数的部分。3.5 密码的输入数字按键输入的响应控制(1) 如果按下数字键,第一个数字会从显示器的最左端开始显示,直到数输 完四个数字。(2) 假如要更改输入的数字,按清除键清除所有输入的数字,再重新输入四 位数。(3) 由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超过四个 时,电路不予理会,而且不再显示第四个以后的数字。另外由于按键的时候同时会引起状态机的转换, 所以如果按键的时候对按键 判断次数过多会产生状态的过快转换, 记

14、录的密码和数码管的显示就同时会出现 错误,因此在按键部分加入了消除多重按键的程序,只检测一次按键的下降沿, 解决了这个问题。/输入的数字编码 09,enter,cancelone=4'b0001, two=4' b0010,three4='b0011,four=4'b0100,five=4'b0101, six=4'b0110,seven=4'b0111,eight=4'b1000,nine=4'b1001, zero=4'b1000,enter=4'b1010,cancel=4'b1011;可以看

15、到,在复位以后,输入第 1,2,3,4 个密码(依次为 1111) 后, passed 变成高电平。当过了一定的时间后, passed 变成低电平, 重新计入键盘读入值,进行下一轮的密码辨别。3.6 密码记录与比较程序设定了一个寄存器用来记录输入的密码。 当次有效状态机 (即密码输入 的状态机) 发生转换并且有密码输入时, 程序会记录下输入的密码在寄存器的其 中 4 位里面,最后次有效状态转换到确认密码的状态时, 会将记录下的密码与固 化在锁内的密码进行对比, 正确即将主状态机转换到通过阶段, 错误则将状态机 转换到报警阶段。其中正确错误的状态转换是通过控制相应的标志位实现的。3.7 密码的显

16、示密码显示采用数码管动态扫描显示,初始时显示密码为 4位 0,当输入密码后数码管的第一位、第二位、第三位、第四位会依次显示输入的密码,错误后复 位可以重新输入。密码显示采用的是记录密码的寄存器的数据, 显示扫描的扫描 时间设置为1ms左右,这样显示不会出现闪烁或者残影。四、引脚锁定1、本设计中所用的引脚如下:MagicSOP主板10引脚分配表时钟:clk:PIN_B13按键23C13KEY】按键CLK10, LVDSCLK5n INFUT24D13KEY2CLK1L LVDSCLKop INPUT25 IN1KEYSCLKL LVDSCLKOn INPUT26PlKEY4CLK3, BTSCL

17、Kln INPUT27ADI 3KEY5CLK14P LTOSCLK7n INPUT28AF14KEY6CLK13P LT)SCLK6p INPUT29P25KEY?CLK6t LVT)SCLK3p INPUT30P26KEYSCLK7, LTOSCLK3n INPUTLED灯1R5LED110,LVDS24n2P9LED210?LVDSSln3P7LED3"to?LTOS22p? DQ1L3/DQSL3斗P6LEMio,LTOS22iit DQ1L4/DQ3L45P3LED5LED流水灯10, LVDS26P,(DPCLK1/D()S1L)/(DPCLK1/DQS16K8LED61

18、0,LVDSTp7帕LED?ISLVDS20p, DQ1L7/DQ3L78T3LED810,LVDS21nP DQ1L6/DQ3LB39J8SEGO40M3SEG141K6SEG2动态数码管数码管显示I0h LVDSJIp10, LVDS27p,(DPCLKO/DQSOL)/IDPCLKO/DQSOI0h LTOS42p42J6SEG310, DQ2L0/DQ1L0J3U10SEG4I0a LVDSlSn44X9SEG510, LVDS31pr 45LIOSEG6IO461?SEG7IO47L6DIGOIO3 LWS30n, DQ0L6/DQlLlb(48K5DIG1IO, LTS42n49G

19、3DIG210, LDS41n50GADIG310, LVDS41p61J3DIG410, LVDS36pt DQ2L7/DQ1L7r 52K1DIGSIOa LVDS33pt DQOL1/DQ1L1O53L3DIG610,LWS29n, /DQlL17b4曲DIG?10, LTS28p2、电子密码锁引脚锁定图clkO LocationPIN_B13 Yesthreel Locati ontwo1 Locati onPIN_N1 YesPIN D13 Yesdig7Locati onPIN_M4Yesdig6Locati onPIN_L3 Yesdig5Locati onPIN_K4 Yesd

20、ig4Locati onPIN_J3 Yesdig3Locati onPIN_G4 Yesdig2Locati onPIN_G3 Yesdig1Locati onPIN_K5 Yesdig0Locati onPIN_L6 Yesone1Locati onPIN_C13Yesfour1Locati onPIN_P1 Yesfive1Locati onPIN_AD13YesresetbLocati onPIN_P25Yessixl Location PIN_AF14 Yes15#yes Location PIN_P26 Yes#passed7 Locati onPIN_T3 Yespassed6

21、Locati onPIN_R6 Yespassed5 Locati onPIN_R8 Yes16passed4Locati onPIN_P3 Yespassed3Locati onPIN_P6 Yespassed2Locati onPIN_P7 Yespassed1Locati onPIN_P9 Yespassed0Locati onPIN_R5 Yesseg7Locati onPIN_L9 Yesseg6Locati onPIN_丄10Yesseg 5Locati onPIN_N9 Yesseg4Locati onPIN_U10Yesseg3Locati onPIN_J6 Yesseg2Lo

22、cati onPIN_K6 Yesseg1Locati onPIN_M3Yesseg0Locati onPIN_J8 Yes五、程序仿真17六、模块方框图总方框图蠶419曲Ext输入密码rtktreetb:1. rose:还, >u:i s'ate*ttexl sub 百 LdLa1. rese:-41,bull slalc. firs'rfl9记录按方顺序L fi rst2. second3. Ihiru4. fourth5. fitiidi甯码枪入L reseO-Ot1key_prViJs«l_f: lag=0t?比數字输人!*5rty_fMr*jssd_f

23、 iagt-r状态转换讐:i 煦:;III alati fuuii: l|y cuuatT'r1. reset b-0»mnin町朋i:p; 2. resetb «tab SlElli?-nflii >itn:eCTI-> C- klVnI sifftflCITLUIcdrfeciInuti i sr nlf-tain state2199-trim】f霍無壬霹-tfi'ti-貝冒PH'-rHg 42:X翱*1f f fP34E農?-J£®®ii1 二 Jhh1-Lt匚程序中每个always语句对应一个方框,其

24、方框如下:: 1 : 1 :'z 1"i:i:i« :h:p:5:i:I' '1*luulo sLutti 1Z: 1 :clkL_rI p " errorF"11>pr她一團日clkOii:i:c&rfodi, H厂' "IZ1ZI:Rit'QclKiro阿is_wuinl-neiTtatei :1 : : 1:!k“aXii_counl -rt Tjf_CCMllDtZ1=1£r. . "1 . 1:1:1:1:11 : 1 : :1:II:1:zr - :L-10

25、: 1 :Z1:Z1Z:1:1:1:1:1:1:“ iJl:1:"l:il:ii:IIz: :|:a:-Z1£Z1ZZ1Z_ j11 : :1: 1 :._ TILJ. tHseLb-Oi uninstaleclklchi1r.MII:P1mi佃:reseLb虹浙ires-etb廿am!XH討雅1 :i2. resetb-ii;1p: :'IJalarin counlir-esQ-iD1»mln statB neit_staieinaim_£tatg "1xMraalo_E t 田上 111z11bii:z: :r =1 :1i口旧:-

26、ijh 镒IeKjgi+W HHpOS_CCKlfiLKFy_pn?ssed: f1. firat2. second3. third4. fcmrtli5l fLnihcRl1. rcset=Qf再口 bjt询 <=first xsub_statB(next mib .sttU*25M-elklClklcgm'c I岀tto-me-ti inetry_cotiiit密叫Rrrrub_staLW5 i證选i*叫记录X tt溟次救"妁机b.key_pr*RS£d_ ng11clkilnw|tb1*Eain_sme rrts.®tbvnt-uliiu密码f

27、入X,.理阴bPL kejjMwssad fkK-0a. ft taxtlkOdit * dkO-dii3-0xV.A ft26#实训心得一1短暂的两周实训已在不知不觉中接近了尾声, 本次实训我们做的是电子密码 锁,虽然我是主力,但每项工作都是在我们的共同参与下完成的。这两周的实训 让我学到了很多实用性的知识,不仅让我更深层次的对课本的理论知识有了深入 的理解,而且还让我对分析事物的逻辑思维能力得到了锻炼,提高了实际动手能力。开始时我们的程序使用的是六个分模块,但在例化语句的编写上出现了问 题。后来经过讨论我们决定使用一个整体程序, 然而在编写主控模块时,我遇到 了很大的困难,一直被定时问题所

28、困扰,那就是密码的输入与状态的循环, 本来 用的是状态机,但由于状态机总是有一个状态被综合掉,而导致仿真波形出不来。 然而模块分好后,时序图却一直没有调出来,不过高兴的是当我们的程序下载到 试验箱上的时候,功能还是实现了。即输入正确密码时,灯亮,同时开锁进入; 而当密码输入错误时, 报警并且不能开锁进入。 接下来我们需要做的就是增进我 们密码锁的功能了, 毕竟我们所需要的是可以直接更改密码, 而不是将密码固化 在锁内,这个过程花费了几天的时间, 同时也上网查阅了好多的资料, 当然也离 不开其他同学对我们的帮助, 终于功夫不负有心人, 我们的密码锁总算实现了它 应有的功能。通过本次实训, 不仅让

29、我学到了实用性的知识, 更让我意识到了团队合作的 重要性。也让我意识到只有理论知识是远远不够的, 只有把所学的理论知识与实 践相结合起来, 从理论中得出结论, 才能真正为社会服务, 从而提高自己的实际 动手能力和独立思考的能力。 同时也非常感谢学校为我们提供这样专业的实践平 台还有瓮老师在两周实训以来对我们的不断指导以及同学们对我们的热情帮助。实训心得 2短暂的两周实训已经过去了,本次EDA实训让我感觉收获颇多,在这一周的 实训中我们不仅巩固了以前学过的知识, 而且还学到了 Verilog 语言设计密码锁 的整个过程, 同时也提高了我们的思考能力与实际动手操作能力。 下面谈一下就 这两周实训中

30、我自己的一些心得体会。两周的实训,让我们在老师提供的实践平台上通过自己的实践学到了很多课 本上学不到的宝贵东西,熟悉了对 Quartus U软件的一般项目的操作和学到了 处理简单问题的基本方法, 更重要的是掌握了 Verilog 语言的基本设计思路和方 法,我想这些会对我今后的学习起到很大的助推作用。 此外, 还要在今后的课本 理论知识学习过程中要一步一个脚印的扎实学习, 灵活的掌握和运用专业理论知 识这样才能在以后出去工作的实践过程中有所成果。本次实训中我们遇到的最大困难就是一直没能修改密码, 开始时我们一直不 明白为什么, 但经过我们对程序再三的琢磨, 终于明白了原因, 因为我们使用了 状

31、态机,所以输入密码时总是显示的前一个状态输入的密码, 而导致密码修改出 现了问题,但经过老师对我们的悉心指导,我们意识到了自己的错误。瓮老师多次询问设计进程, 并为我们指点迷津, 帮助我们理顺设计思路, 精 心点拨。瓮老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我 以文,并将积极影响我今后的学习和工作。在此诚挚地向瓮老师致谢。两周的实训,让我学到了好多课本上及课外的知识。深刻体会到了,理论是 一回事,真正实践下来就会很难!由于老师的指导,同学的帮助,以及我们的团 结协作,我们圆满的完成了设计! 非常感谢在实训期间帮助我们的所有人, 尤其 是翁老师,多次为我们指点迷津,并帮助我们理顺设计思路,精心点播。实训心得 3 通过本次实验的课程设计,加深自己对课本知识的理解和巩固。我感觉有 很大的收获。这次 EDA 课程设计历时两个星期,在整整两个星期的日子里,可 以说是苦多于甜, 但是可以学到很多很多的东西, 同时不仅可以巩固以前所学过 的知识,而且学到了很多在书本上所没有学到过的知识。 通过这次设计, 进一步 加深了对 ED

温馨提示

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

评论

0/150

提交评论