2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  《EDA設(shè)計實習(xí)》報告</p><p>  課程設(shè)計的目的: </p><p>  本課程設(shè)計主要是基于VHDL文本輸入法設(shè)計電子密碼鎖,隨著社會物質(zhì)財富的日益增長,安全防盜已成為全社會關(guān)注的問題?;贓DA技術(shù)設(shè)計的電子密碼鎖,以其價格便宜、安全可靠、使用方便,受到了人們的普遍關(guān)注。而以現(xiàn)場可編程邏輯器件(FPGA)為設(shè)計載體,以硬件描述語言(VHDE)為主要表達

2、方式,以QuartusⅡ開發(fā)軟件和GW48EDA開發(fā)系統(tǒng)為設(shè)計工具設(shè)計的電子密碼鎖,由于其能夠?qū)崿F(xiàn)數(shù)碼輸入、數(shù)碼清除、密碼解除、密碼更改、密碼上鎖和密碼解除等功能,因此,能夠滿足社會對安全防盜的要求。</p><p>  系統(tǒng)設(shè)計實現(xiàn)的基本功能</p><p>  密碼輸入:每按下一個數(shù)字鍵,就輸入一個數(shù)值,并在顯示器上顯示出該數(shù)值。同時將先前輸入的數(shù)據(jù)依次左移一個數(shù)字位置。</p&

3、gt;<p>  密碼清除:按下清除鍵可清除前面所有的輸入值,清除成為“0000”。</p><p>  密碼更改:按下更改鍵可將目前數(shù)據(jù)設(shè)定為新的密碼。</p><p>  密碼上鎖:按下上鎖鍵可將密碼鎖上鎖。</p><p>  密碼解除:按下解除鍵首先檢查輸入的密碼是否正確,密碼正確即解鎖。</p><p>  三、電子密

4、碼鎖的結(jié)構(gòu)原理</p><p>  根據(jù)系統(tǒng)設(shè)計要求,系統(tǒng)設(shè)計采用自頂向下的設(shè)計方法。3.1 電子密碼鎖的整體結(jié)構(gòu)電子密碼鎖的整體結(jié)構(gòu)如圖1所示,它包括密碼鎖輸入模塊、控制模塊和顯示模塊等。</p><p><b>  原理圖:</b></p><p><b>  圖1</b></p><p>

5、  《1》密碼鎖輸入模塊</p><p>  密碼鎖的輸入模塊由時序產(chǎn)生電路、鍵盤掃描電路、鍵盤譯碼電路和按鍵存儲電路組成。如下圖示:</p><p><b>  圖2</b></p><p><b>  時序產(chǎn)生電路</b></p><p>  產(chǎn)生電路中使用的三種不同頻率的工作脈沖波形,即系統(tǒng)時

6、鐘脈沖、彈跳消除取樣信號和鍵盤掃描信號。</p><p><b>  鍵盤掃描電路</b></p><p>  掃描電路的作用是提供鍵盤掃描信號,掃描信號變化順序依次是1110—1101—1011—0111—1110.-----依序地周而復(fù)始。</p><p><b>  c.鍵盤譯碼電路</b></p>&

7、lt;p>  上述鍵盤中的按鍵分為數(shù)字按鍵和文字按鍵,每一個按鍵可能負責(zé)不同的功能,例如清除鍵、上鎖鍵和解鎖鍵等。數(shù)字按鍵主要是用來輸入數(shù)字的,但是鍵盤所產(chǎn)生的輸出是無法直接拿來用作密碼鎖控制電路的輸入的;另外,不同的按鍵具有不同的功能,所以必須由鍵盤譯碼電路來規(guī)劃每個按鍵的輸出形式,以便執(zhí)行相應(yīng)的動作。</p><p><b>  按鍵存儲電路</b></p><

