JP5780356B2 - 時間対デジタル変換器、および制御方法 - Google Patents

時間対デジタル変換器、および制御方法 Download PDF

Info

Publication number
JP5780356B2
JP5780356B2 JP2014507105A JP2014507105A JP5780356B2 JP 5780356 B2 JP5780356 B2 JP 5780356B2 JP 2014507105 A JP2014507105 A JP 2014507105A JP 2014507105 A JP2014507105 A JP 2014507105A JP 5780356 B2 JP5780356 B2 JP 5780356B2
Authority
JP
Japan
Prior art keywords
delay
delay element
phase difference
amount
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014507105A
Other languages
English (en)
Other versions
JPWO2013145136A1 (ja
Inventor
ウィン チャイヴィパース
ウィン チャイヴィパース
松田 篤
篤 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2013145136A1 publication Critical patent/JPWO2013145136A1/ja
Application granted granted Critical
Publication of JP5780356B2 publication Critical patent/JP5780356B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/06Continuously compensating for, or preventing, undesired influence of physical parameters
    • H03M1/0617Continuously compensating for, or preventing, undesired influence of physical parameters characterised by the use of methods or means not specific to a particular type of detrimental influence
    • H03M1/0624Continuously compensating for, or preventing, undesired influence of physical parameters characterised by the use of methods or means not specific to a particular type of detrimental influence by synchronisation
    • GPHYSICS
    • G04HOROLOGY
    • G04FTIME-INTERVAL MEASURING
    • G04F10/00Apparatus for measuring unknown time intervals by electric means
    • G04F10/005Time-to-digital converters [TDC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/50Analogue/digital converters with intermediate conversion to time interval

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pulse Circuits (AREA)
  • Analogue/Digital Conversion (AREA)

Description

本発明は、時間対デジタル変換器、および制御方法に関する。
従来、2つのクロック信号の位相差をデジタルの値として出力する時間対デジタル変換器(以下、TDC(Time To Digital Converter)と称する。)が知られている。
たとえば、TDCは、直列に接続された複数の遅延素子によってクロック信号を遅延させることにより、2つのクロック信号の位相差を検出する。関連する技術としては、たとえば、TDCについては、2つのクロック信号の位相差を、微細な位相差と粗い位相差との2段階によって検出する技術が知られている(たとえば、下記特許文献1および2を参照。)。
また、たとえば、A/D変換器については、アナログ入力電圧、またはアナログ入力電流の大きさに応じた遅延時間によってパルス信号を複数の遅延素子によって遅延させ、複数の遅延素子の各々から出力される出力信号に基づいてアナログ信号をデジタル信号に変換する技術が知られている(たとえば、下記特許文献3を参照。)。
また、たとえば、PVT(Process Voltage Temparature)による遅延素子の遅延量のばらつきを小さくするために、DLL(Delay−Locked Loop)が利用される場合がある(たとえば、下記非特許文献1を参照。)。
特表2009−527158号公報 特表2011−518534号公報 特開2010−183176号公報
「Jitter Transfer Characteristics of Delay−Locked Loops Theories and Design Techniques」,IEEE JOURNAL OF SOLID−STATE CIRCUITS,Vol.38,No.4,April 2003
しかしながら、PVTによって遅延素子の遅延量がばらつくことにより、TDCによる2つのクロック信号の位相検出の精度が劣化する問題点がある。
本発明は、上述した従来技術による問題点を解消するため、位相差の検出精度の劣化を抑えることができる時間対デジタル変換器、および制御方法を提供することを目的とする。
本発明の一側面によれば、直列に接続された複数の第1遅延素子と、前記複数の第1遅延素子のそれぞれに対応して設けられ、直列に接続された複数の第2遅延素子と、前記複数の第1遅延素子の最前段の第1遅延素子への入力信号の値および前記複数の第1遅延素子の各出力信号の値を、それぞれ、前記複数の第2遅延素子の最前段の第2遅延素子への入力信号および前記複数の第2遅延素子の各出力信号に同期して記憶する複数のフリップフロップと、前記最前段の第1遅延素子に対して、第1入力端子から入力された第1クロック信号を入力する第1状態と、前記複数の第2遅延素子のうちの最後段の第2遅延素子の出力信号を入力する第2状態と、を切り替え可能な第1切り替え部と、前記最前段の第2遅延素子に対して、第2入力端子から入力された第2クロック信号を入力する第1状態と、前記複数の第1遅延素子のうちの最後段の第1遅延素子の出力信号を入力する第2状態と、を切り替え可能な第2切り替え部と、前記第1および第2切り替え部を前記第1状態にすることにより前記第1クロック信号と前記第2クロック信号がそれぞれ前記複数の第1遅延素子と前記複数の第2遅延素子に取り込まれた後、前記第1および第2切り替え部を前記第2状態にする制御部と、前記第2状態において前記複数のフリップフロップに記憶された値をデコードして得られた前記第1クロック信号と前記第2クロック信号との位相差を示す情報を出力する出力部と、を有することを特徴とする時間対デジタル変換器が提案される。
本発明の一態様によれば、位相差の検出精度の劣化を抑えることができるという効果を奏する。
図1は、本発明にかかるTDCにおいてループが形成される例を示す説明図である。 図2は、1ステージのTDCの一の例を示す説明図である。 図3は、1ステージのTDCの他の例を示す説明図である。 図4は、遅延量の変動による影響例を示す説明図である。 図5は、キャリブレーション例を示す説明図である。 図6は、2−Stage TDCの一例を示す説明図である。 図7は、実施例1にかかるTDC100を示す説明図である。 図8は、STARTの一例を示す説明図である。 図9は、第1状態例を示す説明図である。 図10は、取り込まれた第1クロック信号Signalと第2クロック信号Ref CLKに付与される遅延量を示す説明図(その1)である。 図11は、第1状態から第2状態に切り替わる例を示す説明図である。 図12は、取り込まれた第1クロック信号Signalと第2クロック信号Refに付与される遅延量を示す説明図(その2)である。 図13は、第1クロック信号Signalと第2クロック信号Ref CLKがループされる例1を示す説明図である。 図14は、第1クロック信号Signalと第2クロック信号Ref CLKがループされる例2を示す説明図である。 図15は、取り込まれた第1クロック信号Signalと第2クロック信号Ref CLKに付与される遅延量を示す説明図(その3)である。 図16は、実施例2にかかるTDCを示す説明図である。 図17は、第3遅延素子C32の具体例を示す説明図である。 図18は、位相差x1Δτと最小の増加量y1αの検出例を示す説明図である。 図19は、実施例2にかかる制御部701が行う制御処理手順例1を示すフローチャート(その1)である。 図20は、実施例2にかかる制御部701が行う制御処理手順例1を示すフローチャート(その2)である。 図21は、実施例2にかかる制御部701が行う制御処理手順例1を示すフローチャート(その3)である。 図22は、実施例2にかかる制御部701が行う制御処理手順例1を示すフローチャート(その4)である。 図23は、実施例2にかかる制御部701が行う制御処理手順例1を示すフローチャート(その5)である。 図24は、実施例2にかかる制御部701が行う制御処理手順例2を示す説明図(その1)である。 図25は、実施例2にかかる制御部701が行う制御処理手順例2を示す説明図(その2)である。 図26は、実施例2にかかる制御部701が行う制御処理手順例3を示すフローチャート(その1)である。 図27は、実施例2にかかる制御部701が行う制御処理手順例3を示すフローチャート(その2)である。 図28は、実施例2にかかる制御部701が行う制御処理手順例3を示すフローチャート(その3)である。 図29は、実施例2にかかる制御部701が行う制御処理手順例3を示すフローチャート(その4)である。 図30は、実施例2にかかる制御部701が行う制御処理手順例3を示すフローチャート(その5)である。 図31は、実施例2にかかる制御部701が行う制御処理手順例3を示すフローチャート(その6)である。 図32は、実施例2にかかる制御部701が行う制御処理手順例4を示すフローチャート(その1)である。 図33は、実施例2にかかる制御部701が行う制御処理手順例4を示すフローチャート(その2)である。 図34は、実施例2にかかる制御部701が行う制御処理手順例4を示すフローチャート(その3)である。 図35は、実施例2における第1および第2クロックの周期の検出例を示す説明図である。 図36は、実施例2におけるΔτの特定例を示す説明図である。 図37は、実施例2にかかる制御部701による正規化処理手順を示すフローチャートである。 図38は、制御部701による遅延量dlの検出処理手順例1を示すフローチャート(その1)である。 図39は、制御部701による遅延量dlの検出処理手順例1を示すフローチャート(その2)である。 図40は、実施例2にかかる制御部701による遅延量dlの検出処理手順例2を示すフローチャート(その1)である。 図41は、実施例2にかかる制御部701による遅延量dlの検出処理手順例2を示すフローチャート(その2)である。 図42は、実施例2にかかる制御部701による最小の第2増加量y3αの検出処理手順例1を示すフローチャート(その1)である。 図43は、実施例2にかかる制御部701による最小の第2増加量y3αの検出処理手順例1を示すフローチャート(その2)である。 図44は、実施例2にかかる制御部701による最小の第2増加量y3αの検出処理手順例1を示すフローチャート(その3)である。 図45は、実施例2にかかる制御部701による最小の第2増加量y3αの検出処理手順例2を示すフローチャート(その1)である。 図46は、実施例2にかかる制御部701による最小の第2増加量y3αの検出処理手順例2を示すフローチャート(その2)である。 図47は、実施例2にかかる制御部701による最小の第2増加量y3αの検出処理手順例2を示すフローチャート(その3)である。 図48は、実施例3にかかるTDCを示す説明図である。 図49は、実施例4にかかるTDCを示す説明図である。 図50は、第1遅延素子C10〜C1Nと第2遅延素子C20〜C2Nの詳細例を示す説明図である。 図51は、第1遅延素子C1iの遅延量と第2遅延素子C2iの遅延量との差分を示す説明図である。 図52は、実施例3における位相差の検出例を示す説明図である。 図53は、実施例4にかかる制御部701による制御処理手順例を示すフローチャート(その1)である。 図54は、実施例4にかかる制御部701による制御処理手順例を示すフローチャート(その2)である。 図55は、実施例4における正規化例を示す説明図(その1)である。 図56は、実施例4における正規化例を示す説明図(その2)である。
本発明にかかる時間対デジタル変換器の実施の形態を詳細に説明する。
図1は、本発明にかかるTDCにおいてループが形成される例を示す説明図である。TDC100は、直列に接続された第1遅延素子C11〜C1N(N≧2)と、第1遅延素子C11〜C1Nのそれぞれに対応して、直列に接続された第2遅延素子C21〜C2Nと、を有している。
TDC100は、第1遅延素子C11への入力信号の値を第2遅延素子C21への入力信号に同期して記憶するフリップフロップを有している。TDC100は、第1遅延素子C11〜C1Nの各出力信号の値を、それぞれ、第2遅延素子C21〜C2Nの各出力信号に同期して記憶する複数のフリップフロップを有している。フリップフロップは、以下「FF(Flip Flop)」と称する。複数のFFは、後述する図7に示す。
TDC100は、第1遅延素子C11に対して、第1入力端子IN1から入力された第1クロック信号Signalを入力する第1状態と、第2遅延素子C2Nの出力信号を入力する第2状態と、を切り替え可能な第1切り替え部101を有する。TDC100は、第2遅延素子C21に対して、第2入力端子IN2から入力された第2クロック信号Ref CLKを入力する第1状態と、第1遅延素子C1Nの出力信号を入力する第2状態と、を切り替え可能な第2切り替え部102を有する。
TDC100は、第1切り替え部101および第2切り替え部102を第1状態にする。これにより、第1クロック信号Signalと第2クロック信号Ref CLKがそれぞれ第1遅延素子C11〜C1Nと第2遅延素子C21〜C2Nに取り込む。その後、TDC100は、第1切り替え部および第2切り替え部102を第2状態にする制御部を有する。制御部は、後述する図7に示す。
TDC100は、第2状態において複数のFFに記憶された値をデコードして得られた第1クロック信号と第2クロック信号との位相差を示す情報を出力する出力部を有する。出力部は、後述する図7に示す。
第2切り替え部102が第2状態になると、第1遅延素子C11〜C1Nのうちの最終段の第1遅延素子C1Nの出力信号が第2遅延素子C21〜C2Nのうちの最前段の第2遅延素子C21へ入力される。第1切り替え部101が第2状態になると、第2遅延素子C21〜C2Nのうちの最後段の第2遅延素子C2Nの出力信号が第1遅延素子C11〜C1Nのうちの最前段の第2遅延素子C21へ入力される。そのため、第1クロック信号Signalと第2クロック信号Ref CLKとが交互に第1遅延素子C11〜C1Nと第2遅延素子C21〜C2Nとを通過するループが形成される。
これにより、第1クロック信号Signalと第2クロック信号Ref CLKに付与される遅延量が同一となる。したがって、各遅延素子の遅延量がPVTによってばらついたとしても、位相差検出の精度劣化を抑えることができる。第2状態が維持されることにより、ループが維持されるため、第1クロック信号Signalと第2クロック信号Ref CLKの位相差が何回も再現される。
つぎに、本発明にかかるTDC100の詳細な説明の前に、従来のTDCを用いてTDCの動作を簡単に説明する。TDC100については、図7以降に後述する。
図2は、1ステージのTDCの一の例を示す説明図である。図2では、1ステージのTDC200を示している。TDC200では、複数のFFと、複数の遅延素子を有している。TDC200では、入力クロックInputCLKが遅延素子で遅延される。TDC200では、遅延素子で遅延された信号Input CLKを、第2クロック信号Ref CLKの立ち上がりで複数のFFが取り込んでいる。
タイミングチャート201では、入力クロックInputCLKが遅延される様子と、参照クロックRefCLKの立ち上がりで複数のFFに記憶された値がデジタル数値に変換される様子と、を示している。
図3は、1ステージのTDCの他の例を示す説明図である。図3では、1ステージのTDC300を示している。TDC300では、複数のFFと、それぞれが遅延量τ1を有する直列に接続された複数の遅延素子と、それぞれが遅延量τ2を有する直列に接続された複数の遅延素子と、を有している。遅延量τ1を有する複数の遅延素子は、入力クロックInput CLKを遅延させ、遅延量τ2を有する複数の遅延素子は、参照クロックRefCLKを遅延させる。
複数のFFは、遅延量τ1を有する複数の遅延素子の各出力信号を、それぞれ遅延量τ2を有する複数の遅延素子の各出力信号に同期して記憶する。図3の例では、入力クロックInputCLKと、参照クロックRefCLKと、の両方が遅延される。したがって、TDC300の遅延精度はTDC100の遅延精度より詳細になる。タイミングチャート301は、TDC300のノードA1〜A3,ノードB1〜B3について示している。タイミングチャート301で示すように、TDC300の精度は、「τ2−τ1=Δτ」である。
ここで、TDC300の精度について説明する。TDC300の精度は2つの要因で決まる。1つ目の要因は、各遅延素子の時間の差分である。たとえば、図3のTDC300では、遅延量τ2が10[ps]であり、τ1の遅延量は10[ps]であるとTDC300の精度がτ2−τ1=10[ps]になる。2つ目の要因はTDC300の正規化精度である。TDC300の遅延素子の遅延量は、PVTによってばらつくため、一定ではない。遅延素子の遅延量が変化すると、TDC300の結果も変化してしまう。たとえば、遅延量の変動による影響を図4で示す。
図4は、遅延量の変動による影響例を示す説明図である。図4の例1では、図4の例2と比較して遅延素子の遅延量が少ないため、入力クロックInputCLKと参照クロックRefCLKの位相差は、3遅延素子分の遅延量になる。図4の例2では、図4の例1と比較して遅延素子の遅延量が長いため、入力クロックInputCLKと参照クロックRefCLKの時間差は、3遅延素子分の遅延量になる。
遅延量の変動によって、入力クロックInputCLKと参照クロックRefCLKの位相差がずれてしまう可能性があり、FFから出力されるデータの精度が劣化してしまう可能性がある。たとえば、図2に示したTDC200、図3に示したTDC300の遅延素子の遅延量をレプリカセルでキャリブレーションすることにより、TDC200,300は、遅延量変動の影響を低減させることができる。
図5は、キャリブレーション例を示す説明図である。DLL501の出力電圧(Control Voltage)がTDC502の各遅延素子の電源電圧として与えられる。これにより、TDC502の各遅延素子の遅延量がPVTに影響されずに安定するが、DLL501は面積が大きく、開発時間もかかるためコストがかかってしまう。
また、位相検出の精度を向上させるために、遅延素子の段数を増大してもよい。たとえば、1ビットの精度を上げたい場合、遅延素子の段数を倍増やさなければならない。そのため、合計の遅延素子の面積と合計の遅延素子の消費電力が倍増える。
図6は、2−Stage TDCの一例を示す説明図である。たとえば、位相検出の精度を向上させるために、図6に示す2−Stage TDC600は、第1クロック信号CLKと第2クロック信号Sigとの位相差をCoarse遅延量とFine遅延量とに分けて検出する。Coarse遅延量は、Coarse DLL+sampler601によって検出される。Fineは、Fine DLL+sampler602(602−1〜602−(j+1))によって検出される。Coarse DLL+sampler601は、PD(Phase Detector)と、Low Pass Filterと、遅延素子群と、Nビットのレジスタと、を有している。
図6に示す2−Stage TDC600では、動作範囲が広く、位相検出の精度が高いが、複数のDLLを有さなければならないため、回路が複雑であり、面積が大きく、かつ消費電力が大きい。
図2〜図6で上述したように、PVTによる遅延素子の遅延量のばらつきを小さくさせるために、TDCがDLLなどの複雑な回路を有すると、たとえば、面積が大きくなり、消費電力が大きくなる。一方、本実施の形態にかかるTDC100は、PVTによる遅延素子の遅延量のばらつきを抑止させるのではなく、PVTによる遅延素子の遅延量のばらつきによる位相検出の精度劣化を抑えることができる。
(実施例1)
図7は、実施例1にかかるTDC100を示す説明図である。TDC100は、第1切り替え部101と、第2切り替え部102と、第1遅延素子C11〜C1Nと、第2遅延素子C21〜C2Nと、FF710〜71Nと、制御部701と、を有している。
第1遅延素子C11〜C1Nは直列に接続されている。第1遅延素子C11〜C1Nは同一の遅延量τ1になるように設計されている。第1遅延素子C11〜C1Nの出力端は、それぞれFF710〜71Nのデータ入力端に接続されている。第1遅延素子C11〜C1Nによって第1遅延線L1が形成される。
第2遅延素子C21〜C2Nは直列に接続されている。第2遅延素子C21〜C2Nは同一の遅延量τ1になるように設計されている。第2遅延素子C21〜C2Nの出力端は、それぞれFF710〜71Nのクロック入力端に接続されている。第2遅延素子C21〜C2Nによって第2遅延線L2が形成される。
制御部701は、TDC100の全体の動作を制御する。具体的には、制御部701は、第1切り替え部101と第2切り替え部102とに対して、それぞれ第1選択信号MUXA_CONと第2選択信号MUXB_CONを出力する。制御部701は、たとえば、論理積回路であるAND、否定論理回路であるINVERTER、論理和回路であるORや、ラッチ回路であるFF(Flip Flop)などの素子によって形成される。または、制御部701は、たとえば、Verilog−HDL(Hardware Description Language)などの記述によって機能定義し、その記述を論理合成してFPGA(Field Programmable Gate Array)によって実現させてもよい。
図8は、STARTの一例を示す説明図である。第3入力端子IN3から入力されるSTARTは、たとえば、図8で示すように、第2クロック信号Ref CLKよりも先に入力される信号であってもよい。これに限らず、たとえば、STARTは、利用者が制御信号として入力してもよい。
第1切り替え部101は、第1遅延素子C11に対して、第1入力端子IN1から入力された第1クロック信号Signalを入力する第1状態と、第2遅延素子C2Nの出力信号を入力する第2状態と、を切り替える。具体的には、第1切り替え部101はマルチプレクサーである。
具体的には、第1切り替え部101は、制御部701から入力される第1選択信号MUXA_CONに基づいて第1入力端子IN1から入力される第1クロック信号Signalと第2遅延素子C2Nの出力信号とのうちいずれか一方を選択する。第1切り替え部101は、選択した信号を第1遅延素子C11とFF710のデータ入力端へ入力する。たとえば、第1選択信号MUXA_CONの値が0の場合、第1切り替え部101は、第1入力端子IN1から入力される第1クロック信号を選択する。たとえば、第1選択信号MUXA_CONの値が1の場合、第1切り替え部101は、第2遅延素子C2Nの出力信号を選択する。
第2切り替え部102は、第2遅延素子C21に対して、第2入力端子IN2から入力された第2クロック信号Ref CLKを入力する第1状態と、第1遅延素子C1Nの出力信号を入力する第2状態と、を切り替える。具体的には、第2切り替え部102はマルチプレクサーである。
第2切り替え部102は、制御部701から入力される第2選択信号MUXB_CONに基づいて第2入力端子IN2から入力される第2クロック信号Ref CLKと第1遅延素子C1Nの出力信号とのうちいずれか一方を選択する。第2切り替え部102は、選択した信号を第2遅延素子C21とFF710のクロック入力端へ入力する。たとえば、第2選択信号MUXB_CONの値が0の場合、第2切り替え部102は、第2入力端子IN2から入力される第2クロック信号Ref CLKを選択する。たとえば、第2選択信号MUXB_CONの値が1の場合、第2切り替え部102は、第1遅延素子C1Nの出力信号を選択する。
<実施例1にかかるTDC100の動作例>
つぎに、図9〜図15を用いてTDC100の全体の動作について説明する。図9〜図15において、理解の容易化のために、つぎのことを仮定する。たとえば、位相の異なる第1クロック信号Signalの立ち上がりエッジは、第2クロック信号Ref CLKの立ち上がりエッジよりも早いとする。
図9は、第1状態例を示す説明図である。制御部701は、動作開始条件を満たしたと判断した場合に動作を開始する。動作開始条件とは、たとえば、STARTの立ち上がりエッジを検出した場合である。
第1入力端子IN1には第1クロック信号Signalが入力され、第2入力端子IN2には第2クロック信号Ref CLKが入力される。制御部701は、STARTの立ち上がりエッジを検出すると、第1入力端子IN1から入力された第1クロック信号を選択させる第1選択信号MUXA_CONを第1切り替え部101に入力する。制御部701は、第2入力端子IN2から入力された第2クロック信号を選択させる第2選択信号MUXB_CONを第2切り替え部102へ入力する。
第1切り替え部101は、制御部701から入力された第1選択信号MUXA_CONの値によって第1入力端子IN1から入力された第1クロック信号Signalを選択して第1遅延素子C11およびFF710のデータ入力端に入力する。これにより、第1クロック信号Signalが複数の遅延素子C11〜C1Nに取り込まれる。
第2切り替え部102は、第2選択信号MUXB_CONの値によって第2入力端子IN2から入力された第2クロック信号Ref CLKを選択して第2遅延素子C21およびFF710のクロック入力端に入力する。これにより、第2クロック信号Ref CLKが複数の遅延素子C21〜C2Nに取り込まれる。
図10は、取り込まれた第1クロック信号Signalと第2クロック信号Ref CLKに付与される遅延量を示す説明図(その1)である。タイムチャート1000では、第1クロック信号Signalと第2クロック信号Ref CLKとが取り込まれてから第1遅延素子C11〜C1N、第2遅延素子C21〜C2Nによって付与される遅延量を示している。たとえば、矢印(a)の時刻は、TDC100の動作開始後最初に第1切り替え部101から出力された第1クロック信号Siganlの立ち上がり時刻である。矢印(b)の時刻は、TDC100の動作開始後最初に第2切り替え部102から出力された第2クロック信号Ref CLKの立ち上がり時刻である。矢印(a)の時刻と矢印(b)の時刻の時間差、すなわち、第1クロック信号Signalと第2クロック信号Ref CLKとの位相差は、φである。
図11は、第1状態から第2状態に切り替わる例を示す説明図である。制御部701は、第1遅延素子C11への入力信号であるMUXA_PASSの立ち下がりエッジを検出すると、第2遅延素子C2Nの出力信号を選択させる第1選択信号MUXA_CONを第1切り替え部101へ入力する。
制御部701は、第2遅延素子C21への入力信号であるMUXB_PASSの立ち下がりエッジを検出すると、最後段の第1遅延素子C1Nの出力信号を選択させる第2選択信号MUXB_CONを第2切り替え部102へ入力する。
第1切り替え部101は、制御部701から入力された第1選択信号MUXA_CONによって遅延素子C2Nの出力信号を選択する。第2切り替え部102は、制御部701から入力された第2選択信号MUXB_CONによって遅延素子C1Nの出力信号を選択する。
これにより、第1クロック信号Signalと第2クロック信号Ref CLKをそれぞれ第1遅延素子C11〜C1Nと第2遅延素子C21〜C2Nに取り込んだ後、第1切り替え部101と第2切り替え部102は第1状態から第2状態になる。
また、上述した場合では、制御部701は、第1クロック信号Signalおよび第2クロック信号Ref CLKのHigh期間を取り込んでいる。これに限らず、制御部701は、第1クロック信号Signalおよび第2クロック信号Ref CLKの1周期を取り込んでもよい。
図12は、取り込まれた第1クロック信号Signalと第2クロック信号Refに付与される遅延量を示す説明図(その2)である。つぎに、図12のタイムチャート1200では、第1遅延線L1を1回目に通過後の第1クロック信号Signalと、第2遅延線L2を1回目に通過後の第2クロック信号Ref CLKと、の位相差を示している。矢印(c)の時刻は、1回目に第2クロック信号Ref CLKが第2遅延線L2を通過する時刻であり、矢印(d)の時刻は、1回目に第1クロック信号Signalが第1遅延線L1を通過する時刻である。τ1>τ2である。ここでは、たとえば、第1遅延素子C11の遅延量は、ばらつきによってτ1でなく、「τ1+h」とする。そのため、矢印(a)の時刻と矢印(c)の時刻との時間差は、「φ+N×τ2」であり、矢印(a)の時刻と矢印(d)の時刻との時間差は、「N×τ1+h」である。
図13は、第1クロック信号Signalと第2クロック信号Ref CLKがループされる例1を示す説明図である。第2遅延素子C2Nの出力信号が第1切り替え部101に選択されて第1遅延素子C11に入力され、第1遅延素子C1Nの出力信号が第2切り替え部102に選択されて第2遅延素子C21に入力されることにより、ループが形成されている。
図14は、第1クロック信号Signalと第2クロック信号Ref CLKがループされる例2を示す説明図である。図14では、取り込まれた第2クロック信号Ref CLKが第2遅延線L2を通過後に第1遅延線L1を通過している。図14では、第1クロック信号Signalが第1遅延線L1を通過後に第2遅延線L2を通過している。
図15は、取り込まれた第1クロック信号Signalと第2クロック信号Ref CLKに付与される遅延量を示す説明図(その3)である。タイムチャート1500では、第2遅延線L2を1回目に通過後の第1クロック信号Signalと、第1遅延線L1を1回目に通過後の第2クロック信号Ref CLKと、の時間差を示している。矢印(e)の時刻は、第2遅延線L2を1回目に第1クロック信号Signalが通過する時刻であり、矢印(f)の時刻は、第1遅延線L1を1回目に第1クロック信号Signalが通過する時刻である。
矢印(a)の時刻と矢印(e)の時刻との時間差は、「(N×τ1+h)+N×τ2」である。矢印(a)の時刻と矢印(f)の時刻との時間差は、「φ+N×τ2+(N×τ1+h)」である。第1クロック信号Signalの立ち上がりと、第2クロック信号Ref CLKの立ち上がりの時間差は、第1遅延素子C11の遅延量がばらついたとしても、形成されたループをそれぞれが一周することにより、入力時と同一の遅延差φになる。
したがって、各遅延素子の遅延量がPVTによってばらついたとしても、位相差検出の精度劣化を抑えることができる。第2状態が維持されることにより、ループが維持されるため、第1クロック信号Signalと第2クロック信号Ref CLKの位相差が何回も再現される。
(実施例2)
つぎに、実施例2にかかるTDCは、第2切り替え部102と、第2遅延素子C21との間に、可変の第3遅延素子が設けられ、第3遅延素子の遅延量を変化させることにより、精度の高い位相差を検出することができる。
図16は、実施例2にかかるTDCを示す説明図である。TDC1600は、第1切り替え部101と、第2切り替え部102と、第1遅延素子C11〜C1Nと、第2遅延素子C21〜C2Nと、FF710〜71Nと、第3遅延素子C31と、第3遅延素子C32と、制御部701と、を有している。
第3遅延素子C31は、第1切り替え部101と第1遅延素子C11との間に設けられている。具体的には、第3遅延素子C31は、第1切り替え部101によって入力された信号を遅延させて第1遅延素子C11とFF710のデータ入力端へ入力する。
第3遅延素子C32は、第2切り替え部102と第2遅延素子C21との間に設けられている。具体的には、第3遅延素子C32は、第1切り替え部101によって入力された信号を遅延させて第2遅延素子C21とFF710のクロック入力端へ入力する。
図16の例では、第3遅延素子C32の遅延量τ4は可変であり、制御部701は、制御信号T4_CONに基づいて第3遅延素子C32の遅延量τ4を増減させることができる。図16の例では第3遅延素子C32の遅延量τ4を可変としているが、これに限らず、第3遅延素子C31の遅延量τ3を可変としてもよい。第3遅延素子C31の遅延量τ3が可変の場合におけるTDCは、実施例3に示す。
図17は、第3遅延素子C32の具体例を示す説明図である。第3遅延素子C32は、基本遅延素子と、容量群と、スイッチ群と、を有している。容量群の容量とスイッチ群のスイッチとはそれぞれ対応付けられている。制御信号T4_CONの値によってスイッチ群のスイッチのオン状態とオフ状態が切り替えられてオン状態のスイッチに対応した容量分の遅延量が第3遅延素子C32の遅延量τ4に加わる。これにより、制御部701は、第3遅延素子C32の遅延量を変化させることができる。
制御信号T4_CONは、たとえば、Nビットの信号である。制御信号T4_CONの各ビットの信号で調整可能な遅延量は、制御信号T4_CONの最下位ビットから最上位ビットまでの順に2倍ずつ異なっていてもよい。または、たとえば、制御信号T4_CONの各ビットの信号で調整可能な遅延量は、すべて同一であってもよい。
図18は、位相差x1Δτと最小の増加量y1αの検出例を示す説明図である。図18では、制御部701は第3遅延素子C32の遅延量τ4を調整することにより、Coarse遅延量とFine遅延量を検出する例を示す。
上述したように、位相差φは第1クロック信号Signalの立ち上がりエッジと第2クロック信号Ref CLKの立ち上がりエッジとの時間差である。第1クロック信号Signalが第1遅延線L1を1回通過し、第2クロック信号Ref CLKが第2遅延線L2を1回通過することによって、COMP<N:0>の値が決まる。
波形図1801では、第1状態における第1クロック信号Signalと、第2クロック信号Ref CLKと、の位相差を示している。波形図1801の上に示している値はそれぞれCOMP<N:0>の値である。制御部701は、FF710〜71Nに記憶された値をデコードして得られる第1状態での位相差を検出する。具体的には、制御部701は、COMP<N:0>の最下位ビットから順に0から1になる(立ち上がり)までの期間をカウントしてデコードする。デコード結果xは5である。したがって、Coarse遅延量は、x×Δτ(Δτ=τ1−τ2)で表されるため、5Δτである。
制御部701は、第2クロック信号が第2遅延素子C21〜C2N、第1切り替え部101、第1遅延素子C11〜C1Nを通過して第2切り替え部102を通過した後に、第3遅延素子C32の第1状態での遅延量に対する第1増加量を変化させる。
具体的には、制御部701は、第3遅延素子C32の出力MUXB_PASSの立ち上がりエッジを検出する都度、B_FALLをカウントアップする。B_FALLは変数である。B_FALLの値が奇数の場合、制御部701は、第1クロック信号Signalが第1遅延線L1を通過していると判断する。B_FALLの値が偶数の場合、制御部701は、第1クロック信号Signalが第2遅延線L2を通過していると判断する。B_FALLの値が偶数の場合に、制御部701は、制御信号T4_CONの値を変化させる。これにより、制御部701は、第2クロック信号がループを一巡した後に、第3遅延素子C32の第1状態での遅延量に対する第1増加量を変化させることができる。
そして、制御部701は、変化させた第1増加量の中で、FF710〜71Nに記憶された値をデコードして得られた位相差が第1状態での位相差x1よりも小さくなる最小の第1増加量y1αを特定する。増加量の変化については、特に限定していない。たとえば、制御部701は、増加量を増加可能な最小量ごとに徐々に増加させてもよいし、増加量を増加可能な最大値に変化させた後、減少させてもよい。
波形図1802では、第3遅延素子C32の第1状態での遅延量に対する増加量が1αの場合を示している。第1状態での位相差から最小の増加量を減算した位相差と、増加量が1αの場合における位相差と、は、いずれも5Δτであり、一致している。
波形図1803では、第3遅延素子C32の第1状態での遅延量に対する増加量が3αの場合を示している。第1状態での位相差x1Δτから最小の第1増加量y1αを減算した位相差は、5Δτであり、増加量が3αの場合における位相差は、4Δτである。ここでは、制御部701は、変化させた増加量の中で、FF710〜71Nに記憶された値をデコードして得られた位相差が第1状態での位相差x1Δτよりも小さくなる最小の第1増加量y1αとして3αを特定する。
制御部701は、第1状態での位相差x1Δτから最小の第1増加量y1αを減算した位相差φを算出する。具体的には、制御部701は、「φ=5Δτ−3α」を算出する。そして、出力部OUTは、制御部701によって算出された位相差を示す情報を出力する。
また、図16の例では、遅延素子τ4の遅延量τ4は、制御信号T4_CONの値が1ビット増加するごとに1αずつ増加するが、上述したように、T4_CONの値が1ビット増加するごとに調整可能な遅延量が2倍になってもよい。たとえば、調整可能な遅延量が16αである場合、最初に8αが増加される。つぎに、4αが増加され、2αが増加される。この場合、制御部701は、log2×B回でΔφを検出することができる。Bは遅延可能総遅延量である。たとえば、「B=16」であれば、制御部701は、最大でも4回でΔφの値を得られる。
(実施例2にかかる制御部701が行う制御処理手順例1)
図19〜図23は、実施例2にかかる制御部701が行う制御処理手順例1を示すフローチャートである。制御処理手順例1では、制御信号T4_CONの各ビットの信号で調整可能な遅延量は、制御信号T4_CONの最下位ビットから最上位ビットまでの順に2倍ずつ異なっている。まず、図19および図20について説明する。制御部701は、STARTの立ち上がりエッジを検出したか否かを判断する(ステップS1901)。STARTの立ち上がりエッジが検出されていない場合(ステップS1901:No)、ステップS1901へ戻る。
一方、STARTの立ち上がりエッジが検出された場合(ステップS1901:Yes)、制御部701は、MUXA_CON=0、MUXB_CON=0にする(ステップS1902)。これにより、第1切り替え部101は、第1選択信号MUXA_CONの値に基づいて第1クロック信号Signalを選択して出力することにより、第1状態になる。第2切り替え部102は、第2選択信号MUXB_CONの値に基づいて第2クロック信号Ref CLKを選択して出力することにより、第1状態になる。制御部701による第1状態から第2状態への変化は、図21および図22に示す。
つぎに、制御部701は、B_FALL=0とし(ステップS1903)、T4_CON=0とする(ステップS1904)。ステップS1904によって、T4_CONのすべてのビットの値が0に設定される。
そして、制御部701は、MUXB_PASSの立ち下がりエッジを検出したか否かを判断する(ステップS1905)。MUXB_PASSの立ち下がりエッジが検出されていない場合(ステップS1905:No)、ステップS1905へ戻る。一方、MUXB_PASSの立ち下がりエッジが検出された場合(ステップS1905:Yes)、制御部701は、B_FALL=B_FALL+1とする(ステップS1906)。
制御部701は、B_FALLが2であるか否かを判断する(ステップS1907)。B_FALLが2でない場合(ステップS1907:No)、制御部701は、COMP_ARRAY(1)=COMP<N:0>とし(ステップS1908)、COMP_ARRAY(1)をデコードして位相差x1Δτを検出する(ステップS1909)。
一方、B_FALLが2の場合(ステップS1907:Yes)、制御部701は、M=N−1とし(ステップS1910)、y1=2^(M)とする(ステップS1911)。「^」は乗数を示している。制御部701は、T4_CON<M>=1とする(ステップS1912)。ここでは、Mが最大値であるため、T4_CONの最上位ビットが1に設定される。
そして、制御部701は、MUXB_PASSの立ち下がりエッジを検出したか否かを判断する(ステップS1913)。MUXB_PASSの立ち下がりエッジが検出されていない場合(ステップS1913:No)、ステップS1913へ戻る。一方、MUXB_PASSの立ち下がりエッジが検出された場合(ステップS1913:Yes)、制御部701は、B_FALL=B_FALL+1とする(ステップS1914)。
つぎに、制御部701は、B_FALLが偶数か否かを判断する(ステップS1915)。B_FALLが偶数でない場合(ステップS1915:No)、ステップS1913へ戻る。B_FALLが偶数の場合(ステップS1915:Yes)、制御部701は、M=M−1とする(ステップS1916)。制御部701は、M≧0であるか否かを判断する(ステップS1917)。
M≧0の場合(ステップS1917:Yes)、制御部701は、COMP_ARRAY(X)をデコードして位相差を検出する(ステップS1918)。COMP_ARRAY(X)は、図23のフローチャートに示すが、XはB_FALLであり、DL2_ENDの立ち上がりエッジが検出されたときのCOMP<N:0>の値が代入されている。制御部701は、COMP_ARRAY(X)をデコードして得られる位相差と、位相差x1Δτと、を比較する(ステップS1919)。
同一の場合(ステップS1919:=)、制御部701は、y1=y1+2^(M)とし(ステップS1921)、ステップS1912へ移行する。COMP_ARRAY(X)をデコードして得られる位相差が位相差x1Δτより小さい場合(ステップS1919:<)、制御部701は、T4_CON<M+1>=0とし(ステップS1920)、ステップS1912へ移行する。制御処理手順例1では、COMP_ARRAY(X)をデコードして得られる位相差が位相差x1Δτより大きい場合が発生しない。
一方、M≧0でない場合(ステップS1917:No)、制御部701は、φ=x1Δτ−y1αとし(ステップS1922)、一連の処理を終了する。第3遅延素子C32の遅延量τ4の増加方法は、種々変更可能である。
つぎに、図21について説明する。制御部701は、開始条件を満たしたか否かを判断する(ステップS2101)。ステップS2101において、開始条件とは、ステップS1902の処理の実行である。ステップS2102〜S2103に示す処理は、ステップS1902の処理の実行後に行われる。開始条件が満たされていない場合(ステップS2101:No)、ステップS2101へ戻る。
一方、開始条件が満たされた場合(ステップS2101:Yes)、制御部701は、MUXA_PASSの立ち下がりエッジを検出したか否かを判断する(ステップS2102)。MUXA_PASSの立ち下がりエッジが検出されていない場合(ステップS2102:No)、ステップS2102へ戻る。
一方、MUXA_PASSの立ち下がりエッジが検出された場合(ステップS2102:Yes)、制御部701は、MUXA_CON=1とし(ステップS2103)、一連の処理を終了する。これにより、第1切り替え部101は、第1選択信号MUXA_CONの値に沿ってBinの信号を選択する。MUXAのBinの信号は、第2遅延線L2の最終段の第2遅延素子C2Nの出力信号である。これにより、制御部701は、第1クロック信号Signalの半周期分であるHighの期間をTDC1600内に取り込んでいる。
つぎに、図22について説明する。制御部701は、開始条件を満たしたか否かを判断する(ステップS2201)。ステップS2201において、開始条件とは、ステップS1902の処理の実行である。ステップS2202〜S2203に示す処理は、ステップS1902の処理の実行後に行われる。ステップS2201において、開始条件が満たされていない場合(ステップS2201:No)、ステップS2201へ戻る。
一方、開始条件が満たされた場合(ステップS2201:Yes)、制御部701は、MUXB_PASSの立ち下がりエッジを検出したか否かを判断する(ステップS2202)。MUXB_PASSの立ち下がりエッジが検出されていない場合(ステップS2202:No)、ステップS2202へ戻る。
一方、MUXB_PASSの立ち下がりエッジが検出された場合(ステップS2202:Yes)、制御部701は、MUXB_CON=1とし(ステップS2203)、一連の処理を終了する。これにより、第2切り替え部102は、第2選択信号MUXB_CONの値に基づいて第1遅延線L1の最終段の遅延素子の出力信号を選択して出力する。これにより、制御部701は、第2クロック信号Ref CLKの半周期分であるHighの期間をTDC1600内に取り込んでいる。
つぎに、図23について説明する。制御部701は、B_FALL≧1であるか否かを判断する(ステップS2301)。B_FALL≧1でない場合(ステップS2301:No)、ステップS2301へ戻る。
一方、B_FALL≧1である場合(ステップS2301:Yes)、制御部701は、DL2_ENDの立ち上がりエッジを検出したか否かを判断する(ステップS2302)。DL2_ENDの立ち上がりエッジが検出されていない場合(ステップS2302:No)、ステップS2302へ戻る。
DL2_ENDの立ち上がりエッジが検出された場合(ステップS2302:Yes)、制御部701は、X=B_FALLとし(ステップS2303)。COMP_ARRAY(X)=COMP<N:0>とする(ステップS2304)。そして、制御部701は、終了条件を満たしたか否かを判断する(ステップS2305)。終了条件としては、たとえば、図20に示すステップS1922の処理が実行された場合が挙げられる。
終了条件が満たされていない場合(ステップS2305:No)、ステップS2302へ戻る。一方、終了条件が満たされた場合(ステップS2305:Yes)、一連の処理を終了する。
(実施例2にかかる制御部701が行う制御処理手順例2)
図24および図25は、実施例2にかかる制御部701が行う制御処理手順例2を示す説明図である。制御処理手順例2では、制御信号T4_CONの各ビットの信号で調整可能な遅延量は、すべて同一である。制御処理手順例2では、第1切り替え部101と第2切り替え部102の切り替えタイミングは制御処理手順例1の場合と同一であるため、詳細な説明を省略する。ステップS2401〜S2409は、それぞれ図19に示したステップS1901〜S1909と同一であるため、詳細な説明を省略する。
ステップS2407において、B_FALLが2の場合(ステップS2407:Yes)、制御部701は、M=N−1とし(ステップS2410)、y1=1とする(ステップS2411)。つぎに、制御部701は、T4_CON<M>=1とし(ステップS2412)、MUXB_PASSの立ち下がりエッジを検出したか否かを判断する(ステップS2413)。MUXB_PASSの立ち下がりエッジが検出されていない場合(ステップS2413:No)、ステップS2413へ戻る。
MUXB_PASSの立ち下がりエッジが検出された場合(ステップS2413:Yes)、制御部701は、B_FALL=B_FALL+1とし(ステップS2414)、B_FALLが偶数か否かを判断する(ステップS2415)。B_FALLが奇数の場合(ステップS2415:No)、ステップS2413へ戻る。一方、B_FALLが偶数の場合(ステップS2415:Yes)、制御部701は、M=M−1とし(ステップS2416)、M≧0であるか否かを判断する(ステップS2417)。
M≧0である場合(ステップS2417:Yes)、制御部701は、COMP_ARRAY(X)をデコードして位相差を検出する(ステップS2418)。制御部701は、COMP_ARRAY(X)をデコードして得られる位相差と、位相差x1Δτと、を比較する(ステップS2419)。同一の場合(ステップS2419:=)、制御部701は、y1=y1+1とし(ステップS2421)、ステップS2412へ戻る。
一方、COMP_ARRAY(X)をデコードして得られる位相差が、位相差x1Δτより小さい場合(ステップS2419:<)、制御部701は、T4_CON<M+1>=0とし(ステップS2420)、ステップS2412へ移行する。
ステップS2417において、M≧0でない場合(ステップS2417:No)、制御部701は、φ=x1Δτ−y1αとし(ステップS2422)、一連の処理を終了する。
また、第1状態から第2状態へ切り替える処理、COMP<N:0>をCOMP_ARRAY(X)に代入する処理については、制御処理手順の例1と同一であるため、詳細な説明を省略する。
(実施例2にかかる制御部701が行う制御処理手順例3)
図26〜図31は、実施例2にかかる制御部701が行う制御処理手順例3を示すフローチャートである。制御処理手順例3では、制御信号T4_CONの各ビットの信号で調整可能な遅延量は、制御信号T4_CONの最下位ビットから最上位ビットまでの順に2倍ずつ異なっている。制御処理手順例3では、制御部701は、第1クロック信号Signalおよび第2クロック信号Ref CLKをそれぞれ1周期分取り込む。
まず、図26〜図28について説明する。制御部701は、STARTの立ち上がりエッジを検出したか否かを判断する(ステップS2601)。STARTの立ち上がりエッジが検出されていない場合(ステップS2601:No)、ステップS2601へ戻る。
一方、STARTの立ち上がりエッジが検出された場合(ステップS2601:Yes)、制御部701は、MUXA_CON=0、MUXB_CON=0にする(ステップS2602)。これにより、第1切り替え部101は、第1選択信号MUXA_CONの値に基づいて第1クロック信号Signalを選択して出力することにより、第1状態になる。第2切り替え部102は、第2選択信号MUXB_CONの値に基づいて第2クロック信号Ref CLKを選択して出力することにより、第1状態になる。制御部701による第1状態から第2状態への変化は、図29および図30に示す。
つぎに、制御部701は、R=1とし(ステップS2603)、B_RISE=0とし(ステップS2604)、制御部701は、MUXB_PASSの2番目の立ち上がりエッジを検出したか否かを判断する(ステップS2605)。制御処理手順例3では、第1クロック信号Signalおよび第2クロック信号Ref CLKをそれぞれ1周期分取り込んでいるため、取り込まれたクロック信号が第1遅延線L1、第2遅延線L2を1回通過するだけで、立ち上がりエッジが2回ある。そのため、たとえば、制御部は、立ち上がりエッジをカウントして、2番目の立ち上がりエッジであるか否かを判断する。
MUXB_PASSの2番目の立ち上がりエッジが検出されていない場合(ステップS2605:No)、ステップS2605へ戻る。一方、MUXB_PASSの2番目の立ち上がりエッジが検出された場合(ステップS2605:Yes)、制御部701は、B_RISE=B_RISE+1とする(ステップS2606)。
制御部701は、B_RISEが2であるか否かを判断する(ステップS2607)。B_RISEが2でない場合(ステップS2607:No)、制御部701は、COMP_ARRAY(1)=COMP<N:0>とし(ステップS2608)、COMP_ARRAY(1)を1番目の立ち上がりに基づいてデコードして位相差x11×Δτを検出する(ステップS2609)。制御部701は、COMP_ARRAY(1)を2番目の立ち上がりに基づいてデコードして位相差x12×Δτを検出し(ステップS2610)、ステップS2605に戻る。
一方、B_RISEが2の場合(ステップS2607:Yes)、制御部701は、T4_CON=0とする(ステップS2611)。ステップS2611によって、T4_CONのすべてのビットの値が0に設定される。制御部701は、M=N−1とし(ステップS2612)、y1R=2^(M)とする(ステップS2613)。
制御部701は、T4_CON<M>=1とする(ステップS2614)。ここでは、Mが最大値であるため、T4_CONの最上位ビットが1に設定される。制御部701は、MUXB_PASSの2番目の立ち上がりエッジを検出したか否かを判断する(ステップS2615)。MUXB_PASSの2番目の立ち上がりエッジが検出されていない場合(ステップS2615:No)、ステップS2615へ戻る。一方、MUXB_PASSのR番目の立ち上がりエッジが検出された場合(ステップS2615:Yes)、制御部701は、B_RISE=B_RISE+1とする(ステップS2616)。
つぎに、制御部701は、B_RISEが偶数か否かを判断する(ステップS2617)。B_RISEが偶数でない場合(ステップS2617:No)、ステップS2615へ戻る。B_RISEが偶数の場合(ステップS2617:Yes)、制御部701は、M=M−1とする(ステップS2618)。制御部701は、M≧0であるか否かを判断する(ステップS2619)。
M≧0の場合(ステップS2619:Yes)、制御部701は、COMP_ARRAY(X)のR番目の立ち上がりに基づいてデコードして位相差を検出する(ステップS2620)。COMP_ARRAY(X)は、図31のフローチャートに示すが、DL2_ENDの立ち上がりエッジが検出されたときのCOMP<N:0>の値が代入されている。XはB_RISEである。制御部701は、COMP_ARRAY(X)のR番目の立ち上がりに基づいてデコードして得られる位相差と、位相差x1RΔτと、を比較する(ステップS2621)。
同一値の場合(ステップS2621:=)、制御部701は、y1R=y1R+2^(M)とし(ステップS2623)、ステップS2614へ移行する。COMP_ARRAY(X)のR番目の立ち上がりに基づいてデコードして得られる位相差が、位相差x1RΔτより小さい場合(ステップS2621:<)、制御部701は、T4_CON<M+1>=0とし(ステップS2622)、ステップS2614へ移行する。
一方、M≧0でない場合(ステップS2619:No)、制御部701は、φR=x1RΔτ−y1Rαとし(ステップS2624)、R=R+1とし(ステップS2625)、R>2であるか否かを判断する(ステップS2626)。制御部701は、R>2でない場合(ステップS2626:No)、ステップS2611へ戻る。一方、制御部701は、R>2である場合(ステップS2626:Yes)、一連の処理を終了する。第3遅延素子C32の遅延量τ4の増加方法は、種々変更可能である。
つぎに、図29について説明する。図29では、制御部701は、第1切り替え部101を第1状態から第2に状態にする。制御部701は、開始条件を満たしたか否かを判断する(ステップS2901)。ステップS2901において、開始条件とは、ステップS2602の処理の実行である。ステップS2902〜S2903に示す処理は、ステップS2602の処理の実行後に行われる。開始条件が満たされていない場合(ステップS2901:No)、ステップS2901へ戻る。
一方、開始条件が満たされた場合(ステップS2901:Yes)、制御部701は、MUXA_PASSの2番目の立ち上がりエッジを検出したか否かを判断する(ステップS2902)。MUXA_PASSの2番目の立ち上がりエッジが検出されていない場合(ステップS2902:No)、ステップS2902へ戻る。
一方、MUXA_PASSの2番目の立ち上がりエッジが検出された場合(ステップS2902:Yes)、制御部701は、第1選択信号MUXA_CON=1とし(ステップS2903)、一連の処理を終了する。これにより、第1切り替え部101は、第1選択信号MUXA_CONの値に沿って第2遅延線L2の最終段の遅延素子の出力信号を選択して出力する。これにより、制御部701は、第1クロック信号Signalの半周期分であるHighの期間をTDC1600内に取り込んでいる。
つぎに、図30について説明する。図30では、制御部701は、第2切り替え部102を第1状態から第2に状態にする。制御部701は、開始条件を満たしたか否かを判断する(ステップS3001)。ステップS3001において、開始条件とは、ステップS2602の処理の実行である。ステップS3002〜S3003に示す処理は、ステップS2602の処理の実行後に行われる。開始条件が満たされていない場合(ステップS3001:No)、ステップS3001へ戻る。
一方、開始条件が満たされた場合(ステップS3001:Yes)、制御部701は、MUXB_PASSの2番目の立ち上がりエッジを検出したか否かを判断する(ステップS3002)。MUXB_PASSの2番目の立ち上がりエッジが検出されていない場合(ステップS3002:No)、ステップS3002へ戻る。
一方、MUXB_PASSの2番目の立ち上がりエッジが検出された場合(ステップS3002:Yes)、制御部701は、第2選択信号MUXB_CON=1とし(ステップS3003)、一連の処理を終了する。これにより、第2切り替え部102は、第2選択信号MUXB_CONの値に基づいて第1遅延線L1の最終段の遅延素子の出力信号を選択して出力する。これにより、制御部701は、第2クロック信号Ref CLKの半周期分であるHighの期間をTDC1600内に取り込んでいる。
つぎに、図31について説明する。制御部701は、B_RISE≧1であるか否かを判断する(ステップS3101)。B_RISE≧1でない場合(ステップS3101:No)、ステップS3101へ戻る。
一方、B_RISE≧1である場合(ステップS3101:Yes)、制御部701は、DL2_ENDの2番目の立ち上がりエッジを検出したか否かを判断する(ステップS3102)。DL2_ENDの立ち上がりエッジが検出されていない場合(ステップS3102:No)、ステップS3102へ戻る。
DL2_ENDの2番目の立ち上がりエッジが検出された場合(ステップS3102:Yes)、制御部701は、X=B_RISEとし(ステップS3103)。「COMP_ARRAY(X)=COMP<N:0>」とする(ステップS3104)。そして、制御部701は、終了条件を満たしたか否かを判断する(ステップS3105)。終了条件としては、たとえば、図28に示すステップS2626がYesの場合が挙げられる。
終了条件が満たされていない場合(ステップS3105:No)、ステップS3102へ戻る。一方、終了条件が満たされた場合(ステップS3105:Yes)、一連の処理を終了する。
(実施例2にかかる制御部701が行う制御処理手順例4)
図32〜図34は、実施例2にかかる制御部701が行う制御処理手順例4を示すフローチャートである。制御処理手順例4では、制御信号T4_CONの各ビットの信号で調整可能な遅延量は、すべて同一である。制御処理手順例4では、制御部701は、第1クロック信号Signalおよび第2クロック信号Ref CLKをそれぞれ1周期分取り込む。
ステップS3201〜S3210は、それぞれ図26に示すステップS2601〜S2610と同一処理である。ステップS3211、ステップS3212、ステップS3214〜S3221は、それぞれ図27に示すステップS2611、ステップS2612、ステップS2614〜S2621と同一処理である。
ステップS3211〜S3213、ステップS3214〜S3221は、それぞれ図27に示すステップS2611〜S2613、ステップS2614〜S2621と同一処理である。ステップS3224〜S3226は、それぞれ図28に示すステップS2624〜S2626と同一処理である。
ステップS3213では、制御部701は、y1R=1とし(ステップS3213)、ステップS3214へ移行する。ステップS3223では、制御部701は、y1R=y1R+1とし(ステップS3223)、ステップS3214へ移行する。
(正規化)
上述した位相差φは、Δτと、第3遅延素子の単位遅延量であるαと、によって表されている。そこで、制御部701は、ΔτをΔτよりも少ない遅延量であるαで補正することにより、TDC1600は、位相差検出の精度を向上させることができる。さらに、制御部701は、位相差φを正規化する。これにより、TDC1600は、位相差検出の精度を向上させることができる。
正規化とは、位相差を周期によって除算することである。位相差が変化しても、1周期も同じ倍数に変化し、精度が十分得られれば、正規化された位相差の変動は少ない。たとえば、正規化された位相差が3/13であり、遅延素子の遅延量が半分になると、位相差は、6/26になり、正規化された位相差は変化しない。
図35は、実施例2における第1および第2クロックの周期の検出例を示す説明図である。波形図3501では、制御部701は、第1状態でのCOMP<N:0>をデコードして位相差x1Δτと、第1状態でのCOMP<N:0>を立ち下がりに基づきデコードして遅延量x2Δτと、を検出する。具体的には、制御部701は、第1状態でのCOMP<N:0>の最下位ビットから順に0から1になる(立ち上がり)までの期間をカウントしてデコードする。波形図3501では、x1は5であり、位相差x1Δτは5Δτである。具体的には、制御部701は、第1状態でのCOMP<N:0>の最下位ビットから順に1から0になる(立ち下がり)までの期間をカウントしてデコードする。波形図3501では、x2は10であり、遅延量x2Δτは10Δτである。
波形図3502では、制御部701は、第2クロック信号Ref CLKが第1遅延素子C1Nを通過して第2切り替え部102を通過した後に、第3遅延素子C32の第1状態での遅延量に対して増加量を変化させる。波形図3502では、制御部701は、変化させた増加量の中で、第1状態でのCOMP<N:0>を立ち下がりに基づきデコードして得られる遅延量が遅延量x2Δτより小さくなる最小の増加量y2αを特定する。波形図3502では、最小の増加量y2αは1αである。
波形図3503では、制御部701は、第2クロック信号Ref CLKが第1遅延素子C1Nを通過して第2切り替え部102を通過した後に、第3遅延素子C32の第1状態での遅延量に対して増加量を変化させる。波形図3502では、制御部701は、変化させた増加量の中で、第1状態でのCOMP<N:0>をデコードして得られる位相差が位相差x1Δτより小さくなる最小の第1増加量y1αを特定する。波形図3502では、最小の増加量y1αは3αである。
つぎに、制御部701は、以下式(1)、式(2)によって第1クロック信号および第2クロック信号の周期を特定する。
位相差φ=x1Δτ−y1α
遅延量dl=x2Δτ−y2α
High_Time=遅延量dl−位相差φ
=(x2Δτ−y2α)−(x1Δτ−y1α) ・・・(式1)
第1クロック信号および第2クロック信号の周期Period=2×High_Time ・・・(式2)
図35の例では、周期Periodは「2×((10Δτ−1α)−(5Δτ−3α))」であり、「10Δτ+4α」である。
図36は、実施例2におけるΔτの特定例を示す説明図である。図12の例では、制御部701は、Δτをαによって表す。制御部701は、変化させた増加量の中で、FF710〜71Nに記憶された値をデコードして得られた位相差が、特定された最小の第1増加量y1αを変化させた状態での位相差よりも小さくなる最小の第2増加量y3αを特定する。
具体的には、制御部701は、最小の第1増加量y1αよりも増加量を増やす。上述したように、図18の例で特定された最小の第1増加量y1αは3αであり、特定された最小の第1増加量y1αに変化させた後での位相差は4Δτである。図36では、増加量が7αでの位相差が、増加量が3αでの位相差よりも小さくなる。
そして、制御部701は、最小の第2増加量y3αから最小の第1増加量y1αを減算する。上述のΔτは、設計時にあらかじめ設定された値であるが、ここでは、Δτのより正確な値が得られる。図36の例では、Δτは7α−3αであり、4αとなる。
つぎに、制御部701は、算出された位相差を減算結果によって補正する。具体的には、制御部701は以下に示すようにΔτを4αに置き換える。
φ=5Δτ−3α
=5×4α−3α
=17α
出力部OUTは、補正後の位相差φを出力してもよい。これにより、TDC1600は、位相差検出の精度を向上させることができる。
さらに、制御部701は、第1および第2クロック信号の周期を減算結果によって補正する。具体的には、制御部701は以下に示すようにΔτを4αに置き換える。
Period=10Δτ+4α
=10×4α+4α
=44α
さらに、制御部701は、補正後の位相差を補正後の周期によって除算した位相差を算出する。具体的には、制御部701は、「除算後の位相差=補正後のφ/補正後の周期」を算出する。出力部OUTは、制御部701によって除算後の位相差を出力する。これにより、TDC1600は、位相差を正規化することができる。したがって、TDC1600は、位相差検出の精度を向上させることができる。
(実施例2にかかる制御部701による正規化処理手順)
図37は、実施例2にかかる制御部701による正規化処理手順を示すフローチャートである。まず、制御部701は、遅延量dl(x2Δτ+y2α)を検出する(ステップS3701)。ステップS3701については、図35で示した処理と同様の処理を行う。制御部701は、位相差φ(x1Δτ+y1α)を検出する(ステップS3702)。ステップS3702については、図35に示した処理と同様の処理を行う。制御部701は、最小の第2増加量y3αを検出する(ステップS3703)。ステップS3703については、図36に示した処理と同様の処理を行う。
制御部701は、High_Time=(x2Δτ+y2α)−(x1Δτ+y1α)とし(ステップS3704)、周期Period=2×High_Timeとし(ステップS3705)。制御部701は、Δτ=y3α−y1αとし(ステップS3706)、位相差φを算出されたΔτによって補正する(ステップS3707)。制御部701は、周期Periodを算出されたΔτによって補正する(ステップS3708)。
制御部701は、正規化後の位相差φ=補正後の位相差φ/補正後の周期Periodとする(ステップS3709)。そして、出力部OUTは、正規化後の位相差φを出力する。
(実施例2にかかる遅延量dlの検出処理手順例1)
図38および図39は、制御部701による遅延量dlの検出処理手順例1を示すフローチャートである。遅延量dlの検出処理手順例1では、制御信号T4_CONの各ビットの信号で調整可能な遅延量は、制御信号T4_CONの最下位ビットから最上位ビットまでの順に2倍ずつ異なっている。
図38および図39に示すステップS3801〜S3808は、それぞれ図19に示したS1901〜S1908と同一処理であるため、詳細な説明を省略する。ステップS3810〜S3817、ステップS3820は、それぞれ図20に示したステップS1910〜S1917、ステップS1920と同一処理であるため、詳細な説明を省略する。
ステップS3809では、制御部701は、COMP_ARRAY(1)を立ち下がりに基づきデコードして遅延量x2Δτを検出し(ステップS3809)、ステップS3805へ戻る。
ステップS3818では、制御部701は、COMP_ARRAY(X)を立ち下がりに基づきデコードして遅延量を検出する(ステップS3818)。そして、制御部701は、COMP_ARRAY(X)を立ち下がりに基づきデコードして得られた遅延量と、遅延量x2Δτと、を比較する(ステップS3819)。同一の場合(ステップS3819:=)、制御部701は、y2=y2+2^(M)とし(ステップS3821)、ステップS3812へ戻る。COMP_ARRAY(X)を立ち下がりに基づきデコードして得られた遅延量が、遅延量x2Δτより小さい場合(ステップS3819:<)、ステップS3820へ移行する。
ステップS3822では、制御部701は、遅延量dl=x2Δτ−y2αとし(ステップS3822)、一連の処理を終了する。
(実施例2にかかる遅延量dlの検出処理手順例2)
図40および図41は、実施例2にかかる制御部701による遅延量dlの検出処理手順例2を示すフローチャートである。遅延量dlの検出処理手順例2では、制御信号T4_CONの各ビットの信号で調整可能な遅延量は、すべて同一である。
ステップS4001〜S4009は、それぞれ図38に示したステップS3801〜S3809と同一処理であるため、詳細な説明を省略する。ステップS4010、ステップS4012〜S4020、ステップS4022は、それぞれ図39に示したステップS3810、ステップS3812〜S3820、ステップS3822と同一処理であるため、詳細な説明を省略する。
ステップS4011では、制御部701は、y2=1とし(ステップS4011)、ステップS4012へ移行する。ステップS4021では、制御部701は、y2=y2+1とし(ステップS4021)、ステップS4012へ移行する。
(実施例2にかかる最小の第2増加量y3αの検出処理手順例1)
図42〜図44は、実施例2にかかる制御部701による最小の第2増加量y3αの検出処理手順例1を示すフローチャートである。最小の第2増加量y3αの検出処理手順例1では、制御信号T4_CONの各ビットの信号で調整可能な遅延量は、制御信号T4_CONの最下位ビットから最上位ビットまでの順に2倍ずつ異なっている。
ステップS4201〜S4209は、それぞれ図19に示したステップS1901〜S1909に示した処理と同一処理であるため、詳細な説明を省略する。ステップS4210〜S4221は、それぞれ図20に示したステップS1910〜S1821に示した処理と同一処理であるため、詳細な説明を省略する。
ステップS4217において、M≧0でない場合(ステップS4217:No)、制御部701は、phd=COMP_ARRAY(X)をデコードして得られる位相差とし(ステップS4222)、M=N−1とする(ステップS4223)。制御部701はy3=2^(N)とし(ステップS4224)、T4_CON<M>=1とし(ステップS4225)、MUXB_PASの立ち下がりエッジを検出したか否かを判断する(ステップS4226)。
MUXB_PASSの立ち下がりエッジが検出されていない場合(ステップS4226:No)、ステップS4226へ戻る。一方、MUXB_PASの立ち下がりエッジが検出された場合(ステップS4226:Yes)、制御部701は、B_FALL=B_FALL+1とし(ステップS4227)、B_FALLが偶数か否かを判断する(ステップS4228)。
B_FALLが偶数でない場合(ステップS4228:No)、ステップS4226へ戻る。B_FALLが偶数の場合(ステップS4228:Yes)、制御部701は、M=M−1とし(ステップS4229)、COMP_ARRAY(X)をデコードして位相差を検出する(ステップS4230)。
制御部701は、COMP_ARRAY(X)をデコードして得られる位相差と、位相差phd+Δτと、を比較する(ステップS4231)。COMP_ARRAY(X)をデコードして得られる位相差が、位相差phd+Δτよりも小さい場合(ステップS4231:<)、制御部701は、y3=y3+2^(M)とし(ステップS4232)、ステップS4225へ戻る。同一値の場合(ステップS4231:=)、一連の処理を終了する。制御部701は、終了時のy3が最小の第2遅延量y3として検出する。
(実施例2にかかる最小の第2増加量y3αの検出処理手順例2)
図45〜図47は、実施例2にかかる制御部701による最小の第2増加量y3αの検出処理手順例2を示すフローチャートである。最小の第2増加量y3αの検出処理手順例2では、制御信号T4_CONの各ビットの信号で調整可能な遅延量は、すべて同一である。
ステップS4501〜S4509は、それぞれ図24に示すステップS2401〜S2409と同一処理であるため、詳細な説明を省略する。ステップS4510〜S4521は、それぞれ図25に示すステップS2410〜S2421と同一処理であるため、詳細な説明を省略する。ステップS4522、ステップS4523、ステップS4525〜S4531は、それぞれ図44に示したステップS4222、ステップS4223、ステップS4225〜S4231と同一処理であるため、詳細な説明を省略する。
ステップS4524では、制御部701は、y3=1とし(ステップS4524)、ステップS4525へ移行する。ステップS4532では、制御部701は、y3=y3+1とし(ステップS4532)、ステップS4525へ移行する。
(実施例3)
実施例3にかかるTDCは、第1切り替え部101と、第1遅延素子C11との間に、可変の第3遅延素子C31が設けられ、第3遅延素子C31の遅延量を変化させることにより、精度の高い位相差を検出することができる。
図48は、実施例3にかかるTDCを示す説明図である。TDC4800は、第1切り替え部101と、第2切り替え部102と、第1遅延素子C11〜C1Nと、第2遅延素子C21〜C2Nと、FF710〜71Nと、第3遅延素子C31と、第3遅延素子C32と、制御部701と、を有している。
第3遅延素子C31は、第1切り替え部101と第1遅延素子C11との間に設けられている。具体的には、第3遅延素子C31は、第1切り替え部101によって入力された信号を遅延させて第1遅延素子C11とFF710のデータ入力端へ入力する。
第3遅延素子C32は、第2切り替え部102と第2遅延素子C21との間に設けられている。具体的には、第3遅延素子C32は、第1切り替え部101によって入力された信号を遅延させて第2遅延素子C21とFF710のクロック入力端へ入力する。
第3遅延素子C31の遅延量τ3は可変であり、制御部701は、制御信号T3_CONに基づいて第3遅延素子C31の遅延量τ3を増減させることができる。第3遅延素子C31の具体例は、図17で示した第3遅延素子C32と同一であってもよい。
実施例3における第1状態から第2状態への切り替えは、実施例2における第1状態から第2状態への切り替えと同一処理である。
具体的には、制御部701は、MUXA_PASSの立ち下がりエッジを検出する都度、A_FALLをカウントアップする。A_FALLは変数である。A_FALLの値が偶数の場合、制御部701は、第1クロック信号Signalが第2遅延線L2を通過していると判断する。A_FALLの値が偶数の場合に、制御部701は、制御信号T3_CONの値を変化させる。これにより、制御部701は、第1クロック信号がループを一巡した後に、第3遅延素子C32の第1状態での遅延量に対する第1増加量を変化させることができる。
実施例3における位相差φの検出処理は、位相差φの検出処理と同一処理であるため、詳細な説明を省略する。
(実施例4)
実施例4では、複数の第1遅延素子の各遅延量と複数の第2遅延素子の各遅延量が可変な場合における位相差の検出について示す。実施例4では、実施例1〜3で示した構成と同一構成については詳細な説明を省略する。
図49は、実施例4にかかるTDCを示す説明図である。TDC4900は、第1切り替え部101と、第2切り替え部102と、第1遅延素子C10〜C1Nと、第2遅延素子C20〜C2Nと、FF710〜71Nと、制御部701と、を有している。
第1遅延素子C10は、第1切り替え部101と、第1遅延素子C11との間に設けられている。第2遅延素子C20は、第2切り替え部102と、第2遅延素子C21との間に設けられている。第1遅延素子C10〜C1Nと、第2遅延素子C20〜C2Nとは、制御部701からの制御信号によって遅延量が可変な遅延素子である。
図50は、第1遅延素子C10〜C1Nと第2遅延素子C20〜C2Nの詳細例を示す説明図である。第1遅延素子C1i(i=0〜N)は、遅延素子と、遅延容量と、制御信号T1_CON<i>によってオン状態とオフ状態を切り替え可能なスイッチ5001−iと、を有している。第2遅延素子C2iは、遅延素子と、遅延容量と、制御信号T2_CON<i>によってオン状態とオフ状態を切り替え可能なスイッチ5002−iと、を有している。
図51は、第1遅延素子C1iの遅延量と第2遅延素子C2iの遅延量との差分を示す説明図である。テーブルでは、制御信号T2_CON<i>の値と制御信号T1_CON<i>の値とによって定まる第1遅延素子C1iの遅延量と第2遅延素子C2iの遅延量との遅延差を示している。たとえば、制御信号T2_CON<i>がLであり、かつ制御信号T1_CON<i>がLの場合、第1遅延素子C1iの遅延量は第1遅延量になり、第1遅延素子C1iの遅延量と第2遅延素子C2iの遅延量との差分は、第1差分であるΔτである。たとえば、制御信号T2_CON<i>がLであり、かつ制御信号T1_CON<i>がHの場合、第1遅延素子C1iの遅延量は第2遅延量になり、第1遅延素子C1iの遅延量と第2遅延素子C2iの遅延量の差分は、第2差分であるαである。
制御信号T1_CONの値と制御信号T2_CONの値の組み合わせは、図51のテーブルで示す例に限らず、2つの遅延素子の遅延差が少なくともΔτとαとに設定できればよいため、設計時に種々変更可能である。
図52は、実施例3における位相差の検出例を示す説明図である。制御部701による第1切り替え部101と第2切り替え部102を第1状態から第2状態に変更する処理は、実施例1で説明した処理と同一であるため、詳細な説明を省略する。
制御部701は、第1状態において、第1遅延素子C10〜C1Nの各スイッチを制御することにより、第1遅延素子C10〜C1Nの遅延量を第1遅延量にする。これにより、第1遅延素子C10〜C1Nの各遅延量と、第1遅延素子C10〜C1Nのそれぞれに対応する第1遅延素子C10〜C1Nの各遅延量と、の差分は、第1差分であるΔτになる。
制御部701は、第2クロック信号Ref CLKが第1遅延線L1を通過して第2切り替え部102を通過することによってループを一巡したか否かを判断する。第2クロック信号Ref CLKが一巡した後に、制御部701は、第1遅延素子C10〜C1Nから、第1遅延素子C10からの段数と第1差分を乗じた遅延量が、第1状態での位相差より第1差分小さい位相差よりも大きくなる遅延素子を特定する。
具体的には、制御部701は、MUXB_PASSの立ち下がりエッジを検出する都度、B_FALLをカウントアップする。B_FALLが2の場合、制御部701は、第2クロック信号Ref CLKが第1遅延線L1を通過して第2切り替え部102を通過したと判断する。そして、制御部701は、第1遅延素子C10〜C1Nの各出力信号A0〜ANの立ち下がりエッジを検出する。
制御部701は、第1遅延素子Ciの各出力信号Aiの立ち下がりエッジが検出された場合、第1遅延素子C10からの段数(i+1)とΔτを乗じた遅延量が、第1状態での位相差x1ΔτよりΔτ小さい位相差よりも大きくなる第1遅延素子を特定する。制御部701は、特定された第1遅延素子の遅延量を第2遅延量に設定する。図52の例では、第1遅延素子C15〜C1Nが特定される。
制御部701は、特定された遅延素子の遅延量を第2遅延量にする。制御部701は、特定された遅延素子の遅延量を第2遅延量にしてから第2クロック信号が第2切り替え部102を通過した後に、FF710〜71Nに記憶された値をデコードして位相差を検出する。制御部701は、制御信号T1_CON<N:0>のそれぞれの値に基づいてCOMP<N:0>をデコードする。
具体的には、B_FALLが3の場合、制御部701は、COMP<N:0>を最下位ビットから、0から1になる(立ち上がり)までの期間をカウントする。たとえば、0から1になる(立ち上がり)までの期間はCOMP<0>〜COMP<5>であるとする。T1_CON<0>〜T1_CON<4>が0であれば、第1遅延素子C10〜C15の各遅延量と、それぞれ第1遅延素子C10〜C15に対応する第2遅延素子C20〜C25の各遅延量と、の差分は、Δτである。T1_CON<5>が1であれば、第1遅延素子C16の遅延量と、第1遅延素子C16に対応する第2遅延素子C26の遅延量と、の差分は、αである。よって、位相差φは4Δτ+1αである。出力部OUTは、検出された位相差φを出力する。
(制御部701による制御処理手順例)
図53および図54は、実施例4にかかる制御部701による制御処理手順例を示すフローチャートである。制御部701は、STARTの立ち上がりエッジを検出したか否かを判断する(ステップS5301)。STARTの立ち上がりエッジが検出されていない場合(ステップS5301:No)、ステップS5301へ戻る。
一方、STARTの立ち上がりエッジが検出された場合(ステップS5301:Yes)、制御部701は、MUXA_CON=0、MUXB_CON=0にする(ステップS5302)。これにより、第1切り替え部101は、第1選択信号MUXA_CONの値に基づいて第1クロック信号Signalを選択して出力することにより、第1状態になる。第2切り替え部102は、第2選択信号MUXB_CONの値に基づいて第2クロック信号Ref CLKを選択して出力することにより、第1状態になる。制御部701による第1状態から第2状態への変化は、実施例2で説明した例と同一であるため、詳細な説明を省略する。
つぎに、制御部701は、B_FALL=0とし(ステップS5303)、T1_CON<N:0>=0とし(ステップS5304)、T2_CON<N:0>=0とする(ステップS5305)。ステップS5304とステップS5305とによって、制御部701は、第1状態において第1遅延素子C10〜C1Nの遅延量と、それぞれ第2遅延素子C20〜C2Nの遅延量と、の差分がΔτになる。
そして、制御部701は、MUXB_PASSの立ち下がりエッジを検出したか否かを判断する(ステップS5306)。MUXB_PASSの立ち下がりエッジが検出されていない場合(ステップS5306:No)、ステップS5306へ戻る。一方、MUXB_PASSの立ち下がりエッジが検出された場合(ステップS5306:Yes)、制御部701は、B_FALL=B_FALL+1とする(ステップS5307)。
制御部701は、B_FALLが2であるか否かを判断する(ステップS5308)。B_FALLが2でない場合(ステップS5308:No)、制御部701は、COMP_ARRAY(1)=COMP<N:0>とし(ステップS5309)、COMP_ARRAY(1)をデコードして位相差x1Δτを検出する(ステップS5310)。
一方、B_FALLが2の場合(ステップS5308:Yes)、制御部701は、Ai(i=0〜N)の立ち上がりエッジを検出したか否かを判断する(ステップS5311−i)。Aiの立ち上がりエッジが検出されていない場合(ステップS5311−i:No)、ステップS5311−iへ戻る。Aiの立ち上がりエッジが検出された場合(ステップS5311−i:Yes)、制御部701は、(i+1)×Δτ>x1Δτ−Δτであるか否かを判断する(ステップS5312−i)。
(i+1)×Δτ>x1Δτ−Δτである場合(ステップS5312−i:Yes)、制御部701は、T1_CON<i>=1とし(ステップS5313−i)、ステップS5314へ移行する。一方、(i+1)×Δτ>x1Δτ−Δτでない場合(ステップS5312−i:No)、制御部701は、ステップS5314へ移行する。
つぎに、制御部701は、MUXB_PASSの立ち下がりエッジを検出したか否かを判断する(ステップS5314)。MUXB_PASSの立ち下がりエッジが検出されていない場合(ステップS5314:No)、ステップS5314へ戻る。MUXB_PASSの立ち下がりエッジが検出された場合(ステップS5314:Yes)、制御部701は、B_FALL=B_FALL+1とする(ステップS5315)。制御部701は、COMP_ARRAY(1)をデコードして位相差φ(x1Δτ+yα)を検出し(ステップS5316)、一連の処理を終了する。出力部OUTは、検出された位相差φを出力する。
(実施例4における正規化例)
図55および図56は、実施例4における正規化例を示す説明図である。図55では、制御部701は、実施例2で説明したように遅延量dlを検出する。そして、制御部701は、遅延量dlから位相差φを減算することにより、周期Periodを検出する。
図56では、制御部701は、最小の第2増加量y3αを検出する。制御部701は、最小の第2増加量y3αから最小の第1増加量y1αを減算して、Δτを算出する。制御部701は、位相差φと周期Periodを算出されたΔτで補正する。制御部701は、補正後の位相差φを補正後の周期Periodで除算することにより、位相差φを正規化する。出力部OUTは、正規化後の位相差φを出力する。
以上説明したように、実施例1にかかる時間対デジタル変換器は、取り込んだ2つのクロック信号が第1および第2遅延素子群を交互に通過するループを形成する。これにより、2つのクロック信号に同一遅延量が付与される。したがって、時間対デジタル変換器は、遅延素子のPVTばらつきによる位相差検出の精度劣化を抑えることができる。また、本発明にかかる時間対デジタル変換器は、PVTによるばらつきを小さくするためにDLLを利用した場合と比較して、回路が簡単である。このため、たとえば、面積を小さくすることができる。また、たとえば、消費電力を小さくすることができる。
また、実施例2および実施例3にかかる時間対デジタル変換器は、第1遅延素子群または第2遅延素子群の前段に遅延量が可変な遅延素子を有し、可変な遅延素子の遅延量を調整する。これにより、時間対デジタル変換器は、第1遅延素子の遅延量と第2遅延素子の遅延量との差分よりも小さい遅延量によって、2つのクロック信号の位相差の精度を向上させることができる。
また、実施例2および実施例3にかかる時間対デジタル変換器は、第1遅延素子の遅延量と第2遅延素子の遅延量との差分を算出し、2つのクロック信号の位相差を算出した差分によって補正する。これにより、時間対デジタル変換器による2つのクロック信号の位相差の精度を向上させることができる。
また、実施例2および実施例3にかかる時間対デジタル変換器は、位相差を正規化する。これにより、時間対デジタル変換器による2つのクロック信号の位相差の精度を向上させることができる。
また、実施例4にかかる時間対デジタル変換器は、第1遅延素子群または第2遅延素子群のいずれか一方の遅延素子群の各遅延量をスイッチによって切り替え可能である。これにより、時間対デジタル変換器は、第1遅延素子の遅延量と第2遅延素子の遅延量との差分よりも小さい遅延量によって、2つのクロック信号の位相差の精度を向上させることができる。時間対デジタル変換器による遅延量の調整処理にかかる時間を短縮することができる。
また、実施例4にかかる時間対デジタル変換器は、第1遅延素子の遅延量と第2遅延素子の遅延量との差分を算出し、2つのクロック信号の位相差を算出した差分によって補正する。これにより、時間対デジタル変換器による2つのクロック信号の位相差の精度を向上させることができる。
100,1600,4800,4900 TDC
C10〜C1N 第1遅延素子
C20〜C2N 第2遅延素子
101 第1切り替え部
102 第2切り替え部
701 制御部
C31,C32 第3遅延素子
710〜71N FF
φ 位相差
1α 最小の第1増加量
3α 最小の第2増加量

Claims (11)

  1. 直列に接続された複数の第1遅延素子と、
    前記複数の第1遅延素子のそれぞれに対応して設けられ、直列に接続された複数の第2遅延素子と、
    前記複数の第1遅延素子の最前段の第1遅延素子への入力信号の値および前記複数の第1遅延素子の各出力信号の値を、それぞれ、前記複数の第2遅延素子の最前段の第2遅延素子への入力信号および前記複数の第2遅延素子の各出力信号に同期して記憶する複数のフリップフロップと、
    前記最前段の第1遅延素子に対して、第1入力端子から入力された第1クロック信号を入力する第1状態と、前記複数の第2遅延素子のうちの最後段の第2遅延素子の出力信号を入力する第2状態と、を切り替え可能な第1切り替え部と、
    前記最前段の第2遅延素子に対して、第2入力端子から入力された第2クロック信号を入力する第1状態と、前記複数の第1遅延素子のうちの最後段の第1遅延素子の出力信号を入力する第2状態と、を切り替え可能な第2切り替え部と、
    前記第1および第2切り替え部を前記第1状態にすることにより前記第1クロック信号と前記第2クロック信号がそれぞれ前記複数の第1遅延素子と前記複数の第2遅延素子に取り込まれた後、前記第1および第2切り替え部を前記第2状態にする制御部と、
    前記第2状態において前記複数のフリップフロップに記憶された値をデコードして得られた前記第1クロック信号と前記第2クロック信号との位相差を示す情報を出力する出力部と、
    を有することを特徴とする時間対デジタル変換器。
  2. 前記第2切り替え部と前記最前段の第2遅延素子との間に設けられ、遅延量が可変な第3遅延素子を有し、
    前記制御部は、
    前記第2クロック信号が、前記複数の第2遅延素子、前記第1切り替え部、前記複数の第1遅延素子を通過して前記第2切り替え部を通過した後に、前記第3遅延素子の遅延量を変化させる制御を、少なくとも、前記第3遅延素子の前記第1状態での遅延量に対する増加量の中で、前記複数のフリップフロップに記憶された値をデコードして得られた位相差が前記第1状態での位相差よりも小さくなる最小の増加量を特定するまで行い、
    前記第1状態での位相差から前記最小の増加量を減算した位相差を算出し、
    前記出力部は、
    前記制御部によって算出された位相差を示す情報を出力することを特徴とする請求項1に記載の時間対デジタル変換器。
  3. 前記制御部は、
    前記最小の増加量(以下、「最小の第1増加量」と称する。)が特定されてから前記第2クロック信号が前記第2切り替え部を通過した後に、前記第3遅延素子の遅延量を変化させる制御を、少なくとも、前記第1状態での遅延量に対する前記最小の第1増加量よりも多い第2増加量の中で、前記複数のフリップフロップに記憶された値をデコードして得られた位相差が前記最小の第1増加量変化させた状態での位相差よりも小さくなる最小の第2増加量を特定するまで行い、
    前記最小の第2増加量から前記最小の第1増加量を減算し、
    前記算出された位相差を減算結果に基づいて補正し、
    前記出力部は、
    前記制御部による補正後の位相差を出力することを特徴とする請求項2に記載の時間対デジタル変換器。
  4. 前記制御部は、
    補正後の位相差を前記第1および第2クロック信号の周期によって正規化し、
    前記出力部は、
    前記制御部による正規化後の位相差を出力することを特徴とする請求項3に記載の時間対デジタル変換器。
  5. 前記第1切り替え部と前記最前段の第1遅延素子との間に設けられ、遅延量が可変な第3遅延素子を有し、
    前記制御部は、
    前記第1クロック信号が、前記複数の第1遅延素子、前記第2切り替え部、前記複数の第2遅延素子を通過して前記第1切り替え部を通過した後に、前記第3遅延素子の遅延量を変化させる制御を、少なくとも、前記第3遅延素子の前記第1状態での遅延量に対する増加量の中で、前記複数のフリップフロップに記憶された値をデコードして得られた位相差が前記第1状態での位相差よりも小さくなる最小の増加量を特定するまで行い、
    前記第1状態での位相差から前記最小の増加量を減算した位相差を算出し、
    前記出力部は、
    前記制御部によって算出された位相差を示す情報を出力することを特徴とする請求項1に記載の時間対デジタル変換器。
  6. 前記制御部は、
    前記最小の増加量(以下、「最小の第1増加量」と称する。)が特定されてから前記第1クロック信号が前記第1切り替え部を通過した後に、前記第3遅延素子の遅延量を変化させる制御を、少なくとも、前記第1状態での遅延量に対する前記最小の第1増加量よりも多い第2増加量の中で、前記複数のフリップフロップに記憶された値をデコードして得られた位相差が前記最小の第1増加量変化させた状態での位相差よりも小さくなる最小の第2増加量を特定するまで行い、
    前記最小の第2増加量から前記最小の第1増加量を減算し、
    前記算出された位相差を減算結果に基づいて補正し、
    前記出力部は、
    前記制御部による補正後の位相差を出力することを特徴とする請求項5に記載の時間対デジタル変換器。
  7. 前記制御部は、
    補正後の位相差を前記第1および第2クロック信号の周期によって正規化し、
    前記出力部は、
    前記制御部による正規化後の位相差を出力することを特徴とする請求項6に記載の時間対デジタル変換器。
  8. 前記第1切り替え部と前記最前段の第1遅延素子との間に設けられた第3遅延素子と、
    前記第3遅延素子に対応し、前記第2切り替え部と前記最前段の第2遅延素子との間に設けられた第4遅延素子と、
    を有し、
    前記第3遅延素子および前記複数の第1遅延素子と、前記第4遅延素子および前記複数の第2遅延素子と、のうち、いずれか一方の遅延素子群のそれぞれの遅延素子は、
    前記それぞれの遅延素子の遅延量を、前記それぞれの遅延素子の遅延量と、他方の遅延素子群のうちの前記それぞれの遅延素子に対応する遅延素子の遅延量と、の差分が、第1差分になる第1遅延量と、前記第1差分よりも小さい第2差分になる第2遅延量と、に切り替え可能なスイッチを有し、
    前記制御部は、
    前記第1状態において、前記いずれか一方の遅延素子群のそれぞれの遅延量を前記第1遅延量にし、
    前記第2クロック信号が前記複数の第2遅延素子、前記第1切り替え部、前記複数の第1遅延素子を通過して前記第2切り替え部を通過した後に、前記いずれか一方の遅延素子群から、前記いずれか一方の遅延素子群の最前段からの段数と前記第1差分を乗じた遅延量が、前記第1状態での位相差より前記第1差分小さい位相差よりも大きくなる遅延素子を特定し、
    前記特定された遅延素子の遅延量を、前記第2遅延量にし、
    前記出力部は、
    前記特定された遅延素子の遅延量を前記第2遅延量にしてから前記第2クロック信号が前記第2切り替え部を通過した後に、前記複数のフリップフロップに記憶された値をデコードして得られた位相差を示す情報を出力することを特徴とする請求項1に記載の時間対デジタル変換器。
  9. 前記制御部は、
    前記特定された遅延素子の遅延量を前記第2遅延量にした後、前記特定された遅延素子のうちの最前段の遅延素子よりも1段前の遅延素子の遅延量を、前記第2遅延量にし、
    前記いずれか一方の遅延素子群のうち前記第2遅延量である遅延素子に対応するフリップフロップが記憶した値をデコードして得られる位相差から、前記特定された遅延素子の遅延量を前記第2遅延量に設定した後の前記特定された遅延素子に対応するフリップフロップが記憶した値をデコードして得られる位相差を減算し、
    前記第2遅延量にした後に得られた位相差を減算結果に基づいて補正し、
    前記出力部は、
    前記制御部による補正後の位相差を出力することを特徴とする請求項8に記載の時間対デジタル変換器。
  10. 前記補正後の位相差を前記第1および第2クロック信号の周期によって除算した位相差を算出し、
    前記出力部は、
    前記制御部によって除算された位相差を出力することを特徴とする請求項9に記載の時間対デジタル変換器。
  11. 直列に接続された複数の第1遅延素子と、
    前記複数の第1遅延素子のそれぞれに対応して設けられ、直列に接続された複数の第2遅延素子と、
    前記複数の第1遅延素子の最前段の第1遅延素子への入力信号の値および前記複数の第1遅延素子の各出力信号の値を、それぞれ、前記複数の第2遅延素子の最前段の第2遅延素子への入力信号および前記複数の第2遅延素子の各出力信号に同期して記憶する複数のフリップフロップと、
    前記最前段の第1遅延素子に対して、第1入力端子から入力された第1クロック信号を入力する第1状態と、前記複数の第2遅延素子のうちの最後段の第2遅延素子の出力信号を入力する第2状態と、を切り替え可能な第1切り替え部と、前記最前段の第2遅延素子に対して、第2入力端子から入力された第2クロック信号を入力する第1状態と、前記複数の第1遅延素子のうちの最後段の第1遅延素子の出力信号を入力する第2状態と、を切り替え可能な第2切り替え部と、
    前記第2状態において前記複数のフリップフロップに記憶された値をデコードして得られた前記第1クロック信号と前記第2クロック信号との位相差を示す情報を出力する出力部と、
    を有する時間対デジタル変換器にアクセス可能なコンピュータが、
    前記第1および第2切り替え部を前記第1状態にすることにより前記第1クロック信号と前記第2クロック信号がそれぞれ前記複数の第1遅延素子と前記複数の第2遅延素子に取り込まれた後、前記第1および第2切り替え部を前記第2状態にする、
    処理を実行することを特徴とする制御方法。
JP2014507105A 2012-03-27 2012-03-27 時間対デジタル変換器、および制御方法 Expired - Fee Related JP5780356B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/058008 WO2013145136A1 (ja) 2012-03-27 2012-03-27 時間対デジタル変換器、および制御方法

Publications (2)

Publication Number Publication Date
JPWO2013145136A1 JPWO2013145136A1 (ja) 2015-08-03
JP5780356B2 true JP5780356B2 (ja) 2015-09-16

Family

ID=49258503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014507105A Expired - Fee Related JP5780356B2 (ja) 2012-03-27 2012-03-27 時間対デジタル変換器、および制御方法

Country Status (3)

Country Link
US (1) US8981974B2 (ja)
JP (1) JP5780356B2 (ja)
WO (1) WO2013145136A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170140150A (ko) * 2016-05-17 2017-12-20 후아웨이 테크놀러지 컴퍼니 리미티드 시간-디지털 변환기 및 디지털 위상 로킹 루프
JP7087517B2 (ja) * 2018-03-22 2022-06-21 セイコーエプソン株式会社 遷移状態取得装置、時間デジタル変換器及びa/d変換回路
US10965442B2 (en) * 2018-10-02 2021-03-30 Qualcomm Incorporated Low-power, low-latency time-to-digital-converter-based serial link
TWI706635B (zh) * 2019-07-25 2020-10-01 國立中山大學 抗製程漂移之時間數位轉換器及其製程漂移偵測器
KR20210054651A (ko) * 2019-11-05 2021-05-14 삼성전자주식회사 타이밍 데이터 수집 장치
US20230223943A1 (en) * 2020-06-17 2023-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Devices and method for frequency determination
JP2022032287A (ja) 2020-08-11 2022-02-25 キオクシア株式会社 タイミング検出回路、半導体装置及びメモリシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835552A (en) * 1995-11-13 1998-11-10 Matsushita Electric Industrial Co.,Ltd. Time counting circuit and counter circuit
TW200539574A (en) * 2004-05-21 2005-12-01 Chung Shan Inst Of Science Circuitry and method for measuring time interval with ring oscillator
US7106239B1 (en) * 2005-08-03 2006-09-12 Qualcomm Incorporated Rail-to-rail delay line for time analog-to-digital converters
JP4531104B2 (ja) * 2006-02-17 2010-08-25 富士通株式会社 信号処理方法、信号処理装置及びアナログ/デジタル変換装置
KR100982103B1 (ko) 2006-02-17 2010-09-13 베리지 (싱가포르) 피티이. 엘티디. 시간-디지털 변환기, 시간-디지털 변환 방법 및 컴퓨터 판독가능한 저장 매체
KR100921815B1 (ko) * 2007-06-18 2009-10-16 주식회사 애트랩 지연시간 측정회로 및 지연시간 측정 방법
US8090068B2 (en) 2008-04-22 2012-01-03 Qualcomm, Incorporated System and method of calibrating power-on gating window for a time-to-digital converter (TDC) of a digital phase locked loop (DPLL)
US8138958B2 (en) * 2009-01-30 2012-03-20 Auburn University Vernier ring time-to-digital converters with comparator matrix
JP2010183176A (ja) 2009-02-03 2010-08-19 Olympus Corp A/d変換装置、固体撮像装置、および固体撮像システム
JP5106583B2 (ja) * 2010-06-09 2012-12-26 株式会社半導体理工学研究センター 時間デジタル変換回路、及びその校正方法

Also Published As

Publication number Publication date
US8981974B2 (en) 2015-03-17
US20140375486A1 (en) 2014-12-25
WO2013145136A1 (ja) 2013-10-03
JPWO2013145136A1 (ja) 2015-08-03

Similar Documents

Publication Publication Date Title
JP5780356B2 (ja) 時間対デジタル変換器、および制御方法
US7977988B2 (en) Delay adjusting method, and delay circuit
US8952737B2 (en) Methods and systems for calibration of a delay locked loop
KR101082415B1 (ko) 계층구조 위상 디지털 변환기
US20090278579A1 (en) Delay Line Calibration Mechanism and Related Multi-Clock Signal Generator
US8890741B2 (en) A/D converter
US8878582B2 (en) Apparatus and method for duty cycle calibration
JPWO2006038468A1 (ja) 位相差測定回路
JP2008011189A (ja) タイム・インターリーブa/d変換装置
CN107547087B (zh) 用于减少合成的时钟信号的失配的电路和方法
US7157953B1 (en) Circuit for and method of employing a clock signal
JP2004171082A (ja) 遅延生成方法及びそれに基づく遅延調整方法、並びにそれらを適用した遅延生成回路,遅延調整回路
US20090039938A1 (en) Delaying stage selecting circuit and method thereof
KR101639064B1 (ko) 이종 샘플링 지연선 기반 시간-디지털 변환기
TWI399562B (zh) 測量裝置、並列測量裝置、測試裝置以及被測試元件
JP5171442B2 (ja) マルチストローブ回路および試験装置
US9276590B1 (en) Generating signals with accurate quarter-cycle intervals using digital delay locked loop
JP6787105B2 (ja) デジタルフィルター、レシプロカルカウント値生成回路および物理量センサー
JP5736261B2 (ja) 遅延クロック信号生成回路およびパルス生成回路
JP5579099B2 (ja) クロック生成装置及びDLL(DigitalLockedLoop)回路及びクロック生成方法
KR20120027850A (ko) 듀티 검출기를 포함하는 듀티 보정 회로, 이를 포함하는 지연동기루프 회로 및 듀티 보정 방법
JP2020022071A (ja) データ出力装置およびad変換装置
CN110007154B (zh) 数字测量电路和使用数字测量电路的存储器系统
WO2023033103A1 (ja) 逐次比較型a/dコンバータ
JP2011205165A (ja) 半導体装置及び遅延量調整方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150616

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150629

R150 Certificate of patent or registration of utility model

Ref document number: 5780356

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees