密码锁verilog课程设计

合集下载

FPGA基于verilog HDL的密码锁

FPGA基于verilog HDL的密码锁

EDA课程设计课设密码锁名称:课设2014.6.23——7.5 日期:姓陈飞名:学110250101号:哈尔滨工业大学(威海)信电学院电子信息工程2014.6一. 所用软件与硬件介绍1.1所用软件介绍QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII可以在XP、Linux以及Unix上使用,除了可以使用TCL脚本完成设计流程外,提供了完善的用户图形界面设计方式。

具有运行速度快,界面统一,功能集中,易学易用等特点。

QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

此外,QuartusII 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。

目前Altera已经停止了对MaxplusII 的更新支持,QuartusII 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。

Altera在QuartusII 中包含了许多诸如SignalTapII、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII 友好的图形界面及简便的使用方法。

FPGA基于某verilog HDL的密码锁

FPGA基于某verilog HDL的密码锁

EDA课程设计课设名称:密码锁课设日期: 2014.6.23——7.5 姓名:陈飞学号:110250101哈尔滨工业大学(威海)信电学院电子信息工程2014.6一. 所用软件与硬件介绍1.1所用软件介绍QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII可以在XP、Linux以及Unix上使用,除了可以使用TCL脚本完成设计流程外,提供了完善的用户图形界面设计方式。

具有运行速度快,界面统一,功能集中,易学易用等特点。

QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

此外,QuartusII 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。

目前Altera已经停止了对MaxplusII 的更新支持,QuartusII 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。

Altera在QuartusII 中包含了许多诸如SignalTapII、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII 友好的图形界面及简便的使用方法。

电子密码锁verilog课程设计

电子密码锁verilog课程设计

电子密码锁verilog课程设计一、课程目标知识目标:1. 掌握电子密码锁的基本原理及其Verilog HDL实现方法;2. 了解数字电路设计的基本流程,包括设计、仿真和验证;3. 理解Verilog HDL语言的基本语法和结构,如模块、端口、信号定义等;4. 学会使用硬件描述语言进行简单的数字系统设计。

技能目标:1. 能够运用Verilog HDL语言设计一个具备基本功能的电子密码锁;2. 能够对所设计的电子密码锁进行功能仿真和时序分析;3. 能够根据实际需求调整和优化电子密码锁的设计;4. 培养学生的实际操作能力和问题解决能力。

情感态度价值观目标:1. 激发学生对数字电路和硬件描述语言的兴趣,培养其主动学习和探索的精神;2. 培养学生的团队合作意识,学会与他人共同解决问题;3. 增强学生的自信心,使其在克服困难的过程中体验到成就感;4. 引导学生关注科技发展,认识到所学知识在现实生活中的应用。

本课程针对高年级学生,结合课程性质、学生特点和教学要求,将目标分解为具体的学习成果。

在教学过程中,注重理论与实践相结合,使学生能够掌握电子密码锁的设计方法,提高其编程能力和实际操作技能。

同时,关注学生情感态度的培养,激发其学习兴趣,为学生的未来发展奠定基础。

二、教学内容本章节教学内容依据课程目标,结合教材相关章节,进行以下安排:1. 电子密码锁原理介绍:讲解电子密码锁的基本工作原理、组成和分类,使学生了解电子密码锁在实际应用中的重要性。

2. Verilog HDL基础知识:回顾Verilog HDL的基本语法、数据类型、运算符、赋值语句等,为学生编写电子密码锁程序打下基础。

3. 数字电路设计流程:介绍数字电路设计的基本流程,包括设计、仿真和验证,让学生了解实际工程项目的设计过程。

4. 电子密码锁设计:详细讲解电子密码锁的设计方法,包括密码存储、密码输入、密码比对和锁控逻辑等模块的设计。

5. 功能仿真及时序分析:教授如何对所设计的电子密码锁进行功能仿真和时序分析,以确保设计满足预期要求。

verilog的密码锁课程设计

verilog的密码锁课程设计

verilog的密码锁课程设计一、课程目标知识目标:1. 学生理解Verilog硬件描述语言的基本语法和结构;2. 学生掌握用Verilog设计简单的数字电路,特别是组合逻辑和时序逻辑;3. 学生能够描述密码锁的工作原理及其在数字系统中的应用;4. 学生了解基本的硬件仿真概念,并能运用到密码锁的设计中。

技能目标:1. 学生能够运用Verilog编写代码实现一个简单的密码锁电路;2. 学生能够通过仿真软件验证密码锁设计的正确性和功能;3. 学生能够对密码锁进行测试,并分析结果,进行故障诊断和修正;4. 学生具备团队协作能力,能在小组内有效沟通,共同完成密码锁的设计。

情感态度价值观目标:1. 学生培养对数字电路设计和硬件描述语言的兴趣,激发创新意识和探索精神;2. 学生通过实践活动,培养耐心、细致和严谨的科学态度;3. 学生在学习过程中,强化安全意识,了解密码学在实际生活中的重要意义;4. 学生通过小组合作,培养团队精神,学会尊重他人意见,共同进步。

课程性质:本课程属于实践性较强的课程,结合理论知识与实际操作,使学生在实践中掌握Verilog语言及数字电路设计。

学生特点:学生具备一定的数字电路基础,对编程和设计有一定的兴趣,喜欢动手实践。

