当前位置:文档之家› FPGA基于verilog HDL的密码锁

FPGA基于verilog HDL的密码锁

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 友好的图形界面及简便的使用方法。

1.2所用硬件介绍

硬件的总体设计:

故由上图,将整个硬件电路部分主要分成五个部分,即:FPGA电路设计,数码管显示驱动电路设计,温度传感器电路设计,报警电路设计,键盘矩阵

控制电路设计。

I.FPGA芯片的介绍

在本次课程设计中选用Altera公司Cyclone II系列FPGA器件。

Altera公司2004年推出了新款Cyclone II系列FPGA器件。Cyclone II FPGA 的成本比第一代Cyclone器件低30%,逻辑容量大了三倍多,可满足低成本大批量应用需求。

随着低复杂度FPGA器件成本的不断下降,具有灵活性和及时面市优势的FPGA与ASIC相比更有竞争性,在数字消费市场上的应用也急剧增加。第一代Cyclone系列迄今发售了3百多万片,在全球拥有3,000多位客户,对大批量低成本数字消费市场有着巨大的影响,该市场消纳了三分之一的器件。

同时,Cyclone II器件系列也在电信、计算机外设、工业和汽车市场上获得了巨大的进步。Cyclone II器件包含了许多新的特性,如嵌入存储器、嵌入乘法器、PLL和低成本的封装,这些都为诸如视频显示、数字电视(DTV)、机顶盒(STB)、DVD播放器、DSL调制解调器、家用网关和中低端路由器等批量应用进行了优化。

Cyclone II器件采用TSMC90nm低K绝缘材料工艺技术,这种技术结合Altera 低成本的设计方式,使之能够在更低的成本下制造出更大容量的器件。这种新的器件比第一代Cyclone产品具有两倍多的I/O引脚,且对可编程逻辑,存储块和其它特性进行了最优的组合,具有许多新的增强特性

低成本的配置器件编辑Altera为配置Cyclone II FPGA提供了低成本的串行配置器件。这些串行配置器件定价为批量应用,成本是相应Cyclone II FPGA的10%。四个串行配置器件(1Mbit,4Mbit,16Mbit和64Mbit)提供了节省空间的8脚和16脚SOIC封装。器件中任何不用于配置的存储器可用于一般存储,进一步增强其价值。

IP编辑Altera也为Cylcone II器件客户提供了40多个可定制IP核,Altera 和Altera Megafunction伙伴计划(AMPPSM)合作者提供的不同的IP核是专为Cyclone II架构优化的,包括:Nios II嵌入式处理器;DDR SDRAM控制器;FFT/IFFT;PCI编译器;FIR编译器;NCO编译器;POS-PHY编译器;Reed Solomon 编译器;Viterbi编译器等等。

II.数码管显示器

液晶显示器按其功能可分为三类,笔段式液晶显示器,字符点阵式液晶显示器和图形点阵式液晶显示器。前两种可以显示数字,字符,符号等。而图形点阵式液晶显示器还可以显示汉子和任意图形,达到图文并茂的鲜果。

在本课程设计中,受到试验箱的限制,在这里使用的是基本的数码管显示。

当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。

如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp 不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED

数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

二.系统设计

2.1设计思想

2.1.1课题背景

众所周知,随着科学技术的发展,以及数字电路的各种产品广泛应用,传统意义上的机械锁应用领域有限,且方便性不高。由于其构造简单,多数采用物理性

结构且多数有常识的人对其构造了如指掌,安全性不高。相对机械锁,电子密码锁

其保密性高,使用灵活性好,安全系数高,可实时改变其密码,使用极其方便,在

当今社会得到了极其广泛的应用,也将是未来发展的趋势。本设计使用EDA设计,

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

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

在数字信息技术高速发展的今天,越来越多的地方需要电子密码锁来进行信息的加密与保密,而这种功能是传统机械锁无法实现的,因此,电子密码锁的设计越

来越重要。其设计直接关系到其使用的安全性,灵活性,实用性,以及用户体验。

所以,在这个背景下,学会和掌握密码锁的设计是尤其重要的,而且要在这个基础上,不断提高其灵活,实用,及用户体验性。

2.1.2设计目的

1.以往机械锁使用繁琐,安全性低,灵活性差,应用领域有限。而密码锁可以

应用于各个领域,如电子产品的保密,系统程序的保密等各种数字信息产品的加

密保密。还可通过外接物理系统,取代传统机械锁,应用于日常生活的方方面面,

例如最基本的门锁。可以说电子密码锁功能强大,安全性高,灵活性强,必将是

未来发展的趋势。

本设计基于Verilog HDL语言来设计密码锁,可以快速、灵活地设计出符合各种要求的密码锁。

2.掌握FPGA的设计方法与应用。

2.2工作原理及系统框图

1、四个键,确认键,开始复位键,解密键,更改密码键。

2、密码长度为5位,设置一个初始密码88888。

3、在系统上电时,输入88888(数码管同步显示),按下确认键即可开锁(密码正确,LED 灯亮)。

4、开锁状态下,按下更改密码键即可通过4*4矩阵键盘输入新密码。

5、新密码数据格式为0~F

6、按确认键,新密码生效。

7、按下解密键,输入新密码,按下确认键可解锁。

8、重复上述步骤,输入新密码,即可开锁,且密码正确情况下LED 灯亮

若密码不正确,则LED 灯不亮,锁闭,可继续输入密码,当三次输入密码错误时蜂鸣器响予以警告。

9、以上为整个系统的工作原理及状态。

10

11 总体框图

总原理图:

2.3.子模块输入输出和功能

密码锁分为六个个模块:①顶层模块、②数码显示模块、③蜂鸣器模块、

④控制模块、⑤LED灯指示模块、⑥密码输入模块。其中由顶层模块调其他分

模块来实现密码锁功能。

1.顶层及控制模块

实现几个模块的配合工作,它能实现对密码的设置和显示,同时

在密码正确时LED灯亮,错误三次时通过蜂鸣器发出警报。

2.数码管显示模块

数码管常用于电子产品的显示部分,原理简单易于实现,这里为5个密码,需要5个数码管来显示。

6个输入,其中CLK为时钟信号,segData1--5为每个密码。两个输出,segCtl[7..0] 对数码管片选,segData[7..0]为译码后的段控制信号。

3、蜂鸣器模块

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用各类电子产品中作发声器件。如图为其原理图:

图 1.1 蜂鸣器原理图结构

蜂鸣器功能实现:

程序共有两个输入信号分别为ENA,clk,输出为COUT,密码输入错误三次,ENA置1,COUT置1,蜂鸣器响,需要注意的是,蜂鸣器模块时钟频

率不能过快。

5.LED灯指示模块

为了显示明显,用了所有LED,给同一pass_LED信号,低电平有效。

6.键盘输入模块

实时动态扫描,输出按键有效值key_value[4..0],及按键标志位

key_flag。

三.软件设计

3.1程序流程图和状态机

程序流程图:

状态机:

3.2程序清单

(1)Dingceng模块

module

dingceng(clk,key_GM,key_QR,key_JM,key_RST,key_ready,key_value,M1,M2,M3,M4,M5,filed_alar m,pass_led);

input clk;

input key_GM,key_QR,key_JM,key_RST,key_ready;

input [4:0] key_value;

output [3:0] M1;

output [3:0] M2;

output [3:0] M3;

output [3:0] M4;

output [3:0] M5;

output filed_alarm;

output pass_led;

reg [3:0] M1;

reg [3:0] M2;

reg [3:0] M3;

reg [3:0] M4;

reg [3:0] M5;

reg filed_alarm,pass_led;

reg JM_flag;

reg GM_flag;

reg sign;

reg [2:0] main_state;

reg [3:0] Old1;

reg [3:0] Old2;

reg [3:0] Old3;

reg [3:0] Old4;

reg [3:0] Old5; //cun fang yuan shi mi ma

reg [2:0] Q,QQ;//ji lu mi ms shu ru ci shu

reg [1:0] try_times;

parameter DD=3'b000,

RS=3'b001,

JM=3'b010,

GM=3'b011,

QR=3'b100;

always@(posedge clk )

if(!key_RST) main_state<=RS;

else

begin

case(main_state)

DD:

begin

if(!key_JM) main_state<=JM;

else if((key_GM==0)&&(JM_flag==1))

begin

pass_led<=1;

GM_flag<=1;

filed_alarm<=0;

main_state<=GM;

end

else

main_state<=DD;

end

RS:

begin

M1<=0;M2<=0;M3<=0;M4<=0;M5<=0;

Old1<=8;Old2<=8;Old3<=8;Old4<=8;Old5<=8;

filed_alarm<=0;

JM_flag<=0;

try_times<=0;

main_state<=DD;

pass_led<=1;Q<=0; QQ<=0;

sign<=0;

end

JM:

begin

if(key_ready==1) sign<=1;

else

if(key_ready==0 && sign==1)

begin

sign<=0;

case(Q)

0:begin M1<=key_value;Q<=3'b001; main_state<=DD;end

1:begin M2<=key_value;Q<=3'b010; main_state<=DD;end

2:begin M3<=key_value;Q<=3'b011; main_state<=DD;end

3:begin M4<=key_value;Q<=3'b100; main_state<=DD;end

4:begin M5<=key_value;Q<=3'b000; main_state<=QR;end

endcase

end

else

main_state<=JM;

end

GM:

begin

if(key_ready==1) sign<=1;

else

if(key_ready==0 && sign==1)

begin

sign<=0;

case(QQ)

0:begin M1<=key_value;QQ<=3'b001; main_state<=DD;end

1:begin M2<=key_value;QQ<=3'b010; main_state<=DD;end

2:begin M3<=key_value;QQ<=3'b011; main_state<=DD;end

3:begin M4<=key_value;QQ<=3'b100; main_state<=DD;end

4:begin M5<=key_value;QQ<=3'b000;

main_state<=QR;end

endcase

end

else

main_state<=GM;

end

QR:

if(key_QR==0)

begin

if(GM_flag==1)

begin

Old1<=M1;

Old2<=M2;

Old3<=M3;

Old4<=M4;

Old5<=M5;

GM_flag<=0;

main_state<=DD;

end

else

if((Old1==M1)&&(Old2==M2)&&(Old3==M3)&&(Old4==M4)&&(Old5==M5))

begin

pass_led<=0;

filed_alarm<=0;

try_times<=2'b00;

JM_flag<=1;

M1<=0;M2<=0;M3<=0;M4<=0;M5<=0;

