摘要:設(shè)計(jì)理念通過撥動(dòng)開關(guān)輸入由四位二進(jìn)制表示的密碼,然后按鍵確認(rèn)輸入并校驗(yàn)。如果校驗(yàn)失敗,則數(shù)碼不亮,全亮,啟動(dòng)報(bào)警,直到輸入正確密碼并再次確認(rèn)校驗(yàn)成功后,滅,數(shù)碼顯示提示開鎖。
1.設(shè)計(jì)理念
通過撥動(dòng)開關(guān)輸入由四位二進(jìn)制表示的密碼,然后按鍵確認(rèn)輸入并校驗(yàn)。
如果校驗(yàn)通過,則led不亮,數(shù)碼led顯示0提示開鎖。
如果校驗(yàn)失敗,則數(shù)碼led不亮,led全亮,啟動(dòng)報(bào)警,直到輸入正確密碼并再次確認(rèn)校驗(yàn)成功后,led滅,數(shù)碼led顯示0提示開鎖。
安全性:
視頻見附件。
2.代碼
(1) my_codelock.v
module my_codelock(seg_led, //數(shù)碼 led_state,key_confirm,sw_input, //led,開關(guān),按鍵 clk,rst //消抖需要的輸入 ); input key_confirm; //按鍵=確認(rèn) input [3:0] sw_input; //撥動(dòng)開關(guān)=輸入密碼 output [7:0] led_state; reg [7:0] led_state; //led表示狀態(tài) reg [8:0] seg_led; output [8:0] seg_led; //數(shù)碼管提示正確打開 input clk,rst; always@(*)begin seg_led=9"h00; if (key_confirm==0)begin //當(dāng)按下確認(rèn)開始校對(duì) if (sw_input==4"b0101) begin led_state=8"b1111_1111; //如果密碼正確,那就不亮led亮數(shù)碼板 seg_led=9"h3f; end else begin led_state=8"b0000_0000; end end end debounce u1 ( .clk (clk), .rst (rst), .key (key_confirm), .key_pulse () ); endmodule
(1) debounce.v
module debounce (clk,rst,key,key_pulse); parameter N = 1; //要消除的按鍵的數(shù)量 input clk; input rst; input [N-1:0] key; //輸入的按鍵 output [N-1:0] key_pulse; //按鍵動(dòng)作產(chǎn)生的脈沖 reg [N-1:0] key_rst_pre; //定義一個(gè)寄存器型變量存儲(chǔ)上一個(gè)觸發(fā)時(shí)的按鍵值 reg [N-1:0] key_rst; //定義一個(gè)寄存器變量?jī)?chǔ)存儲(chǔ)當(dāng)前時(shí)刻觸發(fā)的按鍵值 wire [N-1:0] key_edge; //檢測(cè)到按鍵由高到低變化是產(chǎn)生一個(gè)高脈沖 //利用非阻塞賦值特點(diǎn),將兩個(gè)時(shí)鐘觸發(fā)時(shí)按鍵狀態(tài)存儲(chǔ)在兩個(gè)寄存器變量中 always @(posedge clk or negedge rst) begin if (!rst) begin key_rst <= {N{1"b1}}; //初始化時(shí)給key_rst賦值全為1,{}中表示N個(gè)1 key_rst_pre <= {N{1"b1}}; end else begin key_rst <= key; //第一個(gè)時(shí)鐘上升沿觸發(fā)之后key的值賦給key_rst,同時(shí)key_rst的值賦給key_rst_pre key_rst_pre <= key_rst; //非阻塞賦值。相當(dāng)于經(jīng)過兩個(gè)時(shí)鐘觸發(fā),key_rst存儲(chǔ)的是當(dāng)前時(shí)刻key的值,key_rst_pre存儲(chǔ)的是前一個(gè)時(shí)鐘的key的值 end end assign key_edge = key_rst_pre & (~key_rst);//脈沖邊沿檢測(cè)。當(dāng)key檢測(cè)到下降沿時(shí),key_edge產(chǎn)生一個(gè)時(shí)鐘周期的高電平 reg [17:0] cnt; //產(chǎn)生延時(shí)所用的計(jì)數(shù)器,系統(tǒng)時(shí)鐘12MHz,要延時(shí)20ms左右時(shí)間,至少需要18位計(jì)數(shù)器 //產(chǎn)生20ms延時(shí),當(dāng)檢測(cè)到key_edge有效是計(jì)數(shù)器清零開始計(jì)數(shù) always @(posedge clk or negedge rst) begin if(!rst) cnt <= 18"h0; else if(key_edge) cnt <= 18"h0; else cnt <= cnt + 1"h1; end reg [N-1:0] key_sec_pre; //延時(shí)后檢測(cè)電平寄存器變量 reg [N-1:0] key_sec; //延時(shí)后檢測(cè)key,如果按鍵狀態(tài)變低產(chǎn)生一個(gè)時(shí)鐘的高脈沖。如果按鍵狀態(tài)是高的話說明按鍵無效 always @(posedge clk or negedge rst) begin if (!rst) key_sec <= {N{1"b1}}; else if (cnt==18"h3ffff) key_sec <= key; end always @(posedge clk or negedge rst) begin if (!rst) key_sec_pre <= {N{1"b1}}; else key_sec_pre <= key_sec; end assign key_pulse = key_sec_pre & (~key_sec); endmodule
3.RTL電路
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/121775.html
摘要:區(qū)塊鏈?zhǔn)擒浖_源運(yùn)動(dòng)所結(jié)出的果子。原因是區(qū)塊鏈創(chuàng)造的信任是基于代碼產(chǎn)生的。 上一講中,我們深入探討了區(qū)塊鏈對(duì)一些基本問題的答案,包括對(duì)時(shí)間的答案、對(duì)空間的答案以及對(duì)能量的答案。在這一篇文章中,我們將從區(qū)塊鏈作為基本工具的工具論方面切入。這個(gè)方面包括了它是怎樣看待這個(gè)世界的:它使用了哪些工具,以及它使用了哪些方法?構(gòu)造了哪些全新的博弈環(huán)境并形成了哪些新的博弈均衡態(tài)?這些方法也許和人們過去...
摘要:秘猿科技法務(wù)總監(jiān)錢靖受邀參加北京大學(xué)數(shù)字金融研究中心舉辦的數(shù)字金融第十講,作為主講嘉賓就區(qū)塊鏈正在重塑法律做了主題演講。而區(qū)塊鏈在很大程度上可以幫助解決這些問題。第三個(gè)方面涉及到區(qū)塊鏈對(duì)每個(gè)部門法的影響。 showImg(https://segmentfault.com/img/bVboMSK?w=1280&h=543); 秘猿科技法務(wù)總監(jiān)錢靖受邀參加北京大學(xué)數(shù)字金融研究中心舉辦的數(shù)字...
摘要:安全透明輕量的螞蟻區(qū)塊鏈摩斯安全計(jì)算基礎(chǔ)設(shè)施螞蟻摩斯依托螞蟻金融科技平臺(tái),結(jié)合區(qū)塊鏈技術(shù),將復(fù)雜的隱私保護(hù)與密碼學(xué)算法透明化產(chǎn)品化,提供安全發(fā)布安全模型安全統(tǒng)計(jì)安全查詢安全腳本等核心功能。 摘要:?螞蟻區(qū)塊鏈摩斯安全計(jì)算平臺(tái)針對(duì)數(shù)據(jù)安全信任、個(gè)人隱私保護(hù)以及數(shù)據(jù)基礎(chǔ)設(shè)施不足等痛點(diǎn),秉持?jǐn)?shù)據(jù)可用不可見和將計(jì)算移動(dòng)到數(shù)據(jù)端的原則,借助區(qū)塊鏈、密碼學(xué)、隱私保護(hù)、安全多方計(jì)算、可信計(jì)算等前沿...
摘要:第二步微信開發(fā)工具你可以下微信的,了解小程序的前端和后端的開發(fā)結(jié)構(gòu)。第三步微信的后臺(tái)處理購買主機(jī)建站會(huì)獲得一個(gè)可用的無備案的域名。 小程序制作和部署從本質(zhì)上是和其他的網(wǎng)站是一樣的,需要域名、服務(wù)器空間和數(shù)據(jù)庫。域名就是你們家的地址,服務(wù)器空間就是你們家房子,數(shù)據(jù)庫就是你們家的保險(xiǎn)柜。 但是小程序和網(wǎng)站又有不同,小程序的前端部分是需要通過微信開發(fā)工具上傳到微信的服務(wù)器上,就是說你們家的...
閱讀 1021·2021-11-22 13:52
閱讀 1454·2021-11-19 09:40
閱讀 3197·2021-11-16 11:44
閱讀 1281·2021-11-15 11:39
閱讀 3922·2021-10-08 10:04
閱讀 5381·2021-09-22 14:57
閱讀 3112·2021-09-10 10:50
閱讀 3195·2021-08-17 10:13