教学要求:注重理论与实践相结合,强调学生动手能力,通过项目驱动教学,使学生能将所学知识运用到实际中。

同时,注重培养学生的团队协作能力和解决问题的能力。

二、教学内容1. Verilog基础知识回顾:包括数据类型、运算符、控制语句等,确保学生具备基本的编程能力。

(对应教材第2章)2. 数字电路设计基础:复习组合逻辑和时序逻辑设计原理,理解触发器、计数器等基本电路的工作原理。

(对应教材第3章)3. 密码锁原理讲解:介绍密码锁的构成、工作原理及其在现实生活中的应用。

(对应教材第5章)4. Verilog设计密码锁:教授如何运用Verilog语言编写密码锁代码,包括密码比对、锁的控制逻辑等。

基于Verilog语言的8位数字密码锁设计

基于Verilog语言的8位数字密码锁设计

基于Verilog语言的8位数字密码锁设计本科学生学年论文题目:8位数字密码锁设计学院:电子工程学院年级:2011级专业:电子科学与技术(光电子)姓名: 李思远学号:20112508指导教师:林连东2011年5月28日8位数字密码锁设计摘要本文简述了VHDL语言的功能及其特点,并以8位串行数字锁设计为例,介绍了在QUARTUS II 6. 0开发软件下,利用VHDL硬件描述语言设计数字逻辑电路的过程和方法。

关键词:VHDL语言数字锁QUARTUS II 6.0 硬件描述语言数字逻辑电路AbstractThis paper describes the function and characteristics of VHDL language, and eight serial number lock design as an example, this paper introduces QUARTUS II 6・ 0 software development in of VHDL hardware design of digital logic circuit process and method.Keywords: VHDL language QUARTUS II 6・ 0 hardware description language, digitallogic circuit8位数字密码锁设计第一章前言Abstract第二章密码锁系统的设计2.1设计要求2.2设计分析 (5)第三章软件设计 (6)第四章软件仿真及验证 (10)12参考文献 (13)致谢 (14)第一章前言电子密码锁系统主要由电子锁体、电子密匙等部分组成,一把电子密匙里能存放多组开锁密码,用户在使用过程中能够随时修改开锁密码,更新或配制钥匙里开锁密码。

一把电子锁可配制多把钥匙。

语音方面的广泛应用,使得具有语音播放的电子密码锁使用起来更加方便。

基于-VerilogHDL的数字密码锁的设计

基于-VerilogHDL的数字密码锁的设计

基于Verilog HDL的数字密码锁设计是一种常见的数字电路设计项目,它可以帮助学生理解数字逻辑电路和Verilog HDL的应用。

下面将详细介绍数字密码锁的设计方案。

一、系统结构设计数字密码锁主要由数字键盘、数码管显示、密码比对模块和控制逻辑组成。

数字键盘用于输入密码,数码管显示用于显示密码输入状态和开锁结果,密码比对模块用于比对输入的密码和预设的密码是否一致,控制逻辑用于控制整个系统的运行。

二、硬件设计1. 数字键盘:数字键盘采用矩阵式键盘,通过扫描按键来获取用户输入的密码。

2. 数码管显示:数码管用于显示密码输入状态,例如显示“请输入密码”、“密码正确”或“密码错误”等信息。

3. 密码比对模块:密码比对模块接收输入的密码和预设的密码,在Verilog HDL中实现密码比对逻辑。

4. 控制逻辑:控制逻辑用于控制密码输入、比对和显示的流程,以及控制门锁的开关。

三、Verilog HDL设计1. 数字键盘输入模块:编写Verilog HDL代码来接收数字键盘输入的密码。

2. 密码比对模块:编写Verilog HDL代码来比对输入的密码和预设的密码,输出比对结果。

3. 数码管控制模块:编写Verilog HDL代码来控制数码管的显示,根据密码比对结果显示相应的信息。

四、系统功能设计1. 密码输入功能:用户通过数字键盘输入密码。

2. 密码比对功能:系统对输入的密码进行比对,判断密码是否正确。

3. 显示功能:数码管显示密码输入状态和开锁结果。

五、仿真与综合完成Verilog HDL代码设计后,进行仿真验证,确保系统能够正常工作。

然后进行综合和布局布线,生成FPGA可编程文件。

六、总结与展望通过数字密码锁的设计,学生可以深入理解数字逻辑电路、Verilog HDL语言的应用,并且掌握数字密码锁系统的设计原理。

未来,可以进一步优化系统功能,增加更多的安全性和便利性功能,提升系统的性能和可靠性。

verilog的密码锁课程设计

verilog的密码锁课程设计

verilog的密码锁课程设计一、课程目标知识目标:1. 掌握Verilog硬件描述语言的基本语法和结构;2. 理解密码锁的原理及设计方法;3. 学会使用Verilog设计简单的密码锁电路。

技能目标:1. 能够运用Verilog编写密码锁的硬件描述代码;2. 能够对设计的密码锁进行功能仿真和时序分析;3. 能够根据实际需求调整密码锁的参数和结构。

情感态度价值观目标:1. 培养学生对数字电路设计领域的兴趣,激发学习热情;2. 培养学生团队合作精神,提高沟通与协作能力;3. 培养学生严谨的科学态度,注重实际操作和问题解决。

课程性质:本课程为实践性较强的数字电路设计课程,结合学生年级特点,注重理论知识与实际操作的结合。

