硬件描述語言與EDA技術實踐_第1頁
硬件描述語言與EDA技術實踐_第2頁
硬件描述語言與EDA技術實踐_第3頁
硬件描述語言與EDA技術實踐_第4頁
硬件描述語言與EDA技術實踐_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、課 程 設 計 課程名稱硬件描述語言與EDA技術實踐題目名稱 數(shù)字密碼鎖 學生學院 專業(yè)班級 學 號 學生姓名 指導教師 年 月 日25 / 27目錄1.引言11.2 、電子密碼鎖的介紹21.3、本設計所要實現(xiàn)的基本要求22. 密碼鎖總體設計32.1 、基本工作原理32.2、實現(xiàn)方式32.3、功能電路設計32.3.1、總體設計32.3.2、密碼儲存42.3.3、鍵盤消抖及掃描42.3.4、主狀態(tài)機62.3.5輸入密碼從狀態(tài)機72.3.6、整體RTL視圖123. 外部電路134.管腳分配145.結(jié)束語156.參考文獻157.附錄16采用EDA實現(xiàn)數(shù)字密碼鎖1.引言隨著科技的不斷發(fā)展,人們越來越重

2、視對具有私密、重要物質(zhì)的場所的安全性,所以具有報警功能的電子密碼鎖在日常生活中用的越來越多,因此研究與設計單片機為主要控制器的電子密碼鎖具有工程意義和解決日常應用需求的價值。1.1 、電子密碼鎖的背景與發(fā)展趨勢隨著人們生活水平的提高和安全意識的加強,對安全的要求也就越來越高。鎖自古以來就是把守護門的鐵將軍,人們對它要求甚高,既要安全可靠的防盜,又要使用方便,這也是制鎖者長期以來研制的主題。隨著電子技術的發(fā)展,各類電子產(chǎn)品應運而生,電子密碼鎖就是其中之一。據(jù)有關資料介紹,電子密碼鎖的研究從20世紀30年代就開始了,在一些特殊場所早就有所應用。這種鎖是通過鍵盤輸入一組密碼完成開鎖過程。研究這種鎖的

3、初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼量)極大,可以與機械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來越多的人所欣賞。電子鎖的種類繁多,例如數(shù)碼鎖,指紋鎖,磁卡鎖,IC卡鎖,生物鎖等。但較實用的還是按鍵式電子密碼鎖。20世紀80年代后,隨著電子鎖專用集成電路的出現(xiàn),電子鎖的體積縮小,可靠性提高,成本較高,是適合使用在安全性要求較高的場合,且需要有電源提供能量,使用還局限在一定范圍,難以普及,所以對它的研究一直沒有明顯進展。目前,在西方發(fā)達國家,電子密碼鎖技術相對先進,種類齊全,電子密碼鎖已被廣

4、泛應用于智能門禁系統(tǒng)中,通過多種更加安全,更加可靠的技術實現(xiàn)大門的管理。在我國電子鎖整體水平尚處于國際上70年代左右,電子密碼鎖的成本還很高,市場上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進國際先進水平,現(xiàn)國內(nèi)有幾個廠生產(chǎn)供應市場。但國內(nèi)自行研制開發(fā)的電子鎖,其市場結(jié)構尚未形成,應用還不廣泛。國內(nèi)的不少企業(yè)也引進了世界上先進的技術,發(fā)展前景非??捎^。希望通過不斷的努力,使電子密碼鎖在我國也能得到廣泛應用。 目前使用的電子密碼鎖大部分是基于單片機技術,以單片機為主要器件,其編碼器與解碼器的生成為軟件方式。在實際應用中,由于程序容易跑飛,系統(tǒng)的可靠性能較差。基于現(xiàn)場可編程邏輯門陣列FPGA

5、器件的電子密碼鎖,用FPGA器件構造系統(tǒng),所有算法完全由硬件電路來實現(xiàn),使得系統(tǒng)的工作可靠性大為提高。由于FPGA具有現(xiàn)場可編程功能,當設計需要更改時,只需更改FPGA中的控制和接口電路,利用EDA工具將更新后的設計下載到FPGA中即可,無需更改外部電路的設計,大大提高了設計的效率。1.2 、電子密碼鎖的介紹電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關的閉合,完成開鎖、閉鎖任務的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品。應用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。電子密碼鎖有以下性能特點:1.保密性好,編碼量多,遠遠大于彈子鎖。

