密碼鎖verilog課程設(shè)計(jì)課案_第1頁(yè)
密碼鎖verilog課程設(shè)計(jì)課案_第2頁(yè)
密碼鎖verilog課程設(shè)計(jì)課案_第3頁(yè)
密碼鎖verilog課程設(shè)計(jì)課案_第4頁(yè)
密碼鎖verilog課程設(shè)計(jì)課案_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、OGY課程設(shè)計(jì)題目:4位串行數(shù)字密碼鎖學(xué)號(hào):201420130326學(xué)生姓名:謝淵良專業(yè):通信工程班級(jí):1421302指導(dǎo)教師:鐘凱2017年1月5日1.摘要隨著科技的發(fā)展數(shù)字電路的各種產(chǎn)品廣泛應(yīng)用,傳統(tǒng)的機(jī)械鎖由于其構(gòu)造的簡(jiǎn)單,安全性不高,電子密碼鎖其保密性高,使用靈活性好,安全系數(shù)高,使用方便,將會(huì)是未來(lái)使用的趨勢(shì)。本設(shè)計(jì)使用EDA設(shè)計(jì)使設(shè)計(jì)過程廷到高度自動(dòng)化,其具有強(qiáng)大的設(shè)計(jì)功能、測(cè)試、仿真分析、管理等功能。使用EDA環(huán)境完成電路的系統(tǒng)綜合設(shè)計(jì)和仿真。用VHDL可以更加快速、靈活地設(shè)計(jì)出符合各種要求的密碼鎖。本設(shè)計(jì)基于VerilogHDL語(yǔ)言來(lái)設(shè)計(jì)密碼鎖,先介紹設(shè)計(jì)要求和整體設(shè)計(jì)思想,隨

2、后對(duì)所使用各模塊分別為鍵盤模塊、連接模塊、控制模塊進(jìn)行了介紹,給出各個(gè)模塊的主要代碼,在對(duì)各個(gè)模塊的功能進(jìn)行仿真。關(guān)鍵字:密碼鎖VerilogHDL設(shè)計(jì)內(nèi)容設(shè)計(jì)一個(gè)4位數(shù)字密碼鎖子系統(tǒng)1)1.2設(shè)計(jì)要求開鎖密碼為4位二進(jìn)制,當(dāng)輸入密碼與鎖內(nèi)給定的密碼一致時(shí),方可開鎖。否則進(jìn)入“錯(cuò)誤”狀態(tài),發(fā)出報(bào)警信號(hào)。2)鎖內(nèi)的密碼可調(diào)。3)串行數(shù)字密碼鎖的報(bào)警,直到按下復(fù)位開關(guān),才停下。此時(shí),數(shù)字密碼鎖又自動(dòng)等待下一個(gè)開鎖狀態(tài)。系統(tǒng)設(shè)計(jì)本設(shè)計(jì)中,F(xiàn)PGA系統(tǒng)采用硬件描述語(yǔ)言Verilog按模塊化方式進(jìn)行設(shè)計(jì),并用modersim軟件對(duì)各個(gè)模塊進(jìn)行編寫仿真。3.1鍵盤模塊鍵盤電路理想接口圖:SeiResetA

3、key_value*flag設(shè)計(jì)原理:本模塊采用2X2的掃描鍵盤電路,對(duì)輸入信號(hào)進(jìn)行采集,此模塊的主要功能是每按下一個(gè)按鍵,flag產(chǎn)生一個(gè)矩形波,作為連接模塊的觸發(fā)信號(hào)。同時(shí)key_value值為所按下鍵的編碼值,與flag一同傳入連接模塊。實(shí)際設(shè)計(jì)接口圖:鍵盤模塊-fflagZkey_value鍵盤模塊仿真圖:跟據(jù)圖中所示當(dāng)輸出kevalue:10值的時(shí)候,flag出現(xiàn)一個(gè)矩形波。當(dāng)輸出kevalue:11值的時(shí)候,flag再次出現(xiàn)上跳沿。實(shí)際上,上面的圖寫的測(cè)試文件是有一點(diǎn)錯(cuò)誤的,當(dāng)a掃描到第三個(gè)值(01)時(shí),b在實(shí)際電路中應(yīng)該是01而不是11,此時(shí)根據(jù)程序flag應(yīng)置為1,當(dāng)然此時(shí)fl

4、ag本來(lái)就是1,不會(huì)發(fā)生錯(cuò)誤。在實(shí)際中,時(shí)鐘頻率跳的如此之快,人按一下按鍵的持續(xù)時(shí)間還是有的,所以flag應(yīng)在按鍵按完后再下降下來(lái)。不然多出很多無(wú)用的矩形波,這個(gè)裝置就沒用了。3.2連接模塊連接模塊接口圖:設(shè)計(jì)原理:本連接模塊通過flag信號(hào)下降沿觸發(fā),將keyvalue送入連接模塊進(jìn)行運(yùn)算,當(dāng)連續(xù)四個(gè)0和1鍵按下時(shí),flag2產(chǎn)生一個(gè)矩形波,并將四個(gè)值分別送入a,b,c,d中,如果按下的是set鍵,則set置1,如果按下的是reset鍵,則reset鍵置1;aed,bed是燈泡,如果按的是0鍵,則a_led置1,若是1鍵,則b_led置1。連接模塊仿真圖如下:IIWave-DefaultMs