学生特点:学生具备一定的电子基础和Verilog编程基础,对数字电路设计有一定了解。

教学要求:教师需引导学生通过理论学习与实践操作,掌握密码锁的设计方法,提高学生的实际操作能力和问题解决能力。

将课程目标分解为具体的学习成果,以便后续教学设计和评估。

1. Verilog基础知识回顾:变量声明与赋值、运算符、控制语句、模块与端口定义等;2. 密码锁原理介绍:密码锁工作原理、常见密码锁类型及其优缺点分析;3. Verilog设计密码锁:模块划分、密码生成与比对、锁的开闭控制;- 教材章节:第三章“组合逻辑设计”,第四章“时序逻辑设计”;- 教学内容:使用Verilog设计组合逻辑与时序逻辑电路,实现密码锁功能;4. 功能仿真及时序分析:利用ModelSim软件进行功能仿真,验证密码锁的正确性;- 教材章节:第六章“数字电路仿真与验证”;- 教学内容:仿真环境搭建,编写测试向量,进行功能仿真和时序分析;5. 密码锁优化与拓展:讨论如何提高密码锁的安全性和可靠性,进行性能优化;- 教材章节:第八章“数字电路优化技术”;- 教学内容:研究密码锁的冗余设计、功耗优化等方法。

教学内容安排和进度:1. 第一周:Verilog基础知识回顾,理解密码锁原理;2. 第二周:Verilog设计密码锁,模块划分与代码编写;3. 第三周:功能仿真及时序分析,优化密码锁设计;4. 第四周:总结与拓展,提高密码锁性能。

verlog课程设计

verlog课程设计

verlog课程设计一、课程目标知识目标:1. 理解Verilog硬件描述语言的基本概念,掌握其语法结构和编程规范;2. 学会使用Verilog设计简单的数字电路,如逻辑门、组合逻辑电路和时序逻辑电路;3. 掌握Verilog模块化设计方法,能够阅读和分析复杂的Verilog代码。

技能目标:1. 能够运用Verilog语言编写简单的数字电路程序,实现基本功能;2. 能够使用仿真工具对Verilog设计的电路进行测试和验证,分析并解决常见问题;3. 培养学生的团队合作能力,学会与他人共同分析和设计复杂的数字系统。

情感态度价值观目标:1. 培养学生对数字电路设计和Verilog编程的兴趣,激发学生的学习热情;2. 培养学生严谨、细致的学习态度,养成良好的编程习惯;3. 引导学生认识到数字电路在现代科技中的重要作用,增强学生的社会责任感和使命感。

课程性质:本课程为电子信息类专业的基础课程,旨在让学生掌握Verilog硬件描述语言,为后续学习数字电路设计、FPGA开发等课程打下基础。

学生特点:学生具备一定的电子技术基础,了解数字电路的基本原理,但Verilog编程经验较少。

教学要求:结合学生特点和课程性质,采用理论教学与实践操作相结合的方式,注重培养学生的实际操作能力和团队协作能力。

通过本课程的学习,使学生能够独立设计和实现简单的数字电路。

二、教学内容1. Verilog基础知识- Verilog语言概述:发展历程、应用领域和优势- 编程环境搭建:安装与配置Verilog开发工具- 数据类型与运算符:基本数据类型、运算符及其优先级2. 基本语法结构- 模块定义与端口声明:模块结构、端口定义- 常量与变量:定义和使用方法- 控制语句:顺序执行、分支、循环等控制结构3. 数字电路设计- 逻辑门设计:与、或、非、异或等基本逻辑门- 组合逻辑电路设计:编码器、译码器、多路选择器等- 时序逻辑电路设计:触发器、计数器、寄存器等4. 模块化设计方法- 模块化设计理念:模块划分、接口定义- 调用与实例化:模块调用、参数传递- 仿真与调试:测试代码编写、波形分析5. 实践项目- 设计简单的数字电路:如加减法器、比较器等- 分析并优化已有的Verilog代码:提高代码质量与性能- 团队合作项目:共同设计与实现一个复杂的数字系统教学内容安排与进度:本课程共分为10个教学单元,每个单元涵盖上述教学内容的一部分。

基于Verilog HDL密码锁设计

基于Verilog HDL密码锁设计

基于Verilog HDL密码锁设计摘要随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。

本设计使用EDA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。

使用EDA环境完成电路的系统综合设计和仿真。

用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁。

本设计基于Verilog HDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为蜂鸣器模块、显示模块、控制模块、顶层模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。

关键字密码锁 Verilog HDL Quartus II总体设计密码锁分为四个模块:①顶层模块、②显示模块、③蜂鸣器模块、④控制模块。

其中由顶层模块调其他分模块来实现密码锁功能。

密码锁功能:1.由12个拨码开关设置三位密码(0-9)2.再输入密码开锁,密码正确,指示灯亮开锁成功。

3.密码输入错误,蜂鸣器响五秒,表示开锁失败。

设计思路:本设计以007为万能密码在忘记密码时开锁使用。

开始时密码锁处于关闭的状态,输入万能密码将锁打开。

在锁处于打开的状态时设计密码,此时指示灯处于亮的状态,说明锁处于开的状态。

设置好密码后按关闭拨码使锁关闭,指示灯处于灭的状态。

