淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告 reg Mux_out;
always @(posedge CLK or negedge nRESET) begin: statereg if (~nRESET)
begin CurrentState<=S0; nCLR<=1’b0; end else
begin CurrentState<=Nextstate; nCLR<=1’b1; end end// statereg
always @(BIT or READ or TRY or B or M or CurrentState) begin:fsm OPEN=1’b0; ERROR=1’b0; CNT=1’b0; case(CurrentState) S0:begin
NextState=S1; end S1:begin
CNT=(~TRY&READ==1’b1); if(TRY) NextState=S5; else if(~READ) NextState=S1; else if(~B)NextState=S5; else if(M) NextState=S2; else NextState=S3; end S2:begin if (READ) =S5;
else if(~READ) NextState=S2; else NextState=S4;
16
淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告 end S3:begin NestState=S1; end S4:begin OPEN=1’b1; NextState=S4; end S5:begin ERROR=1’b1; NextState=S5; end
default:NextState=S0; endcase end
always @(posedge CLK or negedge nCLR) begin:counter
if (~nCLR) Q<=3’b000; else if(CNT==1’b1)Q<=Q+1'b1; else Q<=Q; end
assign M=(Q==3’b111); assign{A2,A1,A0}=Q; assign D=password;
always @(A2 or A1 or A0 or D) begin : Muxltiplexer case({A2,A1,A0}) 3’d0:Mux_out=D[0]; 3’d1:Mux_out=D[1]; 3’d2:Mux_out=D[2]; 3’d3:Mux_out=D[3]; 3’d4:Mux_out=D[4]; 3’d5:Mux_out=D[5]; endcase
17
淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告 end
assign B=( Mux_out~^BIT); endmodule
4.3 系统测试(要求测试环境、测试仪器、测量数据) 测试环境:Windows操作系统、QuartusⅡ开发平台 测试仪器:EDA实验箱、QuartusⅡ软件下的仿真 仿真时序图:
正确开锁的时序图
错误开锁的时序
4.4 数据分析(对比系统功能及参数与设计要求是否相符)
由系统的时序仿真图可以看出,当我们输入的密码数字和系统原始预设的密码顺序一样时,我们所设计的密码锁可以正确开锁,而当输入密码与原始预置密码不一样时,系统将发出警报,无法进行开锁,因此我们所设计的系统达到了设计的要求。 5 总结
5.1 设计小结
本次设计是以FPGA 为设计载体,以硬件描述语言 Verilog HDL为主要表达方式,
18
淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告 以 QuartusⅡ开发软件和GW48EDA开发系统为设计工具,设计了一种具有密码输入、密码重置、正确开锁和错误报警等功能的电子密码锁。同时阐述电子密码锁的工作原理和软硬件实现方法,在QuartusⅡ环境下进行电路的模拟仿真,反馈结果可以验证程序设计的可行性与可靠性,对该电子密码锁进行时序仿真和硬件验证的结果表明:该电路能够实现所要求的功能。
设计的密码锁控制器设置的是六位密码,在系统复位后,用户按键6次,输入一个完整的密码串,输入完后,系统会进行比对,如果发现密码吻合,则开门,否则系统报警,直到输入正确的密码,报警声停止。这样的设计可以很好的满足人们的日常需求。同时,密码锁还具有密码修改功能,方便操作,使得密码锁的使用更加安全、便捷。 5.2 收获体会
在软件、硬件设计和仿真过程中遇到不少问题,但最终还是把它们解决了,使得设计符合要求。除了自己思考设计之外,这与和本组成员的同心协力的合作与讨论是分不开的的。相互的探讨使得我们的思路更加开阔,解决问题的办法也更多。总之,此次课程设计让我收益良多,同时因为有了实践操作,对《基于VerilogHDL的现代数字电路与系统》课程所学内容也有了更深的记忆和理解,对EDA技术额能够更好的掌握和应用了。
通过这一课程设计使我们将课堂上的理论知识有了进步的了解,并增强了对EDA这门课程的兴趣。了解了更多的分析调试和解决问题的能力,但同时也暴露出我在知识上掌握不足等缺点;其次在此次设计过程中由于我们频繁的使用一电子设计软件,因此使我熟悉了软件的使用,同时在电脑的电子设计有了进一步提高。
在设计过程中遇到了一些问题,使得我得和同学一起配合,查找相关资料,从而增长知识的同时增强解决问题和动手的能力。这一课程设计,使我向更高的精神和知识层次迈向一大步。
在以后的学习生活中,我会努力学习,培养自己独立思考的能力,积极参加多种设计活动,培养自己的综合能力,从而使得自己成为一个有综合能力的人才而更加适应社会。 5.3 展望
智能密码锁由于采用Verilog HDL语言设计, 用一片FPGA芯片来实现,因而体积小,功耗低,稍加修改就可以改变密码的位数和输入密码的次数,而升级和维护都很方
19
淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告 便,而且容易做成 ASIC 芯片,具有较好的应用前景。但由于结构还比较简单,有待进一步完善。
6参考文献
[1] 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006. [2] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.
[3]王金明.数字系统设计与Verilog HDL.EDA工具应用丛书.电子工业出版社,2009.1 [4]谭会生等主编. EDA技术及应用,西安电子科技大学出版社,2001
[5] (美国)Sanir Palnitkar著,夏宇闻 胡燕祥 刁岚松等译.Verilog HDL数字设计与综合(第2版).电子工业出版社,2009年7月1日.
7附录
系统主要功能展示图
密码锁控制的开锁过程时序图:
器件清单
器件 计算机 EDA实验箱 键盘按键 电源 电源 电源 导线 型号 Windows操作系统 / / 5V 3.3V 12V / 数量 1台 1个 12个 1个 1个 1个 若干 作用 仿真的环境平台 硬件连接 数字的键入 供电 供电 供电 连接电路 20
淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告 报警器 拨码开关 / /
1个 1个 密码错误时进行报警 / 21