「クロックをゲートする」とはどういう意味ですか?


11

講義ノートでは、「クロックをゲートしないでください」と読み続けています。インターネットで検索しようとしましたが、このフレーズの正確な意味を見つけることができません。



3
@ user129048このサイトには、この主題に関する他の質問があります。つまり、クロックをゲートすると、遅延が発生します。ほとんどのFPGAには専用のクロックラインがあり、クロックのゲーティングではこれらのラインは使用されません。
電圧スパイク

1
ゲートを使用して犬/馬などを出入りさせるのと同様に、ゲートが開いている場合は通過できます。クロックとリセットは、他の信号と同様にロジックのモジュールに渡される信号です。そのクロックを通過させずに、継続することを許可またはブロックできます。反対側のロジックがその信号を入力として使用しないようにします。
old_timer

回答:


19

「クロックのゲート」とは、クロックラインに論理ゲートを配置して、オンまたはオフに切り替えることを意味します。

回路図

この回路のシミュレーションCircuitLabを使用して作成された回路

上記の図は、クロックのゲートに使用されるANDおよびORを示しています。1つはクロックを強制的に低くし、もう1つは強制的に高くします。

「短すぎる」高または低のクロックパルス(「ラントパルス」)を防ぐには、次のことを確認する必要があります。

  • ANDゲートの制御信号は、クロックが低い場合にのみ変化するはずです。
  • ORゲートの制御信号は、クロックが高いときのみ変化するはずです。

ゲーテッドクロックは、クロックが停止している間ロジックが「静か」のままであるため、CMOSの電力を削減するのに非常に役立ちます。最新の合成ツールには、クロックゲーティングを自動的に挿入する特別なオプションがあることがわかります。

回路図

この回路をシミュレートする

上記は、ゲートクロックを安全に生成する2つの回路です。回路は、制御信号がレジスタから出力されるためのわずかな遅延(クロックからQ)があるという事実に依存しています。したがって、クロックの極性が既知の場合、制御信号はゲートで変化します。


3
とてもいい答えです。ゲーテッドクロックの電力上の利点をさらに詳しく説明します。ICのクロックネットワーク、特にマイクロプロセッサのような複雑なもののクロックネットワークは、非常に広大です。クロックネットワークの切り替えだけで総消費電力の30%を占める可能性があることが示されています(申し訳ありませんが、手元に基準がありません)。これは、それによってクロックされる実際のロジックが何の関係もない場合でも消費されます。レジスタと出力はまったく変わりません。クロックをゲーティングすると、ネットワークの影響を受ける部分でクロックが完全に無効になるため、電力消費が大幅に削減されます。
ultimA

4
@Curd:OPが「クロックをゲートしない」と表示される場合、教授は「単一の論理ゲートのように文字通りクロックをゲートしない」ことを意味します。それは良いアドバイスです。しかし実際には、「クロックゲーティング」とは「クロックを無効にする」ことを意味します。また、正しく実行する方法を知っている限り(つまり、ロジックを使用しない限り)、電力上の理由でそうすることをお勧めしますゲート、ただし、クロックラインのラントやグリッチを回避するのに十分なロジックを備えています)。
ultimA

8
教授がこれを言う理由をここで推測する必要があります。クロックゲーティングは、ここでは単純に示していますが、多くの落とし穴があります。したがって、それは非常に眉をひそめています。ASIC設計(私がどこから来たのか)では、信頼されていると想定されているツール、または彼らが何をしているかを知っていると信頼されていると想定される主要なシニアエンジニアによってのみ行われます。
オールドファート

4
@oldfartそれは説明の可能性が非常に高いです。OPは、FPGAクラスであるその可能性は低い場合は特に、彼らは必要があり、これまでクロックをゲートします。
mbrig

3
@MITURAJ、クロックゲーティングは、デザインエントリで最も確実に実行できます。「通常」行われることではなく、何を行うべきかを説明していると思います。FPGAの自由により、だれでも悪いアイデアを実装できます。悪いデザインがたくさんあります。
トニー

6

この文脈でのゲーティングとは、論理ゲートを介して信号を渡し、それを制御することを意味します。

2入力ANDゲートの一方の入力を介して渡すと、もう一方の入力の制御ビットがANDゲート出力を強制的にローにしたり、信号を通過させたり、通過させたりすることができます。同様の機能は、信号を強制的にHighにするか通過させるORゲートによって実行できます。

したがって、クロックをゲーティングすることは、クロックを強制的にロー/ハイにするか、通過させることを意味します。

クロックをゲーティングしないことは良いアドバイスです。それは、起こりうる結果を注意深く理解して慎重に行うことができます。これには、クロック信号をゲートクロックドメインに取り込む際の準安定性や、タイミング駆動の合成/レイアウトからの悪い結果が含まれます。

しかし、クロックをゲーティングするのと同じ制御を回路上で達成する他の方法は、ほとんどすべてのリスクとペナルティなしであります。


6

つまり
、ANDまたはORゲート(またはより複雑な組み合わせ用語)を使用して、別のクロック信号からクロック信号を派生させないでください。

この規則の理由は、組み合わせ項の複数の入力間の競合状態により、1つのクロックエッジのみが予想される複数のクロックエッジ(グリッチ)が発生する可能性があるためです。


2
ダウンボッターが、この答えで間違っていると思うことを説明できればいいと思います。
カード

4

高速の場合、クロックに伝播遅延を追加する論理ゲートを追加しないことを意味します。これは、元のクロックを使用してデータを操作する際に競合状態を引き起こす可能性があるためです。


クロックゲーティングという用語がこの方法で使用されることは聞いたことがありませんが、そのソースはありますか?
BeB00

@ BeB00:「クロックゲーティンググリッチフリー」でGoogleを検索するだけで、たくさん見つけることができます
カード


これは、以前に使用された用語を聞いていなかった私の最初の考えでしたが、バッファリングが必要になる場合があります。スルーおよびエッジの特性は、単純なバッファリングで変化する可能性があるため、いずれにしても考慮する必要があります。
-KalleMP
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.