搜档网
当前位置:搜档网 › 基于Verilog的FPGA的电子密码锁的设计

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

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

基于FPGA的电子密码锁的设计报告

摘要:基于FPGA设计的电子密码锁是一个小型的数字系统,与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件。在实际应用中,程序容易跑飞,系统的可靠性较差。本文介绍的一种基于现场可编辑门阵列FPGA器件的电子密码锁的设计方法,采用VHDL语言对系统进行描述,并在EP3C10E144C8上实现。

通过仿真调试,利用可编程逻辑器件FPGA的电子密码锁的设计基本达到了预期目的。当然,该系统在一些细节的设计上还需要不断地完善和改进,特别是对系统的扩展有很好的使用系统和设计的价值。

关键词:现场可编程门阵列;VHDL语言;电子密码锁

The Report Of Electronic Code Lock Design

Abstract:FPGA-based design of the electronic code lock is a small digital system. It has many unique advantages:good privacy and security , it do not need the key but remember password to unlock, and so on while it compare to ordinary mechanical locks. At present, the electronic code lock is most used of SCM technology .In practice, however, the process easy run to fly. So the reliability of this system is poor. The paper introduced a field programmable gate arrays FPGA devices to design electronic password lock. The VHDL language is used to describe the system and achieved in EP3C10E144C8.

Though the simulation tests, using FPGA-based design of the electronic code lock can 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.

Keyword: FPGA; VHDL language; electronic password lock

一、设计内容与要求

1.设计一个密码锁,密码为一个4位的十进制数,密码固化在锁内 2.用户输入密码正确,则开锁(试验箱D7 LED 灯亮);若不正确,则报警(试验

箱D0 LED 灯亮)

3.若用户输入密码不正确,可以按复位键重新输入密码。

二、设计思想 2.1 系统原理框图

本系统由主控芯片(FPGA ),键盘,显示电路,报警电路和开/关门电路组成,而主控芯片又可分为按键处理部分,控制部分和译码显示部分。系统原理框图如图2.1所示:

图2.1 系统框图

2.2 总体实现原理

本系统有8个按键,K0,K1,K2,K3,K4,K5代表数字0-9共10个数字和1个确认键,1个复位键。密码长度为四位,并且固化在锁内,输入正确密码后,按确认键即可开门,本系统设置为LED D7灯亮。在输入密码的过程中,当用户键

入错误密码时,报警灯LED D0灯亮。按下复位键,可使报警停止,同时清除所有密码显示。

三、芯片主控设计

3.1 FPGA有限状态机

本设计是通过FPGA有限状态机来实现,设计有限状态机最开始的工作时要确定电路,包括哪些状态,比如某个电路包括四个状态,S0,S1,S2,S3。然后对所有状态给出一个状态编码,比如为状态S0赋予编码00,为状态S1赋予编码01,为状态S2赋予编码10,为状态S3赋予编码11。状态编码是状态的标识,保存在寄存器当中,对于此编码形式,只需一个2位的寄存器就可以了。

FSM Encoding Style 主要有:

Binary Encoding

One Hot Encoding

Gray Encoding

二进制与一位热码的特性比较:

表3.1 二进制与一位热码的特性比较

状态机可以认为是组合逻辑和寄存器逻辑的特殊租户,它一般包括两个部分:组合逻辑部分和寄存器逻辑部分。寄存器用于存储状态,组合电路用于状态译码和产生输出信号。状态机的下一个状态及输出,不仅与输入信号有关,而且还有寄存器当前所处的状态有关。

根据输出信号产生方法的不同,状态机可以分成两类:Mealy型和Moore型。Moore型状态机的输出只是当前状态的函数,而Moore型状态机的输出只是当前状态的函数,而Mealy型状态机的输出则是当前状态和当前输入状态的函数。其原理如下两图:

图3.1Mealy型状态机输出原理

图3.2 Moore型状态机输出原理

3.2设计流程

本次密码锁的设计,有限状态机应该包括以下状态:密码为输入前的等待状态、输入密码时的等待状态、输入密码正确时的通过状态、输入密码错误时的警报状态。

图3.3 主有效状态机的状态转换图

其中当密码输入时又可包括以下状态,正常输入状态、异常输入状态(包括命令状态)、输入确认状态。

下面的图(图是在程序编译后,tools->Netlist_Vewers->RTL Vewer得到的)表示了密码输入的时候的次状态机,表示了4个密码输入的顺序状态,以及输入完成后的等待确认状态。

图3.4次有效状态机的状态转换

3.3状态编码

