FPGA開(kāi)發(fā)中按鍵消抖與單脈沖發(fā)生器電路
圖2中時(shí)鐘送入D觸發(fā)器前加了非門,使Q1端產(chǎn)生與nCLK(CLK的反向脈沖信號(hào))同步的正向脈沖,與門輸出單脈沖與CLK差半個(gè)時(shí)鐘周期,作為D觸發(fā)器U4A的輸入D4,在CLK上升沿U4A被觸發(fā),使單脈沖脈寬與時(shí)鐘周期相同,實(shí)現(xiàn)了等脈寬。并延遲了半個(gè)時(shí)鐘周期使輸出脈沖與時(shí)鐘周期對(duì)應(yīng),實(shí)現(xiàn)了相位調(diào)整。整個(gè)單脈沖發(fā)生器的時(shí)序圖如圖3所示(圖3中的t1,t2是任意鍵按下與鍵抬起時(shí)刻)。
3 基于FPGA下的按鍵消抖計(jì)數(shù)器和單脈沖發(fā)生器的Verilog HDL語(yǔ)言描述
圖1中的按鍵消抖計(jì)數(shù)器電路,其進(jìn)行描述的Verilog HDL語(yǔ)言代碼如下:
代碼中的復(fù)位n_rst和按鍵n_Kd都是低電平有效。鍵控單脈沖發(fā)生器的Verilog HDL語(yǔ)言代碼如下:
代碼中還用到了D觸發(fā)器DFF,實(shí)現(xiàn)這個(gè)模塊的代碼比較簡(jiǎn)單,此處從略。
4 結(jié) 語(yǔ)
該文中的設(shè)計(jì),實(shí)現(xiàn)了鍵控單脈沖發(fā)生器,產(chǎn)生脈寬等于時(shí)鐘脈沖,輸出脈沖與時(shí)鐘周期對(duì)應(yīng)的單脈沖,并解決了按鍵消抖問(wèn)題,可以應(yīng)用到各種需要產(chǎn)生單脈沖的FPGA電路設(shè)計(jì)中。按鍵消抖電路可獨(dú)立地應(yīng)用于其他FPGA電路設(shè)計(jì)中。本文中設(shè)計(jì)的20 b計(jì)數(shù)器是根據(jù)筆者課題需要而定。其他設(shè)計(jì)中可以根據(jù)按鍵抖動(dòng)時(shí)間可利用公式計(jì)算出計(jì)數(shù)器模值設(shè)計(jì)計(jì)數(shù)器。
評(píng)論