トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

chattering.v

チャタリング除去回路

スイッチの接点で発生するチャタリングを除去します.
順序回路として設計するときに,最も簡潔かつ有効なチャタリング除去回路です.

パラメータ

パラメータ名 既定値  
N 1 チャタリングを除去する信号の数

入出力ポート

  ポート名 ビット数  
入力 clk 1 グローバルクロック
入力 reset 1 グローバルリセット
入力 in N N個のスイッチに接続
出力 out N チャタリングを除去した信号を出力

動作原理

2^16=65536クロックサイクルごとに1回,入力をフリップフロップにサンプリングする.
クロックの周波数が50MHz(=20ns)なら,約760Hz(=1.3ms)のサンプリング間隔.
チャタリングの期間が1.3ms以下であれば,チャタリングを除去することができる.

ソースコード

module chattering(clk,reset,in,out);
  parameter N=1;

  input clk,reset;
  input [N-1:0]in;
  output [N-1:0]out;
  reg [N-1:0]out,buffer;
  reg [15:0] count;

  always @(posedge clk or negedge reset)
    if(!reset) count <= 0;
    else count <= count + 1;

  always @(posedge clk)
    if(count==0)
      begin
        buffer <= in;
        out <= buffer;
      end

endmodule

最終更新時間:2009年04月18日 12時11分43秒