
VLSI設計および電子工学におけるタイミングクロージャとは、クロック同期回路においてすべての信号がタイミング要件を満たすことを保証するための反復的な設計プロセスである。その目的は、目標クロック周波数において、正確なデータ転送と信頼性の高い動作を保証することである。
同期回路は、メモリを持たずに論理関数を処理する組み合わせ論理ゲート(NOT、、、、など)と、データを格納できクロック信号によってトリガーされる順序要素(フリップフロップ、ラッチ、レジスタAND)の 2 種類の基本要素で構成されています。タイミングクロージャにより、レイアウトの改善とネットリストの再構築[ 1 ]によって回路を調整し、パス遅延を変更して、論理ゲートの出力がクロック信号に対して正しい時間に到着するようにすることができます。ORNANDNORXOR
集積回路(IC)の設計はますます複雑化しており、現代のチップには数十億個のトランジスタと高度に相互接続されたロジックが搭載されている。設計におけるすべての経路はタイミング制約を満たさなければならず、そうでなければ機能的な欠陥、予期せぬ結果、あるいはシステムレベルの障害が発生する可能性がある。
タイミングクロージャは、単なる最終検証ステップではなく、反復的かつ包括的な最適化プロセスです。ゲートの論理構造の調整や配置・配線の改良など、設計の論理構造と物理的実装の両方を継続的に改善することで、チップ全体にわたるすべてのタイミング制約を確実に満たすことを目的としています。
クロック駆動デジタル回路は、正しく動作するために一定の制約を満たす必要があります。例えば、Dフリップフロップの出力から組み合わせ論理ゲートを経て次のDフリップフロップの入力に至る各経路における時間遅延は、2つのフリップフロップへの同期クロックパルスの間隔(時間周期)以下でなければなりません。この制約が満たされず、各要素を通過する際の遅延がクロック周期よりも長くなると、回路は正しく動作しません。したがって、タイミングの不具合を解消するために回路を修正することは、論理設計エンジニアの重要な業務の一つです。
クリティカルパスとは、設計内の任意の2つの連続する要素間の最長パス(遅延の観点から)を指します。これは、すべてのレジスタ間パスの最大遅延を定義し、可能な最小クロックサイクル時間を設定することで、チップの最大速度を制限します。単純な設計では、ユーザーは要素間のすべてのパス遅延を手動で計算し、要件を満たすまで調整できます。しかし、数千から数百万の要素を持つ現代の設計では、これは非現実的であり、自動化が必要です。

IC設計の過程では、ICレイアウトは幾何学的制約とタイミング制約を満たす必要があります。幾何学的制約とは、セルの正しい配置や最小配線間隔など、アセンブリプロセスによって課される物理的な設計規則とルールを指します。タイミング制約とは、すべての信号パスが満たすべきタイミング要件を指します。通常、クロックエッジでフリップフロップから信号が出力される前に、入力信号はセットアップ時間と呼ばれる期間、安定した状態を維持する必要があります。[ 1 ]電磁信号がクロックエッジで次のフリップフロップに到達した後、信号はホールド時間と呼ばれる一定時間、記憶素子内で安定した状態を維持する必要があります。これにより、2種類のタイミング制約が生じます。
設定制約(長距離経路制約):
これらの制約は、フリップフロップのクロックエッジの前の時間長を規定するものであり、データが論理パスを伝搬し、次のクロックエッジまでに次のフリップフロップに到達するのに十分な時間を確保するために、データ入力信号が一定に保たれる必要があります。パス遅延が長すぎると、セットアップ時間の制約に違反し、問題のあるデータがラッチされる可能性があります。
制約を保持する(最短経路制約):
これらの制約は、フリップフロップのクロックエッジ後、データ入力信号が安定した状態を維持すべき時間長を規定するものです。ホールド制約に違反すると、準安定状態や望ましくない動作が発生する可能性があります。
保持時間制約:
セットアップ時間の制約:
どこ:
タイミングクロージャは、すべての信号が必要な時間までに目的地に到達し、ホールド時間がすべて満たされ、回路が確実に動作することを保証するための重要なステップです。設計者は、レジスタ転送レベル(RTL) の抽象化と、回路を記述するVerilogまたはVHDLコードから始めます。これは、論理ゲートと接続の集合であるネットリストに変換され、ICの配置と配線を作成するか、FPGAハードウェアを構成するために使用されます。[ 4 ]
従来の IC と FPGA の両方において、ゲート遅延と配線遅延は大きく変動する可能性があります。信号が遅れて到着したり、早すぎて到着したりすると、設計のタイミングが失敗する可能性があります。設計者は、システムの性能目標を反映した正確で現実的なタイミング制約を、多くの場合Synopsys Design Constraint (SDC) 形式で定義することから始めます。[ 5 ]これらの制約には、クロック周期、入出力遅延、マルチサイクルパス、セットアップ/ホールド要件などが含まれる場合があります。設計内のロジックアーキテクチャとパス遅延に基づいて、これらの制約が実現可能かどうかを分析することが重要です。これらの制約は、すべての下流のタイミング分析および最適化プロセスをガイドします。
クロック同期回路には、主に以下の3つの遅延が存在します。
ゲート遅延とは、ゲートの入力の変化が出力に伝わるまでの時間の長さのことです。これは、入力の変化から出力の変化までの時間として計算されることが多いです。[ 6 ]
配線遅延は相互接続遅延とも呼ばれ、同期回路内の回路要素間の金属線(相互接続)を介してデータ信号が伝搬するのにかかる時間を意味します。遅延は主に配線の抵抗と容量によって引き起こされます。[ 7 ]
クロックスキューとは、同期回路の異なる箇所において、同じクロック信号が到達する時間の差のことです。クロック信号が発振器やクロックジェネレータなどの発生源から回路内の様々な経路を伝搬する際、伝搬遅延が発生し、クロックスキューが生じます。下のグラフは、チップ上の点 i と点 j の間のクロックスキューを示しています。位置 i と j は変化する可能性があります。この図はクロック スキューの概念を示しています。クロック スキューとは、チップ上の異なるフリップフロップへのクロック到着時間の差を指します。理想的には、すべてのクロック信号は同時に目的地に到達するはずですが、配線、負荷、物理的な配置のばらつきにより、これはめったに実現されません。