8、p>  因為每一次掃描會產(chǎn)生新的按鍵數(shù)據(jù),可能會覆蓋前面的數(shù)據(jù),所以需要一個按鍵存儲電路。將整個鍵盤掃描完畢后的結(jié)果記錄下來。</p><p>  按鍵位置與數(shù)碼關(guān)系(表)圖3</p><p>  圖4所示是密碼鎖輸入模塊的仿真波形</p><p>  《2》密碼鎖控制模塊</p><p>  密碼鎖的控制電路是整個電路的控制中心,主要

9、完成對數(shù)字按鍵輸入和功能按鍵輸入的響應(yīng)控制。</p><p>  a.?dāng)?shù)字按鍵輸入的響應(yīng)控制</p><p>  如果按下數(shù)字鍵,第一個數(shù)字會從顯示器的最右端開始顯示,此后每新按下一個數(shù)字時,顯示器上的數(shù)字必須左移一位,一邊將新的數(shù)字顯示出來。</p><p>  假如要更改輸入的數(shù)字,可以按倒退按鍵來清除前一個輸入的數(shù)字,或者按清除鍵清除所有輸入的數(shù)字,再重新輸入

10、四位數(shù)。</p><p>  由于這里設(shè)計的是一個四位的電子密碼鎖,所以當(dāng)輸入的數(shù)字鍵超過四個時,電路不予理會,而且不再顯示第四個以后的數(shù)字。</p><p>  b.功能按鍵輸入響應(yīng)控制</p><p>  清除鍵:清除所有的輸入數(shù)字,即做歸零動作。</p><p>  上鎖鍵:按下此鍵時可將密碼鎖的門上鎖(上鎖前必須先設(shè)定一個四位的電子密

11、碼)。</p><p>  解除鍵:按下此建輝檢查輸入的密碼是否正確,若密碼正確無誤則解鎖。</p><p>  圖4所示是密碼鎖控制模塊的仿真波形</p><p>  《3》密碼鎖譯碼模塊:本電子密碼鎖的顯示模塊比較簡單,其作用是將控制模塊的BCD碼輸出轉(zhuǎn)換為7段顯示編碼,然后驅(qū)動數(shù)碼管,其仿真波形如圖6所示。</p><p>  電子密

12、碼鎖的整合和驗證要完成電子密碼鎖的設(shè)計,還必須將上述三個功能模塊進行整合。其整合電路圖如圖1所示。電子密碼鎖整個系統(tǒng)的仿真如下圖示:</p><p><b>  四、設(shè)計的心得體會</b></p><p>  此次的設(shè)計是參考了《EDA技術(shù)實驗與課程設(shè)計》里的程序,不過由于程序里面出現(xiàn)了不少的語法錯誤,使得在編譯時出現(xiàn)了20多個錯誤,不過在看過書后,細心地檢查過程

13、序后方能糾正過來。在糾正的過程中獲益良多。 在EDA軟件平臺上,用硬件描述語言VHDL完成設(shè)計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。感覺EDA還是很有研究價值的,能大大的減少設(shè)計者的工作量。</p><p>  從編寫程序到完成此次課程設(shè)計,親自操作軟件起來從生硬到熟練,現(xiàn)在能較嫻熟的運用QuartusⅡ。

14、</p><p><b>  附:VHDL源程序</b></p><p><b>  密碼鎖輸入模塊</b></p><p>  LIBRARY IEEE ; </p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IE

15、EE.STD_LOGIC_ARITH.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY SR IS</p><p>  PORT(CLK_1K: IN STD_LOGIC;</p><p>  KEY_IN: IN STD_LOGIC_VECTOR(2 DOWN

16、TO 0);</p><p>  DATA_N: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  DATA_F: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  FLAG_N: OUT STD_LOGIC;</p><p>  FLAG_F: OUT STD_LO

17、GIC;</p><p>  CQD: OUT STD_LOGIC;</p><p>  KSEL: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  CSR: OUT STD_LOGIC_VECTOR(1 DOWNTO 0));</p><p><b>  END SR;</b>&

