VHDL密碼鎖設(shè)計_第1頁
VHDL密碼鎖設(shè)計_第2頁
VHDL密碼鎖設(shè)計_第3頁
VHDL密碼鎖設(shè)計_第4頁
VHDL密碼鎖設(shè)計_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、VHDL語言及應(yīng)用課程設(shè)計論文-VHDL平臺下密碼鎖的設(shè)計學院:電子信息學院專業(yè): 學號: 姓名: 指導(dǎo)老師: 團隊成員: 完成日期: 目錄一. 引言-1二. 實驗?zāi)康?1三. 實驗任務(wù)與要求-1四. 設(shè)計原理及工作流程-24.1 密碼鎖設(shè)計原理-24.2 密碼鎖系統(tǒng)框圖-24.3 密碼鎖設(shè)計提示-2五. 密碼鎖的頂層設(shè)計源程序-3六. 密碼鎖各功能模塊源程序及其仿真分析-56.1 密碼設(shè)定鎖存器源程序及其仿真分析-56.2 密碼輸入鎖存器源程序及其仿真分析-66.3 開鎖控制系統(tǒng)源程序及其仿真分析-86.4 比較器源程序及其仿真分析-96.5 LED顯示源程序及其仿真分析-116.6 頂層源

2、文件的仿真分析-12七. 密碼鎖設(shè)計源程序的下載調(diào)試-137.1 電路結(jié)構(gòu)-137.2 管腳分配-147.3 程序下載調(diào)試過程-14八. 實驗分析與總結(jié)-15九. 組內(nèi)分工-16十. 參考文獻-16一. 引言隨著社會物質(zhì)財富的日益增長和人們生活水平的提高,安全成為現(xiàn)代居民最關(guān)心的問題之一。因此人們對鎖要求甚高,既要求可靠地防盜,又要使用方便,這也是制鎖者長期以來研制的主題。傳統(tǒng)的門鎖既要備有大量的鑰匙,又要擔心鑰匙丟失后的麻煩。數(shù)字密碼鎖是二十一世紀制鎖業(yè)的一次革命,鎖的特點是不用鑰匙、無鎖孔、機械傳動、不易損壞、不磨損、不易被破譯、可多次更換密碼、換號不換鎖、一把鎖多個密碼,具有防撥、防砸、

3、防撬、防堵等功能。安裝門鎖時不破壞原門的結(jié)構(gòu),避免用鑰匙開啟旋芯式鎖具的一切煩惱(如丟、落、拆、堵門被反鎖等)。數(shù)字密碼鎖是利用數(shù)字密碼來開啟的鎖具,其重復(fù)概率極低,有著很高的安全性;而旋芯式鎖具使用不夠安全。通過對社會各階層千余人的調(diào)查,百分之百的人對目前身上掛著的串串鑰匙無可奈何,都愿意一身輕松沒有任何顧慮的出入家門,都愿意用上一種既安全方便又不用鑰匙的鎖具。因此,數(shù)字密碼鎖產(chǎn)品的市場發(fā)展前景極為廣闊。而EDA 技術(shù)設(shè)計電子系統(tǒng)具有用軟件的方式設(shè)計硬件,設(shè)計過程中可用有關(guān)軟件進行各種仿真,系統(tǒng)可現(xiàn)場編程、在線升級,整個系統(tǒng)可集成在一個芯片上等特點;不但設(shè)計周期短、設(shè)計成本低,而且將提高產(chǎn)品