論理合成と制約解析の後、設計は静的タイミング解析(STA) [ 3 ]を受けます。これは、回路が定義されたタイミング制約を満たしているかどうかを評価するために明示的に設計されたプロセスです。これらのツール (Cadence Tempus、Synopsys PrimeTime、Intel Timing Analyzer など) は、シミュレーションを必要とせずに設計内のすべてのタイミング パスを評価できるため、スケーラブルで網羅的な解析に最適です。STA では、組み合わせ回路は、ノードがゲートを表し、リンクが相互接続を表す有向非巡回グラフ(DAG) として表現できます。両方には、対応する遅延が注釈として付けられます。通常、最初はクロック スキューは無視できると想定されます。これは、配置、配線、クロック ツリー合成の後に再検討されます。
このプロセス中に、STAエンジンは以下を計算します。


特にスラックに関しては、STAはすべてのゲートが遷移するという最悪のシナリオを想定し、各ノードのスラックを計算します。
どこ:
RATは要求到着時間であり、要求されたタイミング内に遷移できる最終時刻を意味します。AATは実際の到着時間であり、実際の遷移の最終時刻を意味し、各ノードの出力で定義されます。いずれかの入力で負のスラックがある場合は、回路がタイミングを満たしていないことを意味し、すべての入力で正のスラックがある場合は、回路がタイミングを満たしていることを意味します。
STAレポートが生成されると、エンジニアはタイミング最適化技術や設計自動化ツールを用いてレポートを分析し、注意が必要なクリティカルパスや障害発生パスを特定します。また、配置や配線を調整することで物理的なレイアウトを最適化します。このプロセスは、すべてのタイミング制約が満たされるまで繰り返されます。
論理合成と初期タイミング最適化によって、チップの物理レイアウトがマッピングされる。配置、クロックツリー合成、ルーティングといった重要なステップによって物理設計が変更され、タイミング動作が大幅に変化し、パス遅延が削減され、回路内のタイミングが向上する。[ 9 ]
EDAツールは、IC上の各標準セル(論理ゲート、フリップフロップなど)に物理的な位置を割り当てます。配置によって、相互接続されたセルを近接して配置することで、パス遅延を低減できます。この段階では、配線はあくまで概算です。
バランスのとれたクロック分配ネットワークは、クロック信号をすべての順序回路(フリップフロップ)に均等かつ同期的に供給するように構築されます。CTSは、クロック遅延(クロック信号がすべての順序回路に供給される時間)を制御しながら、クロックスキュー(クロック信号の到着時間の差)を最小限に抑えるようにします。また、クロックネットワークが設計上の制約を満たすように、最大遷移時間と最大許容容量を満たすようにもします。クロックスキューは、ホールド時間とセットアップ時間に影響します。クロックスキューは通常、ローカルクロックスキューとグローバルクロックスキューで構成されます。
一般的に、CTSには3つの種類があります。
2.1. シングルポイントCTS

シングルポイントクロックツリーは、単一のクロックソースから始まり、ツリー構造内のすべてのシーケンシャル要素にクロック信号を供給します。この方式は実装が容易で、低周波またはマルチクロック設計に適しています。しかし、パスの非対称性によってクロックスキューが大きくなる可能性があるため、高周波または大規模な設計には適していません。
2.2.クロックメッシュ

