作者dinex (Dinex)
看板Electronics
標題[問題] FPGA鍵盤使用Verilog進行操控
時間Fri Jun 17 15:23:12 2011
各位大大好,本人最近要使用Verilog來撰寫可以使用上面的4*4鍵盤
現在目前遇到的問題是,由於考量到Debounce的因素,所以想請問一下
1.大多Debounce設幾秒較為恰當?
2.由於要求要連續讀取兩個數值,本人採用Finite State的方式(第一個state讀第一個
數值,第二個便讀第二個)進行撰寫,但發現由於設定第一個state讀取到第一個數值時便
立刻換到第二個state,會因為Debounce後產生的連續訊號延續到下個state而造成第二
個state會有直接讀取的疑慮。請問該如何解決?謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.25.243
1F:推 bearpower:1. 一般大概20的CLOCK以上都蠻有效果了 06/17 17:23
2F:→ bearpower:2. 應該是debounce沒濾好造成跑到下一個FSM吧 06/17 17:24
3F:→ bearpower:不過你FSM是用哪個訊號當triger? 可以採用LED燈當做 06/17 17:25
4F:→ bearpower:檢測的方式,看是不是你只暗一個數字,可是就跑了 06/17 17:25
5F:→ bearpower:兩個FSM,如果是,那應該是debounce沒濾好 06/17 17:25
6F:→ bearpower:"按" 對不起 打錯字 06/17 17:26
7F:→ dinex:兩個字儲存都是用同一個FSM進行,只是用STATE來區分(第一個 06/17 17:57
8F:→ dinex:STATE:存第一個字,第二個STATE:存第二個字),觸發方式是當 06/17 17:58
9F:→ dinex:鍵盤所讀出的數值不等於沒有按下任何鍵的預設數值就指定下一 06/17 17:59
10F:→ dinex:CLK正緣觸發時輸入下一個STATE 06/17 18:00
11F:→ dinex:上述狀況是本人尚未燒板子前突然想到的,不過我想就是這種觸 06/17 18:03
12F:→ dinex:發是否會導致造成此結果(Debounce使用按持續一段時間才承認) 06/17 18:04
13F:→ dinex:還是說有更好的寫法? 06/17 23:25
14F:推 bearpower:我的建議:把sensitive list改為按鈕數字的變化 06/18 00:23
15F:→ bearpower:或許可以解決這問題,不過這要看您的debounce作的好不好 06/18 00:23
16F:→ dinex:謝謝。那請問一下鍵盤的CLK掃描速度設定多快較好? 06/19 22:37