再输入三位数字进行开琐,如果输入的密码正确则指示灯亮,表示开琐成功,否则蜂鸣器发出响声,并持续五秒钟,表示开锁失败。

总体框图input n0,n1,n2,n3,n4,n5,n6,n7,n8,n9;input set,close;input clk1,clk2,clk3;output lock,alarm,ss1,ss0;output[6:0] Q;reg lock,alarm;reg ss0,ss1;reg[6:0] Q;wire[3:0] X1,X2,X3;wire X4,X5;codeu1(.lock(lock),.warning(X4),.num1(X1),.num2(X2),.num3(X3),.clk(clk1), .n0(n0),.n1(n1),.n2(n2),.n3(n3),.n4(n4),.n5(n5),.n6(n6),.n7(n7),.n8(n 8),.n9(n9),.set(set),.close(close));showu2(.A(X1),.B(X2),.C(X3),.clk(clk2),.Q(Q[6:0]),.ss1(ss1),.ss0(ss0)); speaker u3(.ENA(X4),.CLK2(clk3),.COUT(alarm));endmodule2.蜂鸣器模块蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用各类电子产品中作发声器件。

FPGA基于verilog HDL的密码锁

FPGA基于verilog HDL的密码锁

EDA课程设计课设名称:密码锁课设日期: 2014。

6.23——7.5 姓名:陈飞学号:110250101哈尔滨工业大学(威海)信电学院电子信息工程2014。

6一。

所用软件与硬件介绍1.1所用软件介绍QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程.QuartusII可以在XP、Linux以及Unix上使用,除了可以使用TCL脚本完成设计流程外,提供了完善的用户图形界面设计方式.具有运行速度快,界面统一,功能集中,易学易用等特点.QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具.此外,QuartusII 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。

目前Altera已经停止了对MaxplusII 的更新支持,QuartusII 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。

Altera在QuartusII 中包含了许多诸如SignalTapII、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII 友好的图形界面及简便的使用方法。

EDA技术Verilog密码锁

EDA技术Verilog密码锁

电子科技大学实验报告学生姓名:吴成峰学号:2014070906016 指导教师:黄志奇一、实验室名称:主楼C2-514二、实验项目名称:密码锁三、实验原理:利用FPGA 开发班上的 3 个按钮开关btn[2:0] 来输入 4 位数字的密码。

例如,输入“ 2-0-1-2”打开门锁。

将用拨位开关sw[7:0] 来设置密码,通过按钮开关btn[2:0] 来输入密码。

其中,btn[0] 、btn[1]和btn[2]分别对应的有效输入为“00”(十进制0)、“01 ”(十进制1)和“ 10”(十进制2), sw[7:6]、sw[5:4]、sw[3:2]和sw[1:0] 分别对应密码的1 、2、3、4 位。

用sw[7:0]设置密码的同时,通过7段数码管复用电路,将其显示到7段数码管上。

注意:需将8位输入扩展成16位,即,x[15:0]={2 'b00,sw[7:6], 2'b00,sw[5:4], 2'b00,sw[3:2], 2'b00,sw[1:0]}输入 4 位数字后,才能知道所输入的密码是否正确。

如果密码是正确的,led[1]亮起;如果密码错误,led[0]将亮起。

图 1 给出了设计的顶层模块。

当按下btn[0]、btn[1]、btn[2]中任何一个按钮时,将会产生一个时钟脉冲。

当分别按下按钮btn[0]、btn[1]、btn[2]时,锁模块对应的2 位输入bn[1:0]为“00”、“ 01”和“ 10”。

输入的密码与拨位开关上设置的密码相比较,产生图2所示的状态转移图。

注意:即使密码输入错误,也必须完成完整的4位密码输入,才能进入“ fail”状态E4。

