下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、EDA仿真與實(shí)踐實(shí)習(xí)學(xué)院:信息科學(xué)與工程學(xué)院課題名稱:硬件描述語言設(shè)計(jì)苴千 基JVHDL勺電子密碼鎖的設(shè)計(jì)班級(jí):學(xué)生:學(xué)號(hào):指導(dǎo)教師:1 引言在日常的生活和工作中 , 住宅與部門的安全防范、單位的文件檔 案、財(cái)務(wù)報(bào)表以及一些個(gè)人資料的保存多以加鎖的辦法來解決。 若使 用傳統(tǒng)的機(jī)械式鑰匙開鎖,人們常需攜帶多把鑰匙 , 使用極不方便 , 且鑰匙丟失后安全性即大打折扣。 隨著科學(xué)技術(shù)的不斷發(fā)展, 人們對(duì) 日常生活中的安全保險(xiǎn)器件的要求越來越高。 為滿足人們對(duì)鎖的使用 要求,增加其安全性,用密碼代替鑰匙的密碼鎖應(yīng)運(yùn)而生?;?EDA 技術(shù)設(shè)計(jì)的電子密碼鎖。以其價(jià)格便宜、使用方便、 安全性高、成本低、功
2、耗低、易操作等優(yōu)點(diǎn),受到了人們的普遍關(guān)注。 而以可編程邏輯器件(FBDA為設(shè)計(jì)載體,以硬件描述語言(VHDL為主 要表達(dá)方式,以QuartuS H 5開發(fā)軟件等為設(shè)計(jì)工具設(shè)計(jì)的電子密碼 鎖,由于其能夠?qū)崿F(xiàn)密碼輸入、密碼校驗(yàn)、密碼設(shè)置和更改等功能, 因此,能夠滿足社會(huì)對(duì)安全防盜的需求。本 設(shè) 計(jì) 的 各 個(gè)模塊 由相 應(yīng)的 VHDL 程 序具 體 實(shí)現(xiàn) , 并 在 QuartuS H 5.環(huán)1 境下進(jìn)行了整體電路的模擬仿真,最終實(shí)現(xiàn)“密碼鎖 控制器設(shè)計(jì)”的要求。2 設(shè)計(jì)內(nèi)容和要求2.1 設(shè)計(jì)內(nèi)容:題目:電子密碼鎖內(nèi)容:設(shè)計(jì)一個(gè) 4 位串行數(shù)字鎖。(1) 開鎖代碼為 4 位二進(jìn)制,當(dāng)輸入代碼的位數(shù)
3、與鎖內(nèi)給定的密碼一致, 且按規(guī)定程序開鎖時(shí),方可開鎖,并點(diǎn)亮一個(gè)指示燈。否則進(jìn)入“錯(cuò) 誤”狀態(tài),并發(fā)出報(bào)警信號(hào)。(2) 鎖內(nèi)的密碼可調(diào),且預(yù)置方便,保密性好。(3) 串行數(shù)字鎖的報(bào)警由點(diǎn)亮一個(gè)燈, 直到按下復(fù)位開關(guān), 報(bào)警才停下 此時(shí),數(shù)字鎖又自動(dòng)等待下一個(gè)開鎖狀態(tài)。要求:(1) 通過查閱相關(guān)技術(shù)資料,詳細(xì)描述電子密碼鎖的基本原理。(2) 編寫電子密碼鎖的Verilog HDL或 VHDLg序,并仿真編譯下載驗(yàn)證。(3) 給出完整的系統(tǒng)頂層模塊圖與波形仿真圖。3設(shè)計(jì)分案密碼鎖控制器是硬件與軟件的結(jié)合。根據(jù)設(shè)計(jì)要求,決定以FBDA 芯片和VHDL語言設(shè)計(jì)此電子密碼鎖。用一片 FBDA芯片實(shí)現(xiàn),從
4、而 大大簡化了系統(tǒng)結(jié)構(gòu),降低了成本,提高了系統(tǒng)的保密性和可靠性。 這種設(shè)計(jì)不僅簡化了系統(tǒng)結(jié)構(gòu),降低了成本,更提高了系統(tǒng)的可靠性 和保密性。另外,采用可編程邏輯器件開發(fā)的數(shù)字系統(tǒng),方便地升級(jí) 和改進(jìn)。3.1系統(tǒng)總框圖本系統(tǒng)的硬件部分主要由密碼鎖控制電路、 密碼鎖顯示電路、LEDa示電路、 報(bào)警電路、密碼更改與設(shè)置電路組成。整體系統(tǒng)框圖如下圖 2.1所示。密碼鎖總框圖3.2密碼鎖的內(nèi)部結(jié)構(gòu)及主要功能3.2.1密碼鎖的主要功能密碼鎖控制器的主要功能有:(1) 密碼輸入:有二個(gè)按鍵來控制(分別代表O和1),每按下一個(gè)鍵,要求 在數(shù)碼管上顯示,并依次左移。(2) 密碼校驗(yàn):如果有按鍵按下,直到松開該按鍵
5、;紅綠燈指示門的狀態(tài),也就是密碼校驗(yàn)結(jié)果,如果密碼校驗(yàn)正確,綠亮起,否則如果密碼校驗(yàn)錯(cuò)誤紅燈 亮,并鳳鳴器響,表明密碼錯(cuò)誤。(3) 錯(cuò)誤報(bào)警:密碼輸入錯(cuò)誤開始報(bào)警。(4)密碼修改:輸入密碼正確后4秒內(nèi)按按鍵輸入要設(shè)置和更改的密碼,按 按鍵確認(rèn)密碼設(shè)置與更改,則密碼設(shè)置成功4系統(tǒng)硬件電路4.1密碼鎖的顯示模塊段數(shù)碼管是電子開發(fā)過程中常用的輸出 顯示設(shè)備。在本設(shè)計(jì)中使用的是 8個(gè)四位一 體、共陰極型七段數(shù)碼管。其單個(gè)靜態(tài)數(shù)碼 管如下圖所示。由于七段數(shù)碼管公共端連接到 GND (共 陰極型),當(dāng)數(shù)碼管的中的一個(gè)段被輸入高 電平,則相應(yīng)的這一段被點(diǎn)亮。反之則不亮。共陽極性的數(shù)碼管與之相反。四位一體的七
6、段數(shù)碼管在單個(gè)靜態(tài)數(shù)碼管的基礎(chǔ)上加入了用于選擇哪一位數(shù)碼管的位選信號(hào)端口。八個(gè)數(shù)碼 管的a、b、c、d、e、f、g、h、dp都連在了一起,8個(gè)數(shù)碼管分別由 各自的位選信號(hào)來控制,被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。4.2密碼鎖控制模塊該模塊的作用是將輸入的密碼(暫時(shí)寄存于 ACC中)跟已經(jīng)存儲(chǔ)的密碼(REG中的密碼信息)進(jìn)行對(duì)比,如果一樣,則密碼鎖開鎖。 而在通過密碼驗(yàn)證后可以按按鍵設(shè)定密碼。 在這里值得注意的是有一 個(gè)密碼“ 0000”為開始密碼,如果改名密碼了但是又忘記了密碼,重 新下載之后的初始密碼只要輸入的密碼為“0000則都可通過密碼鎖。模塊IoCk是整個(gè)設(shè)計(jì)的核心,它實(shí)現(xiàn)密碼鎖的邏輯
7、功能。在任何時(shí)候 按動(dòng)密碼初始化按鍵內(nèi)密碼設(shè)置為程序初始化密碼值(在本模塊程序 中此值為“0000”代碼為4位二進(jìn)制數(shù),當(dāng)輸入代碼的位數(shù)和位值 與鎖內(nèi)給定的密碼一致,且按規(guī)定程序開鎖時(shí),方可開鎖,并點(diǎn)亮開 鎖指示燈(緑燈)亮。否則,系統(tǒng)進(jìn)入 錯(cuò)誤”狀態(tài),并發(fā)出報(bào)警信號(hào)。 串行數(shù)字鎖的報(bào)警方式是點(diǎn)亮指示燈(紅燈),并使喇叭鳴叫,直到按下復(fù)位開關(guān),報(bào)警才停止。此時(shí),數(shù)字鎖又自動(dòng)進(jìn)入等待下一次開 鎖的狀態(tài)。該4位串行電子密碼鎖設(shè)置 4位二進(jìn)制密碼,要求鎖內(nèi) 給定的密碼是可調(diào)的,且設(shè)置方便,保密性好。其具體操作分為輸入 密碼和修改密碼兩部分4.2.1輸入密碼密碼輸入值的比較主要有兩部分 ,密碼位數(shù)和內(nèi)
8、容,任何一個(gè)條件不滿足,都不能打開鎖。若鎖內(nèi)密碼為“ 0000”,key和key1置低電平,分別表示輸入“ 1 ”和“ 0”輸入密碼前先進(jìn)行復(fù)位操作,再按著從密碼最低位到最高位的順序 依次正確輸入0000,會(huì)在數(shù)碼管逐一顯示。經(jīng)檢驗(yàn),輸入的密碼等于鎖內(nèi)預(yù)先設(shè) 置的密碼密碼鎖開啟信號(hào),鎖開啟。同時(shí),密碼修改控制信號(hào)rw置低電平。若在輸 入密碼的過程中,4位二進(jìn)制密碼出現(xiàn)輸入錯(cuò)誤,那么鎖不能開啟,同時(shí),指示 燈紅燈 亮,發(fā)出報(bào)警信號(hào)。直到按下復(fù)位開關(guān),報(bào)警才停止。此時(shí),數(shù)字鎖又 自動(dòng)進(jìn)入等待下一次開鎖的狀態(tài)。4.2.2修改密碼為防止任意進(jìn)行密碼修改,必須在正確輸入密碼后,才能重新設(shè)置密碼。輸 入正
9、確密碼后,鎖打開,同時(shí),密碼修改控制信號(hào)按鍵rw置低電平,就可直接 進(jìn)行修改密碼的操作。修改密碼實(shí)質(zhì)就是用輸入的新密碼去取代原來的舊密碼, 按確定按鍵ok,存儲(chǔ)新密碼時(shí).5 VHDL程序設(shè)計(jì)密碼鎖控制器的各個(gè)功能模塊都是通過 VHDL語言來完成的。本 設(shè)計(jì)由密碼鎖顯示顯示模塊、分頻模塊、密碼輸入及校驗(yàn)?zāi)K、報(bào)警 模塊、密碼更改與設(shè)置模塊幾部分組成,各模塊分工合作,最后達(dá)到 密碼鎖控制器設(shè)計(jì)的要求。表4-1程序的管腳分配表端口名對(duì)應(yīng)FBGA管腳說明ClkP2時(shí)鐘為50HzKeylAC23按下按鍵代表為“ 0 ”Key2AB21按下按鍵代表為“ 1 ”StartY14開始輸入密碼OkAA13確定輸
10、入密碼resetAC15復(fù)位rwV23該密碼clrU23清零redM19密碼錯(cuò)誤紅燈亮gree nT22密碼正確緑燈亮beepA14蜂鳴器Seg7.0D16,D17,G13,D15,C15,C16,G15,J13代表數(shù)碼管的片內(nèi)顯示Dig7.0E15,K18,E22,C17,H15,K16,H12,D18代表數(shù)碼管的片外顯示VHDl程序總代碼Iibrary ieee;USe ieee.std_logic_1164.all;USe ieee.stdLlOgic_arith.all;USe ieee.std_logic_ Un Sig ned.all;en tity lock isport(key
11、1,key2:i n Stdo gic;clk,start,ok,reset,rw,clr: in stdo gic; red,gree n,beep:OUt std_logic:='1' dig:out Stdogic_vector(7 downto O); seg:out stdo gic_vector(7 dow nto O) );end lock;architecture rt1 of lock isSig nal keyi n,password:Stdo gic_vector(3 dow nto 0):="0000"Sig nal ope n1:s
12、td_logic:='0'Sig nal beep1:std_logic:='1'Sig nal a,shuru:std_logic;Sig nal count: stdo gic_vector(2 dow nto 0):="000"Signal temp: std_logic_vector(1 downto 0):="00"beg inprocess(clk)variable m:integer range 0 to 10;beginif clk'event and clk='1'thenif m
13、=9 thenm:=0;a<='1'elsem:=m+1;a<='0'end if;end if;end process; process(clk,start,ok,clr,rw,reset)beginif clk'event and clk='1'then if reset='0' thenred<='1'green<='1'beep1<='1'open1<='0'keyin<="0000"shu
14、ru<='0'count<="000Jend if; if start='0' then shuru<='1'end if;if rw='0' and open1='1'then shuru<='1'count<="000"end if;if clr='0' then keyin<="0000"count<="000"shuru<='1'elsif a
15、='1' and shuru='1' then if key1='0' then keyin<=keyin(2 downto 0)&'0'elsif key2='0' then keyin<=keyin(2 downto 0)&'1'end if;if count="011" thenshuru<='0' count<=count+1;else count<=count+1;end if;end if;if ok=
16、39;0'and open1='0' thenif (keyin=password)then red<='1'green<='0'open1<='1'else red<='0'green<='1'beep1<='0'open1<='0' end if; end if;if ok='0'and open1='1'thenpassword<=keyin;end if;end if;en
17、d process;process(clk,start,ok,clr,rw,reset)variable g:integer range 0 to 49999999;beginif clk'event and clk='1'thenif g=49999999 theng:=0;elseg:=g+1;end if;if g<=24999999 and beep1='0' thenbeep<='0'elsebeep<='1'end if;end process;process(clk)variable n:i
18、nteger range 0 to 50000;beginif clk'event and clk='1'thenif n=49999 thenn:=0;if temp="11"thentemp<="00"elsetemp<=temp+1;end if;elsen:=n+1;end if;if count="001" thencase temp is when "00" => dig<="01111111" ;if keyin(0)='0&
19、#39;then seg<="11000000" else seg<="11111001"end if; when others =>seg<="11111111" ;end case ;elsif count="010" thencase temp is when "00" => dig<="01111111" ;if keyin(1)='0'then seg<="11000000" else s
20、eg<="11111001"end if;when "01" => dig<="10111111" ;if keyin(0)='0'then seg<="11000000" else seg<="11111001"end if; when others =>seg<="11111111" ;end case ;elsif count="011" then case temp is when &quo
21、t;00" => dig<="01111111" ;if keyin(2)='0'then seg<="11000000" else seg<="11111001"end if;when "01" => dig<="10111111" ;if keyin(1)='0'then seg<="11000000" else seg<="11111001"end if; wh
22、en "10" => dig<="11011111" ;if keyin(0)='0'then seg<="11000000" else seg<="11111001"end if; when others =>seg<="11111111" ;end case ;elsif count="100" then case temp is when "00" => dig<="01111
23、111" ;if keyin(3)='0'then seg<="11000000"else seg<="11111001"end if;when "01" => dig<="10111111" ;if keyin(2)='0'then seg<="11000000" else seg<="11111001"end if; when "10" => dig<="
24、;11011111" ;if keyin(1)='0'then seg<="11000000" else seg<="11111001"end if; when "11" => dig<="11101111" ;if keyin(0)='0'then seg<="11000000" else seg<="11111001"end if; when others =>null;end case
25、;else dig<="11111111" ;seg<="11111111"end if;end PrOCeSS ;end rt1;6系統(tǒng)仿真當(dāng)各個(gè)模塊分別編譯成功后,則創(chuàng)建一個(gè)個(gè)元件符號(hào)。再用圖形 編輯器將各元件模塊組裝起來,這就是本設(shè)計(jì)中最頂層的圖形設(shè)計(jì) 文件。頂層圖形設(shè)計(jì)文件lock. gdf如圖所示,這個(gè)結(jié)構(gòu)框圖說明了整 個(gè)系統(tǒng)的外部輸入和輸出情況。為了獲得與目標(biāo)器件對(duì)應(yīng)的、精確的時(shí)序仿真文件譯了 。幸 kdi!知 Gm4恥時(shí) F*< 口H-叫-M-l0FsJ編譯成功后進(jìn)行仿真。首先建立波形文件。波形文件lock. SCf建 好并存盤后,選擇菜單 "neW “VeCtOr WaVefOrm啟動(dòng)仿真操 作,結(jié)束后觀察仿真波形。本設(shè)計(jì)中,仿真波形如圖所示。當(dāng)給初始 密碼輸入信號(hào)LC 一個(gè)低電平時(shí),就將程序預(yù)先設(shè)定的密碼(“0000” ) 裝入lock中。按下reset后,系統(tǒng)復(fù)位,處于輸入密碼狀態(tài)。輸入 的開鎖密碼串行順序裝入,。密碼輸入完畢后,比較輸入的密碼是否 等于預(yù)先
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)研究-第1篇-深度研究
- 二零二五年字畫藝術(shù)品私人交易合同范本4篇
- 二零二五年度大型公共建筑消防改造工程勞務(wù)分包合同2篇
- 2025版項(xiàng)目管理法律法規(guī)與國際慣例實(shí)施與指導(dǎo)合同3篇
- 2025版桶裝水電商平臺(tái)入駐與運(yùn)營合作協(xié)議3篇
- 2025版投標(biāo)企業(yè)資質(zhì)承諾書3篇
- 學(xué)校房屋拆遷協(xié)議書
- 家庭裝修半包合同
- 二零二四舞蹈工作室全職舞蹈教師勞動(dòng)合同3篇
- 建筑裝飾材料運(yùn)輸補(bǔ)充協(xié)議
- 2024年全國職業(yè)院校技能大賽高職組(研學(xué)旅行賽項(xiàng))考試題庫(含答案)
- 2025年溫州市城發(fā)集團(tuán)招聘筆試參考題庫含答案解析
- 2025年中小學(xué)春節(jié)安全教育主題班會(huì)課件
- 2025版高考物理復(fù)習(xí)知識(shí)清單
- 計(jì)量經(jīng)濟(jì)學(xué)練習(xí)題
- 除數(shù)是兩位數(shù)的除法練習(xí)題(84道)
- 2025年度安全檢查計(jì)劃
- 2024年度工作總結(jié)與計(jì)劃標(biāo)準(zhǔn)版本(2篇)
- 全球半導(dǎo)體測試探針行業(yè)市場研究報(bào)告2024
- 反走私課件完整版本
- 2024年注冊計(jì)量師-一級(jí)注冊計(jì)量師考試近5年真題附答案
評(píng)論
0/150
提交評(píng)論