(57)【特許請求の範囲】
【請求項１】
オーバーラップする位相およびほぼ５０％のデューティ・サイクルを有する複数のクロック信号を発生させる回路と；
直列に接続された複数のクロック同期式プリチャージ論理ゲートと；を含んでおり、
オーバーラップする前記複数のクロック信号は、その２以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっており、
前記複数のクロック信号のそれぞれは、次の位相のクロック信号とのオーバーラップ量にほぼ等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
直列接続された前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、個々のクロック信号に個別につながっており、そのクロック信号のクロックの位相ごとのゲート遅延を有しており、前記前の位相のクロック信号は、直列配列における前のクロック同期式プリチャージ論理ゲートにつながり、前記次の位相のクロック信号は、直列配列における次のクロック同期式プリチャージ論理ゲートにつながっており、
また、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ入力を、前の位相のクロック信号につながる前のクロック同期式プリチャージ論理ゲートから受け取るようになっており、
さらに、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ出力を、次の位相のクロック信号につながる次のクロック同期式プリチャージ論理ゲートに渡すようになっており、
前記複数のクロック同期式プリチャージ論理ゲートは、付加的なバッファ、レジスタ、またはラッチ回路なしで、他のクロック同期式プリチャージ論理ゲートに接続していることを特徴とするロジックを同期させる集積回路。
【請求項２】
前記複数のクロック信号は、３つのクロック信号を含んでいることを特徴とする請求項１記載の集積回路。
【請求項３】
前記複数のクロック信号は、４つのクロック信号を含んでいることを特徴とする請求項１記載の集積回路。
【請求項４】
前記複数のクロック信号は、５つのクロック信号を含んでいることを特徴とする請求項１記載の集積回路。
【請求項５】
前記複数のクロック信号は、６つのクロック信号を含んでいることを特徴とする請求項１記載の集積回路。
【請求項６】
前記個々のクロック同期式プリチャージ論理ゲートは、フィードフォワード・ループまたはフィードバック・ループ内の別のプリチャージ論理回路であって、次の位相のクロック信号を用いるプリチャージ論理回路だけに伝達するようになっていることを特徴とする請求項１記載の集積回路。
【請求項７】
オーバーラップする位相およびほぼ５０％のデューティ・サイクルを有する複数のクロック信号を発生させる回路と；
直列に接続された複数のクロック同期式プリチャージ論理ゲートと；を含んでおり、
オーバーラップする前記複数のクロック信号は、その２以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっており、
前記複数のクロック信号のそれぞれは、次の位相のクロック信号とのオーバーラップ量に等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
直列接続された前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、個々のクロック信号に個別につながっており、そのクロック信号のクロックの位相ごとのゲート遅延を有しており、前記前の位相のクロック信号は、直列配列における前のクロック同期式プリチャージ論理ゲートにつながり、前記次の位相のクロック信号は、直列配列における次のクロック同期式プリチャージ論理ゲートにつながっており、
また、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ入力を、前の位相のクロック信号につながる前のクロック同期式プリチャージ論理ゲートから受け取るようになっており、
さらに、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ出力を、次の位相のクロック信号につながる次のクロック同期式プリチャージ論理ゲートに渡すようになっており、
前記複数のクロック同期式プリチャージ論理ゲートは、付加的なバッファ、レジスタ、またはラッチ回路なしで、他のクロック同期式プリチャージ論理ゲートに接続していることを特徴とするロジックの同期をとるためのシステム。
【請求項８】
前記複数のクロック信号は、３つのクロック信号を含んでいることを特徴とする請求項７記載のシステム。
【請求項９】
前記複数のクロック信号は、４つのクロック信号を含んでいることを特徴とする請求項７記載のシステム。
【請求項１０】
前記複数のクロック信号は、５つのクロック信号を含んでいることを特徴とする請求項７記載のシステム。
【請求項１１】
前記複数のクロック信号は、６つのクロック信号を含んでいることを特徴とする請求項７記載のシステム。
【請求項１２】
前記クロック同期式プリチャージ論理ゲートにおける個々の信号線のすべては、当該クロック同期式プリチャージ論理ゲート内で同数のデバイスを通っていることを特徴とする請求項７記載のシステム。
【請求項１３】
前記個々のクロック同期式プリチャージ論理ゲートは、フィードフォワード・ループまたはフィードバック・ループ内の別のプリチャージ論理回路であって、次の位相のクロック信号を用いるプリチャージ論理回路だけに伝達するようになっていることを特徴とする請求項７記載のシステム。
【請求項１４】
オーバーラップする位相およびほぼ５０％のデューティ・サイクルを有する複数のクロック信号を構築するとともに、
直列に接続された複数のクロック同期式プリチャージ論理ゲートを設けるようにし、
オーバーラップする前記複数のクロック信号は、その２以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっており、
前記複数のクロック信号のそれぞれは、次の位相のクロック信号とのオーバーラップ量に等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
直列接続された前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、個々のクロック信号に個別につながっており、そのクロック信号のクロックの位相ごとのゲート遅延を有しており、前記前の位相のクロック信号は、直列配列における前のクロック同期式プリチャージ論理ゲートにつながり、前記次の位相のクロック信号は、直列配列における次のクロック同期式プリチャージ論理ゲートにつながっており、
また、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ入力を、前の位相のクロック信号に接続する前のクロック同期式プリチャージ論理ゲートから受け取るようになっており、
さらに、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ出力を、次の位相のクロック信号に接続する次のクロック同期式プリチャージ論理ゲートに渡すようになっており、
前記複数のクロック同期式プリチャージ論理ゲートは、付加的なバッファ、レジスタ、またはラッチ回路なしで、他のクロック同期式プリチャージ論理ゲートに接続していることを特徴とするロジックを同期させる集積回路を提供する方法。
【請求項１５】
前記複数のクロック信号は、３つのクロック信号を含んでいることを特徴とする請求項１４記載の方法。
【請求項１６】
前記複数のクロック信号は、４つのクロック信号を含んでいることを特徴とする請求項１４記載の方法。
【請求項１７】
前記複数のクロック信号は、５つのクロック信号を含んでいることを特徴とする請求項１４記載の方法。
【請求項１８】
前記複数のクロック信号は、６つのクロック信号を含んでいることを特徴とする請求項１４記載の方法。
【請求項１９】
前記個々のクロック同期式プリチャージ論理ゲートは、フィードフォワード・ループまたはフィードバック・ループ内の別のプリチャージ論理回路であって、次の位相のクロック信号を用いるプリチャージ論理回路だけに伝達するようになっていることを特徴とする請求項１４記載の方法。
【請求項２０】
オーバーラップする位相およびほぼ５０％のデューティ・サイクルを有する複数のクロック信号を生成するとともに、
直列に接続された複数のクロック同期式プリチャージ論理ゲートを同期させるようにし、
オーバーラップする前記複数のクロック信号は、その２以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっており、
前記複数のクロック信号のそれぞれは、次の位相のクロック信号とのオーバーラップ量に等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
直列接続された前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、個々のクロック信号に個別につながっており、そのクロック信号のクロックの位相ごとのゲート遅延を有しており、前記前の位相のクロック信号は、直列配列における前のクロック同期式プリチャージ論理ゲートにつながり、前記次の位相のクロック信号は、直列配列における次のクロック同期式プリチャージ論理ゲートにつながっており、
また、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ入力を、前の位相のクロック信号につながる前のクロック同期式プリチャージ論理ゲートから受け取るようになっており、
さらに、前記複数のクロック同期式プリチャージ論理ゲートのそれぞれは、そのデータ出力を、次の位相のクロック信号につながる次のクロック同期式プリチャージ論理ゲートに渡すようになっており、
前記複数のクロック同期式プリチャージ論理ゲートは、付加的なバッファ、レジスタ、またはラッチ回路なしで、他のクロック同期式プリチャージ論理ゲートに接続していることを特徴とする集積回路においてロジックを同期させる方法。
【請求項２１】
前記複数のクロック信号は、３つのクロック信号を含んでいることを特徴とする請求項２０記載の方法。
【請求項２２】
前記複数のクロック信号は、４つのクロック信号を含んでいることを特徴とする請求項２０記載の方法。
【請求項２３】
前記複数のクロック信号は、５つのクロック信号を含んでいることを特徴とする請求項２０記載の方法。
【請求項２４】
前記複数のクロック信号は、６つのクロック信号を含んでいることを特徴とする請求項２０記載の方法。
【請求項２５】
前記個々のクロック同期式プリチャージ論理ゲートは、フィードフォワード・ループまたはフィードバック・ループ内の別のプリチャージ論理回路であって、次の位相のクロック信号を用いるプリチャージ論理回路だけに伝達するようになっていることを特徴とする請求項２０記載の方法。
【請求項２６】
関連するクロック・ドメイン・エリアにわたって低スキューな方法でマスタ・グローバル・クロック信号を分散されるようになっており、前記マスタ・グローバル・クロック信号を生成する集積回路のマスタ・グローバル・クロック発生回路と、
前記クロック・ドメイン・エリアにおいて複数のクロック信号をローカルに生成する、前記集積回路の複数のローカルクロック発生回路と、を含んでおり、
前記複数のローカルクロック発生回路は、前記マスタ・グローバル・クロック信号に関連付けされており、
前記複数のローカルクロック発生回路のそれぞれは、別個のローカル生成クロック信号を生成し、
当該複数のローカル生成クロック信号は、複数のクロック同期式プリチャージ論理ゲートにつながっており、この場合、各ローカル生成クロック信号は、それぞれ別個のクロック同期式プリチャージ論理ゲートにつながっており、
各ローカル生成クロック信号についてクロック位相ごとのゲート遅延を有するように、前記複数のローカルクロック発生回路は、スキューとジッタのトレランスを有するように調整され、
前記複数のローカルクロック発生回路の１または２以上が、前記マスタ・グローバル・クロック信号の立上がりエッジに関連付けされ、かつ、前記複数のローカルクロック発生回路の１または２以上が、前記マスタ・グローバル・クロック信号の下降エッジに関連付けされており、
前記複数のローカル生成クロック信号は、ほぼ５０％のデューティ・サイクルを有するとともに、オーバーラップする位相を有しており、個々のローカル生成クロック信号は、次の位相のローカル生成クロック信号とのオーバーラップ量にほぼ等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
さらに、前記複数のローカル生成クロック信号は、その２以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっている
ことを特徴とする集積回路における複数のクロック同期式プリチャージ論理ゲートを同期させるクロックシステム。
【請求項２７】
前記複数のローカル生成クロックは、３つのローカル生成クロックを含んでいることを特徴とする請求項２６記載のクロックシステム。
【請求項２８】
前記複数のローカル生成クロックは、４つのローカル生成クロックを含んでいることを特徴とする請求項２６記載のクロックシステム。
【請求項２９】
前記複数のローカル生成クロックは、５つのローカル生成クロックを含んでいることを特徴とする請求項２６記載のクロックシステム。
【請求項３０】
前記複数のローカル生成クロックは、６つのローカル生成クロックを含んでいることを特徴とする請求項２６記載のクロックシステム。
【請求項３１】
関連するクロック・ドメイン・エリアにわたって低スキューな方法で分散されるクロックであって、マスタ・グローバル・クロック信号を生成するマスタ・グローバル・クロックを構築するステップと、
前記クロック・ドメイン・エリアにおいてローカルに生成された複数のローカル生成クロックを、前記マスタ・グローバル・クロック信号に対し関連付けするステップと、を含んでおり、
前記複数のローカル生成クロックは、複数のローカル生成クロック信号を生成し、この場合、各ローカル生成クロックは、それぞれ別個のローカル生成クロック信号を生成するようになっており、
前記複数のローカル生成クロック信号は、複数のクロック同期式プリチャージ論理ゲートにつながっており、この場合、各ローカル生成クロック信号は、それぞれ別個のクロック同期式プリチャージ論理ゲートにつながっており、
各ローカル生成クロック信号についてクロック位相ごとのゲート遅延を有するように、前記複数のローカル生成クロックは、スキューとジッタのトレランスを有するように調整され、
前記複数のローカル生成クロックの１または２以上が、前記マスタ・グローバル・クロック信号の立上がりエッジに関連付けされ、かつ、前記複数のローカル生成クロックの１または２以上が、前記マスタ・グローバル・クロック信号の下降エッジに関連付けされており、
前記複数のローカル生成クロック信号は、ほぼ５０％のデューティ・サイクルを有するとともに、オーバーラップする位相を有しており、個々のローカル生成クロック信号は、次の位相のローカル生成クロック信号とのオーバーラップ量にほぼ等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
さらに、前記複数のローカル生成クロック信号は、その２以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっている
ことを特徴とする集積回路における複数のクロック同期式プリチャージ論理ゲート用のクロックを提供する方法。
【請求項３２】
前記複数のローカル生成クロックは、３つのローカル生成クロックを含んでいることを特徴とする請求項３１記載の方法。
【請求項３３】
前記複数のローカル生成クロックは、４つのローカル生成クロックを含んでいることを特徴とする請求項３１記載の方法。
【請求項３４】
前記複数のローカル生成クロックは、５つのローカル生成クロックを含んでいることを特徴とする請求項３１記載の方法。
【請求項３５】
前記複数のローカル生成クロックは、６つのローカル生成クロックを含んでいることを特徴とする請求項３１記載の方法。
【請求項３６】
マスタ・グローバル・クロック信号を生成するマスタ・グローバル・クロックを、関連するクロック・ドメイン・エリアにわたって低スキューな方法で分散するステップと、
前記クロック・ドメイン・エリアにおいて、ローカルに生成された複数のローカル生成クロックから複数のローカル生成クロック信号を生成するステップと、を含んでおり、
前記複数のローカル生成クロックは、前記マスタ・グローバル・クロック信号に関連付けされており、
前記複数のローカル生成クロックのそれぞれは、別個のローカル生成クロック信号を生成し、
当該複数のローカル生成クロック信号は、複数のクロック同期式プリチャージ論理ゲートにつながっており、この場合、各ローカル生成クロック信号は、それぞれ別個のクロック同期式プリチャージ論理ゲートにつながっており、
各ローカル生成クロック信号についてクロック位相ごとのゲート遅延を有するように、前記複数のローカル生成クロックは、スキューとジッタのトレランスを有するように調整され、
前記複数のローカル生成クロックの１または２以上が、前記マスタ・グローバル・クロック信号の立上がりエッジに関連付けされ、かつ、前記複数のローカル生成クロックの１または２以上が、前記マスタ・グローバル・クロック信号の下降エッジに関連付けされており、
前記複数のローカル生成クロック信号は、ほぼ５０％のデューティ・サイクルを有するとともに、オーバーラップする位相を有しており、個々のローカル生成クロック信号は、次の位相のローカル生成クロック信号とのオーバーラップ量にほぼ等しい分だけ、前の位相のクロック信号にオーバーラップするようになっており、
さらに、前記複数のローカル生成クロック信号は、その２以上が、いずれの時間においてもクロックサイクルの評価フェーズでオーバーラップするようになっている
ことを特徴とする集積回路における複数のクロック同期式プリチャージ論理ゲートを同期させる方法。
【請求項３７】
前記複数のローカル生成クロックは、３つのローカル生成クロックを含んでいることを特徴とする請求項３６記載の方法。
【請求項３８】
前記複数のローカル生成クロックは、４つのローカル生成クロックを含んでいることを特徴とする請求項３６記載の方法。
【請求項３９】
前記複数のローカル生成クロックは、５つのローカル生成クロックを含んでいることを特徴とする請求項３６記載の方法。
【請求項４０】
前記複数のローカル生成クロックは、６つのローカル生成クロックを含んでいることを特徴とする請求項３６記載の方法。
【請求項４１】
論理ゲートのクロックを停止または始動する際に、該論理ゲートのロジック状態を試験できるようにする装置であって、
オーバーラップする位相を有する複数のクロック信号を発生させる回路と；
直列に接続された複数のクロック同期式プリチャージ論理ゲートと；を含んでおり、
前記複数のプリチャージ論理ゲートはそれぞれ、前記複数のクロック信号に個別につながっており、
個々のプリチャージ論理ゲートは、ロジック状態のクリティカル・パスに信号保持器を含んでおり、
前記信号保持器は、前記複数のプリチャージ論理ゲートのそれぞれについての個別クロック信号を停止または始動する際に、当該複数のプリチャージ論理ゲートのロジック状態を前記複数のプリチャージ論理ゲートの外部にあるテスターによって試験できるようにすることを特徴とする装置。
【請求項４２】
前記信号保持器は、全信号保持器を含んでいることを特徴とする請求項４１記載の装置。
【請求項４３】
前記複数のクロック同期式プリチャージ論理ゲートのうちの最初のクロック同期式プリチャージ論理ゲートは、全信号保持器を含んでいることを特徴とする請求項４１記載の装置。
【請求項４４】
前記複数のクロック同期式プリチャージ論理ゲートのすべては、全信号保持器を含んでいることを特徴とする請求項４１記載の装置。
【請求項４５】
前記試験は、ＩＤＤＱテスティングによって行われることを特徴とする請求項４１記載の装置。
【請求項４６】
前記試験は、スキャン・テスティングによって行われることを特徴とする請求項４１記載の装置。
【請求項４７】
前記試験は、ハードウエア・エミュレーション・テスティングによって行われることを特徴とする請求項４１記載の装置。
【請求項４８】
論理ゲートのクロックを停止または始動する際に、該論理ゲートのロジック状態を試験できるようにするシステムであって、
オーバーラップする位相を有する複数のクロック信号を発生させる回路と；
直列に接続された複数のクロック同期式プリチャージ論理ゲートと；を含んでおり、
前記複数のプリチャージ論理ゲートはそれぞれ、前記複数のクロック信号に個別につながっており、
個々のプリチャージ論理ゲートは、ロジック状態のクリティカル・パスに信号保持器を含んでおり、
前記信号保持器は、前記複数のプリチャージ論理ゲートのそれぞれについての個別クロック信号を停止または始動する際に、当該複数のプリチャージ論理ゲートのロジック状態を前記複数のプリチャージ論理ゲートの外部にあるテスターによって試験できるようにすることを特徴とするシステム。
【請求項４９】
前記信号保持器は、全信号保持器を含んでいることを特徴とする請求項４８記載のシステム。
【請求項５０】
前記複数のクロック同期式プリチャージ論理ゲートのうちの最初のクロック同期式プリチャージ論理ゲートは、全信号保持器を含んでいることを特徴とする請求項４８記載のシステム。
【請求項５１】
前記複数のクロック同期式プリチャージ論理ゲートのすべては、全信号保持器を含んでいることを特徴とする請求項４８記載のシステム。
【請求項５２】
前記試験は、ＩＤＤＱテスティングによって行われることを特徴とする請求項４８記載のシステム。
【請求項５３】
前記試験は、スキャン・テスティングによって行われることを特徴とする請求項４８記載のシステム。
【請求項５４】
前記試験は、ハードウエア・エミュレーション・テスティングによって行われることを特徴とする請求項４８記載のシステム。
【請求項５５】
論理ゲートのクロックを停止または始動する際に該論理ゲートのロジック状態を試験できるようにする試験性能を有する集積回路を提供する方法であって、
オーバーラップする位相を有する複数のクロック信号を構築するステップと；
複数のクロック同期式プリチャージ論理ゲートを直列に接続するステップと；を含んでおり、
前記複数のプリチャージ論理ゲートはそれぞれ、前記複数のクロック信号に個別にクロック信号につながっており、
個々のプリチャージ論理ゲートは、ロジック状態のクリティカル・パスに信号保持器を含んでおり、
前記信号保持器は、前記複数のプリチャージ論理ゲートのそれぞれについての個別クロック信号を停止または始動する際に、当該複数のプリチャージ論理ゲートのロジック状態を前記複数のプリチャージ論理ゲートの外部にあるテスターによって試験できるようにすることを特徴とする方法。
【請求項５６】
前記信号保持器は、全信号保持器を含んでいることを特徴とする請求項５５記載の方法。
【請求項５７】
前記複数のクロック同期式プリチャージ論理ゲートのうちの最初のクロック同期式プリチャージ論理ゲートは、全信号保持器を含んでいることを特徴とする請求項５５記載の方法。
【請求項５８】
前記複数のクロック同期式プリチャージ論理ゲートのすべては、全信号保持器を含んでいることを特徴とする請求項５５記載の方法。
【請求項５９】
前記試験は、ＩＤＤＱテスティングによって行われることを特徴とする請求項５５記載の方法。
【請求項６０】
前記試験は、スキャン・テスティングによって行われることを特徴とする請求項５５記載の方法。
【請求項６１】
前記試験は、ハードウエア・エミュレーション・テスティングによって行われることを特徴とする請求項５５記載の方法。
【請求項６２】
論理ゲートのクロックを停止または始動する際に、該論理ゲートのロジック状態を試験できるようにする方法であって、
オーバーラップする位相を有する複数のクロック信号を生成するステップと；
直列に接続された複数のクロック同期式プリチャージ論理ゲートに、前記複数のクロック信号を個別に割り当てるステップと；を含んでおり、
個々のプリチャージ論理ゲートは、ロジック状態のクリティカル・パスに信号保持器を含んでおり、
前記信号保持器は、前記複数のプリチャージ論理ゲートのそれぞれについての個別クロック信号を停止または始動する際に、当該複数のプリチャージ論理ゲートのロジック状態を前記複数のプリチャージ論理ゲートの外部にあるテスターによって試験できるようにすることを特徴とする方法。
【請求項６３】
前記信号保持器は、全信号保持器を含んでいることを特徴とする請求項６２記載の方法。
【請求項６４】
前記複数のクロック同期式プリチャージ論理ゲートのうちの最初のクロック同期式プリチャージ論理ゲートは、全信号保持器を含んでいることを特徴とする請求項６２記載の方法。
【請求項６５】
前記複数のクロック同期式プリチャージ論理ゲートのすべては、全信号保持器を含んでいることを特徴とする請求項６２記載の方法。
【請求項６６】
前記試験は、ＩＤＤＱテスティングによって行われることを特徴とする請求項６２記載の方法。
【請求項６７】
前記試験は、スキャン・テスティングによって行われることを特徴とする請求項６２記載の方法。
【請求項６８】
前記試験は、ハードウエア・エミュレーション・テスティングによって行われることを特徴とする請求項６２記載の方法。
【発明の詳細な説明】
【発明の属する技術分野】
本発明は、半導体デバイスに関する。さらに具体的には、本発明は半導体デバイス内における論理回路の同期に関する。
【０００１】
【従来の技術】
デジタル論理回路におけるクロッキング
クロックの目的
クロックは、同期デジタル論理回路におけるタイミングおよび同期の目的に用いられる周期的信号である。クロックは、回路によって論理演算が行われる時間を定める。論理演算には、一連の論理ゲートを通って状態が伝搬することが含まれる。
【０００２】
同期回路において、論理状態の伝搬は伝搬元クロック・エッジ（Source Clock Edge）によって開始される。論理ゲートのパスを通って伝搬した後に、その結果生ずる論理状態は、伝搬先クロック・エッジ（Destination Clock Edge）によってサンプリングされる。伝搬先クロック・エッジは、伝搬元クロック・エッジを生成したクロック・イベント（clock event）に続くクロック・イベントから生成される。
【０００３】
ゲートのパスを通る状態の伝搬には時間がかかるので、伝搬元クロック・エッジの後のある時間にわたって、論理パスは新しい状態（このサイクルについて有効な状態）と古い状態（このサイクルについて無効な）とを含むであろう。一般的に、所定時間（この時間はクロック・サイクルとして定義されることが多い）の終わりにおいては、有効な状態はパス全体またはパスの集合を通って伝搬してしまっており、その回路において無効な状態はもはや何もない。それに続くクロック・エッジは新たに工程を開始する。
【０００４】
電子回路において実施される論理演算は、分岐するパスと収束するパスの両方の論理ゲートのパスを通って伝搬する。論理パスが収束するか他のパスと結合される際には、時間的に類似の時点でそうならなければならず、この時点において、多様な収束パスが全て有効なデータを有する。この時点は、最新の到着データの到着時間によって決定される。一般的に、この時点で収束している他のより速いパスがあり、後に到着するデータと首尾よく結合されるまで、有効なデータを保持しなければならない。ほとんどのデジタル回路においては、１つまたは複数のクロックが、この同期機能を提供する。そのため、クロックは、調整または調節機能を遂行するものと考えることができ、より遅いパスが有効になるまで、より速いパスを遅くするか保持する。
【０００５】
一般的に言って、論理回路はできるだけ速やかに働くことが求められている。したがって、クロックは、回路の動作速度にはできるだけ損失を課さずに、それらの調整機能を遂行することが非常に望ましい。
【０００６】
クロック・スキュー（Clock Skew）
クロック・スキューは、クロックの調整機能と干渉し、かつ回路の最大動作速度を低下させ得る、タイミング誤差の成分である。クロック・スキューの定義は、「同じクロック・イベントから派生するが、物理的に別個のクロック・ノードと関連付けられたクロック・エッジの間における、到着時間の差」である。
【０００７】
たとえば、マスタ・クロックは一般的に、何らかの手段によって多くの伝搬先に分配される。分配手段は、配線のネットワークのように単純なものであってもよく、多数のレベルの能動バッファを含んでもよい。図１は、いくつかの発生器（generator）が続く、単一のクロック源（通常は、位相ロック・ループ、ＰＬＬ、またはデジタル・ディレイ・ループ、ＤＬＬ）を備えたクロック・システムを示している。発生器は単一のクロック源を多数のクロックに変形する。発生器内で生ずる変形は、伝搬元クロックの直接的な遅延、伝搬元クロックの反転、あるいはクロック波形の形状の変更（たとえば、デューティ・サイクルの変更、スルー・レートの変更など）があり得る。あるいは、前述の変形のあらゆる組み合わせでもあり得る。いずれの場合にも、この分配パスを通るクロック・エッジの伝搬時間は、０ではないある一定の時間を必要とする。各伝搬先への伝搬時間は、設計の必要に応じて、設計によってより小さくまたはより大きく調節できる。しかし、実際には、完全な正確性をもって実際のクロック・スキューを予測するために、クロック分配回路を分析または模擬実験することは費用がかかる（設計労力の点で）。
【０００８】
実際に、完全な設計知識を有していても、回路全体にわたる通常の製造上の変動のために、完全な正確性をもってスキューを制御することは不可能である。たとえば、特定のクロック分配線は、接続厚または幅の局所化された変化のために、ある程度、回路の部分において抵抗性が強くなる場合がある。これは、特定のダイ上の他のクロック伝搬先に対して、この線の末端では、クロック伝搬先への常により長い遅延につながり得る。
【０００９】
クロック・スキューは予測可能な成分と予測不可能な成分の両方を有することが分かる。ある程度困難ではあるが、設計者は特定の限界内でクロック・スキューを調節または制御することができる。実際には、この制御は、設計時間の制限、並びに、通常の製造上の変動および環境上の変動によっても限定される。クロック・スキューを完全に制御する際の困難性の結果および、クロック・スキューの有害な影響のために、設計は、多様なクロック伝搬先の間におけるクロック・スキューの何らかの不安定性に対して耐性があることが重要である。
【００１０】
クロック・ジッタ（Clock Jitter）
クロック・ジッタは、クロック・スキューと同様に、タイミング誤差の成分であって、この成分はクロックの調整機能および回路の動作速度に悪影響を与え得る。クロック・ジッタは、「単一のクロック・ノード上でのクロック・イベントの到着時間の誤差または変動」と定義される。この誤差または変動は、理想的なまたは意図された到着時間に対するものである（通常は直前のクロック・イベントに対して特定される）。すなわち、クロック・スキューは、物理的に分離した場所での同じイベントの到着時間を示し、一方、クロック・ジッタは、同じ物理的な場所での異なったイベントの到着時間を示す。クロック・ジッタは、各クロック・ノードで幾分か異なる場合がある。
【００１１】
クロック・ジッタがクロック・ネットワークに意図的に導入されることは希である（一つの例外は、クロックの意図的な周波数変調である）。ジッタはいくつかの要因によって引き起こされ得る。ジッタは、回路の入力クロック上に存在する場合がある。これは一般的に、分散ネットワーク（distribution network）を通して渡される。また、ＰＬＬなどのクロック発生論理回路の部分によって導入される場合もある。たとえば、図４はクロック発生論理回路によるジッタの導入を図示しており、Ｚ（クロック発生器）の転送機能に連結しているフィードバック系の制御システム（典型的なＰＬＬ）を示している。ＰＬＬは、エッジ配置に影響する、安定した状態の位相誤差を含む。多様なポイントでシステムに送り込まれるノイズは、システム内で一時的な反応を引き起こすであろう。ノイズは、基準信号θ（ｔ）、位相比較器、ループ・フィルタ、電圧制御発振器（ＶＣＯ）、クロック発生器（Ｚ）またはこれらの構成要素を接続している配線の何れかで発生し得る。これらの構成要素に関しては、ノイズの主たる発生源は電圧源（電源および接地）であり、配線については、連結ノイズである。
【００１２】
クロック・ジッタは、電源ノイズ、および電気誘導性の信号の結合（inductive signal coupling）や容量性の信号の結合（capacitive signal coupling）によっても引き起こされ得る。ジッタの影響というのは、回路の特定部分によって認識されるクロック周期を短くまたは長くすることである。たとえば、特定のクロック・エッジが、前のエッジによって予測された到着時間から遅延した場合には、終了クロック周期は長くされるが、それに続くクロック周期は短くされる。
【００１３】
様々なクロック伝搬先の間で変化するクロック・ジッタは、クロック・スキューも増大させ得る。たとえば、局所的電源ノイズは、クロック・エッジを１つの場所に早く到着させる場合があるが、同じクロック・エッジが別の場所では時間通りに到着する場合がある。
【００１４】
クロック・ジッタは短期であって、クロック周期のサイクル間変動を生じさせる場合もあれば、長期であって、同様の方法で一連の連続的なサイクルに影響する場合もある。ジッタは、クロックのデューティ・サイクルをその意図した値から変化させる場合もある。通常、短期と長期の成分の両方がクロック内に存在する。
【００１５】
セットアップ・ハザード（Setup Hazard）および保持ハザード（Hold Hazard）
セットアップ・ハザードおよび保持時間ハザードは、クロック・スキューやジッタがない状態でも存在し得るが、スキュー（特に、予測不可能なスキュー）やジッタは一般的に、これらのハザードの可能性や重大さを高める。クロック・エッジが、クロックに比べて非常に遅く到着しているデータをサンプリングしているときに、セットアップ・ハザードが発生する。意図した到着時間に比べてデータが遅すぎるか、サンプリング・クロックが早すぎるのであれば、無効なデータがサンプリングされて、回路は誤って動作する。これらのハザードは、最長の伝搬遅延で設計されたパスと関連付けられているので、スロー・パス・ハザード（slow path hazard）またはクリティカル・パス・ハザード（critical path hazard）とも呼ばれる。
【００１６】
論理パスは伝搬元クロックで開始され、伝搬先クロックでサンプリングされることにより終了するので、セットアップ・ハザードは、伝搬元クロックと伝搬先クロックとの間の遅延ならびに論理パス遅延によって影響される。セットアップ・ハザードは、クロック周波数を遅くすることにより、より重大でなくなるか、解消されることさえある。したがって、セットアップ・ハザードはデジタル回路の高周波数パフォーマンスを制限するが、より低い周波数での正しい動作は妨げない。
【００１７】
対照的に、保持ハザードは、有効であったが、サンプリング周期が完了する前に再び無効になるデータを、誤ってサンプリングするときに発生する。保持時間の問題は、ファスト・パス問題（fast path problems）とも呼ばれる。
【００１８】
前述のように、伝搬先クロック・エッジは通常、伝搬元クロック・エッジを生成したクロック・イベントに続くクロック・イベントから生成される。保持時間の変動は、伝搬元クロックを生成した同じクロック・エッジから実際に派生する伝搬先クロック・エッジによって、データがサンプリングされたときに発生する。これは、伝搬元から伝搬先にデータが速く伝搬されすぎたとき、または、同じルート・クロック・イベントから生成された伝搬元エッジに比べて、伝搬先クロック・エッジが遅く発生しすぎたときに発生し得る。保持時間ハザードは、同じイベントから派生したクロック・エッジの間でのタイミングに関連しているので、保持時間ハザードはクロック周波数を変えることにより軽減されることがないを特筆することが重要である。保持時間の違反は、回路があらゆる周波数で動作することを妨げる。この理由で、保持時間の違反は、セットアップ時間の問題よりも重大である。保持時間の問題は、付加的な遅延をファスト・データ・パスに挿入すること、伝搬元クロックを遅延させること、伝搬先クロックの到着時間を早めること、またはこれらの方法の組み合わせによって修正できる。
【００１９】
スタティック論理回路における同期のコスト
論理回路同期と関連付けられたサイクルの部分は、同期オーバーヘッドと呼ばれ、計算作業を行わないで費やされる時間を表す。明らかに、高パフォーマンス設計については、所与の時間で達成できる作業量を最大化することが望まれるであろう。同期オーバーヘッドに時間を消費すると、設計の計算効率を削減することによりこの目標から逸れてしまう。
【００２０】
図２は、２つの論理パスを含む単純な論理パスを示している。一方のパスはフリップ・フロップ１で始まり、フリップ・フロップ２で終わる。他方のパスはフリップ・フロップ２で始まり、フリップ・フロップ１に戻る。クロック内に予測不可能なスキューやジッタがないのであれば、これら２つのパスを通る往復遅延によって決定されるサイクル時間は、次の式で求められる。
【００２１】
Ｔ≡（Ｏ１＋Ｄ＋Ｓ２＋Ｏ２＋Ｄ’＋Ｓ１）／２  ・・・  （式１）
ここで、
Ｏｉ＝フリップ・フロップｉの出力遅延
Ｏ１およびＯ２＝それぞれ、フリップ・フロップ１および２の出力遅延
Ｓ１およびＳ２＝それぞれ、フリップ・フロップ１および２のセットアップ時間
Ｓｉ＝フリップ・フロップｉのセットアップ時間、および
Ｄ、Ｄ’は論理パスを通る遅延である。
【００２２】
図３は、５０％デューティ・サイクルの典型的なクロック信号を示している。クロック周期Ｔは、クロック信号の立ち上がりの中間点から、クロック信号の次の立ち上がりの中間点まで計測される。スキューは、クロックの立ち上がりエッジおよび下降エッジの周囲に斜線部分で表されている。第１の立ち上がりエッジは基準点として取られているので、スキューを有していないことに留意されたい。この図はこの状況を表すものであるが、実際には、ここではクロック・ネットワークにおける特有の点の間におけるスキューについて述べていることを特筆することも重要である。図２および図３に関連して、クロック（図３）の第１の立ち上がりエッジは、フリップ・フロップ１（図２）のクロック入力で計測されるが、クロックの次の立ち上がりエッジはフリップ・フロップ２のクロック入力で計測される。
【００２３】
予測可能なクロック・スキューは、対処するのがかなり容易であり、場合によっては、これを利用することさえできる。たとえば、フリップ・フロップ２が、フリップ・フロップ１よりも若干遅いバージョンのクロックを採用していることが分かっていれば、設計者は実際に、データを若干後に到着させることができる。この場合に、フリップ・フロップ１はフリップ・フロップ２に比べて早く立ち上がりエッジに達するので、次のサイクルでは、論理ゲートを通過する時間は少ない。フリップ・フロップ１はそれ自体に対してスキューを有していないので、データは２サイクルでループ・パス全体を通過しなければならない。全てのスキューが予測可能であるとすれば、等式（１）は最小サイクル時間を示すことになり、この場合に２つのパス遅延は平均される。
【００２４】
予測不可能なクロック・スキューは、異なった問題をもたらす。フリップ・フロップ１とフリップ・フロップ２との間でスキューがどのようであるかを設計者が知らなければ、設計者は最悪の事態を仮定しなければならない。すなわち、第１のサイクルでは、フリップ・フロップ２がフリップ・フロップ１に比べて早いという仮定であり、第２のサイクルでは、その逆の仮定である。このようにして、どのケースが真であっても、データは時間通りに到着する。残念ながら、これは、スキューのこの部分について、設計者は上記のように遅れたクロックを利用できないことを意味する。等式（２）は、この２サイクル・パスを次のように表している。
【００２５】
Ｔ≡（Ｏ１＋Ｄ＋Ｓ２＋Ｏ２＋Ｄ’＋Ｓ１＋２Ｋｕ）／２  ・・・  （式２）
ここで、Ｋｕ＝クロック・スキューの不明確な部分である。
【００２６】
クロック・ジッタの効果もこの遅延等式に付加されるのであれば、次のようになる。
【００２７】
Ｔ≡（Ｏ１＋Ｄ＋Ｓ２＋Ｏ２＋Ｄ’＋Ｓ１＋２Ｋｕ＋２Ｊ）／２  ・・・  （式３）
ここで、Ｊ＝クロック・ジッタである。
【００２８】
予測不可能なクロック・スキューの原因は、クロックの周波数とは無関係である。これは、フリップ・フロップ遅延（Ｏ１、Ｓ１）についても当てはまり、クロック・ジッタについても概して当てはまる。このことは、所与の技術でますます高い周波数用に設計する際、同期オーバーヘッド専用のクロックの割合が上昇するため、高周波数設計に関して大きな問題を提起する。ある時点では、このオーバーヘッドが際だったものになり、より高い周波数の設計の利益は、論理回路の計算効率の低下によって凌駕されてしまう。明らかに、非常に高い周波数の設計については、設計者は同期オーバーヘッドを最小にする方法を検討する必要がある。
【００２９】
同期オーバーヘッドを最小にする１つの設計方法には、フリップ・フロップを形成する２つのラッチを分離して、２つのラッチの間に論理回路を設けることがある。そして、設計者は、最も遅い論理パスの評価エッジ（クロック信号の）がラッチの入力に到着したときに、ラッチがトランスペアレントであるように、論理回路のタイミング調節を行う。ここで、クロック・スキューは、ほぼ時間通りに動作するようにクロック・エッジがラッチを制御することにつながるので、最も遅いパスは影響を受けない（クロック・スキューが大きすぎないと仮定すると）。これは耐スキュー設計である。この種の設計におけるクロック・スキューは、理想的なクロック・エッジ時間と、最も遅いパスの評価エッジがラッチの入力に到着する時間との間の時間ほどに大きくなり得る。各ラッチについて正のクロック・パルスの中間（クロックがHighの時間）に評価エッジが到着するように、設計者がそれのタイミング調節を行うのであれば、その設計はスキューの１／４サイクルのフルに耐えることができる。このスキームの別の利点は、損失なしに、評価エッジをこの時点から僅かに外すことができることである（スキューは１／４サイクルよりも小さいと仮定して）。したがって、耐スキュー設計はサイクル時間から、スキュー損失と、ラッチを通る出力およびセットアップの遅延を除去する。しかし、この設計は、ラッチを通る伝搬遅延を付加し、これは、サイクル時間の等式を次のように変える。
【００３０】
Ｔ≡（Ｄ１＋Ｄ＋Ｄ２＋Ｄ’＋２Ｊ）／２  ・・・  （式４）
ここで、Ｄ１およびＤ２＝それぞれ、ラッチ１および２を通る遅延
ＤおよびＤ’＝論理パスを通る遅延
Ｊ＝クロック・ジッタ
【００３１】
上記の設計形式は、クロック・サイクル時間を短縮するという、長期のクロック・ジッタの影響を解消しない。ラッチ伝搬時間の遅延損失は存在するが、この損失は一般的にフリップ・フロップで生じた損失よりも一般的に少ない。
【００３２】
クロック・プリチャージ論理回路における同期
クロック同期式プリチャージ論理回路（ＣＰ論理回路／crocked precharge logic）は、スタティックＣＭＯＳ論理回路を超える速度の利点を有することが多い設計形式であり、同期損失を克服する際に、利点をさらに提供することができる。スタティック・ゲートとは異なり、ＣＰゲートは固有の同期特性を有する。ＣＰゲートは、プリチャージおよび評価という２つの主たる動作フェーズを有している。これは、評価フェーズの間に１回だけ切替ができるので、プリチャージフェーズの開始まで、その値を保持するものと考えることができる。さらに重要なのは、ＣＰゲートは、その評価フェーズの開始まで切り替えできないことである（入力が変わるときには常に切り替わり得るスタティックＣＭＯＳゲートとは異なる）。
【００３３】
ＣＰゲートは、パスの全てのゲートが評価してしまうまで、第１のゲートが順次評価し、次のゲートに評価させ、それを繰り返すような方法で接続されてクロッキングされる。これらのゲートへのクロック（これをクロックＰＨ１と呼ぶ）がそのプリチャージ状態に切り換わると、これらのゲートはプリチャージしてその状態を失う。したがって、ゲートをプリチャージする前に計算の結果を記憶することが必要である。これは、プリチャージが始まる前に、評価期間の終わりに、最終ゲートの出力値をストリングでラッチすることにより（すなわち、ＣＰゲートのＰＨ１クロックに類似のクロックで）、一般的に行われる。ここで、この構造は、ラッチ系の設計形式におけるスタティック論理ゲートの配置に類似している。このラッチまたはラッチのセットは、一般的に、第１のセットのＣＰゲートのクロック（これをクロックＰＨ２と呼ぶ）の逆であるクロックによってクロッキングされる、別の一連のＣＰゲートに入力を提供する。このようにして、第１のセットが評価しており、２つのセットのＣＰゲートの間のラッチがトランスペアレントである間に、第２のセットのＣＰゲートがプリチャージされる。第１のセットのゲートがプリチャージされると（ＰＨ１がLowのとき）、ラッチはその状態を保持し、第２のセットのゲートはラッチ出力を検知して、評価を始める。第１のセットのＣＰゲートと同様に、第２のセットのＣＰゲートから得られる結果は、それらの評価フェーズの間に（ＰＨ２がHighのときに）ラッチされなければならない。そして、第２のタイプのラッチ（ＰＨ２ラッチ）の出力は、より多くの第１のタイプのＣＰゲート（ＰＨ１  ＣＰゲート）を駆動できる。この論理回路および同期形式は、クロック・エッジのスキューおよびジッタの影響を受けやすいので、スキュー抵抗力のないＣＰ論理回路として知られている。図５は、このタイプの論理回路を示している。
【００３４】
スキュー抵抗力のないＣＰ論理回路における同期のコスト
スキュー抵抗力のないＣＰ論理回路は、前述のクロック損失を被る。ＣＰゲートは、クロックがHighの時にのみ評価できるが、フェーズの終わりに結果をラッチ内に記憶できるように、クロックがHighからLowに切り替わるときまでに、評価を終了しなければならない。この形式は、サンプリングされるのに間に合うように計算結果をラッチにセットアップしなければならないので、クロックの両エッジの予測不可能なスキューによって影響される。データが遅いか、ラッチ・クロックが早い場合には、誤った結果がサンプリングされる。したがって、図５を再び参照すると、次の等式がサイクル時間を示す。
【００３５】
Ｔ≡Ｄ０＋Ｄ＋Ｄ１＋Ｄ’＋２Ｋｕ＋２Ｊ  ・・・  （式５）
ここで、Ｄｉ＝ラッチＩを通る遅延
Ｋｕ＝クロック・スキューの不明確な部分
Ｊ＝クロック・ジッタ
【００３６】
この同期スキームは、フリップ・フロップ系のスタティック論理回路設計において遭遇した問題と非常に似通った問題を被る。
【００３７】
論理回路の同期は、システム内の論理信号の全てのタイミングを制御する工程である。本発明は、論理回路デバイスについて最小動作サイクル時間を低下させるために、できるだけスキューおよびジッタに耐える同期機構を説明する方法および装置である。しかし、同期機構は論理回路群のコンテキストにおいて最もよく理解され、本発明を説明するのに用いる論理回路群は、「Method and Apparatus for a N-Nary logic circuit using 1 of 4 Encoding」という名称の、現在、米国特許第６０６６９６５号となっている、同時係属出願である１９９８年５月２日出願の米国特許出願第０９／０１９３５５号において説明されている、Ｎ進論理回路群である。簡潔に言えば、この群の論理ゲートは、クロック入力信号がLowのときにプリチャージして、クロック入力信号がHighのときに評価する、非反転クロック・プレチャーチ回路として考えることができる。図１０Ａは、Ｎ進論理回路群（N-nary logic family）に典型的である１−４論理回路（1 of 4 logic circuit)を示している。
【００３８】
効率的なプロセッサ設計は論理ゲートをその最高速度で動作させ、ここで、ゲートの速度は、その論理伝搬時間とそのノード再生時間との合計である。スタティック論理ゲートは、ゲートが新たな入力値に遭遇したときに「再生」する。一方、ダイナミック・ゲートは、次のセットの入力に備えるために、明示的なプリチャージ操作を必要とする。論理ゲートは、出力が評価レベルにもプリチャージレベルにも遷移していない時間がないときに、そのデューティ・サイクル限界で動作している。図９Ａおよび９Ｂはこの概念を示しており、ここで、ｔｅは評価時間であり、ｔｐはプリチャージ時間であり、ｔｓｏは安定した出力を表している。
【００３９】
所与のダイナミック・ゲートは、重要な１つまたは複数の入力および１つの出力を有する。評価フェーズにあるときには、ダイナミック・ゲートの出力は入力に反応する。プリチャージフェーズにあるときには、ダイナミック・ゲートの出力は再生されたレベルに戻る。図９Ａおよび９Ｂは、評価フェーズごとに遷移するゲート（出力）を示していることに留意されたい。これは、ゲートが「真」と評価したときにのみ遷移する、従来のダイナミック・ゲートには当てはまらない。しかし、Ｎ進論理回路は複数の配線を含み、各評価でたった１本の配線のみが遷移する。場合によっては、評価する配線がない場合もあり、そのため出力は遷移しない場合もある。したがって、Ｎ進論理回路（N-nary logic）における信号の点から見ると、図９Ａおよび９ＢはＮ進の出力信号を表しており、これは、図１０Ｂに示したような出力配線の論理和の均等物である。
【００４０】
図９Ｂは、ダイナミック・ゲートの所望の動作モードを示している。出力信号が一旦読み取られると（その遷移を完了したときに）、ゲートは再生し始めるので、出力信号が安定している時間はほとんどないか全くない。そして、その再生を一旦終了すると、ゲートは再び遷移を始める。これらの条件の下で、論理ゲートは、そのゲートが分配できる限りできるだけ多くの論理演算を、所与の時間に分配することが分かっている。
【００４１】
しかし、図９Ａは、先行技術のシステムにおいて典型的であるような、ダイナミック・ゲートのより現実的な応用を示している。図から分かるように、論理ゲートの評価の後と論理ゲートのプリチャージフェーズの後との両方で、かなりの長さの追加時間が必要である。評価とプリチャージの周期に焦点を当てることにより、トレードオフを行う多くの技術が先行技術にはある。残念ながら、ゲートの効率に直接的に焦点を当てるものは先行技術にはない。ゲート効率を改善することに焦点を当てることにより、本発明は、最大パフォーマンスを有するプロセッサを製作するための指針のより優れたセットを生成し、さらに、技術の本質から直接的に派生する代替的なクロッキング方法を開発する。
【００４２】
いくつかの論理ゲートは他の論理ゲートよりも速い。通常、最も遅いゲートが設計者の懸念であり、一方、設計者はより速いゲートを無視できることが多い。ダイナミック・ゲートに要求されるクロッキングは、ゲートがその所望の機能を遂行できるクロック・サイクル内の位置を制限するので、ゲート速度は、ダイナミック論理回路にとってより大きな問題である。一方、スタティック論理回路は、常にその機能を遂行する。入力が到着すると常に、スタティック・ゲートはそれに応じて切り替わる。そうであっても、効率的なクロッキング方法は、ダイナミック論理ゲートが、できるだけ広い時間にわたってその機能を遂行することを許容すべきである。
【００４３】
Harris等に付与された米国特許第５，５１７，１３６号（名称「Opportunistic Time-Borrowing Domino Logic」）は、効率的なクロッキング方法の試みである。この特許の特徴は、特定のクロック・ドメイン間で、ある程度の時間借りを提供することである。Harris特許の目的は、クロック・サイクルの各半分の終わりに、出力を記憶するラッチの必要性を解消することであり、これは本質的に、ある程度のタイム・スチーリング、すなわちこの特許が呼ぶところの「便宜的時間借り」(opportunistic time borrowing)を許容する。しかし、Harris特許におけるクロックのタイミング調整または同期の非対称性は、時間借りが実際に発生し得るクロック・サイクル内の場所を限定する。実際に、借りはあらゆるパス内でいくつかの時点では発生し得ないので、クロッキング方法のパフォーマンスは、クロックの不安定性によって影響されるに違いない。
【００４４】
Harrisは、特許に対する追跡文書、Harris, D., and Horowitz, M., Skew-Tolerant Domino Circuit, IEEE Journal of Solid-State Circuits, Vol. 32, No. 11, pp. 1702-1711（１９９７年１１月）において、上記のクロッキング・スキームを、多相クロック・システムのためのより一般化されたアプローチに拡張している。Harris特許を、多相クロック・システムのためのより一般化されたアプローチに拡張することに加えて、Harris文書は、クロッキング・スキーム内でのクロック・スキューに関する許容範囲を含めることを試みている。残念ながら、この文書は、予測可能なクロック誤差と予測可能でないクロック誤差とを差別化できなかった。また、この文書は、スキューに加えてクロック・ジッタがクロッキング・スキームに与える影響を理解しておらず、実際的な設計を導くために、ゲート効率の計測法を開発しておらず、この開示文書において開示されているものに類似のクロッキング方法に反対の主張を行っている。
【００４５】
別の先行技術の特許である、Yetter等に付与された米国特許第５，４３４，５２０号（名称「Clocking Systems and Methods for Pipelined Self-Timed Dynamic Logic Circuits」）は、評価およびプリチャージ周期を改善することに焦点を当てることにより、システムのクロッキングを最適化する別の試みである。この特許は、上記Harris特許およびHarris文書のように、ぎこちなく非効率的なクロッキング・システムを実施しており、ここでは、従来のダイナミック論理回路群における非効率性の部分が改善されるだけである。
【００４６】
引き伸ばしクロックを用いたオーバーラッピング・クロック（Overlapping Clocks Using Clocks）
図６は、論理回路の同期を達成するための１つの技術を示しており、これはクロック・サイクルを「引き伸ばす」ことによるものである。前述のように、Harris特許、Yetter特許およびHarris文書を含む先行技術においては、引き伸ばしクロックの多数の例がある。ラッチは、両方のクロックがHighの期間、したがって、ラッチがトランスペアレントである期間があり、その一方の側のＣＰゲートは評価モードであることが分かる。このことは、オーバーラッピング・ウィンドウ内で、評価エッジはラッチを通過して、直ちに他方の側のゲートを通って継続できることを意味する。両方のクロックが明らかにHigh（すなわち、図面に示された斜線で表したスキュー範囲にはない）の時にラッチが設けられるものと仮定すると、トランスペアレントなラッチ設計様式のように、スキューは問題ではない。等式６は、このように引き伸ばしたクロックを使用する場合の、サイクル時間に対する関係を示している。
【００４７】
Ｔ≡（Ｄ０＋Ｄ＋Ｄ１＋Ｄ’＋Ｊ）  ・・・  （式６）
ここで、Ｄｉ＝ラッチＩを通る遅延
Ｊ＝クロック・ジッタ
【００４８】
引き伸ばしクロックで設計者が得ることができる別の利点は、ラッチ遅延にある。ラッチがパスにある理由は、１つの位相から次の位相への遷移中の論理回路の位相の結果を保持することであった。オーバーラッピング・クロックを用いると、１つの位相にあるゲートから次の位相にあるゲートまで、それらの両方が評価モードにある時間中に、ロジック・フィーディング（logic feeding）を有することが可能である。これは、ラッチが過剰であることを意味する。唯一の要件は、早いほうのゲートが、その値が遅い方のゲートを通って伝搬してしまう前にプリチャージしないことである。図７は、このスキームで実施されたパスを示しており、等式７はクロックのサイクル時間を次のように示している。
【００４９】
Ｔ≡（Ｄ＋Ｄ’＋Ｊ）  ・・・  （式７）
ここで、Ｊ＝クロック・ジッタ
【００５０】
引き伸ばしクロック（Stretched Clocks）の問題
しかし、この同期スキームにはいくつかの問題がある。クロック上の５０％よりも大きいデューティ・サイクルは、この開示文書において説明していない同じ物理的な障害の多くを提示する。また、保持時間の問題（hold time problem）が悪化する。引き伸ばしクロックを備えたシステムは、スキューやジッタを考慮せずにも、ファスト・パス（fast path）に保持時間の問題を生ぜしめるであろう。保持時間の問題は、ファスト・パスを調節するために、追加の設計作業を要求する。典型的な設計においては、慎重な調節を必要とする数個のクリティカル・パスがある（潜在的なセットアップ時間の問題）が、潜在的には多数のファスト・パスがある。クロックを調節する際に行う作業は、これらのパスを調節するときに論理チップのパフォーマンスが改善するという利点を得る。また、ここで設計者が調節しなければならないファスト・パス（潜在的保持時間の問題）もある。これらのパスを調節することは、一般的に、遅延を挿入するか（範囲の増大）、またはクロックで「細工すること」（誤り易く、多大な分析を必要とする）を意味する。機能的なチップ（あらゆる周波数で）を有するために、保持時間の問題を解決することが必要であるが、そうすることにパフォーマンス上の利益はない。
【００５１】
集積回路上のパイプライン内で論理回路を同期するには、様々な方法がある。たとえば、図１６はHarris特許およびYetter特許で用いられている、典型的な４クロック・システムを示している。このタイプのクロッキング・システムには通常、マスタ・クロックＣＬＫ１およびその逆クロックＣＬＫ３が関係する。他の２つのクロックであるＣＬＫ２およびＣＬＫ４は、マスタ・クロックまたはその逆クロックと一致する場合がある、引き伸ばしクロック・サイクルを備えたクロックである。たとえば、ＣＬＫ２のリーディング・エッジは、ＣＬＫ１のリーディング・エッジと一致し、ＣＬＫ４のリーディング・エッジは、ＣＬＫ３のリーディング・エッジと一致する。クロック信号の各完全なサイクルは２つの部分である、偶数半サイクルｔｘおよび奇数半サイクルｔｙも含む。クロックｋ信号の各半サイクルは、プリチャージ期間ｔｐおよび評価期間ｔｅを含む。このタイプのクロッキング・システムの共通の特徴は、その評価ウィンドウ２２０であり、これはいくつかのオーバラップしている位相を有するが、引き伸ばしクロック・サイクルを備えたクロックにのみ起因している。
【００５２】
図１３は、Yetter特許に記載された典型的なダイナミック論理回路を示しており、この特許ではこれをマウストラップ論理回路（“mousetrap” logic circuit）と呼んでいる。この回路は、出力信号３２を生成するために、２つの入力信号２６および２８についてある種の論理評価行う、論理回路２４を含む。この論理回路には出力緩衝デバイスが連結されており、これは、ここではインバータ３０である。また、ロジック・ツリー回路には、その論理回路のダイナミック・ノードをリチャージする期間を決定するために、クロック信号ＣＫを用いるプリチャージデバイス２２が連結されている。このタイプのダイナミック論理回路の１つの欠点は、このタイプの回路をパイプライン化に用いることの困難さである。別の欠点は、情報を失わずにクロックを停止させることができないことである。本発明のクロッキング同期は、オーバラップしている位相を有する多数のクロック・ドメインを用いることにより、これらの欠点を克服する。
【００５３】
図１４Ａおよび図１４Ｂは、Harris特許（米国特許第５，５１７，１３６号）における出力緩衝デバイスを示している。図１４Ａは、Harris特許の図１を示しており、図１４ＢはHarris特許の図２を示している。図１４Ａの回路は、本発明の半信号保持器に類似の出力バッファを用いている。インバータの出力がLowのときには、このトランジスタは入力をHighに保持し、ゲートを安定させる。しかし、出力がLowのときには、ゲートへの入力が除去されると、入力ノードは浮動し得る。図１４Ｂの回路は、特に、入力が生じないときには出力をLowに保持する目的で、Ｎチャネルのトランジスタを含む、本発明の完全な信号保持器に類似の出力バッファを用いている。
【００５４】
図１４Ａは論理回路４１から構成されており、これはさらに入力信号ＡおよびＢからなる。この入力信号ＡはＮＦＥＴ４４に接続し、入力信号ＢはＮＦＥＴ４２に接続する。ＮＦＥＴ４０は、この回路用の評価デバイスであり、ＰＦＥＴ４６はプリチャージデバイスである。評価デバイスおよびプリチャージデバイスの両方が、クロック信号ＣＬＫに接続する。この回路は、インバータ５０とＰＦＥＴ４８とからなる出力緩衝デバイスも含んでいる。論理回路４１の出力はインバータ５４に接続しており、Harrisではこれを高スキュー・デバイスと呼んでいる。出力５６は、たとえば、パイプラインにおける次の回路であり得る、次の論理回路に接続している。Harrisは、出力緩衝デバイスを備えたこのタイプの論理回路をＤ１タイプ・ゲートと呼んでいる。
【００５５】
図１４Ｂは論理回路６１から構成されており、これはさらに入力信号ＡおよびＢからなる。この入力信号ＡはＮＦＥＴ６４に接続し、入力信号ＢはＮＦＥＴ６２に接続する。ＮＦＥＴ６０は、この回路用の評価デバイスであり、ＰＦＥＴ６６はプリチャージデバイスである。評価デバイスおよびプリチャージデバイスの両方が、クロック信号ＣＬＫに接続する。この回路は、インバータ６８とインバータ７０とからなる出力緩衝デバイスも含んでいる。論理回路６１の出力はインバータ７２に接続しており、Harrisではこれを高スキュー・デバイスと呼んでいる。出力７６は、たとえば、パイプラインにおける次の回路であり得る、次の論理回路に接続している。Harrisは、出力緩衝デバイスを備えたこのタイプの論理回路をＤ１Ｋタイプ・ゲートと呼んでいる。
【００５６】
【発明が解決しようとする課題】
最適なクロッキングの実装は、単純なゲートと複雑なゲートとの間や、小さい出力負荷を有するゲートと大きい出力負荷を有するゲートとの間のゲート速度の差および、製造の変動に起因する速度の差に対処するために、１つのダイナミック・ゲートから次のダイナミック・ゲートに十分な時間借りを可能にし、全てのパスの全てのポイントでそのようにする。
本発明は先行技術の上記問題を克服すべく、極めてフレキシブルなロジック同期方法および装置であって、オーバラップする位相を備えた多相クロックを用いる方法および装置を提供する。
【００５７】
【課題を解決するための手段】
本発明は、集積回路（ＩＣ）でのロジックを同期させる方法および装置である。本発明は複数のクロック信号を含んでおり、該複数のクロック信号は、それぞれ、約５０％のデューティ・サイクルおよびオーバラップしている位相（overlapping phase）を有している。これらの複数のクロックの位相は、個々のクロック信号の位相が、次のクロック信号の位相とのオーバーラップ量にほぼ等しい分だけ、前のクロック信号の位相とオーバーラップするようになっている。さらに、本発明は、複数のクロック同期式プリチャージ論理ゲート（ＣＰ論理ゲート／clocked precharge logic gate）を含んでいる。かかるＣＰ論理ゲートは直列に連結されており、ラッチ、バッファまたはレジスタを介在させる必要はない。ＣＰ論理ゲートは、ロジック評価回路（logic evaluation circuitry）、評価デバイス（evaluate device）および１または複数の信号保持器（signal keeper device）を含んでいる。個々のＣＰ論理ゲートは、その評価デバイスを介して、個々のクロック信号につながっている。個々のＣＰ論理ゲートを通るデータ・フローに関しては、論理ゲートは、そのデータ入力（data input）を、直列配列のより早い方のＣＰ論理ゲート（前のＣＰ論理ゲート／earlier CP logic gate）から受け取るとともに、当該直列配列の次の論理ゲート（next CP logic gate）に渡す。ここで、前述した「前のＣＰ論理ゲート」は前の位相のクロック信号につながっており、「次のＣＰ論理ゲート」は次の位相のクロック信号につながっている。さらに、本発明は、３個、４個、５個および６個のクロック信号を有する実施形態も含む。さらに、本発明においては、論理ゲートは、フィードフォワード・ループ（feed forward loop）またはフィードバック・ループ（feed back loop）内の別の論理回路であって、次の位相のクロック信号を用いる論理回路だけに伝達できるようになっている。
【００５８】
また、本発明は、集積回路（ＩＣ）でのロジックを同期させるためのクロック信号を生成する方法および装置である。そして、本発明は、マスタ・グローバル・クロック（master global clock）を含んでいる。
このマスタ・グローバル・クロックは、関連するクロック・ドメイン・エリアにわたって、低スキューな方法（low-skew manner）で分散される。また、当該マスタ・グローバル・クロックの立ち上がりエッジまたは下降エッジを緩衝（buffering）し遅延（delaying）させることにより、複数のクロックがローカルに生成されようになっている。そして、本発明においては、これらのローカルに生成された複数のクロックは、上記マスタ・グローバル・クロックに関連付けされるようになっている。
マスタ・グローバル・クロックを遅延させたものをローカルに調節することにより、前記複数のローカル生成クロックは調整され、その結果、ロジック設計におけるスキューとジッタのトレランスが実現される。
さらに、本発明は、３個、４個、５個および６個のローカルに生成されたクロックを有する実施形態を含む。
【００５９】
また、本発明は、論理ゲートのクロックを停止または開始するときに、当該論理ゲートのロジック状態を試験できるようにする方法および装置である。本発明は、オーバーラップする位相を含む複数のクロック信号と、直列に連結された複数のＣＰ論理ゲートとを含んでいる。
前記複数のＣＰ論理ゲートのそれぞれは、個々のクロック信号に個別につながっている。さらに、本発明は、１または複数の信号保持器（signal keeper device）を含んでいる。この信号保持器は、ロジック状態のクリティカル・パスにおける所定の個別ＣＰ論理ゲートに接続されている。前記信号保持器は、前記複数のＣＰ論理ゲートのそれぞれについての個別クロック信号を停止または開始するときに、当該複数のＣＰ論理ゲートのロジック状態を試験できるようにしている。本発明は、ＩＤＤＱ・テスティング（IDDQ testing）、スキャン・テスティング（scan testing）およびハードウエア・エミュレーション・テスティング（hardware emulation testing）を含む様々な試験技術に適している。
【００６０】
【発明の実施の形態】
本発明は、集積回路（ＩＣ）において論理回路を同期する方法および装置に関する。本発明の他の実施形態は、３相クロック、４相クロック、５相クロックおよび６相以上のクロックを含む。この開示は、本発明の完全な理解を提供するために、特定の構造、回路および論理機能を含む非常に多くの特定の詳細を説明している。当業者であれば、これらの特定の詳細な説明がなくても本発明を実施できることと理解するであろう。なお、この開示は、本発明が不明確とならないように、トランジスタなどの周知の構造については詳細に説明しない。
【００６１】
波クロック耐スキューＣＰ論理回路(Wave-clocked Skew Tolerant CP Logic)
ハイパフォーマンス・システムの設計者は、引き伸ばしクロック・サイクル（stretched clock cycles）を有する多相クロック（multi-phase clocks）およびオーバーラップしたクロック（overlapped clocks）の利点を維持することを望むが、欠点については排除することを望む。利点は主として、隣接する位相のゲートがともに、ある期間（位相遷移時間（phase transition time）とよばれている）にわたって、評価モード（evaluation mode）にあるという事実によるものである。最大の欠点は、全てのゲートが同時に評価モードになるという事実に関連している。
【００６２】
５０％（または５０％に近い）デューティ・サイクル・クロックが望ましい。この理由の１つは、良好なサイクル時間ジッタ特性を有する伝搬元クロック（source clock）を半分に分割することにより、デューティ・サイクル・スキューを制御できることである。しかし、１２０度位相外れである３つの５０％デューティ・サイクル・クロックを使用したら、システムはどうなるか。クロックのデューティ・サイクルは特に重要である。５０％デューティ・サイクルは、ゲート出力が下降するのに等しい量の時間を、ゲート出力が立ち上がるために提供する。ところが、クロック・デューティ・サイクルが５０％から大きく逸れれば、動作処理におけるプリチャージフェーズ（precharge phase）または評価フェーズ（evaluate phase）の時間が少なくなる。そのため、割当時間内に動作を完了できるように、プリチャージ・トランジスタ（precharge transistor）または評価トランジスタ（evaluation transistor）をより大きく形成することが必要になる。これは、トランジスタ領域の非効率的な使用である。また、プリチャージ・トランジスタは大きいほど、ＣＰゲートのプリチャージ時間をスピードアップさせるが、実際には評価トランジスタにより大きい負荷をかけるため、評価時間を若干スローダウンさせてしまう。その逆も同じことがいえる。つまり、ゲートの評価時間をスピードアップさせるために評価トランジスタをより大きくした場合には、同時により大きい容量をプリチャージできるように、プリチャージ・トランジスタも大きくしなければならない。
【００６３】
図８は本発明の一実施形態であって、５０％デューティ・サイクルを備えた３クロックの信号またはドメインと、１２０度位相外れであるオーバーラッピング・クロック位相を示している。オーバーラッピング・クロックを備えたシステムは、ある位相から次の位相に容易に遷移（transition）できる。全てのクロックが約５０％デューティ・サイクルであると、３つ全てのクロックがHighの時はない。つまり、本発明におけるオーバーラッピング特性とは、いずれか２つの連続するクロック信号がそれらの評価フェーズにおいて、オーバーラップするということである。そして、５０％デューティ・サイクル・クロックは、容易に生成できるだけでなく、サイクルの半分でＣＰゲートをプリチャージすることを可能にする。３つ全てのクロックがHighになる時はないので、あらゆるパスが各クロック位相につき少なくとも１つのゲートを有するようにすれば、保持時間の問題から解放される。（なお、信号を通り抜け式に伝搬させて先行する一群の信号に追いつかせる方法はない。）そして、スキュー範囲（図８に斜線で示す）の外側で遷移できるとすれば、最も遅い信号の伝搬時間（従って、サイクル時間）は、クロック・スキューによって影響されないことになる。等式８は、サイクル時間に関する関係を示している。
【００６４】
Ｔ≡（Ｄ０＋Ｄ１＋Ｄ２＋Ｊ）  ・・・  （式８）
ここで、Ｊ＝クロック周期ジッタ（clock period jitter）であり、
Ｄｉはゲートｉの伝搬遅延である。
【００６５】
本発明のこの実用的側面の重要性を過大評価することはできない。先行技術の解決法は効率的な設計を提供できるが、設計者側に実質的な技術と時間を要求し、設計工程を非効率にする。効率的な高パフォーマンス設計の目的は、デザインが効率的であることと、デザイン工程が効率的であることとの両方を要求する。
【００６６】
上記の例における３相クロックに戻って説明する。クロック位相のオーバーラップ量とその意味に注目すると、Ｔ／２〜Ｔ／３またはＴ／６のオーバーラップ時間があることが分かる。これは、ある位相から次の位相に遷移するために、１サイクルの１／６のウィンドウがあることを意味する。これは、理想的クロックのためのオーバーラップ時間であることに留意されたい。このオーバーラップ時間は、スキューおよびジッタによって削減される。一般的に、Ｎ個のクロック位相があれば、その結果生ずる遷移ウィンドウ時間（Ｗｔ）は、次の式９によって求められる。
【００６７】
Ｗｔ＝Ｔ／２−Ｔ／ｎ−（Ｊ＋Ｋｕ＋Ｋｃ）  ・・・  （式９）
ここで、Ｊ＝クロック・ジッタ、
Ｋｕ＝クロック・スキューの不明確な部分、
Ｋｃ＝クロック・スキューの制御された部分、
Ｔ＝理想的なサイクル時間、
ｎ＝位相の数、および
Ｗｔ＝遷移ウィンドウ時間（transition window time）である。
【００６８】
ジッタおよびスキューの効果はさておき、位相とその前の位相との間のオーバーラップは、その位相と次の位相との間のオーバーラップと同じである。図１８Ａ、１８Ｂ、１８Ｃおよび１８Ｄは、それぞれ３、４、５および６個のクロック・ドメイン・システム（clock domain systems）に関するオーバーラップ位相を示している。
【００６９】
設計者の目標は、評価エッジ（evaluation edge）をこの遷移ウィンドウの中央を通過させることであり、これは、スキュー・トレランス（skew tolerance）を最大化させる。等式９を見ると、位相の数が増えれば、遷移ウィンドウの大きさもそれに応じて拡大することが分かる。多数の論理ゲートの遅延がすべてほぼ同じであるのならウィンドウの大きさはそれほど重要ではないが、異なった複数の論理ゲートの間で遅延に著しい差異があれば（通常はこうなる）、評価エッジを遷移ウィンドウの中央を通過させることは困難になる。この点、設計者が大きくミスしてしまうと、システムはスキューの問題に突き当たり、遷移ウィンドウの大きさを増すためにクロックをスローダウンさせることが必要な場合がある。このことは、クロックにおける位相の数を最大化することの根拠を示している。位相の数は、最長のパスにおけるゲート数によって決定される。したがって、クロック位相の数を設定するにあたっては、所定のクリティカル・パス（critical path）との関係で位相ごとにちょうど１ゲート分の遅延があるようにすることが望まれる。そして、他の全てのパスは、これと同じ数のクロック位相を有することが必要となる（ただし、上記最長のパスよりも短いパスは、余分な位相に対処するために付加されたバッファを有することになる）。つまり、本発明に係る論理回路の同期方法では、一群のＣＰゲートを含むデバイスにおいて、ほぼ全ての信号パスが、同じ数のクロック位相をパスすることを必要とするのである。
【００７０】
クロッキング効率
図９Ａを参照すると、単一のゲートのクロック・サイクルは４つの領域を有することが分かる。すなわち、まずプリチャージ期間（precharge period）ｔｐがあって、この期間では、ゲートが既知の論理値までプリチャージされるようになっている。このプリチャージ期間に続いて、クロックがLowからHighに切り替わる期間がある（ただしこの期間ではゲートへの入力は有効ではない）。この期間はスキュー・トレランス期間（skew-tolerance period）ｔｓｔと考えることができる。その理由は、ゲートが評価モード（evaluate mode）にあると分かるまでは入力が有効にならないように、パスを特別設計しているからである（たとえば、評価エッジは、クロック到着後のある時点で到着する）。続いて、評価期間（evaluation period）ｔｅがあり、ここでは、ゲートの入力が有効になり、ゲートは実際に評価を行う。この期間は、評価エッジが論理ゲートを通過する時間であると考えることができる。最後に、出力保持期間（output-hold-time period）ｔｓｏがあり、この期間では、次のゲートが前のゲートの出力値を捕らえたと分かるまで出力が一定に保持される。そしてここから、ゲートをプリチャージすることによって、プロセスが再開されるようになっている。
【００７１】
論理ゲートは、できるだけ効率的に使用することが望まれる。つまり、ゲートについて動作の異なる４つのフェーズを最適配置することが望まれるのである。特定のロジック機能について「プリチャージ」、「スキュー・トレランス」、「評価」および「保持時間」に必要とされる時間の量を計算してから、これらの時間に対する正しいクロックを生成することができる。この同期スキームにおいて考慮すべき重要な点の１つは、各位相毎の論理回路によって必要とされる評価時間の差異を削減する試みにある。これが遷移ウィンドウの大きさを縮小し、サイクルタイムを改善する。この「評価時間の差異」を削減する１つの方法としては、各位相毎に実行されるロジック機能が、正確に同じ数のゲートを含むようにすることが挙げられる。異なったゲート間で速度にほとんど差がなければ、いくつでも決まった数のゲートを用いることができる。また、位相のオーバーラップ量が大きくなるほど、遷移ウィンドウの大きさは増大する点にも留意すべきであり、このことはクロック位相の数が増えることを示している（その結果、位相ごとのゲート数が減る）。よって、本発明の好適な実施形態は、クロック位相毎に１つのゲートを有している。図９Ｂは、上記の設計原則を用いたときの、本発明のクロッキング・モードを示している。
【００７２】
クロック生成
多相クロッキング・システムにおいて異なったクロック位相を生成するには、基本的に２つの方法がある。まず、単一のクロックを遅延させて成る複数のクロックを生成することが可能である。あるいは、位相検出器（phase detector）を用いて、単一のクロックから、適当に位相外れした多数のクロックを生成することも可能である。単一のクロックだけでルーティングしたいのであれば、当該単一のクロックを遅延させて成る複数クロックから、異なった位相のものを構築しなければならない。
【００７３】
本発明の好適実施形態においては、関連するクロック・ドメイン・エリアの全体にわたって、低スキューな方法で、単一のグローバル・マスター・クロック（global master clock）が分散される。個々の位相は、かかるマスタ・クロックを緩衝し遅延させることにより、複数のローカル域について生成される。このアプローチには、２つの主たる利点がある。第１に、スキューは単一の電気的ノードであるので、当該スキューはマスタ・クロック全体にわたって良好に制御される。第２に、複数のローカル位相クロックはきめ細かな制御によって意図的にスキューすることができる。かかる複数のローカル位相クロックは、それぞれ決まった数のゲートに供給されるからである。マスタ・クロックによって規定されたサイクルの前半において立ち上がるローカル位相クロックは、マスタ・クロックの立ち上がりエッジから派生している。また、マスタ・クロックのサイクルの後半で立ち上がる位相は、マスタ・クロックの下降エッジから派生している。このように、クロックが止められると、少なくとも１つの位相クロックはプリチャージになる。これがレース・スルー（race-through）を防止する。
【００７４】
位相ウィンドウの調整（Tuning the Transition Window）
一のグローバル・クロック源（global clock source）からローカルに生成された複数のクロックを用いることの利点は、特定のコンテキスト用の各ローカル位相クロック（local phase clock）を調整できることである。このようなクロック遅延調整能は、ゲート遅延におけるある程度の非均一性を可能にする。たとえば、比較的長い伝搬時間を有する複数ゲートがあって、それに続いて比較的短い伝搬時間を有するゲートが１個あるとする。かかる短い伝搬時間の1個のゲートを、１つのローカル位相クロックが規制しているのであれば、そのゲートのクロック到着時間を調整して通常よりも遅延させることができる。これは、このゲートの評価エッジが、そのクロックがHighにある期間内で、よりセンタに位置決めされることを可能にする。その結果、それ以外の場合よりも一層高いスキューとジッタのトレランスが達成される。ゲートの入力の最も早い到着時間および最も遅い到着時間は、スタティック・タイミング分析ツール（static timing analysis tool）またはダイナミック・タイミング分析ツール（dynamic analysis tool）によって容易に判断される。このように、この設計方法は、クロック位相遅延を、サイクル内でゲートの評価時間に一致するように調整するものである。また、クロック調整方法は反復的でないことを特筆することも重要である。クロックを適切に調整するために、単一のスタティックまたはダイナミックなタイミング分析（クロックがクリティカル・パス・タイミングに干渉しないという仮定で）を用いることができる。これは、設計工程の効率性の観点から重要である。
【００７５】
効率が低下し始めるので、設計に含ませることのできる不均一なゲート遅延の程度には限界がある。スローペースのゲートがあっても、クロック調整することにより、その隣接ゲートの評価時間の幾分かを用いることが可能になるが、その「スローペースのゲート」はその後もなおプリチャージしなければならない。スローペースで「評価」を実行するゲートは、やはりスローペースで「プリチャージ」する傾向にある。よって、「評価時間」だけのサイクル・スティーリングでは、設計効率の最適化は図られない。実際には、「評価」の時よりも素早く「プリチャージ」するゲートもあるが（一般的には、機能が複雑で出力負荷が小さいもの）、そのようなものは一般的ではない。したがって、効率的設計における評価期間のオーバーラップは、主としてクロックの不安定さを許容する目的である。
【００７６】
ゲートは何故クロック調節されるのか
前述ように、クロックは早い信号が早く行き過ぎるのを防止するために必要である。すなわち、クロックは事象をスローダウンさせるためにある。それゆえ、クロックの設計にあたっては、早いパスには必要なインパクトを与え、遅いパスにはできる限り小さいインパクトを与えるようにしなければならない。そして、クロック同期式プリチャージ・ロジック（clocked-precharged logic）の最大の利点は、同期に用いられるトランジスタが、ロジックの評価パスの側の方にあることである。つまり、同期目的でのみ存在するデバイスを介して、ロジック処理を伝搬させることに利点はない。その代わりのものとして、同期デバイスが、ゲートをＯＮ／ＯＦＦするバーチャルなパワーノード，グランドノードを作り出すようになっている。
【００７７】
ゲートは何故その出力を保持することが必要なのか
ゲートは、それに続くゲートが「評価」処理を開始するのに十分な間、出力を保持しなければならない。予測不可能なスキューの原因があるため、２つのクロック位相だけでは重大な設計を構成できないのは分かっている。なぜなら、一のクロック位相の評価期間と、その次のクロック位相の評価期間との間にオーバーラップがないからである。（なお、Harris論文は、２つのクロックを用いる構成を教示している。これはシンプルな設計ではあるが、早いパスおよび遅いパスの両方を調整することの困難さ故に、実現不可能なものとなっている。）しかし、３つのクロック位相は、図１８Ａに示すように一のクロック位相と次のクロック位相との間において、１／６サイクルのオーバーラップを提供する。図１８Ｂは４つのクロック位相を示している。図１８Ｃは５つのクロック位相を示しており、図１８Ｄは６つのクロック位相を示している。表１に示すように、位相数と評価期間のオーバーラップ量との間には、直接的な関係がある。
【００７８】
【表１】
0004599485.tif 000002
【００７９】
異なったクロッキング方法との関係で図示したクロック波形は全て、好適にバランスが図られており、その結果、予測不能な誤差についてのトレランス（unpredictable error tolerance）が最大化され、また、可能な限りの時間借りが実現される。選択される方法は、存在する誤差量と、所望の時間借り量との合計だけで決定されるべきでる。
【００８０】
典型的な０．１８ｕのプロセスでは、ダイナミック・ゲートは１００ｐｓから２００ｐｓで評価し、１５０ｐｓでプリチャージすることができ、これによってゲートが３００ｐｓから３５０ｐｓでサイクルすることが可能になる。クロック・ジッタ（予測不能誤差）は、５０ｐｓ内に制御できる。したがって、２００ｐｓのゲートが、両側で２５ｐｓずつを借りるとともに、各クロック・エッジで５０ｐｓのジッタに耐えるようにするのであれば、各クロック・ドメイン間において５０ｐｓのオーバーラップが保証されることが必要である。３相方式では、２．２２２ＧＨｚのピーク・クロック・レートについて、最大クロック周期は４５０ｐｓ（１／６で７５ｐｓ）になるであろう。同様の制約で動作する４相方式は、オーバーラップを満足するために３００ｐｓを必要とすると思われるが、４個のゲートは少なくとも６００ｐｓを必要とするので、この方法は、クロック・レートを犠牲にして、必要とされるものを超えるジッタおよび時間借りのトレランスを提供する。したがって、３相クロック（オーバーラップする位相を有する）は、ほとんどの場合についてロジックの同期をとるための好適な解決手段を提供する。なお、３つの位相は、早いパスを調整する必要性をなくす最小数である。
Harris特許や他の先行技術と本発明との相違点の１つは、機能的論理回路の構成である。本発明による論理回路は、かかる機能的論理回路の一部として信号保持デバイス（signal keeper device）を含んでいる。先行技術では、通常、出力バッファとして機能するデバイス（あるいは一種の信号保持機能としてのデバイス）から、論理回路を分離している。しかし、本発明では、このような信号保持回路や出力バッファを、論理回路の一部とみなしている。その結果、本発明では、良好に制御された評価ノードを有することが可能になって、回路内の全てのキャパシタンスが完全に把握されることとなる。また、上記信号保持デバイスを論理回路の一部として含めることにより、本発明では、専用の保持器インバータ（keeper inverter）を必要としなくなっている。たとえば、図１７Ａおよび１７Ｂは、本発明において付加的なインバータ（付け加えのインバータ）が不要になっていることを図示するものであって、図１４Ａおよび１４Ｂに対応している。図１７Ａにおいて、出力２２２は、本発明の教示を利用した回路からの出力を表している。好適実施形態におけるこの出力は、直列接続した次の論理ゲートの入力に直接につながっている。先行技術では、出力信号５６（これは次の論理ゲートにつながる）は、まず付加的インバータ５４（付け加えのインバータ）を通って伝わらなければならないことに留意されたい。同様に、図１７Ｂにおいて、出力２２４は、本発明の教示を利用した回路からの出力を表している。好適実施形態におけるこの出力は、直列接続した次の論理ゲートの入力に直接につながっている。そして、先行技術では、出力信号７６は、まず付加的インバータ７２（付け加えのインバータ）を通って伝わらなければならないことに留意されたい。なお、図１７Ｂにおいては、図１４Ｂの追加インバータ６８を、本発明において説明しているような「全信号保持器」と同様になるように描き直している。
【００８１】
スタティック・インターフェイス
どの設計も完全にダイナミックにはなり得ない。いずれにしても、ダイナミック・ゲートは既存のハードウエアと通信しなければならなくなるが、これらのほぼ全てがスタティック論理回路を用いている。信号をスタティックからダイナミックに変換することは、時間基準点（time reference point）を必要とする。これは、ダイナミック信号は、「状態情報（state information）」および「その状態情報が有効であるかどうか」の両方を伝達するからである。一方、スタティック信号は「状態情報（state information）」のみを伝達するようになっており、その状態情報がいつ有効であるかを示すために、外部の時間基準に依存しなければならない。したがって、適切なダイナミック信号を生成するためには、スタティック信号からの「状態情報（state information）」に、クロックからの「有効情報（validation information）」を加える必要がある。
【００８２】
ダイナミック・ゲートが評価フェーズにあるときには、その入力は当該評価フェーズが終わる前に到着しなければならない。さらに、その入力は、この周期中に、アサート（assert）された状態からプリチャージされた状態に遷移しなければならない。別の言い方をすれば、ゲートが評価処理しているときには、その入力は i) アサートされているか、ii) アサートされていないか、あるいは iii) アサートされていない状態からアサートされた状態に遷移しているかでなければならず、アサートされた状態からアサートされていない状態に遷移していてはならない。
【００８３】
スタティック信号は、１サイクル中にそれらの最終的で有効な値を達成する前に、何回も切り替わることができる。また、スタティック信号はその電圧レベルを利用して情報を符号化する（一般的に、高い電圧「High」は論理１を示し、低い電圧「Low」は論理ゼロを示す）。スタティック論理回路のこれら２つの特性は、スタティック論理回路がＣＰ論理回路と連動するときに問題を引き起こす。
【００８４】
両方の問題が関連する事実というのは、ＣＰ論理ゲートは評価フェーズの間に、それらのプリチャージ状態を回復できないということである。そのため、ＣＰゲートへのスタティック入力が、最終的にLowに向かう前に、ＣＰゲートの評価フェーズ中に一時的にHighになる場合を想定してみる。かかる場合には、ＣＰゲートは、一時的で無効なHighのスタティック信号に反応して、誤って切り替わってしまうことになる。
【００８５】
このような事態を回避するためには、スタティック信号を制御して、ＣＰゲートの評価フェーズ中に誤ってHighに遷移しないようにしなければならない。このような制御は、ＣＰゲート入力が評価フェーズの間安定するような方法で、ＣＰゲートに先立ってスタティック信号をラッチすることにより行うことができる。
【００８６】
なお、ＣＰゲートは反転機能（インバータ機能）を提供しないので、単にラッチしたスタティック信号だけでなく、ラッチして反転したものを提供することが一般的に必要である。
【００８７】
クロッキング・デバイス
前述のように、ダイナミック・ゲートは信号保持器を含む場合がある。設計者は、ダイナミック・ゲートの評価期間が終わる前に、ダイナミック・ゲートへの入力を消失させることを望むので、ゲートの評価スタックが、一部の時間にわたって、内部評価ノード用のグランドへのパスを提供しない可能性がある。このようになったとき、当該評価ノードは電源からもグランドからも完全に切断されてしまい、その所望の電圧レベルからドリフトする。「真（true）」と評価されたゲート（その評価ノードを放電したゲート）については、電圧はHighへドリフトする場合がある。さらに、ゲートが評価フェーズにあるときには、入力は「真（true）」でない場合があり、このことは評価ノードが放電しないことを意味する。この場合、かかるノードを放電するためのグランドへのパスはないが、ノードをHighに保持する電源へのパスもない（ノードはプリチャージしていない）。したがって、当該ノードはLowへドリフトするであろう。
【００８８】
ダイナミック論理回路方式には、Harris特許に記載されているように、評価期間の全体にわたって入力が存在するようにするものがあるが、Harris特許ではこのダイナミック論理回路方式を「ドミノ」論理回路と呼んでいる。ドミノは、直列のダイナミック・ゲートの配列であり、全てのゲートが一度にプリチャージされ、続いて全てのゲートが一度に評価される。これらのゲートが評価フェーズにあるときに、入力が直接配列の第１ゲートに供給され、直立された一連のドミノのように、評価ノードは「倒れ」始める。この構成において、各ダイナミック・ゲートへの入力は、それらの評価フェーズ全体をとおして有効である。（「ドミノ」という語は、当該技術分野において誤って用いられており、あらゆるダイナミック・ゲートを意味することが多い点に留意されたい。実際には、「ドミノ」はダイナミック・ゲートの最初の普及されたクロッキング方法の１つを意味する）。入力が有効（Low、High、またはLowからHighへの遷移）であるときには、Ｎチャネルの信号保持器は必要ない。Ｎチャネルの保持器は、以前に「真（true）」であった入力がなくなった後に、入力をLowに保持するためのみ必要であると思われる。したがって、HighからLowへの遷移があったということである。
【００８９】
本発明に記載したクロッキング方法は、ドミノ論理回路のクロッキング方法とは異なる。全てのドミノを直立させてから、一連のドミノのうち最初のものを倒す代わりに、本発明は、隣のドミノを倒した直後に、各ドミノを元通りに立て直す。このように動くドミノを見れば、それらの倒れるパターンは「波（wave）」として伝搬するように見えると思われるので、これはドミノ・クロッキングではなくウェーブ・クロッキングと呼ぶ方がより適切である。このクロッキング方法を用いると、全ての信号が、各クロック位相に対応する唯一のゲートを通って伝搬する。隣り合うゲートの各組合せについて、それぞれの評価期間が十分にオーバーラップするので、ジッタに起因するクロック自体の不正確さは許容される。これらのオーバーラップは、信号が伝搬するのに通らなければならない「波」、すなわち時間の回廊を表す。信号がゲートに早く到着した場合には、信号は、その評価クロック期間まで、そのゲートを通り始めるのを遅らされるだけである。
【００９０】
本発明の好適実施形態の要素のいくつかを要約すれば、次のとおりである。すなわち、各クロック位相のゲートは、その入力を前のクロック位相のゲートからのみ受け取らなければならないので、全てのパスは同じレベル数の論理回路を通らなければならないということである。また、あってもごく僅かの例外を除いて、ダイナミック・スタティック・インターフェイスで生ずる同期損失を回避するために、全ての信号は動的である。本発明は、ラッチ、レジスタおよびフリップ・フロップの使用を避けており、これはさらに同期損失を削減する。また、フィードバック・パスおよびフィードフォワード・パスは、このクロッキング方法におけるクロック位相数に等しい数のゲート（整数倍数のゲート）をスキップしなければならない。
【００９１】
本発明とドミノ論理回路との重要な相違は、本発明における１つのダイナミック・ゲートへの入力が、一連になった次のダイナミック・ゲートがその評価期間を完了する前に消失することである。したがって、評価処理するゲートへの入力で、HighからLowへの遷移を得ることは可能である。これが受け入れ可能である理由は、信号は「High」であれば正しく、ダイナミック・ゲートでの処理は単に次のゲートに情報を伝搬することで簡単に行われるからである。なお、この場合当該ゲートは、本格的にプリチャージを開始して次の評価フェーズに向けて準備する必要がある。しかし、ゲートはHighからLowに遷移できるので、評価ノードが放電されている状態に遭遇することができるが、低周波数動作中またはクロックが停止しているときに、放電させたまま保持するものではない。したがって、信号保持器が必要である。これは、本発明が、図１０Ａ、１１Ａおよび１１Ｂに示したような論理回路の一部として信号保持器を必要とするためである。信号保持器がなければ、低周波数動作中またはクロックが停止したときに浮動している、ＣＰ論理デバイスのダイナミック・ノードは、未知の電圧レベルにドリフトするであろう。図２０は、図１８Ｃに示すような５相クロック・システムを図示するものであって、低周波数動作で遭遇する問題を示している（１／１０のクロック速度で作動）。符号２０１０−２０２０の間は、ＣＬＫ０がいつ評価期間にあるかを示している。符号２０３０は、ＣＬＫ５の下降エッジを示している。ＣＬＫ５は、ＣＬＫ１が２０２０で「評価」から出て「プリチャージ」に入ってしまうまで、プリチャージ２０４０にある。ＣＬＫ１が「評価」状態にある時間の長さのために、そのダイナミック・ノードは未知の電圧レベルにドリフトするであろう。
【００９２】
図１８Ａ、１８Ｂ、１８Ｃおよび１８Ｄは、本発明のクロッキング・システムを示している。図面において、ｔｅはクロック・サイクルの「評価」フェーズであり、ｔｐはクロック・サイクルの「プリチャージ」フェーズである。また、個々のクロックは５０％のデューティ・サイクルを有する。異なる複数のクロックは次のとおりになっている。すなわち、個々のクロック信号の位相が、次のクロック信号の位相とのオーバーラップ量に等しい分だけ、より早いクロック信号の位相にオーバーラップするようになっている。そして、クロックの位相のオーバーラップというのは、２またはそれ以上のクロック信号が、いずれの時間においてもそれらの評価フェーズにおいてオーバーラップするように、生ずるようになっている。図１８Ａは、クロックＣＬＫ１、ＣＬＫ２およびＣＬＫ３を備えた三相クロッキング・システムを示している。符号２５０は、異なったクロックの評価サイクルの「波」の伝搬を示している。図１８Ｂは、クロックＣＬＫ１、ＣＬＫ２、ＣＬＫ３およびＣＬＫ４を備えた四相クロッキング・システムを示している。符号２５２は、異なったクロックの評価サイクルの「波」の伝搬を示している。図１８Ｃは、クロックＣＬＫ１、ＣＬＫ２、ＣＬＫ３、ＣＬＫ４およびＣＬＫ５を備えた五相クロッキング・システムを示している。符号２５４は、異なったクロックの評価サイクルの「波」の伝搬を示している。また、図１８Ｄは、クロックＣＬＫ１、ＣＬＫ２、ＣＬＫ３、ＣＬＫ４、ＣＬＫ５およびＣＬＫ６を備えた六相クロッキング・システムを示している。符号２５６は、異なったクロックの評価サイクルの「波」の伝搬を示している。
【００９３】
本発明の好適実施形態を用いた設計は、十分に高いクロック速度で動作するようになっており、その結果、評価ノードがドリフトする時間がないようになっている。たとえば、２ＧＨｚでは、まずLowにされていなければならないので、評価ノードがHighに保持されない時間はわずか２５０ｐｓであり、Lowに保持されない時間はそれよりもさらに短い。信号保持器は、ノイズを免れることにある程度役立っており、これは、評価ノードに重大なノイズの問題がある場合には、特に重要な問題である。Harris特許において議論されているように、評価ノード自体が出力として用いられるので、評価ノードは長い配線にすることができると示唆されている。このようになった場合に、ゲート内における保持器トランジスタの必要性を増大させる、大きな連結構成部品が存在し得る。しかし、本発明は、評価ノードが完全に論理ゲート内に保持されることを必要とする。これによって、Harris特許や他の先行技術にあるような、信号上の追加信号保持器が不要になるほどに、連結効果が削減される。
【００９４】
図１９Ａ、１９Ｂ、１９Ｃおよび１９Ｄは、本発明の論理回路の同期をとるためのシステムを用いた、集積回路におけるパイプライン設計を示している。本発明の好適実施形態は、個々の論理回路がその入力を、直列配列におけるより早い論理回路から受け取り、それを直列配列の次の論理回路に渡すことを定めている。より早い論理回路はより早い位相クロック信号につながっており、直列配列の次の論理回路は次の位相クロック信号につながっている。また、本発明の好適実施形態は、論理回路が、フィードバック・ループまたはフィードフォワード・ループにおける別の論理回路（当該回路は次の位相クロック信号を用いる）だけに供給してもよいことを定めている。
【００９５】
図１９Ａは、クロックＣＬＫ１、ＣＬＫ２およびＣＬＫ３を備えた三相クロッキング・システム（図１８Ａに示す）を用いた集積回路におけるパイプライン１１０を示している。パイプライン１１０は、データパス１２８，入力信号１１２および出力信号１１４を含む。データパス１２８は、上記パイプラインを介して信号を伝搬させるために、１本または複数の配線を含む。たとえば、データパス１２８は、１つまたは複数のＮ進信号を含む場合がある。また、入力信号１１２および出力信号１１４は、Ｎ進符号化を用いた信号を含む場合がある。パイプライン１１０は、データパス１２８に直列に連結された、論理回路１１６，１１８、１２０、１２２、１２４および１２６を含む。これらの論理回路は、Ｎ進論理回路を含む場合がある。また、各論理回路は、さらに、１つまたは複数の追加の論理回路を含む場合がある。
【００９６】
図１９Ｂは、クロックＣＬＫ１、ＣＬＫ２、ＣＬＫ３およびＣＬＫ４を備えた四相クロッキング・システム（図１８Ｂに示す）を用いた集積回路におけるパイプライン１３０を示している。パイプライン１３０は、データパス１３６、入力信号１３２および出力信号１３４を含む。データパス１３６は、上記パイプラインを介して信号を伝搬するために、１本または複数の配線を含む。たとえば、データパス１３０は１つまたは複数のＮ進信号を含む場合がある。また、入力信号１３２および出力信号１３４は、Ｎ進符号化を用いた信号を含む場合がある。パイプライン１３０は、データパス１３６に直列に連結された、論理回路１３８、１４０、１４２、１４４、１４６、１４８、１５０および１５２を含む。これらの論理回路は、Ｎ進論理回路を含む場合がある。また、各論理回路は、さらに、１つまたは複数の追加の論理回路を含む場合がある。
【００９７】
図１９Ｃは、クロックＣＬＫ１、ＣＬＫ２、ＣＬＫ３、ＣＬＫ４およびＣＬＫ５を備えた五相クロッキング・システム（図１８Ｃに示す）を用いた集積回路におけるパイプライン３００を示している。パイプライン３００は、データパス３０４、入力信号３０２および出力信号３２６を含む。データパス３０４は、上記パイプラインを介して信号を伝搬するために、１本または複数の配線を含む。たとえば、データパス３０４は、１つまたは複数のＮ進信号を含む場合がある。また、入力信号３０２および出力信号３２６は、Ｎ進符号化を用いた信号を含む場合がある。パイプライン３００は、データパス３０４に直列に連結された、論理回路３０６、３０８、３１０、３１２、３１４、３１６、３１８、３２０、３２２および３２４を含む。論理回路はＮ進論理回路を含む場合がある。また、各論理回路は、さらに、１つまたは複数の追加の論理回路を含む場合がある。
【００９８】
図１９Ｄは、クロックＣＬＫ１、ＣＬＫ２、ＣＬＫ３、ＣＬＫ４、ＣＬＫ５およびＣＬＫ６を備えた六相クロッキング・システム（図１８Ｄに示す）を用いた集積回路におけるパイプライン１６０を示している。パイプライン１６０は、データパス１６６、入力信号１６２および出力信号１６４を含む。データパス１６６は、上記パイプラインを介して信号を伝搬するために、１本または複数の配線を含む。たとえば、データパス１６６は、１つまたは複数のＮ進信号を含む場合がある。また、入力信号１６２および出力信号２６４は、Ｎ進符号化を用いた信号を含む場合がある。パイプライン１６６は、データパス１６６に直列に連結された、論理回路１６８、１７０、１７２、１７４、１７６、１７８、１８０、１８２、１８４、１８６、１８８および１９０を含む。論理回路はＮ進論理回路を含む場合がある。また、各論理回路は、さらに、１つまたは複数の追加の論理回路を含む場合がある。
【００９９】
図１９Ｅは、図１９Ａのパイプライン１１０を備えたフィードバック・ループおよびフィードフォワード・ループを示している。
ＣＬＫ１信号につながる論理回路１２２は、ＣＬＫ２信号につながる論理ゲートのみと通信し得る。この場合の「ＣＬＫ２につながる論理ゲート」は、フィードバック・ループ８００経由の論理ゲート１１８、または論理ゲート１２４（パイプライン１１０において直列に連結されている）のいずれかである。
また、ＣＬＫ２信号につながる論理回路１１８は、ＣＬＫ３信号につながる論理ゲートのみと通信し得る。この場合の「ＣＬＫ３信号につながる論理ゲート」は、フィードフォワード・ループ８０２経由の論理ゲート１２６、または論理ゲート１２０（パイプライン１１０において直列に連結されている）のいずれかである。
【０１００】
クロックの停止
本発明の最後の態様は、クロックを停止することが論理回路に与える影響に関する。クロックを停止するときには、「High」状態または「Low」状態のいずれかで停止する必要がある。クロックが停止されると、ダイナミック・ゲートのシーケンス内のゲートには、「プリチャージ」状態で停止されるものもあれば、「評価」状態で停止されるものもある。ここで、あるゲートを評価状態で停止するとき、その前のゲートがプリチャージ状態で停止される場合には、当該ゲート（前者のゲート）の入力は存在しなくなるおそれがある。そのため、このゲートはＮチャネルの保持器（N-channel keeper）を必要とする。また、停止されたときに、ゲートの入力は論理ゼロの出力になる場合があり（Ｎスタックがオフの場合）、そのため、このゲートはＰチャネルの保持器（P-channel keeper）を必要とするようになる。図１１Ａおよび１１Ｂに示したように、本発明の保持器には、全保持器（full-keeper）と半保持器（half-keeper）の２つの形式がある。したがって、クロックを停止するときに評価処理されたゲートの出力を見る必要があれば、集積回路は、一連の論理回路のクリティカル・パス内に全保持器を含まなければならない。
【０１０１】
製造試験の過程では、低レベルの電流漏出がないか回路を試験するために、クロックはHigh状態およびLow状態の両方で停止される。このタイプの試験は、ＩＤＤＱテスティングとして一般的に知られており、潜在欠陥がないか試験し、回路製品の出力特性および信頼性を改善するために用いられる。簡単な測定によれば、あらゆるゲートは評価状態で停止され、したがって、あらゆるゲートは全保持器を必要とする。しかし、直列の論理ゲート内の全てのゲートが全保持器を含む必要はない。直列配列において、評価処理を実行した最初のゲートが全保持器を有するようにすれば、評価フェーズにあるゲートは停止し、残りの評価ゲートは、ドミノ・クロッキング方式（domino clocking strategy）と同様に、その入力を「真（true）」に保持することになる。これは、各クロック位相が次のクロック位相にのみ供給しなければならない、本発明の論理回路の同期をとるための形式によって大幅に単純化されることに留意されたい。
【０１０２】
ハードウエア・エミュレーション・テスティング（hardware emulation testing）およびスキャン・テスティング（scan testing）は他の機能であり、これらは、クロックを停止し且つ回路をその状態に保持する能力によって大きく利益を受ける。両方のアプリケーションにおいて、「クロックを停止できること」と、「有効な回路状態を検査および／または修正できること」が望ましいし、必要でさえある。本発明はこのようになることを可能にし、さらに、回路の動作を妨げずにクロックを再始動することを可能にする。
【０１０３】
クロック停止を説明すると、６相設計が考えられる。この場合、グローバル・クロック信号に応じて３つのクロックが生成され、グローバル・クロック信号の反転に応じて３つのクロックが生成される。直列配列の論理ゲートは、測定をサイクルのどこで行うかにもよるが、下記の６個の位相の１つにおいて、プリチャージ（Ｐ）または評価（Ｅ）の論理ゲートを有することになる。
【０１０４】
【表２】
0004599485.tif 000003
【０１０５】
位相０〜２は「正」のクロック信号から派生しており、位相３〜５は「反転」のクロック信号から派生しているので、これらのクロックはこれらの状態のいずれかで停止することができる。
【０１０６】
【表３】
0004599485.tif 000004
【０１０７】
表２に示したその他の４つの状態は一時的なものであり、クロックが停止されたときには存続しない。したがって、最低でも、位相０のクロックおよび位相３のクロックにおける論理ゲートは、全保持器を必要とし、その他の位相における論理ゲートは半保持器を使用する場合がある。
【０１０８】
本発明は、集積回路（ＩＣ）でのロジックを同期させる方法および装置である。本発明は、オーバーラップする位相および約５０％のデューティ・サイクルを有する複数のクロック信号を含んでいる。前記複数のクロックの位相はそれぞれ、次のクロック信号の位相とのオーバーラップ量に等しい分だけ、前のクロック信号の位相とオーバーラップするようになっている。さらに、本発明は、直列に連結された複数のクロック同期式プリチャージ論理ゲート（ＣＰ論理ゲート／Clocked Precharge Logic Gate）を含んでいる。ＣＰ論理ゲートは、ロジック評価回路（logic evaluation circuitry）、評価デバイス（evaluate device）、および１または複数の信号保持器（signal keeper device）を含んでいる。個々のＣＰ論理ゲートは、ＣＰ論理ゲートの評価デバイスを介して、個々のクロック信号につながっている。個々のＣＰ論理ゲートを通るデータ・フローに関しては、論理ゲートは、そのデータ入力（data input）を、直列配列における前のＣＰ論理ゲートから受け取るとともに、それを当該直列配列における次のＣＰ論理ゲートに渡す。前述した「前のＣＰ論理ゲート」は前の位相のクロック信号につながっており、「次のＣＰ論理ゲート」は次の位相のクロック信号につながっている。本発明によれば、ＣＰ論理ゲートの配置およびオーバーラップするクロック（デューティ・サイクル：５０％）によって、従来型の論理回路におけるレジスタやラッチに固有の「同期」のオーバーヘッド・コストを回避することができる。さらに、本発明は、３個、４個、５個および６個以上のクロック信号を備えた実施形態を含んでいる。また、本発明においては、論理ゲートは、フィードバック・ループ（feed back loop）またはフィードフォワード・ループ（feed forward loop）内の別の論理回路であって、次の位相のクロック信号を用いる論理回路にのみ伝達できるようになっている。
【０１０９】
また、本発明は、集積回路（ＩＣ）でのロジックを同期させるためのクロック信号を生成する方法および装置である。そして、本発明は、マスタ・グローバル・クロック（master global clock）を含んでいる。
このマスタ・グローバル・クロックは、関連するクロック・ドメイン・エリアにわたって、低スキューな方法（low-skew manner）で分散される。また、当該マスタ・グローバル・クロックの立ち上がりエッジまたは下降エッジを緩衝（buffering）し遅延（delaying）させることにより、複数のクロックがローカルに生成されようになっている。そして、本発明においては、これらのローカルに生成された複数のクロックは、上記マスタ・グローバル・クロックに関連付けされるようになっている。
マスタ・グローバル・クロックを遅延させたものをローカルに調節することにより、前記複数のローカル生成クロックは調整され、その結果、ロジック設計におけるスキューとジッタのトレランスが実現される。
さらに、本発明は、３個、４個、５個および６個のローカルに生成されたクロックを有する実施形態を含む。
【０１１０】
また、本発明は、論理ゲートのクロックを停止または始動するときに、当該論理ゲートのロジック状態を試験できるようにする方法および装置である。本発明は、オーパーラップする位相を備えた複数のクロック信号および、直列に連結された複数のＣＰ論理ゲートを含んでいる。
前記複数のＣＰ論理ゲートのそれぞれは、個々のクロック信号に個別につながっている。さらに、本発明は、１または複数の信号保持器（signal keeper device）を含んでいる。この信号保持器は、ロジック状態のクリティカル・パスにおける所定の個別ＣＰ論理ゲートに接続されている。前記信号保持器は、複数の論理ゲートのそれぞれについての個別クロック信号を停止または始動するときに、当該複数のＣＰ論理ゲートのロジック状態を試験できるようにしている。本発明は、ＩＤＤＱテスティング（IDDQ testing）、スキャン・テスティング（scan testing）およびハードウエア・エミュレーション・テスティング（hardware emulation testing）を含む、様々な試験技術に適している。
【０１１１】
本発明の他の実施形態は、当業者であれば、この明細書を検討するか開示された発明を実施すれば明らかになるであろう。この明細書および上記の実施例は代表的なものにすぎず、本発明の範囲は特許請求の範囲に示されていることに留意されたい。
【図面の簡単な説明】
【図１】  クロック生成システムを示している。
【図２】  フリップ・フロップで始まり終わる単純な論理パスを示している。
【図３】  クロック信号の例である。
【図４】  クロック生成器を示している。
【図５】  スキュー抵抗力のない論理回路（skew intolerant logic）を示している。
【図６】  ２相クロックでクロック調整された論理回路を示している。
【図７】  ２相クロックでクロック調整された論理回路を示している。
【図８】  ３相クロックを備えた本発明の実施形態を示している。
【図９】  （Ａ）は、ダイナミック・ゲートの所望の動作モードを示しており、（Ｂ）は、典型的なダイナミック・ゲートの動作モードを示している。
【図１０】  （Ａ）は、本発明において用いられる４つの論理回路うちの１つを示しており、（Ｂ）は、本発明において用いられる４つの論理回路のうちの１つを示している。
【図１１】  （Ａ）は、本発明の別の信号保持器デバイスを示しており、（Ｂ）は、本発明の別の信号保持器デバイスを示している。
【図１２】  集積回路内のパイプラインの例である。
【図１３】  先行技術の論理回路の例を示している。
【図１４】  （Ａ）は、先行技術の論理回路の例を示しており、（Ｂ）は、先行技術の論理回路の例を示している。
【図１５】  （Ａ）は、ダイナミック論理ゲート用のクロック条件付け（clock conditioning）を示しており、（Ｂ）は、ダイナミック論理ゲート用のクロック条件付けを示しており、（Ｃ）は、ダイナミック論理ゲート用のクロック条件付けを示している。
【図１６】  先行技術の４相クロック・システムを示している。
【図１７】  （Ａ）は、先行技術と本発明との間における、論理ゲート構成の相違を示しており、（Ｂ）は、先行技術と本発明との間における、論理ゲート構成の相違を示している。
【図１８】  （Ａ）は、本発明のクロッキング・システムを示しており、（Ｂ）は、本発明のクロッキング・システムを示しており、（Ｃ）は、本発明のクロッキング・システムを示しており、（Ｄ）は、本発明のクロッキング・システムを示している。
【図１９】  （Ａ）は、本発明を備えた論理回路のパイプライン化を示しており、（Ｂ）は、本発明を備えた論理回路のパイプライン化を示しており、（Ｃ）は、本発明を備えた論理回路のパイプライン化を示しており、（Ｄ）は、本発明を備えた論理回路のパイプライン化を示している。
【図２０】  低周波数で動作する図１８Ｃの５相クロック・システムを示している。
【図１】
0004599485.tif 000005
【図２】
0004599485.tif 000006
【図３】
0004599485.tif 000007
【図４】
0004599485.tif 000008
【図５】
0004599485.tif 000009
【図６】
0004599485.tif 000010
【図７】
0004599485.tif 000011
【図８】
0004599485.tif 000012
【図９】
0004599485.tif 000013
【図１０】
0004599485.tif 000014
【図１１】
0004599485.tif 000015
【図１２】
0004599485.tif 000016
【図１３】
0004599485.tif 000017
【図１４】
0004599485.tif 000018
【図１５】
0004599485.tif 000019
【図１６】
0004599485.tif 000020
【図１７】
0004599485.tif 000021
【図１８】
0004599485.tif 000022
【図１９】
0004599485.tif 000023
【図２０】
0004599485.tif 000024