博客專欄

        EEPW首頁 > 博客 > 實驗9:密碼鎖

        實驗9:密碼鎖

        發布人:xiaxue 時間:2023-10-09 來源:工程師 發布文章
        實驗目的
        • (1)熟悉和掌握FPGA開發流程和Lattice Diamond軟件使用方法;
        • (2)通過實驗理解和掌握密碼鎖原理;
        • (3)學習用Verilog HDL行為級描述方法描述密碼鎖電路。
        實驗任務

        設計4位二進制密碼鎖,要求如下:
        4位密碼輸入代碼分別為Q、U、N、B,開箱時,鑰匙插入鑰匙孔右旋使D=1,如果輸入密碼(如:QUNB=0101)與設置的代碼相同,則保險箱被打開,即輸出端G=1,否則箱體發出報警。

        實驗原理

        根據任務要求可知,只有當D=1,且輸入密碼=0101時,輸出G=1,報警器W=0。其他情況下D=1,輸出G=0,報警器W=1。若D=0, 輸出G=0,報警器W=0。密碼鎖真值表如下:

        邏輯電路

        Verilog HDL建模描述

        4位密碼鎖程序清單codedlock.v
        <code verilog> module codedlock

          (
            input wire q,u,n,b,           //四位開關作為密碼輸入
            input wire d,				  //一位按鍵作為開鎖使能信號
            output wire led1,    	      //保險箱打開信號對應的led輸出
            output wire led2			  //報警信號對應的led輸出
          );
        wire  [3:0]   code;			  //四位變量存儲密碼
        reg			  open;			  //保險箱開箱信號
        reg			  alarm;          //報警信號
        assign		code = {q,u,n,b};
         always@(d or code)
        if(d == 1'b1)             //使能,開始判斷密碼
        	begin
        		if(code == 4'b0101)   
        			begin
        				open = 1'b1;  //開鎖
        				alarm = 1'b0; //沒報警
        			end
        		else
        			begin
        				open = 1'b0;  
        				alarm = 1'b1;
        			end
        	end
          else
        	begin
        		open = 1'b0;
        	end
         assign  led1 = ~open;		//led亮表示密碼鎖沒開
         assign	led2 = ~alarm;		//led亮代表發出報警信號
        endmodule
        </code>
        實驗步驟
        1. 打開Lattice Diamond,建立工程。
        2. 新建Verilog HDL設計文件,并鍵入設計代碼。
        3. 綜合并分配管腳,將輸入信號d,q,u,n,b分配至撥碼開關,將輸出信號led1,led2分配至板卡上的LED。d/L14,q/M7,u/M8,n/M9,b/M10,led1/N13,led2/M12
        4. 構建并輸出編程文件,燒寫至FPGA的Flash之中。
        5. 觀察輸出結果。開發板按鍵開關低電平有效,所以d的常態是1,表示插入鑰匙旋轉。此時,我們可以通過改變撥碼開關,觀察兩燈的變化。只有當撥碼開關撥至0101時,led1亮,led2滅,表示輸出有效,不報警。其他撥碼狀態代表輸入密碼錯誤,led1滅,led2亮,輸出無效,報警。若按下d所連接的按鍵開關L14使d=0,表示未插入鑰匙,此時無論輸入何密碼,輸出和報警都會無效,兩個led 燈均不會亮。以上過程,達到了密碼鎖的功能。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: FPGA Lattice Diamond

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 都兰县| 昭觉县| 响水县| 吉林省| 大渡口区| 福清市| 饶河县| 隆回县| 灵丘县| 丹寨县| 紫阳县| 广平县| 乌兰察布市| 陇南市| 延边| 板桥市| 温宿县| 顺平县| 静宁县| 达尔| 澳门| 元江| 农安县| 宁河县| 麻江县| 阆中市| 仪征市| 商洛市| 铜山县| 廊坊市| 民县| 张北县| 佛山市| 五台县| 宜都市| 蒲城县| 沽源县| 松阳县| 东明县| 岐山县| 屏边|