6、隨機開鎖成功率幾乎為零。2.密碼可變。用戶可以經(jīng)常更改密碼,防止密碼被盜,同時也可以避免因人員的更替而使鎖的密級下降。3.誤碼輸入保護。當輸入密碼多次錯誤時,報警系統(tǒng)自動啟動。4.電子密碼鎖操作簡單易行,一學即會。5.干擾碼功能。在輸入正確密碼前可輸入任意碼。6.安保功能。密碼出錯過多時,將鎖定鍵盤。7.操作方便。1.3、本設計所要實現(xiàn)的基本要求(1)采用4位二進制密碼,密碼通過鍵盤輸入,若密碼正確,則將鎖打開。(2)報警、鎖定鍵盤功能。密碼輸入錯誤LED會出現(xiàn)錯誤提示,若密碼輸入錯誤次數(shù)超過3次,蜂鳴器報警并且鎖定鍵盤。(3) 修改密碼,通過修改密碼增強密碼鎖可靠性。 (4) 系統(tǒng)具有一鍵還

7、原出廠密碼功能,如果對密碼管理不善可以使用本功能進行密碼還原。(5)成功開鎖后,通過關鎖鍵關鎖。(6)報警及鎖定鍵盤后可通過解鎖報警鍵取消報警。2. 密碼鎖總體設計2.1 、基本工作原理電子密碼鎖結(jié)構如圖2-1。鍵盤輸入LED提示密碼儲存開鎖報警密碼處理圖2-1.電子密碼鎖結(jié)構圖2.2、實現(xiàn)方式本次電子密碼鎖的設計采用現(xiàn)場可編程邏輯門陣列FPGA器件。利用硬件描述語言Verilog描述功能電路,下載到FPGA器件里,利用FPGA及其所需外設實現(xiàn)本次設計所要求的功能。2.3、功能電路設計2.3.1、總體設計整個電路的輸入輸出接口。2.3.2、密碼儲存將初始密碼作為常量儲存在PASSWORD,初始

8、密碼為1111。password_check作為現(xiàn)有密碼寄存器,password作為輸入密碼寄存器和第一次輸入的修改密碼的寄存器。password1作為檢測用的第二次輸入的修改密碼的寄存器。2.3.3、鍵盤消抖及掃描如圖為按鍵消抖及掃描模塊。一般按鍵的抖動時間為5ms到10ms。模塊中在檢測到按鍵按下后使用計數(shù)器計時滿20ms,然后再按鍵值鎖存到寄存器中。而按鍵掃描則是用寄存器中本次時鐘脈沖鎖存的值的取反和下次時鐘脈沖所所存的值相與來的得到按鍵被按下的一個時鐘的高脈沖。例化按鍵消抖及掃描模塊和判斷按鍵是否被按下(4個按鍵為按下為1111,有按鍵被按下相應位變?yōu)?)。2.3.4、主狀態(tài)機主狀態(tài)機

9、包括5個狀態(tài),分別為初始態(tài)(idle)、輸入(in_put)、開鎖(pass)、修改密碼(change)、警告(alarm)。如圖為狀態(tài)機的狀態(tài)圖。初始開機處于初始態(tài),等待輸入標志的到來,當輸入標志到來后進入輸入狀態(tài)。處于輸入狀態(tài)時等待密碼輸入判斷位的到來。當判斷密碼正確時進入開鎖態(tài),而當輸入密碼錯誤次數(shù)達到三次時,進入警告狀態(tài)。處于開鎖態(tài)是等待修改密碼或者關鎖,關鎖返回初始態(tài),修改密碼進入修改密碼狀態(tài)。進入修改密碼狀態(tài)后等待修改密碼完成(無論成功或者失敗)返回初始態(tài)。處于警告狀態(tài)后鎖定按鍵,等待取消警告標志到來,取消警告標志到來后返回初始態(tài)。2.3.5輸入密碼從狀態(tài)機密碼輸入狀態(tài)機分為輸入密

10、碼和修改密碼兩部分。如圖為輸入密碼的狀態(tài)圖。num0為等待第1位密碼輸入,輸入完成進入num1。num1為等待第2位密碼輸入,輸入完成進入num2。num2為等待第3位密碼輸入,輸入完成進入num3。num3為等待第4位密碼輸入,輸入完成進入num4。num4為等待確認輸入,輸入完成進入num5。num5為判斷密碼輸入是否正確。正確的話密碼輸入標志位correct置一,返回到num0,否則密碼錯誤輸入標志位try_error自加一, 返回到num0。其他情況返回到num0。如圖為修改密碼的狀態(tài)圖。num10為等待第1位修改密碼輸入,輸入完成進入num11。num11為等待第2位修改密碼輸入,輸