状态编码主要有二进制编码、格雷编码和一位独热编码等方式。

格雷编码时,相邻状态每次只有一个比特位产生变化,这样减少了瞬变的次

数,也减少了产生毛刺和一些状态的可能。

采用一位独热编码,虽然多用了触发器,当可以有效节省和简化组合电路。对于寄存器数量多而逻辑相对缺乏的FPGA器件来说,采用一位独热编码可以有效提高电路的速度和可靠性,也有利于提高器件资源的利用率。

将产生状态的组合逻辑电路和用于保存状态的寄存器分别写在不同的always块中。其中主要包括:输出控制部分、警报计时部分、锁打开后的计时部分、比较密码部分、记录密码部分和记录错误次数的部分

3.4密码的输入

本次密码锁的密码输入采用FPGA芯片上的8位单个按键,考虑到按键数目不够,采用了一位按键作为功能转换按键;即前5位按键输入0~4,同时按下功能转换按键时,按键0~4即转换为按键5~9,这就弥补了按键数目的不足。最后两位按键设定为确认输入按键和复位按键。密码输入完成后可以按确认键检验密码的正误,报警、输入错误或者其他情况可以按复位按键重新输入。

另外由于按键的时候同时会引起状态机的转换,所以如果按键的时候对按键判断次数过多会产生状态的过快转换,记录的密码和数码管的显示就同时会出现错误,因此在按键部分加入了消除多重按键的程序,只检测一次按键的下降沿,解决了这个问题。

3.5 密码记录与比较

程序设定了一个寄存器用来记录输入的密码。当次有效状态机(即密码输入的状态机)发生转换并且有密码输入时,程序会记录下输入的密码在寄存器的其中4位里面,最后次有效状态转换到确认密码的状态时,会将记录下的密码与固化在锁内的密码进行对比,正确即将主状态机转换到通过阶段,错误则将状态机转换到报警阶段。其中正确错误的状态转换是通过控制相应的标志位实现的。

3.6密码的显示

密码显示采用数码管动态扫描显示,初始时显示密码为4位0,当输入密码后数码管的第一位、第二位、第三位、第四位会依次显示输入的密码,错误后复

位可以重新输入。密码显示采用的是记录密码的寄存器的数据,显示扫描的扫描时间设置为1ms左右,这样显示不会出现闪烁或者残影。

四、程序仿真

下前面的输入cmd的编码:

//输入的数字编码0~9,enter,cancel

one=4'b0001, two=4’b0010,three=4'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;

可以看到,在复位以后,输入第1,2,3,4个密码(依次为1111)后,passed变成高电平

当过了一定的时间后,passed变成低电平,重新计入键盘读入值,进行下一轮的密码辨别。

五、程序清单

module passwd_lock(

clk0,

passed,

one1,

two1,

three1,

four1,

zero1,

change,

yes,

resetb,

seg,

dig

);

input one1,two1,three1,four1,zero1,change;

reg zero,one,two,three,four;

input yes;

input resetb; //输入复位信号

input clk0; //输入时钟信号

output [7:0] p assed; //输出信号

output [7:0] seg;//////段选

output [7:0] dig;//////位选

reg key_pressed_flag; // 键盘按下标志

reg [3:0] key;

reg RXBuf0,RXBuf1,RXBuf2,RXBuf3,RXBuf4;

//display

reg clk0_div;

reg [2:0] digyi;////////////yiwei////

reg [7:0] dig;/////////////weixuan

reg [3:0] seg0;/////////////duanxuan

reg [7:0] seg;

reg [12:0] CNT_R0;

reg [18:0] CNT_R1;

reg clk1;

reg [21:0] CNT_R2;

reg clk2;

reg [7:0] passed;

reg [7:0] alarmed;

/*输入与输出的声明部分,其中,clk0为输入的时钟信号,resetb为密码舒服的输入信号,key为输入命令,

需注意的时,key并不是总在表示密码,也表示密码的间隔,如当输入4位密码后需要一个确认“enter”信号,

当密码输入错误时,需要取消“cancel”信号,这些信号之间在设计中通过有限状态转换机实现。*/

parameter PASSWORD=16'b0001000100010001;//盛放密码的参数

reg [15:0] password;//输入数值盛放寄存器

//输入的数字编码

always @( posedge clk1 ) begin //检测线路的下降沿

RXBuf1 <= one1;

one <= ~(RXBuf1 & ( ~one1 ));

// RXFall1<=RXFall;

end

//消除多重按键

always @( posedge clk1 ) begin //检测线路的下降沿