5、gs/connect_test/flag0_nLr-H-u-u-Q-/connect_tEst/keyv.00mpn:So-J/connect_tEst/aJedStl1-JJ/connect_tEsVb_led5tOn1LJ/connect_tEst/flag2StlJ/cQnnect_tEst/aSffi_r1J/connect_tEstybsto/connect_tEst/cStl/c0nnect_tEst/dstol_/connect_tEst/set1stoLJ/c0nnect_tEst/resetston土Q-J/connect_tEst/jishu00itoo:nto)Q-J/c

6、onnect_tEst/jishu111binpoo-:10IIL/connect_test/jishu211binDooPE:10IIL/connect_tEsVhh10阻加這里有一個(gè)需要注意的點(diǎn)是,當(dāng)?shù)谝淮伟戳?鍵后馬上按reset鍵,再按一下1鍵時(shí),a的值是1,而不是0。每次按了reset或set,a,b,c,d都是要重新賦值的,這才符合實(shí)際情況。3.3控制模塊:因?yàn)檫@個(gè)密碼鎖是循環(huán)使用的,就一定有不同的狀態(tài)。這里采用有限狀態(tài)機(jī)的方法進(jìn)行設(shè)計(jì)。所以把開鎖過程分為三個(gè)部分:等待輸入狀態(tài);重設(shè)密碼狀態(tài);輸出結(jié)果狀態(tài);狀態(tài)轉(zhuǎn)換圖如下所示:控制模塊*ena*cedd_ledflag2csetre

7、seclkt設(shè)計(jì)原理:通過各種狀態(tài)的轉(zhuǎn)變,實(shí)現(xiàn)密碼鎖的開鎖,報(bào)錯(cuò),重設(shè)密碼功能。當(dāng)密碼錯(cuò)誤是ena=l;當(dāng)重設(shè)密碼成功時(shí)ced置為1;當(dāng)輸入密碼成功開鎖時(shí)ded為1??刂颇K仿真如下:因?yàn)槌踉O(shè)密碼是0000,所以在第一個(gè)flag2的矩形波到來(lái)后,ded出現(xiàn)一個(gè)矩形波,實(shí)際上不應(yīng)該出現(xiàn)矩形,一直亮直到reset重置才行?;蛘咴O(shè)計(jì)一個(gè)計(jì)數(shù)器都行,雖然只是一些小錯(cuò)誤,但如果在實(shí)際驗(yàn)證中可能現(xiàn)象就不易觀察了。然后就是按下set鍵的模擬了,波形都達(dá)到了課設(shè)的要求。這是令人欣喜的,雖然經(jīng)過了很多次的修改,實(shí)在是很不容易實(shí)驗(yàn)心得我從第二個(gè)星期的星期一開始做,本來(lái)只是隨便做一下,但是看到周圍同學(xué)都熱情高昂,我

8、也深受感染,然后開始查資料,后面看到這個(gè)狀態(tài)機(jī)的方法很不錯(cuò),很方便的解決了狀態(tài)的轉(zhuǎn)換問題,然后我就嘗試這個(gè)方法。同時(shí)在寫程序的時(shí)候我也遇到了很多了困難,其中最難找的錯(cuò)誤就是邏輯錯(cuò)誤,但是最終還是一一被我解決了。心中的成就感還是有一些的。通過此次的課設(shè),使我對(duì)數(shù)字電路的設(shè)計(jì)有更深層次的了解(各種時(shí)序)對(duì)verilog語(yǔ)言的運(yùn)用也更加熟練。由于時(shí)間和心力有限的原因,使我只能止步各個(gè)模塊的設(shè)計(jì)了。本來(lái)還想聯(lián)合仿真的,但是電腦里只裝了modersim,其中又有一個(gè)鍵盤開關(guān)的硬件,還是比較難實(shí)現(xiàn)的。我想,如果我的程序下載到fpga芯片里,那是一定會(huì)出現(xiàn)不少錯(cuò)誤的,實(shí)際的情況往往更加復(fù)雜,這也是我的一大遺

9、憾!最后我要感謝我的室友,感謝他們對(duì)我的關(guān)愛,在我將要放棄的時(shí)候鼓勵(lì)我,使我積極向前。在此,我還要特別感謝英明兄的無(wú)私幫助,減少了我找編譯錯(cuò)誤的時(shí)間。還依稀記得上次的數(shù)電感覺也是如此,很不錯(cuò)啊。附:Verilog程序代碼1.1Key_board_input:modulekey_board_input(clk,a,b,keyvalue,flag,q,j);inputclk;input1:0b;outputreg1:0a;outputreg1:0keyvalue;outputregflag;outputregq=1;outputreg1:0j=0;always(posedgeclk)beginq=