11、入完成進入num12。num12為等待第3位修改密碼輸入,輸入完成進入num13。num13為等待第4位修改密碼輸入,輸入完成進入num14。num14為等待第1次修改密碼確認輸入,輸入完成進入num20。num20為等待再次輸入第1為修改密碼,輸入完成進入num21。num21為等待再次輸入第2為修改密碼,輸入完成進入num22。num22為等待再次輸入第3為修改密碼,輸入完成進入num23。num23為等待再次輸入第4為修改密碼,輸入完成進入num24。num24為等待再次輸入修改密碼確認輸入,輸入完成進行判斷,正確則修改密碼正確標志位ch_correct置一,否則修改密碼錯誤標志位ch_

12、error置一,無論正確錯誤,都返回num10。2.3.6、整體RTL視圖如圖為整體RTL視圖。3. 外部電路外部電路包括一個產(chǎn)生時鐘的時鐘電路,4*1鍵盤,復位按鍵,蜂鳴器,4*1LED指示電路。如圖為時鐘電路。如圖為蜂鳴器電路。如圖為LED指示電路。如圖為4*1鍵盤電路。如圖為復位按鍵電路。4.管腳分配如圖為管腳分配圖。不同的FPGA實驗開發(fā)板所使用的管腳不同。5.結(jié)束語此次設計的基于FPGA的電子密碼鎖實現(xiàn)了密碼鎖的常用功能和技術指標。課程設計是培養(yǎng)學生綜合運用所學知識發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程。隨著科學技術發(fā)展的日新

13、月異,EDA設計和FPGA的應用已經(jīng)成為當今計算機應用中空前活躍的領域,在生活中可以說是無處不在。因此作為二十一世紀的大學生來說掌握EDA設計的開發(fā)技術是十分重要的。 對我而言,知識上的收獲重要,精神上的豐收更加可喜。讓我知道了學無止境的道理。我們每一個人永遠不能滿足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財富,經(jīng)歷是一份擁有。6.參考文獻1徐志軍等編著,EDA技術與VHDL設計,電子工業(yè)出版社,2010年5月;2曹昕燕等編著,EDA技術實踐與課程設計,清華大學出版社,2006年5月; 3劉欲曉等編著,EDA技術與VHDL電路開發(fā)應用實踐,電子工

14、業(yè)出版社,2009年4月;4劉昌華等編著,數(shù)字邏輯EDA設計與實踐:MAX+plus與Quartus雙劍合璧,國防工業(yè)出版社,2009年;5劉江海主編,EDA技術課程設計,華中科技大學出版社,2009年1月,6王掁紅主編,VHDL數(shù)字電路設計與應用實踐教程;機械工業(yè)出版社,2003年6月。7.附錄module lock(rst_n,clk,num3:0,warn,led3:0,led1,led2);parameter PASSWORD=4'b1111;input rst_n;input clk;input 3:0 num; /鍵盤輸入output warn,led1,led2;/輸出警

