EDA技术Verilog密码锁

合集下载

基于EDA技术的电子密码锁设计

基于EDA技术的电子密码锁设计

基于EDA技术的电子密码锁设计基于EDA 技术设计的电子密码锁,以其价格便宜、安全可靠、使用方便,受到了人们的普遍关注。

而以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言(VHDE)为主要表达方式,以QuartusⅡ开发软件和GW48EDA 开发系统为设计工具设计的电子密码锁,由于其能够实现数码输入、数码清除、密码解除、密码更改、密码上锁和密码解除等功能,因此,能够满足社会对安全防盗的要求。

1 电子密码锁的基本功能电子密码锁主要实现的功能包括:(1)数码输入:按下一个数字键,其对应的数字就显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。

设计密码为4 位,系统只能显示前4 位输人的数码。

(2)数码清除:当按下清除键时,清除前面输入的所有值,并显示为--- -。

(3)密码解除:按下55#键,可以将电子密码锁的旧密码解除。

(4)密码更改:将旧密码解除之后,可以进行密码更改。

输入任意四位密码数字,再按#号就可以将输入的数码当作新的密码。

(5)密码上锁:输入新的密码之后,按下11# 键,可以进行密码上锁操作。

(6)密码解锁:按下99#键,再输入数码;如果输入与系统储存密码一致,密码锁就能开启;否则不能解锁。

2 电子密码锁的结构原理2.1 电子密码锁的整体结构电子密码锁的整体结构如图1 所示,它包括密码锁输入模块、控制模块和显示模块等。

2.2 密码锁输入模块密码锁输入模块的电路框图如图2 所示,它由时序产生电路、键盘扫描电路、弹跳消除电路、键盘译码电路和按键存储电路组成。

时序产生电路用于产生电路中三种不同频率的工作脉冲波形,包括系统时钟信号、弹跳消除取样信号和键盘扫描信号。

键盘电路可提供键盘扫描信号。

该信号由ky3~ky0 进入键盘,其变化的顺序为1110-1101-1011-0111-1110 周而复始。

扫描信号0111 代表扫描的为*、0、#这一排按键,当*这个按键被按下时,由kx2~kx0 读出的值为011。

eda课程设计--电子密码锁

eda课程设计--电子密码锁

绍兴文理学院数理信息学院课程设计报告书题目电子密码锁设计姓名XXX学号XXX专业班级电信指导教师时间2013年1月14日课程设计任务书 班 级电信XXX 姓 名 XXX题目电子密码锁设计 技术参数、设计要求、检测数据等在EDA 实验箱上利用FPGA 、4*4键盘及数码管实现电子密码锁,功能要求如下: ● 模拟实现电子密码锁的开锁、解锁、改密码等基本功能 ● 实现万能密码功能 ● 当用户密码连续3次输入错误时,报警并锁定键盘 ● 当用户密码输入时间超过一定值(如30秒)时,提示超时 ● 在密码设置状态下输入密码时,所输入数字在数码管显示;其余状态下,所输密码在对应数码管上以特殊字符屏蔽显示 设计进度安排或工作计划 2013.1.4 ~2013.1.4: 任务分配,熟悉课题,查询相关资料,出方案初稿。

2013.1.5~2013.1.5: 方案交流并定稿,划分设计模块,课程设计开展。

2013.1.6~2013.1.7: 各模块设计实现及调试、验证。

(其中8、9 号暂停)2013.1.10~2013.1.13: 设计整体实现、调试及验证,并开始撰写报告。

2013.1.14~2013.1.15: 设计完成,课程设计报告撰写并定稿,上交。

其它认真阅读EDA 技术课程设计报告撰写规范;课题小组经协商好要指定组长并明确分工,形成良好团队工作氛围;基于课题基本要求,各小组课再细化、增加要求;课题小组每成员均需各自撰写一份课程设计报告。

电子密码锁设计摘要本文介绍了一种采用单片FPGA芯片进行电子密码锁的设计方法,主要阐述如何使用新兴的EDA器件取代传统的电子设计方法,利用FPGA的可编程性,简洁而又多变的设计方法,缩短了研发周期。

电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。

它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。

密码锁是以芯片为核心,通过编程来实现的,其性能和安全性已大大超过了机械锁。

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语言编写密码锁代码,包括密码比对、锁的控制逻辑等。

eda电子密码锁课程设计

eda电子密码锁课程设计

eda电子密码锁课程设计一、课程目标知识目标:1. 理解EDA(电子设计自动化)的基本概念,掌握其在电子密码锁设计中的应用。