mclk50Hz图1•门锁电路的顶层模块btn[0] btn[l] btn[2:图2•门锁电路的状态转移图四、实验目的:熟悉利用HDL代码输入方式进行组合逻辑电路的设计和仿真的流程,掌握Verilog语言的基本语法。

基于VerilogHDL密码锁设计

基于VerilogHDL密码锁设计

基于Verilog HDL密码锁设计摘要随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。

本设计使用EDA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。

使用EDA环境完成电路的系统综合设计和仿真。

用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁。

本设计基于Verilog HDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为蜂鸣器模块、显示模块、控制模块、顶层模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。

关键字密码锁 Verilog HDL Quartus II总体设计密码锁分为四个模块:①顶层模块、②显示模块、③蜂鸣器模块、④控制模块。

其中由顶层模块调其他分模块来实现密码锁功能。

密码锁功能:1.由12个拨码开关设置三位密码(0-9)2.再输入密码开锁,密码正确,指示灯亮开锁成功。

3.密码输入错误,蜂鸣器响五秒,表示开锁失败。

设计思路:本设计以007为万能密码在忘记密码时开锁使用。

开始时密码锁处于关闭的状态,输入万能密码将锁打开。

在锁处于打开的状态时设计密码,此时指示灯处于亮的状态,说明锁处于开的状态。

设置好密码后按关闭拨码使锁关闭,指示灯处于灭的状态。

再输入三位数字进行开琐,如果输入的密码正确则指示灯亮,表示开琐成功,否则蜂鸣器发出响声,并持续五秒钟,表示开锁失败。

总体框图图总体框图模块功能其及主要代码1.顶层模块实现几个模块的配合工作,它能实现对密码的设置和显示,同时在密码正确时时灯亮,在密码错误时蜂鸣器发出五秒钟的响声。

程序如下:moduledingceng(n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,set,close,clk1,clk2,clk3,lock, alarm,Q,ss1,ss0);input n0,n1,n2,n3,n4,n5,n6,n7,n8,n9;input set,close;input clk1,clk2,clk3;output lock,alarm,ss1,ss0;output[6:0] Q;reg lock,alarm;reg ss0,ss1;reg[6:0] Q;wire[3:0] X1,X2,X3;wire X4,X5;codeu1(.lock(lock),.warning(X4),.num1(X1),.num2(X2),.num3(X3),.clk(clk1), .n0(n0),.n1(n1),.n2(n2),.n3(n3),.n4(n4),.n5(n5),.n6(n6),.n7(n7),.n8(n 8),.n9(n9),.set(set),.close(close));showu2(.A(X1),.B(X2),.C(X3),.clk(clk2),.Q(Q[6:0]),.ss1(ss1),.ss0(ss0)); speaker u3(.ENA(X4),.CLK2(clk3),.COUT(alarm));endmodule2.蜂鸣器模块蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用各类电子产品中作发声器件。

基于Verilog HDL的数字密码锁的设计

基于Verilog HDL的数字密码锁的设计

成绩课程设计报告题目:基于Verilog HDL的数字密码锁的设计学生姓名:江留胜学生学号:**********系别:电气信息工程学院专业:电子信息工程届别:2013届指导教师:马立宪基于Verilog HDL的数字密码锁的设计学生:江留胜指导教师:马立宪电气信息工程学院电子信息工程1课程设计的任务与要求1.1 课程设计的任务设计一个6位的数字密码锁,利用Verilog HDL语言来实现,并使用QuartusⅡ进行仿真与调试。

1.2 课程设计的要求设计一个简单的数字密码锁,密码为6位,其功能:1、在内部设置密码,其密码用6位十进制数表示。

2、输入密码时,每次输入一位数,输入后按#进行确认。

3、当输入的密码顺序与设置的密码一致时,密码锁打开,否则,则报警。

4、具有重置密码的功能。

输入密码正确后按*号键输入要重的密码,按#号键确认密码的重置,连续输入两次,则密码重置成功。

使用Verilog HDL语言编写密码锁的开锁过程的程序,并借助QuartusⅡ软件对其进行仿真,观察实验波形。

1.3 课程设计的研究基础(设计所用的基础理论)密码锁就是要有一定的自我保护功能,并且能够定时更新防止破译的危险。

密码锁控制器是硬件与软件的结合。

Verilog HDL是一种优秀的硬件描述语言,它与C语言有许多相似之处,并继承和借鉴了C语言的多种操作符和语法结构,有C语言基础的人很快就能够学习并使用该语言。

在本次计中,系统开发平台为QuartusⅡ。

QuartusⅡ界面友好,使用便捷,被誉为业界最易用易学的EDA软件。

在QuartusⅡ上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。

在本次设计中,采用的硬件描述语言是Verilog HDL。

Verilog HDL也是目前应用最为广泛的硬件描述语言,并被IEEE采纳为IEEE#1064-1995标准。

基于Verilog HDL的数字密码锁的设计

基于Verilog HDL的数字密码锁的设计

成绩课程设计报告题目:基于Verilog HDL的数字密码锁的设计学生姓名:江留胜学生学号:**********系别:电气信息工程学院专业:电子信息工程届别:2013届指导教师:马立宪基于Verilog HDL的数字密码锁的设计学生:江留胜指导教师:马立宪电气信息工程学院电子信息工程1课程设计的任务与要求1.1 课程设计的任务设计一个6位的数字密码锁,利用Verilog HDL语言来实现,并使用QuartusⅡ进行仿真与调试。

1.2 课程设计的要求设计一个简单的数字密码锁,密码为6位,其功能:1、在内部设置密码,其密码用6位十进制数表示。

2、输入密码时,每次输入一位数,输入后按#进行确认。

3、当输入的密码顺序与设置的密码一致时,密码锁打开,否则,则报警。

4、具有重置密码的功能。

输入密码正确后按*号键输入要重的密码,按#号键确认密码的重置,连续输入两次,则密码重置成功。

使用Verilog HDL语言编写密码锁的开锁过程的程序,并借助QuartusⅡ软件对其进行仿真,观察实验波形。

1.3 课程设计的研究基础(设计所用的基础理论)密码锁就是要有一定的自我保护功能,并且能够定时更新防止破译的危险。

密码锁控制器是硬件与软件的结合。

Verilog HDL是一种优秀的硬件描述语言,它与C语言有许多相似之处,并继承和借鉴了C语言的多种操作符和语法结构,有C语言基础的人很快就能够学习并使用该语言。

在本次计中,系统开发平台为QuartusⅡ。

QuartusⅡ界面友好,使用便捷,被誉为业界最易用易学的EDA软件。

在QuartusⅡ上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。

在本次设计中,采用的硬件描述语言是Verilog HDL。

Verilog HDL也是目前应用最为广泛的硬件描述语言,并被IEEE采纳为IEEE#1064-1995标准。

基于FPGA的verilog的电子密码锁设计

基于FPGA的verilog的电子密码锁设计

《EDA技术》设计报告题目:学院:专业:班级:姓名:学号:一.引言1.1 电子密码锁的现状随着我国对外开放的不断深入,高档建筑发展很快,高档密码锁具市场的前景乐观。

我国密码锁具行业对密码锁具高新技术的投入正逐年增大,高档密码锁的市场需求也逐年增加。

在安防工程中,锁具产品是关系到整个系统安全性的重要设备,所以锁具产品的优劣也关系了整个安防工程的质量和验收。

目前,市场上比较先进的智能电子密码锁分别有:IC卡电子密码锁、射频卡式电子密码锁、红外遥控电子密码锁、指纹识别电子密码锁和瞳孔识别电子密码锁等。

IC卡电子密码锁成本低,体积小,卡片本身无须电源等优点占领了一定的市场份额,但是由于有机械接触,会产生接触磨损,而且使用不太方便,在一定程度上限制了它的应用;射频卡式电子密码锁是非接触式电子密码锁,成本也不太高,体积跟IC卡密码锁相当,卡片使用感应电源,重量很轻,技术成熟,受到了广泛的欢迎,但是与IC卡电子密码锁相比,成本偏高;指纹识别电子密码锁和瞳孔识别电子密码锁可靠性很高,安全性是目前应用系统中最高的,但是成本高昂,还没进入大众化使用阶段。

在国外,美国、日本、德国的电子密码锁保密性较好,并结合感应卡技术,生物识别技术,使电子密码锁系统得到了飞跃式的发展。

这几个国家的密码锁识别的密码更复杂,并且综合性比较好,已经进入了成熟期,出现了感应卡式密码锁,指纹式密码锁,虹膜密码锁,面部识别密码锁,序列混乱的键盘密码锁等各种技术的系统,它们在安全性,方便性,易管理性等方面都各有特长,新型的电子密码锁系统的应用也越来越广。

基于FPGA的电子密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算机技术,通讯技术,生物技术等诸多新技术。

它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。

在数字技术网络技术飞速发展的今天,电子密码锁技术得到了迅猛的发展。

基于VerilogHDL密码锁设计

基于VerilogHDL密码锁设计

基于Verilog HDL密码锁设计摘要随着科技的开展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,平安性不高,电子密码锁其性高,使用灵活性好,平安系数高,使用方便,将会是未来使用的趋势。

本设计使用EDA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。

使用EDA环境完成电路的系统综合设计和仿真。

用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁。

本设计基于Verilog HDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为蜂鸣器模块、显示模块、控制模块、顶层模块进展了介绍,给出各个模块的主要代码,在对各个模块的功能进展仿真。

关键字密码锁Verilog HDL Quartus II总体设计密码锁分为四个模块:①顶层模块、②显示模块、③蜂鸣器模块、④控制模块。

其中由顶层模块调其他分模块来实现密码锁功能。

密码锁功能:1.由12个拨码开关设置三位密码〔0-9〕2.再输入密码开锁,密码正确,指示灯亮开锁成功。

3.密码输入错误,蜂鸣器响五秒,表示开锁失败。

设计思路:本设计以007为万能密码在忘记密码时开锁使用。

开场时密码锁处于关闭的状态,输入万能密码将锁翻开。

在锁处于翻开的状态时设计密码,此时指示灯处于亮的状态,说明锁处于开的状态。

设置好密码后按关闭拨码使锁关闭,指示灯处于灭的状态。

再输入三位数字进展开琐,如果输入的密码正确则指示灯亮,表示开琐成功,否则蜂鸣器发出响声,并持续五秒钟,表示开锁失败。

总体框图灯亮,在密码错误时蜂鸣器发出五秒钟的响声。

程序如下:moduledingceng(n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,set,close,clk1,clk2,clk3,lock, alarm,Q,ss1,ss0);input n0,n1,n2,n3,n4,n5,n6,n7,n8,n9;input set,close;input clk1,clk2,clk3;output lock,alarm,ss1,ss0;output[6:0] Q;reg lock,alarm;reg ss0,ss1;reg[6:0] Q;wire[3:0] *1,*2,*3;wire *4,*5;codeu1(.lock(lock),.warning(*4),.num1(*1),.num2(*2),.num3(*3),.clk(clk1),.n 0(n0),.n1(n1),.n2(n2),.n3(n3),.n4(n4),.n5(n5),.n6(n6),.n7(n7),.n8(n8),.n 9(n9),.set(set),.close(close));show u2(.A(*1),.B(*2),.C(*3),.clk(clk2),.Q(Q[6:0]),.ss1(ss1),.ss0(ss0)); speaker u3(.ENA(*4),.CLK2(clk3),.COUT(alarm));endmodule2.蜂鸣器模块蜂鸣器是一种一体化构造的电子讯响器,采用直流电压供电,广泛应用各类电子产品中作发声器件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告课程设计题目:4位串行数字密码锁学号:************学生姓名:谢渊良专业:通信工程班级:1421302指导教师:钟凯2017年1月5日1.摘要随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。

本设计使用EDA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。

使用EDA环境完成电路的系统综合设计和仿真。

用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁。

本设计基于Verilog HDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为键盘模块、连接模块、控制模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。

关键字:密码锁Verilog HDL2.设计内容设计一个4位数字密码锁子系统1)1.2设计要求 开锁密码为4位二进制,当输入密码与锁内给定的密码一致时,方可开锁。