15、告output 3:0 led;/LED輸出reg 3:0 password,password1,password_check; /密碼寄存器wire 3:0 numbuf; /輸入鍵盤連線 numbuf3=enter /numbuf2=ch numbuf1=1 numbuf0=0reg 3:0 led;/LED控制寄存器reg key_en; /鍵盤是否按下wire warn;wire sys_clk=clk;key k1(/按鍵消抖.clk(clk),.rst_n(rst_n),.key_in(num3:0),.key_out(numbuf3:0);reg 4:0 cstate; /狀態(tài)機

16、現(xiàn)在狀態(tài)reg 4:0 nstate;/狀態(tài)機下個狀態(tài)reg correct,error,ch_correct,ch_error,alarmed;/密碼正確,錯誤,修改密碼正確,錯誤,警告標志reg 1:0 try_error;/密碼錯誤次數(shù)always(numbuf3:0) /判斷鍵盤是否按下beginif(numbuf=4'b0000)key_en<=0;elsekey_en<=1;endparameter idle=5'b00001,in_put=5'b00010,pass=5'b00100,change=5'b01000,alarm=

17、5'b10000;always(posedge sys_clk or negedge rst_n) /狀態(tài)機beginif (!rst_n) begincstate<=idle;endelse cstate<=nstate;endalways( cstate or key_en)begincase(cstate)idle:begin led<=4'b0000;if(numbuf3) beginnstate<=in_put;endelse nstate<=idle; endin_put:beginled0<=1;if(correct)nstat

18、e<=pass;else if(try_error=3)nstate<=alarm;else nstate<=in_put; endpass:beginled3:0<=4'b0010;if(numbuf3) nstate<=idle;else if(numbuf2)nstate<=change;elsenstate<=pass;endchange:begin led3:0<=4'b0100;if(ch_correct)nstate<=idle;else if(ch_error) nstate<=idle;else ns

19、tate<=change;endalarm:begin led3:0<=4'b1000;if(numbuf2)nstate<=idle;else nstate<=alarm;enddefault nstate<=idle;endcaseendreg led1,led2; /測試用LEDparameter num10=4'b0000,num11=4'b0001,num12=4'b0010,num13=4'b0011,num14=4'b0100,num20=4'b0101,num21=4'b0110,nu

20、m22=4'b0111,num23=4'b1000,num24=4'b1001;parameter num0=4'b0000,num1=4'b0001,num2=4'b0010,num3=4'b0011,num4=4'b0100,num5=4'b0101;reg 3:0 pstate,qstate;/密碼輸入位數(shù)狀態(tài)always(posedge sys_clk or negedge rst_n) /輸入密碼狀態(tài)機beginif(!rst_n) beginpassword<=4'b0000;password1&

21、lt;=4'b0000;pstate<=num0;qstate<=num10;password_check<=PASSWORD; /出廠密碼alarmed<=0;correct<=0;try_error<=0;ch_correct<=0;ch_error<=0;led1<=0;led2<=0;endelse if(cstate=idle)beginled1<=0;led2<=0;alarmed<=0;correct<=0;try_error<=0;ch_correct<=0;ch_error

22、<=0;pstate<=num0;qstate<=num10;endelse if(cstate=in_put)/輸入及判斷密碼begincase (pstate)num0: beginled1<=0;if(numbuf1:0)beginpassword3<=numbuf1&(numbuf0);pstate<=num1;endelse pstate<=num0;endnum1:beginif(numbuf1:0)beginpassword2<=numbuf1&(numbuf0);pstate<=num2;endelse ps

23、tate<=num1;endnum2: beginif(numbuf1:0)beginpassword1<=numbuf1&(numbuf0);pstate<=num3;endelse pstate<=num2;endnum3: beginif(numbuf1:0)beginpassword0<=numbuf1&(numbuf0);pstate<=num4;endelse pstate<=num3;endnum4: beginif(key_en&(numbuf3)beginpstate<=num5;endelse psta

24、te<=num4;endnum5:beginif(password3:0=password_check3:0)begincorrect<=1;pstate<=num0;led1<=1;led2<=0;endelse if(try_error=3) beginalarmed<=1;try_error<=0;pstate<=num0;endelse begintry_error<=try_error+1;pstate<=num0;led2<=1;endend default pstate<=num0;endcaseendels

25、e if(cstate=change) /修改密碼begincase (qstate)num10:begin if(numbuf1:0)begin password3<=numbuf1&(numbuf0);qstate<=num11;endelse qstate<=num10;endnum11:begin led1<=0;led2<=1;if(numbuf1:0)beginpassword2<=numbuf1&(numbuf0);qstate<=num12;endelse qstate<=num11;endnum12: begin

26、 led1<=1;led2<=0;if(numbuf1:0)beginpassword1<=numbuf1&(numbuf0);qstate<=num13;endelse qstate<=num12;endnum13: begin led1<=1;led2<=1;if(numbuf1:0)beginpassword0<=numbuf1&(numbuf0);qstate<=num14;endelse qstate<=num13;endnum14:begin led1<=0;led2<=0;if(numbuf3

27、)beginled1<=1;qstate<=num20;endelse qstate<=num14;endnum20:begin if(numbuf1:0)begin password13<=numbuf1&(numbuf0);qstate<=num21;endelse qstate<=num20;endnum21:begin led1<=0;led2<=1;if(numbuf1:0)beginpassword12<=numbuf1&(numbuf0);qstate<=num22;endelse qstate<=

28、num21;endnum22: begin led1<=1;led2<=0;if(numbuf1:0)beginpassword11<=numbuf1&(numbuf0);qstate<=num23;endelse qstate<=num22;endnum23: begin led1<=1;led2<=1;if(numbuf1:0)beginpassword10<=numbuf1&(numbuf0);qstate<=num24;endelse qstate<=num23;endnum24:beginled1<=1

29、;led2<=1;if(numbuf3)beginif(password3:0=password13:0)beginpassword_check3:0<=password3:0;ch_correct<=1;led1<=0;qstate<=num10;endelse beginch_error<=1;qstate<=num10;endendelse qstate<=num24;enddefault qstate<=num10;endcaseendelse if(cstate=alarm)beginalarmed<=1;endendassign warn=alarmed;endmodulemodule key( clk,rst_n,key_in, key_out );input clk;/主時鐘信號,50MHzinput rst_n;/復位信號,低有效input 3:0 key_in; /四個獨立按鍵,低表示按下output 3:0 ke

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論