18、lt;/p><p>  ARCHITECTURE ONE OF SR IS</p><p>  SIGNAL C_QD: STD_LOGIC;</p><p>  SIGNAL C_SR: STD_LOGIC_VECTOR(1 DOWNTO 0); </p><p>  SIGNAL N,F: STD_LOGIC_VECTOR(3 DOWNTO

19、0);</p><p>  SIGNAL FN,FF: STD_LOGIC;</p><p>  SIGNAL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL Q: STD_LOGIC_VECTOR(5 DOWNTO 0);</p><p>  SIGNAL C: STD_LOGIC_V

20、ECTOR(2 DOWNTO 0);</p><p><b>  BEGIN </b></p><p>  DATA_N<=N;</p><p>  DATA_F<=F;</p><p>  FLAG_N<=FN;</p><p>  FLAG_F<=FF;</p&g

21、t;<p>  CQD<=C_QD;</p><p>  CSR<=C_SR;</p><p>  KSEL<=SEL;</p><p>  C(0)<=KEY_IN(0);</p><p>  C(1)<=KEY_IN(1);</p><p>  C(2)<=KEY_

22、IN(2);</p><p>  COUNTER: BLOCK IS</p><p><b>  BEGIN </b></p><p>  PROCESS(CLK_1K)IS </p><p><b>  BEGIN</b></p><p>  IF(CLK_1K'E

23、VENT AND CLK_1K='1')THEN</p><p><b>  Q<=Q+1;</b></p><p><b>  END IF;</b></p><p>  C_QD<=Q(3);</p><p>  C_SR<=Q(5 DOWNTO 4);<

24、/p><p>  END PROCESS;</p><p>  SEL<="1110" WHEN C_SR=0 ELSE</p><p>  "1101" WHEN C_SR=1 ELSE</p><p>  "1011" WHEN C_SR=2 ELSE</p>&

25、lt;p>  "0111" WHEN C_SR=3 ELSE</p><p><b>  "1111";</b></p><p>  END BLOCK COUNTER;</p><p>  KEY_DECODER: BLOCK</p><p>  SIGNAL Z: STD

26、_LOGIC_VECTOR(4 DOWNTO 0);</p><p><b>  BEGIN </b></p><p>  PROCESS(C_QD)</p><p><b>  BEGIN</b></p><p>  Z<=C_SR&C;</p><p>  

