版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
矩陣鍵盤的verilog代碼分享define
SCANmodule
key_scan(clk
,rst_n
,key_col,//鍵盤列輸入key_row,//鍵盤行輸出key_num,//指示哪一個按鍵按下,用0~15指示key_vld
//按下有效指示信號,其為1表示按下一次。);parameter
KEY_W
=
4;parameter
COL
=
0;parameter
ROW
=
1;parameter
DLY
=
2;parameter
FIN
=
3;parameter
COL_CNT
=
16;parameter
TIME_20MS=
1000000;//輸入信號定義input
clk
;input
rst_n
;input
[3:0]
key_col;//輸出信號定義output
key_vld;output[3:0]
key_num;output[KEY_W-1:0]
key_row;//輸出信號reg定義reg
[3:0]
key_num;reg
[KEY_W-1:0]
key_row;reg
key_vld;reg
[3:0]
key_col_ff0
;reg
[3:0]
key_col_ff1
;reg
[1:0]
key_col_get
;reg
shake_flag
;reg
shake_flag_ff0;reg
[3:0]
state_c
;reg
[19:0]
shake_cnt
;reg
[3:0]
state_n
;reg
[1:0]
row_index
;reg
[15:0]
row_cnt
;reg
[2:0]
x
;always
@(posedgeclkornegedgerst_n)beginif(rst_n==1'b0)beginkey_col_ff0<=4'b1111;key_col_ff1<=4'b1111;endelsebeginkey_col_ff0<=key_col
;key_col_ff1<=key_col_ff0;endendalways
@(posedgeclkornegedgerst_n)beginif(rst_n==1'b0)beginshake_cnt<=0;endelseif(add_shake_cnt)beginif(end_shake_cnt)shake_cnt<=0;elseshake_cnt<=shake_cnt+1;endelsebeginshake_cnt<=0;endendassign
add_shake_cnt=key_col_ff1!=4'hf&&shake_flag==0;assign
end_shake_cnt=add_shake_cnt&&shake_cnt==TIME_20MS-1;always
@(posedgeclkornegedgerst_n)beginif(rst_n==1'b0)beginshake_flag<=0;endelseif(end_shake_cnt)beginshake_flag<=1'b1;endelseif(key_col_ff1==4'hf)beginshake_flag<=1'b0;endend`ifdefSCANalways
@(posedgeclkornegedgerst_n)beginif(rst_n==1'b0)beginstate_c<=COL;endelsebeginstate_c<=state_n;endendalways
@(*)begincase(state_c)COL:beginif(col2row_start)beginstate_n=ROW;endelsebeginstate_n=state_c;endendROW:beginif(row2dly_start)beginstate_n=DLY;endelsebeginstate_n=state_c;endendDLY:
beginif(dly2fin_start)beginstate_n=FIN;endelsebeginstate_n=state_c;endendFIN:beginif(fin2col_start)beginstate_n=COL;endelsebeginstate_n=state_c;endenddefault:state_n=COL;endcaseendassign
col2row_start=state_c==COL&&end_shake_cnt;assign
row2dly_start=state_c==ROW&&end_row_index;assign
dly2fin_start=state_c==DLY&&end_row_index;assign
fin2col_start=state_c==FIN&&key_col_ff1==4'hf;always
@(posedgeclkornegedgerst_n)beginif(rst_n==1'b0)beginkey_row<=4'b0;endelseif(state_c==ROW)beginkey_row<=~(1'b1<<row_index);endelsebeginkey_row<=4'b0;endendalways
@(posedgeclkornegedgerst_n)beginif(rst_n==1'b0)beginrow_cnt<=0;endelseif(add_row_cnt)beginif(end_row_cnt)row_cnt<=0;elserow_cnt<=row_cnt+1;endendassignadd_row_cnt=state_c==ROW||state_c==DLY;assignend_row_cnt=add_row_cnt&&row_cnt==COL_CNT-1;always
@(posedgeclkornegedgerst_n)beginif(rst_n==1'b0)beginrow_index<=0;endelseif(add_row_index)beginif(end_row_index)row_index<=0;elserow_index<=row_index+1;endendassignadd_row_index=end_row_cnt;assignend_row_index=add_row_index&&row_index==x-1;always
@(*)beginif(state_c==ROW)x=4;elsex=1;endalways
@(posedgeclkornegedgerst_n)beginif(rst_n==1'b0)beginkey_col_get<=0;endelseif(col2row_start)beginif(key_col_ff1==4'b1110)key_col_get<=0;elseif(key_col_ff1==4'b1101)key_col_get<=1;elseif(key_col_ff1==4'b1011)key_col_get<=2;elsekey_col_get<=3;endendalways
@(posedgeclkornegedgerst_n)beginif(rst_n==1'b0)beginkey_num<=0;endelseif(state_c==ROW&&end_row_cnt)beginkey_num<={row_index,key_col_get};endelsebeginkey_num<=0;endendalways
@(posedgeclkornegedgerst_n)beginif(rst_n==1'b0)beginkey_vld<=1'b0;endelseif(state_c==ROW&&end_row_cnt&&key_col_ff1[key_col_get]==1'b0)beginkey_vld<=1'b1;en
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 渠道撈垃圾協(xié)議書
- 蘇聯(lián)?;饏f(xié)議書
- 苗木綠化協(xié)議書
- 莆田繼承協(xié)議書
- 融投資合同范本
- 視頻素材協(xié)議書
- 認(rèn)證廉政協(xié)議書
- 設(shè)備故障協(xié)議書
- 設(shè)施借用協(xié)議書
- 試吃協(xié)議書范本
- 2025年下半年度浙江省新華書店集團(tuán)招聘92人易考易錯模擬試題(共500題)試卷后附參考答案
- 林地除草合同范本
- 云南高中體育會考試題及答案
- 2025廣東惠州市城市建設(shè)投資集團(tuán)有限公司社會招聘9人備考筆試試題及答案解析
- 2025湖北武漢市公安局蔡甸區(qū)分局第二批招聘警務(wù)輔助人員43人考試筆試參考題庫及答案解析
- 軍事地形學(xué)圖課件
- 23G409先張法預(yù)應(yīng)力混凝土管樁
- 后勤服務(wù)方案(技術(shù)方案)
- 學(xué)術(shù)交流英語(學(xué)術(shù)寫作)智慧樹知到期末考試答案2024年
- 醫(yī)院藥學(xué)信息服務(wù)
- 四川省安全員《B證》考試題庫及答案
評論
0/150
提交評論