




已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)字電路與邏輯設(shè)計實驗-4位簡易密碼鎖 姓名:王云深學(xué)號:10210889班級:2011211209軟件簡介:Quartus II 是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整PLD設(shè)計流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度。對第三方EDA工具的良好支持也使用戶可以在設(shè)計流程的各個階段使用熟悉的第三方EDA工具。此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,是一種綜合性的開發(fā)平臺。Maxplus II 作為Altera的上一代PLD設(shè)計軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設(shè)計輔助工具,集成了SOPC和HardCopy設(shè)計流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。實驗?zāi)康模?設(shè)計并實現(xiàn)一個數(shù)字密碼鎖,密碼鎖有四位數(shù)字密碼和一個確認開鎖按鍵,密碼輸入正確,密碼鎖打開,密碼輸入錯誤進行警示。實驗要求:基本要求:1、密碼設(shè)置:通過鍵盤進行4 位數(shù)字密碼設(shè)定輸入,在數(shù)碼管上顯示所輸入數(shù)字。通過密碼設(shè)置確定鍵(BTN 鍵)進行鎖定。2、開鎖:在閉鎖狀態(tài)下,可以輸入密碼開鎖,且每輸入一位密碼,在數(shù)碼管上顯示“-”,提示已輸入密碼的位數(shù)。輸入四位核對密碼后,按“開鎖”鍵,若密碼正確則系統(tǒng)開鎖,若密碼錯誤系統(tǒng)仍然處于閉鎖狀態(tài),并用蜂鳴器或led 閃爍報警。3、在開鎖狀態(tài)下,可以通過密碼復(fù)位鍵(BTN 鍵)來清除密碼,恢復(fù)初始密碼“0000”。閉鎖狀態(tài)下不能清除密碼。4、 用點陣顯示開鎖和閉鎖狀態(tài)。提高要求:1、輸入密碼數(shù)字由右向左依次顯示,即:每輸入一數(shù)字顯示在最右邊的數(shù)碼管上,同時將先前輸入的所有數(shù)字向左移動一位。2、 密碼鎖的密碼位數(shù)(46 位)可調(diào)。3、自擬其它功能。 實驗代碼:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Lock ISPORT(clk_in:IN STD_LOGIC;rst :IN STD_LOGIC;keyboard_input:IN STD_LOGIC_VECTOR(3 DOWNTO 0);btn_input: IN STD_LOGIC;relock_input :IN STD_LOGIC;state_out: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);number_shape : OUT STD_LOGIC_VECTOR(7 downto 0);number_location : OUT STD_LOGIC_VECTOR(5 downto 0);square_row : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);square_colG : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);square_colR : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);beep:OUT STD_LOGIC);END Lock;ARCHITECTURE a OF Lock ISsignal cnt_dis : integer range 0 to 100000;signal clk_tmp_dis : std_logic;signal clk_out_dis : std_logic;signal cnt_dis2 : integer range 0 to 750001;signal clk_tmp_dis2 : std_logic;signal clk_out_dis2 : std_logic;signal disp_cnt : integer range 0 to 9;signal square_cnt: integer range 0 to 9;signal keyboard_state : integer range 0 to 9;signal btn_state :std_logic;signal relock_state : std_logic;signal disp_num0 : integer range 0 to 11;signal disp_num1 : integer range 0 to 11;signal disp_num2 : integer range 0 to 11;signal disp_num3 : integer range 0 to 11;signal real_pwd0 : integer range 0 to 9;signal real_pwd1 : integer range 0 to 9;signal real_pwd2 : integer range 0 to 9;signal real_pwd3 : integer range 0 to 9;signal test_pwd0 : integer range 0 to 9;signal test_pwd1 : integer range 0 to 9;signal test_pwd2 : integer range 0 to 9;signal test_pwd3 : integer range 0 to 9;signal current_state : std_logic_vector(3 downto 0);signal next_state : std_logic_vector(3 downto 0);signal beep_buf : std_logic;signal is_locked : std_logic;signal is_beep : std_logic;BEGINPROCESS(clk_in,clk_tmp_dis)BEGINIF(clk_inevent and clk_in=1) THENIF cnt_dis= 35000 THEN -71429cnt_dis=0;clk_tmp_dis= NOT clk_tmp_dis;-beep_buf = NOT beep_buf;ELSE cnt_dis=cnt_dis+1;END IF;clk_out_dis = clk_tmp_dis;END IF;END PROCESS;PROCESS(clk_out_dis,clk_tmp_dis2)BEGINIF(clk_out_disevent and clk_out_dis=1) THENIF cnt_dis2= 75 THEN -250000cnt_dis2=0;clk_tmp_dis2= NOT clk_tmp_dis2;ELSE cnt_dis2=cnt_dis2+1;END IF;clk_out_dis2 CASE disp_num3 ISWHEN 0 = number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape = 00000000;END CASE;number_location CASE disp_num2 ISWHEN 0 = number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape = 00000000;END CASE;number_location CASE disp_num1 ISWHEN 0 = number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape = 00000000;END CASE;number_location CASE disp_num0 ISWHEN 0 = number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape number_shape = 00000000;END CASE;number_location number_shape = 00000000;number_location = 111111;END CASE;disp_cnt = disp_cnt + 1;IF (disp_cnt = 3) THENdisp_cnt = 0;END IF;END IF;END PROCESS;PROCESS(clk_out_dis2)-input scanBEGINIF (clk_out_dis2event and clk_out_dis2=1) THENbtn_state = btn_input;relock_state keyboard_state keyboard_state keyboard_state keyboard_state keyboard_state keyboard_state keyboard_state keyboard_state keyboard_state keyboard_state keyboard_state = 0;END CASE;END IF;END PROCESS;PROCESS(clk_out_dis2,rst)-state controlBEGINIF rst = 1 THENcurrent_state = 0000;ELSIF clk_out_dis2 = 1 AND clk_out_dis2event THENcurrent_state -0: Init/Resetreal_pwd3 = 0;real_pwd2 = 0;real_pwd1 = 0;real_pwd0 = 0;test_pwd3 = 0;test_pwd2 = 0;test_pwd1 = 0;test_pwd0 = 0;disp_num3 = 0;disp_num2 = 0;disp_num1 = 0;disp_num0 = 0;next_state = 0001;is_locked = 0;is_beep -1: Input real pwd X123disp_num3 = keyboard_state;real_pwd3 = keyboard_state;IF btn_state = 1 THENnext_state = 0010;ELSEnext_state -2: Input real pwd 0X23disp_num2 = keyboard_state;real_pwd2 = keyboard_state;IF btn_state = 1 THENnext_state = 0011;ELSEnext_state -3: Input real pwd 01X3disp_num1 = keyboard_state;real_pwd1 = keyboard_state;IF btn_state = 1 THENnext_state = 0100;ELSEnext_state -4: Input real pwd 012Xdisp_num0 = keyboard_state;real_pwd0 = keyboard_state;IF btn_state = 1 THENnext_state = 0101;ELSEnext_state -5: It is lockedis_beep = 0;is_locked = 1;disp_num3 = 11;disp_num2 = 11;disp_num1 = 11;disp_num0 = 11;next_state -6: Input test pwd X123disp_num3 = 10;test_pwd3 = keyboard_state;IF btn_state = 1 THENnext_state = 0111;ELSEnext_state -7: Input test pwd 0X23disp_num2 = 10;test_pwd2 = keyboard_state;IF btn_state = 1 THENnext_state = 1000;ELSEnext_state -8: Input test pwd 01X3disp_num1 = 10;test_pwd1 = keyboard_state;IF btn_state = 1 THENnext_state = 1001;ELSEnext_state -9: Input test pwd 012Xdisp_num0 = 10;test_pwd0 = keyboard_state;IF btn_state = 1 THENnext_state = 1010;ELSEnext_state -10:Determine whether test pwd is the real pwdIF real_pwd3 = test_pwd3 AND real_pwd2 = test_pwd2 AND real_pwd1 = test_pwd1 AND real_pwd0 = test_pwd0 THENnext_state = 1011;is_locked = 0;ELSEis_beep = 1;next_state IF btn_state = 1 THENnext_state = 0000;ELSIF relock_state = 1 THENnext_state next_state = 0000;END CASE;END IF;END PROCESS;PROCESS(current_state)BEGINstate_out = current_state;END PROCESS;PROCESS(clk_out_dis,is_beep)BEGINIF is_beep = 1 THENbeep = clk_out_dis;ELSEbeep square_colR = 01111110;square_row = 11111110;square_colG square_colR = 01111110;square_row = 11111101;square_colG square_colR = 01111110;square_row = 11111011;square_colG square_colR = 01111110;square_row = 11110111;square_colG square_colR = 00100100;square_row = 11101111;square_colG square_colR = 00100100;square_row = 11011111;square_colG square_colR = 00011000;square_row = 101111
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 運動裝備定制銷售合同
- 2023-2024學(xué)年高中信息技術(shù)選修2(浙教版2019)-網(wǎng)絡(luò)基礎(chǔ)-教學(xué)設(shè)計-2.1-網(wǎng)絡(luò)拓撲結(jié)構(gòu)
- 13-2《上圖書館》 教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊
- Lesson 1 Nice to meet you. Period 1(教學(xué)設(shè)計)-2024-2025學(xué)年接力版英語四年級上冊
- 11 四通八達的交通(教學(xué)設(shè)計)-2023-2024學(xué)年道德與法治三年級下冊統(tǒng)編版
- 2 點亮小燈泡 教學(xué)設(shè)計-2023-2024學(xué)年科學(xué)四年級下冊教科版
- 2025年激光隧道斷面測量系統(tǒng)項目發(fā)展計劃
- 餐車訂購合同范本
- 婚禮公司合同范本
- 17要是你在野外迷了路 教學(xué)設(shè)計-2023-2024學(xué)年語文二年級下冊統(tǒng)編版
- 2025年度智慧醫(yī)療服務(wù)平臺建設(shè)合同范本
- 2024項目管理人員安全培訓(xùn)考試題(審定)
- 2025四川宜賓市高縣縣屬國企業(yè)第一次招聘3人易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年全國職業(yè)院校技能大賽中職組(母嬰照護賽項)考試題庫(含答案)
- 2024年沈陽職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- 作文紙(網(wǎng)格600字A4)
- DLT-5293-2013 電氣裝置安裝工程 電氣設(shè)備交接試驗報告統(tǒng)一格式
- 塑料齒輪強度校核方法(共15頁)
- 幼兒園語言教育活動的特點
- 危險源辨識和控制措施..
- 保護層分析(LOPA)方法簡ppt課件
評論
0/150
提交評論