main_state<=DD;

end

else if(try_times>2'b01)

begin

filed_alarm<=1;

pass_led<=1;

try_times<=2'b00;

main_state<=DD;

M1<=0;M2<=0;M3<=0;M4<=0;M5<=0;

end

else

begin

try_times<=try_times+2'b01;

pass_led<=1;

filed_alarm<=0;

main_state<=DD;

M1<=0;M2<=0;M3<=0;M4<=0;M5<=0;

end

end

else main_state<=QR;

default:;

endcase

end

endmodule

(2)键盘模块keyboard

module keyboard(

clk,

rst,

inrow,outcol,//行输入,列读出

key_value,//键值

key_flag,

);

input clk,rst; //时钟25mhz

input [3:0] inrow;

output [3:0] outcol;

output [4:0] key_value;

output key_flag;

reg clock; //定义25时钟

reg key_flag; //按键标志位

reg jud_flag; //按键标志位

reg [3:0] col; //行输入扫描值

reg [3:0] inrow_reg; //寄存扫描列值

reg [3:0] outcol_reg; //寄存扫描行值

reg [2:0] state; //状态标志-判断是否有按键按下

reg [4:0] key_value; //读取按键值

reg [19:0] count;

reg [7:0] keynum_1; //寄存扫描列值

//产生25hz时钟

always@(posedge clk)

begin

count<=count+1;

if(count>=20'd50000)

begin

clock<=~clock;

count<=0;

end

end

////////////////////////////////////////////

//通过6状态状态机完成对键盘的扫描:总确定是否有按键—>逐行扫描—>统一处理always@(posedge clock)

if(rst==1)

begin

state<=0; key_flag<=1'b0;

end

else

begin

case(state)

0: //初值0

begin

col<=4'b0000; //行扫描输入值

key_flag<=1'b0;

if(inrow!=4'b1111) //有键按下

begin

state<=1;

col<=4'b1110; //开始扫描

end

else state<=0; //总体判断是否有按键按下,确定按键标志位

end

1:

begin

if(inrow!=4'b1111)

begin

state<=5; //有按键时直接进入状态5

end

else

begin

state<=2;

col<=4'b1101;

end

end

2:

begin

if(inrow!=4'b1111)

begin

state<=5;

end

else

begin

state<=3;col<=4'b1011;

end

end

3:

begin

if(inrow!=4'b1111)

begin

state<=5;

end

else

begin

state<=4;col<=4'b0111;

end

end

4:

begin

if(inrow!=4'b1111)

begin

state<=5;

end

else state<=0;

end

5:

begin

if(inrow!=4'b1111)

begin

inrow_reg<=inrow; //保存扫描行值//读得

outcol_reg<=col; //保存扫描列值

key_flag<=1'b1; //有键按下为1

state<=0; //连续扫描状态5直至无按键按下,从0开始end

else state<=0;

end

endcase

end

/////////////////////////////////////////////////////////

always@(clock)

begin

if (keynum_1 == {outcol_reg,inrow_reg})

begin //连续2次检测到的按键值相同,稳定

jud_flag<=1;

end

else

begin

jud_flag<=0;

keynum_1<={outcol_reg,inrow_reg};

end

end

//对键盘扫描结果译码得到按键数值

always@(posedge key_flag)

begin

// if(key_flag==1'b1)

begin

case({outcol_reg,inrow_reg})

8'b1110_1110:begin key_value<=0;end

8'b1110_1101:begin key_value<=1;end

8'b1110_1011:begin key_value<=2;end

8'b1110_0111:begin key_value<=3;end

8'b1101_1110:begin key_value<=4;end

8'b1101_1101:begin key_value<=5;end

8'b1101_1011:begin key_value<=6;end

8'b1101_0111:begin key_value<=7;end

8'b1011_1110:begin key_value<=8;end

8'b1011_1101:begin key_value<=9;end

8'b1011_1011:begin key_value<=10;end

8'b1011_0111:begin key_value<=11;end

8'b0111_1110:begin key_value<=12;end

8'b0111_1101:begin key_value<=13;end

8'b0111_1011:begin key_value<=14;end

8'b0111_0111:begin key_value<=15;end

default: key_value <= 16; //无按键按下或无效按键组合

endcase

end

end

assign outcol=col;

endmodule

(3)显示模块show

module show

(

CLK,

segData,segCtl,segData_1,segData_2,segData_3,segData_4,segData_5

);

input CLK;

output reg [7:0]segData;

output reg [4:0]segCtl;

input [3:0]segData_1;

input [3:0]segData_2;

input [3:0]segData_3;

input [3:0]segData_4;

—input [3:0]segData_5;

reg [7:0]segDataReg; //段选扫描

reg [4:0]segCtlReg; //位选扫描

reg [2:0]segState; //状态扫描

////////////////////////////////////////////////////////////////////////////

reg [15:0]cnt1ms;

reg clk1000Hz;

always@(posedge CLK) //1ms

begin

if(cnt1ms==16'd12500)

begin

cnt1ms<=16'b0;

clk1000Hz<=~clk1000Hz;

end

else

cnt1ms=cnt1ms+16'b1;

end

///////////////////////////////////////////////////////////////////////////////

always@(posedge clk1000Hz) //状态扫描

begin

case(segState) //初值为0

3'b000:

begin

segCtlReg<=5'b00001;

segState<=segState+3'b001; //扫描下一状态

segDataReg<=segData_1; //段选、位选同时传值

end

3'b001:

begin

segCtlReg<=5'b00010;

segState<=segState+3'b001;

segDataReg<=segData_2;

end

3'b010:

begin

segCtlReg<=5'b00100;

segState<=segState+3'b001;

segDataReg<=segData_3;

end

3'b011:

begin

segCtlReg<=5'b01000;

segState<=segState+3'b001;

segDataReg<=segData_4;

end

3'b100:

begin

segCtlReg<=5'b10000;

segDataReg<=segData_5;

segState<=3'b000;

end

default:;

endcase

end

//////////////////////////////////////////////////////////////////////////////////

always@(posedge CLK)

begin

segCtl<=segCtlReg; //位选段选同时赋值、数码管译码case(segDataReg)

4'd15:

segData<=8'b1000_1110;

4'd14:

segData<=8'b1000_0110;

4'd13:

segData<=8'b1010_0001;

4'd12:

segData<=8'b1100_0110;

4'd11:

segData<=8'b1000_0011;

4'd10:

segData<=8'b1010_0000;

4'd9:

segData<=8'b1001_0000;

4'd8:

segData<=8'b1000_0000;

4'd7:

segData<=8'b1111_1000;

4'd6:

segData<=8'b1000_0010;

4'd5:

segData<=8'b1001_0010;

4'd4:

segData<=8'b1001_1001;

4'd3:

segData<=8'b1011_0000;

4'd2:

segData<=8'b1010_0100;

基于FPGA的数字密码锁

基于F P G A的数字密码 锁 LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】

CPLD/FPGA课程设计 项目名称:基于FPGA的数字密码锁设计 专业班级: 学生学号: 学生姓名: 指导老师: 2016年6月4日

摘要 本设计是基于现场可编程门阵列FPGA 器件的电子密码锁的设计。通过Verilog 语言控制4位二进制数,组成数字排列,形成一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。同时输出输入的次数,当3次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。 本设计利用Modelsim软件编写Verilog HDL硬件描述语言程序以实现输入密码、开锁、报警功能。通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。 关键词:现场可编程门阵列;数字密码锁;Verilog HDL;

Abstract This design is the electronic code lock field programmable gate array FPGA devices based design. By Verilog language control 4-bit binary number, composed of figures arranged to form a simple digital lock, assuming that the default password is 4 digits: 0000, correct output when the input is 1, the output of the input error to zero. At the same time the number of input and output, and when more than three times the input error, an alarm signal is output, even if the fourth and fifth also enter the correct output alarm signal. This design uses Modelsim software write Verilog HDL hardware description language program to implement a password lock, alarm function. The simulation debugging, using the programmable device FPGA design basic electronic locks to achieve the desired purpose. Key words: FPGA;The digital combination lock;Verilog HDL;

课程设计fpga密码锁

FPGA实验报告

一、实验目的 1.设计一个密码锁 2.加深FPGA电路原理的理解 3.掌握VHDL语言的使用,学会用VHDL语言来编程解决实际问题 4.学会使用EDA开发软件设计小型综合电路,掌握仿真的技巧 5.学会应用开发系统实现硬件电路,检验电路的功能 二、实验内容 题目:电子密码锁 内容:设计一个4位串行数字锁 1.开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁。否则进入“错误”状态,发出报警信号。 2.锁内的密码可调,且预置方便,保密性好。 3.串行数字锁的报警,直到按下复位开关,才停下。此时,数字锁又自动等待下一个开锁状态。 三、实验步骤 1.系统总框图 本系统的硬件部分主要由密码锁按键消抖模块,密码输入比较更改模块,密码显示模块、报警模块组成。整体系统框图如下图所示。

2.密码锁的主要功能 密码锁控制器的主要功能有: (1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。 (2)密码校验:如果有按键按下,直到松开该按键,如果密码校验正确,无变化,否则如果密码校验错误蜂鸣器响,表明密码错误。(3)错误报警:密码输入错误开始报警。 (4)密码修改:输入密码正确后按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功。 3.密码锁的各个模块 (1)按键消抖。 每按下一个键,仅产生一个信号脉冲,作为按键的使能信号,使能信号控制显示的数字。 (2)密码输入比较 密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足,都不能打开锁。锁内密码为“0000” , key2 和key1 置低电平,分别表示输入“1” 和“0” 。输入密码前先按start键,再依次正确输入0000,会在数码管逐一显示,按确认键,经检验,输入的密码等

密码锁verilog课程设计

课程设计报告课程设计题目:4位串行数字密码锁 学号:201420130326

学生姓名:谢渊良 专业:通信工程 班级:1421302 指导教师:钟凯 2017年1月5日 1.摘要 随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。本设计使用EDA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。使用EDA环境完成电路的系统综合设计和仿真。用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁。本设计基于Verilog HDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为键盘模块、连接模块、控制模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。 关键字:密码锁Verilog HDL

2.设计内容 设计一个4位数字密码锁子系统 1)1.2设计要求 开锁密码为4位二进制,当输入密码与锁内给定的密码一致时,方可开锁。否则进入“错误”状态,发出报警信号。 2)锁内的密码可调。 3)串行数字密码锁的报警,直到按下复位开关,才停下。此时,数字密码锁又自动等待下一个开锁状态。 3.系统设计 本设计中,FPGA 系统采用硬件描述语言Verilog 按模块化方式进行设计,并用modersim 软件对各个模块进行编写仿真。 3.1键盘模块 键盘电路理想接口图: flag Set Reset key_value

设计原理: 本模块采用2×2的扫描键盘电路,对输入信号进行采集,此模块的主要功能是每按下一个按键,flag 产生一个矩形波,作为连接模块的触发信号。同时key_value 值为所按下键的编码值,与flag 一同传入连接模块。 实际设计接口图: flag key_value 键盘模块仿真图:

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 友好的图形界面及简便的使用方法。 1.2所用硬件介绍 硬件的总体设计: 故由上图,将整个硬件电路部分主要分成五个部分,即:FPGA电路设计,

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 友好的图形界面及简便的使用方法。 1.2所用硬件介绍 硬件的总体设计: 故由上图,将整个硬件电路部分主要分成五个部分,即:FPGA电路设计,数码管显示驱动电路设计,温度传感器电路设计,报警电路设计,键盘矩阵

基于FPGA的数字密码锁

CPLD/FPGA课程设计项目名称:基于FPGA的数字密码锁设计 专业班级: 学生学号: 学生姓名: 指导老师: 2016年6月4日

摘要 本设计是基于现场可编程门阵列FPGA 器件的电子密码锁的设计。通过Verilog语言控制4位二进制数,组成数字排列,形成一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。同时输出输入的次数,当3次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。 本设计利用Modelsim软件编写Verilog HDL硬件描述语言程序以实现输入密码、开锁、报警功能。通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。 关键词:现场可编程门阵列;数字密码锁;Verilog HDL;

Abstract This design is the electronic code lock field programmable gate array FPGA devices based design. By Verilog language control 4-bit binary number, composed of figures arranged to form a simple digital lock, assuming that the default password is 4 digits: 0000, correct output when the input is 1, the output of the input error to zero. At the same time the number of input and output, and when more than three times the input error, an alarm signal is output, even if the fourth and fifth also enter the correct output alarm signal. This design uses Modelsim software write Verilog HDL hardware description language program to implement a password lock, alarm function. The simulation debugging, using the programmable device FPGA design basic electronic locks to achieve the desired purpose. Key words: FPGA;The digital combination lock;Verilog HDL;

课程设计fpga密码锁

FPGA实验报告 一、实验目的 1.设计一个密码锁 2.加深FPGA电路原理的理解 3.掌握VHDL语言的使用,学会用VHDI语言来编程解决实际问题 4.学会使用EDA开发软件设计小型综合电路,掌握仿真的技巧 5.学会应用开发系统实现硬件电路,检验电路的功能

二、实验内容 题目:电子密码锁 内容:设计一个4 位串行数字锁 1.开锁代码为4 位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁。否则进入“错误”状态,发出报警信号。 2.锁内的密码可调,且预置方便,保密性好。 3.串行数字锁的报警,直到按下复位开关,才停下。此时,数字锁又自动等待下一个开锁状态。 三、实验步骤 1. 系统总框图本系统的硬件部分主要由密码锁按键消抖模块,密码输入比较更改模块,密码显示模块、报警模块组成。整体系统框图如下图所示。 2.密码锁的主要功能 密码锁控制器的主要功能有: (1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。

(2)密码校验:如果有按键按下,直到松开该按键,如果密码校验正确,无变化,否则如果密码校验错误蜂鸣器响,表明密码错误。 (3)错误报警:密码输入错误开始报警。 (4)密码修改:输入密码正确后按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功。 3.密码锁的各个模块 (1)按键消抖。 每按下一个键,仅产生一个信号脉冲,作为按键的使能信号,使能信号控制显示的数字。 (2)密码输入比较 密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足,都不能打开锁。锁内密码为0000”,key2和keyl置低电平,分别表示输入T和0”。输入密码前先按start键,再依次正确输入0000,会在数码管逐一显示,按确认键,经检验,输入的密码等于锁内预先设置的密码密码锁开启信号,锁开启。同时, 可以进行密码修改。若在输入密码的过程中,4 位二进制密码出现输入错误, 那么锁不能开启, 同时,蜂鸣器发出报警信号。直到按下复位开关, 报警才停止。此时, 数字锁又自动进入等待下一次开锁的状态。 (3)密码修改 为防止任意进行密码修改, 必须在正确输入密码后, 才能重新设置密码。输入正确密码后, 锁打开, 就可直接进行修改密码的操作。修改密码实质就是用输入的新密码去取代原来的旧密码,按确定按键ok, 存储新密码。

密码锁verilog课程设计

密码锁v e r i l o g课程设计Last revision on 21 December 2020

课程设计报告 课程设计题目:4位串行数字密码锁 学号 学生姓名:谢渊良 专业:通信工程 班级:1421302 指导教师:钟凯 2017年 1月 5日 1.摘要 随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。本设计使用EDA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。使用EDA环境完成电路的系统综合设计和仿真。用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁。本设计基于Verilog HDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为键盘模块、连接模块、控制模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。 关键字:密码锁 Verilog HDL

2.设计内容 设计一个4位数字密码锁子系统 1)设计要求 开锁密码为4位二进制,当输入密码与锁内给定的密码一致时,方可开锁。否则进入“错误”状态,发出报警信号。 2)锁内的密码可调。 3)串行数字密码锁的报警,直到按下复位开关,才停下。此时,数字密码锁又自动等待下一个开锁状态。 3.系统设计 本设计中,FPGA 系统采用硬件描述语言Verilog 按模块化方式进行设计,并用modersim 软件对各个模块进行编写仿真。 键盘模块 键盘电路理想接口图: Set 本模块采用2 ×2的扫描键盘电路,对输入信号进行采集,此模块的主要功能是每按下一个按键,flag 产生一个矩形波,作为连接模块的触发信号。同时key_value 值为所按下键的编码值,与flag 一同传入连接模块。 实际设计接口图:

基于FPGA的密码锁设计

学号14082200163 成绩评语 题目基于FPGA的密码锁设计 作者嘿嘿班级 0803BF 院别信息与通信工程专业电子信息工程完成时间 2011年5月8日

基于FPGA的密码锁设计 【摘要】基于FPGA设计的电子密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。目前使用的电子密码锁大部分是基于单片机技术, 以单片机为主要器件, 其编码器与解码器的生成为软件方式。在实际应用中, 由于程序容易跑飞, 系统的可靠性能较差。本文介绍一种基于现场可编程门阵列FPGA 器件的电子密码锁的设计方法采用Verilog HDL语言对系统进行描述,并在EP1K10TC100-3上实现。 系统所实现的功能:用户给电子密码锁设定一个密码,当使用本机键盘开锁时,该密码与用户设定的密码比较,如果密码正确,则开锁;如果密码不正确,则允许用户重新输入密码,最多可输入三次,若三次都不正确,则扬声器报警,直到按复位键才允许再次输入代码。 通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。当然,该系统在一些细节的设计上还需要不断的完善和改进,特别是对系统的扩展有很好的实用和设计的价值。 【关键词】:现场可编程门阵列, 硬件描述语言, 电子密码锁, 扬声器

【Abstract】FPGA-based design of the electronic code lock is a small digital system, electronic password lock compared with ordinary mechanical locks, with many unique advantages: good privacy, security and strong, can not key to remember passwords to unlock, and so on. At present the use of the electronic code lock on most of SCM technology to SCM as the main devices, encoders and decoders of Health and the software approach. In practice, since the process easy run to fly, the reliability of the system can be poor. Based on this paper, a field programmable gate arrays FPGA devices electronic password lock design, Verilog HDL language used to describe the system and achieve EP1K10TC100-3. Implementation of the system features: users of electronic password lock to set a password, when using the keyboard unlock the machine, the user password and set the password, if the correct password, then unlock if the password is not correct, allows Users to enter a password, can enter up to three times, three times if not correct, the speaker alarm, until the reset button only allowed to re-enter the code. The simulation tests using programmable devices FPGA electronic password lock the basic design to achieve the expected goal. Of course, some of the details of the system in the design of the need to constantly refined and improved, in particular the expansion of the system have a good design and practical value. 【Key words】: FPGA , Verilog HDL, electronic password lock , speaker

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

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

的市场需求也逐年增加。在安防工程中,锁具产品是关系到整个系统安全性的重要设备,所以锁具产品的优劣也关系了整个安防工程的质量和验收。 目前,市场上比较先进的智能电子密码锁分别有:IC卡电子密码锁、射频卡式电子密码锁、红外遥控电子密码锁、指纹识别电子密码锁和瞳孔识别电子密码锁等。IC卡电子密码锁成本低,体积小,卡片本身无须电源等优点占领了一定的市场份额,但是由于有机械接触,会产生接触磨损,而且使用不太方便,在一定程度上限制了它的应用;射频卡式电子密码锁是非接触式电子密码锁,成本也不太高,体积跟IC卡密码锁相当,卡片使用感应电源,重量很轻,技术成熟,受到了广泛的欢迎,但是与IC卡电子密码锁相比,成本偏高;指纹识别电子密码锁和瞳孔识别电子密码锁可靠性很高,安全性是目前应用系统中最高的,但是成本高昂,还没进入大众化使用阶段。 在国外,美国、日本、德国的电子密码锁保密性较好,并结合感应卡技术,生物识别技术,使电子密码锁系统得到了飞跃式的发展。这几个国家的密码锁识别的密码更复杂,并且综合性比较好,已经进入了成熟期,出现了感应卡式密码锁,指纹式密码锁,虹膜密码锁,面部识别密码锁,序列混乱的键盘密码锁等各种技术的系统,它们在安全性,方便性,易管理性等方面都各有特长,新型的电子密码锁系统的应用也越来越广。 基于FPGA的电子密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。 在数字技术网络技术飞速发展的今天,电子密码锁技术得到了迅猛的发展。它早已超越了单纯的门道及钥匙管理,逐渐发展成为一套完整的出入管理系统。它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。在该系统的基础上增加相应的辅助设备可以进行电梯控制、车辆进出控制,物业消防监控、餐饮收费、私家车库管理等,真正实现区域内一卡智能管理。 目前使用的电子密码锁大部分是基于单片机技术, 以单片机为主要器件, 其编码器与解码器的生成为软件方式。在实际应用中, 由于程序容易跑飞, 系统的可靠性能较差。基于FPGA的电子密码锁已经是现代生活中经常用到的工具之一,用于各类保险柜、房门、防盗门等等。用电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点。由于采用的是可编程逻辑器件FPGA,使得系统有相当大的灵活性,随时可以进行硬件升级、扩展,而且系统设计完善以后还可以将主控的FPGA固化成一片ASIC,那么这块ASIC就可以作为专用的数字密码锁芯片。而且由于硬件可升级,还可随时增加密码位数或增加新的功能,使得密码锁有更高的安全性、可靠性和方便性。

基于FPGA的密码锁的设计课程设计任务书(硬件)

课程设计说明书 学生姓名: 学号: 学院: 专业: 题目:专业综合实践之硬件部分: 基于FPGA电子密码锁的设计 指导教师:职称: 2010 年 12 月 27 日

课程设计任务书 09/10 学年第一学期 学院: 专业: 学生姓名: 学号: 课程设计题目:专业综合实践之硬件部分: 基于FPGA电子密码锁的设计 起迄日期:2011年1 月3 日~2011年元1 月14 日课程设计地点: 指导教师: 系主任: 下达任务书日期: 2010 年12 月 27 日

课程设计任务书 1.设计目的: 熟悉FPGA的基本工作原理,利用FPGA嵌入式芯片设计一个电子密码锁控制系统。使学生将掌握的硬件理论知识与实践结合,提高学生的科研、综合创新能力。 2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等): 任务要求: 1.掌握FPGA的基本原理; 2.设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁; 3.在锁的控制电路中储存一个可以修改的4位二进制代码,当开锁按钮开关的输入代码等于储存代码时,开锁; 4 从第一个按钮触动后的30秒内若未将锁打开,则电路长报警5S,若输入密码错误1或2次,则每次短报警1S,若输错三次密码则长报警。 3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕: 系统的硬件原理图,对系统进行仿真 系统的软件流程图与部分程序 设计说明书

课程设计任务书 4.主要参考文献: (5篇以上) 5.设计成果形式及要求: 硬件原理图、部分程序、设计说明书 6.工作计划及进度: 2011年1 月3 日~ 2011年1月 5日:查相关的资料,熟悉FPGA 2011年 1 月6 日~ 1 月8日:在教师指导下完成系统方案的设计 1月9 日~ 1 月 12日:学生在指导教师辅导下完成实验 1月 13 日~ 1 月14 日:完成课程设计说明书的纂写 1月 14 日:答辩 系主任审查意见: 签字: 年月日设计说明书应包括以下主要内容:

密码锁verilog课程设计

课程设计报告 课程设计题目:4位串行数字密码锁 学号:201420130326 学生姓名:谢渊良 专业:通信工程 班级:1421302 指导教师:钟凯 2017年 1月 5日 1.摘要 随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。本设计使用EDA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。使用EDA环境完成电路的系统综合设计和仿真。用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁。本设计基于Verilog HDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为键盘模块、连接模块、控制模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。 关键字:密码锁 Verilog HDL 2.设计内容 设计一个4位数字密码锁子系统 1)1.2设计要求开锁密码为4位二进制,当输入密码与锁内给定的密码一致时,方可开锁。否则进入“错误”状态,发出报警信号。 2)锁内的密码可调。 3)串行数字密码锁的报警,直到按下复位开关,才停下。此时,数字密码锁又自动等待下一个开锁状态。 3.系统设计 本设计中,FPGA系统采用硬件描述语言Verilog按模块化方式进行设计,并用modersim软件对各个模块进行编写仿真。

键盘电路理想接口图: 设计原理: 本模块采用2×2的扫描键盘电路,对输入信号进行采集,此模块的主要功能是每按下一个按键, flag 产生一个矩形波,作为连接模块的触发信号。同时key_value 值为所按下键的编码值,与flag 一同传入连接模块。 实际设计接口图: key_value 键盘模块仿真图: 跟据图中所示当输出kevalue :10值的时候,flag 出现一个矩形波。 当输出kevalue:11值的时候,flag 再次出现上跳沿。实际上,上面的图写的测试文件是有一点错误的,当a 扫描到第三个值(01)时,b 在实际电路中应该是01而不是11,此时根据程序flag 应置为1,当然此时flag 本来就是1,不会发生错误。在实际中,时钟频率跳的如此之快,人按一下按键的持续时间还是有的,所以flag 应在按键按完后再下降下来。不然多出很多无用的矩形波,这个装置就没用了。

基于-FPGA数字密码锁

CPLD/FPGA课程设计 项目名称:基于FPGA的数字密码锁设计 专业班级: 学生学号: 学生: 指导老师: 2016年6月4日

摘要 本设计是基于现场可编程门阵列FPGA 器件的电子密码锁的设计。通过Verilog语言控制4位二进制数,组成数字排列,形成一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。同时输出输入的次数,当3次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。 本设计利用Modelsim软件编写Verilog HDL硬件描述语言程序以实现输入密码、开锁、报警功能。通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。 关键词:现场可编程门阵列;数字密码锁;Verilog HDL;

Abstract This design is the electronic code lock field programmable gate array FPGA devices based design. By Verilog language control 4-bit binary number, composed of figures arranged to form a simple digital lock, assuming that the default password is 4 digits: 0000, correct output when the input is 1, the output of the input error to zero. At the same time the number of input and output, and when more than three times the input error, an alarm signal is output, even if the fourth and fifth also enter the correct output alarm signal. This design uses Modelsim software write Verilog HDL hardware description language program to implement a password lock, alarm function. The simulation debugging, using the programmable device FPGA design basic electronic locks to achieve the desired purpose. Key words: FPGA;The digital combination lock;Verilog HDL;

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

本科学生学年论文 题目:8位数字密码锁设计 学院:电子工程学院 年级:2011级 专业:电子科学与技术(光电子) 姓名:李思远 学号:20112508 指导教师:林连东 2011 年 5 月 28 日

摘要 本文简述了VHDL语言的功能及其特点,并以8位串行数字锁设 计为例,介绍了在QUARTUS II 6.0开发软件下,利用VHDL硬件描述语言设计数字逻辑电路的过程和方法。 关键词:VHDL语言数字锁QUARTUS II 6.0 硬件描述语言数字 逻辑电路 Abstract This 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)

