基于veriloghdl的數字密碼鎖的設計_第1頁
基于veriloghdl的數字密碼鎖的設計_第2頁
基于veriloghdl的數字密碼鎖的設計_第3頁
基于veriloghdl的數字密碼鎖的設計_第4頁
基于veriloghdl的數字密碼鎖的設計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、成績課程設計報告題目:基于veri log hdl的數字密碼鎖的設計學生姓名江留勝學生學號0908030113系別電氣信息工程學院專業(yè)電子信息工程屆另:2013 屆指導教師馬立憲基于ver i i og hdl的數字密碼鎖的設計學 生:江留勝 指導教師:馬立憲電氣信息工程學院電子信息工程1課程設計的任務與要求l.i課程設計的任務設計一個6位的數字密碼鎖,利用vcrilog hdl語言來實現,并使用quartus ii進行仿真與調試。1.2課程設計的要求設計一個簡單的數字密碼鎖,密碼為6位,其功能:1、在內部設置密碼,其密碼用6位十進制數表示。2、輸入密碼時,每次輸入一位數,輸入后按#進行確認。

2、3、當輸入的密碼順序與設置的密碼一致時,密碼鎖打開,否則,則報警。4、具奮重置密碼的功能。輸入密碼正確后按*號鍵輸入要重的密碼,按#號鍵確認密碼的重置,連續(xù)輸入兩次,則密碼重置成功。使用verilog hdl語言編寫密碼鎖的開鎖過程的程序,并借助quartus ii軟件對其進行仿真,觀察實驗波形。1.3課程設計的研宄基礎(設計所用的基礎理論)密碼鎖就是要有一定的自我保護功能,并且能夠定吋更新防止破譯的危險。密碼鎖控制器是硬件與軟件的結合。verilog hdl是一種優(yōu)秀的硬件描述語言,它與c語言有許多相似之處,并繼承和借鑒了 c語言的多種操作符和語法結構,有c語言基礎的人很快就能夠學習并使用該

3、語言。在本次計中,系統開發(fā)平臺為quartus ii。quartus ii界面友好,使用便捷,被譽為業(yè)界 最易用易學的eda軟件。在quartus ii上可以完成設計輸入、元件適配、時序仿真和功 能仿真、編程下載整個流程,它提供了一種與結構無關的設計環(huán)境,是設計者能方便地進行設計輸入、快速處理和器件編程。在本次設計中,采用的硬件描述語言是verilog iidlo verilog hdl也是目前應用最為廣泛的硬件描述語言,并被ieee采納為ieeew064-1995標準。verilog iidl可以用來進行各種層次的邏輯設計,也可以進行數字系統的邏輯綜合、仿真驗證和時序分析。verilog h

4、dl適合算法級(algorithm)、寄存器傳輸級(rtl)邏輯級(logic)、門級(gate)和版圖級(layout)等各個層次的電路設計和描述。使設計者在進行電路設計時不必過多考慮工藝實現的具體細節(jié),verilog 1idl只需要根據系統設計的要求施加不同的約束條件,即可設計出實際電路。利用計算機的強大功能,在eda工具的支持下,把邏輯驗證與具體工藝庫相匹配,將布線及延遲計算分成不同的階段來實現,減少了設計者的繁重勞動。2數字密碼鎖系統方案制定2.1方案提出(以方框圖模塊化設計的形式給出至少2個方案,并簡要說明) 設計方案一:采用數字電路控制,用以cmos構成的數字邏輯電路作為密碼鎖的控