否则进入“错误”状态,发出报警信号。

2)锁内的密码可调。

3)串行数字密码锁的报警,直到按下复位开关,才停下。

此时,数字密码锁又自动等待下一个开锁状态。

3.系统设计本设计中,FPGA 系统采用硬件描述语言Verilog 按模块化方式进行设计,并用modersim 软件对各个模块进行编写仿真。

3.1键盘模块键盘电路理想接口图:flagSetReset key_value设计原理:本模块采用2×2的扫描键盘电路,对输入信号进行采集,此模块的主要功能是每按下一个按键,flag 产生一个矩形波,作为连接模块的触发信号。

同时key_value 值为所按下键的编码值,与flag 一同传入连接模块。

实际设计接口图:flagkey_value键盘模块仿真图:跟据图中所示当输出kevalue:10值的时候,flag出现一个矩形波。

当输出kevalue:11值的时候,flag再次出现上跳沿。

实际上,上面的图写的测试文件是有一点错误的,当a扫描到第三个值(01)时,b在实际电路中应该是01而不是11,此时根据程序flag应置为1,当然此时flag本来就是1,不会发生错误。

在实际中,时钟频率跳的如此之快,人按一下按键的持续时间还是有的,所以flag应在按键按完后再下降下来。

不然多出很多无用的矩形波,这个装置就没用了。

