トップ 一覧 検索 ヘルプ 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