5、制核心,用verilog hdl硬件描述語言來進行仿真。設計一個簡單的數字密碼鎖,密碼為6位,其功能.在 內部設置密碼,其密碼用6位十進制數表示。輸入密碼時,每次輸入一位數,輸入后并 進行確定。若輸入密碼位與對應位相冋,則通過并繼續(xù)輸入密碼,直至輸入結束,最后 開鎖。若有一位與對應密碼位不同則報警,結束輸入,若要開鎖需重新輸入。其流程圖如下:輸入:數值09n=l開鎖失敗廣結束 、 /方案一的流程圖 方案二:采用以at89c51單片機為核心控制的方案。能完成開鎖,修改密碼,密碼錯誤報警,lcd顯示密碼等:基本的密碼鎖功能。其主要具有如k功能:(1) 密碼通過鍵盤輸入,若密碼正確,則將鎖打開。(2

6、) 報警功能。密碼輸入錯誤密碼則蜂鳴器發(fā)出報警。(3) 可以進行密碼的重置。方案二的框圖2.2方案比較基于單片機的實現方案原理復雜,調試比較麻煩,所用到的器件比較多,而用數字電路的實現過程相對而言比較簡單,軟件易于實現,容易調試。2.3方案論證隨著社會物質財富的口益增長,安全防盜己成為全社會關注的問題?;趀da技術設計的電子密碼鎖,以其價格便宜、安全可靠、使用方便,受到了人們的普遍關注。而以現場可編程邏輯器件(fpga)為設計載體,以硬件描述語言(vhde)為主要表達方式,以quartusii開發(fā)軟件和gw48eda開發(fā)系統為設計工具設計的電子密碼鎖,由于其能夠實現數碼輸入、數碼清除、密碼解

7、除、密碼更改、密碼上鎖和密碼解除等功能,因此,能夠滿足社會對安全防盜的要求。2.4方案選擇綜合以上情況,木次設計采用第一種方案。3數字密碼鎖系統方案設計3.1各單元模塊功能介紹及電路設計1、密碼重置模塊:該電路的的具體功能是:輸入密碼正確后按*號鍵輸入要設置和更改的密碼,按#號鍵確認密碼設置與更改,連續(xù)輸入兩次,則密碼設置成功。按耍求,該部分耍用到i2c總線e2prom器件at24c08。它的容量為1024x8(8kbytes),支持2.7v5.5v工作電壓。當工作電壓為5v的時候,其接口速度可以達到400khz。at24c08與外部的i/o接口引腳連接電路 2、鍵盤輸入模塊:鍵盤掃描過程:在

8、木系統中采用3x4的鍵盤,因此要識別按鍵,只需要知道是哪一行 和哪一列即可,為了完成這一識別過程,我們的思想是,首先固定輸出3行為高電平, 然后輸出4列為低電平,在讀入輸出的3行的值,通常高電平會被低電平拉低,如果讀 入的3行均為高電平,那么肯定沒有按鍵按下,否則,如果讀入的3行有一位為低電平, 那么對應的該行肯定有一個按鍵按下,這樣便可以獲取到按鍵的行值。冋理,獲取列值 也是如此,先輸出4列為高電平,然后在輸出3行為低電平,再讀入列值,如果其中有 哪一位為低電平,那么肯定對應的那一列有按鍵按下。本實驗箱上的3x4矩陣鍵盤的電路原理如圖所示。et1.rep|3x4矩陣鍵盤電路原理圖3、報警電路

9、:根據設計要求,當密碼輸入連續(xù)三次錯誤,則報警電路連通,其屮報警聲要求為高聲2.5khz,低聲1.25khz交替報警,交替周期為is (1hz吋鐘,需要對系統吋鐘進行10k 分頻)。在整個試驗平臺的下方有兩組跳線,位于左邊的一組跳線用來選取喇叭的聲源信號。 當跳線位于左邊的時候喇叭的聲源來自fpga,位于右邊時聲源來自aic23模塊的輸入 信號。位于右邊的一組跳線用來控制喇叭的開關,當跳線位于左邊時喇叭為開的狀態(tài), 位于右邊吋為關的狀態(tài)。要使喇叭發(fā)聲請確認喇叭處于開的狀態(tài),并且聲源是信號輸入。揚聲器(喇叭)電路圖如圖所示:揚聲器電路閣4、密碼鎖處理單元電路如下圖為處理單元邏輯結構圖由6位的撥動

