クロック ゲーティング チェック (オン) の理解とアプリケーションの設計

著者の古い記事「クロック ゲーティングの浅い見解」
では、ゲート クロックを処理するツールの方法と、ゲート クロックによってもたらされる関連する利点と面積コストについて説明しました。また、クロック ゲーティング チェック (クロック ゲーティング チェック) には、STA にも対応する処理方法がありますので、この記事を通じて、関連する知識を一緒に学び、クロック ネットワークの設計提案にまで広げていきましょう。 、アイサーGO!

ゲートクロックの分類

さまざまなゲート方法に応じて、ゲート クロックは通常、次の基本カテゴリに分類できます。

アクティブ ハイ (アクティブ ハイ) ゲート クロック

通常、AND ゲート (and) または NAND ゲート (nand) で実装されます。
ここに画像の説明を挿入
イネーブル信号が High の場合、クロックを解放できます。nand の場合、出力クロックは反転クロック波形になります。
ここに画像の説明を挿入

アクティブ ロー (アクティブ ハイ) ゲート クロック

通常、AND ゲート (and) または NAND ゲート (nand) を使用して実装されます。

ここに画像の説明を挿入
イネーブル信号が Low の場合、クロックを解放できます。Nor の場合、出力クロックは反転クロック波形になります。上記の状況に加えて、より
ここに画像の説明を挿入
複雑なクロック ゲーティング構造が使用される場合もあります。ここでは、波形は次のようになります。複雑

XOR 構造のクロック ゲーティング

ここに画像の説明を挿入
ここに画像の説明を挿入
イネーブル信号が 1 の場合、出力は入力の逆方向、それ以外の場合は順方向になります。

MUX 構造のクロック ゲーティング

ここに画像の説明を挿入
ここに画像の説明を挿入

クロック伝播の単調性 (unate)

静的タイミング解析の基本原理は信号伝播です。明確な単調性を持った伝播のために、正しい STA 環境を構築するための基礎となります。データ パスは通常、単調性 (unate) に敏感ではありませんが、クロックは通常、エッジに敏感な信号であるため、クロック ネットワークの単調性 性別は、STA タイミング解析の形で特に重要です。STA ツールは、明らかな単調性を備えたクロック ネットワーク上でのみ正しいタイミング解析を行うことができます。そうでない場合は、実際のチップで STA との不一致が発生する可能性が高くなります。これはクロック ネットワークの設計にとって非常に重要です。
上記のいくつかのゲート構造を通じて、単調クロック (unate) の観点から、次の表のように要約できます。

ゲート構造 単調性 (ユネート) カテゴリー
ポジティブユネート アクティブハイ
NAND ネガティブユネート アクティブハイ
また ポジティブユネート アクティブロー
または ネガティブユネート アクティブロー
XOR ポジティブユネート ゲート == 0 の場合
XOR ネガティブユネート ゲート時 == 1
MUX クロック 1 と正の一致 選択 == 0 の場合
MUX クロック 2 との正の一致 == 1 を選択した場合

したがって、STA が正しい分析を実行できるように、クロック ネットワーク上のすべてのゲート クロックについて、ユーザーは単調性を指定する必要があります。

クロックゲーティングチェック (クロックゲーティングチェック)

上記の説明から、静的タイミング解析における Always ネットワークの重要性がわかるため、クロック ネットワークの伝播経路上のゲート クロックの検査が特に重要です。同様に、クロック ゲーティング構造に基づいて、アクティブ ハイおよびアクティブ ローのゲーティング クロックには STA ツールを使用します。対応するクロック ゲーティング チェックは自動的に推測 (推論) でき、ユーザーはここでのクロック ゲーティング構造が STA によってカバーされることを理解できます。したがって、ユーザーは、クロック パスが STA によって確実にカバーされるように、STA の自動控除の原理を理解する必要があります。

意味

ゲートクロックを判定するツールの基本的な基準は次のとおりです。

  • 入力クロックから出力までの組み合わせロジックの伝播パスが必要です。従来の AND または NOT、または従来のラッチベースのクロック ゲーティング構造 (下図を参照) ですが、レジスタの分周構造はクロック ゲーティングではありません。
    ここに画像の説明を挿入
  • 入力ポートにはクロックが含まれている必要がありますが、入力から出力への伝播にはデータ パス (ゲート信号) が含まれている必要があります。
    例 1: 組み合わせロジックの入力はクロックであり、STA はクロックを出力に自動的に伝播するため、出力には 4 つのクロックが表示されます。このような構造は、ユーザーが使用する必要があるときにクロック ゲーティング構造として判断できません。 、クロック 1 が有効な場合、クロック 2/3/4 は定数 1 を維持する必要があります。そうしないと、出力クロックが混乱します。

