クロックとは ーーマイコンにクロックが必要な理由:Q&Aで学ぶマイコン講座(88)(2/5 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「マイコンのクロック」についてです。
フリップフロップ
クロックに同期して動作する最も簡単な論理回路は、フリップフロップ(以下、FF)です。論理規模が違っても、基本的な原理とクロック同期の目的は同じなので、FFを使ってクロックの役割を説明します。
クロックを使ったFFで最も簡単な構造のものは、D-Latchです。D-Latchの原理と動作を図2(a)に示します。Latch(ラッチ)とは、クロックなどのトリガでデータを取り込み保持することです。
D-Latchは、クロックのHigh期間に入力Dinを透過的にQから出力します。従って、この期間はDin=Doutです。クロックがHighからLowに立ち下がると、その時点のDinを取り込み、その後のLow期間はその値を保持します。従って、クロックがLowになると入力Dinがどんなに変動しても、Doutは変動しません。
通常、論理回路には微小ではあるものの、信号の伝搬遅延があります。その遅延によってグリッチと呼ばれる短期間の信号が発生し、それがノイズとなってデータを不安定にして、誤動作の原因になります。
D-Latchでは、クロックのHigh期間にグリッチを含む入力の信号変動を透過的にDoutに出力してしまいます。しかし、信号変動が収まって安定した時に、クロックがHighからLowに立ち下がるように設計しておけば、次段の論理回路へ伝搬するデータは、クロックがLow期間の安定したデータになります。
もし、Doutに全く信号変動を出したくない場合は、D-Latchを2段にして、信号変動を排除します。それがマスタースレーブフリップフロップ(以下、MS FF)です。図2(b)に、D-Latchを用いたMS FFを示します。
MS FFの場合、後段のD-Latchのクロックは、前段のクロックを反転したものです。従って、後段のD-LatchはクロックがLowの期間にDmを透過的にQに出して、Doutを出力します。クロックがHighになると、データを保持してDoutに出力します。これにより、クロックの立ち下がりから次の立ち下がりまでの期間のDoutは信号変動を排除した安定したデータを出力できます。前段のD-Latchをマスター、後段をスレーブと呼びます。
このように、2つのD-Latchが交互にデータを取り込み、保持することで、グリッチを含む入力の信号変動を排除した安定したデータをクロックのサイクル単位で得ることができます。
今回は、D-Latchを使用したMS FFを例に挙げましたが、JK FFなど他のFFを使っても同じ動作と効果を得ることができます。
Copyright © ITmedia, Inc. All Rights Reserved.