10、開關設置的數碼作為6選1多路選擇器的數 據輸入,3位二進制計數器的輸出作為多路選擇器的選擇數據輸入。多路選擇器的輸出 與bit開關產生的數碼相比較,兩者相同時輸出b為1,不同時為0.。復位后,控制單 元發(fā)出clr命令使計數器清零,在控制信號的作用下,多路選擇器的輸入數據從低位到 高位逐位被選擇出來。控制單元根據處理電路反饋回來的b狀態(tài)信息,獲得各次比較的 結果。開鎖密碼位數的確定由比較器完成,當輸入數碼的位數為8位時,比較器輸出m為1,否則為0。i密碼輸入i處理單元邏輯結構圖 5、密碼鎖控制模塊控制器實際上是一個有限狀態(tài)機,下圖為它的狀態(tài)流程圖。它一共奮六個狀態(tài):準備狀 態(tài)so、密碼輸入狀態(tài)s

11、1、密碼設置狀態(tài)s2、確認狀態(tài)s3、開鎖狀態(tài)s4和報警狀態(tài)s5。c c l ropen準備狀態(tài)so:系統開鎖、報警或上電后進入準備狀態(tài),這時系統不接收除ready信號外的 任何輸入信號。密碼輸入狀態(tài)s1:在該狀態(tài)下,如果按下“ready”則保持該狀態(tài)不變;如果按下“0k”和“open”則轉到報警狀態(tài);如果有數據輸入,則控制器輸入一個data- in信號,輸出rd和cnp1信號,從ram中讀取密碼進行比較,同時使計數器加1 ;檢斉計數是否計數到100,若cntel有效,表示已經接收到四個正確的密碼,可以轉入下一個狀態(tài),否則返回本狀態(tài),繼續(xù)接收其它密碼。檢查dep信號狀態(tài),dep=l則密碼正確,進

12、入確認狀態(tài),反之則輸出cxp2信號進入報警狀態(tài);如果仍然有數據輸入,則說明輸入密碼錯誤,則輸出cnp2信號進入報警狀態(tài)。密碼設置狀態(tài)s2:在確認狀態(tài)下按“set”鍵進入該狀態(tài),en信號有效。該狀態(tài)首先由控 制器發(fā)reset-cnt信號;檢查是否有數據輸入,如果沒有則等待;若有數據輸入,控制器則 輸出wr和cnp1信號,向ram發(fā)出信號,并使計數器加1 ,檢查計數器是否計數到100, 若cntel有效,表示已經接收到四個正確的密碼,進入確認狀態(tài),否則返回木狀態(tài),繼續(xù)接收其它密碼。確認狀態(tài)s3:輸入密碼正確后進入該狀態(tài)。密碼輸入得到確認才可以進入開鎖狀態(tài),密碼 設置完畢后,只有得到確認才可生效,并

