(57)【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）の複数のフロップ回路を第１のモードで動作させるステップであって、前記複数のフロップ回路はそれぞれ、マスターラッチとスレーブラッチを有し、前記第１のモードで動作させるステップは、前記複数のフロップ回路の各々に関して、前記マスターラッチは、第１のクロック信号に従ってトランスペアレントであり、前記スレーブラッチは、第２のクロック信号に従ってトランスペアレントであり、前記マスターラッチと、前記スレーブラッチが同時にトランスペアレントにならないことを含むステップと、
前記複数のフロップ回路の各々を第２のモードで動作させるステップであって、前記第２のモードで動作させるステップは、前記複数のフロップ回路の各々に関して、前記マスターラッチをトランスペアレントに保持するステップを含み、前記スレーブラッチは、前記第２のクロック信号に従ってトランスペアレントであることを含むステップと、
前記第１のモードおよび種々のパルス幅を有する前記第２のクロック信号に従った前記第２のモードでの前記動作させるステップに基づいて、前記ＩＣのその後の改訂に備えて、前記複数のフロップのどれをマスタースレーブフリップフロップとして動作させ、どのフロップをパルスフロップとして動作させるべきかを判定するステップとを含む方法。
【請求項２】
前記ＩＣの前記その後の改訂において、前記複数のフロップの第１のフロップはマスタースレーブフリップフロップとして動作すべきと判定するステップと、前記ＩＣの前記その後の改訂において、前記複数のフロップの第２のフロップはパルスフロップとして動作すべきと判定するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記ＩＣの前記その後の改訂に備えて、前記複数のフロップの前記第１のフロップの前記マスターラッチのクロック入力を前記第２のクロック信号を受信するように構成するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記複数のフロップの前記第１のフロップの前記マスターラッチを、前記第２のクロック信号の第１の相においてトランスペアレントになるように構成するステップと、前記スレーブラッチを前記クロック信号の第２の相においてトランスペアレントになるように構成するステップをさらに含み、前記第２の相が、前記第１の相の逆相である、請求項３に記載の方法。
【請求項５】
前記複数のフロップの第１のサブセットの各々は、マスタースレーブフリップフロップとして動作すべきであり、前記複数のフロップの第２のサブセットの各々は、パルスフロップとして動作すべきと判定するステップをさらに含み、前記判定するステップが、各々のフロップに対して個別に行なわれる、請求項１に記載の方法。
【請求項６】
前記第１のモードにおいて動作する際、前記第１のクロック信号および前記第２のクロック信号は、それぞれが５０％未満のデューティサイクルを有するパルスクロック信号である、請求項１に記載の方法。
【請求項７】
前記第２のモードにおいて動作する際、直流電流信号が、前記第１のクロック信号の代わりに供給され、前記第２のクロック信号は、５０％未満のデューティサイクルを有するパルスクロックである、請求項１に記載の方法。
【請求項８】
前記第２のクロック信号を、第１の状態にあるクロックユニットによって受信される信号に応答して第１のパルス幅で供給するステップと、前記第２のクロック信号を、第２の状態にある前記信号に応答して前記第１のパルス幅を下回る第２のパルス幅で供給するステップをさらに含む、請求項７に記載の方法。
【請求項９】
第１の動作モードにおいて第１の信号パスに第１のクロック信号を伝送するように構成され、第２の動作モードにおいて前記第１の信号パスに直流電流信号を伝送するようにさらに構成されたクロックユニットであって、前記第１および第２の動作モードの各々において、第２の信号パスに第２のクロック信号を伝送するようにさらに構成され、前記第２のクロック信号のパルス幅を変動させるようにさらに構成されたクロックユニットと、
マスターステージと、スレーブステージをそれぞれ含む第１の複数のフロップ回路であって、前記第１の複数のフロップ回路のそれぞれの前記マスターステージは、前記第１の信号パスに結合された第１のクロック入力を含み、前記第１の複数のフロップ回路のそれぞれの前記スレーブステージは、前記第２の信号パスに結合された第２のクロック入力を含む第１の複数のフロップ回路とを含み、
前記第１の複数のフロップ回路の各々は、前記第１の動作モードにおいてマスタースレーブフリップフロップとして動作するように構成され、前記第１の複数のフロップ回路の各々は、前記第２の動作モードにおいてパルスフロップ回路として動作するように構成される集積回路。
【請求項１０】
前記クロックユニットは、前記第１の複数のフロップ回路の各々の前記マスターステージと、前記スレーブステージが、前記第１のモードで動作する際、同時にトランスペアレントにならないように前記第１および第２のクロック信号を調整するように構成される、請求項９に記載の集積回路。
【請求項１１】
前記クロックユニットは、前記第１または第２の動作モードの一方を選択するようにさらに構成される、請求項９に記載の集積回路。
【請求項１２】
前記集積回路はさらに、第２の複数のフロップ回路を含み、前記第２の複数のフロップ回路の各々が、マスタースレーブフリップフロップ構成においてマスターラッチとして作用するように構成された第１ステージと、スレーブラッチとして作用するように構成された第２のステージとを含み、前記第１および第２ステージの各々のクロック入力はそれぞれ、前記第２のクロック信号を受信するように結合され、前記第２の複数のフロップ回路の前記第１および第２ステージは、それらが互いに同時にトランスペアレントにならないように構成される、請求項９に記載の集積回路。
【請求項１３】
第３の複数のフロップ回路をさらに備え、前記第３の複数のフロップ回路の各々は、単一ステージのパルスフロップである、請求項１２に記載の集積回路。
【請求項１４】
集積回路（ＩＣ）設計のレイアウトを実施するステップであって、前記レイアウトを実施するステップが、複数のフロップの各々のマスターラッチを第１のクロック信号を受信するように構成するステップと、前記複数のフロップの各々のスレーブラッチを第２のクロック信号を受信するように構成するステップを含むステップと、
前記ＩＣ設計を実装するステップと、
前記ＩＣを第１のモードで動作させるステップであって、そこでは前記複数のフロップの各々の前記マスターラッチは、前記第１のクロック信号に応答してトランスペアレントであり、前記複数のフロップの各々の前記スレーブラッチは、前記第２のクロック信号に応答してトランスペアレントであるステップと、
前記ＩＣを第２のモードで動作させるステップであって、そこでは前記複数のフロップの各々の前記マスターラッチは、トランスペアレントに保持され、前記複数のフロップの各々の前記スレーブラッチは、前記第２のクロック信号に応答してトランスペアレントであるステップと、
前記第１のモードおよび種々のパルス幅を有する前記第２のクロック信号に応答した前記第２のモードでの前記動作させるステップに基づいて、前記ＩＣのその後の改訂に備えて、前記複数のフロップのどれがマスタースレーブフリップフロップとして動作すべきか、どのフロップがパルスフロップとして動作すべきかを判定するステップとを含む方法。
【請求項１５】
前記複数のフロップのどれがマスタースレーブフリップフロップとして動作し、どのフロップがパルスフロップとして動作すべきかの前記判定するステップは、前記複数のフロップの各々に対して個別に行なわれる、請求項１４に記載の方法。
【請求項１６】
前記判定するステップが、前記複数のフロップのどれが、前記第２のモードでの動作中に前記ＩＣの誤作動を引き起こしているかを判定するステップを含む、請求項１４に記載の方法。
【請求項１７】
前記複数のフロップの選択されたフロップを、前記その後の改訂においてマスタースレーブフリップフロップとして動作するように構成するステップをさらに含み、前記その後改訂に備えて、前記複数のフロップの選択されたフロップに関するクロック接続の前記修正するステップを含んでおり、前記クロック接続の前記修正するステップは、前記複数のフロップの選択されたフロップの前記マスターラッチのクロック入力を、前記第１のクロック信号を伝送するように結合された第１の信号パスから切り離すステップと、
前記複数のフロップの前記選択されたフロップの前記マスターラッチの前記クロック入力を前記第２のクロック信号を伝送するように結合された第２の信号パスに接続するステップとをさらに含む、請求項１４に記載の方法。
【請求項１８】
前記切り離すステップと、前記接続するステップは、金属層を変えることで、前記複数のフロップの前記選択されたフロップの前記マスターラッチの前記クロック入力が、前記その後の改訂に備えて前記第２の信号パスに結合されるステップを含む、請求項１７に記載の方法。
【請求項１９】
前記複数のフロップの前記選択されたフロップを前記その後の改訂においてパルスフロップとして動作するように構成するステップをさらに含み、前記構成するステップが、
前記複数のフロップの前記選択されたフロップの前記マスターおよびスレーブラッチのクロック接続をその後の改訂に備えてもとのままにするステップと、
前記ＩＣの前記その後の改訂を前記第２のモードで動作させるステップであって、前記複数のフロップの前記選択されたフロップの前記マスターラッチは、前記第２のモードでの動作中トランスペアレントのままであるステップとを含む、請求項１４に記載の方法。
【請求項２０】
前記第２のクロック信号は、５０％未満のデューティサイクルを有するパルスである、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子回路に関し、より詳細には集積回路設計におけるフロップ回路の選択に関する。
【背景技術】
【０００２】
集積回路（ＩＣ）は、広範な種類の様々なタイプの記憶回路を利用することができる。一般的に利用される記憶回路には、マスタースレーブフリップフロップと、ラッチ回路が含まれる。フリップフロップおよびラッチは、ＩＣにおける一時的なデータ状態の記憶を行なうこと、例えば組み合わせ論理の第１のブロックと、組み合わせ論理の第２のブロック間の遷移における信号状態の記憶などのために広く利用することができる。
【０００３】
ＩＣで利用される別の種類の記憶回路は、パルスフロップである。パルスフロップは、５０％未満のデューティサイクルを有するパルスクロックを利用してフリップフロップ機能を果たすため、単独のラッチ回路を変換することによって形成されることができる。パルスクロックがアサートされる際（例えばｈｉｇｈ）、パルスフロップは、トランスペアレントであってよく、これにより入力における論理値が受信され、出力に伝えることができる。パルスクロックがアサートされない場合（例えばｌｏｗ）、論理値入力は、出力に伝えられないようにブロックされ、それ以前の入力論理値が記憶される。
【０００４】
フリップフロップと、パルスフロップの動作特徴が異なることにより、それらをＩＣにおける特定の利用に適したものにすることができるが、但し特定の制限を誘発する場合もある。例えば一部のパルスフロップ設計は、高速信号パスに適する場合もあるが、それらはｍｉｎ−ｔｉｍｅ問題として知られるレースコンディションを受ける可能性があり、この場合、２つ以上の直列に結合したパルスフロップが共にそれぞれのトランスペアレンシー相にあるとき（例えばパルスがアサートされる際）、信号がそれらを経由して伝搬する可能性がある。これによりＩＣの誤作動が生じる恐れがある。フリップフロップは典型的には、このような状態を受けないが、これはマスターおよびスレーブ部が、クロック信号の別々の相においてトランスペアレントであり得るためである。しかしながらフリップフロップは典型的には、パルスフロップほど高速ではない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＩＣの設計において、多くの異なるシミュレーションを行なうことで、どこにフリップフロップ、パルスフロップおよびラッチを実装すべきかを判断することができる。このシミュレーションに基づいて、選択された回路をＩＣのレイアウトにおける対応する場所に配置することができる。ＩＣは、その後シリコンに実装され、テストすることができる。ＩＣ設計のテスト作業において、選択されたフリップフロップおよび／またはパルスフロップが様々な理由により故障する場合もある。これによりＩＣを再設計する必要が生じることもあり、これにはそのレイアウトを変えることも含まれる可能性がある。しかしながらこのような再設計／レイアウトの変更は、特に元々の設計がシリコンに実装されてしまっている場合、費用がかかり、時間を消費する可能性があり、さらに製品化までの時間にも影響を及ぼす場合がある。このような状況を避けるために、より保守的な設計の手法を採ることもある。しかしながらそのような手法によって性能が犠牲になる可能性もある。
【課題を解決するための手段】
【０００６】
本明細書には、集積回路（ＩＣ）のフロップタイプを個々のフロップ単位ベースで判定するための方法が開示されている。一実施形態において、方法は、ＩＣの複数のフロップ回路を第１のモードと、第２のモードで動作させるステップを含む。複数のフロップ回路はそれぞれ、マスターおよびスレーブラッチを含む。第１のモードでは、複数のフロップ回路の各々のマスターラッチは、第１のクロック信号を受信し、その一方で複数のフロップ回路の各々のスレーブラッチは、第２のクロック信号を受信する。クロック信号を調整することで、マスターおよびスレーブラッチは、同時にはトランスペアレントにならない。第２のモードでは、スレーブラッチが第２のクロック信号を受信し、その一方で第１のクロック信号が阻止されることで、マスターラッチはトランスペアレントのままである。第１および第２のモードにおける動作結果に基づいて、ＩＣのその後の改訂において複数のフロップ回路のどれがマスタースレーブフリップフロップとして動作すべきか、およびパルスフロップとして動作すべきかを判定することができる。
【０００７】
一実施形態において、方法は、ＩＣ設計のレイアウトを実施するステップを含んでおり、これは、複数のフロップの各々のマスターおよびスレーブラッチを第１および第２のクロック信号をそれぞれ受信するように構成するステップを含む。最初のＩＣ設計はこの後、（例えばシリコン基板上に）実装することができる。実装した後、ＩＣは第１および第２のモードで動作することができる。第１のモードでは、各々のフロップのマスターラッチは、第１のクロック信号を受信するように結合される。第２のモードでは、第１のクロック信号は阻止され、マスターラッチは、トランスペアレントに保持される。各々のフロップのスレーブラッチは、第１および第２のモード両方において第２のクロック信号に従って動作する。方法はさらに各々のフロップに関して、そのフロップが、ＩＣのその後の改訂においてマスタースレーブフリップフロップとして動作すべきか、パルスフロップとして動作すべきかを判定するステップを含む。
【０００８】
ＩＣもまた開示されている。一実施形態において、ＩＣは、第１の信号パスに第１のクロック信号を伝送し、第２の信号パスに第２のクロック信号を伝送するように構成されたクロックユニットを含む。複数のフロップ回路の各々のマスターラッチは、第１のクロック信号を受信するように結合され、各々のフロップ回路のスレーブラッチは、第２のクロック信号を受信するように結合される。各々のフロップ回路は、第１の動作モードにおいてマスタースレーブフリップフロップとして動作するように構成されている。第２の動作モードにおいて、各々のフロップ回路のマスターラッチは、トランスペアレントに保持され、各々のフロップ回路はこれによりパルスフロップとして動作する。
【０００９】
本発明の他の態様は、以下の詳細な記載を添付の図面を参照して読むことにより明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】集積回路（ＩＣ）の一実施形態のブロック図である。
【図２】パルスフロップ回路の一実施形態のブロック図である。
【図３】パルスフロップ回路の一実施形態の概略図である。
【図４】図３のパルスフロップ回路の実施形態の動作を示すタイミング図である。
【図５】パルスフロップ回路の別の実施形態の概略図である。
【図６】図５のパルスフロップ回路の実施形態の動作を示すタイミング図である。
【図７】パルスフロップ回路の別の実施形態の概略図である。
【図８】図７のパルスフロップ回路の実施形態の動作を示すタイミング図である。
【図９】ＩＣの一実施形態における異なる種類のフロップ回路に関するタイミングパターンを示す図である。
【図１０】ＩＣの一実施形態におけるノンクリティカルフロップと、クリティカルフロップと、周波数制限フロップの違いを示す図である。
【図１１】クロックユニットの一実施形態のブロック図である。
【図１２】ＩＣの開発における評価および改訂段階でのフロップ単位ベースでのフロップの選択を行なう一実施形態の流れ図である。
【発明を実施するための形態】
【００１１】
本発明は、種々の修正形態および代替の形式の余地があるが、その特定の実施形態は図面中の例によって示されており、これを本明細書に詳細に記載する。しかしながら図面およびそれに対する記載は、本発明を開示される特定の形態に限定することは意図しておらず、逆に本発明は、添付の特許請求の範囲によって定義されるように、本発明の精神および範囲内にある全ての修正形態、等価物および代替形態を包含するものである。
【００１２】
概要
本開示は、集積回路（ＩＣ）の設計において特定のフロップ回路に関してフロップタイプ（例えばマスタースレーブフリップフロップまたはパルスフロップ）を判定する方法を対象としている。本明細書で使用されるように、用語フロップ回路（またはフロップ）は、複数の異なるタイプの記憶回路の１つを指すことができ、これには、マスタースレーブフリップフロップ、パルスフロップ、およびそうでなければ先の２つの回路の一部ではないラッチが含まれる。
【００１３】
ＩＣ設計における一部のフロップ回路は、設計工程の早期にマスタースレーブフリップフロップまたはパルスフロップとして指定することができ、その他の回路は、マスタースレーブフリップフロップまたはパルスフロップとして容易に指定されない場合がある。以下でさらに詳細に説明するように、ノンクリティカルとして指定されたフロップは、マスタースレーブフリップフロップとして実装することができ、周波数制限器（または「Ｆ制限器」）として指定されたものは、パルスフロップとして実装することができる。第３のカテゴリのフロップは、本明細書ではクリティカルフロップとして指定されており、これはマスタースレーブフリップフロップとして、あるいはパルスフロップとして最適に実装されたかどうかを判定するのが難しい場合もある。本開示は、このようなフロップが、マスタースレーブフリップフロップまたはパルスフロップとして最適に実装されたかどうかを判定するための方法を対象としている。方法はさらに、個々のフロップ単位ベースで実施することができる。すなわち一部のクリティカルフロップは、マスタースレーブフリップフロップとして指定され、その他のものはパルスフロップとして指定することができ、この判定は、各々のフロップに対して個別に行なわれる。
【００１４】
また、どのフロップをマスタースレーブフリップフロップとして実装すべきか、およびどのフロップをパルスフロップとして実装すべきかを判定することができる装置も開示されている。この構成によって、第１のモードと、第２のモードでのＩＣの動作が可能になることにより、どのフロップタイプがクリティカルとして指定されるフロップに最適かを判定することが可能になる。第１のモードでは、クリティカルとして指定されたフロップは、マスタースレーブフリップフロップとして動作することができる。第２のモードでは、クリティカルフロップのマスターラッチは、トランスペアレントに保持することができるため、それらはパルスフロップとして動作する。ＩＣを第１および第２の両方のモードで動作させた後、その動作の分析が行なわれ、その後の改訂における各々のクリティカルフロップに関するフロップ実装形態を判定することができる。
【００１５】
図１から図８およびそれらに対応する本開示の記載は、ＩＣの初期バージョンにおいてクリティカルフロップを実装するのに使用され得る種々のフロップ回路タイプを対象としている。図９から図１２およびそれらに対応する記載は、ＩＣのその後の改訂における種々のカテゴリのフロップ回路、ならびにクリティカルフロップに関するフロップタイプを判定するための方法および装置を説明することを対象としている。
【００１６】
集積回路およびパルスフロップブロック図
次に図１に注目すると、集積回路（ＩＣ）の一実施形態のブロック図が示されている。ＩＣ１００のブロック図は例示であり、本開示の特定の態様を例示することを目的としているが、但しそれは限定することは意図していないことに留意されたい。したがってＩＣ１００の実際の実装形態は、本明細書に明確に示したり、考察したりしていない構成要素を含む場合もある。
【００１７】
示される実施形態のＩＣ１００は、第１の論理ユニット１０５と、第２の論理ユニット１１０とを含む。このような論理ユニットはそれぞれ、種々の組み合わせ論理回路を含むことができる。示される実施形態における論理ユニット１０５および１１０は、種々のパルスフロップを経由して互いに通信するように結合されている。パルスフロップを利用することで、通信をパルスクロック、クロック（例えば５０％のデューティサイクルを有する通常のクロック）あるいはその両方に対して同期させることができる。このような通信は、種々のタイプのパルスフロップを利用して促進させることができる。
【００１８】
論理ユニット１０５から論理ユニット１１０への第１の通信パスは、示される実施形態では直列式の２つのパルスフロップ３０によって形成される。示される実施形態における各々のパルスフロップ３０は、パルスクロックを受信するように結合され、他のクロックは受信しない。パルスクロックは、パルスクロックヘッダ１１５によって生成され、供給することができる。パルスクロックは、５０％未満のデューティサイクルを有するクロックであってよい。パルスフロップ３０は、このデューティサイクルに対してそれぞれトランスペアレントであり得るが（例えばパルスがｈｉｇｈにアサートされた場合）、それ以外ではこのサイクルの残りの期間においては信号の伝達を阻止することができる。以下にさらに詳細に説明するように、パルスフロップ３０をｍｉｎ−ｔｉｍｅ問題を回避するように構成することができ、この場合、パルスフロップ３０が共にトランスペアレントであるとき（例えばこの例ではパルスがアサートされたとき）、そうでなければその信号状態が２つ以上のパルスフロップを通過する可能性がある。
【００１９】
示される例では、論理ユニット１０５から論理ユニット１１０までの第２の通信パスは、パルスフロップ５０によって形成される。論理ユニット１１０から論理ユニット１０５まで信号を伝送するように動作可能な第３の通信パスは、パルスフロップ７０によって形成される。パルスフロップ５０および７０はそれぞれ、パルスクロックと、５０％のデューティサイクルのクロック信号（「クロック」）の両方を受信するようにそれぞれ結合されている。５０％のデューティサイクルのクロック信号は、クロックヘッダ１２５によって生成され、供給することができる。一部の実施形態では、パルスフロップ５０および７０に供給されるクロック信号は、相補的なクロック信号であってよく、すなわち一方の信号は、他方の要素に与えられる５０％のデューティサイクルのクロック信号と、１８０°の位相差を有する。パルスフロップ５０および７０は、以下で考察するように、パルスクロックおよび５０％のデューティサイクルクロックの両方、あるいはその補集合によって動作中に同期させることができる。
【００２０】
示される実施形態では、ＩＣ１００は、スキャンテストをサポートするように動作可能であり、これにはスキャンデータ入力と、スキャンデータ出力の両方が含まれる。スキャンチェインは、論理ユニット１０５および１１０、ならびに種々のスキャンパルスフロップを経由するように形成することができる。しかしながらスキャンテストをサポートするための回路は任意選択であり、他の実施形態も実現可能であり企図されており、この場合スキャンテストはサポートされないことに留意されたい。
【００２１】
図２は、パルスフロップの一実施形態のブロック図である。より詳細には、示される実施形態におけるパルスフロップ２０は、上記で採り上げ以下でさらに考察するように、パルスフロップ３０、５０および７０の基本的な構成を示すのに利用することができる。
【００２２】
示される実施形態におけるパルスフロップ２０は、入力回路２２と、転送回路２４と、記憶回路２６と、出力回路２８とを含んでいる。一部の実施形態では、入力回路２２は、クロック信号の補集合ｃｌｋバーを受信するように結合させることができ、この場合クロック信号の補集合（その真の対応物などの）は、５０％のデューティサイクルを有する。他の実施形態において、入力回路は、パルスクロック信号ｐｃｌｋを受信するように結合させることができ、その場合デューティサイクルは５０％未満である。入力されるデータは、入力ノード（「Ｉｎ」）における入力回路によって受信することができる。
【００２３】
示される実施形態における入力回路２２は、第１および第２のフロートノード、すなわちフロート１およびフロート２を介して転送回路２４に結合される。これらの回路ノードは、パルスフロップ２０の動作サイクルの少なくとも一部において、少なくとも一方が「浮遊」する可能性があることから、この実施形態ではそのように名前が付けられている。本明細書で使用されるように、ノードに関する用語「フロート」は、ノードが、ＰＭＯＳ（ｐ−チャネル金属酸化物半導体）またはＮＭＯＳ（ｎ−チャネル金属酸化物半導体）デバイスのいずれかによって有効に駆動されない場合のその動作における特定の時間を指すことができる。同様にフロートノードは、パルスフロップの動作サイクルの一部にわたっていずれのデバイスによっても有効に駆動されないノードとして定義される場合もある。したがってその特定のフロートノードに対するいずれの電圧も、一定の時間にわたって静電容量式に保持することができ、但しこの電圧は、特定の時間が経過した後ノードが有効に駆動されない場合、このノード上で減衰する場合もある。しかしながらパルスフロップ２０は、高速動作用に設計され得るため、一定の電圧を保持するのにフロートノードに必要な時間量は相対的に小さく、これによりそのノードから受信する電圧によって他のデバイスを始動することが可能になる。さらにフロートノードを使用するパルスフロップの実装において、このようなノードを駆動させるのに余分なトランジスタが必要ないため、回路領域の無駄を省くことができる。これはまた、回路全体の遅延を抑えることもできる。
【００２４】
示される実施形態における転送回路２４は、パルスクロック信号ｐｃｌｋを受信するように結合される。パルスクロックのアクティブ相への遷移に応答して（例えばｌｏｗからｈｉｇｈへ）、転送回路２４が始動することで、入力信号の論理値ならびにその補集合を記憶回路２６に転送することができる。入力データの補集合は、一方のフロートノード（例えばフロート１）に伝送することができ、真の入力データは、他方のフロートノード（例えばフロート２）に伝送することができる。
【００２５】
記憶回路２６は、入力データ信号およびその補集合の状態を記憶するように構成されており、転送回路２４を停止させた後もこのような値を記憶し続けることができる。示される実施形態における出力回路２８は、出力信号の補集合ｏｕｔバーを受信するように結合されており、その出力ノードにおいて真の出力信号ｏｕｔを駆動させるように構成されている。いくつかの実施形態において、出力信号は、入力信号の補集合であり得ることに留意されたい。
【００２６】
パルスフロップ回路実施形態および動作
図３、５および７はそれぞれ、パルスフロップ回路の種々の実施形態を示している。図４、６および８はそれぞれ、図３、５および７のタイミングの関係をそれぞれ示している。示されるパルスフロップ回路はそれぞれ、パルスクロックに従って動作することができ、後の２つの実施形態は、５０％のデューティサイクルクロックに従って動作するように構成されている。さらに本明細書で考察すべき回路実施形態はそれぞれ、ｍｉｎ−ｔｉｍｅ問題を回避するように構成されている。より詳細には考察すべき回路実施形態はそれぞれ、動作中その各々の入力ノードと出力ノードの間で全面的にトランスペアレントではないが、なおパルスフロップの機能性を与えるように構成されている。したがって本明細書で考察される種々のパルスフロップ実施形態は、高速信号伝達を必要とする用途（およびこれにより、マスタースレーブフリップフロップは適さない）において有効である場合があり、その一方で２つ以上の直列に結合されたパルスフロップ回路間で競合する信号状態を阻止する能力を与えることができる。
【００２７】
示される種々の回路実施形態において、「Ｐ」で示されるトランジスタは、ＰＭＯＳトランジスタであり、「Ｎ」で示されるトランジスタは、ＮＭＯＳトランジスタであることに留意されたい。しかしながらこのような実施形態におけるＰＭＯＳおよびＮＭＯＳトランジスタの配置は例示であり、よって他の構成も可能であり企図されていることに留意されたい。
【００２８】
次に図３に注目すると、パルスフロップ回路の一実施形態の概略図が示されている。示される実施形態におけるパルスフロップ３０は、パルスクロックｐｃｌｋに従って動作するように構成されており、これは５０％のデューティサイクルクロックを必要としない。示される実施形態において、入力回路３２と、転送回路３４は共に、パルスクロックを受信するように結合されるが、その反対の状態に基づいて機能する。
【００２９】
示される実施形態における入力回路３２は、２つの直列に結合したゲーテッドインバータを含む。第１のゲーテッドインバータは、データ入力Ｄを受信するように結合され、トランジスタＰ３１、Ｐ３２およびＮ３１を含んでいる。第２のゲーテッドインバータは、Ｐ３３、Ｐ３４およびＮ３２を含む。トランジスタＰ３２およびＰ３４は、そのそれぞれのインバータに関してゲート機能を与えるように構成されている。ｐｃｌｋがｌｏｗのとき、トランジスタＰ３２およびＰ３４はアクティブである。したがってｐｃｌｋがｌｏｗのとき、第１のゲーテッドインバータは、入力Ｄの補集合Ｄバーを第１のフロートノード、フロート１に供給することができ、Ｄの論理的同値が、第２のフロートノード、フロート２に供給される。
【００３０】
ｐｃｌｋがｈｉｇｈに遷移する際、少なくとも１つのゲートインバータに関するプルアップパスが閉鎖される。例えばＤがｌｏｗならば、ｐｃｌｋがｌｏｗのとき、フロート１は、Ｖｄｄに向かってＰ３１およびＰ３２を介してｈｉｇｈになる。しかしながらｐｃｌｋがｈｉｇｈに遷移する際、Ｐ３２が停止し、これによりプルアップパスが閉鎖される。さらにＰ３２は、ｐｃｌｋがｈｉｇｈのときイナクティブになり、ＤがｌｏｗのときＮ３１がイナクティブになるため、Ｄがｌｏｗでｐｃｌｋがｈｉｇｈであることにより、第１のフロートノード、フロート１がいずれのデバイスによっても駆動されず、これによりそれに対する電圧が浮遊する状況になる。ｐｃｌｋがｈｉｇｈに遷移するその時にフロート１に生じている高圧は、一定の時間にわたって静電容量式に保持することができ、これはＮ３２およびＮ３４を始動させるのに十分である（Ｎ３４は、転送回路３４の一部である）。一実施形態において、パルスクロック（この場合ｈｉｇｈ）のアクティブ部分の長さは、フロート１が高圧を保持することでＮ３２を始動させ、Ｎ３４が全体を通してアクティブのままでいるように時間を決めることができる。
【００３１】
ｐｃｌｋがｌｏｗのときにＤ入力がｈｉｇｈであることによりＮ３１を始動させ、これによりフロート１をｌｏｗにすることができる。フロート１がｌｏｗであることによりＰ３３を始動させ、これによりフロート２をＰ３３およびＰ３４を介してｈｉｇｈにすることができる。フロート１は、ｐｃｌｋがｈｉｇｈに遷移した後、プルダウンパスがＮ３１を経由する状態のままであるため駆動されたままであってよい。しかしながらｐｃｌｋがｈｉｇｈに遷移する際、Ｐ３４が停止することで、フロート２と、Ｖｄｄ間のプルアップパスを排除する。したがってフローティング電圧が、フロート２に生じている可能性があり、この電圧は、一定の時間にわたって静電容量式に保持されてよい。しかしながら上記に述べたように、そのパルス幅は、（転送回路３４の）Ｎ３５がパルスのアクティブ部分全体にわたってアクティブであるようにフロート２が十分な長さにわたってｈｉｇｈのままでいることができるように選択することができる。
【００３２】
先に述べたように、転送回路３４は、デバイスＮ３４およびＮ３５ならびにＮ３３も含んでいる。入力回路３２によってノードＤで受信した入力データに応じて、トランジスタＮ３４およびＮ３５の一方が、所与の時間にアクティブになってよい。ｐｃｌｋがｌｏｗのとき、Ｎ３３はイナクティブである。しかしながらこの実施形態においてｐｃｌｋがｈｉｇｈに遷移するとき、Ｎ３３が始動することで、それ自体およびＮ３４およびＮ３５のアクティブな方を経由するプルダウンパスを形成する。Ｎ３４が、Ｎ３３と同時にアクティブであるならば、記憶回路３６のノードＳが、これらのデバイスを介してｌｏｗなる。ノードＳバーは、これらのデバイスが同時にアクティブになったとき、Ｎ３３およびＮ３５を介してｌｏｗになる。
【００３３】
示される実施形態における記憶回路３６は、一組の交差結合したインバータを含む。第１のこのようなインバータは、プルダウンデバイスＮ１およびＮ２と共にプルアップデバイスＰ１およびＰ２を含む。第２のこのようなインバータは、プルダウンデバイスＮ３およびＮ４と共にプルアップデバイスＰ３およびＰ４を含む。第１のインバータは、入力としてノードＳに結合され、ノードＳバーに対して出力を進めるように構成される。第２のインバータは、入力としてノードＳバーに結合され、出力としてノードＳを駆動するように結合される。
【００３４】
転送回路３４のデバイスＮ３３、Ｎ３４およびＮ３５は、後の２つのいずれかが、先のものと同時にアクティブになったとき、集積された駆動力が、記憶回路３６のいずれかのインバータを無効にするのに十分なものであるようにサイズが決められることに留意されたい。したがってＮ３３およびＮ３４が共にアクティブである場合、第２のインバータの出力、すなわちノードＳを、例え第２のインバータがノードＳをｈｉｇｈで駆動しようと努めていたとしてもｌｏｗにすることができる。これにより、ノードＳバーをｈｉｇｈで駆動することによって第１のインバータが応答し、これにより結果として第２のインバータがノードＳをｌｏｗで駆動するように切り替えるため、記憶回路３６の状態をフリップさせることができる。同様にデバイスＮ３３およびＮ３５が共にアクティブの場合、第１のインバータの出力ノードＳバーは、例え第１のインバータがこのノードをｈｉｇｈにしようと努めていたとしてもｌｏｗにすることができる。その結果、第２のインバータが切り替わることでノードＳをｈｉｇｈで駆動し始め、これにより第１のインバータはノードＳバーをｌｏｗで駆動することができる。
【００３５】
示される実施形態では、出力回路は、インバータＩ３１を利用して実装されている。この特定の例では、Ｉ３１の入力は、ノードＳに結合されており、ノードＱバーに対して与えられる出力は、ノードＤに与えられる入力の補集合である。しかしながらＩ３１の入力ノードがノードＳバーに結合される（よってこの入力の論理的同値は、その出力に与えられる）実施形態は、実行可能であり、企図されていることに留意されたい。さらに他の構成（例えば２つのインバータが直列に結合された）を利用する出力回路を有する実施形態も実行可能であり、企図されている。  
【００３６】
図４は、図３のパルスフロップ回路の実施形態の動作を示すタイミング図である。所与の例において、ｐｃｌｋがｈｉｇｈに遷移するほんの少し前に、入力ノードＤはｈｉｇｈになり、フロート２も同様であり、フロート１は、ｌｏｗである。ｐｃｌｋがｈｉｇｈに遷移する際、Ｎ３３が始動する。デバイスＮ３５もまた、ｐｃｌｋがｈｉｇｈに遷移する際、遷移の時のフロート２がｈｉｇｈであることによりアクティブになる。よってＮ３３およびＮ３５は同時にアクティブになる場合、Ｓバーは、（１）においてこのようなデバイスを介してｌｏｗになり、Ｓはこれに対応してｈｉｇｈになる。出力ノードＱバーもまたＳバーに続いてｌｏｗになるが、この応答は、わずかに遅れる場合がある（簡素化するために遅延はここでは描いていない）。
【００３７】
（２）において点線で描かれるように、フロート２は、ｐｃｌｋがｌｏｗからｈｉｇｈに遷移した後に浮遊する可能性がある。ｐｃｌｋがｈｉｇｈに遷移する際、Ｐ３４は停止する。したがってＰ３３およびＰ３４を経由するＶｄｄへのプルアップパスは、Ｐ３４の停止により切断される。Ｎ３２もまたこの時点でイナクティブになることにより、フロート２はいずれのデバイスによっても駆動されない。したがってｐｃｌｋがｌｏｗからｈｉｇｈに遷移するほんの少し前にフロート２に生じているｈｉｇｈは、静電容量式に保持される。ｐｃｌｋがｈｉｇｈである時間量が、少なくともＮ３５をアクティブに保持することで、Ｓバーをｌｏｗにするのに十分な期間にわたって、フロート２がその電圧を保持することができる十分に短い持続時間であるようにパルスフロップ３０を設計することができる。一部の実施形態において、回路は、フロート２がその電圧をｐｃｌｋのｈｉｇｈの部分全体にわたって静電容量式に保持することができるように設計される場合もある。Ｐ３４はもう一度アクティブになり、このデバイスおよびＰ３３を経由するプルアップパスが復活するため、フロート２は、ｐｃｌｋがｌｏｗに低下した後、再びｈｉｇｈになる。
【００３８】
ｐｃｌｋがｈｉｇｈのとき、パルスフロップ３０はトランスペアレントではないことにも留意されたい。これは結果として生じるＰ３２と、Ｐ３４の停止に起因するものである。したがって、ｐｃｌｋがｈｉｇｈのときＤがｌｏｗに低下したとしても、結果としてＰ３２が停止することでフロート１とＶｄｄの間のプルアップパス（Ｐ３１とＰ３２を経由する）が閉鎖されるため、転送回路３４の状態は変わらない。
【００３９】
この例においてその後ｐｃｌｋがｌｏｗに低下することで、ノードＤに対するデータもまた、新たな入力データに起因してｌｏｗに低下する。Ｄがｌｏｗに低下する際、Ｎ３１は停止し、Ｐ３１は始動する。ｐｃｌｋがｌｏｗの場合、フロート１は、アクティブデバイスＰ３１およびＰ３２を介してｈｉｇｈになる。フロート１のｈｉｇｈは、Ｎ３２のゲートで受信され、これもまた始動することで、フロート２をｌｏｗにする。フロート１のｈｉｇｈもまた、Ｎ３４のゲートターミナルにおいて受信される。ｐｃｌｋが再度ｈｉｇｈに遷移する際、Ｎ３４とＮ３３が両方とも同時にアクティブになる。したがってノードＳは（３）においてｌｏｗになる。ノードＳバーは、ノードＳがｌｏｗになることにより、これに対応してｈｉｇｈになる。
【００４０】
（４）において点線で描かれるように、フロート１は、ｐｃｌｋがこの状態においてｈｉｇｈであるとき、いかなるデバイスによっても駆動されない。これはｐｃｌｋがｈｉｇｈのとき、Ｐ３２が停止することに起因するものであり、これによりフロート１とＶｄｄ間のプルアップパスを閉鎖する。Ｎ３１もまた入力ノードＤがｌｏｗであることによりイナクティブになるため、フロート１は駆動されない。ｌｏｗからｈｉｇｈに遷移するほんの少し前のフロート１のｈｉｇｈは、Ｎ３４をアクティブに保持し、これによりノードＳをｌｏｗにするのに十分な時間にわたって（ｐｃｌｋのｈｉｇｈ相の全持続期間にわたってではないにせよ）このように静電容量式に保持されてよい。
【００４１】
図３に戻ると、示される実施形態におけるパルスフロップ３０は、スキャン要素３９を含んでおり、これを利用してパルスフロップ３０、ならびに他のスキャン要素に結合された他の回路のスキャンテストを可能にすることができる。スキャン要素３９は、連続して結合されたスキャン要素のチェインの１つであってよい。さらにスキャン要素３９を利用して、記憶要素３６にテスト刺激データを入力し、記憶要素３６からテスト結果データを取り込むことができる。さらにスキャンデータは、スキャンシフト作業においてスキャン要素３９を介して移動させることができ、この作業において、テスト刺激データがロードされる、あるいはテスト結果データがアンロードされる。
【００４２】
スキャン要素３９は、スキャン入力（ｓｉ）を含んでおり、これを介してスキャンシフト作業中にデータが受信される。スキャン入力データはインバータＩ１によって受信することができ、これはＰＭＯＳプルアップデバイスおよびＮＭＯＳプルダウンデバイスと共に実装することができ、これらのデバイスはそれぞれノードｓｉに結合したゲートターミナルを有する。テスト刺激データは、スキャン入力クロック（ｓｉｃｌｋ）がアサートされた（およびこれによりデバイスＮ５およびＮ７がアクティブになった）とき、スキャン要素３９によって記憶回路３６にロードすることができる。
【００４３】
スキャン入力データがｈｉｇｈの場合、インバータＩ１はｌｏｗを出力し、Ｎ６はイナクティブになる。ノードＳバーは、スキャン入力データと、スキャン入力クロックが共にｈｉｇｈのとき、トランジスタＮ７（これは、スキャン入力クロックがｈｉｇｈのときアクティブである）およびインバータＩ１のＮＭＯＳデバイスを介してｌｏｗにすることができる。
【００４４】
スキャン入力データがｌｏｗの場合、インバータＩ１はｈｉｇｈを出力する。インバータＩ１からのこのｈｉｇｈの出力がＮ６を始動し、その一方でＮ５は、スキャン入力クロックがｈｉｇｈのときｈｉｇｈである。それに応じてノードＳはｌｏｗになる。ノードＳバーはこのような状況において記憶回路３６のＰ１、Ｐ２、Ｎ１およびＮ２を介してｈｉｇｈになる。
【００４５】
スキャンクロック（ｓｏｃｌｋ）がｈｉｇｈの時、ノード（ｓｏ）に対してスキャン出力データを供給することができる。Ｓバーがスキャン出力クロックノードのｈｉｇｈと同時にｈｉｇｈであるならば、Ｎ８とＮ９は共にアクティブであり、スキャンデータ出力ノードはｌｏｗで駆動される（直列に結合されたＩ３およびＩ４を介して）。Ｓがスキャン入力クロックノードのｈｉｇｈと同時にｈｉｇｈであるならば、デバイスＮ１０とＮ１１は同時にアクティブであり、スキャンデータ出力ノードは、インバータＩ４を介してｈｉｇｈで駆動される。
【００４６】
図５は、パルスフロップ回路の別の実施形態の概略図である。この実施形態では、記憶回路５６と、スキャン要素５９は、図３に示されるそれぞれの相当する部分と同様に配置されているためさらに詳細には考察しないことに留意されたい。さらに示される実施形態におけるパルスフロップ５０は、インバータＩ５３を利用して出力回路を実装している。しかしながら、パルスフロップ３０を参照して上記で考察したそれらの代替の実施形態など他の出力回路の実施形態も実行可能であり、企図されていることに留意されたい。
【００４７】
図５に示される実施形態では、パルスフロップ５０は、入力回路５２を含んでおり、これは、入力ノードＤバーを有しており、相補的なクロック信号ｃｌｋバーを受信するようにさらに結合されている。相補的なクロック信号ｃｌｋバーは、５０％のデューティサイクル信号であってよく、これは、パルスフロップ５０が実装されるＩＣにおいて他の回路に配信されるクロック信号の逆相である。
【００４８】
入力Ｄバーと、相補的なクロック信号ｃｌｋバーは、示される実施形態ではゲーテッドインバータＩ５１によって受信される。本明細書には明確に示していないが、ゲーテッドインバータＩ５１は、少なくとも１つのＰＭＯＳプルアップデバイスと、少なくとも１つのＮＭＯＳプルダウンデバイスとを含むことができ、そのそれぞれが、Ｄバーに結合した各々のゲートターミナルを有し、１つまたは複数の補助のゲートデバイスは、ｃｌｋバーに対する各々のゲートターミナルを有する。よってｃｌｋバーがｈｉｇｈのとき、インバータＩ５１は、Ｄバーで受信した入力信号の論理レベルに従ってフロート１を駆動することができる。ｃｌｋバーがｌｏｗのとき、Ｉ５１は、例えＤバーに変化が生じたとしても、フロート１において状態が変化するのを阻止することができる。
【００４９】
示される実施形態における転送回路５４は、インバータＩ５２（これはＰＭＯＳプルアップデバイスと、ＮＭＯＳプルダウンデバイスを含む標準的なインバータであってよい）と一緒にデバイスＮ５１、Ｎ５２およびＮ５３を含んでいる。フロート１は、Ｎ５１のゲートターミナルおよびＩ５２の入力に結合され、Ｉ５２の出力は、Ｎ５３のゲートターミナルに結合される。Ｎ５２のゲートターミナルは、ｐｃｌｋに結合され、これによりパルスクロックがｈｉｇｈのときアクティブになる。転送回路５４は、ノードＳ（Ｎ５１およびＮ５２を経由する）またはノードＳバー（Ｎ５３およびＮ５２を経由する）のためのプルダウンパスを形成することにより入力回路５２によって受信された論理状態を転送することができる。
【００５０】
パルスフロップ５０の動作は、図６のタイミング図によってさらに示されている。ｃｌｋバーがｈｉｇｈのとき、Ｄバーがｈｉｇｈからｌｏｗに遷移することにより、フロート１がｈｉｇｈに遷移し、フロート２が、それに応答してｌｏｗに低下することになる。クロック信号（ｃｌｋ）がｈｉｇｈに遷移し、これによりｃｌｋバーがｌｏｗに低下する際、フロート１は、（１）における点線によって描かれるようにインバータＩ５１によって駆動されなくなる。フロート１のｈｉｇｈは、それがもはや、パルスフロップ３０のフロートノードに関して上記に記載したのと同様のやり方でＩ５１によって駆動されなくなると、静電容量式に保持することができる。その後ｃｌｋバーがｌｏｗに低下した後の時点で、ｐｃｌｋはｈｉｇｈに遷移する。ｐｃｌｋがｌｏｗからｈｉｇｈに遷移することにより、Ｎ５１とＮ５２が共にこの時同時にアクティブになり、これによりノードＳは、（２）においてｌｏｗになり、Ｓバーはその結果としてｈｉｇｈで駆動される。フロート１は、ｃｌｋバーが再びｈｉｇｈに遷移するまで浮遊し続ける。
【００５１】
ｃｌｋバーがｈｉｇｈに遷移した後の時点で、示される例ではＤバーに対する入力信号がｈｉｇｈに遷移する。これに応じてフロート１はｌｏｗに低下し、フロート２は、Ｉ５２によってｈｉｇｈで駆動される。ｃｌｋバーがその後再びｌｏｗに低下する際、フロート１は再び、もはやいかなるデバイスにも駆動されなくなり、これにより（３）においてｌｏｗで浮遊する。しかしながらインバータＩ５２の出力は、フロート１にある電圧が十分低いまま維持される限り、ｈｉｇｈのままであってよい。その後ｐｃｌｋがｌｏｗからｈｉｇｈに遷移することで、Ｎ５２が始動することになる。これによりＮ５３およびＮ５２は同時にアクティブになり、Ｓバーは、（４）においてこれらのデバイスを介してｌｏｗになり、Ｓは、Ｓバーの状態の変化に応答してｈｉｇｈで駆動される。
【００５２】
図７は、パルスフロップ回路の別の実施形態の概略図である。パルスフロップ７０の転送回路７４と、記憶回路７６と、スキャン要素７９は、図３に示されるパルスフロップ３０のそれぞれの相当する部分と同様のやり方で配置されており、よって同様に動作することができる。
【００５３】
示される実施形態における入力回路７２は、直列に結合された２つのゲーテッドインバータを含む。第１のこのようなインバータは、デバイスＰ７１、Ｎ７１およびＮ７２を含む。第２のこのようなインバータは、Ｐ７２、Ｎ７３およびＮ７４を含む。デバイスＮ７１およびＮ７３のゲートターミナルはそれぞれ、ノードｃｌｋバーに結合され、これによりその各々のインバータに関してプルダウンパスをイネーブルにしたり、閉鎖したりすることができる。次に図８のタイミング図を参照して、パルスフロップ７０の動作を説明する。
【００５４】
図８に示されるタイミング図は、ノードＤがｈｉｇｈの状態で始まり、その後ｌｏｗに低下する。ノードｃｌｋバーは、この時点ではｈｉｇｈであり、よってＮ７１およびＮ７３は共にアクティブである。Ｄがｌｏｗに低下した結果として、Ｐ７１が始動され、これによりフロート１がｈｉｇｈになる。フロート１のｈｉｇｈは、Ｎ７４のゲートターミナルによって受信され、これが始動する。これによりフロート２はｌｏｗになる。
【００５５】
ｃｌｋバーがｌｏｗに低下する際、Ｎ７１およびＮ７３は共に停止する。フロート１は、Ｐ７１を経由するプルアップパスが閉鎖されないためこの時点でｈｉｇｈのままである。しかしながらフロート２から接地へのプルダウンパスは、Ｎ７３が停止する際閉鎖される。Ｐ７２もまたこの時点でイナクティブになるため、フロート２は、いかなるデバイスによっても駆動されず、これにより（１）において点線で描かれるようにｌｏｗで浮遊する。ｐｃｌｋがその後上昇する際、ノードＳは、（２）において同時にアクティブなデバイスＮ７５およびＮ７７を介してｌｏｗになる。ノードＳバーはこの時点で、ノードＳがｌｏｗになった結果としてｈｉｇｈになる。ｃｌｋバーが再びｈｉｇｈに遷移した後、Ｎ７３およびＮ７４を経由するプルダウンパスが復活し、フロート２は再びｌｏｗで駆動される。
【００５６】
示される例では、ｐｃｌｋがｌｏｗに低下し、ｃｌｋバーが再びｈｉｇｈに遷移した後、Ｄはｈｉｇｈに遷移する。ｃｌｋバーが再びｌｏｗに低下したとき、フロート１と接地の間のプルダウンパスは、Ｎ７１が停止することによって閉鎖される。Ｐ７１もまたイナクティブであるため（Ｄがｈｉｇｈであるため）、フロート１は、これによりこの時点でいかなるデバイスによっても駆動されず、これによりフロートは、（３）に示されるようにｌｏｗで浮遊する。フロート２は、フロート１における電圧がＰ７２を確実にアクティブのままにするのに十分に低いままであるならば、ｈｉｇｈのままであってよい。したがってフロート２のｈｉｇｈは、Ｎ７６を始動することができる。ｐｃｌｋがその後ｈｉｇｈに遷移する際、Ｎ７７が始動する。これに応じてＳバーは、（４）においてＮ７６およびＮ７７を介してｌｏｗになり、Ｓは、その結果としてｈｉｇｈで駆動される。
【００５７】
集積回路に関するフロップ選択
図９から１２は、ＩＣにおける特定のフロップに関するフロップタイプを判定するための方法および装置を対象としている。ＩＣの設計において、どのフロップ回路がマスタースレーブフリップフロップとして動作すべきか、どのフロップ回路がパルスフロップとして動作すべきかを知ることは重要である。様々な要因を利用してこのような判定を行なうことができる。このような要因には、フロップ回路全体の遅延時間、フロップ回路間の遅延時間、上記で考察したｍｉｎ−ｔｉｍｅ問題の影響および所望される動作周波数が含まれる。
【００５８】
特定のフロップ回路の場合、設計工程の終わりまでに、最適なまたは正しいフロップタイプの選択を判定することは、不可能ではないにしても、困難な場合がある。このときには、恐らくＩＣの平面図はおおかた決定されている。設計の工程の終わりにＩＣの平面図を変更することは、相当の余分な費用がかかり、市場に出るまでに余分な時間がかかる、あるいはその両方が起こる可能性がある。したがってフロップタイプの選択は、ＩＣの平面図に影響を与えないことが望ましい。
【００５９】
図９および１０は、ＩＣの一実施形態において利用することができる異なるカテゴリのフロップタイプ１０１／１０２を示している。図９では、ＩＣ１００は、３つの異なるフロップタイプ、すなわちノンクリティカル、クリティカルおよび周波数制限装置を含むことができる。ノンクリティカルおよびクリティカルフロップ１０２はそれぞれ、マスターラッチ（’Ｍ’）とスレーブラッチ（’Ｓ’）を使用して実装することができる。周波数制限器フロップ１０１は、単独のスレーブラッチ（’Ｓ’）を使用して実装することができる。
【００６０】
示される例におけるフロップタイプ１０１／１０２における各々のラッチは、クロック信号を受信するように結合されたクロック入力を含む。ラッチは、特定の状態の受信したクロック信号に応答してトランスペアレントであってよい。本明細書で使用されるように、フロップ回路に適用される用語「トランスペアレント」は、ラッチ回路が、各々のデータ入力で受信したデータを取り込み、これに従って各々の出力が応答する状態にある場合と定義することができる。例えばラッチは、その各々の入力において受信したデータが論理０から論理１に変化することで、その各々のデータ出力に対してこれに対応する変化（例えば別の論理０から論理１）を生じさせるものとみなすことができる。ラッチは、論理的に反転することができ、これにより入力において論理０から論理１へ遷移することによって、その場合その出力においてこれに対応する論理１から論理０への変化を生じさせることができることに留意されたい。ラッチは、その各々の入力で受信したデータの変化をその各々の出力に反映することができないような状態にあるとき、本明細書で定義されるようにトランスペアレントではない。よって非トランスペアレントラッチの入力における論理０から論理１への遷移は、そのラッチの出力に対してこれに対応する変化を生じさせることはない。非トランスペアレント状態はまた、保持状態と呼ばれる場合もある。
【００６１】
この実施形態において、フロップタイプ１０２のマスターラッチの各々は、アクティブｌｏｗ条件（例えばクロックがｌｏｗ）に応答するクロック入力を含んでいる。したがって各々のマスターラッチは、クロックがｌｏｗのときトランスペアレントであるように構成されている。反対に本実施形態における各々のスレーブラッチ（フロップタイプ１０１および１０２における）は、その各々のクロック入力におけるクロック信号がｈｉｇｈのときトランスペアレントであるように構成されている。よってフロップタイプ１０２の場合、マスターおよびスレーブラッチは、逆のクロック信号状態に関してトランスペアレントである。
【００６２】
図１０は、フロップタイプの分類を示すのに使用される例を提供している。フロップタイプの分類は、ＩＣ１００における特定のフロップの配置、ならびにこれもまたＩＣに実装される他のフロップに対するその関連性に基づくことができる。
【００６３】
ノンクリティカルフロップは、２つのフロップ間に、またはフロップが仲介要素である異なる状態の要素間にほとんどまたは全く論理遅延がないフロップであり得る。ノンクリティカルフロップを例示するのに本明細書で使用される例では、フロップ１０２は、レジスタファイル１０５と、ステートマシーン１０６の間に実装される。このような回路はそれぞれ、クロック信号ｐｃｌｋを受信するように結合され、その各々の動作はそれに対して同期される。フロップ１０２以外の論理回路は、レジスタファイル１０５とステートマシーン１０６の間に結合されない。したがってレジスタファイル１０５とフロップ１０２の間には論理遅延は存在せず、フロップ１０２とステートマシーン１０６間にも論理遅延は全く存在しない。
【００６４】
レジスタファイル１０５とステートマシーン１０６間の信号の転送は、ｐｃｌｋ信号に従ってより秩序立った様式で続行するように意図されることで、後者が正確に動作することを保証することができる。より詳細には、この特定の例において、レジスタファイル１０５とステートマシーン１０６の間の特定の信号状態の転送は、ｐｃｌｋ信号の２つの別個のサイクルにわたって行なわれるように意図されている。したがってｍｉｎ−ｔｉｍｅ問題を回避することは、このような状況において重要な問題である。ｍｉｎ−ｔｉｍｅ問題を免れない場合、レースコンディションが生じる可能性があり、この場合信号状態は、そのトランスペアレンシーにおいてフロップ１０２を通過し、その結果レジスタファイル１０５とステートマシーン１０６間で信号を転送するのに、ｐｃｌｋの一方のサイクルのみが経過する。意図される際に先行するサイクルの信号状態を受信することにより、ステートマシーン１０６の誤作動が生じる場合があり、これにより、それが実装されているＩＣを動作不能にする恐れがある。したがってノンクリティカルとして指定されたフロップ１０２は、従来式のマスタースレーブフリップフロップとして実装することができ、この場合マスターおよびスレーブラッチは同時にトランスペアレントにはならない。このようなマスタースレーブフリップフロップでは、第１のサイクルのクロック信号に従って受信した信号は、第２のサイクルのクロック信号まで同じものによって転送することができないためｍｉｎ−ｔｉｍｅ問題は関係ない。よって図１０に示されるノンクリティカルフロップの例に戻ると、レジスタファイル１０５とステートマシーン１０６間で信号を転送することを目的としたクロック信号の２つのサイクルの要件は、ノンクリティカルフロップ１０２をマスタースレーブフリップフロップとして実装することによって履行することができる。多用な従来式のマスタースレーブフリップフロップを使用してノンクリティカルフロップ１０２を実装することができる。
【００６５】
周波数制限器として指定されたフロップの場合、ｍｉｎ−ｔｉｍｅ問題は特定の要因ではない。図１０に示される例では、２つのフロップ１０１は、論理回路１０９によって隔てられている。この例における論理回路１０９の論理ゲートは、ＡＮＤ、ＯＲ、ＮＡＮＤ、ＮＯＲ、ＸＯＲおよびＸＮＯＲゲートを含んでおり、このようなゲートタイプの一部の複数の実例を有する。したがって、図面の左にあるフロップ１０１の出力Ｑと、図面の右にあるフロップ１０１の入力Ｄの間には有意な大きさの論理遅延が存在する。
【００６６】
周波数制限器として指定されたフロップ間の論理遅延の大きさに起因する最も重要な問題は、フロップ自体を経由する遅延であり得る。有意な大きさの論理遅延を受ける信号パスは、周波数を制限することができるため（例えば、その各々のＩＣが動作することができるクロック周波数を制限することができる）、フロップ１０１自体を経由する遅延を最小限にすることが望ましい。したがって周波数制限器として分類されたフロップ１０１は、単独のステージを有するクロックトラッチ／パルスフロップとして実装することができる。フロップ１０１のためのこの特定の回路構成を選択することで、ＩＣの動作周波数を上げるという目的によりいかなる切換え遅延も最小限にすることができる。
【００６７】
このような回路の１つの可能な実装形態は、図５のパルスフロップ５０と同様のものであってよく、入力回路５２は取り外されている。パルスフロップ５０から入力回路５２を取り外すことで、その入力からその出力への遅延を最小限にし、その一方で第２のクロック信号に対するその依存性を排除することができる。よってこのような回路は、ｐｃｌｋがｈｉｇｈのときはいつでもトランスペアレントであってよい。
【００６８】
クリティカルフロップは、ノンクリティカルフロップと周波数制限器フロップの中間のいずれかに当たるフロップであってよい。ノンクリティカルフロップと、周波数制限器フロップは、比較的容易に識別することができ、これによりこのような状況において使用するフロップのタイプの判定も容易に行なうことができる。対照的に、この例におけるノンクリティカルフロップは、このような判定を容易に行なうことができないフロップである。
【００６９】
示される例では、論理回路１０７は２つのゲートを含んでおり、これにより２つの論理ゲートは２つのフロップ１０２間のパスにおいて遅延する。このようなゲートがもたらす遅延の大きさによって、ｍｉｎ−ｔｉｍｅ問題が生じたり生じなかったりすることがある。ｍｉｎ−ｔｉｍｅ遅延が生じた場合、クリティカルとして特定されたフロップは、マスタースレーブフリップフロップとして実装することができる。ｍｉｎ−ｔｉｍｅ遅延が生じない場合、クリティカルフロップは、パルスフロップとして実装することができる。したがって本明細書で考察される方法論を使用して、どのクリティカルフロップをパルスフロップとして実装することができ、どのクリティカルフロップをマスタースレーブフリップフロップとして実装すべきかを判定することができる。
【００７０】
図９に戻ると、各々のノンクリティカルフロップのマスターおよびスレーブラッチのそれぞれは、ｐｃｌｋ信号を受信するように結合されることに留意されたい。先に述べたように、この特定の例におけるマスターラッチは、受信したクロック信号がｌｏｗのときトランスペアレントであり、受信したクロック信号がｈｉｇｈのときスレーブラッチはトランスペアレントである。したがってノンクリティカルフリップのマスターラッチとスレーブラッチを共にｐｃｌｋ信号を受信するように結合することによって、それぞれのトランスペアレンシー窓は、互いを除外することができる。
【００７１】
クリティカルフロップに関して、そのマスターラッチは最初にクロック信号Ｌ−ｃｌｋを受信するように結合され、この信号は、各々のスレーブラッチによって受信されるｐｃｌｋ信号とは異なる。Ｌ−ｃｌｋ信号は、第１のモードで動作する際、ｐｃｌｋ信号と同様のクロック信号として供給することができる。したがって第１のモードで動作する際、クリティカルフロップは、マスタースレーブフリップフロップとして機能することができる。第２の動作モードにおいて、Ｌ−ｃｌｋ信号は阻止され、これによりクロックユニット９２は、その対応する信号ラインにＤＣ（直流電流）信号を伝送することができる。ＤＣ信号は、この特定の実装形態においてｌｏｗに保持することができ、これにより各々のクリティカルフロップのマスターラッチは、トランスペアレントに保持することができる。したがって第２の動作モードにおいてクリティカルフロップはパルスフロップとして動作することができる。
【００７２】
ＩＣ１００の少なくとも最初のバージョンに関して、クリティカルフロップは、第１および第２のモードの両方で動作することで、このようなフロップをその後マスタースレーブフリップフロップまたはパルスフロップとして実装すべきかを判定するのを助けることができる。クリティカルフロップはそれぞれ、個々の基準で評価することができる。これにより、フロップをグループ基準で評価しなければならない方法論とは対照的に、ＩＣ１００の特定の性能および電力特性をきめ細かに最適化することが可能になる。マスタースレーブフリップフロップとして動作するフロップのみが、改訂する間に変更する必要があるように実装されている。さらにこのような変更は、単独の接続のみを変えることによって行なうことができる。
【００７３】
その後のＩＣ１００の改訂においてマスタースレーブフリップフロップとして実装すべきクリティカルフロップに関して、そのそれぞれのマスターラッチは、ｐｃｌｋを受信するように再び接続することができる。これは、マスタースレーブフリップフロップとして実装すべき各々のクリティカルフロップのマスターラッチに関するビアコネクションをＬ−ｃｌｋ信号が伝送される信号ラインから、ｐｃｌｋ信号が伝送される信号ラインに変えることによって達成することができる。ビアコネクションを変更することによって、ＩＣ１００の金属層をその後の改訂に備えて変えることができる。
【００７４】
その後のＩＣ１００の改訂においてパルスフロップとして実装されるべきクリティカルフロップに関して、接続は、元々実装されたように維持することができ、各々のマスターラッチは、Ｌ−ｃｌｋ信号が伝送される信号ラインに結合される。開発後の通常のＩＣ１００の動作において、動作は第２のモードにおいて行なうことができ、Ｌ−ｃｌｋ信号はＤＣレベル（例えばこの例ではｌｏｗ）に保持される。よってパルスフロップとして実装される各々のクリティカルフロップのマスターラッチは、トランスペアレントのままであってよく、その一方で対応するスレーブラッチは、ｐｃｌｋ信号に従って動作することができる。
【００７５】
図３−８を参照して考察した回路の種々の実施形態を使用して、クリティカルフロップを実装することができる。例えばパルスフロップ３０の一実施形態を使用してデバイスＰ３２およびＰ３４のゲートターミナルを、Ｌ−ｃｌｋ信号を受信するように最初に接続することによってクリティカルフロップを実装する場合もあり、その一方でデバイスＮ３３はｐｃｌｋ信号を受信する。このような実施形態では、入力回路３２は、マスターラッチとして作用することができ、その一方で転送回路３４および記憶回路３６は組み合わさってスレーブラッチとして作用する。クリティカルフロップとしてのパルスフロップ３０の個々の実例の評価が、それがマスタースレーブフリップフロップとして実装されることが望ましいと判定したならば、Ｐ３２およびＰ３４の各々のゲートコネクションが、その後のＩＣ１００の改訂に備えて変更されることで（金属層を変えることによって）、ｐｃｌｋ信号の信号ラインにそれらを結合することができる。このような場合、この回路は、ｍｉｎ−ｔｉｍｅ問題に対抗するように強固になるが、これは入力回路３２は、転送回路３４のスレーブラッチ要素であることよりも、ｐｃｌｋの逆相においてトランスペアレントであるためである。パルスフロップ３０の個々の実例の評価が、それがパルスフロップとして動作することが望ましいと判定したならば、Ｐ３２およびＰ３４のゲートターミナルは、Ｌ−ｃｌｋ信号が伝送される信号ラインに対するそれぞれの最初の接続を維持することができる。先に述べたように、通常の動作において、Ｌ−ｃｌｋに関する信号ラインは、通常の動作においてｌｏｗに保持することができる。したがってＰ３２およびＰ３４の各々のゲートターミナルが、Ｌ−ｃｌｋ信号ラインに結合されるならば、入力回路３２は、Ｌ−ｃｌｋ信号ラインがｌｏｗに保持される際トランスペアレントのままであり、これにより図３の回路をパルスフロップとして動作させることが可能になる。
【００７６】
図５および図７に示される回路の変形形態は、ＩＣ１００の初期バージョンにおいてクリティカルフロップを実装するのに同様に利用することができる。一部のケースでは、クロック入力に関してインバータを設ける必要がある、あるいは一部のデバイスを異極（例えば特定のＮＭＯＳデバイスをＰＭＯＳデバイスで置き換える）のデバイスで置き換える必要がある。このような回路をマスターラッチに対するクロック接続に基づいて、マスタースレーブフリップフロップ動作と、パルスフロップ動作を容易に切り替えるクリティカルフロップとして実装することを可能にするこういった修正形態は、当業者に明らかである。
【００７７】
ＩＣ１００の初期バージョンにおいてクリティカルフロップをマスタースレーブフリップフロップとして動作させ、その一方でｍｉｎ−ｔｉｍｅ問題が論点にならないようにするためには、マスターおよびスレーブラッチのトランスペアレンシー窓が重ならないことが重要である。この特定の例において、これはＬ−ｃｌｋもまたｈｉｇｈである場合に限ってｐｃｌｋがｈｉｇｈになることを保証することによって達成することができる。クロックユニット９２は、この種のクロック調整を確実にするように構成することができる。
【００７８】
クロックユニット９２の１つの可能な実施形態が図１１に示される。示される実施形態において、クロックユニット９２は、単独のクロック信号ｃｌｋを受信し、２つのクロック信号ｐｃｌｋおよびＬ−ｃｌｋを生成するように結合される。ｃｌｋ信号は、示される実施形態におけるＮＡＮＤゲートＧ２によって受信することができ、これはまたパルス幅調整器９３の出力を受信するように結合される。この実施形態におけるＮＡＮＤゲートＧ２の結果として生じる出力は、パルス幅調整器９３の出力に基づいたデューティサイクルを有するパルスであってよい。ＮＡＮＤゲートＧ２の出力は、インバータＩ２によって論理的に反転させることができる。インバータＩ２の出力は、インバータＩ１によって受信することができ、その一方でＩ１の出力は、ＮＯＲゲートＧ１に対する入力として供給することができる。ＮＯＲゲートＧ１の出力は、この例ではＬ−ｃｌｋ信号として供給され、その一方でインバータＩ１の出力はまた、インバータＩ３に供給され、これはｐｃｌｋ信号を供給する。このような信号は共にインバータＩ１の出力に基づいて生成され、その両方が、ほぼ同一のゲート遅延を受けるため、それぞれの立ち上がりエッジと、立ち下がりエッジをこれにより実質的に合わせることができる。本明細書で考察される実施形態におけるマスターおよびスレーブラッチは、逆のクロック相（スレーブラッチのｈｉｇｈ、マスターラッチのｌｏｗ）においてトランスペアレントであるため、そのそれぞれのトランスペアレンシー窓は重ならない。
【００７９】
第１および第２のモードのうちの選択されたモードでの動作は、クロックユニット９２によって制御することができる。示される実施形態において、クロックユニット９２は、低電力モード信号ｌｐｍを受信するように結合される。より詳細には、ｌｐｍ信号は、この特定の実施形態においてＮＯＲゲートＧ１の一方の入力によって受信することができる。第１のモードでの動作は、ｌｐｍ信号がｌｏｗの場合に行なうことができる。ｌｍｐ信号がｌｏｗの場合、ＮＯＲゲートＧ２の出力は、インバータＩ２の出力に依存する可能性があり、これによりＬ−ｃｌｋはパルスであり得る。Ｌ−ｃｌｋ信号がパルスの場合、図９に示されるマスターおよびスレーブラッチに対して別個のクロック接続を有するクリティカルフロップは、第１のモードにおいてマスタースレーブフリップフロップとして動作することができる。ｌｐｍ信号がｈｉｇｈの場合、ＮＯＲゲートＧ２の出力は、ｌｏｗに保持することができ、これによりＬ−ｃｌｋはＤＣｌｏｗレベルである。Ｌ−ｃｌｋ信号がＤＣｌｏｗレベルの場合、図９に示されるクロック接続を有するクリティカルフロップは、第２のモードでパルスフロップとして動作することができる。
【００８０】
図９に示されるように、クロックユニット９２によって生成されるクロック信号のパルス幅は、変動する場合がある。この特定の実施形態では、その変動は、２つのパルス幅の一方を伴うことができる。より詳細には、パルス幅は、その「長信号」に従って変動する可能性があり、この信号はパルス幅調整器９３によって受信することができる。長信号がアサートされる（例えばこの実施形態では論理１）際、結果として生じるｐｃｌｋおよびＬ−ｃｌｋのパルス幅は、長信号がアサートされない（例えば論理０）場合と比べて大きくなる可能性がある。本明細書に示されるものより多数の変動値（例えば４）を有するクロックユニット９２の実施形態も実現可能であり、企図されており、これによりその長い入力は、２つ以上の別々の信号を含むことができる。
【００８１】
示される実施形態におけるパルス幅調整器９３は、出力クロックパルスのパルス幅を変動させるのに使用することができるいかなるタイプの回路であってもよい。この例では、パルス幅調整器は、ｐｃｌｋ信号を受信するように結合され、ｐｃｌｋおよび長信号の状態に基づいて、対応する出力信号（ＮＡＮＤゲートＧ２として供給される）を生成することができる。パルス幅調整器９３は、フェイズロックトループ（ＰＬＬ）、ディレイロックドループ（ＤＬＬ）あるいは、ｐｃｌｋのパルス幅を変えることができるステートマシーンを使用して実装することができる。一般に、クロックユニット９２は、２つの別々のクロック信号を出力するのに使用することができるいずれのタイプのクロック回路を使用しても実装することができ、これらのクロック信号は、図９に示されるクリティカルフロップのマスターおよびスレーブラッチが同時にトランスペアレントにならないようなやり方で互いに調整される。
【００８２】
この実施形態では、生成されるクロック信号は共に、５０％未満のデューティサイクルを有するパルスクロック信号であることに留意されたい。しかしながらクロックユニットの実施形態において、クロック信号の少なくとも1つ（例えばＬ−ｃｌｋ）は、５０％のデューティサイクルを有するクロックである。このような場合もなお、２つのクロック信号の調整は、図９に示されるクリティカルフロップのマスターおよびスレーブラッチが同時にトランスペアレントにならず、マスタースレーブフリップフロップ動作を可能にするように構成することができる。
【００８３】
図１２は、ＩＣの開発中の評価および改訂段階においてフロップ単位ベースでフロップ選択を行なう一実施形態のフロー図である。本明細書で使用される方法は、どのクリティカルフロップをマスタースレーブフリップフロップとして実装すべきか、およびどのクリティカルをパルスフロップとして実装すべきかを判定するのに１つまたは複数の反復作業を行なうことができる。
【００８４】
方法９００は、ＩＣ設計の初期のレイアウトを実施することにより開始する（ブロック９０５）。この初期のレイアウトは、ＩＣの種々の組み合わせおよび／または順序論理回路を構成するデバイスの位置および相互接続を決定するステップを含むことができる。このレイアウトは、種々の設計ツールを使用して実施することができ、例えばＧＤＳ（グラフィカルデータベースシステム）ＩＩファイルなどの初期バージョンのファイルを生成することができる。
【００８５】
上記で考察したレイアウト工程はまた、どのフロップをＩＣレイアウト内に配置すべきかを判定することで、２つ以上の機能ブロックの間にクロックトデータパスを形成するステップを含むことができる。どのフロップを実装すべきかを判定した後、フロップは、ノンクリティカル、クリティカルまたは周波数制限器として分類することができ（ブロック９１０）、図９に示されるように接続されることで、初期のレイアウト工程を完了させることができる。
【００８６】
ノンクリティカルフロップは、論理遅延がほとんどまたは全くないデータパスに配置され、これにより場合によってはそれらをｍｉｎ−ｔｉｍｅ問題に対して脆弱にすることがある。したがってノンクリティカルフロップは、マスタースレーブフリップフロップとして実装することができる。マスタースレーブフリップフロップは、そのそれぞれのマスターおよびスレーブラッチが同時にトランスペアレントにならないように設計することができる。各々のマスターおよびスレーブラッチが同時にトランスペアレントにならないため、このようなマスタースレーブフリップフロップをｍｉｎ−ｔｉｍｅ問題に対して強化させることができる。
【００８７】
周波数制限器は、有意な論理遅延を有するデータパスに配置されるフロップであってよく、事実上ｍｉｎ−ｔｉｍｅ問題に対する脆弱性はない。このようなパスにおいては、フロップを経由する遅延が主な問題であり、省電力化は付加的な問題である。このようなフロップの遅延および電力消費を最小限にすることにより、それ以外でこのような事例においてマスタースレーブフリップフロップが使用される場合に起こり得るものと比べて、より高い動作周波数を可能にすることができる。したがって周波数制限器は、単一のステージを有するパルスフロップを使用して実装することができる。
【００８８】
特定のフロップのノンクリティカルまたは周波数制限器としての分類は、比較的単純明快な工程であり得る。このような分類は、選択したフロップタイプが特定のデータパスに適切であること、およびフロップタイプをさらに変更する必要がないことをかなりの度合いで確信することにより行なうことができる。対照的に、クリティカルフロップは、特定のフロップがマスタースレーブフリップフロップまたはパルスフロップであるべきかどうかを判定することが単純明快な工程ではないフロップである。クリティカルフロップは、若干の論理遅延を有する（但し周波数制限器として分類されるものより少ない）データパスに実装されるが、ｍｉｎ−ｔｉｍｅ問題が論点であるかどうかを判定するステップは、さらなるテスト作業を必要とする場合がある。したがって上記で述べたように、クリティカルフロップとして指定されたフロップは、図９に示されるように最初に接続され、各々のマスターおよびスレーブラッチは、異なるクロック信号を受信するように結合することができる。
【００８９】
各々のフロップタイプの分類およびそのレイアウト工程が完了した後、ＩＣの初期バージョンをシリコンに実装することができる（ブロック９１５）。シリコンは、本明細書で一例として使用されるが、他の材料を使用することもでき、これにはＮＭＯＳおよびＰＭＯＳデバイスを形成するのにシリコンをドープするのに使用される材料も含まれることに留意されたい。使用され得る他の材料には、グラフェン、ヒ化ガリウムまたはＩＣを実装するのに適した任意の他の材料が含まれる。
【００９０】
ＩＣの初期バージョンが実装されると、それは確実に正確に動作するようにテストすることができる。このようなテスト作業は、第１および第２の動作モードにおいてＩＣの初期バージョンを動作させるステップを含むことができる（ブロック９２０）。第１のモードでの動作は、上記で考察したようにｐｃｌｋとＬ−ｃｌｋ信号を共に循環させることによって、クリティカルフロップをマスタースレーブフリップフロップとして動作させるステップを含むことができる。第２のモードでの動作は、Ｌ−クロック信号をＤＣレベル（例えばＤＣｌｏｗレベル）に保持し、その一方でｐｃｌｋ信号を循環させるステップを含むことができる。第２の動作モードにおいて、各々のクリティカルフロップのマスターラッチは、トランスペアレントのままであり、これによりこのようなフロップをパルスフロップとして動作させることができる。このようなモードでの動作は、種々の周波数および種々のパルス幅で実施することでＩＣを十分に働かせることができる。
【００９１】
初期バージョンのテスト作業が終了した後、第１および第２のモードでの動作の結果を分析することができる（ブロック９２５）。このような分析は、第１および第２のモードいずれかにおけるクリティカルフロップに関連するいかなる誤作動の発生も特定するステップを含むことができる。分析は、個々のフロップ単位のベースで行なうことができる。第１および第２のモードにおける動作の分析に基づいて、ＩＣのこの先のバージョンに備えて少なくとも一部のクリティカルフロップをマスタースレーブフリップフロップまたはパルスフロップのいずれかとして指定することができる（ブロック９３０）。例えばクリティカルフロップは、第２のモードで動作する際、全ての周波数においてｍｉｎ−ｔｉｍｅ問題に起因して誤作動が生じた場合、ＩＣの次の改訂に備えてマスタースレーブフリップフロップとして指定することができる。対照的に、第２のモードのいずれの周波数において動作する際も誤作動が全く生じないクリティカルフロップは、ＩＣのその後の改訂に備えてパルスフロップとして指定することができる。ＩＣが第１のモードで動作する際、周波数目標を満たさないようにし、但しそれ以外では第２のモードにおいて誤作動を全く生じさせないクリティカルフロップは、ＩＣの次の改訂に備えてパルスフロップとして指定することができる。
【００９２】
ＩＣの初期バージョンをテストした後、全てのクリティカルフロップをマスタースレーブフリップフロップまたはパルスフロップとして指定することができる訳ではないことに留意されたい。一部のケースでは、各々のクリティカルフロップに関するこのような判定は、何度か反復する必要があり、これは、一部のクリティカルフロップの誤作動が、それ以外では両方のモードにおいて意図したように動作する可能性のある他のクリティカルフロップにも誤作動を生じさせる可能性があるためである。したがって反復工程は、このような判定を行なうことで、各々の個々のフロップをクリティカルとして指定するのを助けることができる。
【００９３】
少なくとも一部のクリティカルフロップをマスタースレーブフリップフロップとして指定した後、金属層を変質させてＩＣの次の改訂に備えることができる（ブロック９３５）。金属層を変質させるステップは、チップを作製する際の製造装備によってＧＤＳＩＩファイルを変化させるステップを含むことができる。金属層の変質は、クリティカルフロップのマスターラッチを、Ｌ−ｃｌｋが伝送される信号ラインから切り離し、その後それをｐｃｌｋが伝送される信号ラインに接続することができる。このビアの変化により、変化したクリティカルフロップのマスターおよびスレーブラッチがｐｃｌｋ信号を受信するようにし、マスターラッチは、スレーブラッチとして逆相に応答する。
【００９４】
金属層の変更が完了した後、ＩＣのその後の改訂をシリコンに実装することができる（ブロック９４０）。次の改訂は、上記で考察したように第１および第２のモードにおいて動作することができる（ブロック９４０）。ＩＣの次の改訂を第１および第２のモードで作動させることで、金属層を変化させることによってなされた特定のクリティカルフロップに対する変更を検証することができ、誤作動または故障が生じる他のクリティカルフロップを突き止めるのを助け、一方の動作モードにおける性能目標を達成することができる。
【００９５】
ブロック９４５に準拠した動作が完了すると、その結果を再度分析することができる（ブロック９５０）。動作中に取得した結果の分析を実施することができる。現行の改訂のＩＣが十分に履行され、全ての性能目標および動作仕様を達成していると判定した場合、このときフロップ選択工程は完了することができる（ブロック９５５、はい）。その性能が何らかの理由により不十分である場合（ブロック９５５、いいえ）、あるいは一部のクリティカルフロップがまだ指定されない場合、このとき方法はブロック９３０に戻りもう一度反復工程を実施することができる。反復工程は、クリティカルフロップとして先に指定された全てのフロップに対して指定が行なわれるまで行なうことができる。先に述べたように、クリティカルフロップのマスタースレーブフリップフロップまたはパルスフロップとしての指定は、個別ベースで行なうことができ、これによりＩＣ設計に関するフロップ選択において最大限の細分性を可能にすることができる。これにより、ＩＣ設計の性能およびその電力消費を最適化するのを助けることができる。
【００９６】
本発明を特定の実施形態を参照して記載してきたが、これらの実施形態は例示であり、発明の範囲は、そのように限定されないことを理解されたい。記載される実施形態に対するいかなる変形、修正、追加および改良も可能である。このような変形、修正、追加および改良は、以下の特許請求の範囲において詳細に記載される本発明の範囲内にあってよい。
【図１】
0005986107.tif 000002
【図２】
0005986107.tif 000003
【図３】
0005986107.tif 000004
【図４】
0005986107.tif 000005
【図５】
0005986107.tif 000006
【図６】
0005986107.tif 000007
【図７】
0005986107.tif 000008
【図８】
0005986107.tif 000009
【図９】
0005986107.tif 000010
【図１０】
0005986107.tif 000011
【図１１】
0005986107.tif 000012
【図１２】
0005986107.tif 000013