2. 学习并掌握电子密码锁的基本原理,包括密码设置、存储、识别和验证过程。

3. 掌握电子密码锁设计中涉及的电子元件、电路图绘制及电路功能。

技能目标:1. 能够运用EDA软件完成电子密码锁的电路设计,具备基本的电路仿真能力。

2. 能够运用编程语言(如C语言)编写简单的密码验证程序,实现电子密码锁的功能。

3. 学会使用常见的电子测量工具,对电子密码锁进行调试和故障排查。

情感态度价值观目标:1. 培养学生对EDA技术及其在电子设计中的应用产生兴趣,激发学生的创新意识和探索精神。

2. 培养学生团队协作意识,提高沟通与协作能力,学会共同解决问题。

3. 增强学生的安全意识,了解电子密码锁在实际应用中的重要性,培养学生的责任心。

课程性质:本课程为实践性较强的课程,注重理论知识与实际操作相结合,旨在提高学生的实际动手能力和创新能力。

学生特点:学生具备一定的电子基础知识,对EDA技术有一定了解,但对电子密码锁的设计和制作相对陌生。

教学要求:结合课程性质、学生特点,将课程目标分解为具体的学习成果,通过理论教学、实践操作、团队协作等多种教学方式,确保学生能够达到课程目标。

同时,注重过程评估和成果评估,以提高教学效果。

二、教学内容根据课程目标,教学内容分为以下三个部分:1. 理论知识学习- 电子设计自动化(EDA)基本概念与原理- 电子密码锁的工作原理及其电路组成- 密码学基础,包括密码设置、存储和验证方法教学大纲:参照教材相关章节,安排2个课时进行理论知识学习。

2. 实践操作与技能培养- EDA软件使用,包括电路图绘制、仿真与调试- 编程语言(C语言)基础,编写密码验证程序- 电子元件识别与使用,完成电子密码锁的搭建教学大纲:实践操作部分安排4个课时,分为两次课程完成。

3. 团队协作与创新能力培养- 分组讨论,共同设计电子密码锁方案- 成果展示,组间交流与评价- 故障排查与优化,提高电子密码锁的安全性与稳定性教学大纲:团队协作部分安排2个课时,在实践操作过程中穿插进行。

EDA电子密码锁

EDA电子密码锁

EDA电子密码锁电子密码锁设计要求1) 设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁; 2) 在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁;3) 从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。

1、方案论证与对比1.1 方案一方案一是用以AT89C2051为核心的单片机控制方案。

共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。

设计方框图如图1所示。

1.2 方案二报警方案二是用本学期所学的EDA 技术中的VHDL 语言来实现方案。

设计方框图如图2所示。

1.3 比较由于单片机方案原理复杂,而且调试较为繁琐,并且是用C 语言或者汇编语言实现功能,构成的是软件,容易受到外界影响;而有EDA 技术中VHDL (硬件描述语言),构成的是硬件本身,不容易受到外界的干扰,所以本文采用后一种方案。

方案一是基于软件的编程语言,对硬件和软件的要求都很高,方案二则是基于硬件设计的语言,很容易对硬件电路实现编程下载;2.总体模块设计本设计采用EDA 技术和VHDL 语言设计了一种按键输入密码并数码管回显,当输入正确密码时轰动绿灯亮、红灯熄灭表示开锁,而当输入错误密码时,红灯亮、绿灯熄灭表示关锁。

根据系统设计要求,系统设计采用自顶向下的设计方法。

顶层设计采用原理图设计方式,系统的整体组装设计原理图如图2-1所示。

EDA-密码锁

EDA-密码锁

EDA课程设计——电子密码锁一、设计目的:在学习完大部分内容后,设计一个功能和市面上一模一样的“4位数电子密码锁”,可让学生学习查找相关资料,并对小型项目开发有一定的认识。

使学生能进行模块化设计,对每部分电路进行讨论、说明与仿真验证,最后在整合起来。

二、所需器材:本设计所需的硬件主要有:矩阵键盘、七段译码器,七段管脚数码管。

三、设计内容和要求:1、数码输入:每按下一个数字键,就输入一个数值,并在显示器上的最右方显示,将先前的输入数据依序左移一个数字位置。

2、数码清除:按下此键可清除之前所有的输入值,清除成为“0000”。

3、密码更改:按下此键时会将目前的数字设定成新的密码。

4、激活电锁:按下此键可将密码锁上锁。

5、解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。

四、设计程序和调试情况:实验程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity key_led isport (x :in std_logic_vector(3 downto 0);y :out std_logic_vector(3 downto 0);clk :in std_logic;clr :in std_logic;ch_code :in std_logic;dx :out std_logic_vector(6 downto 0);wx :out std_logic_vector( 3 downto 0);open_key :out std_logic);end key_led;architecture one of key_led issignal count :std_logic_vector(10 downto 0);signal clk_key :std_logic;signal clk_key_1 :std_logic;signal clk_led :std_logic;signal key_in_0 :std_logic_vector(7 downto 0);signal key_in :std_logic_vector(4 downto 0);signal y_0 :integer range 0 to 3;signal y_temp :std_logic_vector(3 downto 0);signal SG :std_logic_vector(6 downto 0);signal j :std_logic_vector(2 downto 0);signal i :std_logic_vector(2 downto 0);signal i_test :std_logic_vector(2 downto 0);subtype one is std_logic_vector(6 downto 0);type two is array (3 downto 0) of one;signal Q :two;signal code :two;signal key_count :std_logic_vector(2 downto 0);beginfrequency division:process(clk)beginif(clk'event and clk='1') thenif(count="11111111111") thencount<=(others=>'0');else count<=count+1;end if;end if;end process;clk_key<=count(1);clk_led<=count(0);--再产生clk_key_1分频。

基于-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. 第四周:总结与拓展,提高密码锁性能。

eda课程设计电子密码锁

eda课程设计电子密码锁

eda课程设计电子密码锁一、课程目标知识目标:1. 学生能理解电子密码锁的基本原理,掌握其电路组成及功能。

2. 学生能描述数字电路基础知识,包括逻辑门、触发器等,并了解它们在电子密码锁中的应用。

3. 学生能解释电子密码锁的安全性分析,了解如何提高电子密码锁的安全性。

技能目标:1. 学生能够设计简单的电子密码锁电路,运用所学知识解决实际问题。

2. 学生能够运用EDA软件进行电路设计、仿真和调试,提高实践操作能力。

3. 学生能够通过小组合作,进行电路搭建和测试,培养团队协作能力和沟通能力。

情感态度价值观目标:1. 学生对电子技术产生兴趣,提高对科学研究的热情。

2. 学生在学习过程中,培养勇于尝试、不断探索的精神,增强自信心。

3. 学生能够认识到电子技术在生活中的应用,激发创新意识,关注社会发展和科技进步。

课程性质:本课程为实践性较强的电子技术课程,结合理论知识和实际操作,培养学生的动手能力和创新能力。

学生特点:学生处于中学阶段,具有一定的电子技术基础和逻辑思维能力,对新鲜事物充满好奇心。

教学要求:教师需结合学生特点,采用启发式教学,引导学生自主探究,注重理论与实践相结合,提高学生的综合运用能力。

通过课程目标的实现,使学生能够将所学知识应用于实际生活中,提高解决实际问题的能力。

后续教学设计和评估将围绕上述具体学习成果展开。

二、教学内容依据课程目标,教学内容主要包括以下几部分:1. 数字电路基础知识:逻辑门、触发器、计数器等基本概念及工作原理,重点讲解与电子密码锁相关的数字电路。

教材章节:第二章“数字电路基础”2. 电子密码锁原理:介绍电子密码锁的电路组成、工作原理及安全性分析。

教材章节:第三章“组合逻辑电路”及第八章“数字电路应用”3. EDA软件使用:学习如何使用EDA软件进行电路设计、仿真和调试。

教材章节:第五章“EDA软件及其应用”4. 电子密码锁设计与制作:指导学生运用所学知识,设计并搭建简单的电子密码锁电路。

基于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.蜂鸣器模块蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用各类电子产品中作发声器件。

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课程设计

电子密码锁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语言的8位数字密码锁设计

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

本科学生学年论文2011年 5 月 28日题目: 8位数字密码锁设计 学 院: 电子工程学院 年 级: 2011级 专 业: 电子科学与技术(光电子) 姓 名: 李思远 学 号:20112508 指导教师: 林连东摘要本文简述了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, digital logic circuit目录摘要 (2)Abstract (2)第一章前言 (4)第二章密码锁系统的设计 (4)2。

1 设计要求 (4)2.2 设计分析 (5)第三章软件设计 (6)第四章软件仿真及验证 (10)总结 (12)参考文献 (13)致谢 (14)第一章前言电子密码锁系统主要由电子锁体、电子密匙等部分组成,一把电子密匙里能存放多组开锁密码,用户在使用过程中能够随时修改开锁密码,更新或配制钥匙里开锁密码。

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

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

密码锁verilog课程设计之欧阳数创编

密码锁verilog课程设计之欧阳数创编

课程设计报告课程设计题目:4位串行数字密码锁学号:201420130326学生姓名:谢渊良专业:通信工程班级: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键盘模块键盘电路理想接口图:Set设计原理:本模块采用2×2的扫描键盘电路,对输入信号进行采集,此模块的主要功能是每按下一个按键,flag产生一个矩形波,作为连接模块的触发信号。

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

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

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

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

基于EDA技术设计电子密码锁

基于EDA技术设计电子密码锁

目录摘要 (2)引言 (3)一、绪论 (3)1、EDA技术简介 (3)2、电子密码锁的系统简介 (4)3、系统设计要求 (4)三、总体框图 (4)1、密码锁的组成 (4)2、硬件的选择 (4)3、总体框图 (5)四、功能模块 (6)1、输入模块 (6)(1)功能介绍 (6)(2)(2)输入模块与仿真图形 (6)2、控制模块 (7)(1)功能介绍 (7)(2)控制模块与仿真图形 (7)3、显示模块 (10)(1)功能介绍 (10)五、电子密码锁的程序设计 (11)1、Quartus II软件介绍 (11)2、VHDL语言的特征 (12)3、VHDL语言的优点 (12)4、电路的VHDL描述 (13)六、总体设计电路图 (19)1、总体电路图 (19)2、波形仿真 (20)七、总结 (22)参考文献 (22)基于EDA技术设计电子密码锁作者:寇亚超指导教师:吴淘锁摘要:随着人们生活水平的提高,密码锁作为家庭防盗卫士的作用日趋重要,它与普通机械锁相比有一些独特的优势,尤其是其保密性强、防盗性能好,可以不用钥匙,只要记住密码即可开锁。

本文以QUARTUSII作为软件平台,用VHDL硬件语言进行设计描述,基于可编程逻辑器件,并结合EDA技术的各项优势,使得高可靠性、高保密性的电子锁的设计变得简单易行。

关键词:电子密码锁 EDA VHDLAbstract:With the improvement of people's living standard, the lock as home security guards increasingly important, compared with ordinary mechanical locks have some unique advantages, especially its confidentiality, anti-theft performance, you can not have the key, just rememberThe password to unlock. As a software platform to QUARTUSII VHDL hardware language description of the design based on programmable logic devices, combined with the advantages of EDA technology, high reliability, high-security electronic lock design becomes simple.Key words : electronic password lock EDA VHDL引言随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。

基于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标准。

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

电子科技大学实验报告学生姓名:吴成峰学号: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。

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

并通过一个密码锁的设计把握利用EDA软件(Xilinx ISE 10.1)进行HDL代码输入方式的电子线路设计与仿真的详细流程,熟悉摩尔状态机。

五、实验内容:1)利用HDL代码输入方式在Xilinx ISE 10.1平台上实现一个密码锁设计,可以设定密码并显示,输入密码以解锁;2)设计密码锁的顶层模块,使用模块实例语句连接前面所设计的密码锁模块;3)生成比特流文件下载到开发板上进行验证。

