あります(図.23)。このセットアップタイムとホールドタイムとを満足すれば、出力が保証されます。これを満足しないときは、出力がハイになるかローになるかが保証されません。ハイかローかが保証されないだけで、ハイまたはローになってくれるのであれば、通常の用途には支障ありません。ところが、異常な現象が発生する可能性があるのです。メタステーブルが発生する可能性があるのは、セットアップタイム/ホールドタイムを満足しないときです。メタステーブルは、必ず発生するのではありません。オーダーですから、問題にならないで済むこともあります。低い確率ではありますが、メタステーブルの不安定期間が、長時間になることがあります。メタステーブルが発生し得る条件のとき、メタステーブルを完全に無くすことはできません。したがって、メタステーブルを避けるためには、メタステーブルが発生しない条件、すなわち、セットアップタイム、ホールドタイムを満足するように、タイミングを、設計しなければ、なりません。これは、次に述べる、同期式回路を使用することによって、実現します。回路を100%同期式にすることはできまぜん。これらの問題は、次の同期式のところで説明します。使用した順序回路には、同期式回路と、非同期式回路とがあります。クロックの使い方による区分です。注目している回路ブロック内の、すべてのフリップフロップのクロック入力が、同一のクロックで動作します。式では、フリップフロップは、少なくとも2つ以上の異なるクロックによって、動作します。カウンタを例に取ると、図.25は非同期式、図.26は同期式です。非同期式カウンタでは、ある桁のフリップフロップの出力が、次の桁のフリップフロップの入力になっています。すべてのフリップフロップが別のクロックで動作しています。同期式カウンタでは、すべての桁のフリップフロップが、共通のクロックで動作しています。ここでは、ノイズの立場に限定して、比較を行います。一般論として、同期式は、非同期式に比べて、ノイズに強いことは確かです。従来その理由とされてきたことは、間違っています。従来の説を図.27に示します。同期式では、クロックのエッジでのみ、データ入力をサンプリングします。したがって、クロック入力以外のタイミングで、データに発生したノイズは、全て無視されます。クロック入力のタイミングで、ノイズが発生したときにのみ、誤動作に繋がるという説明です。この現象は、同期式だけでなく、非同期式においても成立します。エッジトリガとレベルトリガとの比較であれば、合っています。それとの取り違いのようです。同期式と、非同期式との違いは、まったく別の所にあります。図.28を見てください。クロック入力によって、フリップフロップが動作すると、信号(2)のハイ/ローに変化が起こります。このとき、リンギングなどの原因によって、自分の信号自身にノイズが発生します(A)。図には示してありませんが、他の信号にも影響を与え、各所にノイズが発生しやすいタイミングです。これらのノイズは減衰し、やがて安定します。次のクロックが入るのは、この安定したタイミング(B)です。非同期式においても、互いのクロックのタイミングを、うまく設計すれば、このようにすることは可能です。同期式に固有のことではありません。ごとに、クロックのタイミングを意識して設計しなければなりません。同期式であれば、自動的に、タイミングが満足されます。同期式と、非同期式との差は、この点にあります。同期式が、明らかに有利です。非同期式でも、設計をきちんとやれば、実現可能なことではあります。同期式回路では、フリップフロップのセットアップ/ホールドタイムを、完全に満足するように設計すことは容易です。この意味では、同期式回路を使用すればよいわけです。その回路ブロックの内部を100%同期式にしたとしても、その回路ブロックの外部からの入力があります。この外部からの入力に対しては、非同期になります。ここでメタステーブルが発生する可能性があります。外部データ取り込み部分の、対策として、図.29の方式があります。ところでは、メタステーブルが発生する可能性があります。通常メタステーブルの期間は短いので、通常の同期回路の部分にはその影響は及びません。この方法は、絶対ではありません。クロック分の遅れが許容される場合でないと、適用できません。クロック以内に収まりますが、それを上回る確率は、ゼロにはなり得ないということです。実用上は、ほぼ十分な対策と考えられます。フリップフロップのフリップは、爪や指ではじく、フロップは、ばたばた動かすという意味です。この両者を合わせることによって、相互に繰り返し動作する、フリップフロップの言葉が、できたのでしょう。似たような言葉に、シーソーがあります。子供の頃、ギッタンバッコンと呼んで、遊んだものです。フリップフロップですが、フリップフロップの種類には、次のようなものがあります。フリップフロップの基本です。動作の基本なのであって、実際に多く使われているのは、D-FF、T-FF、ならびに、その応用製品です。フリップフロップの次に作られたフリップフロップです。歴史的存在として、フリップフロップの解説で、詳しく説明されていたりしますが、現在では、使われていません。製品にはありませんが、カウンタやレジスタなどの、フリップフロップ応用製品の要素として、広く使われています。