(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-21
(45)【発行日】2022-09-30
(54)【発明の名称】FPGAに基づく高精度時間測定方法
(51)【国際特許分類】
G04F 10/00 20060101AFI20220922BHJP
【FI】
G04F10/00 Z
(21)【出願番号】P 2021517900
(86)(22)【出願日】2019-12-04
(86)【国際出願番号】 CN2019123097
(87)【国際公開番号】W WO2020114437
(87)【国際公開日】2020-06-11
【審査請求日】2020-12-04
(31)【優先権主張番号】201811477521.0
(32)【優先日】2018-12-05
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520479788
【氏名又は名称】北京中▲創▼▲為▼南京量子通信技▲術▼有限公司
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】シュ、シューフェン
(72)【発明者】
【氏名】リー、 チェン
(72)【発明者】
【氏名】シュ、ジャンイー
【審査官】吉田 久
(56)【参考文献】
【文献】中国実用新案第205080373(CN,U)
【文献】中国特許出願公開第108061848(CN,A)
【文献】中国特許出願公開第105675981(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G04F 10/00
(57)【特許請求の範囲】
【請求項1】
クロックカウントの方式で粗遅延時間nT
pを測定することと、FPGA内部のキャリーチェーンを利用してStart信号の微遅延時間T
1及びStop信号の微遅延時間T
2を測定することと、粗遅延時間nT
pと
Start信号の微遅延時間T
1とStop信号の微遅延時間T
2とに基づいて、測定結果とし
てStart信号
からStop信号までの遅延時間Tを出力すること、とを含
み、前記粗遅延時間nT
p
は、単一のクロック周期T
p
とこの単一のクロック周期T
p
の数nとの積であり、前記Start信号の微遅延時間T
1
及び前記Stop信号の微遅延時間T
2
は、それぞれStart信号及びStop信号のシステム内部クロックの立ち上がりエッジに対する相対的時間である、FPGAに基づく高精度時間測定方法において、
各キャリーチェーンの出力値同士を加算しかつ各出力値を1回のみ演算することにより、Start信号、Stop信号がキャリーチェーンで実際に通った実際位置を確定し、この実際位置を基準としてStart信号
の微遅延時間T
1
及びStop信号の微遅延時間T
2を測定する、
ことを特徴とするFPGAに基づく高精度時間測定方法。
【請求項2】
前記加算は、FPGA内部の加算器によって完成される、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記加算の方法は、加算ツリー合計方法を用いて演算を行う、
ことを特徴とする請求項1に記載の方法。
【請求項4】
加算を行う前に、Start信号とStop信号とのOR操作を行って、1つの合成信号に合併するステップと、フラグ信号を利用して合成信号のパルスの性質を指摘するステップを含む、信号の前処理をさらに含む、
ことを特徴とする請求項1から3のいずれか1項に記載の方法。
【請求項5】
フラグ信号1が合成信号におけるStart信号を標識し、フラグ信号2が合成信号におけるStop信号を標識することは、
合成信号の立ち上がりエッジを識別することと、
立ち上がりエッジ及びフラグ信号に基づいて、Start信号又はStop信号を識別することと、を含み、
フラグ信号1は、合成信号におけるStart信号を標識するためのものであり、
フラグ信号2は、合成信号におけるStop信号を標識するためのものである、
ことを特徴とする請求項4に記載の方法。
【請求項6】
複数のStop信号が連続的に入力されるときに、それぞれのStop信号とStart信号との間の時間を測定し、測定結果を出力する、
ことを特徴とする請求項5に記載の方法。
【請求項7】
それぞれのStop信号とStart信号との間の時間を測定し、測定結果を出力することは、
1つ目のStop信号が入力されると、1つ目のStop信号の時間T
2を測定し、Start信号と1つ目のStop信号との間のT
pの数n
1を記録し、1つ目の時間測定結果を出力することと、
2つ目のStop信号が入力されると、2つ目のStop信号の時間T
2を測定し、Start信号と2つ目のStop信号との間のT
pの数n
2を記録し、2つ目の時間測定結果を出力することと、
このように、N番目のStop信号が入力されてN番目の測定結果が出力されるまでに続くことと、を含み、
ここで、Nは正の整数であり、記録されたT
pの数はいずれもクリアされず、それぞれのStop信号とStart信号との間の時間測定結果を出力することを特徴とする請求項6に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、クロック測定の分野に関し、具体的には、FPGAに基づく高精度時間測定方法に関するものである。
【背景技術】
【0002】
通信システムにおいて、通信の両方は、両方の同期を実現するために、同期信号伝送方式を採用し、通信の両方は、同期信号を時間基準として信号の同期化を実現する。具体的には、送信側は、同期信号に従って周期的に信号光を送信し、受信側は、信号光を受信した後、信号光と同期光との間の時間差を測定することにより、両方の信号の同期化を実現する。
【0003】
信号光間の時間測定精度には、数十ピコ秒レベルに達するほどの測定精度が要求される。したがって、現在常用の測定方式の1つとしては、FPGA内部のキャリーチェーンを利用し、さらにクロックカウントと結びつけ、粗遅延と微遅延を組み合わせる方式により、時間測定を実現するのがある。具体的には、粗遅延は、クロックカウントの方式で大まかな時間を測定することができ、得られた時間は、クロックの数nと単一のクロック周期T
pとの積、すなわちnT
pであり、微遅延は、FPGA内部のキャリーチェーンを時間測定に導入し、主に、クロックの立ち上がりエッジと入力信号の立ち上がりエッジとの間の細かい時間間隔の測定を解決するために用いられ、
図1に示すように、Start信号の細かい時間間隔はT
1であり、Stop信号の細かい時間間隔はT
2であるので、T
1とT
2とを測定してから、粗遅延の測定による時間と結びつけることにより、細かい時間間隔の測定を完了することができる。
【0004】
ここで、T
1及びT
2時間の測定原理を
図2に示す。具体的には、Start及びStop信号は、キャリーチェーンからなる一連の遅延ユニットに進入し、各キャリーチェーンは、いずれもD型フリップフロップに接続される1つの出力端子を有し、D型フリップフロップのクロックは、統一的にシステムの動作クロックに接続される。測定の主な原理は、キャリーチェーンを利用して、入力信号とシステムクロックとの間の時間差、すなわち微遅延量を記録し、内部クロック立ち上がりエッジが到来するたびに全てのキャリーチェーンの信号がD型フリップフロップによってラッチされ、クロックが到来するまでのStart信号が通ったキャリーチェーンの数は、被測定信号とクロック信号立ち上がりエッジとの間の時間差を表し、隣り合う2つのキャリーチェーンのステッピングをτとすることである。この方法によれば、Start及びStop信号のそれぞれのシステム内部クロック立ち上がりエッジに対する相対的時間、すなわち
図2に示されるT
1=6*τ及びT
2=9*τがそれぞれ記録され、さらにStartとStop信号との間の完全な周期の数が記録され、このように、粗遅延と微遅延との組み合わせにより、細かい時間測定の結果を得ることができる。
【0005】
しかしながら、研究によると、StartやStop信号が不安定のときに、出力されるキャリーチェーンの位置がずれる可能性があることが分かった。Start信号を例とし、
図3に示すように、キャリーチェーンにおいてStart信号が到達する位置の識別方式は複数あるが、最初の出力値0に対応する位置を識別するのが最も一般的な方式である。例えば、Start信号が不安定になり、最初の0値が7番目のキャリーチェーンで現れる場合、D型フリップフロップが6番目のキャリーチェーンの位置でラッチし、当該位置をStart信号が通ったキャリーチェーンの位置として記録し、T
1=6*τを出力することになるが、実際の位置はStart信号の8番目のキャリーチェーン上にあり、実際にT
1=8*τを出力すべきである。したがって、信号の伝送中の不安定の要因により、1と0が交互に現れる場合があり、その結果、位置識別に誤りが生じ、測定されたキャリーチェーンの位置が、Start信号が実際に通ったキャリーチェーンの位置と一致せず、測定された時間の誤差が大きくなる。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本願は、従来の時間測定方法により測定された時間の誤差が大きいという問題を解決するために、FPGAに基づく高精度時間測定方法を提供する。
【課題を解決するための手段】
【0007】
クロックカウントの方式で粗遅延時間nT
p
を測定することと、FPGA内部のキャリーチェーンを利用してStart信号の微遅延時間T
1
及びStop信号の微遅延時間T
2
を測定することと、粗遅延時間nT
p
と微遅延時間T
1
とStop信号の微遅延時間T
2
とに基づいて、測定結果としてStop信号とStart信号との間の時間Tを出力することと、を含むFPGAに基づく高精度時間測定方法において、
Start信号やStop信号の伝送に、前記キャリーチェーンの出力値としての1と0とが交互に現れる不安定状態があるかを判定し、
前記不安定状態がないと判定された場合は、各キャリーチェーンの、最初の出力値0が現れた位置の直前の出力値1の位置を基準としてStart信号やStop信号の微遅延時間T
1
、T
2
を測定し、
前記不安定状態があると判定された場合は、各キャリーチェーンの出力値同士を加算しかつ各出力値を1回のみ演算することにより、不安定が発生した位置を確定し、この不安定発生位置を基準としてStart信号やStop信号の微遅延時間T
1
、T
2
を測定する。
【0008】
好ましくは、前記加算は、FPGA内部の加算器によって完成される。
【0009】
好ましくは、前記加算の方法は、加算ツリー合計方法を用いて演算を行う。
【0010】
好ましくは、加算を行う前に、Start信号とStop信号とのOR操作を行って1つの合成信号に合併するステップと、フラグ信号を利用して合成信号のパルスの性質を指摘するステップを含む、信号の前処理をさらに含む。
【0011】
好ましくは、フラグ信号1が合成信号におけるStart信号を標識し、フラグ信号2が合成信号におけるStop信号を標識することは、
合成信号の立ち上がりエッジを識別することと、
立ち上がりエッジ及びフラグ信号に基づいて、Start信号又はStop信号を識別することと、を含み、
フラグ信号1は、合成信号におけるStart信号を標識するためのものであり、
フラグ信号2は、合成信号におけるStop信号を標識するためのものである。
【0012】
好ましくは、複数のStop信号が連続的に入力されるときに、それぞれのStop信号とStart信号との間の時間を測定し、測定結果を出力する。
【0013】
好ましくは、それぞれのStop信号とStart信号との間の時間を測定し、測定結果を出力することは、
1つ目のStop信号が入力されると、1つ目のStop信号の時間T2を測定し、Start信号と1つ目のStop信号との間のTpの数n1を記録し、1つ目の時間測定結果を出力することと、
2つ目のStop信号が入力されると、2つ目のStop信号の時間T2を測定し、Start信号と2つ目のStop信号との間のTpの数n2を記録し、2つ目の時間測定結果を出力することと、
このように、N番目のStop信号が入力されてN番目の測定結果が出力されるまで続くことと、を含み、
ここで、Nは正の整数であり、記録されたTpの数はいずれもクリアされず、それぞれのStop信号とStart信号との間の時間測定結果を出力する。
【発明の効果】
【0014】
以上の態様から分かるように、本願にて提供されるFPGAに基づく高精度時間測定方法は、クロックカウントの方式で粗遅延時間nT
p
を測定することと、FPGA内部のキャリーチェーンを利用してStart信号の微遅延時間T
1
及びStop信号の微遅延時間T
2
を測定することと、粗遅延時間nT
p
と微遅延時間T
1
とStop信号の微遅延時間T
2
とに基づいて、測定結果としてStop信号とStart信号との間の時間Tを出力すること、とを含み、Start信号やStop信号の伝送に、前記キャリーチェーンの出力値としての1と0とが交互に現れる不安定状態があるかを判定し、前記不安定状態がないと判定された場合は、各キャリーチェーンの、最初の出力値0が現れた位置の直前の出力値1の位置を基準としてStart信号やStop信号の微遅延時間T
1
、T
2
を測定し、前記不安定状態があると判定された場合は、各キャリーチェーンの出力値同士を加算しかつ各出力値を1回のみ演算することにより、不安定が発生した位置を確定し、この不安定発生位置を基準としてStart信号やStop信号の微遅延時間T
1
、T
2
を測定する。したがって、全てのキャリーチェーンの出力値を加算することにより、信号の伝送に不安定の要因が発生して1と0が交互に現れる場合であっても、加算による結果に1が現れたキャリーチェーンが計算されているので、算出された信号が通ったキャリーチェーンの位置は、実際に通ったキャリーチェーンの位置により近づき、これにより、測定の時間精度を高めることができる。
【図面の簡単な説明】
【0015】
本願の技術的解決手段をより明確に説明するために、以下、実施例において使用する必要がある図面について、簡単に説明し、もちろん、当業者であれば、創造的な労力をせず、これらの図面に基づいて他の図面を得ることができる。
【
図2】従来の細かい時間間隔測定の原理を示す図である。
【
図3】従来の細かい時間間隔測定の誤差原因の原理を示す図である。
【
図4】本願の細かい時間間隔測定の原理を示す図である。
【発明を実施するための形態】
【0016】
本願の上記目的、特徴及び利点をより明確で理解しやすくするために、以下、図面及び具体的な実施形態と合わせて、本願についてさらに詳細に説明する。
【0017】
本願の実施例は、FPGAに基づく高精度時間測定方法を提供し、その時間測定の原理は、
図4を参照し、この方法は、
クロックカウントの方式で粗遅延時間nT
p
を測定することと、FPGA内部のキャリーチェーンを利用してStart信号の微遅延時間T
1
及びStop信号の微遅延時間T
2
を測定することと、粗遅延時間nT
p
と微遅延時間T
1
とStop信号の微遅延時間T
2
とに基づいて、測定結果としてStop信号とStart信号との間の時間Tを出力すること、とを含み、Start信号やStop信号の伝送に、前記キャリーチェーンの出力値としての1と0とが交互に現れる不安定状態があるかを判定し、前記不安定状態がないと判定された場合は、各キャリーチェーンの、最初の出力値0が現れた位置の直前の出力値1の位置を基準としてStart信号やStop信号の微遅延時間T
1
、T
2
を測定し、前記不安定状態があると判定された場合は、各キャリーチェーンの出力値同士を加算しかつ各出力値を1回のみ演算することにより、不安定が発生した位置を確定し、この不安定発生位置を基準としてStart信号やStop信号の微遅延時間T
1
、T
2
を測定する。
【0018】
背景技術から分かるように、従来の方法では、信号が通ったキャリーチェーンの数を直接記録し、この方法は、信号が安定しているときのみ、時間を正確に測定することができ、信号の伝送に不安定の要因が発生したときには、キャリーチェーンにおいて1と0が交互に現れる場合があり、最初の0が現れたときに、信号の立ち上がりエッジがすでに到達したと判断するが、信号が実際に通ったキャリーチェーンの位置と一致しない可能性があり、実際の信号の立ち上がりエッジは、最初でない0が到来する直前の1の位置で現れる可能性があるので、測定の結果が不正確になってしまう。したがって、本願では、全てのキャリーチェーンの出力値に対して加算を行うことにより、信号の伝送に不安定の要因が発生して1と0が交互に現れるとしても、加算による結果に1が現れたキャリーチェーンが計算されているので、このように提供された信号が通ったキャリーチェーンの位置は、実際に通ったキャリーチェーンの位置により近く、これにより、算出された信号が通ったキャリーチェーンの位置は、実際に通ったキャリーチェーンの位置により近づき、つまり、時間T1及び時間T2は実際の時間により合致するので、測定の時間精度を高めることができる。
【0019】
また、本願の方法では、全てのキャリーチェーンの出力値に対して加算を行うため、信号が安定している時に算出された信号が通ったキャリーチェーンの数は、信号が実際に通ったキャリーチェーンの数と同じである。したがって、本願の方法では、信号が安定の場合も、不安定の場合も、いずれも高精度時間測定を提供することができる。
【0020】
本願の方法の好ましい実施例では、本願の前記加算は、FPGA内部の加算器によって完成されるため、本方法は、内部リソースを効果的に利用することができ、処理方式が簡単で、効率的であり、また、FPGA内部の加算器は、400M以上のクロックの場合で動作できることにより、後続のアルゴリズムの実現に基礎を提供する。当然ながら、本願の方法は、外部リソースの加算器を用いて加算を行うこともできる。
【0021】
具体的には、前記加算の方法は、加算ツリー合計方法を用いて演算を行う。加算ツリー演算の原理を
図4に示し、いわゆる加算ツリー(adder tree)とは、1番目のレイヤに出力された数値を、2つの隣り合う数値同士を加算し、かつ、各数値は1回のみ演算され、演算後には、加算後のデータを2番目のレイヤに伝達させ、2番目のレイヤに出力された数値も、2つの隣り合う数値同士を加算し、かつ、各数値は1回のみ演算され、演算後には、加算後のデータを3番目のレイヤに伝達させ、以下同様に、最後に2つの数値のみが加算されて1つの合計値が出力されるまで加算を行う。したがって、加算ツリーの方式を採用して演算を行うと、加算が簡単かつ明瞭であるだけではなく、1番目のレイヤの演算結果に基づいて、信号に不安定の状態が現れる位置を確定することができる。
【0022】
本願の方法の好ましい実施例では、
図5に示すように、加算を行う前に、Start信号とStop信号とのOR操作を行って、1つの合成信号に合併するステップと、フラグ信号を利用して合成信号のパルスの性質を指摘するステップとを含む、信号の前処理をさらに含む。
【0023】
Start信号及びStop信号の処理については、測定システムの結果に関連され、システムの設計過程における非常に重要なステップであり、処理が不当であれば、信号が持つ時間情報を失って、直接測定精度を低下させて、測定が直接失敗してしまう。最も一般的な考え方は、Start信号及びStop信号をそれぞれ測定して、時間T1及び時間T2をそれぞれ取得してから、総合的に処理を行うことであり、この方法の利点は、考え方が明晰なことであるが、欠点も明らかであり、Start信号及びStop信号は、それぞれ2つの処理ユニットを利用して処理を行い、このような処理方式により、2つの信号間に固定的なシステム誤差が存在し、FPGA内部の構成の差異性によってルーティング遅延も一致しないことにより、システムの誤差が大きくなってしまう。
【0024】
FPGA内部で2つの信号に対して信号のOR操作を行って1つの合成信号に合併するとともに、Start信号及びStop信号の到来をそれぞれ示し、フラグ信号1は、当該パルスがStart信号であることを表し、フラグ信号2は、当該パルスがStop信号であることを表し、フラグ信号は、それと同時に到達する合成信号のパルスの性質を指摘することのみに用いられ、フラグ信号は、測定に直接用いられず、合成信号のみが後続の測定に直接用いられる。
【0025】
処理時に注意すべき点としては、ORゲートを用いて、Start及びStop信号を1つのOR信号に合併し、このORゲートは、入力されるStart及びStop信号の最も近い位置にある必要があり、Start及びStop信号はいずれも外部ピンから入力されることであるので、このORゲートの位置が特に重要であり、ピンに十分に近づける必要がある。Start及びStop信号は、それぞれ1つのD型フリップフロップに接続される1つの分岐を提供し、クロックを用いてStart及びStop信号に対してサンプリングする必要があり、当該Start、Stop信号は、クロックと同期する信号であり、その幅はクロックの整数倍の周期であり、後続の機能において、OR信号におけるパルスがStart信号に対応するか、または、Stop信号に対応するかを説明するという判定の役割を果たす。
【0026】
前記Start信号又はStop信号の総遅延時間は、単一のクロック周期の時間Tpより大きい。言い換えれば、入力信号としてのStart信号やStop信号のハイレベルの幅が1つのサンプリング周期の幅より大きくなければならず、そうでなければ、Start、Stop信号が識別できない状況が現れる可能性があり、後続のモジュールが動作できないことになる。
【0027】
前記合成信号のパルスと当該パルスの性質を表す前記フラグ信号のパルスは同時に到達する。同時に到達することは、当該合成信号のパルスがStart信号かStop信号かを明確かつ正確に表すことができる。また、入力信号としてのStart信号やStop信号は、時間上の重複があってはならず、時間上の重複があれば入力信号を区別できないため、少なくとも1つ以上の周期の間隔を有する。
【0028】
上記のような技術案において、本願の方法は、同一のキャリーチェーンリソースを用いることにより、2つのキャリーチェーンを用いてStart及びStop信号の測定をそれぞれ行うことによる差異性を回避することができ、時間測定の精度を高め、温度変化などの外界条件の変化による測定精度及び結果に対する影響を回避することができる。
【0029】
本願の方法の好ましい実施例では、前記キャリーチェーンは連続的であり、かつ、各キャリーチェーンの間の遅延は均一である。キャリーチェーン構造は、時間測定モジュール全体における核心的な部材であり、キャリーチェーン構造が時間測定の精度を直接決定する。本願で用いるチップの一例は以下の通りである。このチップの1つのロジックブロック内部で連続しているキャリーチェーンの長さは最長50個であり、単一のキャリーチェーンの時間遅延は約53psであり、総遅延は約2650psであるため、クロック信号選択時、クロック周期が当該遅延値より小さくなければならないことを考慮する必要があるので、クロック周波数を400M、対応するクロック周期を2500psと定義し、これは、チップの性能をまとめて得た最終的な結果であり、実際のテストによると、当該チップは400Mの動作周波数に耐えることができる。もちろん、キャリーチェーンの長さ及び単一のキャリーチェーンの遅延時間は、選択されるチップによって決定されるものであり、クロック信号選択時に、チップのパラメータに応じて、上記説明に従って、適切な値を選択すればよい。
【0030】
D型フリップフロップ構造は、キャリーチェーンの直後にあり、もちろん、フリップフロップは、他のデバイスを選択してもよく、2つの安定状態である「0」及び「1」を有し、一定の外界信号の作用によって、1つの安定状態から別の安定状態に反転できればよい。その機能は、クロック信号が到達した時に、キャリーチェーンのタップ信号をラッチし、その出力状態を取得することであり、入力信号がクロック信号より早く到達して、入力信号がキャリーチェーンにおいて伝達され始め、入力信号が到達した位置ではレベルがハイになり、到達していない位置ではローであり、クロック信号が到達した時に50個のD型フリップフロップ信号をラッチし、そのうちハイレベルのタップの数、すなわち入力信号の当該クロック立ち上がりエッジに対する時間先行量を算出することにより、細かい時間測定の機能を実現し、当該測定の精度は、単一のキャリーチェーンの時間遅延量であり、約53psである。
【0031】
位置制約は、キャリーチェーン構造における重要な部分であり、キャリーチェーンの連続性を確保して、キャリーチェーンが分散して分布している状況が無いようにし、キャリーチェーン間の均一な遅延を確保することは、測定精度を保証するための重要なポイントの1つであり、さらに、後続のD型フリップフロップとキャリーチェーンとの位置関係を確保する必要があり、D型フリップフロップがキャリーチェーンから離れる距離の不確実性により、遅延が大きすぎて最終の測定精度に影響をもたらすことが回避されるように、D型フリップフロップは、キャリーチェーンにすぐ隣接し、同一のロジックブロック内にあることが好ましい。
【0032】
本願の方法の好ましい実施例では、フラグ信号1が合成信号におけるStart信号を標識し、フラグ信号2が合成信号におけるStop信号を標識することは、合成信号の立ち上がりエッジを識別し、立ち上がりエッジ及びフラグ信号に基づいて、Start信号又はStop信号を識別することを含み、ここで、フラグ信号1は、合成信号におけるStart信号を標識するためのものであり、フラグ信号2は、合成信号におけるStop信号を標識するものである。つまり、Start信号又はStop信号の立ち上がりエッジが到達すると、フリップフロップは1つの安定状態から別の安定状態に反転して、信号立ち上がりエッジを識別し、当該立ち上がりエッジが識別された後にフラグ信号と合わせてStart信号及びStop信号を識別する。
【0033】
Start信号及びStop信号の識別は、時間測定の重要なプロセスの1つであり、本技術案では、Start及びStop信号を1つの信号に併入するとともに、フラグ信号1及びフラグ信号2を提供することを採用し、このフラグ信号は、StartとStop信号との区別のみに用いられ、後続の時間測定の機能には参与しない。Start信号が来る時には時間スケールがリセットされ、Stop信号が来る時にはそのStart信号に対応する時間測定結果を提供する。合成信号からStart信号及びStop信号の立ち上がりエッジをどのように識別するかは、時間測定プロセスのうちの重要なプロセスの1つであり、前記加算方法を採用すると、加算器のパイプライン的な操作により、各クロックは1つの加算結果を提供し、加算結果が0から非0にジャンプされることを識別して、信号立ち上がりエッジを識別することができ、当該立ち上がりエッジが認識された後にフラグ信号と合わせて、Start信号及びStop信号を識別することができる。
【0034】
本願の方法の好ましい実施形態では、複数のStop信号が連続的に入力されるときに、それぞれのStop信号とStart信号との間の時間を測定し、測定結果を出力する。
【0035】
連続測定は、時間測定システムにおける重要な機能の1つであり、以上の方式を用いてStart信号及びStop信号を識別した後、時間測定結果を提供し、連続的な時間測定プロセスを実現するために、単一のStart信号が識別された後にT1時間を得、この期間でクロック周期の数Nを持続的に記録し、Stop信号が入力されると、T2値を記録し、対応する測定結果を求めるが、次のStop値が到来する時に測定結果値を再出力するように、クロック周期の数Nをクリアしない。このような方式を採用すると、連続測定機能を実現することができる。
【0036】
具体的には、それぞれのStop信号とStart信号との間の時間を測定し、測定結果を出力することは、1つ目のStop信号が入力されると、1つ目のStop信号の時間T2を測定し、Start信号と1つ目のStop信号との間のTpの数n1を記録し、1つ目の時間測定結果を出力することと、2つ目のStop信号が入力されると、2つ目のStop信号の時間T2を測定し、Start信号と2つ目のStop信号との間のTpの数n2を記録し、2つ目の時間測定結果を出力することと、このように、N番目のStop信号が入力されてN番目の測定結果が出力されるまでに続くことと、を含み、ここで、Nは正の整数であり、記録されたTpの数はいずれもクリアされず、それぞれのStop信号とStart信号との間の時間測定結果を出力する。
【0037】
以上をまとめると、本願の最適な実施態様の流れは、
図6に示され、主に、Start信号とStop信号との間の時間差を測定するという機能を実現し、精度は数十ピコ秒のオーダーに達し、それは、主に、FPGA内部のキャリーチェーンを用いるものであり、キャリーチェーン間の遅延を用いて高精度時間測定の機能を実現する。測定プロセスは、主に、入力信号の前処理、キャリーチェーン測定、加算ツリー処理、パルス認識、データ処理、連続測定、測定結果出力などのステップを含む。
【0038】
そのうち、測定結果出力については、本願は、単一のキャリーチェーンの時間遅延が約53psであり、クロック周期が2500psであることを例とし、プログラムにカウントユニットを設計し、Start信号が識別されたと、現在の加算結果S1を記録してT1時間とし、Stop信号が来る前に、クロック周期をカウントしてNと記して全周期時間T0とし、Stop信号を識別されたと、現在の加算結果S2を記録してT2時間とし、測定結果を、下記の式に基づいて算出する。
T=T1+nTp+(Tp-T2)=S1×53ps+N×2500ps+(2500ps-S2×53ps)
ここで、53psは、単一のキャリーチェーンの平均時間スケールである。
【0039】
上記したように、本願のFPGAに基づく高精度時間測定方法は、信号の前処理、キャリーチェーン測定、加算ツリー処理、パルス認識などのステップを含み、いずれも測定時間の精度を高めることができ、したがって、従来の時間測定方法によって測定される時間の誤差が大きいという問題を解決することができる。
【0040】
以上、具体的な実施形態及び例示的な実例と合わせて、本願について詳細に説明したが、これらの説明は、本願を限定されるものではない。当業者であれば、本願の趣旨及び範囲から逸脱せず、本願の技術的解決手段及び実施形態に対して、様々な均等な置換、修飾又は改良を行うことができ、これらは、いずれも本願の範囲に含まれる。本願の保護範囲は、添付の特許請求の範囲を基準とする。