六、实验器材(设备、元器件):1)计算机(安装Xilinx ISE 10.1软件平台);2)BASYS2 FPGA开发板一套(带USB-MIniUSB下载线)。

七、实验步骤:1、在Xilinx ISE 10.1平台中,新建一个工程lock。

我们选用的BASYS2 FPGA开发板采用的是Spartan3E XA3S100E芯片和CPG132封装,设置好器件属性,如图3所示。

图3. 设置器件属性2、在工程管理区任意位置单击鼠标右键,在弹出的快捷菜单中选择“New Source”命令,弹出新建源代码对话框,这里我们选择“Verilog Module”类型,输入Verilog文件名“lock”。

ISE会自动创建一个Verilog的模板,并在源代码编辑区打开,接下来的工作就是将代码编写完整。

完整代码如下:input clr,input [7:0] sw,input [1:0] bn,output reg pass,output reg fail);reg [3:0] pre_s,nex_s;parameter S0=4'b0000,S1=4'b0001,S2=4'b0010,S3=4'b0011,S4=4'b0100,E1=4'b0101,E2=4'b0110,E3=4'b0111,E4=4'b1000;//state registersalways@(posedge clk or posedge clr)beginif(clr==1)pre_s<=S0;elsepre_s<=nex_s;end//C1always@(*)begincase(pre_s)S0:if(bn==sw[7:6])nex_s<=S1;elsenex_s<=E1;S1:if(bn==sw[5:4])nex_s<=S2;elsenex_s<=E2;S2:if(bn==sw[3:2])nex_s<=S3;elsenex_s<=E3;S3:if(bn==sw[1:0])nex_s<=S4;elsenex_s<=E4;S4:if(bn==sw[7:6])nex_s<=S1;elsenex_s<=E1;E1:nex_s<=E2;E2:nex_s<=E3;E3:nex_s<=E4;E4:if(bn==sw[7:6])nex_s<=S1;elsenex_s<=E1;default:nex_s<=S0;endcaseend//C2always@(*)beginif(pre_s==S4)pass=1;elsepass=0;if(pre_s==E4)fail=1;elsefail=0;endmodule3、建立分频模块“clkdiv”,过程如上,代码如下:module clkdiv(input mclk,input clr,output clk190);reg [24:0] q;always@(posedge mclk or posedge clr)beginif(clr==1)q<=0;elseq<=q+1;endassign clk190=q[17];//190Hzendmodule4、建立时钟脉冲模块“clock_pulse”,代码如下:module clock_pulse(input inp,input cclk,input clr,output outp);reg delay1;reg delay2;reg delay3;always@(posedge clr or posedge cclk)beginif(clr==1)begindelay1<=0;delay2<=0;delay3<=0;endelsebegindelay1<=inp;delay2<=delay1;delay3<=delay2;endendassign outp=delay1&delay2&~delay3;endmodule5、建立七段数码管复用模块“hex7seg”,代码如下:module hex7seg(input [15:0] x,input clk,input clr,output reg [6:0] a_to_g,output reg [3:0] an,output dp);wire [1:0] s;reg [3:0] digit;wire [3:0] aen;reg [19:0] clkdiv;assign dp=1;assign s=clkdiv[19:18];assign aen[3]=1;assign aen[2]=1;assign aen[1]=1;assign aen[0]=1;//四位四选一always@(*)case(s)0:digit=x[3:0];1:digit=x[7:4];2:digit=x[11:8];3:digit=x[15:12];default:digit=x[3:0];endcase//数码管显示always@(*)case(digit)0:a_to_g=7'b0000001;1:a_to_g=7'b1001111;2:a_to_g=7'b0010010;3:a_to_g=7'b0000110;4:a_to_g=7'b1001100;5:a_to_g=7'b0100100;6:a_to_g=7'b0100000;7:a_to_g=7'b0001111;8:a_to_g=7'b0000000;9:a_to_g=7'b0000100;'hA:a_to_g=7'b0001000;'hB:a_to_g=7'b1100000;'hC:a_to_g=7'b0110001;'hD:a_to_g=7'b1000010;'hE:a_to_g=7'b0110000;'hF:a_to_g=7'b0111000;default:a_to_g=7'b0000001;endcase//digit selectalways@(*)beginan=4'b1111;if(aen[s]==1)an[s]=0;end//时钟分频器always@(posedge clk or posedge clr)beginif(clr==1)clkdiv<=0;elseclkdiv<=clkdiv+1;endendmodule6、顶层模块lock_top设计。

代码如下:module lock_top(input mclk,input [7:0] sw,input [3:0] btn,output [1:0] led,output [6:0] seg,output [3:0] an,output dp);wire clr,clk190,clkp,btn012;wire [1:0] bn;wire [15:0] x;assign x={2'b00,sw[7:6],2'b00,sw[5:4],2'b00,sw[3:2],2'b00,sw[1:0]};assign clr=btn[3];assign btn012=btn[0]|btn[1]|btn[2];assign bn[1]=btn[2];assign bn[0]=btn[1];clkdiv U1 (.mclk(mclk),.clr(clr),.clk190(clk190));clock_pulse U2 (.inp(btn012),.cclk(clk190),.clr(clr),.outp(clkp));lock U3 (.clk(clkp),.clr(clr),.sw(sw),.bn(bn),.pass(led[1]),.fail(led[0]));hex7seg U4 (.x(x),.clk(mclk),.clr(btn[3]),.a_to_g(seg),.an(an),.dp(dp));Endmodule7、将工程编译、综合与实现。

在工程管理区的“Source for”中选取“Implementation”选项,然后在进程管理区双击“Synthesize-XST”进行综合,如图4所示。

相关文档
最新文档