RXBuf0 <= zero1;

zero <= ~(RXBuf0 & ( ~zero1 ));

// RXFall1<=RXFall;

end

//消除多重按键

always @( posedge clk1 ) begin //检测线路的下降沿

RXBuf2 <= two1;

two <= ~(RXBuf2 & ( ~two1 ));

// RXFall1<=RXFall;

end

//消除多重按

always @( posedge clk1 )

begin //检测线路的下降沿

RXBuf3 <= three1;

three <= ~(RXBuf3 & ( ~three1 ));

// RXFall1<=RXFall;

end

//消除多重按键

always @( posedge clk1 )

begin //检测线路的下降沿

RXBuf4 <= four1;

four <= ~(RXBuf4 & ( ~four1 ));

// RXFall1<=RXFall;

end

//消除多重按键

reg [2:0] m ain_state;//主状态

reg [2:0] n ext_state;//下一个状态

//主有限状态转换机的三个状态:waits、pass、alarm

parameter waits=3'b001,

pass=3'b010,

alarm=3'b100;

reg [2:0] s ub_state;

reg [2:0] n ext_sub_state;

//主有限状态转换机的三个状态:first、second、third、fourth、finish。parameter first=3'b000,

second=3'b001,

third=3'b010,

fourth=3'b011,

finish=3'b100;

//通过计时寄存器

reg [7:0] p ass_count;

//警报计时寄存器

reg [10:0] alarm_count;

//尝试次数寄存器

reg [1:0] t ry_count;

//输入状态寄存器:error和correct

reg error;

reg correct;

//以上为中间状态的一些寄存器和一些所用到的参数

//主机状态机部分

always @(posedge clk0)

begin

CNT_R2 <= CNT_R2 + 1'b1;

if(CNT_R2 < 4000000)

begin

clk1 <= 1;

end

else

begin

clk1 <= 0;

end

end

always@(main_state or correct or error)

begin

case(main_state)

waits:

if(correct==1) //由waits转换到pass的条件

next_state=pass;

else if(error==1&&try_count==1)

next_state=alarm; //由waits转换到alarm的条件else

next_state=waits;

pass:

if(pass_count[7]==1)//由pass转换到waits的条件

next_state=waits;

else

next_state=pass;

alarm:

if(alarm_count[10]==1)// 由alarm转换到waits的条件

next_state=waits;

else

next_state=alarm;

default://默认状态:waits

next_state=waits;

endcase

end

//状态转换

always@(posedge clk1 or negedge resetb)

begin

if(!resetb)

main_state<=waits;

else

main_state<=next_state;

end

//输出控制部分

always@(posedge clk1 or negedge resetb)

begin

if(!resetb)//复位时,开锁输出与警报输出都为零

begin

passed<=8'b00000000;

alarmed<=8'b00000000;

end

else if(main_state==pass)//当主机状态为pass时,开锁

begin

passed<=8'b00000001;

alarmed<=8'b00000000;

end

else if(main_state==alarm)//当主机状态为alarm时,警报

begin

passed<=8'b00000000;

alarmed<=8'b00000001;

end

else//其它状态复位

begin

passed<=8'b00000000;

alarmed<=8'b00000000;

end

end

//alarm一段时间后,自动进入waits状态

//alarm定时器

always@(posedge clk1 or negedge resetb)

begin

if(!resetb)

alarm_count<=0;

else if(main_state==alarm)//alarm状态计时器alarm定时器加1 alarm_count<=alarm_count+1;

else

alarm_count<=0;

end

//锁pass以后计数开始,当规定的时间到达后自动上锁,并进入waits状态//pass定时器

always@(posedge clk1 or negedge resetb)

begin

if(!resetb)

pass_count<=0;

else if(main_state==pass) //pass状态计时器pass定时器加1

pass_count<=pass_count+1;

else

pass_count<=0;

end

//从状态机,用于输入4位密码

always@(posedge clk1 or negedge resetb)

begin

if(!resetb)

sub_state<=first;

else

sub_state<=next_sub_state;

end

always@(!zero||!one||!two||!three||!four||!yes or sub_state)

//always@(key or sub_state)

begin

if(key_pressed_flag||!yes)

if(!yes)//4个密码输完时,进行确认

next_sub_state=first;

//default为输入了某位密码,输入完自动将状态转入下一位

else

if (!zero||!one||!two||!three||!four)

case(sub_state)

first:

next_sub_state=second;

second:

next_sub_state=third;

third:

next_sub_state=fourth;

fourth:

next_sub_state=finish;