10、q+1;case(q)0:a=2b01;1:a=2b10;endcasecase(a,b)4b10_01:beginkeyvalue=2b00;flag=1;j=3;end4b10_10:beginkeyvalue=2b01;flag=1;j=3;end4b01_01:beginkeyvalue=2b10;flag=1;j=3;end4b01_10:beginkeyvalue=2b11;flag=1;j=3;enddefault:keyvalue=keyvalue;endcasebeginj=j+1;if(j=3)flag=0;endendendmodule1.2key_board_test:

11、timescalels/lsmodulekey_board_test();regclk;regl:0b;wirel:0a;wirel:0keyvalue;wireflag;wireq;wirel:0j;key_board_inputu2(clk,a,b,keyvalue,flag,q,j);initialbegin#0clk=0;#2clk=l;b=l;#2clk=0;#2clk=l;b=3;#2clk=0;#2clk=l;b=3;#2clk=0;#2clk=l;b=3;#2clk=0;#2clk=1;b=2;#2clk=0;#2clk=1;b=3;#2clk=0;#2clk=1;b=3;#2

12、clk=0;#2clk=1;b=3;endendmoduleconnect:moduleconnect(flag,keyvalue,a_led,b_led,flag2,a,b,c,d,set1,reset,jishu,jishu1,jishu2,hh);inputflag;input1:0keyvalue;outputrega_led,b_led,flag2,a,b,c,d,set1,reset;outputreg1:0jishu=2b00;outputreg1:0jishu1=0,jishu2=0,hh=0;always(negedgeflag)beginjishu2=jishu2+1;ji

13、shu1=jishu1+1;if(keyvalue2)beginif(jishu=3)beginjishu=0;endelsejishu=jishu+1;endif(jishu=0)flag2=0;if(keyvalue=2)beginhh=jishu1;jishu=0;endif(jishu1=(hh+1)beginset1=0;endif(keyvalue=2d3)beginhh=jishu2;jishu=0;endif(jishu2=(hh+1)beginreset=0;end/*if(jishu=0)flag2=0;/*?set?*/case(jishu)0:begincase(key

14、value)0:begina=0;a_led=1;b_led=0;end1:begina=1;a_led=0;b_led=1;end2:beginset1=1;end3:beginreset=1;endendcaseend1:begincase(keyvalue)0:beginb=0;a_led=1;b_led=0;end1:beginb=1;a_led=0;b_led=1;end3:2:beginset1=1;end3:beginreset=1;endendcaseend2:begincase(keyvalue)0:beginc=0;a_led=1;b_led=0;end1:beginc=1

15、;a_led=0;b_led=1;end2:beginset1=1;end3:beginreset=1;endendcaseendbegincase(keyvalue)0:begind=0;a_led=1;b_led=0;flag2=1;end1:begind=1;a_led=0;b_led=1;flag2=1;end2:beginset1=1;end3:beginreset=1;endendcaseendendcaseendendmoduleconnect_test:timescalels/lsmoduleconnect_test();regflag;reg1:0keyvalue;wirea

16、_led,b_led,flag2,a,b,c,d,set1,reset;wire1:0jishu;wire1:0jishu1,jishu2,hh;connectu2(flag,keyvalue,a_led,b_led,flag2,a,b,c,d,set1,reset,jishu,jishu1,jishu2,hh);initialbegin#0flag=0;#2flag=1;keyvalue=1;#2flag=0;#2flag=1;keyvalue=3;#2flag=0;#2flag=1;keyvalue=0;#2flag=0;#2flag=1;keyvalue=0;#2flag=0;#2fla

17、g=1;keyvalue=1;#2flag=0;#2flag=1;keyvalue=0;#2flag=0;endendmodule3.1control:modulecontrol(clk,flag2,a,b,c,d,set1,reset,control_set,ena,c_led,d_led,state,a1,b1,c1,d1,hhh);inputclk,flag2,a,b,c,d,set1,reset;outputregena,c_led,d_led,control_set;outputreg1:0state=0;outputrega1=0,b1=0,c1=0,d1=0;outputregh

18、hh=0;parameterin=2b00,set=2b01,out1=2b10;always(posedgeclkorposedgeset1orposedgeresetorflag2)begincase(state)in:beginif(reset=1)state=in;elseif(set1=1)beginstate=set;control_set=1;endelseif(control_set=1&hhh=1)beginstate=in;control_set=0;hhh=0;endelseif(flag2=1)state=out1;elsebeginena=0;c_led=0;cont

19、rol_set=0;d_led=0;endendset:beginif(reset=1)state=in;elseif(set1=1)beginstate=set;control_set=1;endelseif(flag2=1&control_set=1)begina1=a;b1=b;c1=c;d1=d;hhh=1;c_led=1;state=in;endendout1:beginif(reset=1)state=in;elsebeginif(a=a1&b=b1&c=c1&d=d1)beginena=0;d_led=1;state=in;endelsebeginena=1;state=out1;endendenddefault:state=in;endcaseendendmodulecontrol_test:timescalels/lsmodulecontrol_test();regclk,flag2,a,b,c,d,setl,reset;wireena,c_led,d_led,control_set;wirel:0state;wireal,bl,cl,dl;wire

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論