4、或設(shè)備的性能,縮小產(chǎn)品體積、提高產(chǎn)品的技術(shù)含量,提高產(chǎn)品的附加值??梢姡肰HDL可以更加快速、靈活地設(shè)計出符合各種要求的密碼鎖,優(yōu)于其他設(shè)計方法,使設(shè)計過程達到高度自動化。本設(shè)計的各個模塊由相應(yīng)的VHDL程序具體實現(xiàn),并在Quartus9.0環(huán)境下進行了整體電路的模擬仿真,最終實現(xiàn)“密碼鎖設(shè)計”的要求。二. 實驗?zāi)康?. 掌握VHDL語言的使用,學會用VHDL語言來編程解決實際問題;2. 學會使用EDA開發(fā)軟件設(shè)計小型綜合電路,掌握仿真的技巧;3. 學會應(yīng)用開發(fā)系統(tǒng)實現(xiàn)硬件電路,檢驗電路的功能;4. 設(shè)計一個八位二進制密碼鎖,實現(xiàn)所要求的功能。三. 實驗任務(wù)與要求1、安鎖狀態(tài)。 按下開關(guān)鍵S

5、ETUP,密碼設(shè)置燈亮時,方可進行密碼設(shè)置操作。設(shè)置初始密碼09(或二進制8位數(shù)),必要時可以更換。再按SETUP鍵,密碼有效。2、 開鎖過程。(1) 、按啟動鍵(START)啟動開鎖程序,此時系統(tǒng)內(nèi)部應(yīng)處于初始狀態(tài)。(2) 、依次鍵入09(或二進制8位數(shù))。(3) 、按開門鍵(OPEN)準備開門。若按上述程序執(zhí)行且撥號正確,則開門指示燈A亮,若按錯密碼或未按上述程序執(zhí)行,則按動開門鍵OPEN后,報警裝置鳴叫、燈B亮。(4)、開鎖處理事務(wù)完畢后,應(yīng)將門關(guān)上,按SETUP鍵使系統(tǒng)重新進入安鎖狀態(tài)。若在報警狀態(tài),按SETUP鍵或START鍵應(yīng)不起作用,應(yīng)另用一按鍵RESET才能使系統(tǒng)進入安鎖狀態(tài)。

6、3、 使用者如按錯號碼可在按OPEN鍵之前,按START鍵重新啟動開鎖程序。4、 設(shè)計符合上述功能的密碼鎖,并用層次化方法設(shè)計該電路。5、 用功能仿真方法驗證,通過觀察有關(guān)波形確認電路設(shè)計是否正確。6、 完成電路設(shè)計后,通過在實驗系統(tǒng)中下載,驗證設(shè)計的正確性。四. 設(shè)計原理及工作流程4.1 密碼鎖設(shè)計原理如下示框圖,密碼鎖系統(tǒng)主要由開鎖控制,設(shè)置密碼的鎖存器,輸入密碼的鎖存器,比較器,LED顯示和報警系統(tǒng)幾個部分組成。每一個模塊功能的實現(xiàn)都是通過VHDL語言實現(xiàn)的,并通過頂層電路與例化語句將功能模塊整合起來,之后對整個系統(tǒng)進行模擬仿真和硬件實現(xiàn)。4.2 密碼鎖系統(tǒng)框圖4.3 密碼鎖設(shè)計提示(1

7、) 鎖存器:用于實現(xiàn)設(shè)定密碼和輸入密碼的鎖存。(2) 比較器:用于將設(shè)定密碼與輸入密碼相比較。其中,CLK為外部輸入的時鐘信號。若輸入密碼正確,則A燈亮;否則B燈亮,同時比較器輸出與CLK一樣的信號,驅(qū)動蜂鳴器發(fā)出報警聲。(3) 開鎖控制:當反饋信號下降沿來到時,開鎖控制輸出低電平,用于在輸入錯誤密碼后禁止再次安鎖;當RESET腳為高電平時,開鎖控制輸出高電平,打開與門,這時鎖存器1使能端的變化受控于SETUP鍵,重新進入安鎖狀態(tài)。(4) LED顯示:用于設(shè)定密碼或輸入密碼的顯示。此項設(shè)計的目的是為了在下載演示時,能清楚地看到設(shè)置和輸入的密碼值。五. 密碼鎖的頂層設(shè)計源程序調(diào)用各模塊形成元件例