ここに画像の説明を挿入
例 2: 入力はすべてクロックですが、ユーザーは次のコマンドを使用して出力に生成クロックを作成します。

create_generated_clock -name clock1_gen_clk -divide_by 1 \
-source clock1 [get_pins U1/Z]

この AND はクロック 1 によってのみ伝播されるため、STA はこれがクロック ゲーティング構造であり、クロック 1 からクロック 2 へのゲーティング チェックが行われ、クロック 2 信号がゲーティング信号 (イネーブル) であると自動的に推測します。

ここに画像の説明を挿入

例 3: 複雑なゲーティング クロックは自動的に推定できない
ここでの UMUX0 はクロック ゲーティング構造を満たしています
ここに画像の説明を挿入
が、MUX 構造は非単調伝播 (none-unate) であるため、このようなクロック ゲーティング構造を自動的に推定することはできません (自動推定)。 infer )、クロック伝播パスにリスクがあるため、ツールは次のプロンプトを表示します。さらにユーザーのアクションが必要です
ここに画像の説明を挿入

チャレンジ

ゲート クロックはクロックの伝播パスに OR ロジックを使用して挿入され、設計者は特定のロジック制御を通じてクロックの動作を実現します。

  • クロック分周: 低周波数のゲート信号と高周波数のクロックを使用し、AND 演算を実行します。clock_slow = clock_fast * slow_enable
  • クロック切り替え: 半静的信号を使用 (ほぼ常にオフ制御):block_clock = sys_clock * block_enable
  • クロック選択: 半静的信号 (モード制御に近い) を使用します。clock_out =(sel==1'b0)?func_clock : scan_clock
    または、ラッチ/レジスタ構造を使用して手振れ防止クロック スイッチングを設計します。ただし、ゲート信号の生成がどれほど複雑であっても、それが準拠している限り、適度なゲーティングの構造、最後のクロック ゲーティング チェックのポイントは変わりません。これは、STA にとってよりフレンドリーで、プロジェクトの品質を促進し、プロジェクトの収束を加速できる、優れたクロック生成 (クロック生成) 設計です。経験豊富な設計エンジニアでもあります。
    クロックは周期的に変化します。組み合わせ論理演算がゲーティング ロジックで実行される場合、通常、クロック波形の伝播 (クロック クロップまたはクロック スワロー) の問題が発生します。
    ここに画像の説明を挿入

各段に現れるイネーブル信号によりクロックの波形が歪む

現象 影響
周波数が遅くなる ネガティブラッチのタイミングに影響を与える
周波数が速くなります セットアップへの影響
パルス幅を広げた ネガティブラッチのタイミングに影響を与える
パルス幅の狭まり min-width-pulseに影響します

注: STA タイミング レポートでは、ユーザーは上記の問題の影響を確認できませんが、実際のチップでは、この影響は実際にありますしたがって、クロック ゲーティングのロジックはクロック ゲーティング チェックでカバーする必要があり、慎重に修復する必要があります。ツールで自動的に推測できないクロック ゲーティングのポイントについては、ユーザーが焦点を当てて解決策を提示する必要があります。最終チップには、STA と完全に一致しないタイミングの問題が発生します (STA では特定できません)。
続く… (続く…)

この処理の後、LVS std-cell のポートの不一致は完全に解決され、
v2lvs をよく学習し、ソース ネットリストにパッチを適用するために Perl を必要としなくなりました~~~~

【黒板をたたいて要点を描く】

ここに画像の説明を挿入
クロック ゲーティング チェックを理解することは、クロック ゲーティングを理解することと同じくらい重要であり、クロック ツリー上のアクションには特別な注意が必要です

参考文献

J. Bhasker および Rakesh Chadhaナノメートル設計のための静的タイミング解析
Synopsys PrimeTime® ユーザー ガイド

おすすめ

転載: blog.csdn.net/i_chip_backend/article/details/130999301