- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!チャタリング除去回路
スイッチの接点で発生するチャタリングを除去します.
順序回路として設計するときに,最も簡潔かつ有効なチャタリング除去回路です.
!!パラメータ
,パラメータ名,既定値,
,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