版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 題目:4位數(shù)字密碼鎖設(shè)計(jì)(密碼設(shè)置及驗(yàn)證電路)</p><p> 學(xué) 生 姓 名: 學(xué)號(hào): </p><p> 學(xué) 部 (系): 信息科學(xué)與技術(shù)學(xué)部 </p><p>
2、 專 業(yè) 年 級(jí): 08通信工程 </p><p> 指 導(dǎo) 教 師: 職稱或?qū)W位: </p><p> 2012 年 05 月 31 日</p><p><b> 目錄</b></p><p><b>
3、 1緒論5</b></p><p><b> 1.1設(shè)計(jì)內(nèi)容5</b></p><p><b> 1.2設(shè)計(jì)要求5</b></p><p><b> 2 系統(tǒng)設(shè)計(jì)5</b></p><p> 2.1 模塊劃分5</p><p&
4、gt; 2.1 系統(tǒng)原理框圖5</p><p> 3功能模塊的實(shí)現(xiàn)6</p><p><b> 3.1時(shí)序電路6</b></p><p><b> 3.2密碼設(shè)置7</b></p><p><b> 3.3密碼輸入7</b></p><p
5、><b> 3.4密碼驗(yàn)證8</b></p><p><b> 4軟件仿真9</b></p><p> 5數(shù)字邏輯系統(tǒng)簡(jiǎn)介10</p><p> 5.1 Quartus II軟件簡(jiǎn)介10</p><p> 5.2硬件描述語(yǔ)言11</p><p>
6、5.2.1 VHDL語(yǔ)言11</p><p> 5.2.2 Verilog語(yǔ)言12</p><p><b> 6 結(jié)論13</b></p><p><b> 附錄14</b></p><p><b> 1時(shí)序電路14</b></p><p&
7、gt; 2密碼設(shè)置輸入16</p><p><b> 3密碼驗(yàn)證17</b></p><p><b> 參考文獻(xiàn)19</b></p><p><b> 謝辭20</b></p><p> 摘要:本設(shè)計(jì)利用FPGA作為核心控制板,用Verilog 硬件描述語(yǔ)言進(jìn)
8、行編程,利用計(jì)算機(jī)軟硬件控制技術(shù),設(shè)計(jì)一個(gè)基于FPGA的數(shù)字密碼鎖,能實(shí)現(xiàn)密碼設(shè)定(如果密碼沒(méi)設(shè)定則默認(rèn)密碼為0000),密碼輸入及驗(yàn)證,當(dāng)密碼輸入錯(cuò)誤時(shí)報(bào)警或則指示燈亮;反之,密碼輸入正確時(shí),另外一個(gè)指示燈亮。將程序下載到Altera公司的Cyclone系列目標(biāo)芯片EP2C5T144C8上調(diào)試通過(guò),并觀察實(shí)際現(xiàn)象,滿足設(shè)計(jì)要求。</p><p> 關(guān)鍵詞:FPGA Verilog 數(shù)字密碼鎖</p
9、><p><b> Abstract</b></p><p> The design using the FPGA as the core of the control panel, Verilog hardware description language for programming, Computer hardware and software control
10、 technology, design an FPGA-based digital code lock, Set the password(if the password is not set then the default password is 000000), Password input and verification, Alarm or the light when the password input error; O
11、n the contrary, enter the correct password , a light. Program downloaded to the target chip EP2C5T144C8 Altera’s Cyclone series</p><p> Keywords: FPGA Verilog Digital code lock</p><p><b&
12、gt; 引 言</b></p><p> 隨著人們生活水平的提高,如何實(shí)現(xiàn)家庭防盜這一問(wèn)題也變得尤其的突出,傳統(tǒng)的機(jī)械鎖由于其構(gòu)造的簡(jiǎn)單,被撬的事件屢見(jiàn)不鮮,電子鎖由于其保密性高,使用靈活性好,安全系數(shù)高,受到了廣大用戶的青睞,電子密碼鎖的使用體現(xiàn)了人們消費(fèi)水平、保安意識(shí)和科技水平的提高,而且避免了攜帶甚至丟失鑰匙的麻煩。目前設(shè)計(jì)密碼鎖的方法很多,例如用傳統(tǒng)的PCB板設(shè)計(jì)、用PLC設(shè)計(jì)或者用單片機(jī)
13、設(shè)計(jì)等等。而用Verilog可以更加快速、靈活地設(shè)計(jì)出符合各種要求的密碼鎖,優(yōu)于其他設(shè)計(jì)方法。Verilog是一種符合IEEE標(biāo)準(zhǔn)的硬件描述語(yǔ)言,其最大的特點(diǎn)是借鑒高級(jí)程序設(shè)計(jì)語(yǔ)言的功能特性,對(duì)電路的行為與結(jié)構(gòu)進(jìn)行高度抽象化、規(guī)范化的形式描述,并對(duì)設(shè)計(jì)的不同層次、不同領(lǐng)域的模型驗(yàn)證與綜合優(yōu)化等處理,是設(shè)計(jì)過(guò)程延伸到高度自動(dòng)化。</p><p><b> 1緒論</b></p>
14、<p><b> 1.1設(shè)計(jì)內(nèi)容</b></p><p> 設(shè)計(jì)一個(gè)4位數(shù)字密碼鎖子系統(tǒng)</p><p><b> 1.2設(shè)計(jì)要求</b></p><p><b> 能夠預(yù)設(shè)4位密碼;</b></p><p> 具有密碼輸入及檢測(cè)功能;</p>
15、<p> 利用MAXplus對(duì)所設(shè)計(jì)的電路進(jìn)行仿真并分析結(jié)果。</p><p><b> 2 系統(tǒng)設(shè)計(jì)</b></p><p> 本設(shè)計(jì)中,F(xiàn)PGA系統(tǒng)采用硬件描述語(yǔ)言Verilog按模塊化方式進(jìn)行設(shè)計(jì),并將各模塊集成于FPGA芯片中,然后通過(guò)Quartus II9.0軟件開(kāi)發(fā)平臺(tái)對(duì)設(shè)計(jì)文件自動(dòng)完成邏輯編譯、邏輯化簡(jiǎn)、綜合及優(yōu)化、邏輯布局布線、邏輯
16、仿真,最后對(duì)FPGA芯片進(jìn)行編程,實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)要求。</p><p><b> 2.1 模塊劃分</b></p><p> 密碼鎖的的構(gòu)成主要由密碼輸入、密碼設(shè)置,此外密碼鎖必須能夠保存已設(shè)置的密碼,因而需要一個(gè)寄存器來(lái)保存密碼,同時(shí)由于控制電路和報(bào)警電路要用到不同的時(shí)鐘,因而需要一個(gè)時(shí)序產(chǎn)生電路來(lái)生成需要的不同信號(hào),采用分頻方法實(shí)現(xiàn)。</p>&
17、lt;p> 2.1 系統(tǒng)原理框圖</p><p> 根據(jù)密碼鎖的電路特點(diǎn),選用的是實(shí)驗(yàn)箱的模式6電路,根據(jù)電路功能,在這里設(shè)計(jì)的密碼鎖以4位2進(jìn)制代碼作為密碼的電子密碼鎖。</p><p> 其原理框圖如下圖2.1所示:</p><p> 圖2.1電子密碼鎖原理框圖</p><p><b> 3功能模塊的實(shí)現(xiàn)<
18、/b></p><p> 該模塊主要是完成密碼設(shè)置,密碼輸入,密碼驗(yàn)證功能。</p><p><b> 3.1時(shí)序電路</b></p><p> 在密碼鎖的電路中,輸入計(jì)時(shí)、報(bào)警計(jì)時(shí)需要的1HZ的時(shí)鐘脈沖信號(hào),而驅(qū)動(dòng)蜂鳴器工作需要的很高頻率的脈沖信號(hào),因而這里采用輸入一個(gè)高頻脈沖(1024HZ)信號(hào)來(lái)驅(qū)動(dòng)蜂鳴器,采用分頻的方法得到1
19、HZ的計(jì)時(shí)脈沖。</p><p> process(clk_1k) </p><p> variable cnt1:integer:=0;</p><p><b> begin</b></p><p> if rising_edge(clk_1k) then<
20、;/p><p> if cnt1=512 then</p><p> clk_1<=not clk_1;</p><p><b> cnt1:=0;</b></p><p> else cnt1:=cnt1+1;</p><p><b> end if;</b>&
21、lt;/p><p><b> end if;</b></p><p> end process;</p><p> 程序說(shuō)明:clk_1k為輸入的1024HZ高頻脈沖,cnt為分頻得到的1HZ計(jì)時(shí)脈沖。</p><p><b> 3.2密碼設(shè)置</b></p><p>
22、 為了安全性,密碼鎖必須能夠重復(fù)的設(shè)定密碼,在設(shè)定密碼鎖后,應(yīng)該設(shè)置一個(gè)寄存器來(lái)存儲(chǔ)設(shè)定的密碼。</p><p> process(rst,password,enter_p) is </p><p><b> begin</b></p><p> if rst='0' then</p>&l
23、t;p> if enter_p='1' then</p><p> ram<=password;</p><p><b> en1<='1';</b></p><p><b> end if;</b></p><p><b> e
24、nd if;</b></p><p> end process;</p><p> 程序說(shuō)明:rst低電平時(shí)所有的模塊復(fù)位,只有密碼設(shè)置模塊工作;</p><p> password為設(shè)置密碼時(shí)的輸入端,ram就是存儲(chǔ)密碼的寄存器;enter_p為在這里為密碼設(shè)置使能端,高電平有效。 </p><p> 密碼設(shè)置的仿真波形
25、如下圖,由圖中可以清楚地看到在enter_p高電平時(shí)</p><p> 寄存器ram中得到了輸入的密碼1001。</p><p><b> 3.3密碼輸入</b></p><p> 密碼輸入部分要求在密碼開(kāi)始輸入時(shí)進(jìn)行計(jì)時(shí),超時(shí)了要求報(bào)警,因此在密碼輸入時(shí)設(shè)置一個(gè)計(jì)時(shí)使能信號(hào)en2,密碼開(kāi)始輸入時(shí)使能信號(hào)en2有效,控制電路的計(jì)時(shí)器開(kāi)始計(jì)
26、時(shí);而且在密碼確認(rèn)鍵按下之前,電路不能對(duì)輸入密碼和已設(shè)置密碼進(jìn)行比較,因此需要設(shè)置一個(gè)寄存器,來(lái)存儲(chǔ)輸入的數(shù)據(jù),當(dāng)確認(rèn)鍵按下時(shí),就將寄存器里的數(shù)據(jù)送給控制部分進(jìn)行比較。</p><p> process(rst,enter_c,en1,code) </p><p><b> begin</b></p><p> if rst=
27、'1' then</p><p> if en1='1' then</p><p> if enter_c='1' then</p><p> code_tmp<=code;</p><p><b> en2<='1';</b></
28、p><p><b> end if;</b></p><p> else code_tmp<="0000";en2<='0';</p><p><b> end if;</b></p><p> else code_tmp<="00
29、00";en2<='0';</p><p><b> end if;</b></p><p> end process;</p><p> 密碼輸入電路圖如下圖3.2</p><p> 圖3.1密碼輸入電路</p><p> 此密碼輸入電路使用74HC14
30、7 10線-4線優(yōu)先編碼器,由于147只有9個(gè)輸入端,因此加入了數(shù)碼0的按鍵,當(dāng)輸入端有鍵被按下時(shí),輸出端輸出該鍵的BCD碼的反碼,并且GS/輸出為0,代表有鍵被按下。GS/用于控制密碼存儲(chǔ)控制電路的移位。該電路有密碼確認(rèn)按鍵、密碼修改按鍵和輸入清除按鈕,密碼確認(rèn)按鍵和密碼修改按鍵的作用是密碼輸入完畢時(shí),對(duì)控制電路的移位電路清零。密碼確認(rèn)按鈕還接密碼驗(yàn)證電路中的三態(tài)輸出門(mén),還連接密碼驗(yàn)證電路中的JK觸發(fā)器的清零端,用于對(duì)這個(gè)觸發(fā)器的清零
31、。輸出清除按鍵按下時(shí)本次輸入清零。密碼輸入(修改)電路中的按鍵按下去都自動(dòng)彈上來(lái),也就是說(shuō)按鍵只有被按下時(shí)才連接低電平,否則接高電平。</p><p><b> 3.4密碼驗(yàn)證</b></p><p> 該模塊中采用自定義存儲(chǔ)器RAM進(jìn)行密碼的存儲(chǔ),主要使用case語(yǔ)句和if_else語(yǔ)句進(jìn)行程序的銜接。密碼驗(yàn)證電路圖如下圖3.2</p><p
32、> 圖3.2密碼驗(yàn)證電路</p><p> 密碼驗(yàn)證電路用16個(gè)異或門(mén)組成,每個(gè)異或門(mén)的輸入來(lái)自密碼存儲(chǔ)電路的輸入密碼存儲(chǔ)芯片和預(yù)設(shè)密碼存儲(chǔ)芯片,比較輸入密碼是否和預(yù)設(shè)密碼相同,再加上與非門(mén)電路,判斷全部輸入是否為1,為1則表示輸入正確,否則錯(cuò)誤。密碼輸入電路中的確認(rèn)按鈕控制比較結(jié)果輸出的三態(tài)門(mén),輸入四位密碼后,按下確認(rèn)鍵,驗(yàn)證后的結(jié)果輸出至開(kāi)鎖報(bào)警電路。密碼修改按鍵連接JK觸發(fā)器的CLK,修改密碼流程
33、是:輸入預(yù)設(shè)密碼——按下修改密碼按鍵——輸入新密碼——按下密碼確認(rèn)按鍵,修改結(jié)束。在輸入新密碼后在按下密碼確認(rèn)按鍵使JK觸發(fā)器清零,清零后使得預(yù)設(shè)密碼存儲(chǔ)芯片不再存儲(chǔ)輸入密碼。JK觸發(fā)器的正向輸出端接報(bào)警電路,如果密碼輸入錯(cuò)誤就會(huì)報(bào)警。</p><p><b> 4軟件仿真</b></p><p> rst低電平時(shí)所有的模塊復(fù)位,只有密碼設(shè)置模塊工作;</p
34、><p> password為設(shè)置密碼時(shí)的輸入端,ram就是存儲(chǔ)密碼的寄存器;enter_p為在這里為密碼設(shè)置使能端,高電平有效。 </p><p> 密碼設(shè)置的仿真波形如下圖,由圖中可以清楚地看到在enter_p高電平時(shí)</p><p> 寄存器ram中得到了輸入的密碼1001。</p><p> 圖4.1密碼設(shè)置仿真波形</p&
35、gt;<p> rst置高,設(shè)置密碼模塊不工作,其他部分正常工作,en1為高時(shí)代表密碼設(shè)置完畢,密碼鎖開(kāi)始工作;enter_c是密碼輸入使能信號(hào),高電平時(shí)表示開(kāi)始密碼輸入,此時(shí)code_tmp中開(kāi)始存儲(chǔ)輸入的數(shù)據(jù),計(jì)時(shí)使能信號(hào)en2也變成高電平。</p><p> 密碼輸入仿真波形如下,由圖中可清楚的看到在enter_c為高時(shí),寄存器code_tmp中存儲(chǔ)了輸入的數(shù)據(jù)code(系統(tǒng)仿真時(shí)有10n
36、s的延時(shí))</p><p> 圖4.2密碼輸入仿真波形</p><p><b> 5數(shù)字邏輯系統(tǒng)簡(jiǎn)介</b></p><p> 5.1 Quartus II軟件簡(jiǎn)介</p><p> Quartus II是Altera公司在221世紀(jì)初推出的可編程邏輯器件的集成開(kāi)發(fā)軟件,這個(gè)軟件是該公司前一代可編程邏輯器件集成開(kāi)
37、發(fā)軟件MAX+PLUS II的更新?lián)Q代產(chǎn)品。Quartus II集成開(kāi)發(fā)軟件支持可編程邏輯器件開(kāi)發(fā)的整個(gè)過(guò)程,它提供一種與器件無(wú)關(guān)的設(shè)計(jì)環(huán)境。軟件界面友好,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、設(shè)計(jì)處理和器件編程。</p><p> Quartus II集成開(kāi)發(fā)軟件提供了完整的多平臺(tái)設(shè)計(jì)環(huán)境,能滿足各種特定設(shè)計(jì)的需要。Quartus II設(shè)計(jì)工具支持VHDL、Verilog HDL硬件描述語(yǔ)言的設(shè)計(jì)流程。它也是在片可編
38、程系統(tǒng)(System on a Programmable Chip, SOPC)的綜合設(shè)計(jì)環(huán)境。另外,Quartus II集成開(kāi)發(fā)軟件也可以利用第三方軟件的結(jié)果,并支持第三方軟件的工作。</p><p> 為加快應(yīng)用系統(tǒng)的開(kāi)發(fā),Quartus II集成開(kāi)發(fā)軟件包含許多十分有用的參數(shù)化模塊庫(kù)(Library of Parameterized Modules, LPM),它們是復(fù)雜或高級(jí)系統(tǒng)構(gòu)建的重要組成部分,在數(shù)
39、字系統(tǒng)設(shè)計(jì)中被大量使用。當(dāng)然這些模塊也可以與用戶設(shè)計(jì)文件一起使用。Altera提供的LPM函數(shù)均基于Altera公司器件的結(jié)構(gòu)做了優(yōu)化設(shè)計(jì),在設(shè)計(jì)中合理地調(diào)用LPM不僅可以加快設(shè)計(jì)進(jìn)程,還可以提高系統(tǒng)性能。有些LPM宏功能模塊的使用必須依賴于一些Altera公司特定器件的硬件功能,如各類存儲(chǔ)器模塊、DSP模塊、LVDS驅(qū)動(dòng)器模塊、PLL及SERDES和DDIO模塊等,這在使用中需要注意。</p><p><
40、b> 5.2硬件描述語(yǔ)言</b></p><p> 5.2.1 VHDL語(yǔ)言</p><p> VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分
41、,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。</p><p><b> 特點(diǎn):</b></p><p> VHDL 語(yǔ)言能夠成為標(biāo)準(zhǔn)化的硬件描述語(yǔ)言并獲得廣泛應(yīng)用,它自身必然具有很多其他硬
42、件描述語(yǔ)言所不具備的優(yōu)點(diǎn)。歸納起來(lái),VHDL 語(yǔ)言主要具有以下優(yōu)點(diǎn):</p><p> ?。?) VHDL 語(yǔ)言功能強(qiáng)大,設(shè)計(jì)方式多樣 </p><p> VHDL 語(yǔ)言具有強(qiáng)大的語(yǔ)言結(jié)構(gòu),只需采用簡(jiǎn)單明確的VHDL語(yǔ)言程序就可以描述十分復(fù)雜的硬件電路。同時(shí),它還具有多層次的電路設(shè)計(jì)描述功能。此外,VHDL 語(yǔ)言能夠同時(shí)支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì)實(shí)現(xiàn),這是其他硬件描述語(yǔ)言所不
43、能比擬的。VHDL 語(yǔ)言設(shè)計(jì)方法靈活多樣,既支持自頂向下的設(shè)計(jì)方式,也支持自底向上的設(shè)計(jì)方法; 既支持模塊化設(shè)計(jì)方法,也支持層次化設(shè)計(jì)方法。 </p><p> ?。?) VHDL 語(yǔ)言具有強(qiáng)大的硬件描述能力 </p><p> VHDL 語(yǔ)言具有多層次的電路設(shè)計(jì)描述功能,既可描述系統(tǒng)級(jí)電路,也可以描述門(mén)級(jí)電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采用三者的混合
44、描述方式。同時(shí),VHDL 語(yǔ)言也支持慣性延遲和傳輸延遲,這樣可以準(zhǔn)確地建立硬件電路的模型。VHDL 語(yǔ)言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類型。VHDL 語(yǔ)言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會(huì)給硬件描述帶來(lái)較大的自由度。 </p><p> ?。?) VHDL 語(yǔ)言具有很強(qiáng)的移植能力 </p><p> VHDL 語(yǔ)言很強(qiáng)的移植能力主要體現(xiàn)在: 對(duì)于同一
45、個(gè)硬件電路的 VHDL 語(yǔ)言描述,它可以從一個(gè)模擬器移植到另一個(gè)模擬器上、從一個(gè)綜合器移植到另一個(gè)綜合器上或者從一個(gè)工作平臺(tái)移植到另一個(gè)工作平臺(tái)上去執(zhí)行。 </p><p> ?。?) VHDL 語(yǔ)言的設(shè)計(jì)描述與器件無(wú)關(guān) </p><p> 采用 VHDL 語(yǔ)言描述硬件電路時(shí),設(shè)計(jì)人員并不需要首先考慮選擇進(jìn)行設(shè)計(jì)的器件。這樣做的好處是可以使設(shè)計(jì)人員集中精力進(jìn)行電路設(shè)計(jì)的優(yōu)化,而不需要考慮
46、其他的問(wèn)題。當(dāng)硬件電路的設(shè)計(jì)描述完成以后,VHDL 語(yǔ)言允許采用多種不同的器件結(jié)構(gòu)來(lái)實(shí)現(xiàn)。 </p><p> ?。?) VHDL 語(yǔ)言程序易于共享和復(fù)用 </p><p> VHDL 語(yǔ)言采用基于庫(kù) ( library) 的設(shè)計(jì)方法。在設(shè)計(jì)過(guò)程中,設(shè)計(jì)人員可以建立各種可再次利用的模塊,一個(gè)大規(guī)模的硬件電路的設(shè)計(jì)不可能從門(mén)級(jí)電路開(kāi)始一步步地進(jìn)行設(shè)計(jì),而是一些模塊的累加。這些模塊可以預(yù)先設(shè)
47、計(jì)或者使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放在庫(kù)中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用。 </p><p> 由于 VHDL 語(yǔ)言是一種描述、模擬、綜合、優(yōu)化和布線的標(biāo)準(zhǔn)硬件描述語(yǔ)言,因此它可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間方便地進(jìn)行交流和共享,從而減小硬件電路設(shè)計(jì)的工作量,縮短開(kāi)發(fā)周期。</p><p> 5.2.2 Verilog語(yǔ)言</p><p> Verilo
48、g HDL是目前應(yīng)用最為廣泛的硬件描述語(yǔ)言.Verilog HDL可以用來(lái)進(jìn)行各種層次的邏輯設(shè)計(jì),也可以進(jìn)行數(shù)字系統(tǒng)的邏輯綜合,仿真驗(yàn)證和時(shí)序分析等。 </p><p> Verilog HDL適合算法級(jí),寄存器級(jí),邏輯級(jí),開(kāi)關(guān)級(jí)、系統(tǒng)級(jí)和版圖級(jí)等各個(gè)層次的設(shè)計(jì)和描述. </p><p> Verilog HDL進(jìn)行設(shè)計(jì)最大的優(yōu)點(diǎn)是其工藝無(wú)關(guān)性.這使得工程師在功能設(shè)計(jì),邏輯驗(yàn)證階段可以
49、不必過(guò)多考慮門(mén)級(jí)及工藝實(shí)現(xiàn)的具體細(xì)節(jié),只需根據(jù)系統(tǒng)設(shè)計(jì)的要求施加不同的約束條件,即可設(shè)計(jì)出實(shí)際電路. </p><p> Verilog HDL是一種硬件描述語(yǔ)言(hardware description language),為了制作數(shù)字電路而用來(lái)描述ASICs和FPGA的設(shè)計(jì)之用。Verilog 的設(shè)計(jì)者想要以 C 編程語(yǔ)言為基礎(chǔ)設(shè)計(jì)一種語(yǔ)言,可以使工程師比較容易學(xué)習(xí)。 </p><p&g
50、t; Verilog 是由en:Gateway Design Automation公司于大約1984年開(kāi)始發(fā)展。Gateway Design Automation公司后來(lái)被 Cadence Design Systems于1990年所購(gòu)并。現(xiàn)在 Cadence 對(duì)于 Gateway 公司的 Verilog 和 Verilog-XL 模擬器擁有全部的財(cái)產(chǎn)權(quán)。 </p><p> 選擇VHDL還是verilog H
51、DL? </p><p> 這是一個(gè)初學(xué)者最常見(jiàn)的問(wèn)題。其實(shí)兩種語(yǔ)言的差別并不大,他們的描述能力也是類似的。掌握其中一種語(yǔ)言以后,可以通過(guò)短期的學(xué)習(xí),較快的學(xué)會(huì)另一種語(yǔ)言。 選擇何種語(yǔ)言主要還是看周?chē)巳旱氖褂昧?xí)慣,這樣可以方便日后的學(xué)習(xí)交流。當(dāng)然,如果您是專用集成電路(ASIC)設(shè)計(jì)人員,則必須首先掌握verilog,因?yàn)樵贗C設(shè)計(jì)領(lǐng)域,90%以上的公司都是采用verilog進(jìn)行IC設(shè)計(jì)。對(duì)于PLD/FPGA
52、設(shè)計(jì)者而言,兩種語(yǔ)言可以自由選擇。</p><p><b> 6 結(jié)論</b></p><p> 在滿足本設(shè)計(jì)要求后,基于該系統(tǒng)的硬件以固定,但是由于使用FPGA做主控制模塊,而FPGA是現(xiàn)場(chǎng)可編程器件,以及其可用I/O口很多未用,因此還可以做進(jìn)一步拓展,例如可以用12864或者1602做顯示,還可以外加個(gè)蜂鳴器做報(bào)警器等等。</p><p&g
53、t; 按照畢業(yè)設(shè)計(jì)要求,采取以上步驟完成設(shè)計(jì)任務(wù),達(dá)到了設(shè)計(jì)要求的需要,重點(diǎn)對(duì)硬件、軟件的組成進(jìn)行了分項(xiàng)、模塊化設(shè)計(jì),在這次課程設(shè)計(jì)中,同學(xué)之間互相幫助,有什么不懂的大家在一起商量,發(fā)現(xiàn)我們所學(xué)的知識(shí)實(shí)在是有限,不過(guò)我們能夠充分利用網(wǎng)絡(luò)的優(yōu)勢(shì)去查閱資料。最后,課程設(shè)計(jì)中涉及到的電路圖,本想用圖片制作工具繪制,但還是水平有限,最后只能自己動(dòng)手手工找圖,就是效率太低也太累,以后要好好學(xué)習(xí)相關(guān)的圖片制作。</p><p&
54、gt; 在整個(gè)設(shè)計(jì)過(guò)程中我認(rèn)識(shí)到了許多東西,也培養(yǎng)了獨(dú)立思考和設(shè)計(jì)的能力,樹(shù)立了對(duì)知識(shí)應(yīng)用的信心,相信會(huì)對(duì)今后的學(xué)習(xí)工作和生活有非常大的幫助, 使自己充分體會(huì)到了在設(shè)計(jì)過(guò)程中的成功喜悅。雖然這個(gè)設(shè)計(jì)做的不怎么好,但是在設(shè)計(jì)過(guò)程中所學(xué)到的東西是這次課程設(shè)計(jì)的最大收獲和財(cái)富,使我終身受益。</p><p><b> 附錄</b></p><p><b>
55、1時(shí)序電路</b></p><p> library ieee; </p><p> use ieee.std_logic_1164.all; </p><p> use ieee.std_logic_arith.all; </p><p> use ieee.std_logic_unsigned.all; </p&
56、gt;<p> -------------------------------------------------------------------- </p><p> entity exp19 is </p><p> port( Clk : in std_logic; --時(shí)鐘信號(hào) </p><p> Rst : in std_logi
57、c; --復(fù)位信號(hào) </p><p> Kr : in std_logic_vector(3 downto 0); --鍵盤(pán)行 </p><p> Kc : buffer std_logic_vector(3 downto 0); --鍵盤(pán)列 </p><p> SPK : out std_logic; --揚(yáng)聲器輸出 </p><p>
58、; KEY_State : out std_logic; --按鍵指示 </p><p> Door : buffer std_logic; --門(mén)狀態(tài) </p><p> Display : out std_logic_vector(7 downto 0); --七段碼管顯示 </p><p> SEG_SEL : buffer std_logic_vec
59、tor(2 downto 0)); --七段碼管片選 </p><p> end exp19; </p><p> -------------------------------------------------------------------- </p><p> architecture behave of exp19 is </p>
60、<p> signal keyr,keyc : std_logic_vector(3 downto 0); </p><p> signal kcount : std_logic_vector(2 downto 0); </p><p> signal kflag1,kflag2 : std_logic; </p><p> signal buff
61、1,buff2,buff3,buff4,buff5,buff6 : integer range 0 to 15; </p><p> signal push_num : integer range 0 to 15; --按鍵次數(shù) </p><p> signal Disp_Temp : integer range 0 to 15; </p><p> sign
62、al Disp_Decode : std_logic_vector(7 downto 0); </p><p> signal SEC1,SEC10 : integer range 0 to 9; </p><p> signal Clk_Count1 : std_logic_vector(3 downto 0); --1KHz時(shí)鐘分頻計(jì)數(shù)器 </p><p>
63、 signal Clk_Count2 : std_logic_vector(9 downto 0); --2Hz時(shí)鐘分頻計(jì)數(shù)器 </p><p> signal Clk1KHz : std_logic; </p><p> signal Clk2Hz : std_logic; </p><p> signal Clk1Hz : std_logic; <
64、/p><p> signal Error_Num : integer range 0 to 3; </p><p> signal Error_Flag : std_logic; </p><p> signal Error_Count : std_logic_vector(2 downto 0); </p><p> signal Mu
65、sic_Count : std_logic_vector(2 downto 0); </p><p><b> begin </b></p><p> process(Clk) </p><p><b> begin </b></p><p> if(Clk'event and Cl
66、k='1') then </p><p> if(Clk_Count1<10) then </p><p> Clk_Count1<=Clk_Count1+1; </p><p><b> else </b></p><p> Clk_Count1<="0001&quo
67、t;; </p><p><b> end if; </b></p><p><b> end if; </b></p><p> end process; </p><p> Clk1KHz<=Clk_Count1(2); </p><p> process
68、(Clk1KHz) </p><p><b> begin </b></p><p> if(Clk1KHz'event and Clk1KHz='1') then </p><p> if(Clk_Count2<1000) then </p><p> Clk_Count2<
69、=Clk_Count2+1; </p><p><b> else </b></p><p> Clk_Count2<="0000000001"; </p><p><b> end if; </b></p><p><b> end if; </b
70、></p><p> end process; </p><p> Clk2Hz<=Clk_Count2(9); </p><p> process(Clk2Hz) </p><p><b> begin </b></p><p> if(Clk2Hz'event a
71、nd Clk2Hz='1') then </p><p> Clk1Hz<=not Clk1Hz; </p><p><b> end if; </b></p><p> end process; </p><p><b> 2密碼設(shè)置輸入</b></p>
72、<p> process(rst,password,enter_p) is </p><p><b> begin</b></p><p> if rst='0' then</p><p> if enter_p='1' then</p><p>
73、ram<=password;</p><p><b> en1<='1';</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p&g
74、t;<p> process(rst,enter_c,en1,code) </p><p><b> begin</b></p><p> if rst='1' then</p><p> if en1='1' then</p><p> if ente
75、r_c='1' then</p><p> code_tmp<=code;</p><p><b> en2<='1';</b></p><p><b> end if;</b></p><p> else code_tmp<="0
76、000";en2<='0';</p><p><b> end if;</b></p><p> else code_tmp<="0000";en2<='0';</p><p><b> end if;</b></p>&l
77、t;p> end process;</p><p><b> 3密碼驗(yàn)證</b></p><p> process(Clk1KHz,Rst) --密碼校驗(yàn) </p><p><b> begin </b></p><p> if(Rst='0') then </
78、p><p> Door<='0'; </p><p> Error_Num<=0; </p><p> Error_Flag<='0'; </p><p> elsif(Clk1KHz'event and Clk1KHz='1') then </p>
79、<p> if(push_num=5 and Error_Num<3) then </p><p> --修改此處的值可修改門(mén)的密碼,此處密碼為1234 </p><p> if(buff1=1 and buff2=2 and buff3=3 and buff4=4) then </p><p> Door<='1';
80、</p><p><b> else </b></p><p> Door<='0'; </p><p><b> end if; </b></p><p> elsif(push_num=4 and Error_Num<1) then </p>&
81、lt;p> if(Door='0') then </p><p> Error_Flag<='1'; </p><p> Error_Num<=Error_Num+1; </p><p><b> else </b></p><p> Error_Flag<
82、;='0'; </p><p> Error_Num<=0; </p><p><b> end if; </b></p><p> elsif(Error_Count=4) then </p><p> Error_Flag<='0'; </p><
83、;p> elsif(Error_Flag='1') then </p><p> Door<=not Error_Count(0); </p><p><b> end if; </b></p><p><b> end if; </b></p><p> en
84、d process; </p><p> process(Clk2Hz,Rst) </p><p><b> begin </b></p><p> if(Rst='0' or Error_Flag<='0') then </p><p> Error_Count<=&
85、quot;000"; </p><p> elsif(Clk2Hz'event and Clk2Hz='1' and Error_Flag<='1') then </p><p> Error_Count<=Error_Count+1; </p><p><b> end if; <
86、/b></p><p> end process; </p><p><b> 參考文獻(xiàn)</b></p><p> [1]王俊峰等,實(shí)用電路手冊(cè)【M】,北京:機(jī)械工業(yè)出版社,2009.12</p><p> [2]韓雪濤等,電子單元電路應(yīng)用與實(shí)測(cè)【M】,北京:電子工業(yè)出版社,2009.6</p>
87、<p> [3]張金等,電子設(shè)計(jì)與制作100列【M】,北京:電子工業(yè)出版社,2009.10</p><p> [4]周潤(rùn)景等,基于Quartus II的數(shù)字系統(tǒng)Verilog HDL設(shè)計(jì)實(shí)例詳解【M】,北京:電子工業(yè)出版社,2010.5</p><p> [5]于海生等,微型計(jì)算機(jī)控制技術(shù)【M】,北京:清華大學(xué)出版社,2009.9</p><p>
88、; [6]康華光等,電子技術(shù)基礎(chǔ)(數(shù)字部分)【M】,北京:高等教育出版社,2005.7</p><p> [7]康華光等,電子技術(shù)基礎(chǔ)(模擬部分)【M】,北京:高等教育出版社,2005.7</p><p> [8]徐洋等,基于Verilog HDL 的FPGA設(shè)計(jì)與工程應(yīng)用【M】,北京:人民郵電出版社,2009.10</p><p> [9]Adel S.
89、Sedra and Keneth C.Smith. Microelectronic Circuits. 4th ed. New York: Oxford University Press, 1998</p><p> [10]Mark N. Horestein,Microelectronic Circuits and Devices. 2nd ed. New Jersey: Prentice-Hall Inc.
90、 1996</p><p><b> 謝辭</b></p><p> 流光容易把人拋,紅了櫻桃,綠了芭蕉。伴隨著快樂(lè)與艱辛的四年的大學(xué)時(shí)光轉(zhuǎn)瞬即逝,眼前浮現(xiàn)的是師長(zhǎng)、同窗、親人和朋友那一張張可親可敬的面孔,心頭涌起的是無(wú)限感慨和深深謝意。</p><p> 深深地感謝我的指導(dǎo)老師!能夠成為xx老師的學(xué)生,我覺(jué)得很幸運(yùn)。本論文能夠順利完成,
91、離不開(kāi)xx老師的耐心指導(dǎo)和嚴(yán)格要求,xx老師在論文的選題、研究理論、框架結(jié)構(gòu)、數(shù)據(jù)整理,直至撰寫(xiě)、修改和定稿等各個(gè)環(huán)節(jié)均嚴(yán)格把關(guān),并投入了大量的時(shí)間和精力。作為指導(dǎo)老師,他知識(shí)淵博,造詣深厚,治學(xué)嚴(yán)謹(jǐn);作為師長(zhǎng),他胸襟開(kāi)闊,以人為本,關(guān)愛(ài)學(xué)生。</p><p> 感謝遠(yuǎn)方默默支持我的父母,感謝他們的養(yǎng)育之恩!我的成長(zhǎng)伴隨著無(wú)私的母愛(ài)和父親的諄諄教導(dǎo),他們的關(guān)懷和期望是我前行的動(dòng)力。</p><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 8位數(shù)字密碼鎖設(shè)計(jì)--eda課程設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)220數(shù)字密碼鎖設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)220數(shù)字密碼鎖設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)220數(shù)字密碼鎖設(shè)計(jì).doc
- 畢業(yè)設(shè)計(jì)220數(shù)字密碼鎖設(shè)計(jì).doc
- 密碼鎖畢業(yè)設(shè)計(jì)
- 數(shù)字密碼鎖設(shè)計(jì)
- 無(wú)限密碼鎖畢業(yè)設(shè)計(jì)
- 電子密碼鎖畢業(yè)設(shè)計(jì)
- 密碼鎖畢業(yè)設(shè)計(jì)論文
- 數(shù)字密碼鎖設(shè)計(jì)畢業(yè)論文
- 電子密碼鎖畢業(yè)設(shè)計(jì)
- 電子密碼鎖畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---電子密碼鎖設(shè)計(jì)
- 電子密碼鎖設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 位電子密碼鎖設(shè)計(jì)
- 電子密碼鎖的畢業(yè)設(shè)計(jì)
- 電子密碼鎖畢業(yè)設(shè)計(jì)論文
- 紅外遙控密碼鎖畢業(yè)設(shè)計(jì)
- 利用數(shù)字電路實(shí)現(xiàn)電子密碼鎖-畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論