3.2连接模块连接模块接口图:flag2akeyvalue bcdsetreset设计原理:本连接模块通过flag信号下降沿触发,将keyvalue送入连接模块进行运算,当连续四个0和1键按下时,flag2产生一个矩形波,并将四个值分别送入a,b,c,d中,如果按下的是set键,则set置1,如果按下的是reset键,则reset键置1;a_led,b_led是灯泡,如果按的是0键,则a_led置1,若是1键,则b_led置1。

连接模块仿真图如下:这里有一个需要注意的点是,当第一次按了0键后马上按reset键,再按一下1键时,a的值是1,而不是0。

每次按了reset或set,a,b,c,d都是要重新赋值的,这才符合实际情况。

3.3控制模块:因为这个密码锁是循环使用的,就一定有不同的状态。

这里采用有限状态机的方法进行设计。

所以把开锁过程分为三个部分:1.等待输入状态;2.重设密码状态;3.输出结果状态;状态转换图如下所示:控制模块接口图:enacd d_ledsetreseclkt设计原理:通过各种状态的转变,实现密码锁的开锁,报错,重设密码功能。

当密码错误是ena=1;当重设密码成功时c_led置为1;当输入密码成功开锁时d_led为1。

控制模块仿真如下:因为初设密码是0000,所以在第一个flag2的矩形波到来后,d_led出现一个矩形波,实际上不应该出现矩形,一直亮直到reset重置才行。

或者设计一个计数器都行,虽然只是一些小错误,但如果在实际验证中可能现象就不易观察了。

然后就是按下set键的模拟了,波形都达到了课设的要求。

这是令人欣喜的,虽然经过了很多次的修改,实在是很不容易。

4.实验心得我从第二个星期的星期一开始做,本来只是随便做一下,但是看到周围同学都热情高昂,我也深受感染,然后开始查资料,后面看到这个状态机的方法很不错,很方便的解决了状态的转换问题,然后我就尝试这个方法。

同时在写程序的时候我也遇到了很多了困难,其中最难找的错误就是逻辑错误,但是最终还是一一被我解决了。

心中的成就感还是有一些的。

通过此次的课设,使我对数字电路的设计有更深层次的了解(各种时序),对verilog语言的运用也更加熟练。

由于时间和心力有限的原因,使我只能止步各个模块的设计了。

本来还想联合仿真的,但是电脑里只装了modersim,其中又有一个键盘开关的硬件,还是比较难实现的。

我想,如果我的程序下载到fpga芯片里,那是一定会出现不少错误的,实际的情况往往更加复杂,这也是我的一大遗憾!最后我要感谢我的室友,感谢他们对我的关爱,在我将要放弃的时候鼓励我,使我积极向前。

在此,我还要特别感谢英明兄的无私帮助,减少了我找编译错误的时间。

还依稀记得上次的数电感觉也是如此,很不错啊。