13、返回準備狀態(tài)。開鎖狀態(tài)s4:輸入密碼確認后進入該狀態(tài),此時按“open”鍵,控制器便發(fā)出slt信號開 鎖并返回到準備狀態(tài)。報警狀態(tài)s5:每次進入該狀態(tài)首先檢查計數器2是否計數到01。若輸入錯誤,則cntc2有效,控制器輸出slb信號,報警電路報警。3.2電路參數的計算及元器件的選擇i2c 總線 e2prom 器件 at24c08實驗箱供電電源5v導線若干鍵盤按鍵與編碼的對應表編碼000000010010001101000101按鍵字符012345編碼011001111000100110101011現杰w 1 轱拖備侔掄 出 次態(tài)(t1ts2m-titry-vcc5<s,按鍵字符6789氺

14、3.3特殊器件的介紹通常在一個鍵盤中使用了一個瞬時接觸開關,并且用如圖2所示的簡單電路,微處理器 可以容易地檢測到閉合。當開關打開時,通過處理器的i/o 口的一個上拉電阻提供邏輯 1;當開關閉合時,處理器的i/o門的輸入將被拉低得到邏輯0。圖2簡單鍵盤電路但是開關并不完善,因為當它們被按下或者被釋放時,并不能夠產生一個明確的1或者 0。盡管觸點可能看起來穩(wěn)定而且很快地閉合,但與微處理器快速的運行速度和比,這 種動作是比較慢的。當觸點閉合時,其彈起就像一個球。彈起效果將產生如閣3所示的 好幾個脈沖。彈起的持續(xù)時間通常將維持在5ms30ms之間。如果需要多個鍵,則可以 將每個開關連接到微處理器上它

15、自己的輸入端口。然而,當開關的數0增加時,這種方 法將很快使用完所有的輸入端u。圖3按鍵抖動鍵盤上陣列效的方當需要5 ffe上的鍵吋形成了一個如圖4所示個最優(yōu)化的布列的二維矩陣。u行和時的數方式(i/o端u 一位夕y術入摘a>b1b2b3八b3+5v點。矩陣所需的鍵酌而不同。每一行由一連接的生每一行與線一列的交叉fe阻器上拉且供給輸入端3.4系統整體電路圖1、系統電路組成:密碼密碼鎖控制電路<>報警電重置路電路鍵盤輸入電路2、密碼鎖的系統結構框圖:resetarcsc密碼沒定清零處理器bcd碼修改處理器1數值比較器ok計數器c3計數器c2 計數器cl處理器2數位比較器eitc

16、pbmaltervopen4數字密碼鎖系統仿真和調試4. 1仿真軟件介紹quartus ii是altera公司的綜合性pld/fpga開發(fā)軟件,支持原理圖、vhdl、vcriloghdl 以及 ahdl (altera hardware description language)等多種設計輸入形式,pj嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的 完整pld設計流程。quartus ii可以在xp、linux以及unix上使用,除了可以使用tel腳木完成設 計流程外,提供了完善的用戶圖形界面設計方式。具有運行速度快,界面統一, 功能集中,易學易用等特點。quartus ii支持al

17、tera的ip核,包含丫 lpm/megafunction宏功能模塊庫, 使用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。對第 三方eda工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三方 eda工具。此外,quartus ii 通過和dsp builder工具與matlab/simulink相結合,可 以方便地實現各種dsp應用系統;支持altera的片上可編程系統(sopc)開發(fā), 集系統級設計、嵌入式軟件開發(fā)、可編程邏輯設計于一體,是一種綜合性的殲發(fā) 平臺。maxplus ii作為altera的上一代pld設計軟件,由于其出色的易用性而得到 了廣泛的應用。目

18、前altera已經停止了對maxplus ii的更新支持,quartusii 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。altera在 quartus tt 中包含了許多諸如 signaltap ii、chip editor 和 rtl viewer 的設計輔助工具,集成了 sopc和hardcopy設計流程,并且繼承了 maxplus ii 友好的圖形界面及簡便的使用方法。altera quartus ii作為一種可編程邏輯的設計環(huán)境,由于其強大的設計能 力和直觀易用的接門,越來越受到數字系統設計者的歡迎。4.2系統仿真實現設計程序:module lock_rtl(open,err

19、or,nreset,try,read,bit,clk);input nreset,try,read,bit,clk;output open,error;reg open,error;wire nreset,try,read,bit,clk;parameter 50=6000001,sl=6b000010,s2=6b000100,83=6001000,s4=6b010000,s5=6bl00000;parameter password=8? bo 1011001;reg 5:0currentstate,nextstate;reg nclr,cnt;wire b,m;reg 2;0q;wire a

20、2,a1,ao;wire 7:0d;reg mux一out;always (posedge clk or negedge nreset)begin: stateregif (nreset)begin currentstate<=so;nclr<=lbo;endelsebegin currentstate<=nextstate;nclr<=rbl;endend/ stateregalways (bit or read or try or b or m or currentstate)begin:fsmopen=lbo;error=lbo;cnt=lb0;case(curr

21、entstate)s0:beginnextstate=sl;endsl:begincnt=(try&re ad= 1 b 1); if(try) nextstate=s5;else if(read)nextstate=sl;else if(b)nextstate=s5; else if(m) nextstate=s2;else nextstate=s3;ends2:beginif (read) =s5;else if(read) nextstate=s2; else nextstate=s4;ends3:beginneststate=s 1;ends4:beginopen=lbl;ne

22、xtstate=s4;ends5:beginerror=lbl;nextstate=s5;enddefault:nextstate=so;endcase end always (posedge clk or negedge nclr)begin:counterif (nclr) q<=3b000;else if(cnt=vbl)q<=q+rbl;else q<=q;endassign m=(q=3blll);assign a2, a1, ao =q;assign d=password;always (a2 or a1 or ao or d)begin : muxltiplex

23、ercase( a2,a1,ao)3d0:mux_out=d0;3d 1: mux_out=d 1 ;3d2:mux_out=d2;3d3:mux_out=d3;3d4:mux_out=d4;3,d5:mux_out=d5;endcaseendassign b=( mux_out八bit);endmodule4.3系統測試(要求測試環(huán)境、測試儀器、測量數據) 測試環(huán)境:windows操作系統、quartusii開發(fā)平臺 測試儀器:eda實驗箱、quartus ii軟件下的仿真 仿真時序圖:nresetclkreadbittryba qhb currentstate 3 hextstateope

24、jierrorh 0 us 4. 5 bs8. 5 «s12. 5 bs16.5 鳳s5 bsj22. 5 msj24. 5 bs28.5jmnnj"lrlnjmtlntlnnjttlntlrlrlnj"l,i r*"j,了 tijr"n ryi7ty"t")ctx"tyr"xy7rnms)®2®s® _姻kds2®®c5zzx52x正確開鎖的時序圖23. 0 bs 27. 0 b8 31. 0 aslj1:i錯誤開鎖的時序0 ns?3l43.0 as 4