//当输入完4位密码以后状态保持不变,等待输入enter命

//令

finish:

next_sub_state=finish;

default: next_sub_state=sub_state;

endcase

else

next_sub_state=sub_state;

end

//比较密码,产生正确或者错误信息

always@(posedge clk1 or negedge resetb)

begin

if(!resetb)

begin

correct<=0;

error<=0;

end

else if(!key_pressed_flag&&!yes)

if(password==PASSWORD)//密码正确时

begin

correct<=1;

error<=0;

end

else//密码错误时

begin

error<=1;

correct<=0;

end

else

begin

correct<=0;

error<=0;

end

end

//记录密码

always@(posedge clk1 or negedge resetb)

begin

if(!resetb)

password<=0;

else if(!zero||!one||!two||!three||!four)

case(sub_state)

first:

password[15:12]<=key;

second:

password[11:8]<=key;

third:

password[7:4]<=key;

fourth:

password[3:0]<=key;

default:

password<=password;

endcase

else

password<=password;

end

//记录错误次数

always@(posedge clk1 or negedge resetb)

begin

if(!resetb)

try_count<=0;

else if(error==1)

try_count<=try_count+1;

else if(main_state==pass||main_state==alarm) try_count<=0;

end

always@(posedge clk1 or negedge resetb)

begin

if(!resetb)

begin

key_pressed_flag<=0;

key=4'b0000;

end

else if(!zero&&change)

begin key_pressed_flag<=1;key<=4'b0000; end

else if(!one&&change)

begin key_pressed_flag<=1;key<=4'b0001; end

else if(!two&&change)

begin key_pressed_flag<=1;key<=4'b0010; end

else if(!three&&change)

begin key_pressed_flag<=1;key<=4'b0011; end

else if(!four&&change)

begin key_pressed_flag<=1;key<=4'b0100; end

else if(!zero&&!change) ////按下change切换输入数的范围begin key_pressed_flag<=1;key<=4'b0101; end

else if(!one&&!change)

begin key_pressed_flag<=1;key<=4'b0110; end

else if(!two&&!change)

begin key_pressed_flag<=1;key<=4'b0111; end

else if(!three&&!change)

begin key_pressed_flag<=1;key<=4'b1000; end

else if(!four&&!change)

begin key_pressed_flag<=1;key<=4'b1001; end

else if(!yes)

begin key_pressed_flag<=0;key<=4'b1010; end

End

//diaplay分频后显示

always @(posedge clk0)

begin

CNT_R0 <= CNT_R0 + 1'b1;

if(CNT_R0 < 4096)

begin

clk0_div <= 1;

end

else

begin

clk0_div <= 0;

end

end

always @(posedge clk0_div)

begin

if(digyi==3'd3)

begin

digyi<=0;

end

else

begin

digyi<=digyi+1;

end

end

//////////////yima//////////////选择哪一个数码管来显示

always @(digyi)

begin

case(digyi)

3'b000: dig=8'b11111110;

3'b001: dig=8'b11111101;

3'b010: dig=8'b11111011;

3'b011: dig=8'b11110111;

endcase

end

///////////////xuanshu////////////////////选择每一个数码管要显示的数为密码的高到低位always @(digyi)

begin

case(digyi)

3'b000: seg0=password[15:12];

3'b001: seg0=password[11:8];

3'b010: seg0=password[7:4];

3'b011: seg0=password[3:0];

endcase

end

////////////seg yima///////////////////////对密码进行译码显示

always @(seg0)

begin

case(seg0)

4'b0000 : seg=7'b0111111; //0

4'b0001 : seg=7'b0000110; //1

4'b0010 : seg=7'b1011011; //2

4'b0011 : seg=7'b1001111; //3

4'b0100 : seg=7'b1100110; //4

4'b0101 : seg=7'b1101101; //5

4'b0110 : seg=7'b1111101; //6

4'b0111 : seg=7'b0000111; //7

4'b1000 : seg=7'b1111111; //8

4'b1001 : seg=7'b1101111; //9 endcase

end

endmodule

基于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的多功能数据选择器设计与实现 章军海201022020671 [摘要]传统的数字系统设计采用搭积木式的方法来进行设计,缺乏设计的灵活性。随着可编程逻辑器件(PLD)的出现,传统设计的缺点得以弥补,基于PLD的数字系统设计具有很好的灵活性,便于电路系统的修改与调试。本文采用自顶向下的层次化设计思想,基于FPGA设计了一种多功能数据选择器,实现了逻辑单元可编程、I/O单元可编程和连线可编程功能,并给出了本设计各个层次的原理图和仿真时序图;本文还基于一定的假设,对本设计的速度和资源占用的性能进行了优化。 [关键词]层次化设计;EDA;自顶向下;最大时延 0引言: 在现代数字系统的设计中,EDA(电子设计自动化)技术已经成为一种普遍的工具。基于EDA技术的设计中,通常有两种设计思想,一种是自顶向下的设计思想,一种是自底向上的设计思想[1]。其中,自顶向下的设计采用层次化设计思想,更加符合人们的思维习惯,也容易使设计者对复杂系统进行合理的划分与不断的优化,因此是目前设计思想的主流。基于层次化设计思想,实现逻辑单元、I/O单元和连线可编程可以提高资源的利用效率,并且可以简化数字系统的调试过程,便于复杂数字系统的设计[2][3]。 1系统原理图构架设计 1.1系统整体设计原理 本设计用于实现数据选择器和数据分配器及其复用的I/O端口和连线的可编程却换,提高系统的资源利用效率。系统顶层原理框图如图1所示,系统拥有两个地址选择端口a0、a1,一个功能选择端口ctr,还有五路I/O复用端口。其中,地址选择端口用于决定数据选择器的数据输入端和数据分配器的数据输出端;功能选择端口用于切换数据选择器和数据分配器,以及相应的I/O端口和连线;I/O复用端口数据的输入和输出,其功能表如表一所示。 图1顶层模块原理图 表一顶层系统功能表

课程设计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,会在数码管逐一显示,按确认键,经检验,输入的密码等

基于FPGA的脉冲发生器的设计

【基础?应用】 基于FP GA 的脉冲发生器的设计 ① 张 涛 (北方交通大学电子信息工程学院,北京100044)【摘 要】 以脉冲发生器为研究对象,介绍了脉冲发生器的基本原理、硬件构成和实现方法,阐述了一种基于DSP -FP G A 数字系统的PWM 控制脉冲生成方法,并给出了仿真及实测实验结果。 【关键词】 脉宽调制;脉冲发生器;可编程门阵列 1 FP G A 简介 FP G A (Field Programmable G ate Array ,可编程门阵列)是美国Xinlinx 公司推出的一种采用单元型结构的新型PLD 器件。它采用CMOS 、SRAM 工艺制作,在结构上与阵列型PLD 不同,它的内部由许多独立的可编程逻辑单元构成,各逻辑单元之间可以灵活地相互连接,具有密度高、速度快、编程灵活和可重新配置等诸多优点。FP G A 已成为当前主流的PLD 器件之一。 1.1 PLD 的主要特点 (1)缩短研制周期。 (2)降低设计成本。用PLD 来设计和改造电子产品可以大幅度地减少印制板的面积和接插件,降低装配和调试费用。 (3)提高设计灵活性和可靠性。大量分立式元器件在向印制板上装配时,往往会发生由于虚焊或接触率近似于线性增加,且线性斜率较小;肝脏中大小不同的散射源对不同频率的声波存在有不同的散射效应。 由于肝脏组织结构的非均匀性、复杂性及其各部分散射相关长度分布的不一致性,其散射谱随深度增加而衰减变化,并非完全呈线性关系,而呈现较复杂的关系变化。 ⑵肝叶边缘部分及表层区域,其结构散射近似呈瑞利散射特征;肝叶表层以下与肝叶中心之间的中间区域,其结构散射呈随机散射特征;肝叶中心区域,其结构散射呈扩散漫射特征,也有较强的反射。 ⑶利用区域结构散射特征谱,不仅可对各特征区域组织微结构作出粗略估计,而且可通过区域散射谱特征的变化,对生物软组织的生理病理变化的判断提供依据。 综上所述,利用超声散射谱分析,可为B 超的形态学图像信息诊断提供一个组织特征的信息,在临床上是有应用前景的。 参考文献 [1]Luigi Landini et al.IEEE Trans on U FFC.1990,37(5):448-456 [2]陈启敏等.声学学报.1995,Vol.21,No.4:692-699 [3]E.J.Feleppa ,et al.IEEE Annual International Conference ,EMB ,1990;12(1):337 (责任编辑:常 平) 2003年4月第19卷第2期 武警工程学院学报JOURNAL OF EN GG COLL EGE OF ARMED POL ICE FORCE Apr.2003Vol.19No.2 ①收稿日期:2002-12-06作者简介:张涛(1968.07-),1994年毕业于西安交通大学工业电器自动化专业,现在北方交通大学电子信息工程学院电子与信息工程专业攻读硕士学位。

密码锁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的模拟IIC接口设计与实现

研究生课程论文 课程名称基于FPGA的模拟IIC接口设计与实现授课学期2012 学年至2013 学年第一学期学院电子工程学院 专业电子与通信工程 学号2012011603 姓名 任课教师 交稿日期2013.01.10 成绩 阅读教师签名 日期 广西师范大学研究生学院制

基于FPGA的模拟I2C接口设计与实现 摘要:本文论述了I2C总线的基本协议,以及基于FPGA 的模拟I2C 总线接口模块的设计,在QuartusII软件中用Verilog HDL语言编写了部分I2C总线接口功能的程序代码,生成原理图模块。并连接好各个模块,进行了时序仿真。最后,下载到FPGA的板运行测试。 关键词:I2C 接口FPGA Verilog 1课题研究意义、现状及应用分析 目前市场上主流的嵌入式设备主要是微处理器、DSP等,但FPGA 以其独有的高抗干扰性、高安全性正在逐步取得开发公司的青睐,在FPGA上开发I2C势在必行。并且利用EDA 工具设计芯片实现系统的功能,已经成为支撑电子设计的通用平台,并逐步向支持系统级的设计方向发展。模块化的设计思想在软件设计过程中越来越被重视。I2C总线是Philips 公司推出的双向两线串行通讯标准,具有接口线少、通讯效率高等特点。因此,基于FPGA的I2C总线设计有着广泛的应用前景。

2课题总体方案设计及功能模块介绍 本设计主要分三大模块,分别是I2C 总线接口模块、按键输入控制模块、数码管显示模块。I2C总线模块集成了I2C协议用于和总线相接EEPROM的通信;按键输入控制模块用于控制I2C模块的页读、页写、字节读、字节写功能;数码管显示模块用于显示通过I2C总线读取EEPROM中的数据。 3I2C接口设计原理 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10 Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。 3.1总线的构成 I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都

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的eeprom设计

二线制I2C CMOS 串行EEPROM 的FPGA设计 姓名:钱大成 学号:080230114 院系:物理院电子系 2011年1月1日

一、课程设计摘要: (1)背景知识: A、基本介绍: 二线制I2C CMOS 串行EEPROM AT24C02/4/8/16 是一种采用CMOS 工艺制成的串行可用电擦除可编程只读存储器。 B、I2C (Inter Integrated Circuit)总线特征介绍: I2C 双向二线制串行总线协议定义如下: 只有在总线处于“非忙”状态时,数据传输才能被初始化。在数据传输期间,只要时钟线为高电平,数据线都必须保持稳定,否则数据线上的任何变化都被当作“启动”或“停止”信号。图1 是被定义的总线状态。· ①总线非忙状态(A 段) 数据线SDA 和时钟线 SCL 都保持高电平。 ②启动数据传输(B 段) 当时钟线(SCL)为高电平状态时,数据线(SDA)由高电平变为低电平的下降沿被认为是“启动”信号。只有出现“启动”信号后,其它的命令才有效。

③停止数据传输(C 段) 当时钟线(SCL)为高电平状态时,数据线(SDA)由低电平变为高电平的上升沿被认为是“停止”信号。随着“停在”信号出现,所有的外部操作都结束。 ④数据有效(D 段) 在出现“启动”信号以后,在时钟线(SCL)为高电平状态时数据线是稳定的,这时数据线的状态就要传送的数据。数据线(SDA)上的数据的改变必须在时钟线为低电平期间完成,每位数据占用一个时钟脉冲。每个数传输都是由“启动”信号开始,结束于“停止”信号。 ⑤应答信号 每个正在接收数据的EEPROM 在接到一个字节的数据后,通常需要发出一个应答信号。而每个正在发送数据的EEPROM 在发出一个字节的数据后,通常需要接收一个应答信号。EEPROM 读写控制器必须产生一个与这个应答位相联系的额外的时钟脉冲。在EEPROM 的读操作中,EEPROM 读写控制器对EEPROM 完成的最后一个字节不产生应答位,但是应该给EEPROM 一个结束信号。 C、3. 二线制I2C CMOS 串行EEPROM读写操作 ① EEPROM 的写操作(字节编程方式) 所谓EEPROM 的写操作(字节编程方式)就是通过读写控制器把一个字节数据发送到EEPROM 中指定地址的存储单元。其过程如下:EEPROM 读写控制器发出“启动”信号后,紧跟着送4 位I2C 总线器件特征编码1010 和3 位EEPROM 芯片地址/页地址XXX 以及写状态的R/W 位(=0),到总线上。这一字节表示在接收到被寻址的EEPROM 产生的一个应答位后,读写控制器将跟着发

基于FPGA芯片的最小系统设计

黑龙江大学本科生 毕业论文(设计)档案编码: 学院:电子工程学院 专业:电子信息工程 年级:2007 学生姓名:王国凯 毕业论文题目:基于FPGA 的电梯自动控制 系统设计

摘要 本文在介绍了在当前国内外信息技术高速发展的今天,电子系统数字化已成为有目共睹的趋势。从传统的应用中小规模芯片构成电路系统到广泛地应用单片机,直至今天FPGA 在系统设计中的应用,电子设计技术已迈人了一个全新的阶段。FPGA 利用它的现场可编程特性,将原来的电路板级产品集成为芯片级产品,缩小体积,缩短系统研制周期,方便系统升级,具有容量大、逻辑功能强,提高系统的稳定性,而且兼有高速、高可靠性。越来越多的电子设计人员使用芯片进行电子系统的设计,通过基于FPGA 电梯系统开发设计,说明了FAPG 芯片研究的动机和研究意义。 关键词 FPGA;电梯系统;FLEX10K;JTAG;模块设计

Ab s t ract This paper introduces the rapid development of information technology around the world today. Digitalized electronic systems have become the trend. From the traditional application of small and medium-chip circuitry to Microcontroller and FPGA application in system design, electronic design technology is stepping into a new field. By using its field programmable features, FPGA changes the original circuit board-level products to the chip-level integration products. Now FPGA has advantages of reduced the size, shorten development cycle, facilitated in system upgrades, highly capacity, strong logic functions, stable system and high speed. More and more electronic designers use FPGA to design electronic systems. This paper shows the motivation and significance of designing by FPGA through the elevator FPGA system design. Ke ywo r d FPGA; Mini-System; FLEX10K; JTAG;Module design

基于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, 存储新密码。

FPGA设计方案

FPGA课程设计 题目:全天候温度纪录仪的设计与FPGA实现 姓名: 学号: 院系:信息科学与工程学院 专业:计算机技术

摘要 本设计有效的克服了传统的数字温度计的缺点,采用自上而下的设计思路,绘制出了系统结构流程图,最后又在硬件上通过对其进行调试和验证。基于FPGA在Quartus II13.0软件下应用Verilog HDL语言编写程序,采用ALTRA公司Cyclone- IV系列的EP4CE40F23I7 芯片进行了计算机仿真,并给出了相应的仿真结果。该电路能够实现很好的测温功能。 关键字:数字温度计;FPGA;Quartus II130.;Verilog HDL;EP4CE40F2317 Abstract This design effectively overcomes the traditional digital thermometer’s wea knesses and takes a top-down approach to design flow chart of system, and fi nally pass the circuits to the hardware to debug and verify it. This design is b ased on FPGA using Verilog HDL language to write program in Quartus II sof tware, adopting EP4CE40F23I7 chip of Cyclone- IV series of ALTRA company for computer simulation and at the same time showing the corresponding sim ulation result. This circuit is able to carry out excellent temperature- measurem ent function. KeyWords:Digital thermometer;FPGA;Quartus II 13.0;Verilog HDL ;EP4CE40F2317

密码锁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的简易的ALU设计

本科毕业设计开题报告 题目:基于FPGA的简易的ALU设计 院(系): 班级: 姓名: 学号: 指导教师: 教师职称:讲师

xxxxx学院本科毕业设计开题报告 题目基于FPGA的简易ALU设计来源工程实际 1、研究目的和意义 从20 世纪中叶的无线电时代,到21 世纪以计算机技术为中心的智能化加信息化的现代电子时代,电子系统发生了巨大的变化。现代电子系统愈发庞大和复杂,很多应用要求能够在现场进行实时的高速运算,并对系统进行有效地控制。作为这一需求的解决方案,嵌入式计算机应用系统已成为现代电子系统的核心技术。 早期的嵌入式系统是将通用计算机经改装后嵌入到被测控对象去,实现数据采集、分析处理、状态显示、输出控制等功能。随着大规模集成电路技术的发展,中央处理器CPU、随机存取存储器RAM、只读存储器ROM、输入/输出端口I/O等主要的计算机功能部件可以集成在一块集成电路芯片上,这颗芯片就被称为单片机。与改装普通计算机相比,单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点,因此迅速成为最普及的嵌入式应用系统方案。 通常,我们要实现一些功能可以用单片机来完成,但是,用可编程逻辑FPGA同样可以实现。在计算机中,算术逻辑单元(ALU)是专门执行算术和逻辑运算的数字电路。ALU是计算机中央处理器的最重要组成部分,甚至连最小的微处理器也包含ALU作计数功能。此次我要完成的设计是基于FPGA的四位ALU算数逻辑单元设计。通过对ALU功能的拓展,来实现更快更好的运算功能,相信这一功能的实现将使运算功能更加简单、快捷、准确,从而提高我们今后的学习工作效率。 2、发展情况(文献综述) 算术逻辑单元(arithmetic logic unit,缩写ALU)是进行整数运算的结构。现阶段是用电路来实现,应用在电脑芯片中。 在计算机中,算术逻辑单元(ALU)是专门执行算术和逻辑运算的数字电路。ALU是计算机中央处理器的最重要组成部分,甚至连最小的微处理器也包含ALU作计数功能。在现代CPU和GPU处理器中已含有功能强大和复杂的ALU;一个单一元件也可能含有ALU。 1945年数学家冯诺伊曼在一篇介绍被称为EDV AC的一种新型电脑的基础构成的报告中提出ALU的概念。 早期发展:1946年,冯诺伊曼与同事合作为普林斯顿高等学习学院(IAS)设计计算机。随后IAS计算机成为后来计算机的原形。在论文中,冯诺伊曼提出他相信计算机中所需的部件,其中包括ALU。冯诺伊曼写到,ALU是计算机的必备组成部分,因为已确定计算机一定要完成基本的数学运算,包括加减乘除。于是他相信计算机应该含有专门完成此类运算的部件。 ①数字系统 ALU必须使用与数字电路其他部分使用同样的格式进行数字处理。对现代处理器而言,几乎全都使用二进制补码表示方式。早期的计算机曾使用过很多种数字系统,包括反码、符号数值码,甚至是十进制码,每一位用十个管子。以上这每一种数字系统所对应的ALU都有不同的设计,而这也影响了当前对二进制补码的优先选择,因为二进制补码能简化ALU加法和减法的运算。 ②可行性分析 绝大部分计算机指令都是由ALU执行的。ALU从寄存器中取出数据,数据经过处理将运算结果存入ALU输出寄存器中。其他部件负责在寄存器与内存间传送数据,控制单元控制着ALU,通过控制电路来告诉ALU该执行什么操作。 ③简单运算 大部分ALU都可以完成以下运算∶整数算术运算(加、减,有时还包括乘和除,不过成本

基于FPGA的嵌入式监控系统设计

基于FPGA的嵌入式监控系统设计 来源:无线测温.testeck. 目前,图像监控系统大多采用PC和视频采集卡作为系统主要部分,基于嵌入式技术的图像监控系统设备在我国还只是起步阶段,没有成熟的产品应用。这一现状的根本原因就是我国在开发这类产品时,没有统一的开发标准和共用的开发平台,而且没有可靠的功能和性能测试标准,各个企业的开发技术力量分散,极大的影响了该类产品开发的效率和可靠性。而制造出来的产品同国外同类产品相比,功能相差太大,没有竞争力,市场基本上被国外公司所占领。因此,开发一个该类嵌入式系统势在必行。 系统总体方案 为了实现自动图像报警和图像采集,本文设计了动体检测算法,这是因为绝大多数情况下我们只对监控区域中运动的物体感兴趣,这样可以过滤掉只包含静态背景的图像,从而降低了对有限的嵌入式硬件资源的消耗。由于活动物体大多是人,而且这也是图像监控的目标,为此加入了人体信号探测器,用以辅助动体检测,以达到降低图像报警误报率的目的。本系统主要集成了图像采集、控制和存储等器件或芯片,组成了以FPGA为控制核心的实时图像监控系统。系统

的总体方案如图1所示。 图1 图像监控系统结构图 系统工作流程为:系统上电后,FPGA从外部EEPROM自动加载程序,I2C模块对CIS进行初始化工作参数配置。CIS 向FPGA输入图像数据信号,FPGA将采集的原始数据(RAW)转换成RGB格式,帧缓冲模块(Frame Buffer)每次将相邻两帧图像数据写入SDRAM,然后比较这两帧图像的差值,如果差值大于设定的阈值,并且人体探测器输出高电平,就认为检测到了外界场景的运动,系统会自动将捕获的图像输出到SD卡进行存储。图2给出了系统的工作流程。 图2 系统工作流程图 图3 电源电路原理图 系统硬件设计与实现 图像监控系统处理的数据量较大,同时还要满足实时性要

相关主题