クロックメッシュは、クロック信号をグリッド状の構造を通して分配することで、クロックバランスを向上させ、スキューを低減します。これは高周波設計に適しています。しかし、クロックメッシュを構築するには、消費電力と面積が増加し、設計の複雑さも増します。
2.3. マルチソースCTS

マルチソースクロックツリーは、シングルポイントツリーとクロックメッシュの利点を統合したものです。この設計は複数のコンポーネントに分割され、各コンポーネントは独自のローカルクロックソースを持ちます。このクロックツリーは、消費電力と面積の消費を削減しながら低スキューを実現するため、大規模設計に適しています。[ 9 ]

配置とクロックツリー合成の後、設計自動化ツールはセルを物理的に接続するためのワイヤを作成します。物理的な配線によって実際の寄生抵抗と寄生容量の影響が生じ、信号遅延に影響を与える可能性があります。これらの寄生要素を組み込むことで、より正確なタイミング解析が可能になります。配線は、余裕が最も少ないネットに最も直接的(したがって最速)な経路を与えることで、タイミングクロージャに役立ちます。
回路性能を向上させる一般的な方法の1つは、クリティカルパスの組み合わせパスの間にレジスタを挿入するなど、タイミング最適化技術を使用することです。これにより性能は向上する可能性がありますが、回路の総レイテンシ(入力から出力パスまでのレジスタの最大数)が増加します。[ 12 ]
実際のタイミング最適化技術には、通常、一連のタイミング最適化を使用して負のスラックを解消できる物理合成が含まれます。物理合成には、タイミングバジェットの作成とタイミング補正の実装が含まれます。通常、タイミングバジェットには、配置、配線段階、およびタイミング補正操作中にパスまたはネットに沿って目標遅延を割り当てることが含まれます。タイミング補正には、次のものが含まれます。[ 1 ]

ゲートのサイズ設定:
ゲートサイジングとは、ロジックゲートを異なる駆動能力を持つ同等のゲートに置き換えることです。ゲートが大きいほど、より大きな負荷をより高速に駆動できるため、クリティカルパスにおける遅延を低減できます。この手法は、速度、面積、消費電力のバランスを取るものです。
論理ゲートには、a、b、cの 3 つのサイズがあるとします。ゲートのサイズが大きいほど、出力抵抗は小さくなります。RC遅延近似によると、ここで、tは伝搬遅延を表す。は出力抵抗を表し、これは負荷容量を表します。したがって、負荷容量が大きい場合、より大きなロジックゲートはより大きな負荷容量を容易に駆動できます。。
しかし、ゲートサイズを大きくすると、入力側の容量が増加し、挿入遅延が長くなり、消費電力も増加するという欠点が生じるのが一般的です。そのため、負荷容量が小さい場合は、タイミング制約を満たす限り、より小型のロジックゲートが好まれます。

バッファ挿入:
長い配線を遮断し、特にファンアウトが大きい場合や物理的に離れた接続の場合に、 RC(抵抗-容量)遅延を低減するために使用されます。バッファは、パスタイミングを調整してホールド違反を修正するのにも役立ちます。バッファを挿入しても、論理関数は変更されません。これは通常、偶数個の反転バッファを挿入するか、2つのインバータを直列に接続した非反転バッファを使用することで実現されます。
改善点:
1:回路の速度を上げる、または遅延要素として機能する
バッファは、長い配線や大きな負荷容量を通して信号を容易に伝送することで、経路遅延を低減できます。重要な経路では、バッファを挿入することで抵抗を低減し、信号伝搬を改善できます。また、バッファはタイミング調整のために意図的に一定の遅延を導入するためにも使用できます。
立ち上がり/立ち下がり時間が遅い信号は、スイッチングの不安定性やタイミング違反を引き起こす可能性があります。バッファは信号のエッジをシャープにし、遷移の傾斜を改善することで、より安定したデジタル動作を実現します。これにより、グリッチ、短絡電流、誤動作を防ぐことができます。
論理ゲートが他の多くのゲートや長い配線を駆動する場合、総負荷容量は大きくなります。この大きな負荷はゲートの出力応答を遅くします。ゲートとその大きな負荷の間にバッファを挿入することで負荷を軽減し、元のゲートが負荷全体を直接駆動するのではなく、バッファのみを駆動できるようになります。
しかし、欠点としては、使用面積の増加や消費電力の増加などが挙げられる。
ネットリストの再構築:
ネットリスト再構築とは、既存のゲートレベル回路の論理機能を変更せずに構造を修正するプロセスを指します。既存のゲートの接続方法や表現方法を再編成または変換することで、タイミング、面積、または消費電力の最適化に重点を置きます。変換には以下が含まれます。