25、7. 0 bs 51.0l fljhlijttl廠fr"1一-iha門1rt1jir1x1zxzzxzq2jcx q220sftt48. 5 as"lrlnjtrlnjmtlrlrlrtrlrlrlrmrlrlrumrlrlrlrl"ltitl5ezxcfiex2sly2o"vt4.4數據分析(對比系統功能及參數與設計要求是否相符)由系統的時序仿真圖可以看出,當我們輸入的密碼數字和系統原始預設的密碼順序一樣 時,我們所設計的密碼鎖可以正確開鎖,而當輸入密碼與原始預置密碼不一樣時,系統 將發(fā)出警報,無法進行開鎖,因此我們所設計的系統達到了設計的要求。5總結

26、5.1設計小結木次設計是以fpga為設計載體,以硬件描述語言verilog hdl為主要表達方式,以 quartusii開發(fā)軟件和gw48eda開發(fā)系統為設計工具,設計了一種具有密碼輸入、密碼 重置、正確開鎖和錯誤報警等功能的電子密碼鎖。同時闡述電子密碼鎖的工作原理和軟 硬件實現方法,在quartusii環(huán)境卜進行電路的模擬仿真,反饋結果可以驗證程序設計 的可行性與可靠性,對該電子密碼鎖進行時序仿真和硬件驗證的結果表明:該電路能夠 實現所要求的功能。設計的密碼鎖控制器設置的是六位密碼,在系統復位后,用戶按鍵6次,輸入一個完整 的密碼串,輸入完后,系統會進行比對,如果發(fā)現密碼吻合,則開門,否則系

27、統報警, 直到輸入正確的密碼,報警聲停止。這樣的設計可以很好的滿足人們的常需求。同時, 密碼鎖還具有密碼修改功能,方便操作,使得密碼鎖的使用更加安全、便捷。5.2收獲體會在軟件、硬件設計和仿真過程中遇到不少問題,但最終還是把它們解決了,使得設計符 合要求。除了自己思考設計之外,這與和本組成員的同心協力的合作與討論是分不開的 的。相互的探討使得我們的思路更加開闊,解決問題的辦法也更多??傊?,此次課程設 計讓我收益良多,同吋因為有了實踐操作,對基于veriloghdl的現代數字電路與系 統課程所學內容也有了更深的記憶和理解,對eda技術額能夠更好的掌握和應用了。通過這一課程設計使我們將課堂上的理論知識有了進步的了解,并增強了對eda這門 課程的興趣。y解丫更多的分析調試和解決問題的能力,但同時也暴露出我在知識上掌 握不足等缺點;蘇次在此次設計過程中由于我們頻繁的

溫馨提示

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

評論

0/150

提交評論