• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 博客專欄

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

    實驗9:密碼鎖

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

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

    實驗原理

    根據(jù)任務(wù)要求可知,只有當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,           //四位開關(guān)作為密碼輸入
        input wire d,				  //一位按鍵作為開鎖使能信號
        output wire led1,    	      //保險箱打開信號對應(yīng)的led輸出
        output wire led2			  //報警信號對應(yīng)的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亮代表發(fā)出報警信號
    endmodule
    </code>
    實驗步驟
    1. 打開Lattice Diamond,建立工程。
    2. 新建Verilog HDL設(shè)計文件,并鍵入設(shè)計代碼。
    3. 綜合并分配管腳,將輸入信號d,q,u,n,b分配至撥碼開關(guān),將輸出信號led1,led2分配至板卡上的LED。d/L14,q/M7,u/M8,n/M9,b/M10,led1/N13,led2/M12
    4. 構(gòu)建并輸出編程文件,燒寫至FPGA的Flash之中。
    5. 觀察輸出結(jié)果。開發(fā)板按鍵開關(guān)低電平有效,所以d的常態(tài)是1,表示插入鑰匙旋轉(zhuǎn)。此時,我們可以通過改變撥碼開關(guān),觀察兩燈的變化。只有當撥碼開關(guān)撥至0101時,led1亮,led2滅,表示輸出有效,不報警。其他撥碼狀態(tài)代表輸入密碼錯誤,led1滅,led2亮,輸出無效,報警。若按下d所連接的按鍵開關(guān)L14使d=0,表示未插入鑰匙,此時無論輸入何密碼,輸出和報警都會無效,兩個led 燈均不會亮。以上過程,達到了密碼鎖的功能。


    *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



    關(guān)鍵詞: FPGA Lattice Diamond

    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 邵阳市| 于田县| 玉林市| 稷山县| 西城区| 宁阳县| 开远市| 九江市| 察哈| 乐山市| 苗栗市| 高淳县| 始兴县| 铁岭市| 利津县| 闽侯县| 白山市| 寻乌县| 日喀则市| 本溪市| 万宁市| 开封市| 泽普县| 江北区| 乐都县| 逊克县| 遂昌县| 枝江市| 田东县| 福贡县| 博湖县| 会泽县| 岫岩| 洪雅县| 特克斯县| 绩溪县| 沂水县| 临颍县| 浮山县| 太湖县| 咸宁市|