版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> EDA課程設計實驗報告</p><p> 專業(yè):集成電路設計與集成系統(tǒng)</p><p><b> 目錄</b></p><p><b> 摘要3</b></p><p><b> 一、 設計要求3</b></p><p>
2、; 1.1基本要求…………………………………………………………………..…3</p><p> 二、系統(tǒng)方案設計3</p><p> 2.1系統(tǒng)功能概述…………………………………………………………….….3</p><p> 2.2系統(tǒng)結(jié)構(gòu)圖………………………….……………………………….………4</p><p> 三、功能模塊…
3、………………….……….……………………4</p><p> 3.1、輸入模塊…………………………………………………….…4、5、6、7</p><p> 3.2、移位寄存器模塊…………………………………….……………..…7、8</p><p> 3.3、密碼管理模塊…………………………………………...…..8、9、10、11</p><
4、;p> 3.4、密碼驗證模塊……………………………………………11、12、13、14</p><p> 3.4、報警模塊………………………………………………………14、15、16</p><p> 四、總體設計電路圖………….………………………………16</p><p> 4.1、系統(tǒng)原理圖………………………………………………………………16</
5、p><p> 4.2、波形功能仿真結(jié)果………………………………………………..…..…17</p><p> 4.3、波形時序仿真結(jié)果………………………………………………..…..…17</p><p> 五、設計心得體會…………………………………………………17</p><p> 六、參考文獻………………………………………………………1
6、7</p><p><b> 摘要</b></p><p> 隨著人們生活水平的提高,如何實現(xiàn)家庭防盜這一問題也變的尤其的突出,傳統(tǒng)的機械鎖由于其構(gòu)造的簡單,被撬的事件屢見不鮮,電子鎖由于其保密性高,使用靈活性好,安全系數(shù)高,受到了廣大用戶的青睞。電子密碼鎖應用范圍廣,早已成為當今人們生活中不可缺少的電子產(chǎn)品。</p><p><b&
7、gt; 設計要求:</b></p><p> 1.1、8位二進制,串行輸入;有開鎖和錯誤指示(LED)</p><p><b> 二、系統(tǒng)方案設計:</b></p><p> 2.1、系統(tǒng)功能概述</p><p> 我們本次設計是一個具有較高安全性和較低成本的電子密碼鎖,其可以實現(xiàn)以以下功能:<
8、;/p><p> ?。?)數(shù)碼輸入:由于我們實驗箱的按鍵有限,我們只設計了4個密碼輸入鍵分別為K1(1)、K2(2)、K3(3)、K4(4)。每按下一個數(shù)字鍵,就立刻輸入一個相應的數(shù)值,并在數(shù)碼管上顯示出該數(shù)值,同時將先前輸入的數(shù)據(jù)依序左移一個數(shù)字位置。 <
9、/p><p> ?。?)數(shù)碼清除clr:按下此鍵可以清除前面所有的輸入值,清除成為“0000”。 </p><p> ?。?)密碼更改set:按下此鍵時可以對密碼進行更改。
10、 </p><p> ?。?)密碼確認enter2:按下此鍵可將輸入的四位密碼送往系統(tǒng)。 </p><p> ?。?)
11、修改密碼確認:確定修改好密碼后,按下此鍵可確定修改好的密碼。 </p><p><b> 2.2、系統(tǒng)結(jié)構(gòu)圖</b></p><p><b> 功能模塊</b></p>
12、;<p><b> 3.1、輸入模塊</b></p><p><b> 1)、功能介紹</b></p><p> 由于實驗箱按鍵的限制我們選擇了模式3,模式3的8個按鍵均是琴鍵(可以手動控制脈沖寬度),我們采用按鍵做為系統(tǒng)時鐘,即每按下K1-K4其中一個按鍵產(chǎn)生一個時鐘,對應輸出1、2、3、4,經(jīng)過移位寄存器后依次顯示在數(shù)碼管
13、上。</p><p> 2)、輸入模塊與波形仿真</p><p><b> 功能仿真波形:</b></p><p><b> 時序仿真波形:</b></p><p> 3)、VHDL代碼:</p><p> library ieee;</p><
14、p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><p> entity xianshi is </p><p><b> port(
15、</b></p><p> k1,k2,k3,k4,clr:in std_logic;</p><p> dout:out std_logic_vector(3 downto 0);</p><p> clk1:out std_logic);</p><p> end xianshi;</p><p&g
16、t; architecture one of xianshi is </p><p> signal q :std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> process(k1,k2,k3,k4,clr) </p><p><b&g
17、t; begin</b></p><p> if clr='1' then </p><p> q<="0000";</p><p><b> else</b></p><p> clk1<=(k1 or k2 or k3 or k4 ) after
18、 5 ns; </p><p> if k1='1' then </p><p> q<="0001";</p><p> elsif k2='1' then </p><p> q<="0010" ;</p><p>
19、; elsif k3='1' then </p><p> q<="0011";</p><p> elsif k4='1' then </p><p> q<="0100";</p><p><b> else </b>&
20、lt;/p><p> q<="0000";</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> dout<=q
21、;</b></p><p><b> end one;</b></p><p> 由上述仿真波形可及VHDL語言可以看出當按下K1鍵時輸出1,當按下K2鍵時輸出2,當按下K3鍵時輸出3,當按下K4鍵時輸出4,當按下clr鍵時系統(tǒng)清0。K1、K2、K3、K4鍵每按下一次系統(tǒng)產(chǎn)生一個clk1,作為后續(xù)電路的時鐘。當按下K1的時候輸出端輸出相應的數(shù)值即:00
22、01。輸出到后續(xù)模塊。同理當按下K2、k3、k4時分別輸出相應的數(shù)值(0010、0011、0100)到后續(xù)模塊。</p><p> 3.2、移位寄存器模塊</p><p><b> 1)、功能介紹</b></p><p> 移位寄存器模塊的輸出端接4個數(shù)碼管。當輸入第一個數(shù)值時,在最后一個數(shù)碼管上顯示出相應的數(shù),當下一個數(shù)值輸入時系統(tǒng)將產(chǎn)
23、生一個上升沿,使前面輸入的數(shù)據(jù)自動左移一位,同時新輸入的數(shù)據(jù)顯示在最后一個數(shù)碼管上,依次顯示完四個數(shù)據(jù),從而確定要輸入的密碼。每當按下clr鍵時系統(tǒng)自動清零。 </p><p> 2)、移位寄存器模塊與仿真波形</p><p><b> 功能仿真波形:</b></p><p><b> 時序仿真波形:</b><
24、/p><p> 3)、VHDL代碼:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity yiwei is </p>
25、<p><b> port(</b></p><p> clk2,clr:in std_logic;</p><p> dout :in std_logic_vector(3 downto 0);</p><p> data_out :out std_logic_vector(15 downto 0)</p>
26、<p><b> );</b></p><p> end yiwei;</p><p> architecture one of yiwei is</p><p> signal q:std_logic_vector(15 downto 0);</p><p><b> begin <
27、;/b></p><p> process(clk2,dout,clr)</p><p><b> begin </b></p><p> if clr='1' then </p><p> q<="0000000000000000" ;</p>&l
28、t;p> elsif clk2'event and clk2='1' then </p><p> q(15 downto 4)<=q(11 downto 0);</p><p> q(3 downto 0)<=dout;</p><p><b> end if ;</b></p>
29、<p> end process;</p><p> data_out<=q;</p><p><b> end one;</b></p><p> 由上述仿真波形和VHDL語言可以看出每當一個時鐘信號的上升沿到來時輸入的四位二進制數(shù)據(jù)賦給中間信號的低四位同時原先信號的低十二位賦給高十二位即實現(xiàn)數(shù)據(jù)移位功能。每當清零鍵
30、clr變?yōu)楦唠娖綍r系統(tǒng)自動清零一次,使輸出全部歸零。</p><p> 3.3、密碼管理模塊</p><p><b> 1)、功能介紹</b></p><p> 該模塊有儲存密碼鎖的初始密碼同時實現(xiàn)修改密碼的功能,將存儲的密碼輸出給后面的密碼驗證模塊,從而為整個密碼鎖系統(tǒng)提供密碼。當修改密碼控制端輸入修改相應的修改密碼信號時,開始執(zhí)行修改
31、密碼的功能。密碼管理模塊開始存儲相應的輸入密碼數(shù)據(jù),當修改密碼功能結(jié)束時,密碼管理模塊將存儲的密碼數(shù)據(jù)發(fā)送到輸出端,輸出相應的新的密碼。</p><p> 2)、密碼管理模塊與波形仿真:</p><p><b> 功能仿真波形:</b></p><p><b> 時序仿真波形:</b></p><
32、p><b> VHDL代碼:</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity gaimima is</
33、p><p> port(clk1,clr,enter1,set:in std_logic;</p><p> din:in std_logic_vector(3 downto 0);</p><p> dout1:out std_logic_vector(15 downto 0) );</p><p> end gaimima;</
34、p><p> architecture one of gaimima is</p><p> type state is (st0,st1,st2,st3,st4);</p><p> signal d:std_logic_vector(15 downto 0):="0001000100010001";</p><p>
35、 signal current_state,next_state:state;</p><p><b> begin</b></p><p> reg: process(clk1,clr)</p><p><b> begin</b></p><p> if clr='1'
36、 then current_state<=st0;</p><p> elsif clk1='1' and clk1'event then current_state<=next_state;</p><p><b> end if;</b></p><p> end process;</p>
37、;<p> com: process(current_state,din,enter1,set)</p><p> variable d1:std_logic_vector(15 downto 0);</p><p><b> begin</b></p><p> if set='1'then </p
38、><p> case current_state is</p><p> when st0=> d1(15 downto 12):=din;next_state<=st1;</p><p> when st1=> d1(11 downto 8) :=din;next_state<=st2;</p><p> wh
39、en st2=> d1(7 downto 4) :=din;next_state<=st3;</p><p> when st3=> d1(3 downto 0) :=din;next_state<=st4;</p><p> when st4=> next_state<=st0;</p><p> if enter1
40、='1' then d<=d1;</p><p><b> end if;</b></p><p> when others=> next_state<=st0;</p><p><b> end case;</b></p><p> elsif set=
41、'0' then</p><p> case current_state is</p><p> when st0=> next_state<=st0;</p><p> when others=> next_state<=st0;</p><p><b> end case;<
42、;/b></p><p><b> end if;</b></p><p> end process;</p><p><b> dout1<=d;</b></p><p><b> end one;</b></p><p> 由上
43、述的波形仿真圖和VHDL語言,該模塊用狀態(tài)機編寫,初始密碼為0001000100010001即初始密碼為1111。當時鐘clk1每產(chǎn)生一次上升沿時,狀態(tài)機的次態(tài)轉(zhuǎn)換到現(xiàn)態(tài),當清零信號clr為高電平時,狀態(tài)機的狀態(tài)回復到初始狀態(tài)。當修改密碼控制端set為高電平時,該模塊開始實行修改密碼的功能,變量d1開始存儲輸入的四位二進制密碼數(shù)據(jù),當數(shù)據(jù)輸入結(jié)束時,按下確定鍵enter1,從而把變量d1存儲好新的密碼賦值給信號d,從而在最后的輸出端輸出
44、對應的新密碼。如上述的語言,初始狀態(tài)為st0,當輸入第一組密碼時,即輸入第一個四位二進制數(shù)時,將輸入的數(shù)賦值給d1的15到12位,同時狀態(tài)機轉(zhuǎn)到下一個狀態(tài)st1,當?shù)诙M密碼輸入時,將輸入的數(shù)賦值給d1的11到8位,同時狀態(tài)機轉(zhuǎn)到下一個狀態(tài)st2,依次類推,當最后一組數(shù)據(jù)輸入時,將輸入的數(shù)賦值給d1的最后四位,同時狀態(tài)機轉(zhuǎn)到st4,當enter1為高電平時,將d1賦值給信號d,最后賦值給輸出。當set為低電平時,狀態(tài)機一直維持狀態(tài)零,等
45、待高電平時,來實行改密碼的改密碼的功能。</p><p> 3.4、密碼驗證模塊</p><p><b> 1)、功能介紹</b></p><p> 密碼驗證模塊是檢驗輸入的密碼與密碼管理模塊中存儲的密碼是否一致,當輸入的密碼與存儲的密碼不一致時,即密碼錯誤,則輸出錯誤信號,當密碼正確時,輸出對應的正確信號。當輸入清零信號時,清除前面輸入
46、的密碼,重新等待輸入密碼。</p><p> 2)、驗證密碼模塊與仿真波形</p><p><b> 功能仿真:</b></p><p><b> 時序仿真:</b></p><p><b> VHDL代碼</b></p><p> libra
47、ry ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity yanzhengmm is</p><p> port(clk1,clr,enter2,set:in std_logic;&l
48、t;/p><p> din:in std_logic_vector(3 downto 0);</p><p> d:in std_logic_vector(15 downto 0);</p><p> ab:out std_logic_vector(3 downto 0));</p><p> end yanzhengmm;</p&
49、gt;<p> architecture one of yanzhengmm is</p><p> type state is (st0,st1,st2,st3,st4);</p><p> signal current_state,next_state:state;</p><p> signal q:std_logic_vector(15
50、 downto 0);</p><p><b> begin</b></p><p><b> q<=d;</b></p><p> reg: process(clk1,clr)</p><p><b> begin</b></p><p>
51、; if clr='1' then current_state<=st0;</p><p> elsif clk1='1' and clk1'event then current_state<=next_state;</p><p><b> end if;</b></p><p>
52、end process;</p><p> com: process(current_state,din,enter2,set)</p><p><b> begin </b></p><p> if set='1'then </p><p> case current_state is</
53、p><p> when st0=> next_state<=st0;</p><p> when others=> next_state<=st0;</p><p><b> end case;</b></p><p> elsif set='0' then</p&g
54、t;<p> case current_state is</p><p> when st0=> if din=q(15 downto 12) then next_state<=st1;</p><p> else next_state<=st0;</p><p> end if;ab<="1011"
55、;</p><p> when st1=> if din=q(11 downto 8) then next_state<=st2;</p><p> else next_state<=st0;</p><p> end if;ab<="1011";</p><p> when st2=>
56、; if din=q(7 downto 4) then next_state<=st3;</p><p> else next_state<=st0;</p><p> end if;ab<="1011";</p><p> when st3=> if din=q(3 downto 0) then next_stat
57、e<=st4;</p><p> else next_state<=st0;</p><p> end if;ab<="1011";</p><p> when st4=> if din=q(15 downto 12)then next_state<=st1;</p><p> els
58、e next_state<=st0;</p><p><b> end if;</b></p><p> if enter2'event and enter2='1' then </p><p> ab<="1010";</p><p><b>
59、end if;</b></p><p> when others=> next_state<=st0;ab<="1011";</p><p><b> end case;</b></p><p><b> end if;</b></p><p>
60、; end process;</p><p><b> end one;</b></p><p> 如上的波形仿真圖形和VHDL語言,該模塊是用狀態(tài)機來編寫的。與密碼管理模塊類似,當時鐘clk1每產(chǎn)生一次上升沿時,狀態(tài)機的次態(tài)轉(zhuǎn)換到現(xiàn)態(tài),當清零信號clr為高電平時,狀態(tài)機的狀態(tài)回復到初始狀態(tài)。為了與前面的密碼管理模塊分開,使系統(tǒng)處于改密碼狀態(tài)時,不進行密碼驗證,
61、避免錯誤輸出,在該模塊也加入set功能鍵,當set為低電平時,密碼驗證模塊開始檢驗輸入的密碼是否正確,當set為高電平時,該模塊的狀態(tài)機一直處于初始狀態(tài),等待set為高電平時,再開始檢驗密碼。由該模塊語言和密碼管理模塊語言可知,功能鍵set將兩個模塊的功能分割開,不同時進行。</p><p><b> 3.4、報警模塊</b></p><p><b>
62、1)、功能介紹</b></p><p> 報警模塊的功能是:當密碼連續(xù)輸錯兩次時,報警模塊輸出高電平,該高電平和外部時鐘經(jīng)過一個與門后接蜂鳴器。使得系統(tǒng)發(fā)出報警指示。只有輸入正確的密碼,系統(tǒng)才停止報警。</p><p> 2)報警模塊與仿真波形</p><p><b> 功能仿真波形:</b></p><p
63、><b> 時序仿真波形:</b></p><p><b> VHDL代碼:</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.a
64、ll;</p><p> entity bao is </p><p><b> port(</b></p><p> clk : in std_logic;</p><p> en: in std_logic_vector(3 downto 0);</p><p> bao:out
65、 std_logic</p><p><b> );</b></p><p><b> end bao;</b></p><p> architecture one of bao is</p><p><b> begin </b></p><p&g
66、t; process(clk,en)</p><p> variable dd: integer :=0;</p><p><b> begin</b></p><p> if clk'event and clk='1' then </p><p><b> dd:=dd+
67、1;</b></p><p><b> end if;</b></p><p> if en="1010" then </p><p><b> dd:=0;</b></p><p><b> end if;</b></p>
68、<p> if dd>1 then bao<='1';</p><p> else bao<='0';</p><p><b> end if;</b></p><p> end process;</p><p><b> end one;
69、</b></p><p> 如上述波形仿真結(jié)果和VHDL語言采用enter2作為該模塊時鐘,通過統(tǒng)計按下enter2的次數(shù)來確定總輸出bao是高電平還是低電平。該系統(tǒng)的總輸出再與系統(tǒng)時鐘連接,判斷是否發(fā)出報警。</p><p><b> 總體設計電路圖</b></p><p><b> 1)、系統(tǒng)原理圖</b&
70、gt;</p><p><b> 波形功能仿真結(jié)果:</b></p><p><b> 波形時序仿真結(jié)果:</b></p><p><b> 設計心得體會</b></p><p> 通過這次EDA課程設計使我們受益頗多,不僅鞏固了我們的所學知識,讓我們對VHDL語言有了
71、深層次的了解,并且讓我們學到了很多新知識。網(wǎng)上雖然有很多相關(guān)語言但大都不符合我們的設計要求,因此我們只能自己動手編寫。在整個設計過程中我們遇到了許多的挫折和困難,但經(jīng)過我們細致耐心的調(diào)試最終還是順利完成了此次設計,并且在原有功能要求上添加了一些新功能,達到了我們預期的目的??傊ㄟ^此次課程設計增強了我們的動手實踐能力,也讓我們知道了理論聯(lián)系實際的重要性。</p><p><b> 參考文獻</b
72、></p><p> 【1】、曹昕燕 周鳳臣 聶春燕《EDA技術(shù)實驗與課程設計》清華大學出版社</p><p> 【2】、廖超平 鄧力主縞《EDA技術(shù)》北京理工大學出版社</p><p> 【3】、鄒其洪主編《EDA技術(shù)實驗教程》中國電力出版社</p><p> 【4】、李秀霞 李興保 王心水編著《電子系統(tǒng)EDA設計實訓》北京航
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設計---電子密碼鎖
- eda課程設計—電子密碼鎖
- eda電子密碼鎖課程設計
- 電子密碼鎖——eda課程設計
- eda電子密碼鎖課程設計
- eda課程設計—電子密碼鎖
- eda課程設計--電子密碼鎖
- eda課程設計報告--電子密碼鎖
- eda課程設計報告--電子密碼鎖
- eda課程設計數(shù)字密碼鎖
- eda課程設計報告-- 電子密碼鎖設計
- eda課程設計報告---電子密碼鎖設計
- 電子密碼鎖eda技術(shù)課程設計
- eda綜合課程設計---電子密碼鎖的設計
- eda4位密碼鎖的課程設計
- vhdl四位密碼鎖課程設計eda
- 8位數(shù)字密碼鎖設計--eda課程設計
- 密碼鎖課程設計
- 密碼鎖課程設計
- 課程設計--密碼鎖
評論
0/150
提交評論