27、IF(C_QD'EVENT AND C_QD='1') THEN</p><p><b>  CASE Z IS</b></p><p>  WHEN"11101"=>N<="0000";</p><p>  WHEN"00011"=>N<

28、;="0001";</p><p>  WHEN"00101"=>N<="0010";</p><p>  WHEN"00110"=>N<="0011";</p><p>  WHEN"01011"=>N<=&q

29、uot;0100";</p><p>  WHEN"01101"=>N<="0101";</p><p>  WHEN"01110"=>N<="0110";</p><p>  WHEN"10011"=>N<="

30、0111";</p><p>  WHEN"10101"=>N<="1000";</p><p>  WHEN"10110"=>N<="1001";</p><p>  WHEN OTHERS=>N<="1111";<

31、;/p><p><b>  END CASE;</b></p><p><b>  END IF;</b></p><p>  IF C_QD'EVENT AND C_QD='1' THEN</p><p>  CASE Z IS </p><p>  W

32、HEN"11011"=>F<="0100";</p><p>  WHEN"11110"=>F<="0001";</p><p>  WHEN OTHERS=>F<="1000";</p><p><b>  END CA

33、SE;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  FN<=NOT(N(3)AND N(2)AND N(1)AND N(0));</p><p>  FF<=F(2) OR F(0);</p><

34、p>  END BLOCK KEY_DECODER;</p><p>  END ARCHITECTURE ONE;</p><p><b>  密碼鎖控制模塊</b></p><p>  LIBRARY IEEE ; </p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p&

35、gt;<p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY CTRL IS</p><p>  PORT (DATA_N: IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p>&l

36、t;p>  DATA_F: IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  FLAG_N: IN STD_LOGIC;</p><p>  FLAG_F: IN STD_LOGIC;</p><p>  MIMAIN: BUFFER STD_LOGIC;</p><p>  SETIN: BUFFE

37、R STD_LOGIC;</p><p>  OLD: BUFFER STD_LOGIC;</p><p>  CQD: IN STD_LOGIC;</p><p>  ENLOCK: OUT STD_LOGIC;</p><p>  DATA_BCD: OUT STD_LOGIC_VECTOR(15 DOWNTO 0));</p>

38、;<p>  END ENTITY CTRL;</p><p>  ARCHITECTURE ONE OF CTRL IS</p><p>  SIGNAL ACC,REG: STD_LOGIC_VECTOR(15 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  P

39、ROCESS(CQD,FLAG_F) IS </p><p><b>  BEGIN </b></p><p>  IF CQD'EVENT AND CQD='0' THEN </p><p>  IF FLAG_F='1' THEN </p><p>  IF(DATA_F=&q

40、uot;0100") THEN </p><p>  ACC<="1111111111111111";</p><p>  MIMAIN<='0'; SETIN<='0'; OLD<='0';</p><p>  ELSIF(DATA_F="0001&qu

41、ot;) THEN</p><p>  IF(MIMAIN='0' AND SETIN='0') THEN</p><p>  CASE ACC(7 DOWNTO 0) IS</p><p>  WHEN"00010001"=>ENLOCK<='1';</p><p&

42、gt;  WHEN"10011001"=>MIMAIN<='1'; ACC<="1111111111111111";</p><p>  WHEN"01010101"=>SETIN<='1'; ACC<="1111111111111111"; </p>

43、<p><b>  OLD<='1';</b></p><p>  WHEN OTHERS=>NULL;</p><p><b>  END CASE;</b></p><p>  ELSIF(MIMAIN='1') THEN </p><p>

44、  IF ACC=REG THEN</p><p>  ENLOCK<='0';</p><p>  MIMAIN<='0';</p><p><b>  ELSE</b></p><p>  MIMAIN<='0';</p><p&g

45、t;<b>  END IF;</b></p><p>  ELSIF(SETIN='1') THEN</p><p>  IF(OLD='1') THEN</p><p>  IF(ACC=REG) THEN</p><p><b>  OLD<='0';

46、</b></p><p><b>  ELSE</b></p><p>  SETIN<='0';</p><p><b>  OLD<='0';</b></p><p><b>  END IF;</b></p&g

47、t;<p><b>  ELSE</b></p><p>  IF(ACC<"1001100110011001") THEN</p><p><b>  REG<=ACC;</b></p><p>  SETIN<='0';</p><

48、p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  ELSIF FLAG_N='

49、;1' THEN </p><p>  ACC<=ACC(11 DOWNTO 0)&DATA_N;</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><

50、;p>  DATA_BCD<=ACC;</p><p>  END ARCHITECTURE ONE;</p><p><b>  密碼鎖譯碼模塊</b></p><p>  LIBRARY IEEE ; </p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p>

51、<p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY YM IS</p><p>  PORT(DATA_BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));</p&

52、gt;<p><b>  END YM;</b></p><p>  ARCHITECTURE ONE OF YM IS</p><p><b>  BEGIN</b></p><p>  PROCESS(DATA_BCD)</p><p><b>  BEGIN</b

53、></p><p>  CASE DATA_BCD IS</p><p>  WHEN"0000"=>DOUT7<="0111111";</p><p>  WHEN"0001"=>DOUT7<="0000110";</p><p>

54、  WHEN"0010"=>DOUT7<="1011011";</p><p>  WHEN"0011"=>DOUT7<="1001111";</p><p>  WHEN"0100"=>DOUT7<="1100110";</p&

55、gt;<p>  WHEN"0101"=>DOUT7<="1101101";</p><p>  WHEN"0110"=>DOUT7<="1111101";</p><p>  WHEN"0111"=>DOUT7<="0000111

56、";</p><p>  WHEN"1000"=>DOUT7<="1111111";</p><p>  WHEN"1001"=>DOUT7<="1101111";</p><p>  WHEN OTHERS=>DOUT7<="00

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論