基于FPGA的电子密码锁设计

一、前言 电子密码锁的使用体现了人们的消费水平、保安意识和科技水平的提高, 而且避免了携带甚至丢失钥匙的麻烦。目前设计密码锁的方法很多,例如传统的PCB 板设计、用PLC 设计或者单片机设计等等。而用VHDL 可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法。VHDL 是一种符合IEEE 标准的硬件描述语言,其最大的特点是借鉴高级程序语言的功能特性,对电路的行为与结构进行高度的抽象化、规范化的形式描述,并对设计的不同层次、不同领域的模拟验证与综合优化等处理,使设计过程延到高度自动化。 二、方案设计 密码锁的的构成主要由密码输入、密码设置、比较控制和报警部分组成, 此外密码锁必须能够保存已设置的密码,因而需要一个寄存器来保存密码,同时由于控制电路和报警电路要用到不同的时钟,因而需要一个时序产生电路来生成需要的不同信号,采用分频方法实现。 根据密码锁的电路特点,选用的是实验箱的模式6电路,根据电路功能,在这里设计的密码锁以4位2进制代码作为密码的电子密码锁。 其原理框图如下所示: 图一、电子密码锁原理框图 三、功能模块的实现 1、时序电路 在密码锁的电路中,输入计时、报警计时需要的1HZ 的时钟脉冲信号,而驱动蜂鸣器工作需要的很高频率的脉冲信号,因而这里采用输入一个高频脉冲(1024HZ )信号来驱动蜂鸣器,采用分频的方法得到1HZ 的计时脉冲,程序如下: 密码输入 密码设置 比较控制 报警电路 寄存器(保存设置的密码) 开锁信号 时序产生电路

