(57)【特許請求の範囲】
【請求項１】
第１のクロックと第２のクロックとを出力するクロック生成部と、
前記第１のクロックのエッジに同期して第１の信号を出力する第１のフリップフロップと、
前記第１の信号を入力とし、前記第２のクロックのエッジに同期して第２の信号を出力する第２のフリップフロップと、
前記第２の信号を入力とし、前記第１のクロックのエッジに同期して第３の信号を出力する第３のフリップフロップと、
前記第１のクロックの第１のエッジが生成された時から前記第２のクロックの第１のエッジが発生されるまでの第１の設定時間と、前記第２のクロックの第２のエッジが生成された時から前記第１のクロックの第２のエッジが生成されるまでの第２の設定時間とを制御する制御部と、を有し、
前記クロック生成部は、前記第１の設定時間に基づいて第２のクロックの第１のエッジを生成し、さらに、前記第２の設定時間に基づいて第１のクロックの第２のエッジを生成し、
前記制御部は、前記第１の設定時間を変更し、その変更に応じて変化する前記第２の信号の結果に基づいて第１の遅延の時間を測定し、
前記制御部は、前記第２の設定時間を変更し、その変更に応じて変化する前記第３の信号の結果に基づいて第２の遅延の時間を測定する遅延時間測定装置。
【請求項２】
前記制御部は、前記第２のクロックの前記第１のエッジが発生した後の前記第２のフリップフロップが出力する前記第２の信号が第１の期待値と一致するか否かを判別する第１の比較部と、前記第１のクロックの前記第２のエッジが発生した後の前記第３のフリップフロップが出力する前記第３の信号が第２の期待値と一致するか否かを判別する第２の比較部とを有する請求項１に記載の遅延時間測定装置。
【請求項３】
前記制御部は、前記第１の比較部が判別した結果を記憶する第１の比較記憶部と、前記第２の比較部が判別した結果を記憶する第２の比較記憶部と、を有し、
前記第１の比較記憶部及び前記第２の比較記憶部は、前記第１のクロック又は前記第２のクロックに同期して比較結果を出力する請求項２に記載の遅延時間測定装置。
【請求項４】
前記制御部は、前記第２のクロックの前記第１のエッジが発生した後の前記第２のフリップフロップが出力する前記第２の信号が前記第１の期待値と一致するか否かを判別し、一致しない場合は前記第１の期待値を前記第２のフリップフロップに保持させる第１の自己修正部と、前記第１のクロックの前記第２のエッジが発生した後の前記第３のフリップフロップが出力する前記第３の信号が前記第２の期待値と一致するか否かを判別し、一致しない場合は前記第２の期待値を前記第３のフリップフロップに保持させる第２の自己修正部とを有する請求項２または３記載の遅延時間測定装置。
【請求項５】
前記制御部は、前記第２のクロックの前記第１のエッジによって前記第１の期待値が前記第２のフリップフロップに保持されたか否かを複数回計測した結果を第１の計測結果として保持する第１の計測部と、前記第１のクロックの前記第２のエッジによって前記第２の期待値が前記第３のフリップフロップに保持されたか否かを複数回計測した結果を第２の計測結果として保持する第２の計測部とを有する請求項４に記載の遅延時間測定装置。
【請求項６】
前記第３の信号を前記第１のフリップフロップの入力とし、
前記制御部は、前記第１のクロックの第３のエッジが生成された時から前記第２のクロックの第３のエッジが発生されるまでの第３の設定時間を制御し、前記第３の設定時間を変更し、その変更に応じて変化する前記第１の信号の結果に基づいて第３の遅延の時間を測定する請求項１から５に記載の遅延時間測定装置。
【請求項７】
第１のフリップフロップに第１のクロックの第１のエッジを入力し、前記第１のクロックの前記第１のエッジに同期して前記第１のフリップフロップが第１の信号を出力するステップと、
前記第１のフリップフロップに前記第１のクロックの前記第１のエッジが入力されてから、第１のクロックの第１のエッジが発生した時から第２のクロックの第１のエッジが発生する時までの第１の設定時間後に、前記第１の信号を入力とする第２のフリップフロップに第２のクロックの第１のエッジを入力し、前記第２のフリップフロップが前記第２のクロックの第１のエッジに同期して第２の信号を出力するステップと、
前記第１の設定時間を変更し、その変更に応じて変化する前記第２の信号の結果に基づいて第１の遅延の時間を測定するステップと、
前記第２のフリップフロップに、前記第２のクロックの前記第２のエッジを入力し、前記第２のクロックの前記第２のエッジに同期して前記第２のフリップフロップが第２の信号を出力するステップと、
前記第２のフリップフロップに前記第２のクロックの前記第２のエッジが入力されてから、前記第２のクロックの第２のエッジが発生した時から前記第１のクロックの第２のエッジが発生する時までの第２の設定時間後に、前記第２の信号を入力とする第３のフリップフロップに前記第１のクロックの第２のエッジを入力し、前記第３のフリップフロップが前記第１のクロックの第２のエッジに同期して第３の信号を出力するステップと、
前記第２の設定時間を変更し、その変更に応じて変化する前記第３の信号の結果に基づいて、第２の遅延の時間を測定する遅延時間測定方法。
【請求項８】
前記第１のフリップフロップの入力および前記第１のフリップフロップのそれぞれに第１の初期値を設定するステップと、
前記第２のクロックの前記第１のエッジによって前記第１の初期値に基づく第１の期待値が前記第２のフリップフロップに保持されたか否か、および前記第１の設定時間に基づいて、前記第１の遅延時間を求めるステップと、
前記第２のフリップフロップの入力および前記第２のフリップフロップのそれぞれに第２の初期値を設定するステップと、
前記第１のクロックの前記第２のエッジによって前記第２の初期値に基づく第２の期待値が前記第３のフリップフロップに保持されたか否か、および前記第２の設定時間に基づいて、前記第２の遅延時間を求めるステップとを有する請求項７に記載の遅延時間測定方法。
【請求項９】
前記第２のクロックの前記第１のエッジによって前記第１の期待値が前記第２のフリップフロップに保持されたか否かに基づいて前記第１の設定時間を変化させるステップと、
前記第１の期待値が前記第２のフリップフロップに保持されるときの前記第１の設定時間の最大値に基づいて、前記第１の遅延時間を求めるステップと、
前記第１のクロックの前記第２のエッジによって前記第２の期待値が前記第３のフリップフロップに保持されたか否かに基づいて前記第２の設定時間を変化させるステップと、
前記第２の期待値が前記第３のフリップフロップに保持されるときの前記第２の設定時間の最大値に基づいて、前記第２の遅延時間を求めるステップとを有する請求項８に記載の遅延時間測定方法。
【請求項１０】
前記第２のクロックの前記第１のエッジによって前記第１の期待値が前記第２のフリップフロップに保持されなかった場合、前記第１の期待値を前記第２のフリップフロップに保持させるステップと、
前記第１のクロックの前記第２のエッジによって前記第２の期待値が前記第３のフリップフロップに保持されなかった場合、前記第２の期待値を前記第３のフリップフロップに保持させるステップとを備えることを特徴とする請求項９に記載の遅延時間測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遅延時間測定装置および遅延時間測定方法に関し、特に、フリップフロップ間の遅延時間測定装置および遅延時間測定方法に関する。
【背景技術】
【０００２】
半導体集積回路の微細化に伴い、製造バラツキが増加し、製造バラツキが半導体デバイスの特性バラツキに大きな影響を与えるようになってきている。
【０００３】
半導体デバイスの特性バラツキの一つに、デバイスや論理回路の遅延時間のバラツキがある。
【０００４】
デバイスや論理回路の遅延時間の大きさやそれらのバラツキを把握することは、半導体製造プロセスの観点から、半導体製造プロセスを改善するため及び半導体製造プロセスの状態を監視するために重要である。さらに、半導体集積回路設計の観点から、製造後の半導体集積回路が期待通りの動作を行うようにするために重要である。
【０００５】
記憶をもつフリップフロップ間のパスの遅延時間を測定する回路として、特許文献１には、第１のフリップフロップと第２のフリップフロップと、それぞれのフリップフロップに時間差を設けながらクロックを独立に供給する回路がある。この回路は、それぞれのフリップフロップに供給するクロックの時間差を変えた時に、第１のフリップフロップの論理値が第２のフリップフロップに正常にラッチされるか否かを調べ、この結果に基づいて遅延時間を測定する。
【０００６】
特許文献１に記載された遅延時間を測定する方法について、具体例を用いて詳細に説明する。図１９に示すように、回路は、第１のフリップフロップ６１１と、第１のフリップフロップ６１１に直列に接続された第２のフリップフロップ６２１とを有する。第１のフリップフロップ６１１に第１のクロック信号ＣＬＫ１が接続されている。第２のフリップフロップ６２１に第２のクロック信号ＣＬＫ２が接続されている。
【０００７】
図２０に示すように、第１のクロック信号ＣＬＫ１と第２のクロック信号ＣＬＫ２との間には時間差ｔが設けられている。第１のフリップフロップ６１１から第２のフリップフロップ６２１までの遅延時間ｄが時間差ｔよりも短ければ、第１のフリップフロップ６１１にラッチされていた値（図２０では論理１）が第２のフリップフロップ６２１にラッチされる。このような動作は、一般的には正常動作として捉えられる。
【０００８】
一方、図２１に示すように、第１のフリップフロップ６１１から第２のフリップフロップ６２１までの遅延時間dが時間差ｔよりも長ければ、第１のフリップフロップ６１１にラッチされていた値（図２１では論理１）は第２のフリップフロップ６２１にラッチされない。このような動作は、一般的には誤動作として捉えられる。
【０００９】
特許文献１に記載の回路では、時間差ｔを変えて、正常動作する最小の時間差、もしくは誤動作する最大の時間差を求めることでフリップフロップ間の遅延時間を測定することができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平６−１１８１２２号公報（図１、段落「００１５」）
【発明の概要】
【発明が解決しようとする課題】
【００１１】
近年の半導体集積回路の微細化によるフリップフロップ間のパスの遅延時間のバラツキを把握するために、フリップフロップ間の遅延時間データを多数収集する必要がある。
【００１２】
特許文献１に記載のフリップフロップ間のパスの遅延時間を測定する回路では、２つのフリップフロップを用いてその間の一つのパスの遅延時間を測定できる。すなわち、この回路を用いてＮ個のパス（Ｎパス）の遅延時間を測定する場合は、各パスの遅延時間を測定するために２つのフリップフロップを用いるため、必要とするフリップフロップの数は２＊Ｎ個となる。このように特許文献１に記載の方法では、多数のパスの遅延時間を測定しようとすると多数のフリップフロップが必要となるという課題がある。
【００１３】
本発明は、フリップフロップ間のパスの数が増えると、遅延時間を測定するために必要なフリップフロップ数が大きく増加するという課題を解決する遅延時間測定装置および遅延時間測定方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の遅延時間測定装置は、第１のクロックと第２のクロックとを出力するクロック生成部と、前記第１のクロックのエッジに同期して第１の信号を出力する第１のフリップフロップと、前記第１の信号を入力とし、前記第２のクロックのエッジに同期して第２の信号を出力する第２のフリップフロップと、前記第２の信号を入力とし、前記第１のクロックのエッジに同期して第３の信号を出力する第３のフリップフロップと、前記第１のクロックの第１のエッジが生成された時から前記第２のクロックの第１のエッジが発生されるまでの第１の設定時間と、前記第２のクロックの第２のエッジが生成された時から前記第１のクロックの第２のエッジが生成されるまでの第２の設定時間とを制御する制御部と、を有し、前記クロック生成部は、前記第１の設定時間に基づいて第２のクロックの第１のエッジを生成し、さらに、前記第２の設定時間に基づいて第１のクロックの第２のエッジを生成し、前記制御部は、前記第１の設定時間を変更し、その変更に応じて変化する前記第２の信号の結果に基づいて第１の遅延の時間を測定し、前記制御部は、前記第２の設定時間を変更し、その変更に応じて変化する前記第３の信号の結果に基づいて、前記第２の遅延の時間を測定する。
【００１５】
また、本発明の遅延時間測定方法は、第１のフリップフロップに第１のクロックの第１のエッジを入力し、前記第１のクロックの前記第１のエッジに同期して前記第１のフリップフロップが第１の信号を出力するステップと、前記第１のフリップフロップに前記第１のクロックの前記第１のエッジが入力されてから、第１のクロックの第１のエッジが発生した時から第２のクロックの第１のエッジが発生する時までの第１の設定時間後に、前記第１の信号を入力とする第２のフリップフロップに第２のクロックの第１のエッジを入力し、前記第２のフリップフロップが前記第２のクロックのエッジに同期して第２の信号を出力するステップと、前記第１の設定時間を変更し、その変更に応じて変化する前記第２の信号の結果に基づいて第１の遅延の時間を測定するステップと、前記第２のフリップフロップに、前記第２のクロックの前記第２のエッジを入力し、前記第２のクロックの前記第２のエッジに同期して前記第２のフリップフロップが第２の信号を出力するステップと、前記第２のフリップフロップに前記第２のクロックの前記第２のエッジが入力されてから、前記第２のクロックの第２のエッジが発生した時から前記第１のクロックの第２のエッジが発生する時までの第２の設定時間後に、前記第２の信号を入力とする第３のフリップフロップに前記第１のクロックの第２のエッジを入力し、前記第３のフリップフロップが前記第１のクロックの第２のエッジに同期して第３の信号を出力するステップと、前記第２の設定時間を変更し、その変更に応じて変化する前記第３の信号の結果に基づいて、第２の遅延の時間を測定する。
【発明の効果】
【００１６】
本発明の遅延時間測定装置および遅延時間測定方法によれば、フリップフロップ間のパスの数が増えると、遅延時間を測定するために必要なフリップフロップ数が大きく増加するのを防ぐことができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態の遅延時間測定方法を説明するフローチャートである。
【図２】本発明の第１の実施形態の遅延時間測定装置を説明するブロック図である。
【図３】本発明の第１の実施形態の遅延時間測定装置の動作を説明する動作波形である。
【図４】本発明の第１の実施形態の遅延時間測定装置の動作を説明する動作波形である。
【図５】本発明の第２の実施形態の遅延時間測定方法を説明するフローチャートである。
【図６】本発明の第２の実施形態の遅延時間測定装置を説明するブロック図である。
【図７】本発明の第２の実施形態の遅延時間測定装置の動作を説明する動作波形である。
【図８】本発明の第２の実施形態の遅延時間測定装置の動作を説明する動作波形である。
【図９】本発明の第２の実施形態の他の遅延時間測定装置を説明するブロック図である。
【図１０】図９に示した本発明の第２の実施形態の他の遅延時間測定装置の動作を説明する動作波形である。
【図１１】図９に示した本発明の第２の実施形態の他の遅延時間測定装置の動作を説明する動作波形である。
【図１２】本発明の第２の実施形態の他の遅延時間測定装置を説明するブロック図である。
【図１３】本発明の第３の実施形態の遅延時間測定方法を説明するフローチャートである。
【図１４】本発明の第４の実施形態の遅延時間測定方法を説明するフローチャートである。
【図１５】本発明の第４の実施形態の遅延時間測定装置を説明するブロック図である。
【図１６】本発明の第４の実施形態の遅延時間測定装置の動作を説明する動作波形である。
【図１７】本発明の第５の実施形態の遅延時間測定方法を説明するフローチャートである。
【図１８】本発明の第５の実施形態の遅延時間測定装置を説明するブロック図である。
【図１９】特許文献１に記載の遅延時間測定回路の構成を示すブロック図である。
【図２０】特許文献１に記載の遅延時間測定回路の動作を説明する動作波形である。
【図２１】特許文献１に記載の遅延時間測定回路の動作を説明する動作波形である。
【発明を実施するための形態】
【００１８】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００１９】
〔第１の実施形態〕
図１は本発明の第１の実施形態の遅延時間測定方法を説明するフローチャートである。図２は第１の実施形態の遅延時間測定装置を説明するブロック図である。図３と図４とは第１の実施形態の半導体集積回路の遅延時間測定装置の動作を説明する動作波形である。
【００２０】
図２に示すように、遅延時間測定装置１１０は、クロック生成部１４０と、第１のフリップフロップ１１１（ＦＦ１）と、第２のフリップフロップ１２１（ＦＦ２）と、第３のフリップフロップ１３１（ＦＦ３）と、制御部１５０とを有する。クロック生成部１４０は、第１のクロックＣＬＫ１と第２のクロックＣＬＫ２とを出力する。第１のフリップフロップ１１１は、第１のクロックＣＬＫ１のエッジに同期して第１の信号を出力する。第２のフリップフロップ１２１は、第１の信号を入力とし、第２のクロックＣＬＫ２のエッジに同期して第２の信号を出力する。第３のフリップフロップ１３１は、第２の信号を入力とし、第１のクロックＣＬＫ１のエッジに同期して第３の信号を出力する。
【００２１】
制御部１５０は、第１のクロックＣＬＫ１の第１のエッジが発生した時から第２のクロックＣＬＫ２の第１のエッジが発生するまでの第１の設定時間ｔ１２を制御する。さらに、制御部１５０は、第２のクロックＣＬＫ２の第２のエッジが発生した時から第１のクロックＣＬＫ１の第２のエッジが発生するまでの第２の設定時間ｔ２１を制御する。クロック生成部１４０は、第１の設定時間ｔ１２に基づいて第２のクロックＣＬＫ２の第１のエッジを生成する。また、クロック生成部１４０は、第２の設定時間ｔ２１に基づいて第１のクロックＣＬＫ１の第２のエッジを生成する。制御部１５０は、第１の設定時間を変更し、その変更に応じて変化する第２の信号の結果に基づいて第１の遅延の時間を測定する。制御部１５０は、第２の設定時間を変更し、その変更に応じて変化する第３の信号の結果に基づいて、第２の遅延の時間を測定する。
【００２２】
図２を用いて、遅延時間測定装置１１０をさらに詳細に説明する。第１のフリップフロップ１１１、第２のフリップフロップ１２１および、第３のフリップフロップ１３１は直列に接続されている。第１のクロックＣＬＫ１は第１のフリップフロップ１１１と第３のフリップフロップ１３１とに接続されている。第２のクロックＣＬＫ２は第２のフリップフロップ１２１に接続されている。
【００２３】
クロック生成部１４０は、第１のクロックＣＬＫ１と第２のクロックＣＬＫ２とを生成し、第１のクロックＣＬＫ１の第１のエッジの発生時から第２のクロックＣＬＫ２の第１のエッジの発生時までの第１の設定時間ｔ１２と、第２のクロックＣＬＫ２の第２のエッジの発生時から第１のクロックＣＬＫ１の第２のエッジの発生時までの第２の設定時間ｔ２１とを設定できる。なお、第１のエッジ及び第２のエッジは、両方ともパルスの立ち上がりを指す。
【００２４】
制御部１５０は、第１の設定時間ｔ１２および第２の設定時間ｔ２１を制御することができる。よって、制御部１５０は第１の設定時間ｔ１２を適宜変更し、その変更に応じて変化する第２の信号の結果に基づいて、第１のフリップフロップ１１１が第１の信号を出力した時から、第２のフリップフロップ１２１へ第１の信号が入力される時までの第１の遅延時間ｄ１を求めることができる。加えて、制御部１５０は第２の設定時間ｔ２１を適宜変更し、その変更に応じて変化する第３の信号の結果に基づいて、第２のフリップフロップ１２１が第２の信号を出力した時から、第３のフリップフロップ１３１へ第２の信号が入力される時までの第２の遅延時間ｄ２を求めることができる。
【００２５】
次に、図１、図３及び図４を用いて、シフトの正常動作の一例と誤動作の一例を挙げながら、遅延時間測定方法について説明する。
【００２６】
はじめに、第１のフリップフロップ１１１の出力Ｑ１から第２のフリップフロップ１２１の入力Ｄ２までの第１の遅延時間ｄ１の測定方法について、シフトの正常動作の一例を挙げて説明する。
【００２７】
図１に示すように、第１のフリップフロップ１１１に第１のクロックＣＬＫ１の第１のエッジを入力する（Ｓ１１１）。すると、第１のクロックＣＬＫ１の第１のエッジに同期して、第１のフリップフロップ１１１が第１の信号を出力する。このとき、第１のフリップフロップ１１１の入力Ｄ１の値は第１のフリップフロップ１１１にラッチされて第１のフリップフロップ１１１の出力Ｑ１が論理０から論理１に変化する（図３、１−１）。
【００２８】
次いで、第１のフリップフロップ１１１に第１のクロックＣＬＫ１の第１のエッジが入力されてから第１の設定時間ｔ１２後に、出力Ｑ１を入力とする第２のフリップフロップ１２１に第２のクロックＣＬＫ２の第１のエッジを入力する（Ｓ１１２）。第１の設定時間ｔ１２とは、第１のクロックＣＬＫ１の第１のエッジが発生した時から第２のクロックＣＬＫ２の第１のエッジが発生する時までの時間である。そして第２のフリップフロップ１２１が第２のクロックＣＬＫ２のエッジに同期して出力Ｑ２を出力する。このとき、第２のフリップフロップ１２１の入力Ｄ２の値が第２のフリップフロップ１２１にラッチされて、第２のフリップフロップ１２１の出力Ｑ２が論理１から論理０に変化する（図３、１−２）。
【００２９】
次いで、第２の信号に基づいて、第１のクロックＣＬＫ１のエッジを第１のフリップフロップ１１１に入力した時から、第１の信号が第２のフリップフロップ１２１に入力されるまでの第１の遅延ｄ１を検証する。第１のフリップフロップ１１１の出力Ｑ１から第２のフリップフロップ１２１の入力Ｄ２までの第１の遅延時間ｄ１を経て、第１のフリップフロップ１１１の出力Ｑ１の論理値の変化が、第２のフリップフロップ１２１の入力Ｄ２に到達する（図３、１−３）。第１の遅延時間ｄ１より第１の設定時間ｔ１２が小さい場合、第１のフリップフロップ１１１に保持されていた論理値０が第２のフリップフロップ１２１へシフトし、第１のフリップフロップ１１１から第２のフリップフロップ１２１への論理値のシフト動作が正常に行われる。
【００３０】
次に、シフトの誤動作の一例について図４を用いて説明する。
【００３１】
はじめに、図１に示すように、第１のフリップフロップ１１１に第１のクロックＣＬＫ１の第１のエッジを入力する（Ｓ１１１）。すると、第１のクロックＣＬＫ１の第１のエッジに同期して、第１のフリップフロップ１１１が第１の信号を出力する。このとき、第１のフリップフロップ１１１の入力Ｄ１の値が第１のフリップフロップ１１１にラッチされて第１のフリップフロップ１１１の出力Ｑ１が論理０から論理１に変化する（図４、１−１）。
【００３２】
次いで、第１のフリップフロップ１１１に第１のクロックＣＬＫ１の第１のエッジが入力されてから第１の設定時間ｔ１２後に、第１の信号を入力とする第２のフリップフロップ１２１に第２のクロックＣＬＫ２の第１のエッジを入力する（Ｓ１１２）。第１の設定時間ｔ１２とは、第１のクロックＣＬＫ１の第１のエッジが発生した時から第２のクロックＣＬＫ２の第１のエッジが発生する時までの時間である。すると、第２のフリップフロップ１２１が第２のクロックＣＬＫ２のエッジに同期して第２の信号を出力する。このとき、第１のクロックＣＬＫ１のエッジを第１のフリップフロップ１１１に入力した時から第２のフリップフロップ２１の入力Ｄ２までの第１の遅延時間ｄ１を経て、第１のフリップフロップ１１１の出力Ｑ１の論理値の変化が、第２のフリップフロップ２１の入力Ｄ２に到達する（図４、１−２）。
【００３３】
次いで、第２の信号に基づいて、第１のフリップフロップ１１１が第１の信号を出力した時から、第１の信号が第２のフリップフロップ１２１に入力されるまでの第１の遅延を検証する。第２のクロックＣＬＫ２の第１のエッジを第２のフリップフロップ１２１に入力すると、第２のフリップフロップ１２１の入力Ｄ２の値が第２のフリップフロップ１２１にラッチされる（図４、１−３）。第１の設定時間ｔ１２が第１の遅延時間ｄ１より小さい場合、第１のフリップフロップ１１１に保持されていた論理値０は第２のフリップフロップ１２１へ正常にシフトされない。これは「筒抜け」と呼ばれるシフトレジスタの誤動作である。
【００３４】
このように、第１の設定時間ｔ１２に応じて、シフトが正常に動作又は誤った動作をする。そこで、この第１の設定時間ｔ１２をどの程度にしたときに、シフトが正常動作するか又は誤動作するかを検証することで、第１の遅延時間ｄ１を求めることが可能となる（Ｓ１１３）。すなわち、第１の設定時間ｔ１２を少しずつ増加又は減少させ、シフトが正常動作する最小の時間差、もしくは誤動作する最大の時間差を求めることでフリップフロップ間の第１の遅延時間ｄ１を測定することができる。
【００３５】
次に、第２のフリップフロップ１２１の出力Ｑ２から第３のフリップフロップ１３１の入力Ｄ３までの第２の遅延時間の測定方法について、シフトの正常動作の一例を挙げて説明する。
【００３６】
はじめに、第２のフリップフロップ１２１に、第２のクロックＣＬＫ２の第２のエッジを入力する（Ｓ１２１）。すると、第２のクロックＣＬＫ２の第２のエッジに同期して第２のフリップフロップ１２１が第２の信号を出力する。すると、第２のフリップフロップ１２１の入力Ｄ２の値が第２のフリップフロップ１２１にラッチされて、第２のフリップフロップ１２１の出力Ｑ２が論理０から論理１に変化する（図３、２−１）。
【００３７】
次に第２のフリップフロップ１２１に第２のクロックＣＬＫ２の第２のエッジが入力されてから第２の設定時間ｔ２１後に、第２の信号を入力とする第３のフリップフロップ１３１に第１のクロックＣＬＫ１の第２のエッジを入力する。ここで、第２の設定時間ｔ２１とは、第２のクロックＣＬＫ２の第２のエッジが発生した時から第１のクロックＣＬＫ１の第２のエッジが発生する時までの時間である。すると、第３のフリップフロップ１３１が第１のクロックの第２のエッジに同期して第３の信号を出力する。このとき、第３のフリップフロップ１３１の入力Ｄ３の値が第３のフリップフロップ１３１にラッチされて第３のフリップフロップ１３１の出力Ｑ３が論理１から論理０に変化する（図３、２−２）。
【００３８】
次いで、第３の信号に基づいて第２のクロックＣＬＫ２の第２のエッジを第２のフリップフロップ１２１に入力した時から、第２の信号が第３のフリップフロップに入力されるまでの第２の遅延を検証する。第２のフリップフロップ１２１の出力Ｑ２から第３のフリップフロップ１３１の入力Ｄ３までの第２の遅延時間ｄ２を経て、第２のフリップフロップ１２１の出力Ｑ２の論理値の変化が、第３のフリップフロップ１３１の入力Ｄ３に到達する（図３、２−３）。このように、第２の設定時間ｔ２１が第２の遅延時間ｄ２より小さい場合、第２のフリップフロップ１２１に保持されていた論理値０が第３のフリップフロップ１３１へシフトし、第２のフリップフロップ１２１から第３のフリップフロップ１３１へのシフト動作が正常に行われる。
【００３９】
第２のフリップフロップ１２１から第３のフリップフロップ１３１へのシフトの誤動作の動作波形は図４と同様であるため、図示しない。
【００４０】
このように、第２の設定時間ｔ２１に応じて、シフトが正常に動作又は誤った動作をする。そこで、この第２の設定時間ｔ２１をどの程度にしたときに、シフトが正常動作するか又は誤動作するかを検証することで、第２の遅延時間ｄ２を求めることが可能となる（Ｓ１２３）。
【００４１】
第１の実施形態によれば、第１の遅延時間ｄ１と第２の遅延時間ｄ２との２つのパスの遅延時間測定に３つのフリップフリップを用いる。図１９を用いて説明した方法では、１つのパスの遅延時間測定に２つのフリップフロップを用いていたため、２つのパスの遅延時間測定に４つのフリップフロップを用いる必要があった。一方、本実施形態に係る遅延時間測定装置および遅延時間測定方法では、これらの遅延時間測定に必要なフリップフロップ数を３つにすることができ、より少ないフリップフロップ数で遅延時間を測定することができる。
【００４２】
遅延時間測定に必要なフリップフロップ数を少なくすることができるため、半導体集積回路の面積効率を上げることもできる。また、遅延時間測定を行うにあたり、半導体集積回路からの多数の出力と監視を減らすことができるため、遅延時間測定が容易となり、半導体集積回路同士の遅延時間のバラツキを容易に把握することができるようになる。
【００４３】
第１の実施形態は２つのパスの遅延時間測定の例であるが、本実施形態に係る遅延時間測定装置および遅延時間測定方法はＮ個のパス（以下、Ｎパス）の遅延時間測定にも容易に適用できる。Ｎパスの遅延時間測定にはＮ＋１個のフリップフロップを用いれば良い。図１９を用いて説明した方法では、Ｎパスの遅延時間測定に２＊Ｎ個のフリップフロップを用いる必要があったが、本実施形態に係る遅延時間測定装置及び遅延時間測定方法により、測定に必要なフリップフロップ数をほぼ半減できる。
【００４４】
第３のフリップフロップ１３１の出力を第１のフリップフロップ１１１の入力として、フリップフロップ群同士が環状に接続されてもよい。この場合の遅延時間測定装置では、
第３の信号を第１のフリップフロップの入力とし、制御部は、第１のクロックの第３のエッジが生成された時から前記第２のクロックの第３のエッジが発生されるまでの第３の設定時間を制御し、第３の設定時間を変更し、その変更に応じて変化する前記第１の信号の結果に基づいて第３の遅延の時間を測定する。このようにすると、第３のフリップフロップ１３１の出力Ｄ３から第１のフリップフロップ１１１の入力Ｄ１までの遅延時間を測定できる。すなわち、３つのフリップフロップを用いて３つのパスの遅延時間を測定することができる。
【００４５】
さらに、フリップフロップ群同士が環状に接続するという前述の形態もＮパスの遅延時間測定に容易に適用することができる。この場合、Ｎパスの遅延時間をＮ個のフリップフロップを用いて測定することができるようになる。すなわち、図１９を用いて説明した方法では、Ｎパスの遅延時間測定に２＊Ｎ個のフリップフロップが必要であったが、この場合は、Ｎ個のフリップフロップのみでＮパスの遅延時間測定を行うことができるようになる。
【００４６】
〔第２の実施形態〕
次に本発明の第２の実施形態の遅延時間測定装置および遅延時間測定方法について説明する。本実施形態の遅延時間測定装置はフリップフロップの入力と出力とを比較する比較部を有することを特徴とする。
【００４７】
図５に第２の実施形態の遅延時間測定方法を説明するフローチャートを示す。図６に第２の実施形態の遅延時間測定装置を説明するブロック図を示す。図７と図８には第２の実施形態の遅延時間測定装置の動作を説明する動作波形を示す。
【００４８】
図６に示すとおり、本実施形態の遅延時間測定装置２１０は、図２に示した第１の実施形態の遅延時間測定装置と同じように、クロック生成部と、第１のフリップフロップ２１１（ＦＦ１）と、第２のフリップフロップ２２１（ＦＦ２）と、第３のフリップフロップ２３１（ＦＦ３）と、制御部とを有する。なお、クロック生成部と制御部は図示されていない。ただし、制御部に含まれる第２のフリップフロップ２２１の入力Ｄ２と第２のフリップフロップ２２１の出力Ｑ２とを比較する第１の比較部２２２と、第３のフリップフロップ２３１の入力Ｄ３と第３のフリップフロップ２３１の出力Ｑ３とを比較する第２の比較部２３２とを表示する。第１の比較部２２２と第２の比較部２３２は、それぞれの比較部に入力される２つの入力が一致する場合は論理１を出力し、異なる場合は論理０を出力する。
【００４９】
次に、シフトの正常動作の一例について図５、図７を用いて説明する。
【００５０】
はじめに、第１のフリップフロップ２１１の入力Ｄ１に論理１を、第１のフリップフロップ２１１に論理０をそれぞれ初期値として設定する（Ｓ２１０）。
【００５１】
次に、第１のクロックＣＬＫ１の第１のエッジを第１のフリップフロップ２１１に入力する（Ｓ２１１）。すると、第１のフリップフロップ２１１の入力Ｄ１の値が第１のフリップフロップ２１１にラッチされる。その結果、第１のフリップフロップ２１１の出力Ｑ１が論理０から論理１に変化する（図７、１−１）。
【００５２】
次に、第１のクロックＣＬＫ１の第１のエッジの発生時から第２のクロックＣＬＫ２の第１のエッジの発生時までの第１の設定時間ｔ１２を経て、第２のクロックＣＬＫ２の第１のエッジを第２のフリップフロップ２２１に入力する（Ｓ２１２）。すると、第２のクロックＣＬＫ２の第１のエッジが入力された時の第２のフリップフロップ２２１の入力Ｄ２の値（論理０）が第２のフリップフロップ２２１にラッチされて第２のフリップフロップ２２１の出力Ｑ２が論理１から論理０に変化する（図７、１−２）。その結果、第１の比較部２２２の出力Ｃ２は論理１になる（図７、１−２ａ）。
【００５３】
その後、第１のクロックＣＬＫ１の第１のエッジを第１のフリップフロップ２１１に入力した時から第２のフリップフロップ２２１の入力Ｄ２までの第１の遅延時間ｄ１を経て、第１のフリップフロップ２１１の出力Ｑ１の論理０から論理１への変化が、第２のフリップフロップ２２１の入力Ｄ２に到達する（図７、１−３）。その結果、第１の比較部２２２の出力Ｃ２が論理０に戻る（図７、１−３ａ）。
【００５４】
このように、第１の遅延時間ｄ１が第１の設定時間ｔ１２に比べて大きい場合、第１のフリップフロップ２１１に保持されていた論理値０が第２のフリップフロップ２２１へシフトし、第１のフリップフロップ２１１から第２のフリップフロップ２２１へのシフト動作が正常に行われる。設定した初期値に基づいた期待値が保持され、第１の比較部２２２の出力Ｃ２が論理値０であることはシフト動作が正常に行われたことを示す。
【００５５】
次に、シフトの誤動作の一例について図８を用いて説明する。
【００５６】
はじめに、第１のフリップフロップ２１１の入力Ｄ１に論理１を第１のフリップフロップ２１１に論理０をそれぞれ初期値として設定する（Ｓ２１０）。
【００５７】
次に、第１のクロックＣＬＫ１の第１のエッジを第１のフリップフロップ２１１に入力する（Ｓ２１１）。すると、第１のフリップフロップ２１１の入力Ｄ１の値が第１のフリップフロップ２１１にラッチされて第１のフリップフロップ２１１の出力Ｑ１が論理０から論理１に変化する（図８、１−１）。
【００５８】
第１のクロックＣＬＫ１の第１のエッジを第１のフリップフロップ２１１に入力した時から第２のフリップフロップ２２１の入力Ｄ２までの第１の遅延時間ｄ１を経て、第１のフリップフロップ２１１の出力Ｑ１の論理０から論理１への変化が、第２のフリップフロップ２２１の入力Ｄ２に到達する（図８、１−２）。これによって第１の比較部２２２の出力Ｃ２が論理１になる（図８、１−２ａ）。
【００５９】
その後、第２のクロックＣＬＫ２の第１のエッジを第２のフリップフロップ２２１に入力する（Ｓ２１２）。すると、第２のクロックＣＬＫ２の大１のエッジが入力された時の第２のフリップフロップ２２１の入力Ｄ２の値（論理１）が第２のフリップフロップ２２１にラッチされる（図８、１−３）。第２のフリップフロップ２２１は元々論理１の状態だったため、入力Ｄ２の値（論理１）がラッチされてもその出力Ｑ２は論理１のままで変わらない。このように、第１の設定時間ｔ１２に比べて第１の遅延時間ｄ１がより大きい場合、第１のフリップフロップ２１１に保持されていた論理値０は第２のフリップフロップ２２１へ正常にシフトされない。これは第１の実施形態でも述べた「筒抜け」と呼ばれるシフトレジスタの誤動作である。設定した初期値に基づいた期待値が保持されず、第１の比較部２２２の出力Ｃ２が論理値１であることはシフト動作が誤動作したことを示す。
【００６０】
このように、本実施形態の遅延時間測定装置２１０は、第１の初期値に基づいた期待値が第２のフリップフロップ２２１に保持されたか否かと、第１の設定時間ｔ１２とに基づいて第１の遅延時間ｄ１を求めることができる（Ｓ２１４）。なお、ここで、第１の初期値に基づいた期待値が第２のフリップフロップ２２１に保持されたか否かは、第１の比較部２２２の出力Ｃ２が示す論理値に基づいて決定される。
【００６１】
次に、第２のフリップフロップ２２１の出力Ｑ２から第３のフリップフロップ２３１の入力Ｄ３までの第２の遅延時間の測定方法について、シフトの正常動作の一例を挙げて説明する。
【００６２】
第２のフリップフロップ２２１の入力Ｄ２に論理１を第２のフリップフロップ２２１に論理０をそれぞれ初期値として設定する（Ｓ２２０）。
【００６３】
次に、第２のクロックＣＬＫ２の第２のエッジを第２のフリップフロップ２２１に入力する（Ｓ２２１）。すると、第２のフリップフロップ２２１の入力Ｄ２の値（論理１）が第２のフリップフロップ２２１にラッチされて第２のフリップフロップ２２１の出力Ｑ２が論理０から論理１に変化する（図７、２−１）。
【００６４】
第２のクロックＣＬＫ２の第２のエッジの発生時から第１のクロックＣＬＫ１の第２のエッジの発生時までの第２の設定時間ｔ２１を経て、第１のクロックＣＬＫ１の第２のエッジを第３のフリップフロップ２３１に入力する（Ｓ２２２）。すると、第３のフリップフロップ２３１の入力Ｄ３の値（論理０）が第３のフリップフロップ２３１にラッチされて第３のフリップフロップ２３１の出力Ｑ３が論理１から論理０に変化する（図７、２−２）。これによって第２の比較部２３２の出力Ｃ３が論理１になる（図７，２−２ａ）。
【００６５】
その後、第２のクロックＣＬＫ２の第２のエッジを第２のフリップフロップ２２１に入力した時から、第３のフリップフロップ２３１の入力Ｄ３までの第２の遅延時間ｄ２を経て、第２のフリップフロップ２２１の出力Ｑ２の論理値の変化が、第３のフリップフロップ２３１の入力Ｄ３に到達する（２−３）。これによって第２の比較部２３２の出力C３が論理０に戻る（２−３ａ）。
【００６６】
このように、第２の設定時間ｔ２１が大２の遅延時間ｄ２より小さい場合、第２のフリップフロップ２２１に保持されていた論理値０が第３のフリップフロップ２３１へシフトし、第２のフリップフロップ２２１から第３のフリップフロップ２３１へのシフト動作が正常に行われる。設定した初期値に基づいた期待値が保持され、第２の比較部２３２の出力Ｃ３が論理値０であることはシフト動作が正常に行われたことを示す。
【００６７】
第２のフリップフロップ２２１から第３のフリップフロップ２３１へのシフトの誤動作の動作波形は図８と同様であるため図示及び説明を省略する。
【００６８】
このように、第２の初期値に基づいた期待値が第３のフリップフロップ２３１に保持されたか否か（第２の比較部２３２の出力Ｃ３が示す論理値）と、第２の設定時間ｔ２１に基づいて第２の遅延時間ｄ２を求める（Ｓ２２４）。
【００６９】
第２の実施形態によれば、期待値との比較を比較部で行い、第１の初期値または第２の初期値に基づいた期待値が第２のフリップフロップ２２１または第３のフリップフロップ２３１に保持されたか否かを判別することができる。このため、フリップフロップ内部の値を外部に読み出し、外部で期待値と比較する監視処理を省き、遅延時間測定処理を簡略化することができる効果がある。
【００７０】
図９は第２の実施形態の他の遅延時間測定装置を説明するブロック図、図１０と図１１とは図９に示した遅延時間測定装置の動作を説明する動作波形である。
【００７１】
図９に示すとおり、第２の実施形態の他の遅延時間測定装置２１０ａは、図６のブロック図に加えて、第１の比較部２２２の出力Ｃ２の値を保持する第１の比較記憶部２２３と、第２の比較部２３２の出力Ｃ３の値を保持する第２の比較記憶部２３３とを備える。第１のクロックＣＬＫ１と第１の制御信号ＥＮ１とが第２の比較記憶部２３３に接続され、第２のクロックＣＬＫ２と第２の制御信号ＥＮ２とが第１の比較記憶部２２３に接続されている。第１の比較記憶部２２３は、第１の比較部２２２の出力と制御信号ＥＮ２を入力とするＡＮＤ回路と、このＡＮＤ回路の出力をラッチするフリップフロップで構成される。
【００７２】
第２の比較記憶部２３３は、第２の比較部２３２の出力と制御信号ＥＮ１を入力とするＡＮＤ回路と、このＡＮＤ回路の出力をラッチするフリップフロップで構成される。
【００７３】
図１０にシフトの正常動作の一例を示す。
【００７４】
図１０に示す、１−１から１−３ａまでの動作波形および２−１から２‐３ａまでの動作波形は図７の同一符号で示す動作波形と同一であるので説明を省略する。
【００７５】
第１のクロックＣＬＫ１の第１のエッジが第２のクロックＣＬＫ２の第１のエッジに先行する周期では、第１の制御信号ＥＮ１が論理０、第２の制御信号ＥＮ２が論理１となる。逆に、第２のクロックＣＬＫ２の第２のエッジが第１のクロックＣＬＫ１の第２のエッジに先行する周期では、第１の制御信号ＥＮ１が論理１、第２の制御信号ＥＮ２が論理０となる。
【００７６】
第２のクロックＣＬＫ２の立ち下がりエッジで第１の比較記憶部２２３は第１の比較部２２２の出力Ｃ２の論理０をラッチし（図１０、１−４）、正常動作であることを保持する。
【００７７】
また、第１のクロックＣＬＫ１の立ち下がりエッジで第２の比較記憶部２３３は第２の比較部２３２の出力Ｃ３の論理０をラッチし（図１０、２−４）、正常動作であることを保持する。
【００７８】
図１１にシフトの誤動作の一例が示されている。
【００７９】
図１１を参照すると、１−１から１−３までの動作波形は図８の同一符号で示す動作波形と同一であるので説明を省略する。
【００８０】
第２のクロックＣＬＫ２の立ち下がりエッジで第１の比較記憶部２２３は第１の比較部２２２の出力Ｃ２の論理１をラッチし（図１１、１−４）、誤動作であることを保持する。
【００８１】
第２のフリップフロップ２２１から第３のフリップフロップ２３１へのシフトの誤動作の動作波形は図示しないが、図１１と同様である。
【００８２】
第２の実施形態の他の遅延時間測定装置によれば、期待値との比較結果を比較記憶部に保持することができる。結果の保持は、第１のクロックＣＬＫ１もしくは第２のクロックＣＬＫ２に同期するため、第１のクロックＣＬＫ１もしくは第２のクロックＣＬＫ２に同期して外部に比較結果を読み出すことができ、タイミングを取った遅延時間測定処理を容易に実現できる効果がある。
【００８３】
第２の実施形態のさらに他の遅延時間測定装置２１０ｂを説明するブロック図を図１２に示す。
【００８４】
図１２に示すように、第２の実施形態の他の遅延時間測定装置２１０ｂは、図６のブロック図に加えて、第１の比較部２２２の出力Ｃ２の値を保持する第１のスキャン可能な比較記憶部２２４と、第２の比較部２３２の出力Ｃ３の値を保持する第２のスキャン可能な比較記憶部２３４とを備える。第１のクロックＣＬＫ１と第１の制御信号ＥＮ１とが第２のスキャン可能な比較記憶部２３４に接続され、第２のクロックＣＬＫ２と第２の制御信号ＥＮ２とが第１のスキャン可能な比較記憶部２２４に接続されている。スキャン制御信号ＳＥＮは第１のスキャン可能な比較記憶部２２４と第２のスキャン可能な比較記憶部２３４とに接続されている。第１のスキャン可能な比較記憶部２２４は、第１の比較部２２２の出力と制御信号ＥＮ２を入力とするＡＮＤ回路とを有する。さらに、第１のスキャン可能な比較記憶部２２４は、このＡＮＤ回路の出力とその他の入力を入力とし、スキャン制御信号ＳＥＮを制御入力とするマルチプレクサと、このマルチプレクサの出力をラッチするフリップフロップを有する。第２のスキャン可能な比較記憶部２３４は、第２の比較部２３２の出力と制御信号ＥＮ１を入力とするＡＮＤ回路とを有する。さらに、第１のスキャン可能な比較記憶部２３４は、このＡＮＤ回路の出力とその他の入力を入力とし、スキャン制御信号ＳＥＮを制御入力とするマルチプレクサと、このマルチプレクサの出力をラッチするフリップフロップを有する。
【００８５】
スキャン制御信号ＳＥＮがスキャン可を示すとき、第１のスキャン可能な記憶比較部２２４と第２のスキャン可能な記憶比較部２３４とがスキャンパスを形成し、スキャン操作により第１のスキャン可能な記憶比較部２２４に保持された値と第２のスキャン可能な記憶比較部２３４に保持された値とを単一の出力から読み出すことが可能である。
【００８６】
一方、スキャン制御信号ＳＥＮがスキャン不可を示すとき、第１のスキャン可能な記憶比較部２２４と第２のスキャン可能な記憶比較部２３４とがそれぞれ第１の比較部２２２の出力Ｃ２の値と第２の比較部２３２の出力Ｃ３の値とを保持する。
【００８７】
第２の実施形態の他の遅延時間測定装置によれば、期待値との比較結果を比較記憶部に保持することができ、かつスキャンパスを使って単一の出力から比較結果を外部に読み出すことができる。比較記憶部の数によらず、単一のスキャン出力で比較結果の外部読み出しが可能であり、多数のパスの遅延時間を測定する場合であっても出力数の増加を招かない効果がある。
【００８８】
〔第３の実施形態〕
次に、本発明の第３の実施形態の遅延時間測定方法を図１３のフローチャートを用いて説明する。本実施形態は、期待値との比較に基づいて設定時間を変化させる処理を行うことを特徴とする。
【００８９】
図１３のフローチャートに示すＳ３１０からＳ３１２及びＳ３２０からＳ３２２は図５のフローチャートのＳ２１０からＳ２１２及びＳ２２０からＳ２２２と同一であるので、これらの説明を省略する。
【００９０】
Ｓ３１５では第１の初期値に基づいた第１の期待値が第２のフリップフロップに保持されたか否かを判定する。第１の期待値が第２のフリップフロップに保持されている場合は正常動作、第１の期待値が第２のフリップフロップに保持されていない場合は誤動作が起きたと考えられる。
【００９１】
保持されていない場合、第１の遅延時間ｄ１に比べて第１の設定時間ｔ１２が大きいので、第１の設定時間ｔ１２を減少させる（Ｓ３１６１）。一方、保持されている場合、第１の遅延時間ｄ１に比べて第１の設定時間ｔ１２が小さいので、第１の設定時間ｔ１２を増加させる（Ｓ３１６２）。
【００９２】
その後、第１の期待値が第２のフリップフロップに保持されるときの第１の設定時間ｔ１２の最大値を求めたかを判定し（Ｓ３１７）、否であればＳ３１０に戻り、肯であればＳ３２０に進む。
【００９３】
Ｓ３２５では第２の初期値に基づいた第２の期待値が第３のフリップフロップに保持されたか否かを判定する。第２の期待値が第３のフリップフロップに保持されている場合は正常動作、第２の期待値が第３のフリップフロップに保持されていない場合は誤動作が起きたと考えられる。
【００９４】
保持されていない場合、第２の遅延時間ｄ２に比べて第２の設定時間ｔ２１が大きいので、第２の設定時間ｔ２１を減少させる（Ｓ３２６１）。一方、保持されている場合、第２の遅延時間ｄ２に比べて第２の設定時間ｔ２１が小さいので、第２の設定時間ｔ２１を増加させる（Ｓ３２６２）。
【００９５】
その後、第２の期待値が第３のフリップフロップに保持されるときの第２の設定時間ｔ２１の最大値を求めたかを判定し（Ｓ３２７）、否であればＳ３２０に戻り、肯であればＳ３３１に進む。
【００９６】
最後に、第１の期待値が第２のフリップフロップに保持されるときの第１の設定時間ｔ１２の最大値を第１の遅延時間ｄ１とし（Ｓ３３１）、第２の期待値が第３のフリップフロップに保持されるときの第２の設定時間ｔ２１の最大値を第２の遅延時間ｄ２とする（Ｓ３３２）。
【００９７】
第３の実施形態によれば、期待値との比較に基づいて設定時間を変化させる処理を行い、遅延時間を容易に求めることができる効果がある。
【００９８】
〔第４の実施形態〕
次に、本発明の第４の実施形態の遅延時間測定装置及び遅延時間測定方法を図１４、図１５、図１６を用いて説明する。本実施形態の遅延時間測定装置は、フリップフロップに保持された値を修正する自己修正部を有することを特徴とする。
【００９９】
図１４は第４の実施形態の遅延時間測定方法を説明するフローチャート、図１５は第４の実施形態の遅延時間測定装置を説明するブロック図、図１６は第４の実施形態の遅延時間測定装置の動作を説明する動作波形である。
【０１００】
図１５に示すように、第４の実施形態の遅延時間測定装置４１０は、図９に示した第２の遅延時間測定装置２１０ａの構成と同じように、クロック生成部と、第１のフリップフロップ４１１（ＦＦ１）と、第２のフリップフロップ４２１（ＦＦ２）と、第３のフリップフロップ４３１（ＦＦ３）と、第１の比較部４２２と、第２の比較部４３２と、制御部とを有する。なお、クロック生成部と制御部は図示されていない。制御部は、第２のフリップフロップ４２１の入力Ｄ２、第１の比較記憶部４２３の出力Ｅ２、および第２の制御信号ＥＮ２に基づいて第２のフリップフロップ４２１に保持された値を修正する第１の自己修正部４２５と、第３のフリップフロップ４３１の入力Ｄ３、第２の比較記憶部４３３の出力Ｅ３、および第１の制御信号ＥＮ１に基づいて第３のフリップフロップ４３１に保持された値を修正する第２の自己修正部４３５とを備える。
第１の自己修正部４２５は、第１の比較記憶部４２３の出力Ｅ２と制御信号ＥＮ２とを入力とする第１のＡＮＤ回路と、第１のＡＮＤ回路の出力と、第１のフリップフロップ４１１の出力Ｑ１とを入力とする第２のＡＮＤ回路と、第１のＡＮＤ回路の出力と、第１のフリップフロップ４１１の出力Ｑ１をＮＯＴ回路で反転させたものを入力とする第３のＡＮＤ回路とを有する。
【０１０１】
図１４を参照すると、図１４に示したフローチャートは、図１３に示したフローチャートのＳ３１６１とＳ３１７に相当するＳ４１６１とＳ４１７との間にＳ４１６３が、Ｓ３２６１とＳ３２７に相当するＳ４２６１とＳ４２７との間にＳ４２６３が挿入されたフローチャートである。
【０１０２】
Ｓ４１５で第１の初期値に基づいた第１の期待値が第２のフリップフロップ４２１に保持されたか否かを判定した結果が否であった場合、第１の初期値に基づいた第１の期待値（正常動作したときに期待されるＱ２の値）を第２のフリップフロップ４２１に保持させる（Ｓ４１６３）。更に、Ｓ４１７で第１の期待値が第２のフリップフロップ４２１に保持されるときの第１の設定時間ｔ１２の最大値を求めたかを判定した結果が否であった場合、Ｓ４１０をとばしてＳ４１１に戻る。
【０１０３】
同様に、Ｓ４２５で第２の初期値に基づいた第２の期待値が第３のフリップフロップに保持されたか否かを判定した結果が否であった場合、第２の初期値に基づいた第２の期待値（正常動作したときに期待されるＱ３の値）を第３のフリップフロップ４３１に保持させる（Ｓ４２６３）。更に、Ｓ４２７で第２の期待値が第３のフリップフロップに保持されるときの第２の設定時間ｔ２１の最大値を求めたかを判定した結果が否であった場合、Ｓ４２０をとばしてＳ４２１に戻る。
【０１０４】
図１６にシフトの誤動作の一例を示す。なお、１−１から１−４までの動作波形は図１１の同一符号に示す動作波形と同一であるので説明を省略する。
【０１０５】
第１の比較記憶部４２３の出力Ｅ２が論理０から論理１に変化したことにより第２のフリップフロップ４２１の入力Ｄ２の値である論理１の否定を第１の期待値として、ＣＬＲ２を論理１に変化させ（１−５）、第２のフリップフロップ４２１を非同期的にクリアする（１−６）。この処理により、シフトの誤動作が起きても第２のフリップフロップ４２１が期待値（論理０）を保持するように修正される。その後、第１の比較部４２２の出力Ｃ２は論理０に戻り（１−７）、第２の制御信号ＥＮ２が論理０になると、ＣＬＲ２が論理０に戻る（１−８）。
【０１０６】
一方、第２のフリップフロップ４２１の入力Ｄ２が論理０の場合、論理０の否定を第１の期待値として、ＰＲＥ２を論理１に変化させ、第２のフリップフロップ４２１を非同期的にプリセットする。この処理により、シフトの誤動作が起きても第２のフリップフロップ４２１が期待値（論理１）を保持するように修正される。その後、第１の比較部４２２の出力Ｃ２は論理０に戻り、第２の制御信号ＥＮ２が論理０になると、ＰＲＥ２が論理０に戻る（本動作は不図示）。
【０１０７】
第４の実施形態によれば、期待値との比較に基づいて期待値が保持されていない場合は期待値を保持させる処理を行い、初期値の再設定をすることなくクロックを供給することができ、遅延時間測定処理を簡略化できる効果がある。
【０１０８】
〔第５の実施形態〕
次に、本発明の第５の実施形態の遅延時間測定装置及び遅延時間測定方法を図１７、図１８を用いて説明する。本実施形態の遅延時間測定装置は、所定回数の計測結果を保持し、出力することを特徴とする。
【０１０９】
図１７は第５の実施形態の遅延時間測定方法を説明するフローチャート、図１８は第５の実施形態の遅延時間測定装置を説明するブロック図である。
【０１１０】
図１８に示すように、第５の実施形態の遅延時間測定装置は、図１５に示した第４の遅延時間測定装置４１０の構成と同じように、クロック生成部と、第１のフリップフロップ５１１（ＦＦ１）と、第２のフリップフロップ５２１（ＦＦ２）と、第３のフリップフロップ５３１（ＦＦ３）と、第１の比較部５２２と、第２の比較部５３２と、制御部とを有する。なお、クロック生成部と制御部は図示されていない。制御部は、第１の比較記憶部５２３の出力Ｅ２を入力とする第１の計測部５２６と、第２の比較記憶部５３３の出力Ｅ３を入力とする第２の計測部５２６とを備える。
【０１１１】
図１７を参照して、説明する。なお、Ｓ５１０からＳ５１２、Ｓ５２０からＳ５２２は、図５のフローチャートのＳ２１０からＳ２１２及びＳ２２０からＳ２５２同一であるため、これらの説明を省略する。
【０１１２】
Ｓ５１８で第１の初期値に基づいた第１の期待値が第２のフリップフロップ５２１に保持されたか否かを第１の計測結果として第１の計測部５２６で計測する。
【０１１３】
次に、Ｓ５１９で所定回数計測したか否かを判別し、否であればＳ５１０へ戻り計測を繰り返す。肯である場合は次のＳ５２０へ進む。
【０１１４】
同様に、Ｓ５２８で第２の初期値に基づいた第２の期待値が第３のフリップフロップ５３１に保持されたか否かを第２の計測結果として第２の計測部５３６で計測する。
【０１１５】
次に、Ｓ５２９で所定回数計測したか否かを判別し、否であればＳ５２０へ戻り計測を繰り返す。肯である場合は次のＳ５３３へ進む。
【０１１６】
最後に、第１の計測部５２６で計測した第１の計測結果を出力するＳ５３３と第２の計測部５３６で計測した第２の計測結果を出力するＳ５３４と行う。
【０１１７】
第５の実施形態によれば、所定回数の計測結果を保持し、出力することができる。このため、多数回の遅延時間を測定し、統計的解析を行って遅延時間測定する処理を簡略化できる効果がある。
【０１１８】
第１の形態の拡張として述べたように、他の形態においてもフリップフロップ数を４以上に拡張してもよい。このようにすると、Ｎパスの遅延時間測定に必要なフリップフロップ数はＮ＋１個になる。
【０１１９】
また、第１の形態の変形形態として述べたように、他の形態においても最終段のフリップフロップの出力を初段のフリップフロップの入力とする環状構造としてもよい。このようにすると、Ｎパスの遅延時間測定に必要なフリップフロップ数はＮ個になる。
【０１２０】
本発明は上記実施形態に限定されることなく、特許請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲内に含まれるものであることはいうまでもない。
【０１２１】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１２２】
（付記１）第１のクロックと第２のクロックとを出力するクロック生成部と、前記第１のクロックのエッジに同期して第１の信号を出力する第１のフリップフロップと、前記第１の信号を入力とし、前記第２のクロックのエッジに同期して第２の信号を出力する第２のフリップフロップと、前記第２の信号を入力とし、前記第１のクロックのエッジに同期して第３の信号を出力する第３のフリップフロップと、前記第１のクロックの第１のエッジが生成された時から前記第２のクロックの第１のエッジが発生されるまでの第１の設定時間と、記第２のクロックの第２のエッジが生成された時から前記第１のクロックの第２のエッジが生成されるまでの第２の設定時間とを制御する制御部と、を有し、前記クロック生成部は、前記第１の設定時間に基づいて第２のクロックの第１のエッジを生成し、さらに、前記第２の設定時間に基づいて第１のクロックの第２のエッジを生成し、前記制御部は、前記第１の設定時間を変更し、その変更に応じて変化する前記第２の信号の結果に基づいて第１の遅延の時間を測定し、前記制御部は、前記第２の設定時間を変更し、その変更に応じて変化する前記第３の信号の結果に基づいて、前記第２の遅延の時間を測定する付記１に記載の遅延時間測定装置。
【０１２３】
（付記２）前記制御部は、前記第２のクロックの前記第１のエッジが発生した後の前記第２のフリップフロップが出力する前記第２の信号が第１の期待値と一致するか否かを判別する第１の比較部と、前記第１のクロックの前記第２のエッジが発生した後の前記第３のフリップフロップが出力する前記第３の信号が第２の期待値と一致するか否かを判別する第２の比較部とを有する付記１に記載の遅延時間測定装置。
【０１２４】
（付記３）前記制御部は、前記第１の比較部が判別した結果を記憶する第１の比較記憶部と、前記第２の比較部が判別した結果を記憶する第２の比較記憶部と、を有し、前記第１の比較記憶部及び前記第２の比較記憶部は、前記第１のクロック又は前記第２のクロックに同期して比較結果を出力する付記２に記載の遅延時間測定装置。
【０１２５】
（付記４）前記制御部は、前記第１の比較部が判別した結果を記憶し、スキャン可能な第１のスキャン可能な比較記憶部と、前記第２の比較部が判別した結果を記憶し、スキャン可能な第２のスキャン可能な比較記憶部と、前記第１のスキャン可能な比較部と、前記第２のスキャン可能な比較部とに接続されたスキャン制御信号を有し、単一の出力から、前記第１のスキャン可能な比較記憶部に記憶された値と前記第２のスキャン可能な比較記憶部に記憶された値とが読み出される付記２に記載の遅延時間測定装置。
【０１２６】
（付記５）前記制御部は、前記第２のクロックの前記第１のエッジが発生した後の前記第２のフリップフロップが出力する前記第２の信号が前記第１の期待値と一致するか否かを判別し、一致しない場合は前記第１の期待値を前記第２のフリップフロップに保持させる第１の自己修正部と、前記第１のクロックの前記第２のエッジが発生した後の前記第３のフリップフロップが出力する前記３の信号が前記第２の期待値と一致するか否かを判別し、一致しない場合は前記第２の期待値を前記第３のフリップフロップに保持させる第２の自己修正部とを有する付記２から４のいずれかに記載の遅延時間測定装置。
【０１２７】
（付記６）前記制御部は、前記第２のクロックの前記第１のエッジによって前記第１の期待値が前記第２のフリップフロップに保持されたか否かを複数回計測した結果を第１の計測結果として保持する第１の計測部と、前記第１のクロックの前記第２のエッジによって前記第２の期待値が前記第３のフリップフロップに保持されたか否かを複数回計測した結果を第２の計測結果として保持する第２の計測部とを有する付記５に記載の遅延時間測定装置。
【０１２８】
（付記７）前記第３の信号を前記第１のフリップフロップの入力とし、前記制御部は、前記第１のクロックの第３のエッジが生成された時から前記第２のクロックの第３のエッジが発生されるまでの第３の設定時間を制御し、前記第３の設定時間を変更し、その変更に応じて変化する前記第１の信号の結果に基づいて第３の遅延の時間を測定する付記１から６に記載の遅延時間測定装置。
【０１２９】
（付記８）第１のフリップフロップに前記第１のクロックの前記第１のエッジを入力し、前記第１のクロックの前記第１のエッジに同期して前記第１のフリップフロップが第１の信号を出力するステップと、前記第１のフリップフロップに前記第１のクロックの前記第１のエッジが入力されてから、第１のクロックの第１のエッジが発生した時から第２のクロックの第１のエッジが発生する時までの第１の設定時間後に、前記第１の信号を入力とする第２のフリップフロップに第２のクロックの第１のエッジを入力し、前記第２のフリップフロップが前記第２のクロックのエッジに同期して第２の信号を出力するステップと、前記第１の設定時間を変更し、その変更に応じて変化する前記第２の信号の結果に基づいて第１の遅延の時間を測定するステップと、前記第２のフリップフロップに、前記第２のクロックの前記第２のエッジを入力し、前記第２のクロックの前記第２のエッジに同期して前記第２のフリップフロップが第２の信号を出力するステップと、前記第２のフリップフロップに前記第２のクロックの前記第２のエッジが入力されてから、前記第２のクロックの第２のエッジが発生した時から前記第１のクロックの第２のエッジが発生する時までの第２の設定時間後に、前記第２の信号を入力とする第３のフリップフロップに前記第１のクロックの第２のエッジを入力し、前記第３のフリップフロップが前記第１のクロックの第２のエッジに同期して第３の信号を出力するステップと、前記第２の設定時間を変更し、その変更に応じて変化する前記第３の信号の結果に基づいて、第２の遅延の時間を測定する遅延時間測定方法。
【０１３０】
（付記９）前記第１のフリップフロップの入力および前記第１のフリップフロップのそれぞれに第１の初期値を設定するステップと、前記第２のクロックの前記第１のエッジによって前記第１の初期値に基づく第１の期待値が前記第２のフリップフロップに保持されて前記第２の信号が変化したか否か、および前記第１の設定時間に基づいて、前記第１の遅延時間を求めるステップと、前記第２のフリップフロップの入力および前記第２のフリップフロップのそれぞれに第２の初期値を設定するステップと、前記第１のクロックの前記第２のエッジによって前記第２の初期値に基づく第２の期待値が前記第３のフリップフロップに保持されて前記第３の信号が変化したか否か、および前記第２の設定時間に基づいて、前記第２の遅延時間を求めるステップとを有する付記８に記載の遅延時間測定方法。
【０１３１】
（付記１０）前記第２のクロックの前記第１のエッジによって前記第１の期待値が前記第２のフリップフロップに保持されて前記第２の信号が変化したか否かに基づいて前記第１の設定時間を変化させるステップと、前記第１の期待値が前記第２のフリップフロップに保持されるときの前記第１の設定時間の最大値に基づいて、前記第１の遅延時間を求めるステップと、前記第１のクロックの前記第２のエッジによって前記第２の期待値が前記第３のフリップフロップに保持されて前記第３の信号が変化したか否かに基づいて前記第２の設定時間を変化させるステップと、前記第２の期待値が前記第３のフリップフロップに保持されるときの前記第２の設定時間の最大値に基づいて、前記第２の遅延時間を求めるステップとを有する付記９に記載の遅延時間測定方法。
【０１３２】
（付記１１）前記第２のクロックの前記第１のエッジによって前記第１の期待値が前記第２のフリップフロップに保持されなかった場合、前記第１の期待値を前記第２のフリップフロップに保持させるステップと、前記第１のクロックの前記第２のエッジによって前記第２の期待値が前記第３のフリップフロップに保持されなかった場合、前記第２の期待値を前記第３のフリップフロップに保持させるステップとを備えることを特徴とする付記１０に記載の遅延時間測定方法。
【０１３３】
（付記１２）前記第２のクロックの前記第１のエッジによって前記第１の期待値が前記第２のフリップフロップに保持されたか否かを複数回計測した結果を第１の計測結果として保持するステップと、前記第１のクロックの前記第２のエッジによって前記第２の期待値が前記第３のフリップフロップに保持されたか否かを複数回計測した結果を第２の計測結果として保持するステップとを備えることを特徴とする付記１１に記載の遅延時間測定方法。
【符号の説明】
【０１３４】
１１０、２１０、２１０ａ、２１０ｂ、４１０、５１０、６１０    遅延時間測定装置
１１１、２１１、４１１、５１１、６１１    第１のフリップフロップ
１２１、２２１、４２１、５２１、６２１    第２のフリップフロップ
１３１、２３１、４３１、５３１    第３のフリップフロップ
１４０    クロック生成部
１５０    制御部
２２２、４２２、５２２    第１の比較部
２２３、４２３、５２３    第１の比較記憶部
２２４    第１のスキャン可能な比較記憶部
２３２、４３２、５３２    第２の比較部
２３３、４３３、５３３    第２の比較記憶部
２３４    第２のスキャン可能な比較記憶部
４２５    第１の自己修正部
４３５    第２の自己修正部
５２６    第１の計測部
５３６    第２の計測部
【図１】
0005621566.tif 000002
【図２】
0005621566.tif 000003
【図３】
0005621566.tif 000004
【図４】
0005621566.tif 000005
【図５】
0005621566.tif 000006
【図６】
0005621566.tif 000007
【図７】
0005621566.tif 000008
【図８】
0005621566.tif 000009
【図９】
0005621566.tif 000010
【図１０】
0005621566.tif 000011
【図１１】
0005621566.tif 000012
【図１２】
0005621566.tif 000013
【図１３】
0005621566.tif 000014
【図１４】
0005621566.tif 000015
【図１５】
0005621566.tif 000016
【図１６】
0005621566.tif 000017
【図１７】
0005621566.tif 000018
【図１８】
0005621566.tif 000019
【図１９】
0005621566.tif 000020
【図２０】
0005621566.tif 000021
【図２１】
0005621566.tif 000022