附:Verilog程序代码1.1 Key_board_input: module key_board_input(clk,a,b,keyvalue,flag ,q,j); input clk;input[1:0] b;output reg[1:0] a;output reg[1:0] keyvalue;output reg flag;output reg q=1;output reg[1:0] j=0;always @(posedge clk)beginq=q+1;case(q)0:a=2'b01;1:a=2'b10;endcasecase({a,b})4'b10_01:beginkeyvalue=2'b00;flag=1;j=3;end4'b10_10:beginkeyvalue=2'b01;flag=1;j=3;end4'b01_01:beginkeyvalue=2'b10;flag=1;j=3;end4'b01_10:beginkeyvalue=2'b11;flag=1;j=3;enddefault:keyvalue=keyvalue;endcasebeginj=j+1;if(j==3) flag=0;endendendmodule1.2 key_board_test: `timescale 1s/1smodule key_board_test();reg clk;reg[1:0] b;wire[1:0] a;wire[1:0] keyvalue;wire flag;wire q;wire [1:0] j;key_board_input u2(clk,a,b,keyvalue,flag,q,j); initialbegin#0 clk=0;#2 clk=1;b=1;#2 clk=0;#2 clk=1;b=3;#2 clk=0;#2 clk=1;b=3;#2 clk=0;#2 clk=1;b=3;#2 clk=0;#2 clk=1;b=2;#2 clk=0;#2 clk=1;b=3;#2 clk=0;#2 clk=1;b=3;#2 clk=0;#2 clk=1;b=3;endendmodule2.1 connect:moduleconnect(flag,keyvalue,a_led,b_led,flag2,a,b,c,d,set1,reset,jishu,jishu1,jish u2,hh);input flag;input [1:0]keyvalue;output reg a_led,b_led,flag2,a,b,c,d,set1,reset;output reg [1:0] jishu=2'b00;output reg [1:0]jishu1=0,jishu2=0,hh=0;always@(negedge flag)beginjishu2<=jishu2+1;jishu1<=jishu1+1;if(keyvalue<2)beginif(jishu==3)beginjishu<=0;endelsejishu<=jishu+1;endif(jishu==0)flag2=0;if(keyvalue==2) beginhh<=jishu1;jishu<=0;endif(jishu1==(hh+1))beginset1<=0;endif(keyvalue==2'd3) beginhh<=jishu2;jishu<=0;endif(jishu2==(hh+1))beginreset<=0;end/*if(jishu==0)flag2=0;/*set????*/ case(jishu)0:begincase(keyvalue)0:begina<=0;a_led=1;b_led=0;end1:begina=1;a_led=0;b_led=1;end2:beginset1=1;end3:beginreset=1;endend1:begincase(keyvalue)0:beginb=0;a_led=1;b_led=0;end1:beginb=1;a_led=0;b_led=1;end2:beginset1=1;end3:beginreset=1;endendcase2:begincase(keyvalue)0:beginc=0;a_led=1;b_led=0;end1:beginc=1;a_led=0;b_led=1;end2:beginset1=1;end3:beginreset=1;end endcaseend3:begincase(keyvalue)0:begind=0;a_led=1;b_led=0;flag2=1;end1:begind=1;a_led=0;b_led=1;flag2=1;end2:beginset1=1;end3:beginreset=1;end endcaseendendcaseendendmodule2.2 connect_test:`timescale 1s/1smodule connect_test();reg flag;reg[1:0] keyvalue;wire a_led,b_led,flag2,a,b,c,d,set1,reset;wire [1:0]jishu;wire[1:0] jishu1,jishu2,hh;connectu2(flag,keyvalue,a_led,b_led,flag2,a,b,c,d,set1,reset,jishu,jishu1,jishu2,hh) ;initialbegin#0 flag=0;#2 flag=1;keyvalue=1;#2 flag=0;#2 flag=1;keyvalue=3;#2 flag=0;#2 flag=1;keyvalue=0;#2 flag=0;#2 flag=1;keyvalue=0;#2 flag=0;#2 flag=1;keyvalue=1;#2 flag=0;#2 flag=1;keyvalue=0;#2 flag=0;endendmodule3.1 control:modulecontrol(clk,flag2,a,b,c,d,set1,reset,control_set,ena,c_led,d_led,state,a1,b1, c1,d1,hhh);input clk,flag2,a,b,c,d,set1,reset;output reg ena,c_led,d_led,control_set;output reg[1:0] state=0;output reg a1=0,b1=0,c1=0,d1=0;output reg hhh=0;parameter in=2'b00,set=2'b01,out1=2'b10;always@(posedge clk or posedge set1 or posedge reset or flag2) begincase(state)in:beginif(reset==1)state=in;else if(set1==1)beginstate=set;control_set=1;endelse if (control_set==1&&hhh==1)beginstate=in;control_set=0;hhh=0;endelse if(flag2==1)state=out1;elsebeginena=0;c_led=0;control_set=0;d_led=0;endendset:beginif(reset==1)state=in;else if(set1==1)beginstate=set;control_set=1;endelse if(flag2==1&&control_set==1)begina1=a;b1=b;c1=c;d1=d;hhh=1;c_led=1;state=in;endendout1:beginif(reset==1)state=in;elsebeginif(a==a1&b==b1&c==c1&d==d1)beginena=0;d_led=1;state=in;endelsebeginena=1;state=out1;endendenddefault:state=in;endcaseendendmodule3.2 control_test:`timescale 1s/1smodule control_test();reg clk,flag2,a,b,c,d,set1,reset;wire ena,c_led,d_led,control_set;wire [1:0] state;wire a1,b1,c1,d1;wire hhh;controlu2(clk,flag2,a,b,c,d,set1,reset,control_set,ena,c_led,d_led,state,a1,b1,c1,d 1,hhh);always #10 clk=~clk;initialbegin clk=0;reset=0;flag2=0;a=0;b=0;c=0;d=0;set1=0;reset=0;#10 a=0;#20 b=0;#20 c=0;#20 d=0;flag2=1;#20 flag2=0;#50 reset=1;#20 reset=0;#50 set1=1;#20 a=1; set1=0; #20 b=1;#20 c=0;#20 d=0;flag2=1; #20 flag2=0;#20 reset=1;#20 reset=0;#80 a=0;#20 b=0;#20 c=0;#20 d=0;flag2=1; #20 flag2=0;#20 reset=1;#20 reset=0; end endmodule东华理工大学课程设计评分表学生姓名:谢渊良班级:1421302 学号:201420130326课程设计题目:4位串行数字密码锁。

相关文档
最新文档