process(clk_1k) variable cnt1:integer:=0; begin if rising_edge(clk_1k) then if cnt1=512 then clk_1<=not clk_1; cnt1:=0; else cnt1:=cnt1+1; end if; end if; end process; 程序说明:clk_1k为输入的1024HZ高频脉冲,cnt为分频得到的1HZ计时脉冲。 2、密码设置 为了安全性,密码锁必须能够重复的设定密码,在设定密码锁后,应该设置一个寄存器来存储设定的密码,程序如下: process(rst,password,enter_p) is begin if rst='0' then if enter_p='1' then ram<=password; en1<='1'; end if; end if; end process; 程序说明:rst低电平时所有的模块复位,只有密码设置模块工作;password为设置密码时的输入端,ram就是存储密码的寄存器;enter_p为在这里为密码设置使能端,高电平有效。 密码设置的仿真波形如下图,由图中可以清楚地看到在enter_p高电平时寄存器ram中得到了输入的密码1001。 图二、密码设置仿真波形 3、密码输入 密码输入部分要求在密码开始输入时进行计时,超时了要求报警,因此在密码输入时设置一个计时使能信号en2,密码开始输入时使能信号en2有效,控

数电课程设计-基于FPGA的电子密码锁的设计

摘要 随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。 本文主要阐述了一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。 本文采用EDA技术,利用Quartus II工作平台和硬件描述语言,设计了一种电子密码锁,并通过一片FPGA芯片实现。 关键词:电子密码锁;FPGA;硬件描述语言;EDA

ABSTRACT With the development of electronic technology, electronic password lock with burglar alarm and other functions replacing less password and poor security mechanical code lock is an inevitable trend. compared electronic password lock with ordinary mechanical locks, it has many unique advantages :confidentiality, and security in nature, do not use the key, remember password can unlock it etc .Most electronic password locks we used now is based upon SCM technology ,SCM is its mainly device ,and the creating of encoding and decoding devices is the fashion of Software mode. In practical application, the reliability of the system may be worse because of easy running fly of the programme. This paper mainly expatiates a design method of electronic password lock based upon Field Programmable Gate Array device. We use FPGA devices to construct system , all of the algorithm entirely achieved by the hardware circuit , because of FPGA has the function of ISP , when the design needs to be changed We only need to change the control and interface circuit of FPGA,EDA tools are used to download the updated design to FPGA without changing the design of the external circuit , this greatly enhance the efficiency of the design .Therefore , we use FPGA to empolder the digital system has not only high reliability but also extremely convenient of upgrading and improvement .In this paper ,we use EDA technology , Quartus II platform and hardware description language designing an electronic password lock ,and it achieved through an FPGA chip. Key words:electronic password lock;FPGA;hardware description language; EDA

相关主题
文本预览
相关文档 最新文档