最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Verilog HDL實(shí)現(xiàn)智能藥盒—主文件中使用的按鍵消抖模塊

2022-12-05 11:13 作者:老司機(jī)的陽(yáng)光628  | 我要投稿

給各位推薦可以去CSDN或者GITHUB上查找自己想要的項(xiàng)目代碼,里面比較全,也有講解和注釋

// ********************************************************************

// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<

// ********************************************************************

// File name? ? : debounce.v

// Module name? : debounce

// Author? ? ? ?: STEP

// Description? :?

// Web? ? ? ? ? : www.stepfpga.com

//?

// --------------------------------------------------------------------

// Code Revision History :?

// --------------------------------------------------------------------

// Version: |Mod. Date:? ?|Changes Made:

// V1.0? ? ?|2017/03/02? ?|Initial ver

// --------------------------------------------------------------------

// Module Function:按鍵消抖

?

module debounce_button (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)過(guò)兩個(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ù)器清零開(kāi)始計(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)是高的話說(shuō)明按鍵無(wú)效

? ? ? ? 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

————————————————

本文代碼編輯部分因UP比較初級(jí),不太會(huì)敲,我是初學(xué)者,所以有的借鑒了這位博主的,敲得一模一樣,所以我不要版權(quán)!

原文鏈接:https://blog.csdn.net/m0_54218263/article/details/121726857

版權(quán)聲明:本文為CSDN博主「hhh江月」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。注釋:本文部分轉(zhuǎn)載自博主,轉(zhuǎn)載會(huì)附作者版權(quán)聲明!感謝作者讓我這個(gè)JAVA卡拉米體會(huì)到編程的神奇!



Verilog HDL實(shí)現(xiàn)智能藥盒—主文件中使用的按鍵消抖模塊的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
格尔木市| 威海市| 大石桥市| 蓝田县| 武汉市| 沂水县| 密云县| 福贡县| 井冈山市| 大竹县| 麻阳| 临安市| 轮台县| 徐水县| 连州市| 工布江达县| 莆田市| 桐梓县| 芦山县| 通江县| 洞口县| 察雅县| 渭南市| 嘉荫县| 定安县| 甘肃省| 常宁市| 昌都县| 班戈县| 蓬莱市| 永吉县| 蛟河市| 朔州市| 阿坝| 岳西县| 宁都县| 漳浦县| 昌乐县| 凤山市| 霍山县| 石嘴山市|