クローニング:ゲートを複製することで、負荷容量を低減したり、複数の経路間で負荷を分散させたりすること。
入出力ツリーの再設計:信号の配信方法や受信方法を変更することで、タイミングを改善したり、混雑を軽減したりする。
可換ピンの交換:可換ゲート(AND、ORなど)の入力を並べ替えて、クリティカルパスを最適化し、接続を変更します。[ 13 ]
ゲート分解:複雑なゲートをより単純な形式に分解すること。例えば、CMOSインバータを使用して論理ゲートを単純化し、パス遅延を削減することで、AND-OR論理をNAND-NAND論理に変換する。[ 14 ]
ブール論理による再構築:ブール代数の規則を適用して論理方程式を簡略化または再表現することで、多くの場合、経路遅延を最小限に抑えたり、実装規模を縮小したりできます。
ゲートの小型化、統合、あるいは以前に拡張された論理構造の簡素化といった操作も、全体的な設計指標(面積や消費電力など)にメリットがある場合は実行できます。
これらの技術は、物理合成ツールや配置配線ツール(Synopsys ICコンパイラ、Cadence Innovus、Intel Quartusなど)によって自動的に適用されることが多いが、設計者が制約や最適化指示によって手動で制御することもできる。

反復検証および妥当性確認においてSTAを活用する:
配線手順が完了したら、配線長、容量、抵抗などの設計の物理的な詳細を調べて決定します。タイミング最適化の機能の完全性を保証し、タイミング違反と遅延を特定し、最近のタイミングクロージャと最適化の有効性を検証するために、STAなどの設計の徹底的な機能検証と妥当性確認を実施します。また、設計者はシミュレーション、検証、ハードウェアテストを使用して、設計の機能とパフォーマンスを検証できます。回路がタイミングを満たさない場合は、回路全体が最初から繰り返しSTAプロセスに配置されます。[ 3 ]
導入後のタイミング分析:
FPGA上での設計が完了すると、実装後のタイミング解析によって、すべてのタイミング目標が達成されていることが検証されます。この解析は、タイミングクロージャの最終検証として機能し、タイミングクロージャプロセスの成功を確認するとともに、実装固有の要因も考慮に入れます。
タイミング最適化技術など、多くの論理回路の変更は、設計者が作成したタイミング制約指示に従って、ユーザーのEDAツールによって自動的に処理されます。設計がフローの終わりに達し、すべてのタイミング要件が満たされたとき、その設計はタイミングクロージャを達成したと言われます。[ 16 ]
2026年現在合成、配置、配線などの主要な設計ステップはすべて、設計がタイミング要件を適切に満たすためにタイミングを考慮する必要がありますが、[ 17 ]古い技術では、ロジック合成EDAツールのみがタイミングを考慮していました。
タイミング認識は、論理合成に使用される確立された原理から始まり、これらのすべてのステップに拡張されましたが、タイミングクロージャプロセスの論理フェーズと物理フェーズは、依然として異なる設計チームと異なるEDAツールによって処理されます。SynopsysのDesign Compiler、Cadence Design SystemsのEncounter RTL Compiler、Magma Design AutomationのBlastCreateは、論理合成ツールの例です。SynopsysのIC Compiler、 Cadence Design SystemsのSoC Encounter、 Magma Design AutomationのBlast Fusionは、タイミング認識配置、クロックツリー合成、ルーティングが可能なツールの例であり、物理タイミングクロージャに使用されます。
FPGAツールの中には、PlunifyのInTimeなどの機械学習[ 18 ]プログラムを利用して、回路がタイミングを満たすことを保証する最適なFPGA合成、マッピング、配置、配線ツール構成パラメータのセットを見つけるものがあります。タイミング要件は、EDAツールが処理できるように、静的タイミング制約に変換する必要があります。
近年、タイミングクロージャプロセスは、プロセス最適化のために、論理合成と物理実装を統一プラットフォームに統合する方向に徐々に進んでいます。SynopsysのFusion CompilerやCadenceのGenus-Innovusフローなどのツールは、論理合成、配置、クロックツリー合成、ルーティングを単一の環境で組み合わせたエンドツーエンドソリューションを提供します。さらに、OpenROADやOpenSTAなどのオープンソースツールチェーンは、タイミングを考慮した設計クロージャワークフローをサポートできることから、学術界やスタートアップのプロトタイピングにおいて注目を集めています。これらの最新ツールは、性能、面積、消費電力(PPA)間のトレードオフを自動化し、RTLからGDSIIへの設計フローにおけるタイミング違反の早期検出と解決を可能にすることで、ナノメートルスケール回路の複雑化に対応するように設計されています。