(57)【要約】【課題】低消費電力動作と正確な時間計測を実現する。【解決手段】時間計測回路は、高速クロックＲＣＬＫ１と、高速クロックＲＣＬＫ１を反転させた高速クロックＲＣＬＫ２をそれぞれ停止信号ＲＯＳＣ＿ＳＴＯＰでマスクする論理回路２２と、停止信号ＲＯＳＣ＿ＳＴＯＰでマスクされた高速クロックＲＯＳＣ＿ＣＬＫ１，ＲＯＳＣ＿ＣＬＫ２を数える高速カウンタ１２ａ，１２ｂと、高速カウンタ１２ａ，１２ｂの計数結果のうち、受付不可能な時間幅のクロック入力が発生していない方のカウンタによって得られた計数結果を選択するセレクタ２０と、セレクタ２０によって選択された計数結果を基に開始信号ＲＯＳＣ＿ＳＴＡＲＴの入力から停止信号ＲＯＳＣ＿ＳＴＯＰの入力までの時間間隔を算出する時間算出部２１とを備える。【選択図】  図１
2020160016.tif 000002
【特許請求の範囲】
【請求項１】
外部からの開始信号の入力のタイミングで有意となり、外部からの停止信号の入力のタイミングで無意となる発振許可信号を出力するように構成されたフリップフロップ回路と、
前記発振許可信号が有意の期間中に第１のクロックを生成するように構成された発振回路と、
前記第１のクロックと、前記第１のクロックを反転させた第２のクロックとをそれぞれ前記停止信号でマスクするように構成された論理回路と、
前記停止信号でマスクされた第１のクロックを数えるように構成された第１のカウンタと、
前記停止信号でマスクされた第２のクロックを数えるように構成された第２のカウンタと、
前記第１、第２のカウンタの計数結果のうち、受付不可能な時間幅のクロック入力が発生していない方のカウンタによって得られた計数結果を選択するように構成されたセレクタと、
前記停止信号の入力後に前記セレクタによって選択された計数結果を基に前記開始信号の入力から前記停止信号の入力までの時間間隔を算出するように構成された時間算出部とを備えることを特徴とする時間計測回路。
【請求項２】
請求項１記載の時間計測回路において、
前記セレクタは、前記第１のクロックの位相が０°から１８０°よりも小さい所定の第１の位相値未満の範囲では前記第１のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第１の位相値から１８０°以上で３６０°よりも小さい所定の第２の位相値未満の範囲では前記第２のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第２の位相値以上３６０°未満の範囲では前記第１のカウンタの計数結果を選択することを特徴とする時間計測回路。
【請求項３】
請求項１または２記載の時間計測回路において、
前記論理回路は、
前記発振回路から出力された第１のクロックを入力とするバッファ回路と、
前記発振回路から出力された第１のクロックを反転させた前記第２のクロックを生成するように構成されたインバータと、
前記バッファ回路から出力された第１のクロックを前記停止信号でＯＲマスクするように構成された第１のＯＲ回路と、
前記インバータから出力された第２のクロックを前記停止信号でＯＲマスクするように構成された第２のＯＲ回路とから構成されることを特徴とする時間計測回路。
【請求項４】
外部からの開始信号の入力のタイミングで有意となり、外部からの停止信号の入力のタイミングで無意となる発振許可信号を出力するように構成されたフリップフロップ回路と、
前記発振許可信号が有意の期間中に第１のクロックを生成するように構成された発振回路と、
前記第１のクロックを前記停止信号でマスクした第２のクロックを生成するように構成された論理回路と、
前記第１のクロックを数えるように構成された第１のカウンタと、
前記第２のクロックを数えるように構成された第２のカウンタと、
前記第１、第２のカウンタの計数結果のうち、受付不可能な時間幅のクロック入力が発生していない方のカウンタによって得られた計数結果を選択するように構成されたセレクタと、
前記停止信号の入力後に前記セレクタによって選択された計数結果を基に前記開始信号の入力から前記停止信号の入力までの時間間隔を算出するように構成された時間算出部とを備えることを特徴とする時間計測回路。
【請求項５】
請求項４記載の時間計測回路において、
前記セレクタは、前記第１のクロックの位相が０°から１８０°よりも小さい所定の第１の位相値未満の範囲では前記第２のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第１の位相値から１８０°以上で３６０°よりも小さい所定の第２の位相値未満の範囲では前記第１のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第２の位相値以上３６０°未満の範囲では前記第２のカウンタの計数結果を選択することを特徴とする時間計測回路。
【請求項６】
請求項４または５記載の時間計測回路において、
前記論理回路は、前記発振回路から出力された第１のクロックを前記停止信号でＯＲマスクした前記第２のクロックを生成するように構成されたＯＲ回路から構成されることを特徴とする時間計測回路。
【請求項７】
時間計測回路のテストを行うように構成されたテスト実行部と、
通常時に外部から入力された第１の開始信号、第１の停止信号を選択して出力し、テスト実行時に前記テスト実行部から出力された第２の開始信号、第２の停止信号を選択して出力すると共に、テスト終了時に第３の停止信号を出力するように構成された動作設定回路と、
前記第１の開始信号または前記第２の開始信号の入力のタイミングで有意となり、前記第１の停止信号または前記第３の停止信号の入力のタイミングで無意となる発振許可信号を出力するように構成されたフリップフロップ回路と、
前記発振許可信号が有意の期間中に第１のクロックを生成するように構成された発振回路と、
前記第１のクロックと、前記第１のクロックを反転させた第２のクロックとをそれぞれ前記第１の停止信号または前記第２の停止信号でマスクするように構成された論理回路と、
前記第１の停止信号または前記第２の停止信号でマスクされた第１のクロックを数えるように構成された第１のカウンタと、
前記第１の停止信号または前記第２の停止信号でマスクされた第２のクロックを数えるように構成された第２のカウンタと、
前記第１、第２のカウンタの計数結果のうち、受付不可能な時間幅のクロック入力が発生していない方のカウンタによって得られた計数結果を選択するように構成されたセレクタと、
通常時に前記第１の停止信号の入力後に前記セレクタによって選択された計数結果を基に前記第１の開始信号の入力から前記第１の停止信号の入力までの時間間隔を算出するように構成された時間算出部とを備え、
前記テスト実行部は、テスト実行時に前記第１、第２のカウンタの計数結果を比較することにより、前記発振回路のテストを行うことを特徴とする時間計測回路。
【請求項８】
請求項７記載の時間計測回路において、
前記セレクタは、前記第１のクロックの位相が０°から１８０°よりも小さい所定の第１の位相値未満の範囲では前記第１のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第１の位相値から１８０°以上で３６０°よりも小さい所定の第２の位相値未満の範囲では前記第２のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第２の位相値以上３６０°未満の範囲では前記第１のカウンタの計数結果を選択することを特徴とする時間計測回路。
【請求項９】
請求項８記載の時間計測回路において、
前記テスト実行部は、前記第１のクロックの位相が前記第１の位相値の直前の値のとき、前記第１の位相値のとき、または前記第１の位相値の直後の値のときの前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とを取得して比較し、さらに前記第１のクロックの位相が前記第２の位相値の直前の値のとき、前記第２の位相値のとき、または前記第２の位相値の直後の値のときの前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とを取得して比較することを特徴とする時間計測回路。
【請求項１０】
請求項９記載の時間計測回路において、
前記テスト実行部は、取得した前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とが一致している場合に、前記発振回路が正常と判定し、前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とが不一致の場合に、前記発振回路が故障していると判定することを特徴とする時間計測回路。
【請求項１１】
請求項９または１０記載の時間計測回路において、
前記テスト実行部は、前記第１のクロックの位相が前記第１の位相値の直前の値のとき、前記第１の位相値のとき、または前記第１の位相値の直後の値のときの前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とを取得した場合に、取得した第２のカウンタの計数結果を１減算した上で、前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とを比較することを特徴とする時間計測回路。
【請求項１２】
請求項７乃至１１のいずれか１項に記載の時間計測回路において、
前記論理回路は、
前記発振回路から出力された第１のクロックを入力とするバッファ回路と、
前記発振回路から出力された第１のクロックを反転させた前記第２のクロックを生成するように構成されたインバータと、
テスト実行時に、前記第１のクロックを前記第２のクロックよりも遅れてマスクし前記第２のクロックよりも遅れてマスク解除するための第４の停止信号と、前記第２のクロックを前記第１のクロックよりも先にマスクし前記第１のクロックよりも先にマスク解除するための第５の停止信号とを、前記第２の停止信号から生成するように構成されたマスク解除タイミング制御回路と、
前記バッファ回路から出力された第１のクロックを前記第１の停止信号または前記第４の停止信号でＯＲマスクするように構成された第１のＯＲ回路と、
前記インバータから出力された第２のクロックを前記第１の停止信号または前記第５の停止信号でＯＲマスクするように構成された第２のＯＲ回路とを備え、
前記発振回路と前記バッファ回路と前記インバータとは、前記発振許可信号が有意になったときに、前記第１のクロックよりも前記第２のクロックが先に有意になるように動作することを特徴とする時間計測回路。
【請求項１３】
請求項２、５、８のいずれか１項に記載の時間計測回路において、
前記時間算出部は、前記第１のクロックの位相が前記第１の位相値以上３６０°未満の範囲のときに前記セレクタによって選択された計数結果を取り込んだ場合に、この計数結果を１減算してから前記時間間隔を算出することを特徴とする時間計測回路。
【請求項１４】
請求項１乃至１３のいずれか１項に記載の時間計測回路において、
前記発振回路の出力の位相値を示す信号を出力するエンコーダをさらに備え、
前記セレクタは、前記エンコーダから出力された信号に基づいて、前記第１、第２のカウンタの計数結果のうちいずれかを選択することを特徴とする時間計測回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高精度な時間測定を行うことが可能な時間計測回路に関するものである。
【背景技術】
【０００２】
ｐｓｅｃオーダーの高分解能な時間測定を行う場合、論理回路のゲート遅延を用いるＴＤＣ（Time-to-Digital Converter）と呼ばれる手法（非特許文献１参照）が広く知られている。このＴＤＣは、ＤＬＬ（Delay Locked Loop）、またはＰＬＬ（Phase Locked Loop）をベースとした構成とするのが一般的であるが、ＤＬＬやＰＬＬはクロックの発振の安定化に時間を要するので、時間計測開始前にＴＤＣを動作させておく必要があり、低消費電力化の実現が難しいという問題点があった。
【０００３】
例えばガスメータ向け超音波流量計は、超音波の伝搬時間差を低消費電力かつ高精度、高分解能で測定する必要があるため、高速カウンタの動作期間（高速クロックの発振期間）をできる限り短くする必要がある。しかし、上記のとおりＤＬＬ方式のＴＤＣとＰＬＬ方式のＴＤＣは遅延回路の発振安定化に時間を要するため、高速クロックの発振期間が長くなり消費電力面で不利である。
【０００４】
ＴＤＣの動作時間（高速クロックの発振時間）を最小にして、低消費電力動作を目指す場合、例えば特許文献１に開示されたリングオシレータ型の構成が考えられる。
図２５は、従来のリングオシレータ型ＴＤＣの構成を示す回路図である。リングオシレータ型ＴＤＣは、１ビットの２進数“１”（１’ｂ１）をＤ入力とし、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴをクロック入力とし、発振停止信号ＲＯＳＣ＿ＳＴＯＰをリセット入力とし、発振許可信号ＴＤＣ＿ＥＮを出力するＤフリップフロップ回路１０と、発振許可信号ＴＤＣ＿ＥＮが有意の期間中に高速クロックＴＡＰ［２］を生成するリングオシレータ１１と、高速クロックをカウントする高速カウンタ１２とから構成される。
【０００５】
図２６は、図２５のリングオシレータ型ＴＤＣの動作を説明するタイミングチャートである。Ｄフリップフロップ回路１０は、１ビットの２進数“１”（１’ｂ１）をＤ入力とし、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴをクロック入力とし、発振停止信号ＲＯＳＣ＿ＳＴＯＰをリセット入力とし、図２６に示すように発振開始信号ＲＯＳＣ＿ＳＴＡＲＴの立ち上がりで有意（Ｈｉｇｈ）となり、発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりで無意（Ｌｏｗ）となる発振許可信号ＴＤＣ＿ＥＮを出力する。
【０００６】
リングオシレータ１１は、発振許可信号ＴＤＣ＿ＥＮと高速クロックＴＡＰ［２］との否定論理積をとるＮＡＮＤ回路１１０と、ＮＡＮＤ回路１１０の出力ＴＡＰ［０］を入力とするバッファ回路１１１−１と、バッファ回路１１１−１の出力ＴＡＰ［１］を入力とし、その出力ＴＡＰ［２］を高速クロックとして出力するバッファ回路１１１−２とから構成される。リングオシレータ１１は、Ｄフリップフロップ回路１０から出力された発振許可信号ＴＤＣ＿ＥＮが有意の期間中に、図２６に示すように、低速クロック（ＲＯＳＣ＿ＳＴＯＰ）よりも高速なクロックＴＡＰ［２］を生成する。
高速カウンタ１２は、高速クロックＴＡＰ［２］の立ち上がりをカウントして計数結果ＨＳ＿ＣＮＴを出力する。
【０００７】
ただし、図２５に示したリングオシレータ型ＴＤＣでは、発振停止信号ＲＯＳＣ＿ＳＴＯＰのタイミング次第で、図２６の１００で示すように、高速カウンタ１２を構成するフリップフロップが受け付け不可能なＬｏｗ幅のクロックをリングオシレータ１１が出力してしまい、高速カウンタ１２の計数結果ＨＳ＿ＣＮＴの値が不定となり、正しい時間を計測できないという課題があった。以下、本発明では、この意図しないタイミングで発生する微小な幅のパルスをグリッチと呼ぶ。
【０００８】
例えば、リングオシレータ１１の出力である高速クロックＴＡＰ［２］の周波数を６００ＭＨｚとすると、高速カウンタ１２のカウント値がグリッチにより“１”大きくなるということは、時間計測値が期待値よりも１．６７ｎｓｅｃ大きな値となることを示す。特許文献１に開示されたような超音波流量計は、微小流量計測のためにサブナノオーダーの精度での時間計測が求められるため、流量計測値が期待値と比較して±１．６７ｎｓ異なるという仕様では製品スペックを満たすことができない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第４６６１７１４号公報
【非特許文献】
【００１０】
【非特許文献１】Stephan Henzler，“Time-to-Digital Converters”，Springer，2010
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、上記課題を解決するためになされたもので、低消費電力動作と正確な時間計測とを実現することができる時間計測回路を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の時間計測回路（第１の実施例）は、外部からの開始信号の入力のタイミングで有意となり、外部からの停止信号の入力のタイミングで無意となる発振許可信号を出力するように構成されたフリップフロップ回路と、前記発振許可信号が有意の期間中に第１のクロックを生成するように構成された発振回路と、前記第１のクロックと、前記第１のクロックを反転させた第２のクロックとをそれぞれ前記停止信号でマスクするように構成された論理回路と、前記停止信号でマスクされた第１のクロックを数えるように構成された第１のカウンタと、前記停止信号でマスクされた第２のクロックを数えるように構成された第２のカウンタと、前記第１、第２のカウンタの計数結果のうち、受付不可能な時間幅のクロック入力が発生していない方のカウンタによって得られた計数結果を選択するように構成されたセレクタと、前記停止信号の入力後に前記セレクタによって選択された計数結果を基に前記開始信号の入力から前記停止信号の入力までの時間間隔を算出するように構成された時間算出部とを備えることを特徴とするものである。
【００１３】
また、本発明の時間計測回路の１構成例において、前記セレクタは、前記第１のクロックの位相が０°から１８０°よりも小さい所定の第１の位相値未満の範囲では前記第１のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第１の位相値から１８０°以上で３６０°よりも小さい所定の第２の位相値未満の範囲では前記第２のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第２の位相値以上３６０°未満の範囲では前記第１のカウンタの計数結果を選択することを特徴とするものである。
また、本発明の時間計測回路の１構成例において、前記論理回路は、前記発振回路から出力された第１のクロックを入力とするバッファ回路と、前記発振回路から出力された第１のクロックを反転させた前記第２のクロックを生成するように構成されたインバータと、前記バッファ回路から出力された第１のクロックを前記停止信号でＯＲマスクするように構成された第１のＯＲ回路と、前記インバータから出力された第２のクロックを前記停止信号でＯＲマスクするように構成された第２のＯＲ回路とから構成されることを特徴とするものである。
【００１４】
また、本発明の時間計測回路（第２の実施例）は、外部からの開始信号の入力のタイミングで有意となり、外部からの停止信号の入力のタイミングで無意となる発振許可信号を出力するように構成されたフリップフロップ回路と、前記発振許可信号が有意の期間中に第１のクロックを生成するように構成された発振回路と、前記第１のクロックを前記停止信号でマスクした第２のクロックを生成するように構成された論理回路と、前記第１のクロックを数えるように構成された第１のカウンタと、前記第２のクロックを数えるように構成された第２のカウンタと、前記第１、第２のカウンタの計数結果のうち、受付不可能な時間幅のクロック入力が発生していない方のカウンタによって得られた計数結果を選択するように構成されたセレクタと、前記停止信号の入力後に前記セレクタによって選択された計数結果を基に前記開始信号の入力から前記停止信号の入力までの時間間隔を算出するように構成された時間算出部とを備えることを特徴とするものである。
【００１５】
また、本発明の時間計測回路の１構成例において、前記セレクタは、前記第１のクロックの位相が０°から１８０°よりも小さい所定の第１の位相値未満の範囲では前記第２のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第１の位相値から１８０°以上で３６０°よりも小さい所定の第２の位相値未満の範囲では前記第１のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第２の位相値以上３６０°未満の範囲では前記第２のカウンタの計数結果を選択することを特徴とするものである。
また、本発明の時間計測回路の１構成例において、前記論理回路は、前記発振回路から出力された第１のクロックを前記停止信号でＯＲマスクした前記第２のクロックを生成するように構成されたＯＲ回路から構成されることを特徴とするものである。
【００１６】
また、本発明の時間計測回路（第３の実施例）は、時間計測回路のテストを行うように構成されたテスト実行部と、通常時に外部から入力された第１の開始信号、第１の停止信号を選択して出力し、テスト実行時に前記テスト実行部から出力された第２の開始信号、第２の停止信号を選択して出力すると共に、テスト終了時に第３の停止信号を出力するように構成された動作設定回路と、前記第１の開始信号または前記第２の開始信号の入力のタイミングで有意となり、前記第１の停止信号または前記第３の停止信号の入力のタイミングで無意となる発振許可信号を出力するように構成されたフリップフロップ回路と、前記発振許可信号が有意の期間中に第１のクロックを生成するように構成された発振回路と、前記第１のクロックと、前記第１のクロックを反転させた第２のクロックとをそれぞれ前記第１の停止信号または前記第２の停止信号でマスクするように構成された論理回路と、前記第１の停止信号または前記第２の停止信号でマスクされた第１のクロックを数えるように構成された第１のカウンタと、前記第１の停止信号または前記第２の停止信号でマスクされた第２のクロックを数えるように構成された第２のカウンタと、前記第１、第２のカウンタの計数結果のうち、受付不可能な時間幅のクロック入力が発生していない方のカウンタによって得られた計数結果を選択するように構成されたセレクタと、通常時に前記第１の停止信号の入力後に前記セレクタによって選択された計数結果を基に前記第１の開始信号の入力から前記第１の停止信号の入力までの時間間隔を算出するように構成された時間算出部とを備え、前記テスト実行部は、テスト実行時に前記第１、第２のカウンタの計数結果を比較することにより、前記発振回路のテストを行うことを特徴とするものである。
【００１７】
また、本発明の時間計測回路の１構成例において、前記セレクタは、前記第１のクロックの位相が０°から１８０°よりも小さい所定の第１の位相値未満の範囲では前記第１のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第１の位相値から１８０°以上で３６０°よりも小さい所定の第２の位相値未満の範囲では前記第２のカウンタの計数結果を選択し、前記第１のクロックの位相が前記第２の位相値以上３６０°未満の範囲では前記第１のカウンタの計数結果を選択することを特徴とするものである。
また、本発明の時間計測回路の１構成例において、前記テスト実行部は、前記第１のクロックの位相が前記第１の位相値の直前の値のとき、前記第１の位相値のとき、または前記第１の位相値の直後の値のときの前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とを取得して比較し、さらに前記第１のクロックの位相が前記第２の位相値の直前の値のとき、前記第２の位相値のとき、または前記第２の位相値の直後の値のときの前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とを取得して比較することを特徴とするものである。
また、本発明の時間計測回路の１構成例において、前記テスト実行部は、取得した前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とが一致している場合に、前記発振回路が正常と判定し、前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とが不一致の場合に、前記発振回路が故障していると判定することを特徴とするものである。
【００１８】
また、本発明の時間計測回路の１構成例において、前記テスト実行部は、前記第１のクロックの位相が前記第１の位相値の直前の値のとき、前記第１の位相値のとき、または前記第１の位相値の直後の値のときの前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とを取得した場合に、取得した第２のカウンタの計数結果を１減算した上で、前記第１のカウンタの計数結果と前記第２のカウンタの計数結果とを比較することを特徴とするものである。
また、本発明の時間計測回路の１構成例において、前記論理回路は、前記発振回路から出力された第１のクロックを入力とするバッファ回路と、前記発振回路から出力された第１のクロックを反転させた前記第２のクロックを生成するように構成されたインバータと、テスト実行時に、前記第１のクロックを前記第２のクロックよりも遅れてマスクし前記第２のクロックよりも遅れてマスク解除するための第４の停止信号と、前記第２のクロックを前記第１のクロックよりも先にマスクし前記第１のクロックよりも先にマスク解除するための第５の停止信号とを、前記第２の停止信号から生成するように構成されたマスク解除タイミング制御回路と、前記バッファ回路から出力された第１のクロックを前記第１の停止信号または前記第４の停止信号でＯＲマスクするように構成された第１のＯＲ回路と、前記インバータから出力された第２のクロックを前記第１の停止信号または前記第５の停止信号でＯＲマスクするように構成された第２のＯＲ回路とを備え、前記発振回路と前記バッファ回路と前記インバータとは、前記発振許可信号が有意になったときに、前記第１のクロックよりも前記第２のクロックが先に有意になるように動作することを特徴とするものである。
【００１９】
また、本発明の時間計測回路の１構成例において、前記時間算出部は、前記第１のクロックの位相が前記第１の位相値以上３６０°未満の範囲のときに前記セレクタによって選択された計数結果を取り込んだ場合に、この計数結果を１減算してから前記時間間隔を算出することを特徴とするものである。
また、本発明の時間計測回路の１構成例において、前記発振回路の出力の位相値を示す信号を出力するエンコーダをさらに備え、前記セレクタは、前記エンコーダから出力された信号に基づいて、前記第１、第２のカウンタの計数結果のうちいずれかを選択することを特徴とするものである。
【発明の効果】
【００２０】
本発明によれば、発振回路によって生成された第１のクロックと、第１のクロックを反転させた第２のクロックとをそれぞれ停止信号でマスクする論理回路と、停止信号でマスクされた第１のクロックを数える第１のカウンタと、停止信号でマスクされた第２のクロックを数える第２のカウンタと、第１、第２のカウンタの計数結果のうち、受付不可能な時間幅のクロック入力が発生していない方のカウンタによって得られた計数結果を選択するセレクタとを設けることにより、低消費電力動作と、停止信号の入力タイミングによらない正確な時間計測とを実現することができる。
【００２１】
また、本発明では、発振回路によって生成された第１のクロックを停止信号でマスクした第２のクロックを生成する論理回路と、第１のクロックを数える第１のカウンタと、第２のクロックを数える第２のカウンタと、第１、第２のカウンタの計数結果のうち、受付不可能な時間幅のクロック入力が発生していない方のカウンタによって得られた計数結果を選択するセレクタとを設けることにより、低消費電力動作と、停止信号の入力タイミングによらない正確な時間計測とを実現することができる。
【００２２】
また、本発明では、発振回路によって生成された第１のクロックと、第１のクロックを反転させた第２のクロックとをそれぞれ第１の停止信号または第２の停止信号でマスクする論理回路と、第１の停止信号または第２の停止信号でマスクされた第１のクロックを数える第１のカウンタと、第１の停止信号または第２の停止信号でマスクされた第２のクロックを数える第２のカウンタと、第１、第２のカウンタの計数結果のうち、受付不可能な時間幅のクロック入力が発生していない方のカウンタによって得られた計数結果を選択するセレクタとを設けることにより、低消費電力動作と、停止信号の入力タイミングによらない正確な時間計測とを実現することができる。また、本発明では、動作設定回路とテスト実行部とを設けることにより、発振回路のテストを行うことができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明の第１の実施例に係る時間計測回路の構成を示す回路図である。
【図２】図２は、本発明の第１の実施例に係る時間計測回路の動作を説明するタイミングチャートである。
【図３】図３は、本発明の第１の実施例に係る時間計測回路のエッジ検出回路の構成を示す回路図である。
【図４】図４は、本発明の第１の実施例における高速クロックとタイミング信号との関係を示す図である。
【図５】図５は、本発明の第１の実施例における高速クロックの計数結果の補正方法を説明するタイミングチャートである。
【図６】図６は、本発明の第１の実施例における高速クロックの計数結果の補正方法を説明するタイミングチャートである。
【図７】図７は、本発明の第１の実施例における高速クロックの計数結果の補正方法を説明するタイミングチャートである。
【図８】図８は、本発明の第１の実施例における高速クロックの計数結果の補正方法を説明するタイミングチャートである。
【図９】図９は、本発明の第１の実施例における高速クロックの計数結果の補正の要否を説明する図である。
【図１０】図１０は、本発明の第２の実施例に係る時間計測回路の構成を示す回路図である。
【図１１】図１１は、本発明の第２の実施例における高速クロックとタイミング信号との関係を示す図である。
【図１２】図１２は、本発明の第２の実施例における高速クロックの計数結果の補正方法を説明するタイミングチャートである。
【図１３】図１３は、本発明の第２の実施例における高速クロックの計数結果の補正方法を説明するタイミングチャートである。
【図１４】図１４は、本発明の第２の実施例における高速クロックの計数結果の補正方法を説明するタイミングチャートである。
【図１５】図１５は、本発明の第２の実施例における高速クロックの計数結果の補正方法を説明するタイミングチャートである。
【図１６】図１６は、本発明の第２の実施例における高速クロックの計数結果の補正の要否を説明する図である。
【図１７】図１７は、本発明の第３の実施例に係る時間計測回路の構成を示す回路図である。
【図１８】図１８は、本発明の第３の実施例に係る時間計測回路の動作設定回路の構成を示す回路図である。
【図１９】図１９は、本発明の第３の実施例に係る時間計測回路のマスク解除タイミング制御回路の構成を示す回路図である。
【図２０】図２０は、本発明の第３の実施例に係る時間計測回路の時間算出部の構成を示すブロック図である。
【図２１】図２１は、本発明の第３の実施例に係る時間計測回路のテスト時の動作を説明するタイミングチャートである
【図２２】図２２は、本発明の第３の実施例に係る時間計測回路のテスト時のマスク解除タイミング制御回路の動作を説明するタイミングチャートである。
【図２３】図２３は、本発明の第３の実施例に係る時間計測回路のテスト時のマスク解除タイミング制御回路の動作を説明するタイミングチャートである。
【図２４】図２４は、本発明の第１〜第３の実施例に係る時間計測回路の時間算出部を実現するコンピュータの構成例を示すブロック図である。
【図２５】図２５は、従来のリングオシレータ型ＴＤＣの構成例を示す回路図である。
【図２６】図２６は、従来のリングオシレータ型ＴＤＣの動作を説明するタイミングチャートである。
【発明を実施するための形態】
【００２４】
［第１の実施例］
以下、本発明の実施例について図面を参照して説明する。図１は本発明の第１の実施例に係る時間計測回路の構成を示す回路図である。時間計測回路は、１ビットの２進数“１”（１’ｂ１）をＤ入力とし、外部からの発振開始信号ＲＯＳＣ＿ＳＴＡＲＴをクロック入力とし、外部からの発振停止信号ＲＯＳＣ＿ＳＴＯＰをリセット入力とし、発振許可信号ＴＤＣ＿ＥＮを出力するＤフリップフロップ回路１０と、発振許可信号ＴＤＣ＿ＥＮが有意の期間中に高速クロックＴＡＰ［１５］（第１のクロック）を生成するリングオシレータ１１ａ（発振回路）と、高速クロックＴＡＰ［１５］を入力として高速クロックＲＣＬＫ１（第１のクロック）を出力するバッファ回路１３と、高速クロックＴＡＰ［１５］を反転させた高速クロックＲＣＬＫ２（第２のクロック）を出力するインバータ１４と、バッファ回路１３の出力ＲＣＬＫ１と発振停止信号ＲＯＳＣ＿ＳＴＯＰの論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ１として出力するＯＲ回路１５と、インバータ１４の出力ＲＣＬＫ２と発振停止信号ＲＯＳＣ＿ＳＴＯＰの論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ２として出力するＯＲ回路１６とを備えている。
【００２５】
また、時間計測回路は、高速クロックＲＯＳＣ＿ＣＬＫ１をカウントする高速カウンタ１２ａ（第１のカウンタ）と、高速クロックＲＯＳＣ＿ＣＬＫ２をカウントする高速カウンタ１２ｂ（第２のカウンタ）と、発振停止信号ＲＯＳＣ＿ＳＴＯＰと低速クロックＭＣＬＫを基に発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりエッジを検出するエッジ検出回路１７と、高速カウンタ１２ａの８ビットの計数結果ＨＳ＿ＣＮＴ１［８：０］をラッチするＤフリップフロップ回路１８ａと、高速カウンタ１２ｂの８ビットの計数結果ＨＳ＿ＣＮＴ２［８：０］をラッチするＤＤフリップフロップ回路１８ｂと、リングオシレータ１１ａの出力の位相値を示す５ビットのタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］を出力するエンコーダ１９と、Ｄフリップフロップ回路１８ａ，１８ｂの８ビットの出力ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］のいずれかを選択するセレクタ２０と、セレクタ２０によって選択された計数結果に基づいて、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴの立ち上がりから発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりまでの時間間隔を算出する時間算出部２１とを備えている。
【００２６】
バッファ回路１３とインバータ１４とＯＲ回路１５，１６とは、論理回路２２を構成している。
リングオシレータ１１ａは、発振許可信号ＴＤＣ＿ＥＮと高速クロックＴＡＰ［１５］との否定論理積をとるＮＡＮＤ回路１１０と、ＮＡＮＤ回路１１０の出力に縦続接続された１５個のバッファ回路１１１−１〜１１１−１５と、ＮＡＮＤ回路１１０と各バッファ回路１１１−１〜１１１−１５の出力をそれぞれＤ入力とし、発振停止信号ＲＯＳＣ＿ＳＴＯＰをクロック入力とする１６個のＤフリップフロップ回路１１２−１〜１１２−１６とから構成される。
【００２７】
以下、本実施例の時間計測回路の動作を説明する。図２は時間計測回路の動作を説明するタイミングチャートである。
Ｄフリップフロップ回路１０は、１ビットの２進数“１”（１’ｂ１）をＤ入力とし、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴをクロック入力とし、発振停止信号ＲＯＳＣ＿ＳＴＯＰをリセット入力とし、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴの立ち上がりで有意（Ｈｉｇｈ）となり、発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりで無意（Ｌｏｗ）となる発振許可信号ＴＤＣ＿ＥＮを出力する。
【００２８】
リングオシレータ１１ａは、Ｄフリップフロップ回路１０から出力された発振許可信号ＴＤＣ＿ＥＮが有意の期間中に、低速クロックＭＣＬＫよりも高速なクロックＴＡＰ［１５］を生成する。
【００２９】
バッファ回路１３は、リングオシレータ１１ａから出力された高速クロックＴＡＰ［１５］を入力とし、高速クロックＲＣＬＫ１を出力する。インバータ１４は、リングオシレータ１１ａから出力された高速クロックＴＡＰ［１５］を論理反転した高速クロックＲＣＬＫ２を出力する。なお、バッファ回路１３は、高速クロックＲＣＬＫ１とＲＣＬＫ２の位相を揃えるために挿入されている。
【００３０】
ＯＲ回路１５は、バッファ回路１３から出力された高速クロックＲＣＬＫ１と発振停止信号ＲＯＳＣ＿ＳＴＯＰの論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ１として出力する。ＯＲ回路１６は、インバータ１４から出力された高速クロックＲＣＬＫ２と発振停止信号ＲＯＳＣ＿ＳＴＯＰの論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ２として出力する。
【００３１】
エッジ検出回路１７は、発振停止信号ＲＯＳＣ＿ＳＴＯＰと低速クロックＭＣＬＫとに基づいて、高速カウンタ１２ａの８ビットの計数結果ＨＳ＿ＣＮＴ１［８：０］および高速カウンタ１２ｂの８ビットの計数結果ＨＳ＿ＣＮＴ２［８：０］をラッチするタイミングを示す取り込み許可信号ＨＳ＿ＣＮＴ＿ＬＡＴと、高速カウンタ１２ａ，１２ｂをリセットするための高速カウンタリセット信号ＨＳ＿ＣＮＴ＿ＣＬＲと、Ｄフリップフロップ回路１８ａ，１８ｂに有効なデータが格納されていることを示す取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮとを生成する。
【００３２】
図３はエッジ検出回路１７の構成を示す回路図である。エッジ検出回路１７は、発振停止信号ＲＯＳＣ＿ＳＴＯＰをクロック入力とするＤフリップフロップ回路１７０と、Ｄフリップフロップ回路１７０の出力信号ＳＴＯＰ＿ＤＥＴを反転させた信号をＤフリップフロップ回路１７０のＤ入力とするインバータ１７１と、Ｄフリップフロップ回路１７０の出力信号ＳＴＯＰ＿ＤＥＴをＤ入力とし、低速クロックＭＣＬＫをクロック入力とするＤフリップフロップ回路１７２と、Ｄフリップフロップ回路１７２の出力信号をＤ入力とし、低速クロックＭＣＬＫをクロック入力とするＤフリップフロップ回路１７３と、Ｄフリップフロップ回路１７３の出力信号をＤ入力とし、低速クロックＭＣＬＫをクロック入力とするＤフリップフロップ回路１７４と、Ｄフリップフロップ回路１７３の出力信号とＤフリップフロップ回路１７４の出力信号の排他的論理和の結果を取り込み許可信号ＨＳ＿ＣＮＴ＿ＬＡＴとして出力するＸＯＲ回路１７５と、取り込み許可信号ＨＳ＿ＣＮＴ＿ＬＡＴをＤ入力とし、低速クロックＭＣＬＫをクロック入力として、取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮを出力するＤフリップフロップ回路１７６と、取り込み許可信号ＨＳ＿ＣＮＴ＿ＬＡＴをＤ入力とし、低速クロックＭＣＬＫを反転させた結果をクロック入力として、高速カウンタリセット信号ＨＳ＿ＣＮＴ＿ＣＬＲを出力するＤフリップフロップ回路１７８とから構成される。
【００３３】
高速カウンタ１２ａは、高速カウンタリセット信号ＨＳ＿ＣＮＴ＿ＣＬＲが無意（Ｈｉｇｈ）の期間中に、高速クロックＲＯＳＣ＿ＣＬＫ１の立ち上がりをカウントして、８ビットの計数結果ＨＳ＿ＣＮＴ１［８：０］を出力する。高速カウンタ１２ｂは、高速カウンタリセット信号ＨＳ＿ＣＮＴ＿ＣＬＲが無意（Ｈｉｇｈ）の期間中に、高速クロックＲＯＳＣ＿ＣＬＫ２の立ち上がりをカウントして、８ビットの計数結果ＨＳ＿ＣＮＴ２［８：０］を出力する。これら高速カウンタ１２ａ，１２ｂの計数結果ＨＳ＿ＣＮＴ１［８：０］，ＨＳ＿ＣＮＴ２［８：０］は、高速カウンタリセット信号ＨＳ＿ＣＮＴ＿ＣＬＲの立ち下がりで０に初期化される。
【００３４】
Ｄフリップフロップ回路１８ａは、取り込み許可信号ＨＳ＿ＣＮＴ＿ＬＡＴの立ち上がりで高速カウンタ１２ａの８ビットの計数結果ＨＳ＿ＣＮＴ１［８：０］をラッチして、次に取り込み許可信号ＨＳ＿ＣＮＴ＿ＬＡＴが立ち上がるまで保持する。Ｄフリップフロップ回路１８ｂは、取り込み許可信号ＨＳ＿ＣＮＴ＿ＬＡＴの立ち上がりで高速カウンタ１２ｂの８ビットの計数結果ＨＳ＿ＣＮＴ２［８：０］をラッチして、次に取り込み許可信号ＨＳ＿ＣＮＴ＿ＬＡＴが立ち上がるまで保持する。
【００３５】
エンコーダ１９は、Ｄフリップフロップ回路１１２−１〜１１２−１６から出力される１６ビットの信号ＲＯＳＣ＿ＰＨＡＳＥ［１５：０］を基に、リングオシレータ１１ａの出力の位相値を示す５ビットのタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］を出力する。タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］は、１６ビットの信号ＲＯＳＣ＿ＰＨＡＳＥ［１５：０］を５ビットにエンコードした信号である。
【００３６】
セレクタ２０は、エンコーダ１９から出力された５ビットのタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］に基づいて、Ｄフリップフロップ回路１８ａ，１８ｂによってラッチされた８ビットの計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］のうち、グリッチ（計数エラー）が発生していない方の高速カウンタによって得られた計数結果を真値として選択する。
【００３７】
時間算出部２１は、取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮが有意（Ｈｉｇｈ）になった時点でセレクタ２０から出力された計数結果を取り込む。時間算出部２１は、取り込んだ計数結果に基づいて、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴの立ち上がりから発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりまでの時間間隔を算出する。
【００３８】
リングオシレータ型ＴＤＣは計測開始を示す発振開始信号ＲＯＳＣ＿ＳＴＡＲＴを受け付けるとリングオシレータ１１ａが発振し始めるので、計測停止を示す発振停止信号ＲＯＳＣ＿ＳＴＯＰを受け取るまでの期間、リングオシレータ１１ａの出力であるＴＡＰ［１５］の立ち上がりを高速カウンタを用いて数えればいいのであるが、前述のとおり発振停止信号ＲＯＳＣ＿ＳＴＯＰのタイミング次第ではリングオシレータ１１ａの出力にグリッチが発生し、高速カウンタが誤作動してしまう可能性がある。
【００３９】
そこで、本実施例では、リングオシレータ１１ａの出力ＴＡＰ［１５］とその反転信号とをそれぞれ別の高速カウンタ１２ａ，１２ｂでカウントし、得られた計数結果からグリッチが発生していない方の計数結果を選択するようにすることで、低消費電力動作と正確な時間計測とを実現した。
【００４０】
より具体的には、リングオシレータ１１ａから出力された高速クロックＴＡＰ［１５］をバッファ回路１３に通した高速クロックＲＣＬＫ１と、高速クロックＴＡＰ［１５］をインバータ１４によって論理反転した高速クロックＲＣＬＫ２とを、それぞれＯＲ回路１５，１６において発振停止信号ＲＯＳＣ＿ＳＴＯＰでＯＲマスクし、そのＯＲマスクした高速クロックＲＯＳＣ＿ＣＬＫ１，ＲＯＳＣ＿ＣＬＫ２をそれぞれ別の高速カウンタ１２ａ，１２ｂでカウントする。
【００４１】
発振開始信号ＲＯＳＣ＿ＳＴＡＲＴを受け付けるタイミング次第では、前述のグリッチが発生する可能性があるが、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴの立ち上がりエッジと高速クロックＲＣＬＫ１，ＲＣＬＫ２の位相関係については、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］から判定できるため、グリッチが発生していない方の高速カウンタによって得られた計数結果を真値として選択すればよい。
【００４２】
高速クロックＲＣＬＫ１，ＲＣＬＫ２とタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］との関係を図４に示す。図４では、高速カウンタ１２ａ，１２ｂが受け付け不可能な最低Ｌｏｗ幅（Ｍｉｎ  Ｅｒｒｏｒ）と、このＭｉｎ  Ｅｒｒｏｒに基づいて決定されたＬＡＴＣＨ１［８：０］とＬＡＴＣＨ２［８：０］の選択の境界を示している。なお、図４のΔｔはリングオシレータ１１ａの遅延回路（ＮＡＮＤ回路１１０とバッファ回路１１１−１〜１１１−１５）の１段あたりの遅延時間を示している。
【００４３】
本実施例では、セレクタ２０は、Ｄフリップフロップ回路１８ａ，１８ｂによってラッチされた８ビットの計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］のうち、グリッチ（計数エラー）が発生していない方の高速カウンタによって得られた計数結果を真値として選択する。このような選択は、５ビットのタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値に基づいて行うことができる。
【００４４】
図４の例では、セレクタ２０は、高速クロックＲＣＬＫ１の位相が０°（タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が０）から１８０°よりも小さい所定の第１の位相値（本実施例では１０１．２５°、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が９）未満の範囲では計数結果ＬＡＴＣＨ１［８：０］を選択する。
【００４５】
また、セレクタ２０は、高速クロックＲＣＬＫ１の位相が第１の位相値から１８０°以上で３６０°よりも小さい所定の第２の位相値（本実施例では２８１．２５°、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が２５）未満の範囲では計数結果ＬＡＴＣＨ２［８：０］を選択し、高速クロックＲＣＬＫ１の位相が第２の位相値以上３６０°未満の範囲では計数結果ＬＡＴＣＨ１［８：０］を選択する。
【００４６】
つまり、セレクタ２０は、８ビットの計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］のうちいずれかを選択するに際して、高速クロックＲＣＬＫ１，ＲＣＬＫ２のうち、立ち下がりからの経過時間が最低Ｌｏｗ幅（Ｍｉｎ  Ｅｒｒｏｒ）に所定の余裕幅を足した時間を上回っている方の高速クロックをカウントした高速カウンタの計数結果を真値として選択する。
【００４７】
例えば高速クロックＲＣＬＫ２の立ち下がりからの経過時間が最低Ｌｏｗ幅（Ｍｉｎ  Ｅｒｒｏｒ）に対して十分な余裕がなく、高速クロックＲＣＬＫ１の立ち下がりからの経過時間が最低Ｌｏｗ幅に対して十分な余裕がある期間では、セレクタ２０は、計数結果ＬＡＴＣＨ１［８：０］を選択し、高速クロックＲＣＬＫ１の立ち下がりからの経過時間が最低Ｌｏｗ幅に対して十分な余裕がなく、高速クロックＲＣＬＫ２の立ち下がりからの経過時間が最低Ｌｏｗ幅に対して十分な余裕がある期間では、計数結果ＬＡＴＣＨ２［８：０］を選択する。
【００４８】
なお、実際の設計時はＩＣ（Integrated Circuit）製造会社のデータシートや回路レイアウト情報を元にＬｏｗ幅違反となるＨＳ＿ＰＨＡＳＥの範囲とＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］の選択の境界とを決定することになる。図４の例では、高速カウンタ１２ａ，１２ｂを構成するフリップフロップのクロックの最低Ｌｏｗ幅保持期間（Ｍｉｎ  Ｅｒｒｏｒ）を２５０ｐｓ、ＴＤＣの分解能を５０ｐｓとした前提で境界を決定している。
【００４９】
リングオシレータ１１ａに対して非同期で発振停止信号ＲＯＳＣ＿ＳＴＯＰが入力されることにより発生するグリッチに対しては、高速クロックＲＣＬＫ１，ＲＣＬＫ２を発振停止信号ＲＯＳＣ＿ＳＴＯＰでＯＲマスクした高速クロックＲＯＳＣ＿ＣＬＫ１，ＲＯＳＣ＿ＣＬＫ２を高速カウンタ１２ａ，１２ｂのクロックとして使用することで回避することができる。
【００５０】
ただし、時間算出部２１は、高速クロックＲＯＳＣ＿ＣＬＫ１，ＲＯＳＣ＿ＣＬＫ２と発振停止信号ＲＯＳＣ＿ＳＴＯＰの位相関係によっては、計数結果ＬＡＴＣＨ１［８：０］またはＬＡＴＣＨ２［８：０］の値を１減算してから、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴの立ち上がりから発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりまでの時間間隔を算出する必要がある。
【００５１】
例えば図５の例では、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が０（高速クロックＲＣＬＫ１の位相が０°）のタイミングで発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりを受け取った場合を示している。図５の１０１では、高速クロックＲＯＳＣ＿ＣＬＫ２にグリッチが発生している。セレクタ２０は、上記の動作により計数結果ＬＡＴＣＨ１［８：０］（ＨＳ＿ＣＮＴ１［８：０］）を選択する。時間算出部２１は、取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮが有意（Ｈｉｇｈ）になった時点でタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が０の場合は、取り込んだ計数結果ＬＡＴＣＨ１［８：０］を１減算する必要はない。
【００５２】
図６の例は、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が９（高速クロックＲＣＬＫ１の位相が１０１．２５°）のタイミングで発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりを受け取った場合を示している。セレクタ２０は、上記の動作により計数結果ＬＡＴＣＨ２［８：０］（ＨＳ＿ＣＮＴ２［８：０］）を選択する。時間算出部２１は、取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮが有意（Ｈｉｇｈ）になった時点でタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が９の場合は、取り込んだ計数結果ＬＡＴＣＨ２［８：０］を１減算してから時間間隔を算出する。
【００５３】
図７の例は、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が１６（高速クロックＲＣＬＫ１の位相が１８０°）のタイミングで発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりを受け取った場合を示している。図７の１０２では、高速クロックＲＯＳＣ＿ＣＬＫ１にグリッチが発生している。セレクタ２０は、上記の動作により計数結果ＬＡＴＣＨ２［８：０］（ＨＳ＿ＣＮＴ２［８：０］）を選択する。時間算出部２１は、取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮが有意（Ｈｉｇｈ）になった時点でタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が１６の場合は、取り込んだ計数結果ＬＡＴＣＨ２［８：０］を１減算してから時間間隔を算出する。
【００５４】
図８の例は、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が２５（高速クロックＲＣＬＫ１の位相が２８１．２５°）のタイミングで発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりを受け取った場合を示している。セレクタ２０は、上記の動作により計数結果ＬＡＴＣＨ１［８：０］（ＨＳ＿ＣＮＴ１［８：０］）を選択する。時間算出部２１は、取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮが有意（Ｈｉｇｈ）になった時点でタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が２５の場合は、取り込んだ計数結果ＬＡＴＣＨ１［８：０］を１減算してから時間間隔を算出する。
【００５５】
以上の計数結果の補正の要否を図４に記述すると、図９のようになる。時間算出部２１は、高速クロックＲＣＬＫ１の位相が第１の位相値以上３６０°未満の範囲のときにセレクタ２０によって選択された計数結果を取り込んだ場合に、この計数結果を１減算してから時間間隔を算出すればよい。
【００５６】
なお、本実施例では、リングオシレータ１１ａの遅延回路（ＮＡＮＤ回路１１０とバッファ回路１１１−１〜１１１−１５）の段数を１６段（ＴＡＰ［０］〜ＴＡＰ［１５］）としているが、この段数は１６以外でも本発明にとっては問題とならない。ただし、２のべき乗数の段数としておくと、高速カウンタ１２ａ，１２ｂのカウント値（ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］）とリングオシレータ１１ａの位相値（ＨＳ＿ＰＨＡＳＥ［４：０］）の結合を単純化できる。
【００５７】
例えば、ＬＡＴＣＨ１［８：０］を選択した場合の時間計測値は、｛ＬＡＴＣＨ１［８：０］，ＨＳ＿ＰＨＡＳＥ［４：０］｝というようにＨＳ＿ＰＨＡＳＥを下位ビット側、ＬＡＴＣＨ１を上位ビット側に連接することで得られる。リングオシレータ１１ａの段数が２のべき乗数でない場合のカウント値と位相値の結合の単純化案については例えば、特許第２８６８２６６号で述べられている。
【００５８】
［第２の実施例］
次に、本発明の第２の実施例について説明する。第１の実施例では、リングオシレータ１１ａから出力された高速クロックＴＡＰ［１５］をバッファ回路１３に通した信号ＲＣＬＫ１と、高速クロックＴＡＰ［１５］をインバータ１４によって論理反転した信号ＲＣＬＫ２の両方に対して発振停止信号ＲＯＳＣ＿ＳＴＯＰによるマスクを行っていたが、リングオシレータ１１ａの出力の反転信号を用意せずに、リングオシレータ１１ａから出力される高速クロックＴＡＰ［１５］に対してマスクを行わない信号とマスクを行う信号を用意し、それぞれの信号を別の高速カウンタでカウントした後に、グリッチが発生していない方の高速カウンタによって得られた計数結果を選択してもよい。
【００５９】
図１０は本実施例に係る時間計測回路の構成を示す回路図であり、図１と同一の構成には同一の符号を付してある。本実施例の時間計測回路は、Ｄフリップフロップ回路１０と、リングオシレータ１１ａ（発振回路）と、高速カウンタ１２ａ，１２ｂ（第１、第２のカウンタ）と、エッジ検出回路１７と、Ｄフリップフロップ回路１８ａ，１８ｂと、エンコーダ１９と、セレクタ２０ａと、時間算出部２１と、リングオシレータ１１ａから出力された高速クロックＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）と発振停止信号ＲＯＳＣ＿ＳＴＯＰの論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ２として出力するＯＲ回路２３（論理回路）とから構成される。
【００６０】
Ｄフリップフロップ回路１０とリングオシレータ１１ａの構成および動作は、第１の実施例で説明したとおりである。
本実施例の高速カウンタ１２ａは、高速カウンタリセット信号ＨＳ＿ＣＮＴ＿ＣＬＲが無意（Ｈｉｇｈ）の期間中に、リングオシレータ１１ａから出力された高速クロックＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）の立ち上がりをカウントして、８ビットの計数結果ＨＳ＿ＣＮＴ１［８：０］を出力する。
【００６１】
一方、ＯＲ回路２３は、高速クロックＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）と発振停止信号ＲＯＳＣ＿ＳＴＯＰの論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ２として出力する。高速カウンタ１２ｂは、高速カウンタリセット信号ＨＳ＿ＣＮＴ＿ＣＬＲが無意（Ｈｉｇｈ）の期間中に、高速クロックＲＯＳＣ＿ＣＬＫ２の立ち上がりをカウントして、８ビットの計数結果ＨＳ＿ＣＮＴ２［８：０］を出力する。
【００６２】
エッジ検出回路１７とＤフリップフロップ回路１８ａ，１８ｂとエンコーダ１９の動作は、第１の実施例で説明したとおりである。
本実施例においても、セレクタ２０ａは、Ｄフリップフロップ回路１８ａ，１８ｂによってラッチされた８ビットの計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］のうち、グリッチ（計数エラー）が発生していない方の高速カウンタによって得られた計数結果を真値として選択するが、バッファ回路１３およびインバータ１４を使用しないため、選択の切り替えの境界となる高速クロックＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）の位相（タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値）が第１の実施例と異なる。
【００６３】
ＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）とタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］との関係を図１１に示す。図１１の例では、セレクタ２０ａは、高速カウンタ１２ａに入力される高速クロックＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）の位相が０°（タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が０）から１８０°よりも小さい所定の第１の位相値（本実施例では１２３．７５°、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が１１）未満の範囲では計数結果ＬＡＴＣＨ２［８：０］を選択する。
【００６４】
また、セレクタ２０ａは、高速クロックＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）の位相が第１の位相値から１８０°以上で３６０°よりも小さい所定の第２の位相値（本実施例では３０３．７５°、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が２７）未満の範囲では計数結果ＬＡＴＣＨ１［８：０］を選択し、高速クロックＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）の位相が第２の位相値以上３６０°未満の範囲では計数結果ＬＡＴＣＨ２［８：０］を選択する。
【００６５】
図１１の例では、図４と同様に、高速カウンタ１２ａ，１２ｂを構成するフリップフロップのクロックの最低Ｌｏｗ幅保持期間（Ｍｉｎ  Ｅｒｒｏｒ）を２５０ｐｓ、ＴＤＣの分解能を５０ｐｓとした前提で境界を決定している。
【００６６】
第１の実施例と同様に、時間算出部２１は、取り込み許可信号ＨＳ＿ＣＮＴ＿ＬＡＴの立ち上がりでセレクタ２０ａから出力された計数結果を取り込み、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴの立ち上がりから発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりまでの時間間隔を算出する。
こうして、本実施例では、第１の実施例と同様の効果を得ることができる。
【００６７】
なお、本実施例においても、時間算出部２１は、高速クロックＲＯＳＣ＿ＣＬＫ２と発振停止信号ＲＯＳＣ＿ＳＴＯＰの位相関係によっては、計数結果ＬＡＴＣＨ１［８：０］またはＬＡＴＣＨ２［８：０］の値を１減算してから、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴの立ち上がりから発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりまでの時間間隔を算出する必要がある。
【００６８】
ただし、上記で説明したとおり、本実施例では、セレクタ２０ａの選択の切り替えの境界となる高速クロックＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）の位相（タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値）が第１の実施例と異なるので、計数結果を補正するかどうかの判定も第１の実施例と異なる。
【００６９】
例えば図１２の例では、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が０（ＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）の位相が０°）のタイミングで発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりを受け取った場合を示している。図１２の１０３では、高速クロックＲＯＳＣ＿ＣＬＫ１にグリッチが発生している。セレクタ２０は、上記の動作により計数結果ＬＡＴＣＨ２［８：０］（ＨＳ＿ＣＮＴ２［８：０］）を選択する。時間算出部２１は、取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮが有意（Ｈｉｇｈ）になった時点でタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が０の場合は、取り込んだ計数結果ＬＡＴＣＨ２［８：０］を１減算する必要はない。
【００７０】
図１３の例は、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が１１（高速クロックＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）の位相が１２３．７５°）のタイミングで発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりを受け取った場合を示している。セレクタ２０は、上記の動作により計数結果ＬＡＴＣＨ１［８：０］（ＨＳ＿ＣＮＴ１［８：０］）を選択する。時間算出部２１は、取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮが有意（Ｈｉｇｈ）になった時点でタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が１１の場合は、取り込んだ計数結果ＬＡＴＣＨ１［８：０］を１減算してから時間間隔を算出する。
【００７１】
図１４の例は、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が１６（高速クロックＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）の位相が１８０°）のタイミングで発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりを受け取った場合を示している。図１４の１０４では、高速クロックＲＯＳＣ＿ＣＬＫ２にグリッチが発生している。セレクタ２０は、上記の動作により計数結果ＬＡＴＣＨ１［８：０］（ＨＳ＿ＣＮＴ１［８：０］）を選択する。時間算出部２１は、取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮが有意（Ｈｉｇｈ）になった時点でタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が１６の場合は、取り込んだ計数結果ＬＡＴＣＨ１［８：０］を１減算してから時間間隔を算出する。
【００７２】
図１５の例は、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が２７（高速クロックＲＯＳＣ＿ＣＬＫ１（ＴＡＰ［１５］）の位相が３０３．７５°）のタイミングで発振停止信号ＲＯＳＣ＿ＳＴＯＰの立ち上がりを受け取った場合を示している。セレクタ２０は、上記の動作により計数結果ＬＡＴＣＨ２［８：０］（ＨＳ＿ＣＮＴ２［８：０］）を選択する。時間算出部２１は、取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮが有意（Ｈｉｇｈ）になった時点でタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が２７の場合は、取り込んだ計数結果ＬＡＴＣＨ２［８：０］を１減算してから時間間隔を算出する。
【００７３】
以上の計数結果の補正の要否を図１１に記述すると、図１６のようになる。第１の実施例と同様に、時間算出部２１は、高速クロックＲＣＬＫ１の位相が第１の位相値以上３６０°未満の範囲のときにセレクタ２０によって選択された計数結果を取り込んだ場合に、この計数結果を１減算してから時間間隔を算出すればよい。
【００７４】
［第３の実施例］
次に、本発明の第３の実施例について説明する。図１７は本実施例に係る時間計測回路の構成を示す回路図であり、図１、図１０と同一の構成には同一の符号を付してある。本実施例の時間計測回路は、Ｄフリップフロップ回路１０と、リングオシレータ１１ａ（発振回路）と、高速カウンタ１２ａ，１２ｂ（第１、第２のカウンタ）と、バッファ回路１３と、インバータ１４と、エッジ検出回路１７ａと、Ｄフリップフロップ回路１８ａ，１８ｂと、エンコーダ１９と、セレクタ２０と、時間算出部２１ａと、通常時に外部から入力された発振開始信号ＲＯＳＣ＿ＳＴＡＲＴ（第１の開始信号）、発振停止信号ＲＯＳＣ＿ＳＴＯＰ（第１の停止信号）を選択して出力し、テスト実行時に後述するテスト実行部から出力された開始信号ＤＢＧ＿ＳＴＡＲＴ（第２の開始信号）、停止信号ＤＢＧ＿ＳＴＯＰ（第２の停止信号）を選択して出力すると共に、テスト終了時に停止信号ＲＯＳＣ＿ＳＴＯＰｂ（第３の停止信号）を出力する動作設定回路２４とを備えている。
【００７５】
また、本実施例の時間計測回路は、テスト実行時に、高速クロックＲＣＬＫ１を高速クロックＲＣＬＫ２よりも遅れてマスクし高速クロックＲＣＬＫ２よりも遅れてマスク解除するための停止信号と、高速クロックＲＣＬＫ２を高速クロックＲＣＬＫ１よりも先にマスクし高速クロックＲＣＬＫ１よりも先にマスク解除するための停止信号とを、動作設定回路２４から出力された停止信号ＲＯＳＣ＿ＳＴＯＰａから生成するマスク解除タイミング制御回路２５と、高速クロックＲＣＬＫ１とマスク解除タイミング制御回路２５から出力された停止信号の論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ１として出力するＯＲ回路２６と、高速クロックＲＣＬＫ２とマスク解除タイミング制御回路２５から出力された停止信号の論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ２として出力するＯＲ回路２７とを備えている。
【００７６】
バッファ回路１３とインバータ１４とマスク解除タイミング制御回路２５とＯＲ回路２６，２７とは、論理回路２８を構成している。
本実施例は、図１７に示すように、第１の実施例に対して時間計測回路２１ａからのＳＴＡＲＴ，ＳＴＯＰ信号（ＤＢＧ＿ＳＴＡＲＴ，ＤＢＧ＿ＳＴＯＰ）によりリングオシレータ１１ａを起動できる動作設定回路２４と、高速クロックＲＣＬＫ１，ＲＣＬＫ２のマスク解除タイミングを制御するためのマスク解除タイミング制御回路２５と、ＯＲ回路２６，２７とを追加したものである。
【００７７】
図１８は動作設定回路２４の構成を示す回路図、図１９はマスク解除タイミング制御回路２５の構成を示す回路図である。図１８に示すように、動作設定回路２４は、時間算出部２１ａから出力された選択指示信号ＲＯＳＣ＿ＳＥＬに応じて発振停止信号ＲＯＳＣ＿ＳＴＯＰと時間算出部２１ａから出力された停止信号ＤＢＧ＿ＳＴＯＰのいずれかを選択し、停止信号ＲＯＳＣ＿ＳＴＯＰａとして出力するセレクタ２４０と、選択指示信号ＲＯＳＣ＿ＳＥＬに応じて発振開始信号ＲＯＳＣ＿ＳＴＡＲＴと時間算出部２１ａから出力された開始信号ＤＢＧ＿ＳＴＡＲＴのいずれかを選択し、開始信号ＲＯＳＣ＿ＳＴＡＲＴａとして出力するセレクタ２４１と、セレクタ２４０から出力された停止信号ＲＯＳＣ＿ＳＴＯＰａと時間算出部２１ａから出力されたテスト指示信号ＲＯＳＣ＿ＴＥＳＴの否定との論理積の結果を停止信号ＲＯＳＣ＿ＳＴＯＰｂとして出力するＡＮＤ回路２４２とから構成される。
【００７８】
本実施例のＤフリップフロップ回路１０は、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴの代わりに、動作設定回路２４から出力された開始信号ＲＯＳＣ＿ＳＴＡＲＴａをクロック入力とし、発振停止信号ＲＯＳＣ＿ＳＴＯＰの代わりに、動作設定回路２４から出力された停止信号ＲＯＳＣ＿ＳＴＯＰｂをリセット入力とする。
【００７９】
本実施例のリングオシレータ１１ａのＤフリップフロップ回路１１２−１〜１１２−１６は、発振停止信号ＲＯＳＣ＿ＳＴＯＰの代わりに、停止信号ＲＯＳＣ＿ＳＴＯＰｂをクロック入力とする。
【００８０】
本実施例のエッジ検出回路１７ａは、発振停止信号ＲＯＳＣ＿ＳＴＯＰの代わりに、停止信号ＲＯＳＣ＿ＳＴＯＰａを入力とし、この停止信号ＲＯＳＣ＿ＳＴＯＰａと低速クロックＭＣＬＫとテスト指示信号ＲＯＳＣ＿ＴＥＳＴとを基に、 停止信号ＲＯＳＣ＿ＳＴＯＰａの立ち上がり直後の低速クロックＭＣＬＫの立ち下がりで有意（Ｈｉｇｈ）となる取り込み許可信号ＨＳ＿ＣＮＴ＿ＬＡＴと、取り込み許可信号ＨＳ＿ＣＮＴ＿ＬＡＴの立ち下がりで有意（Ｌｏｗ）となる高速カウンタリセット信号ＨＳ＿ＣＮＴ＿ＣＬＲと、発振停止信号ＲＯＳＣ＿ＳＴＯＰａを、低速クロックＭＣＬＫの１／２クロック分遅延させた取り込み許可信号ＨＳ＿ＣＮＴ＿ＥＮとを生成する。
【００８１】
図２０は本実施例の時間算出部２１ａの構成を示すブロック図である。時間算出部２００は、第１、第２の実施例の時間算出部２１と同じ機能を実現するものである。テスト実行部２０１は、リングオシレータ１１ａの遅延回路（ＮＡＮＤ回路１１０とバッファ回路１１１−１〜１１１−１５）のテストを行うものである。
【００８２】
以下、本実施例の時間計測回路の動作を説明する。図２１は本実施例の時間計測回路のテスト時の動作を説明するタイミングチャートである
テスト実行時に、テスト実行部２０１は、例えばユーザからの指示により、図２１に示すようにテスト指示信号ＲＯＳＣ＿ＴＥＳＴを有意のＨｉｇｈレベルとし、選択指示信号ＲＯＳＣ＿ＳＥＬをＨｉｇｈレベルとする。
【００８３】
動作設定回路２４のセレクタ２４０は、選択指示信号ＲＯＳＣ＿ＳＥＬがＨｉｇｈレベルであることにより、発振停止信号ＲＯＳＣ＿ＳＴＯＰとテスト実行部２０１から出力された停止信号ＤＢＧ＿ＳＴＯＰのうち、停止信号ＤＢＧ＿ＳＴＯＰを選択して停止信号ＲＯＳＣ＿ＳＴＯＰａとして出力する。
【００８４】
動作設定回路２４のセレクタ２４１は、選択指示信号ＲＯＳＣ＿ＳＥＬがＨｉｇｈレベルであることにより、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴとテスト実行部２０１から出力された開始信号ＤＢＧ＿ＳＴＡＲＴのうち、開始信号ＤＢＧ＿ＳＴＡＲＴを選択して開始信号ＲＯＳＣ＿ＳＴＡＲＴａとして出力する。
【００８５】
動作設定回路２４のＡＮＤ回路２４２は、セレクタ２４０から出力された停止信号ＲＯＳＣ＿ＳＴＯＰａとテスト実行部２０１から出力されたテスト指示信号ＲＯＳＣ＿ＴＥＳＴの否定との論理積の結果を停止信号ＲＯＳＣ＿ＳＴＯＰｂとして出力する。その結果、停止信号ＲＯＳＣ＿ＳＴＯＰｂは、テスト中にテスト指示信号ＲＯＳＣ＿ＴＥＳＴがＨｉｇｈレベルである間は無意（Ｌｏｗ）である。また、停止信号ＲＯＳＣ＿ＳＴＯＰｂは、例えばユーザからの指示によりテスト終了後にテスト指示信号ＲＯＳＣ＿ＴＥＳＴがＬｏｗとなった場合には、停止信号ＤＢＧ＿ＳＴＯＰが立ち上がった時点で有意（Ｈｉｇｈ）となる。
【００８６】
したがって、Ｄフリップフロップ回路１０は、テスト中の最初の開始信号ＲＯＳＣ＿ＳＴＡＲＴａ（ＤＢＧ＿ＳＴＡＲＴ）の立ち上がりで発振許可信号ＴＤＣ＿ＥＮを有意（Ｈｉｇｈ）とし、停止信号ＲＯＳＣ＿ＳＴＯＰｂの立ち上がりで発振許可信号ＴＤＣ＿ＥＮを無意（Ｌｏｗ）とするので、この発振許可信号ＴＤＣ＿ＥＮが有意（Ｈｉｇｈ）の期間中はリングオシレータ１１ａがフリーランで動作することになる。
【００８７】
なお、通常時にテスト指示信号ＲＯＳＣ＿ＴＥＳＴがＬｏｗとなり、発振停止信号ＲＯＳＣ＿ＳＴＯＰが入力されたときには、停止信号ＲＯＳＣ＿ＳＴＯＰｂとして、発振停止信号ＲＯＳＣ＿ＳＴＯＰが出力される。
【００８８】
テスト実行時に、テスト実行部２０１は、低速クロックＭＣＬＫに同期して停止信号ＤＢＧ＿ＳＴＯＰを定期的に発行するが、停止信号ＤＢＧ＿ＳＴＯＰがＨｉｇｈレベルになってもリングオシレータ１１ａが停止することはない。
【００８９】
そして、テスト実行部２０１は、停止信号ＤＢＧ＿ＳＴＯＰの立ち上がりでエンコーダ１９から出力された５ビットのタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］を取得し、このタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値に基づいて、Ｄフリップフロップ回路１８ａ，１８ｂによってラッチされた８ビットの計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］を取得する。
【００９０】
リングオシレータ１１ａは周波数が固定されておらず、低速クロックＭＣＬＫとは同期していないため、テスト実行部２０１が定期的にタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］を取得したとしても得られる値はランダムに変化する。
【００９１】
テスト実行部２０１は、このタイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値に基づいて、高速クロックＲＣＬＫ１の位相が第１の位相値（１０１．２５°、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が９）の直前の値（タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が８）のときに計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］を取得して比較する。また、テスト実行部２０１は、高速クロックＲＣＬＫ１の位相が第１の位相値のときに計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］を取得して比較してもよい。また、テスト実行部２０１は、高速クロックＲＣＬＫ１の位相が第１の位相値の直後の値（タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が１０）のときに計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］を取得して比較してもよい。図２１では、これらのタイミングをＰｈａｓｅ１で表している。
【００９２】
また、テスト実行部２０１は、高速クロックＲＣＬＫ１の位相が第２の位相値（２８１．２５°、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が２５）の直前の値（タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が２４）のときに計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］を取得して比較する。また、テスト実行部２０１は、高速クロックＲＣＬＫ１の位相が第２の位相値のときに計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］を取得して比較してもよい。また、テスト実行部２０１は、高速クロックＲＣＬＫ１の位相が第２の位相値の直後の値（タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が２６）のときに計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］を取得して比較してもよい。図２１では、これらのタイミングをＰｈａｓｅ２で表している。
【００９３】
これらＰｈａｓｅ１，Ｐｈａｓｅ２のタイミングのときは計数結果ＬＡＴＣＨ１［８：０］，ＬＡＴＣＨ２［８：０］の値が共に高速カウンタ１２ａ，１２ｂでＬｏｗ幅違反とはならないカウント値になっているはずなので、テスト実行部２０１は、Ｐｈａｓｅ１のタイミングで取得した計数結果ＬＡＴＣＨ１［８：０］とＬＡＴＣＨ２［８：０］とを比較し、同様にＰｈａｓｅ２のタイミングで取得した計数結果ＬＡＴＣＨ１［８：０］とＬＡＴＣＨ２［８：０］とを比較する。
【００９４】
そして、テスト実行部２０１は、計数結果ＬＡＴＣＨ１［８：０］とＬＡＴＣＨ２［８：０］とが一致している場合には、リングオシレータ１１ａの遅延回路（ＮＡＮＤ回路１１０とバッファ回路１１１−１〜１１１−１５）が正常と判定し、計数結果ＬＡＴＣＨ１［８：０］とＬＡＴＣＨ２［８：０］とが不一致の場合には、遅延回路が故障していると判定する。判定結果の出力方法としては、例えば判定結果を知らせる内容を表示したり、判定結果を知らせる情報を外部に送信したりする等の方法がある。
【００９５】
なお、高速クロックＲＣＬＫ１，ＲＣＬＫ２と発振停止信号ＲＯＳＣ＿ＳＴＯＰの位相関係は非同期なので、本実施例のようなテストを行う場合は、発振停止信号ＲＯＳＣ＿ＳＴＯＰによるマスク解除のタイミングをマスク解除タイミング制御回路２５によって制御する必要がある。
【００９６】
図１９に示したように、マスク解除タイミング制御回路２５は、バッファ回路１３から出力された高速クロックＲＣＬＫ１と時間算出部２１ａから出力されたテスト指示信号ＲＯＳＣ＿ＴＥＳＴの論理積の結果を出力するＡＮＤ回路２５０と、インバータ１４から出力された高速クロックＲＣＬＫ２とテスト指示信号ＲＯＳＣ＿ＴＥＳＴの論理積の結果を出力するＡＮＤ回路２５１と、動作設定回路２４から出力された停止信号ＲＯＳＣ＿ＳＴＯＰａをＤ入力とし、ＡＮＤ回路２５１の出力をクロック入力とするＤフリップフロップ回路２５２と、Ｄフリップフロップ回路２５２の出力ＳＴＯＰ＿ＲＣＬＫ２＿Ｄ１をＤ入力とし、停止信号ＲＯＳＣ＿ＳＴＯＰａをクロック入力とするＤフリップフロップ回路２５３と、Ｄフリップフロップ回路２５３の出力ＳＴＯＰ＿ＲＣＬＫ２＿Ｄ２をＤ入力とし、ＡＮＤ回路２５０の出力をクロック入力とするＤフリップフロップ回路２５４とから構成される。
【００９７】
ＯＲ回路２６は、高速クロックＲＣＬＫ１とマスク解除タイミング制御回路２５のＤフリップフロップ回路２５４の出力ＳＴＯＰ＿ＲＣＬＫ１＿Ｄ３（第４の停止信号）と停止信号ＲＯＳＣ＿ＳＴＯＰａの論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ１として出力する。
【００９８】
ＯＲ回路２７は、高速クロックＲＣＬＫ２とマスク解除タイミング制御回路２５のＤフリップフロップ回路２５３の出力ＳＴＯＰ＿ＲＣＬＫ２＿Ｄ２（第５の停止信号）と停止信号ＲＯＳＣ＿ＳＴＯＰａの論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ２として出力する。
【００９９】
図２２はマスク解除タイミング制御回路２５の動作を説明するタイミングチャートである。なお、図２２は、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が２４または２５の場合を示している。第１〜第３の実施例のリングオシレータ１１ａとバッファ回路１３とインバータ１４とは、発振許可信号ＴＤＣ＿ＥＮが有意（Ｈｉｇｈ）となったときに、高速クロックＲＣＬＫ２の立ち上がり→高速クロックＲＣＬＫ１の立ち上がり→高速クロックＲＣＬＫ２の立ち上がり→高速クロックＲＣＬＫ１の立ち上がり、というように高速クロックＲＣＬＫ２，ＲＣＬＫ１を交互に立ち上げる動作を行う。
【０１００】
このため、図２２の１０５で示すように、動作開始時に、高速カウンタ１２ｂ（ＨＳ＿ＣＮＴ２［８：０］）、高速カウンタ１２ａ（ＨＳ＿ＣＮＴ１［８：０］を）の順番でカウントアップが開始される。したがって、マスク解除時も図２２のタイミングチャートのように、高速クロックＲＣＬＫ２の立ち上がり→高速クロックＲＣＬＫ１の立ち上がり→高速クロックＲＣＬＫ２の立ち上がり→高速クロックＲＣＬＫ１の立ち上がり、という順番となるようにマスク解除のタイミングを制御する。
【０１０１】
図２２のＳＴＯＰ＿ＲＣＬＫ２＿Ｄ１はＤフリップフロップ回路２５２の出力を示し、ＳＴＯＰ＿ＲＣＬＫ２＿Ｄ２はＤフリップフロップ回路２５３の出力を示し、ＳＴＯＰ＿ＲＣＬＫ１＿Ｄ３はＤフリップフロップ回路２５４の出力を示している。Ｄフリップフロップ回路２５３の出力ＳＴＯＰ＿ＲＣＬＫ２＿Ｄ２は、ＯＲ回路２７において高速クロックＲＣＬＫ２のマスクに使用される。また、Ｄフリップフロップ回路２５４の出力ＳＴＯＰ＿ＲＣＬＫ１＿Ｄ３は、ＯＲ回路２６において高速クロックＲＣＬＫ１のマスクに使用される。
【０１０２】
このように、Ｄフリップフロップ回路２５４の出力ＳＴＯＰ＿ＲＣＬＫ１＿Ｄ３よりもＤフリップフロップ回路２５３の出力ＳＴＯＰ＿ＲＣＬＫ２＿Ｄ２が先に立ち下がり、高速クロックＲＣＬＫ１よりも高速クロックＲＣＬＫ２が先にマスク解除されるので、図２２の１０６で示すように、マスク解除時においても、高速カウンタ１２ｂ（ＨＳ＿ＣＮＴ２［８：０］）、高速カウンタ１２ａ（ＨＳ＿ＣＮＴ１［８：０］を）の順番でカウントアップが再開される。
【０１０３】
本実施例では、上記のとおりＰｈａｓｅ１，Ｐｈａｓｅ２のタイミングで計数結果ＬＡＴＣＨ１［８：０］とＬＡＴＣＨ２［８：０］とを比較するが、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が２４、２５または２６の場合（高速クロックＲＣＬＫ１の位相が第２の位相値の直前の値、第２の位相値または第２の位相値の直後の値の場合）、リングオシレータ１１ａの遅延回路に故障がなければ、図２２の１０７の所で示すように、計数結果ＬＡＴＣＨ１［８：０］とＬＡＴＣＨ２［８：０］は必ず一致する。
【０１０４】
一方、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が８、９または１０の場合（高速クロックＲＣＬＫ１の位相が第１の位相値の直前の値、第１の位相値または第１の位相値の直後の値の場合）、図２３に示すように、高速クロックＲＯＳＣ＿ＣＬＫ２の方がＲＯＳＣ＿ＣＬＫ１よりも１回多く立ち上がるため、図２３の１０８の所で示すように、計数結果ＬＡＴＣＨ１［８：０］に対してＬＡＴＣＨ２［８：０］の方がカウント値が１大きくなる。
【０１０５】
そこで、タイミング信号ＨＳ＿ＰＨＡＳＥ［４：０］の値が８、９または１０の場合には、テスト実行部２０１は、計数結果ＬＡＴＣＨ２［８：０］を１減算した上で、計数結果ＬＡＴＣＨ１［８：０］と減算後のＬＡＴＣＨ２［８：０］とを比較し、計数結果ＬＡＴＣＨ１［８：０］とＬＡＴＣＨ２［８：０］とが一致している場合には、リングオシレータ１１ａの遅延回路が正常と判定し、計数結果ＬＡＴＣＨ１［８：０］とＬＡＴＣＨ２［８：０］とが不一致の場合には、遅延回路が故障していると判定する。
【０１０６】
通常時の動作は第１の実施例と同様である。上記のとおり、テスト実行時にはテスト指示信号ＲＯＳＣ＿ＴＥＳＴがＨｉｇｈレベルとなるので、マスク解除タイミング制御回路２５のＡＮＤ回路２５０，２５１によりマスク解除タイミング制御回路２５の動作が有効となる。一方、通常時にはテスト指示信号ＲＯＳＣ＿ＴＥＳＴがＬｏｗレベルとなるので、マスク解除タイミング制御回路２５の動作が無効（ＡＮＤ回路２５０，２５１の出力が常にＬｏｗレベル）となる。
【０１０７】
通常時には、ＯＲ回路２６は、第１の実施例のＯＲ回路１５と同様に、バッファ回路１３から出力された高速クロックＲＣＬＫ１と停止信号ＲＯＳＣ＿ＳＴＯＰａ（ＲＯＳＣ＿ＳＴＯＰ）の論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ１として出力する。ＯＲ回路２７は、ＯＲ回路１６と同様に、インバータ１４から出力された高速クロックＲＣＬＫ２と停止信号ＲＯＳＣ＿ＳＴＯＰａ（ＲＯＳＣ＿ＳＴＯＰ）の論理和の結果を高速クロックＲＯＳＣ＿ＣＬＫ２として出力する。
【０１０８】
本実施例の自己テスト機能を用いることで、ＩＣ出荷検査用テスターとして、発振開始信号ＲＯＳＣ＿ＳＴＡＲＴと発振停止信号ＲＯＳＣ＿ＳＴＯＰ間を数十ｐｓの分解能で制御可能なテスターを選択する必要が無くなり、外部から発振開始信号ＲＯＳＣ＿ＳＴＡＲＴと発振停止信号ＲＯＳＣ＿ＳＴＯＰとを入力せずにテストが可能なので、時間計測回路を搭載したＩＣのテスト時間も短縮できる。その結果、本実施例では、ＩＣのコスト削減に貢献できる。
【０１０９】
第１〜第３の実施例で説明した時間計測回路の時間算出部２１，２１ａは、ＣＰＵ（Central Processing Unit）、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図２４に示す。コンピュータは、ＣＰＵ３００と、記憶装置３０１と、インターフェース装置（以下、Ｉ／Ｆと略する）３０２とを備えている。Ｉ／Ｆ３０２には、セレクタ２０とエッジ検出回路１７，１７ａとＤフリップフロップ回路１８ａ，１８ｂとエンコーダ１９と動作設定回路２４とマスク解除タイミング制御回路２５とが接続される。このようなコンピュータにおいて、本発明を実現させるためのプログラムは記憶装置３０１に格納される。ＣＰＵ３００は、記憶装置３０１に格納されたプログラムに従って第１〜第３の実施例で説明した処理を実行する。
【産業上の利用可能性】
【０１１０】
本発明は、ｐｓｅｃオーダーの時間を計測する技術に適用することができる。
【符号の説明】
【０１１１】
１０，１８ａ，１８ｂ，１１２−１〜１１２−１６，２５２〜２５４…Ｄフリップフロップ回路，１１ａ…リングオシレータ、１２ａ，１２ｂ…高速カウンタ、１３，１１１−１〜１１１−１５…バッファ回路、１４…インバータ、１５，１６，２３２６，２７…ＯＲ回路、１７，１７ａ…エッジ検出回路、１９…エンコーダ、２０，２０ａ，２４０，２４１…セレクタ、２１，２１ａ，２００…時間算出部、２２，２８…論理回路、２４…動作設定回路、２５…マスク解除タイミング制御回路、１１０…ＮＡＮＤ回路、２０１…テスト実行部、２４２，２５０，２５１…ＡＮＤ回路。
【図１】
2020160016.tif 000003
【図２】
2020160016.tif 000004
【図３】
2020160016.tif 000005
【図４】
2020160016.tif 000006
【図５】
2020160016.tif 000007
【図６】
2020160016.tif 000008
【図７】
2020160016.tif 000009
【図８】
2020160016.tif 000010
【図９】
2020160016.tif 000011
【図１０】
2020160016.tif 000012
【図１１】
2020160016.tif 000013
【図１２】
2020160016.tif 000014
【図１３】
2020160016.tif 000015
【図１４】
2020160016.tif 000016
【図１５】
2020160016.tif 000017
【図１６】
2020160016.tif 000018
【図１７】
2020160016.tif 000019
【図１８】
2020160016.tif 000020
【図１９】
2020160016.tif 000021
【図２０】
2020160016.tif 000022
【図２１】
2020160016.tif 000023
【図２２】
2020160016.tif 000024
【図２３】
2020160016.tif 000025
【図２４】
2020160016.tif 000026
【図２５】
2020160016.tif 000027
【図２６】
2020160016.tif 000028