8、化語句:LIBRARY IEEE;USE IEEE.std_logic_1164.All;ENTITY topfile ISPORT(SETUP,RESET,START,OPN,CLK:IN STD_LOGIC;setpassword:IN STD_LOGIC_VECTOR(7 DOWNTO 0);inputpassword:IN STD_LOGIC_VECTOR(7 DOWNTO 0);led_A,led_B,warner:OUT STD_LOGIC;DOUT11,DOUT12,DOUT21,DOUT22:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY

9、 topfile;ARCHITECTURE brf OF topfile ISCOMPONENT lockcontrolPORT (RESET,FEEDBACK:IN STD_LOGIC;Y:OUT STD_LOGIC);END COMPONENT;COMPONENT codesetPORT (ENABLE:IN STD_LOGIC;PASEWORD:IN STD_LOGIC_VECTOR(7 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END COMPONENT;COMPONENT codeinputPORT (ENABLE:IN STD_LOG

10、IC;PASEWORD:IN STD_LOGIC_VECTOR(7 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END COMPONENT;COMPONENT comparatorPORT (OPN,CLK,RESET:IN STD_LOGIC;rightpassword,password:IN STD_LOGIC_VECTOR(7 DOWNTO 0);A,B,warner:OUT STD_LOGIC;D11,D12,D21,D22:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT A

11、ND2PORT (a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END COMPONENT;COMPONENT NOR2PORT (e,d:IN STD_LOGIC;f:OUT STD_LOGIC);END COMPONENT;COMPONENT LEDPORT (DATA:IN STD_LOGIC_VECTOR(3 DOWNTO 0);DOUT7:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;SIGNAL net1,net2:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL net8,net9,net

12、10,net11:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL net3,net4,net5,net6,net7:STD_LOGIC;BEGINU0:lockcontrol PORT MAP(RESET=RESET,feedback=net3,y=net4);U1:AND2 PORT MAP(a=net3,b=START,c=net5);U2:AND2 PORT MAP(a=SETUP,b=net4,c=net6);U3:CODEINPUT PORT MAP(PASEWORD=inputpassword,ENABLE=net5,Q=net1);U4:codeset P

13、ORT MAP(PASEWORD=setpassword,ENABLE=net6,Q=net2);U5:comparator PORT MAP(rightpassword=net2,password=net1,OPN=OPN,CLK=CLK,A=led_A,B=net7,warner=warner,RESET=RESET,D12=net9,D11=net8,D21=net10,D22=net11);U6:NOR2 PORT MAP(e=net7,d=net7,f=net3);U7:LED PORT MAP(DATA=net8,DOUT7=DOUT11);U8:LED PORT MAP(DATA

14、=net9,DOUT7=DOUT12);U9:LED PORT MAP(DATA=net10,DOUT7=DOUT21);U10:LED PORT MAP(DATA=net11,DOUT7=DOUT22);led_B=net7;END ARCHITECTURE brf;六. 密碼鎖各功能模塊源程序及其仿真波形6.1密碼設(shè)定鎖存器源程序及其仿真波形源程序為:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY codeset ISPORT(ENABLE:IN STD_LOGIC; PASSW

15、ORD:IN STD_LOGIC_VECTOR(7 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END codeset;ARCHITECTURE bhv OF codeset ISBEGINPROCESS(ENABLE,PASSWORD) BEGINIF ENABLE = 1 THENQ(7) = PASSWORD(7);Q(6) = PASSWORD(6);Q(5) = PASSWORD(5);Q(4) = PASSWORD(4);Q(3) = 0;Q(2) = 0;Q(1) = 0;Q(0) = 0;END IF;END PROCESS;END

16、 bhv;仿真波形圖為:使能控制端高電平時:使能控制端變回低電平時:由于硬件設(shè)備限制,不能檢驗全部端口,因此將低位的四位設(shè)置為低電平,通過改變使能控制端與高位的電平觀察正確性。6.2 密碼輸入鎖存器源程序及其仿真波形源程序為:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY codeinput ISPORT(ENABLE:IN STD_LOGIC; PASSWORD:IN STD_LOGIC_VECTOR(7 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(7 DO

17、WNTO 0);END codeinput;ARCHITECTURE bhv OF codeinput ISBEGINPROCESS(ENABLE,PASSWORD) BEGINIF ENABLE = 1 THENQ(7) = PASSWORD(7);Q(6) = PASSWORD(6);Q(5) = PASSWORD(5);Q(4) = PASSWORD(4);Q(3) = 0;Q(2) = 0;Q(1) = 0;Q(0) = 0;END IF;IF ENABLE=0 THENQ = 00000000;END IF;END PROCESS;END bhv;仿真波形為:當使能信號為低電平,鎖存

18、器輸出狀態(tài)保持不變,輸入信號沒有讀入;當使能信號有低電平變?yōu)楦唠娖?,鎖存器開始讀入輸入的信號。6.3 開鎖控制系統(tǒng)源程序及其仿真波形源程序為:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY lockcontrol IS PORT( FEEDBACK,RESET:IN STD_LOGIC; Y:OUT STD_LOGIC); END lockcontrol; ARCHITECTURE bhv OF lockcontrol IS BEGINPROCESS(FEEDBACK,RESET)

19、BEGIN Y = 1;IF FEEDBACK = 0 THEN Y = 0;END IF;IF RESET = 1 THENY = 1;END IF;END PROCESS; END bhv; 仿真波形為:FEEDBACK為反饋信號,RESET為重置密碼信號。當反饋信號下降沿來到時,開鎖控制輸出Y低電平,用于在輸入錯誤密碼后禁止再次安鎖;當RESET腳為高電平時,開鎖控制輸出高電平。6.4 比較器源程序以及仿真波形源程序為:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.All;ENTITY comparator IS PORT(rightpassword,pass

20、word:IN STD_LOGIC_VECTOR(7 DOWNTO 0);OPN,CLK,RESET:IN STD_LOGIC;A,B,warner:OUT STD_LOGIC;D11,D12,D21,D22:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END comparator;ARCHITECTURE bhv OF comparator ISBEGINPROCESS(OPN,CLK,RESET,rightpassword,password)BEGIN D11(3) = rightpassword(7);D11(2) = rightpassword(6);D11(1)

21、 = rightpassword(5);D11(0) = rightpassword(4);D12(3) = rightpassword(3);D12(2) = rightpassword(2);D12(1) = rightpassword(1);D12(0) = rightpassword(0);D21(3) = password(7);D21(2) = password(6);D21(1) = password(5);D21(0) = password(4);D22(3) = password(3);D22(2) = password(2);D22(1) = password(1);D22

22、(0) = password(0);IF OPN = 1 THENIF rightpassword = password THENA = 1;B = 0;warner = 0;END IF;IF rightpassword /= password THENA = 0;B = 1;warner = CLK; IF RESET = 1 THEN A = 0; B = 0; warner = 0;END IF;END IF;ELSE A = 0;B = 0;warner DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=0000000;

23、END CASE; END PROCESS;END ARCHITECTURE a ;仿真波形為:可以由二進制代碼的值判斷出仿真結(jié)果真確,從圖中還可以觀察到,當輸入的四位數(shù)中有兩位及以上同時跳變時,出現(xiàn)了競爭冒險現(xiàn)象。6.6 頂層源文件的仿真波形分析(1)密碼輸入正確時: 按下SETUP設(shè)置密碼。按啟動鍵START啟動開鎖程序,當輸入的密碼與設(shè)定的密碼相同,按下OPEN鍵,A燈亮起,鎖打開,B燈和蜂鳴器不工作。(2)密碼輸入不正確時: 按下SETUP設(shè)置密碼。按啟動鍵START啟動開鎖程序,當輸入密碼與設(shè)定的密碼不同,按下OPEN鍵,B燈亮,蜂鳴器隨CLK周期性鳴響,此時,開關(guān)SETUP和START沒有作用,只能關(guān)閉OPEN并按下RESET,才可

溫馨提示

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

評論

0/150

提交評論