(57)【特許請求の範囲】
【請求項１】
物体までの距離を測定するための装置であって、
外向き光パルスを放出する発光体と、
前記物体から反射した戻り光パルスを受信し、前記戻り光パルスを表すパルス信号を出力する光センサと、
前記光センサに結合され、一連の順次結合された遅延ユニットを有する時間／デジタル変換器（ＴＤＣ）を含むフィールドプログラマブルゲートアレイ（ＦＰＧＡ）であって、個々の順次結合された遅延ユニットが、対応する個々の遅延時間と関連付けられ、前記順次結合された遅延ユニットの少なくともいくつかが、異なる個々の遅延時間を有し、前記ＴＤＣが、前記遅延ユニットの前記個々の遅延時間より短いラッチ時間を有する複数のラッチを有するラッチユニットを含み、前記ＴＤＣが前記一連の順次結合された遅延ユニットを通じて前記パルス信号の１つまたは複数の部分に対応する入力信号を伝播する際に、前記複数のラッチを使用して、前記一連の順次結合された遅延ユニットの出力をラッチし、前記順次結合された遅延ユニットの前記個々の遅延時間に少なくとも部分的に基づいて前記パルス信号のタイミング情報を測定する、ＦＰＧＡと、
前記タイミング情報に基づいて前記物体までの前記距離を計算するコントローラと
を含む、装置。
【請求項２】
前記発光体、光センサ、ＦＰＧＡおよびコントローラが、無人航空機、自律走行車両またはロボットに積載される、請求項１に記載の装置。
【請求項３】
前記ＴＤＣが、
前記一連の順次結合された遅延ユニットを使用して前記入力信号の細時間値を決定することと、
前記ＦＰＧＡの経過したクロックサイクルの数に基づいて前記入力信号の粗時間値を決定することと
によって前記タイミング情報を測定する、請求項１又は請求項２に記載の装置。
【請求項４】
前記細時間値が、前記ＦＰＧＡの次のクロックサイクルの前に前記入力信号を受信した前記一連の順次結合された遅延ユニットのサブセットの前記個々の遅延時間の総和に対応する、請求項３に記載の装置。
【請求項５】
前記タイミング情報が、前記粗時間値と前記細時間値との差に対応する、請求項３に記載の装置。
【請求項６】
前記細時間値の時間分解能が、前記粗時間値の時間分解能より高いものである、請求項３から請求項５の何れか１項に記載の装置。
【請求項７】
前記一連の順次結合された遅延ユニットが、キャリーチェーンまたはルックアップテーブル（ＬＵＴ）を含む、請求項１から請求項６の何れか１項に記載の装置。
【請求項８】
前記ＴＤＣが、複数のラッチを有するラッチユニットを含み、個々のラッチが、対応する順次的な遅延ユニットに結合され、前記ＴＤＣが、
前記一連の順次結合された遅延ユニットを通じて入力信号を伝播することであって、前記入力信号が、前記パルス信号の１つまたは複数の部分に対応する、伝播することと、
前記一連の順次結合された遅延ユニットを使用して前記入力信号の細時間値を決定することであって、前記細時間値が、前記ＦＰＧＡの次のクロックサイクルの前に前記入力信号を受信した前記一連の順次結合された遅延ユニットのサブセットの前記個々の遅延時間の総和に対応する、決定することと、
前記ＦＰＧＡの経過したクロックサイクルの数に基づいて前記入力信号の粗時間値を決定することと、
前記粗時間値と前記細時間値との差に基づいて前記タイミング情報を測定することと
を行う、請求項１に記載の装置。
【請求項９】
物体までの距離を測定するための方法であって、
発光体によって、外向き光パルスを放出するステップと、
光センサにおいて、前記物体から反射した戻り光パルスを受信するステップと、
前記光センサによって、前記戻り光パルスを表すパルス信号を出力するステップと、
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を使用して、前記パルス信号のタイミング情報を測定するステップであって、前記ＦＰＧＡが、一連の順次結合された遅延ユニットを有する時間／デジタル変換器（ＴＤＣ）を含み、個々の順次結合された遅延ユニットが、対応する個々の遅延時間と関連付けられ、前記順次結合された遅延ユニットの少なくともいくつかが、異なる個々の遅延時間を有し、前記ＴＤＣが、前記遅延ユニットの前記個々の遅延時間より短いラッチ時間を有する複数のラッチを有するラッチユニットを含み、前記ＴＤＣが前記一連の順次結合された遅延ユニットを通じて前記パルス信号の１つまたは複数の部分に対応する入力信号を伝播する際に、前記複数のラッチを使用して、前記一連の順次結合された遅延ユニットの出力をラッチし、前記順次結合された遅延ユニットの前記個々の遅延時間に少なくとも部分的に基づいて前記パルス信号の前記タイミング情報を測定する、ステップと、
コントローラを使用して、前記タイミング情報に基づいて前記物体までの前記距離を計算するステップと
を含む、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
無人航空機（ＵＡＶ）などの無人車両は、多くの応用で使用することができ、数ある中でも特に、作物監視、写真撮影、建物および他の構造の検査、火災安全任務、国境警備ならびに製品配達を含む。そのような無人車両には、周辺環境において障害物および他の物体を検出するためのセンサを装備することができる。ＬＩＤＡＲシステムは、三次元障害物検出および環境マッピングのための距離測定を提供するために使用することができる。しかし、既存のＬＩＤＡＲシステムの測定精度は、いくつかの複雑な環境での使用には不十分であり得る。それに従って、無人車両および他の可動物体に積載されたＬＩＤＡＲシステムを実装するための技法を改善する必要性が残っている。
【図面の簡単な説明】
【０００２】
【図１Ａ】本技術の代表的な実施形態に従って構成された可動物体を含む代表的なシステムの概略図である。
【図１Ｂ】本技術の代表的な実施形態に従って構成された代表的なＬＩＤＡＲシステムの概略図である。
【図２】本技術の代表的な実施形態に従って構成されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）ベースの光学式距離測定装置の概略図である。
【図３】本技術の代表的な実施形態に従って構成された高時間分解能を有する時間／デジタル変換器（ＴＤＣ）の概略図である。
【図４Ａ】本技術の代表的な実施形態による、立ち上がりエッジ信号の時間測定を示すタイミング図である。
【図４Ｂ】本技術の代表的な実施形態による、立ち下がりエッジ信号の時間測定を示すタイミング図である。
【図５】本技術の代表的な実施形態による、ＦＰＧＡベースの光学式距離測定装置を製造および操作するための方法を示すフロー図である。
【図６】本技術の代表的な実施形態による、平均遅延時間に基づいてＦＰＧＡを校正するための方法を示すフロー図である。
【図７】本技術の代表的な実施形態による、個々の遅延時間に基づいてＦＰＧＡを校正するための方法を示すフロー図である。
【図８Ａ】本技術の代表的な実施形態に従って生成された計数データを示すヒストグラムである。
【図８Ｂ】本技術の代表的な実施形態による、一連の順次結合された遅延ユニットの個々の遅延時間の概略図である。
【図９Ａ】本技術の代表的な実施形態による、ＴＤＣによって生成されたデータシーケンスのバブルの概略図である。
【図９Ｂ】本技術の代表的な実施形態による、バブルによる影響を受けた計数データを示すヒストグラムである。
【図１０】本技術の代表的な実施形態による、バブルの影響を低減するためにＦＰＧＡを校正するための方法を示すフロー図である。
【図１１】本技術の代表的な実施形態による、光学式距離測定装置を使用して物体までの距離を測定するための方法を示すフロー図である。
【図１２】本技術の代表的な実施形態による、個々の遅延時間に少なくとも部分的に基づいてタイミング情報を測定するための方法を示すフロー図である。
【図１３】本技術の代表的な実施形態による、バブルを低減するための技法を使用してタイミング情報を測定するための方法を示すフロー図である。
【発明を実施するための形態】
【０００３】
１．概要
本技術は、概して、光学式距離測定装置の遅延時間校正ならびに関連システムおよび方法を対象とする。いくつかの実施形態では、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、時間分解能が増大された（例えば、ピコ秒レベルの分解能）光検出および測距（ＬＩＤＡＲ）システムによって受信された光パルスのタイミング情報を測定する。いくつかの実施形態では、ＦＰＧＡは、一連の順次結合された遅延ユニットを有する時間／デジタル変換器（ＴＤＣ）を含み、ＦＰＧＡは、個々の遅延ユニットと関連付けられた個々の遅延時間を説明するために校正される。従来のシステムとは異なり、本明細書の本技術の実施形態は、コスト、電力消費量および処理上の負担を低減して距離測定正確度（例えば、センチメートルレベルの正確度）の向上を提供する。それに加えて、本技術は、多種多様な可動物体に組み込むことができ、これらに限定されないが、無人車両、自律走行車両およびロボットを含む。それに従って、本明細書で説明される実施形態は、自律走行または半自律走行車両によって実行される障害物検出および環境マッピングなど、複雑な動的環境における高い正確度の距離測定を伴う応用において特に有利である。
【０００４】
以下の説明では、現在開示されている技術の完全な理解を提供するために、多くの具体的な詳細を記載する。他の実施形態では、本明細書で紹介されている技法は、これらの具体的な詳細なしで実践することができる。他の実例では、本開示を不必要に曖昧にすることを避けるため、具体的な製作技法などの周知の特徴については詳細には説明しない。この説明における「実施形態」、「一実施形態」または同様のものへの言及は、説明されている特定の特徴、構造、材料または特性が本開示の少なくとも１つの実施形態に含まれることを意味する。従って、この明細書におけるそのような語句の出現は、必ずしもすべてが同じ実施形態を指すとは限らない。他方では、そのような言及は、相互排他的であるとも限らない。その上、特定の特徴、構造、材料または特性は、１つまたは複数の実施形態では、適切ないかなる方式でも組み合わせることができる。また、図に示される様々な実施形態は、単なる例示的な表現であり、必ずしも原寸に比例するとは限らないことを理解されたい。
【０００５】
本明細書で使用される場合は、「Ａおよび／またはＢ」は、「Ａ」または「Ｂ」のうちの１つまたは複数、ならびに、「Ａ」および「Ｂ」などのそれらの組合せを包含する。
【０００６】
以下の説明では、無人航空機（ＵＡＶ）と関係していくつかの実施形態が紹介されているが、本明細書の技法は、同様の方式で、これらに限定されないが、他のタイプの無人車両（例えば、地上車両）、自律走行車両（例えば、自動運転車）、ハンドヘルド装置またはロボットを含む、他のタイプの可動物体にも適用することができる。
【０００７】
図１Ａ〜１３は、開示される技術の代表的な実施形態を示すために提供される。別段の定めがない限り、図面は、本出願の請求項の範囲を制限することを意図しない。
【０００８】
本明細書で説明される技術の実施形態のいくつかは、プログラマブルコンピュータまたはコントローラによって実行されるルーチンを含むコンピュータまたはコントローラ実行可能命令の形態を取ることができる。当業者であれば、以下で示されるものおよび説明されるもの以外のコンピュータまたはコントローラシステム上で技術を実践できることが理解されよう。技術は、以下で説明されるコンピュータ実行可能命令のうちの１つまたは複数を実行するように特にプログラムされるか、構成されるかまたは構築される専用コンピュータまたはデータプロセッサにおいて具体化することができる。それに従って、「コンピュータ」および「コントローラ」という用語は、本明細書で一般的に使用される場合は、いかなるデータプロセッサも指し、インターネット家電およびハンドヘルド装置（手のひらサイズのコンピュータ、着用可能コンピュータ、セルフォンまたはモバイルフォン、マルチプロセッサシステム、プロセッサベースのまたはプログラマブル家庭用電化製品、ネットワークコンピュータ、ミニコンピュータおよび同様のものを含む）を含み得る。これらのコンピュータおよびコントローラによって処理された情報は、ＣＲＴディスプレイまたはＬＣＤを含む、適切ないかなる表示媒体においても提示することができる。
【０００９】
本明細書の実施形態のいくつかは、いくつかの実施形態においてコンピュータプログラム製品によって実装することができる方法またはプロセスの一般的な文脈において説明し、同コンピュータプログラム製品は、ネットワーク接続された環境においてコンピュータによって実行されるコンピュータ実行可能命令（プログラムコードなど）を含むコンピュータ可読媒体において具体化される。コンピュータ可読媒体は、取り外し可能および取り外し不可能な記憶装置を含み得、これらに限定されないが、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）などを含む。従って、コンピュータ可読媒体は、非一時的な記憶媒体を含み得る。一般に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み得る。コンピュータまたはプロセッサ実行可能命令、関連データ構造およびプログラムモジュールは、本明細書で開示される方法のステップを実行するためのプログラムコードの例を表す。そのような実行可能命令または関連データ構造の特定のシーケンスは、そのようなステップまたはプロセスにおいて説明される機能を実装するための対応する行為の例を表す。
【００１０】
本明細書の実施形態のいくつかは、ハードウェア回路、ソフトウェアまたはそれらの組合せを使用する装置またはモジュールとして実装することができる。例えば、ハードウェア回路の実装形態は、例えばプリント基板の一部として統合される、個別のアナログおよび／またはデジタルコンポーネントを含み得る。その代替としてまたはそれに加えて、開示されるコンポーネントまたはモジュールは、特定用途向け集積回路（ＡＳＩＣ）および／またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）装置として実装することができる。いくつかの実装形態は、それに加えてまたはその代替として、この出願の開示される機能と関連付けられたデジタル信号処理の動作上の必要性のために最適化されたアーキテクチャを備える特殊マイクロプロセッサであるデジタル信号プロセッサ（ＤＳＰ）を含み得る。同様に、各モジュール内の様々なコンポーネントまたはサブコンポーネントは、ソフトウェア、ハードウェアまたはファームウェアにおいて実装することができる。モジュール間および／またはモジュール内のコンポーネント間の接続性は、これらに限定されないが、適切なプロトコルを使用したインターネット、有線または無線ネットワーク上の通信を含む、当技術分野で知られている接続方法および媒体のいずれか１つを使用して提供することができる。
【００１１】
２．代表的な実施形態
図１Ａは、本技術の代表的な実施形態に従って構成された要素を有する代表的なシステム１００の概略図である。システム１００は、可動物体１１０（例えば、ＵＡＶ）および制御システム１２０を含む。可動物体１１０は、無人車両、自律走行車両またはロボットなど、様々な実施形態で使用することができる適切ないかなるタイプの可動物体でもあり得る。
【００１２】
可動物体１１０は、搭載物１１４を積載することができる本体１１２（例えば、機体）を含み得る。本明細書で説明される実施形態に従って、多くの異なるタイプの搭載物を使用することができる。いくつかの実施形態では、搭載物は、撮像装置または光電子走査装置などの１つまたは複数のセンサを含む。例えば、搭載物１１４は、カメラ、ビデオカメラおよび／または静止カメラであり得る。カメラは、可視光線、紫外線、赤外線および／または他の帯域を含む、各種の適切な帯域のいずれかの波長に対する感度が高いものであり得る。また、搭載物１１４は、他のタイプのセンサおよび／または他のタイプの貨物（例えば、パッケージまたは他の配達品）も含み得る。
【００１３】
いくつかの実施形態では、搭載物１１４は、積載メカニズム１１６（例えば、ジンバル）によって本体１１２に相対的にサポートされる。積載メカニズム１１６は、本体１１２に相対的に独立して搭載物１１４を配置できるようにすることができる。例えば、積載メカニズム１１６は、搭載物１１４が１本、２本、３本またはそれ以上の軸の周りを回転できるようにすることができる。また、積載メカニズム１１６は、搭載物１１４が１本、２本、３本またはそれ以上の軸に沿って線形に移動できるようにすることもできる。回転または並進移動のための軸は、互いに直交しても直交しなくともよい。例えば、搭載物１１４が撮像装置を含む際は、撮像装置は、対象の写真撮影、ビデオ撮影または追跡のために、積載メカニズム１１６を介して本体１１２に相対的に移動することができる。
【００１４】
可動物体１１０は、最大３の並進自由度および／または最大３の回転自由度に対して可動物体１１０を移動するように構成された１つまたは複数の推進ユニット１３０を含み得る。例えば、可動物体１１０がＵＡＶである実施形態では、推進ユニット１３０は、可動物体１１０が最大３の並進自由度および最大３の回転自由度に対して離陸、着陸、ホバリングおよび／または空中移動できるようにすることができる。
【００１５】
本明細書の実施形態での使用には、様々なタイプの推進ユニットが適している。いくつかの実施形態では、推進ユニット１３０は、１つまたは複数の回転翼を含む。回転翼は、シャフトに結合された回転翼の羽根を含み得る。回転翼の羽根およびシャフトは、適切な駆動メカニズムによって回転することができる。例えば、推進ユニット１３０は、ＤＣモータ（例えば、ブラシ付きまたはブラシレス）またはＡＣモータなど、適切ないかなるモータによっても駆動することができる。モータは、回転翼の羽根を装着して駆動するように構成することができる。可動物体１１０の推進ユニット１３０はプロペラベースの４つの回転翼を有するものとして描写されているが、適切ないかなる数、タイプおよび／または配置の推進ユニットも使用することができる。例えば、回転翼の数は、１つ、２つ、３つ、４つ、５つまたはそれ以上であり得る。回転翼は、可動物体１１０に対して垂直に、水平にまたは他の適切な任意の角度で方向付けることができる。回転翼の角度は、固定することも、可変にすることもできる。
【００１６】
可動物体１１０は、制御システム１２０から制御コマンドを受信するようにおよび／または制御システム１２０にデータを送信するように構成される。図１Ａに示される実施形態では、制御システム１２０は、可動物体１１０上に積載されたいくつかのコンポーネントと、可動物体１１０外に配置されたいくつかのコンポーネントとを含む。例えば、制御システム１２０は、可動物体１１０に積載された第１のコントローラ１２２と、可動物体１１０から離れて配置され、通信リンク１２８（例えば、無線周波数（ＲＦ）ベースのリンクなどの無線リンク）を介して接続された第２のコントローラ１２４（例えば、人間が操作するリモートコントローラ）とを含み得る。第１のコントローラ１２２は、これらに限定されないが、推進ユニット１８０および搭載物１６２（例えば、カメラ）の操作を含む、可動物体１１０の活動を指示する命令を実行するコンピュータ可読媒体１２６を含み得る。第２のコントローラ１２４は、１つまたは複数の入力／出力装置（例えば、ディスプレイおよび制御ボタン）を含み得る。いくつかの実施形態では、オペレータは、第２のコントローラ１２４を操作して可動物体１１０をリモート制御し、第２のコントローラ１２４上のディスプレイおよび／または他のインタフェースを介して可動物体１１０からフィードバックを受信する。いくつかの実施形態では、可動物体１１０は自律的に動作し、その事例では、第２のコントローラ１２４は、排除することも、オペレータオーバーライド機能のためだけに使用することもできる。
【００１７】
安全で効率的な操作に備えるため、ＵＡＶおよび他のタイプの無人車両が障害物を避けるために障害物を自律的にもしくは半自律的に検出できることおよび／または回避行動に携われることが有益であり得る。それに加えて、ＵＡＶが半自律的にまたは完全に自律的に動作している際には特に、環境物体を検知することが、ナビゲーション、対象追跡およびマッピングなどのＵＡＶ機能に役立ち得る。
【００１８】
それに従って、本明細書で説明されるＵＡＶは、ＵＡＶの周辺環境の物体を検出するように構成された１つまたは複数のセンサ（例えば、搭載物タイプのセンサとは別のものおよび独立したもの）を含み得る。いくつかの実施形態では、ＵＡＶは、物体とＵＡＶとの間の距離を測定するように構成されたセンサを含み、本明細書では、「距離測定装置」（例えば、図１Ａの距離測定装置１４０）と呼ばれる。距離測定装置は、ＵＡＶの本体の上方、ＵＡＶの本体の下、ＵＡＶの本体の横側またはＵＡＶの本体内などの様々な方法で、ＵＡＶに積載することができる。任意選択により、距離測定装置は、装置がＵＡＶに相対的に並進および／または回転できるようにするジンバルまたは他の積載メカニズムを介してＵＡＶに結合することができる。
【００１９】
いくつかの実施形態では、距離測定装置は、物体までの距離を測定するために光を使用する光学式距離測定装置である。光学式距離測定装置は、ＬＩＤＡＲシステムまたはレーザ距離計であり得る。ＬＩＤＡＲシステムおよびレーザ距離計は、光信号（例えば、レーザパルス）を放出し、物体から反射して戻ってきた光信号を検出し、光の速度および送信から検出までに経過した時間に基づいて物体までの距離を決定することによって、装置と物体との間の距離を測定する。レーザ距離計は、一次元の距離データを提供するが、ＬＩＤＡＲシステムは、複数の異なる角度にわたって光信号を放出することによって、周辺環境の三次元のデータを提供することができる。いくつかの実施形態は、本明細書では、ＬＩＤＡＲシステムの観点から説明されるが、これは単なる例示を目的とし、本技術は、レーザ距離計などの他のタイプの光学式距離測定装置にも適用することができる。それに加えて、本明細書で説明されるいくつかの実施形態は、ＬＩＤＡＲシステムのレーザダイオードによって生成されるレーザビームに特に適用可能であるが、他の実施形態では、他のタイプの放射源（例えば、他のタイプのレーザまたは発光ダイオード（ＬＥＤ））を使用することができる。
【００２０】
図１Ｂは、本技術の代表的な実施形態に従って構成された代表的なＬＩＤＡＲシステム１５０の概略図である。ＬＩＤＡＲシステム１５０のコンポーネントのいくつかまたはすべては、図１Ａの距離測定装置１４０に含めることができる。ＬＩＤＡＲシステム１５０は、光がＬＩＤＡＲシステム１５０と物体１８０との間を移動する時間（飛行時間（ＴＯＦ）としても知られている）を測定することによって、物体１８０までの距離を検出する。システム１５０は、レーザビーム（例えば、１つまたは複数の光パルスの形態で）を生成することができる発光体１５２を含む。レーザビームは、単一のレーザパルスでも一連のレーザパルスでもよい。レンズ１５４は、発光体１５２によって生成されたレーザビームを平行にするために使用することができる。平行光は、ビーム分割装置１５６の方に向けることができる。ビーム分割装置１５６は、光源１５２からの平行光が通過できるようにすることができる。あるいは、ビーム分割装置１５６は、異なるスキームが採用される際（例えば、発光体が検出器の前に配置される際）は不要であり得る。
【００２１】
また、システム１５０は、プリズム、鏡、回折格子、光学フェーズドアレイ（例えば、液晶制御回折格子）またはそれらの組合せなどの様々な光学素子を含み得るビームステアリング装置１５８も含む。これらの異なる光学素子は、外側に向かう光ビーム１６２および１６２'によって示されるように異なる方向に光を誘導するために、共通軸１６０の周りを回転することができる。光学素子の回転は、モータ１６１または他の適切なメカニズムによって作動することができる。
【００２２】
外側に向かうビーム１６２が物体１８０に当たると、反射したまたは散乱した光は大きな角度１６４にわたって広がり、エネルギーのほんの一部のみが反射してシステム１５０に戻ってくる。戻りビーム１６６（例えば、１つまたは複数の戻り光パルスの形態の）は、ビーム分割装置１５６に反射して受信レンズ１６８の方に向けられ、受信レンズ１６８は、戻りビームを検出器１７０に収集および集束させることができる。検出器１７０は、戻り光を受信し、光を電気信号に変換する。物体１８０までの距離を決定するため、測定回路（ＴＯＦユニットなど）を含むコントローラ１７２を使用してＴＯＦを測定することができる。従って、システム１５０は、光源１５２による光パルス１６２の生成と検出器１７０による戻りビーム１６６の受信と間の時間差に基づいて、物体１８０までの距離を測定することができる。
【００２３】
いくつかの実施形態では、センチメートルレベルの正確度で距離測定を得るため、ＬＩＤＡＲシステムなどの光学式距離測定装置によって受信された光パルスは、数百ピコ秒以下程度の時間分解能でサンプリングされる。また、高分解能サンプリングは、超短パルス信号をうまく捕捉する（例えば、ほんの数十ナノ秒から数ナノ秒までのパルス持続時間で）ためにも有益である。多くのＬＩＤＡＲシステムは、光パルス信号のデジタル化を実行するために、高速アナログ／デジタル変換器（ＡＤＣ）（例えば、毎秒１ギガサンプル（ＧＳＰＳ）を超えるサンプリングレートで）に依存している。しかし、高速ＡＤＣは、通常、高コストであり、高い電力消費量を必要とする。その上、高速ＡＤＣサンプリングは、同じ時間間隔における異なる電圧でのアナログ信号サンプリングに基づく（すなわち、時間軸に対するサンプリング）。このように、サンプリングのタイミングは、パルス信号から独立しており、いかなる時間相関もなく、アナログ信号のタイミング情報を抽出するための抽出アルゴリズムが必要である。
【００２４】
本技術は、高速ＡＤＣの使用に依存せずに高い正確度の距離測定を達成する方法を提供する。いくつかの実施形態では、本明細書で説明されるシステムおよび方法は、ＦＰＧＡまたは複雑なプログラマブル論理装置（ＣＰＬＤ）などのフィールドプログラマブル装置を使用して高い正確度の距離測定を提供するように構成される。本明細書の代表的な実施形態はＦＰＧＡを参照して説明されるが、本技術は、ＣＰＬＤなどの他のタイプのフィールドプログラマブル装置を使用して実装することもできる。
【００２５】
ＦＰＧＡは、多種多様な異なる機能を提供するために、ＦＰＧＡが製造された後でユーザがプログラムできる複数の論理ブロックを含む集積回路である。いくつかの実施形態では、ＦＰＧＡは、プログラマブル論理ブロック（例えば、構成可能な論理ブロック（ＣＬＢ）または論理アレイブロック（ＬＡＢ））および入力／出力（Ｉ／Ｏ）ブロックのアレイを含む。論理ブロックおよびＩ／Ｏブロックは、プログラマブルルーティングを介して互いに結合することができる。論理ブロックは、複数の論理セルまたはスライスを含み得る。論理セルまたはスライスは、これらに限定されないが、１つまたは複数のルックアップテーブル（ＬＵＴ）（例えば、３入力または４入力ＬＵＴ）、フリップフロップ、マルチプレクサおよび／または桁上げ論理を含む論理機能を実装するようにユーザが構成することができる複数のコンポーネントを含み得る。
【００２６】
それに従って、ＦＰＧＡは、アナログパルス信号を複数のデジタル信号値にデジタル化すること（パルスデジタル化）、複数のデジタル信号値に対応する複数の時間値を決定すること（時間／デジタル変換）、デジタル信号値および時間値を使用して物体距離を計算することなど、光学式距離測定に伴う動作のいくつかを実行するように構成することができる。本明細書で説明されるＦＰＧＡベースのシステムおよび方法は、比較的に低いコストおよび電力消費量で距離測定におけるセンチメートルレベルの精度を提供するために使用することができる。
【００２７】
図２は、本技術の代表的な実施形態に従って構成されたＦＰＧＡベースの光学式距離測定装置２００の概略図である。光学式距離測定装置は、図１Ｂを参照して上記で説明されるシステム１５０などのＬＩＤＡＲシステムのコンポーネントのいくつかまたはすべてを含み得る。いくつかの実施形態では、装置２００は、図１Ｂの発光体１５２と同様の、外向き光パルス（例えば、レーザパルス）を放出するように構成された発光体２０２と、図１Ｂの光検出器１７０と同様の、物体（例えば、装置２００の周辺環境の物体）から反射した戻り光パルスを受信するように構成された光センサ２０４とを含む。光センサ２０４は、戻り光パルスを表すアナログパルス信号を出力するように構成される（例えば、光エネルギーを電気信号に変換する光検出器を使用して）。
【００２８】
装置２００は、ＦＰＧＡ  ２０８を含む。ＦＰＧＡ  ２０８は、光センサ２０４に結合され、光センサ２０４によって生成されたアナログパルス信号を受信するように構成される。ＦＰＧＡ  ２０８は、アナログパルス信号をデジタル信号に変換してタイミング情報を決定するためにアナログパルス信号を処理するように構成することができる。いくつかの実施形態では、ＦＰＧＡ  ２０８は、アナログパルス信号を複数のデジタル信号値にデジタル化するように構成されたデジタイザ２１０、および／または、複数のデジタル信号値に対応する複数の時間値を決定するように構成された時間／デジタル変換器（ＴＤＣ）２２０を含む。デジタル信号値は、アナログパルス信号の電圧レベルを表し得、対応する時間値は、アナログパルス信号がその電圧レベルにある時点を表し得る。
【００２９】
装置２００は、コントローラ２０６（例えば、図１Ｂのコントローラ１７２と同様のコントローラ）を含み得る。いくつかの実施形態では、コントローラ２０６は、発光体２０に結合され、外向き光パルスの放出を制御し、外向き光パルスが放出された際のタイミング情報を測定する。また、コントローラ２０６は、ＦＰＧＡ  ２０８にも結合することができ、戻り光パルスのタイミング情報を受信し、タイミング情報に少なくとも部分的に基づいて物体までの距離を計算することができる。いくつかの実施形態では、コントローラ２０６は、ＦＰＧＡ  ２０８によって生成されたデジタル信号値および時間値を受信し、デジタル信号値および時間値に基づいて物体までの距離を計算する。例えば、コントローラ２０６は、デジタル信号値および時間値を関数に入力して、関数を使用して戻り光パルスの推定時間値を導き出すことによって、物体距離を計算するように構成することができる。次いで、ＴＯＦ計算において推定時間値を使用して物体までの距離を決定することができる。
【００３０】
コントローラ２０６は、推定時間値を計算するために、多くの異なるタイプの関数を使用することができる。いくつかの実施形態では、関数は、多項式または三角モデルなどのパルス信号モデルである。コントローラ２０６は、デジタル信号値および時間値をパルス信号モデルに適合させ、モデルの形状に基づいて推定時間値を導き出すことができる。例えば、コントローラ２０６は、信号の大きさがその最大値にいつ達するかに基づいて推定時間値を決定することができる。いくつかの実施形態では、コントローラ２０６は、パルス信号と関連付けられた時間値を導き出すために、方形信号モデルにおける信号の幅などの他の基準を使用することができる。
【００３１】
いくつかの実施形態では、コントローラ２０６は、推定時間値を導き出すためにサーチ関数を使用する。コントローラ２０６は、デジタル信号値および時間値に最も近い値の集合を見出すために、データベースまたはＬＵＴにおいて検索することができる。値の集合は、（ｔｉ，Ｖｆｉ）の形態を有し得、Ｖｆｉは電圧レベルであり、ｔｉはその電圧レベルに対応する時間値である。値の集合は、データベースまたはＬＵＴに格納された（Ｔ，Ｖ）の形態の出力時間値または出力タプルにマッピングすることができる。次いで、コントローラは、装置から対応する物体までの距離を決定するために、Ｖに対応するマッピングされた出力タプルからマッピングされた出力時間値またはＴを選択して、ＴＯＦの演算を容易にすることができる。
【００３２】
装置２００のコンポーネントのいくつかまたはすべては、無人車両（例えば、ＵＡＶ）、自律走行車両（例えば、自動運転車）またはロボットなどの可動物体に積載することができる。従って、装置２００は、可動物体が環境内で動作する際に可動物体と周辺物体との間の距離を測定するために使用することができる。いくつかの実施形態では、装置２００は、複雑な動的環境（例えば、装置２００の周辺に多くの物体がある環境、障害物が装置２００に対して急速に移動している環境、温度などの変動条件を伴う環境など）における使用に特に適している。また、装置２００は、複数の自由度に対して急速な移動が可能な可動物体と連動させた使用にも特に適している。
【００３３】
図２は、ＦＰＧＡを使用して距離を測定するための装置の代表的な実施形態を示しているが、装置２００の代替の構成を使用することもできる。例えば、図２は、単一のデジタイザ２１０および単一のＴＤＣ  ２２０を示しているが、ＦＰＧＡ  ２０８は、複数のデジタイザおよび／または複数のＴＤＣを含むこともできる。デジタイザおよびＴＤＣの様々な組合せを使用することができ、例えば、単一のデジタイザをそれぞれの単一のＴＤＣに結合することも、単一のデジタイザを複数のＴＤＣに結合することも、単一のＴＤＣを複数のデジタイザに結合することもできる。
【００３４】
別の例として、いくつかの実施形態では、デジタイザ２１０またはＴＤＣ  ２２０は任意選択のものであり得、その結果、パルスデジタル化プロセスまたは時間／デジタル変換プロセスは、ＦＰＧＡ  ２０８以外の装置によって実行される。例えば、パルスデジタル化は、１つまたは複数の比較器によって実行することができ、時間／デジタル変換は、ＦＰＧＡ  ２０８のＴＤＣ  ２２０によって実行される。あるいは、パルスデジタル化は、ＦＰＧＡ  ２０８のデジタイザ２１０によって実行することができ、ＦＰＧＡ  ２０８以外の装置（例えば、別個のＴＤＣ）が時間／デジタル変換を実行する。
【００３５】
さらなる別の例では、図２ではコントローラ２０６はＦＰＧＡ  ２０８とは別の装置として描写されているが、他の実施形態では、コントローラ２０６は、ＦＰＧＡ  ２０８の一部であり得る。そのような実施形態では、ＦＰＧＡ  ２０８は、コントローラ２０６の機能のいくつかまたはすべてを実行するように構成される。例えば、ＦＰＧＡ  ２０８は、デジタイザ２１０によって生成されたデジタル信号値およびＴＤＣ  ２２０によって生成された時間値を使用して距離計算を実行するように構成することができる。
【００３６】
いくつかの実施形態では、ＴＤＣ  ２２０は、デジタル化アナログパルス信号（例えば、デジタイザ２１０によって生成される）を表す複数のデジタル信号値を受信し、対応する時間値を生成するために各デジタル信号値をサンプリングするように、ＦＰＧＡの１つまたは複数のコンポーネントを構成することによって実装される。いくつかの実施形態では、ＦＰＧＡは、信号の立ち上がりおよび／または立ち下がりエッジに対する時間値を決定するために、経時的なデジタル信号値の値の変化を表す方形波信号を受信し、サンプリングする。方形波信号の立ち上がりおよび／または立ち下がりエッジに対する時間値は、アナログパルス信号が特定の電圧値に達した時点、特定の電圧値を超えた時点および／または特定の電圧値を下回った時点を表し得る。
【００３７】
いくつかの実施形態では、サンプリングは、高時間分解能（例えば、数百ピコ秒以下程度の時間分解能）で実行される。例えば、サンプリングの時間分解能は、約５ピコ秒〜約２０００ピコ秒、約１０ピコ秒〜約１０００ピコ秒、約１ピコ秒〜約５００ピコ秒または約１ピコ秒〜約１００ピコ秒の範囲であり得る。いくつかの実施形態では、サンプリングの時間分解能（例えば、ピコ秒レベルの）は、ＦＰＧＡクロックのクロック周期（例えば、ナノ秒レベルの）より高い。例えば、時間分解能は、ＦＰＧＡのクロック周期より少なくとも２倍、５倍、１０倍、２０倍または１００倍高いものであり得る。
【００３８】
いくつかの実施形態では、ＴＤＣ  ２２０は、一連の遅延ユニットを使用して高時間分解能サンプリングを実行するように構成される。遅延ユニットは、互いに順次結合することができ、その結果、デジタル信号値は、遅延ユニットを通じて順次伝播され、各連続遅延ユニットは、先行遅延ユニットからデジタル信号値の時間遅延バージョンを受信する。従って、デジタル信号値の時間値は、既知の時間間隔においてデジタル信号値を受信した遅延ユニットの数を数えることによって決定することができる。
【００３９】
図３は、本技術の代表的な実施形態に従って構成された高時間分解能を有するＴＤＣ  ２２０の概略図である。ＴＤＣ  ２２０は、以前に論じられるように、ＦＰＧＡ（例えば、ＦＰＧＡ  ２０８）の１つまたは複数のコンポーネントを使用して実装することができる。いくつかの実施形態では、ＴＤＣ  ２２０は、遅延ラインを形成するために、互いに順次結合された一連の遅延ユニット２２２ａ〜２２２ｎを含む。少なくとも１０の、少なくとも２５の、少なくとも５０の、少なくとも１００の、少なくとも２００の遅延ユニットなど、適切ないかなる数の遅延ユニットも使用することができる。遅延ユニット２２２ａ〜２２２ｎは、ＦＰＧＡ内の論理コンポーネントを使用して様々な方法で構成することができる。例えば、複数の遅延ユニット２２２ａ〜２２２ｎは、キャリーチェーンおよび／またはＬＵＴを含み得る。
【００４０】
いくつかの実施形態では、各遅延ユニットは、信号伝送においてピコ秒レベルの遅延を生み出す。遅延時間は、遅延ユニットが最初に入力信号を受信してから（例えば、先行遅延ユニットから）遅延ユニットが入力信号を出力するまで（例えば、次の遅延ユニットに）の時間長に対応し得る。例えば、各遅延ユニットは、約５ピコ秒〜約２０００ピコ秒、約１０ピコ秒〜約１０００ピコ秒、約１ピコ秒〜約５００ピコ秒または約１ピコ秒〜約１００ピコ秒の範囲内で遅延時間を生み出すように構成することができる。いくつかの実施形態では、各遅延ユニットによって生み出される遅延は同じであり、その結果、遅延ユニットは、同じ個々の遅延時間を有する。他の実施形態では、遅延ユニットのいくつかまたはすべては異なる遅延を生み出し、その結果、遅延ユニットのいくつかまたはすべては、異なる個々の遅延時間を有する。
【００４１】
遅延ユニット２２２ａ〜２２２ｎは、アナログパルス信号のデジタル化に対応するデジタル信号値を受信するように構成することができる。いくつかの実施形態では、デジタル信号値は、アナログパルス信号が、特定の時間の電圧レベルより大きいか、少ないかまたは等しいかを表す。デジタル信号値は、経時的なデジタル信号値の変化を表す方形波信号２２８として受信することができる。信号２２８は、遅延ユニット２２２ａ〜２２２ｎの各々を通じて順次送信することができ、その結果、各連続遅延ユニットによって受信された信号は、先行遅延ユニットによって受信された信号より、対応する遅延時間の分だけ遅れる。各遅延ユニットは、信号２２８のエッジを受信した際に出力信号を生成するように構成することができる。例えば、遅延ユニットは、信号２２８の立ち上がりエッジによってトリガされるとデジタル値「１」を出力し、信号２２８の立ち下がりエッジによってトリガされるとデジタル値「０」を出力することができる。
【００４２】
遅延ユニット２２２ａ〜２２２ｎは、ラッチユニット２２４に結合される。ラッチユニット２２４は、遅延ユニット２２２ａ〜２２２ｎが信号２２８によってトリガされると遅延ユニット２２２ａ〜２２２ｎの出力をラッチするように構成することができる。いくつかの実施形態では、ラッチユニット２２４は、複数のラッチを含み、その各々は、対応する遅延ユニットに結合され、信号２２８の立ち上がりまたは立ち下がりエッジによってトリガされるとその遅延ユニットの出力をラッチする（例えば、出力を表すデジタルデータ値を安定に格納することによって）ように構成される。各遅延ユニットのラッチ出力は、ラッチユニット２２４の出力信号を構成する。
【００４３】
ＴＤＣ  ２２０は、クロック信号２３０を受信する（例えば、ＦＰＧＡ  ２０８のクロックから）ように構成される。クロック信号２３０は、数百ＭＨｚ〜ＧＨｚ程度のレートを有し得、その結果、信号２３０は、ナノ秒レベルのクロック周期Ｔｃｋを有する。いくつかの実施形態では、クロック周期は、クロックサイクルの長さ（例えば、クロック信号２３０の立ち上がりエッジから信号２３０の次の立ち上がりエッジまでまたは信号２３０の立ち下がりエッジから信号２３０の次の立ち下がりエッジまでの時間長）に対応する。クロック信号２３０は、ラッチユニット２２４およびカウンタ２２６によって受信することができる。カウンタ２２６は、測定開始からのクロックサイクルの数Ｃｒを数えることができ、その結果、ＴＤＣクロックによって提供される粗時間値は、ＣｒＴｃｋである。各クロックサイクルにおいて（例えば、ＴＤＣ  ２２０がクロック信号２３０の次のエッジを受信する前または受信した際）、ＴＤＣ  ２２０は、信号２２８の立ち上がりまたは立ち下がりエッジに対応する高分解能時間値を提供するために、ラッチユニット２２４のラッチ出力信号に基づいて、信号２２８によってトリガされた遅延ユニットの数を決定することができる。
【００４４】
図４Ａは、本技術の代表的な実施形態による、立ち上がりエッジ信号の時間測定を示すタイミング図である。描写される実施形態では、立ち上がりエッジ信号は、一連の４つの順次結合された遅延ユニットを通じて送信され、その結果、第１の遅延ユニットは信号４１０ａを受信し、第２の遅延ユニットは信号４１０ｂを受信し、第３の遅延ユニットは信号４１０ｃを受信し、第４の遅延ユニットは４１０ｄを受信する。各連続信号は、先行信号より、対応する遅延時間の分だけ遅れる。時間Ｔｃｋでは、各遅延ユニットのラッチ出力がサンプリングされる。描写される実施形態では、第１および第２の遅延ユニットは、既に、信号４１０ａおよび４１０ｂの立ち上がりエッジによってそれぞれトリガされており、その結果、これらの遅延ユニットの出力は両方ともデジタルデータ値「１」である。第３および第４の遅延ユニットは、未だ、信号４１０ｃおよび４１０ｄの立ち上がりエッジによってそれぞれトリガされておらず、その結果、これらの遅延ユニットの出力は両方ともデジタルデータ値「０」である。従って、時間Ｔｃｋにおけるラッチユニット（例えば、図３のラッチユニット２２４）の出力信号は、「１１００」である。立ち上がりエッジ信号の時間値Ｔｒｉｓｉｎｇは、Ｔｒｉｓｉｎｇ＝ＣｒＴｃｋ−Ｃｒ１ｔｄ（式中、ｔｄは、すべての遅延ユニットにわたる平均遅延時間である）の関係を使用して、デジタルデータ値「１」でラッチされた遅延ユニットの数Ｃｒ１に基づいて計算することができる。例えば、図４Ａの実施形態では、信号４１０ａおよび４１０ｂに対応するデジタルデータ値「１」でラッチされた２つの遅延ユニットが存在し、その結果、Ｃｒ１の値は２である。
【００４５】
図４Ｂは、本技術の代表的な実施形態による、立ち下がりエッジ信号の時間測定を示すタイミング図である。描写される実施形態では、立ち上がりエッジ信号は、一連の４つの順次結合された遅延ユニットを通じて送信され、その結果、第１の遅延ユニットは信号４２０ａを受信し、第２の遅延ユニットは信号４２０ｂを受信し、第３の遅延ユニットは信号４２０ｃを受信し、第４の遅延ユニットは信号４２０ｄを受信する。各連続信号は、先行信号より、対応する遅延時間の分だけ遅れる。時間Ｔｃｋでは、各遅延ユニットのラッチ出力がサンプリングされる。描写される実施形態では、第１および第２の遅延ユニットは、既に、信号４２０ａおよび４２０ｂの立ち下がりエッジによってそれぞれトリガされており、その結果、これらの遅延ユニットの出力は両方ともデジタルデータ値「０」である。第３および第４の遅延ユニットは、未だ、信号４２０ｃおよび４２０ｄの立ち下がりエッジによってそれぞれトリガされておらず、その結果、これらの遅延ユニットの出力は両方ともデジタルデータ値「１」である。従って、時間Ｔｃｋにおけるラッチユニット４０４の出力信号は、「００１１」である。立ち下がりエッジ信号の時間値Ｔｆａｌｌｉｎｇは、Ｔｆａｌｌｉｎｇ＝ＣｒＴｃｋ−Ｃｆ１ｔｄ（式中、ｔｄは、すべての遅延ユニットにわたる平均遅延時間である）の関係を使用して、デジタルデータ値「０」でラッチされた遅延ユニットの数Ｃｆ１に基づいて計算することができる。例えば、図４Ｂの実施形態では、信号４２０ａおよび４２０ｂに対応するデジタルデータ値「０」でラッチされた２つの遅延ユニットが存在し、その結果、Ｃｆ１の値は２である。
【００４６】
図５は、本技術の代表的な実施形態による、ＦＰＧＡベースの光学式距離測定装置を製造および操作するための方法５００を示すフロー図である。例えば、方法５００は、光学式距離測定装置２００を製造および操作するために使用することができる。ブロック６００は、ＴＤＣ（例えば、ＴＤＣ  ２２０）を含むＦＰＧＡ（例えば、ＦＰＧＡ  ２０８）を校正するステップを含む。ＴＤＣは、一連の順次結合された遅延ユニットを有する。いくつかの実施形態では、ＦＰＧＡを校正するステップは、遅延ユニットのいくつかまたはすべてと関連付けられた遅延時間を決定するステップを含む。個々の遅延時間は、複数の遅延ユニットにわたる平均遅延時間でも、各遅延ユニットに対して別々に決定される個々の遅延時間でもあり得る。いくつかの実施形態では、ＦＰＧＡを校正するステップは、遅延ユニットの個々の遅延時間を決定するために使用されるデータシーケンスの「バブル」を低減または排除するための技法を使用するステップを含む。ＦＰＧＡを校正するための代表的な方法は、図６〜１０を参照して以下でさらに詳細に説明する。
【００４７】
ブロック７００は、光学式距離測定装置にＦＰＧＡをインストールするステップを含む。いくつかの実施形態では、ＦＰＧＡをインストールするステップは、発光体（例えば、発光体２０２）、光センサ（例えば、光センサ２０４）および／またはコントローラ（例えば、コントローラ２０６）などの光学式距離測定装置（例えば、装置２００）の１つまたは複数のコンポーネントにＦＰＧＡを結合するステップを含む。
【００４８】
ブロック８００は、光学式距離測定装置を使用して物体までの距離を測定するステップを含む。いくつかの実施形態では、光学式距離測定装置は、パルス信号のタイミング情報に少なくとも部分的に基づいて距離を計算する。例えば、タイミング情報は、上記で論じられるように、パルス信号の電圧レベルを表す複数のデジタル信号値に対応する複数の時間値を含み得る。いくつかの実施形態では、タイミング情報は、一連の順次結合された遅延ユニットを備えるＴＤＣを含むＦＰＧＡを使用して測定され、ブロック６００および７００において校正およびインストールされる。ＦＰＧＡは、遅延ユニットの個々の遅延時間に少なくとも部分的に基づいてタイミング情報を測定することができる。任意選択により、タイミング情報は、パルス信号の１つまたは複数の部分に対応する入力信号の時間値を含み、タイミング情報を測定するステップは、時間値を決定するために使用されるデータシーケンスのバブルを低減するための技法を使用するステップを含む。物体までの距離を測定するための例示的な方法は、図１１〜１３を参照して以下でさらに詳細に説明する。
【００４９】
図５は、単一の方法５００の一部として校正プロセス（ブロック６００）、インストレーションプロセス（ブロック７００）および測定プロセス（ブロック８００）を示しているが、いくつかの実施形態では、これらのプロセスは、互いに独立しており、別個のエンティティによって実行することができる。例えば、校正プロセスおよびインストレーションプロセスは、製造業者が実行することができ、測定プロセスは、エンドユーザが実行することができる。それに加えて、プロセス順番は変化し得る。例えば、インストレーションプロセスは、校正プロセスの前に実行することができる。いくつかの実施形態では、１つまたは複数のプロセスは繰り返される。例えば、初期の校正プロセスは、製造業者が実行することができ、エンドユーザは、測定装置を操作する前および／または後に、追加の校正プロセスを実行することができる。
【００５０】
図６は、本技術の代表的な実施形態による、平均遅延時間に基づいてＦＰＧＡを校正するための方法６００ａを示すフロー図である。方法６００ａは、一連の順次結合された遅延ユニットを有するＴＤＣ（例えば、ＴＤＣ  ２２０）を含むＦＰＧＡ（例えば、ＦＰＧＡ  ２０８）を校正するために使用される。いくつかの実施形態では、方法６００ａのプロセスのいくつかまたはすべては、図５の校正プロセス（ブロック６００）におけるサブプロセスとして実行される。
【００５１】
ブロック６０５は、一連の順次結合された遅延ユニットにおいて複数の校正信号を受信するステップを含む。校正信号は、立ち上がりエッジおよび／または立ち下がりエッジを含む方形波信号などのデジタル信号であり得る。いくつかの実施形態では、校正信号は、ランダム化信号（例えば、タイミングに対してランダム化されたもの）である。例えば、校正信号は、方形波信号の立ち上がりおよび／または立ち下がりエッジのタイミングがランダム化されたデジタル方形波信号であり得る。いくつかの実施形態では、ランダム化信号は、ＦＰＧＡのクロック信号に対してランダム化され、その結果、ランダム化信号のタイミングは、クロック信号のタイミングに対してランダム化される（例えば、信号の立ち上がりおよび／または立ち下がりエッジは、ＦＰＧＡのクロックサイクルのいかなるポイントでも起こり得る）。複数の校正信号は、一連の順次結合された遅延ユニットを通じて、順次受信し、伝播することができ、その結果、一連の遅延ユニットは、一度に単一の校正信号を受信し、以前の信号が一連の遅延ユニットを通じて伝播されるまで次の校正信号を受信しない。
【００５２】
ブロック６１０は、ＦＰＧＡの次のクロックサイクルの前にそれを通じて校正信号を伝播することができる一連の順次結合された遅延ユニットにおける遅延ユニットの最大数を決定するステップを含む。最大数は、本明細書では、「ｍａｘｂｉｎ」とも呼ばれる。いくつかの実施形態では、最大数を決定するステップは、順次結合された遅延ユニットを通じて校正信号を伝播するステップと、一連の遅延ユニットを通じた信号の伝播に対応するデータシーケンスを生成するステップと、次のクロックサイクルの前に校正信号を受信した一連の遅延ユニットにおける最後の遅延ユニットを識別するステップとを含む。識別された遅延ユニットは、信号を受信した最後の遅延ユニットであり得る。最大数を決定するステップは、各遅延ユニットの計数を決定するステップも含み得、計数は、遅延ユニットが信号を受信した一連の遅延ユニットにおける最後の遅延ユニットである回数を表す。一連の順次結合された遅延ユニットの計数は、ｍａｘｂｉｎの値を決定するために使用することができる。
【００５３】
データシーケンスは、各種の適切な方法で生成することができる。例えば、以前に論じられるように、各遅延ユニットは、校正信号（例えば、信号の立ち上がりおよび／または立ち下がりエッジ）を受信した際に出力（例えば、デジタル値「１」またはデジタル値「０」）を生成することができ、出力は、対応するラッチ（例えば、ラッチユニット２２４の）によってラッチすることができる。次のＦＰＧＡクロックサイクルの前（例えば、ＴＤＣが次のＦＰＧＡクロック信号エッジを受信する前または受信した際）に、ラッチ出力がサンプリングされ、データシーケンスを生成するために使用される。データシーケンスは、複数のデジタルデータ値を含み得、ラッチされた各出力は、データシーケンスのデジタルデータ値に対応し得る。シーケンスのデジタルデータ値の位置は、一連の遅延ユニットにおける対応する遅延ユニットの位置に対応し得、例えば、第１のデジタルデータ値は第１の遅延ユニットに対応し、第２のデジタルデータ値は第２の遅延ユニットに対応するなど、以下同様である。
【００５４】
生成されたデータシーケンスは、次のクロックサイクルの前に校正信号を受信した一連の遅延ユニットにおける最後の遅延ユニットを識別するために使用することができる。例えば、校正信号が立ち上がりエッジ信号である場合は、データシーケンスは、次のクロックサイクルの前に立ち上がりエッジ信号によってトリガされた遅延ユニットに対応する１つまたは複数のデジタル値「１」の第１のセグメント（例えば、「１１１１１」）を含み得、それに続いて、次のクロックサイクルの前にトリガされなかった遅延ユニットに対応する１つまたは複数のデジタル値「０」の第２のセグメント（例えば、「０００００」）を含み得る。従って、第１のセグメントにおける最後のデジタル値「１」（第２のセグメントのすぐ近隣のデジタル値「１」）は、次のクロックサイクルの前に校正信号を受信した最後の遅延ユニットに対応する。いくつかの実施形態では、第１のセグメントは、１つまたは複数のデジタル値「１」のみを含み、第２のセグメントは、１つまたは複数のデジタル値「０」のみを含む。
【００５５】
別の例として、校正信号が立ち下がりエッジ信号である場合は、データシーケンスは、次のクロックサイクルの前に立ち下がりエッジ信号によってトリガされた遅延ユニットに対応する１つまたは複数のデジタル値「０」の第１のセグメントを含み得、それに続いて、次のクロックサイクルの前にトリガされなかった遅延ユニットに対応する１つまたは複数のデジタル値「１」の第２のセグメントを含み得る。従って、第１のセグメントにおける最後のデジタル値「０」（第２のセグメントのすぐ近隣のデジタル値「０」）は、次のクロックサイクルの前に校正信号を受信した最後の遅延ユニットに対応する。いくつかの実施形態では、第１のセグメントは、１つまたは複数のデジタル値「０」のみを含み、第２のセグメントは、１つまたは複数のデジタル値「１」のみを含む。
【００５６】
各遅延ユニットの計数は、遅延ユニットが信号を受信した最後のユニットとして識別された回数を記録することによって生成することができる。使用されるランダム化校正信号の数がかなり大きい場合は、次のクロックサイクルの前に信号の受信が可能な一連の遅延ユニットにおけるあらゆる遅延ユニット（例えば、累積先行遅延時間がクロック周期を超えない遅延ユニット）は非ゼロ計数を有し、残りの遅延ユニット（例えば、累積先行遅延時間がクロック周期を超える遅延ユニット）はゼロ計数を有すると想定することができる。いくつかの実施形態では、使用されるランダム化校正信号の数は、一連の遅延ユニットにおける遅延ユニットの数より少なくとも１００倍大きい（例えば、３００の遅延ユニットを備えるＦＰＧＡを校正するために３０，０００の信号が使用される）。従って、ｍａｘｂｉｎの値は、非ゼロ計数を有する一連の遅延ユニットにおける最後の遅延ユニットの位置に対応する。例えば、１００の一連の順次結合された遅延ユニットにおいて、遅延ユニット１〜５０が非ゼロ計数を有し、遅延ユニット５１〜１００がゼロ計数を有する場合は、ｍａｘｂｉｎの値は５０である。いくつかの実施形態では、一連の順次結合された遅延ユニットは、ｍａｘｂｉｎの値が一連の遅延ユニットにおける遅延ユニットの数より少なくなり、一連の遅延ユニット全体にわたる累積遅延時間がＦＰＧＡクロック周期を超えるように構成される。
【００５７】
ブロック６１５は、最大数に少なくとも部分的に基づいて一連の順次結合された遅延ユニットの平均遅延時間を決定するステップを含む。いくつかの実施形態では、平均遅延時間は、以下の関係に従って決定され、
【数１】
0006888216.tif 000002
式中、ｔｄは、平均遅延時間であり、Ｔｃｋは、ＦＰＧＡクロック周期である。平均遅延時間は、図１１〜１３を参照して以下で論じられるように、入力信号のタイミング情報を測定するために使用することができる。
【００５８】
図７は、本技術の代表的な実施形態による、個々の遅延時間に基づいてＦＰＧＡを校正するための方法６００ｂを示すフロー図である。方法６００ｂは、一連の順次結合された遅延ユニットを有するＴＤＣ（例えば、ＴＤＣ  ２２０）を含むＦＰＧＡ（例えば、ＦＰＧＡ  ２０８）を校正するために使用される。いくつかの実施形態では、方法６００ｂのプロセスのいくつかまたはすべては、図５の校正プロセス（ブロック６００）におけるサブプロセスとして実行される。方法６００ｂは、遅延ユニットのいくつかまたはすべてが異なる個々の遅延時間を有し、平均遅延時間の使用が十分な正確度を提供しない実施形態において、測定正確度を改善するために有利であり得る。
【００５９】
ブロック６２５は、一連の順次結合された遅延ユニットにおいて複数の校正信号を受信するステップを含む。受信プロセスは、図６のブロック６０５を参照して上記で論じられるように実行することができる。
【００６０】
ブロック６３０は、遅延ユニットがＦＰＧＡの次のクロックサイクルの前に校正信号を受信した一連の遅延ユニットにおける最後の遅延ユニットである回数を表す計数を決定するステップを含む。計数は、図６のブロック６１０を参照して上記で論じられるように、順次結合された遅延ユニットを通じて校正信号を伝播し、一連の遅延ユニットを通じた信号の伝播に対応するデータシーケンスを生成し、次のクロックサイクルの前に校正信号を受信した一連の遅延ユニットにおける最後の遅延ユニットを識別することによって決定することができる。
【００６１】
ブロック６３５は、遅延ユニットの計数に対応する遅延ユニットの個々の遅延時間を決定するステップを含む。いくつかの実施形態では、使用されるランダム化校正信号の数がかなり大きい場合は、遅延ユニットが信号を受信した一連の遅延ユニットにおける最後の遅延ユニットである確率は、その計数に比例し、計数は、その個々の遅延時間に比例する。
【００６２】
図８Ａおよび８Ｂは、計数と個々の遅延時間との間の比例性の代表的な実施形態を提示する。図８Ａは、本技術の代表的な実施形態に従って生成された計数データを示すヒストグラム８００である。ヒストグラム８００は、一連の順次結合された遅延ユニットの計数を含む。示される実施形態では、「１」は、一連の遅延ユニットにおける第１の遅延ユニットに対応し、「ｍａｘｂｉｎ」は、次のＦＰＧＡクロックサイクルの前に信号の受信が可能な一連の遅延ユニットにおける最後の遅延ユニットに対応する。ヒストグラム８００のバーは、各遅延ユニットに対して記録された計数を表し、例えば、Ｃ１は、第１の遅延ユニットの計数を表し、Ｃ２は、第２の遅延ユニットの計数を表すなど、ｍａｘｂｉｎ番目の遅延ユニットの計数を表すＣｍａｘｂｉｎまで、以下同様である。示される実施形態では、一連の遅延ユニット内の異なる遅延ユニットは、異なる計数を有する。
【００６３】
図８Ｂは、本技術の代表的な実施形態による、図８Ａの計数データに対応する一連の順次結合された遅延ユニットの個々の遅延時間８５０の概略図である。示される実施形態では、ブロック（例えば、ブロック１、２、３、４、...、ｍａｘｂｉｎ−４、ｍａｘｂｉｎ−３、ｍａｘｂｉｎ−２、ｍａｘｂｉｎ−１およびｍａｘｂｉｎ）の幅は、一連の遅延ユニットにおける対応する遅延ユニットの個々の遅延時間の長さを表す。図８Ａおよび８Ｂの比較において見られるように、各ブロックの幅は、遅延ユニットの対応する計数に比例する。例えば、第１の遅延ユニットは比較的低い計数Ｃ１を有し、ブロック１は比較的短い幅を有する。別の例として、第２の遅延ユニットは比較的高い計数Ｃ２を有し、ブロック２は比較的短い幅を有する。
【００６４】
再び図７のブロック６３５を参照すると、いくつかの実施形態では、遅延ユニットの個々の遅延時間は、対応する遅延ユニットの計数を順次結合された遅延ユニットの各々の計数の総和で除したものを表す比率に少なくとも部分的に基づいて計算される。例えば、一連の遅延ユニットにおけるｉ番目の遅延ユニットの個々の遅延時間は、以下の関係に従って決定することができ、
【数２】
0006888216.tif 000003
式中、ｔｄｉは、ｉ番目の遅延ユニットの遅延時間であり、Ｔｃｋは、ＦＰＧＡクロック周期であり、Ｃｉは、ｉ番目の遅延ユニットの計数である。その後に、図１１〜１３を参照して以下で論じられるように、遅延ユニットの個々の遅延時間を使用して、入力信号のタイミング情報を測定することができる。
【００６５】
遅延ユニットの計数が、各遅延ユニットが校正信号を受信した一連の遅延ユニットにおける最後の遅延ユニットである回数を正しく反映しない場合は、本明細書で説明される校正技法の正確度を低減する可能性がある。いくつかの実施形態では、そのような不正確度は、データシーケンスの１つまたは複数の「バブル」の存在が原因で、計数を決定するために使用されるデータシーケンスが一連の遅延ユニットを通じた校正信号の伝播に正確に対応しない場合に起こり得る。バブル現象およびバブルの影響を低減するための技法は、図９Ａ〜１０を参照して以下で論じる。
【００６６】
図９Ａは、本技術の代表的な実施形態による、ＴＤＣ  ９２０によって生成されたデータシーケンスのバブルの概略図である。ＴＤＣ  ９２０は、図２のＴＤＣ  ２２０と同様なものであり得る。ＴＤＣ  ９２０は、遅延ユニット９２２ａ〜９２２ｈなど、互いに順次結合された一連の遅延ユニットを含む。遅延ユニットは、ラッチユニット９２４に結合され、ラッチユニット９２４は、入力信号９２８の受信によってトリガされると遅延ユニットの出力をラッチするように構成される。いくつかの実施形態では、ラッチユニット９２４は、複数のラッチを含み、その各々は、対応する遅延ユニットに結合され、その結果、各ラッチは、遅延ユニットが信号９２８によってトリガされると、対応する遅延ユニットの出力をラッチする。例えば、ラッチは、遅延ユニットが立ち上がりエッジ信号によってトリガされるとデジタル値「１」をラッチし、遅延ユニットが立ち下がりエッジ信号によってトリガされるとデジタル値「０」をラッチすることができる。ラッチユニット９２４のラッチ出力は、ＦＰＧＡクロック信号９３０の各クロックサイクルでサンプリングされる（例えば、ＴＤＣが次のクロック信号エッジを受信する前または受信した際）。
【００６７】
いくつかの実施形態では、ラッチの各々は、対応する遅延時間の出力をラッチするための対応するラッチ時間と関連付けられる。ラッチ時間は、遅延ユニットの出力が変化してから（例えば、立ち上がりエッジまたは立ち下がりエッジ信号によってトリガされることに応答して）ラッチが変化した出力をラッチできるまでの時間長に対応し得る。ラッチユニット９２４のラッチのいくつかまたはすべてが異なるラッチ時間を有することも、ラッチユニット９２４のラッチのいくつかまたはすべてが同じラッチ時間を有することもできる。例えば、ラッチは、約１ピコ秒〜約５００ピコ秒の範囲内のラッチ時間を有することができる。
【００６８】
ラッチ時間は、遅延ユニットが入力信号９２８によってトリガされた際に対応する遅延ユニットの出力がうまくラッチされるかどうかに影響を及ぼし得る。いくつかの実施形態では、ラッチ時間が対応する遅延ユニットの個々の遅延時間以下である場合は、ラッチは、信号が一連の遅延ユニットにおける次の遅延ユニットに伝播される前に、変化した出力をうまくラッチすることができる。しかし、いくつかの実施形態では、ラッチ時間が遅延ユニットの個々の遅延時間を超える場合は、ラッチは、信号が次の遅延ユニットに伝播される前に、変化した出力をうまくラッチすることはできない。いくつかの実施形態では、ラッチは、一連の遅延ユニットにおける他の遅延ユニットと比べて、変化した出力をラッチするのが遅れ、その結果、信号は、出力がラッチされる前に、下流の１つまたは複数の遅延ユニットを通じて伝播されることになる。
【００６９】
従って、いくつかの実施形態では、ラッチユニット９２４によって生成されたラッチ出力は、遅延ユニットのうちの１つまたは複数が個々の遅延時間を超えるラッチ時間を有する場合は、一連の遅延ユニットを通じた入力信号９２８の伝播を正確に反映しない可能性がある。例えば、示される実施形態では、信号９２８は、ＦＰＧＡの次のクロックサイクルの前に遅延ユニット９２２ａ〜９２２ｈによって受信される。遅延ユニット９２２ａ〜９２２ｈの出力は、信号９２８によってトリガされると、デジタル値「０」からデジタル値「１」に変化する。遅延ユニット９２２ｂ、９２２ｃ、９２２ｅおよび９２２ｈは、それらの個々の遅延時間以下のラッチ時間を有し、その結果、それらの出力は、デジタル値「１」としてラッチユニット９２４によってラッチされる。遅延ユニット９２２ａ、９２２ｄ、９２２ｆおよび９２２ｇは、それらの個々の遅延時間を超えるラッチ時間を有し、その結果、それらの出力は、信号９２８を受信した場合であっても、現在のクロックサイクルが終了しても、依然として、デジタル値「０」としてラッチされる。
【００７０】
遅延ユニットの少なくともいくつかが個々の遅延時間を超えるラッチ時間を有する、ＴＤＣによって生成されたデータシーケンスは、「バブル」を含み得る。いくつかの実施形態では、バブルは、近隣のデジタル値「０」間の少なくとも１つのデジタル値「１」（例えば、「０１０」または「０１１０」）であるか、または、近隣のデジタル値「１」間の少なくとも１つのデジタル値「０」（例えば、「１０１」または「１００１」）である。バブルの少なくとも１つのデジタルデータ値は、その個々の遅延時間を超えるラッチ時間を有する遅延ユニットのラッチ出力に対応し得る。いくつかの実施形態では、バブルセグメントは、１つまたは複数のバブルを含み、例えば、近隣のデジタル値「０」間の少なくとも１つのデジタル値「１」、近隣のデジタル値「１」間の少なくとも１つのデジタル値「０」またはその両方である。バブルの少なくとも１つのデジタルデータ値は、その個々の遅延時間を超えるラッチ時間を有する遅延ユニットのラッチ出力に対応し得る。例えば、図９Ａの実施形態では、遅延ユニット９２２ａ〜９２２ｈのラッチ出力に対応するバブルセグメントは、「０１１０１００１」である。
【００７１】
図９Ｂは、本技術の代表的な実施形態による、バブルによる影響を受けた計数データを示すヒストグラム９５０である。図６および７を参照して上記で論じられるように、各遅延ユニットの計数は、遅延ユニットが校正信号を受信した最後のユニットとして識別された回数を記録することによって生成することができる。いくつかの実施形態では、個々の遅延時間より長いラッチ時間を有する遅延ユニットは、そのラッチ出力は遅延ユニットが校正信号を受信したことを示さないため、正しく数えることができない。例えば、ヒストグラム９５０では、遅延ユニット１２９、１３２、１３３および１３７は、それらのラッチ時間がそれらの個々の遅延時間より長いため、ゼロ計数を有する。個々の遅延時間を決定するために計数が使用される実施形態では、図７を参照して上記で論じられるように、誤った計数が、個々の遅延時間が決定される正確度を低減する。
【００７２】
図１０は、本技術の代表的な実施形態による、バブルの影響を低減または排除するためにＦＰＧＡを校正するための方法６００ｃを示すフロー図である。方法６００ｃは、一連の順次結合された遅延ユニットを有するＴＤＣ（例えば、ＴＤＣ  ２２０）を含むＦＰＧＡ（例えば、ＦＰＧＡ  ２０８）を校正するために使用される。いくつかの実施形態では、方法６００ｃのプロセスのいくつかまたはすべては、図５の校正プロセス（ブロック６００）におけるサブプロセスとして実行される。方法６００ｃは、遅延ユニットのいくつかまたはすべてがそれらの個々の遅延時間を超えるラッチ時間を有する実施形態において、校正正確度を改善するために有利であり得る。
【００７３】
ブロック６４５は、一連の順次結合された遅延ユニットにおいて複数の校正信号を受信するステップを含む。受信プロセスは、図５のブロック６０５を参照して上記で論じられるように実行することができる。
【００７４】
ブロック６５０は、遅延ユニットの個々の遅延時間を決定するステップを含む。いくつかの実施形態では、個々の遅延時間を決定するステップは、図６および７を参照して上記で論じられる方法に従って実行される。例えば、ブロック６５０は、図６のブロック６１０および図７のブロック６３０を参照して上記で説明されるように、遅延ユニットがＦＰＧＡの次のクロックサイクルの前に校正信号を受信した一連の遅延ユニットにおける最後の遅延ユニットとして識別された回数を表す計数を決定するステップを含み得る。計数は、図６のブロック６１０および図７のブロック６３０を参照して上記で説明されるように、順次結合された遅延ユニットを通じて校正信号を伝播し、一連の遅延ユニットを通じた信号の伝播に対応するデータシーケンスを生成し、次のクロックサイクルの前に校正信号を受信した一連の遅延ユニットにおける最後の遅延ユニットを識別することによって決定することができる。個々の遅延時間は、図７のブロック６３５を参照して上記で説明されるように、遅延ユニットの計数に少なくとも部分的に基づいて決定することができる。
【００７５】
いくつかの実施形態では、ブロック６５０は、第１のセグメント、第２のセグメントおよびバブルセグメントを有するデータシーケンスを生成するステップ（ブロック６５２）を含む。データシーケンスは、図６のブロック６１０および図７のブロック６３０を参照して上記で説明されるように、一連の順次結合された遅延ユニットを通じた校正信号の伝播に対応し得る。例えば、データシーケンスは、図６のブロック６１０および図７のブロック６３０を参照して上記で説明されるように、一連の遅延ユニットに結合されたラッチユニットのラッチ出力を含むことも、同ラッチ出力に対応することもあり得る。
【００７６】
いくつかの実施形態では、第１のセグメントは、１つまたは複数のデジタル値「１」を含む。第１のセグメントは、デジタル値「１」のみを含み得、例えば、実施形態に応じて、１つのデジタル値「１」のみまたは複数のデジタル値「１」のみを含み得る。いくつかの実施形態では、第２のセグメントは、１つまたは複数のデジタル値「０」を含む。第２のセグメントは、デジタル値「０」のみを含み得、例えば、実施形態に応じて、１つのデジタル値「０」のみまたは複数のデジタル値「０」のみを含み得る。バブルセグメントは、近隣のデジタル値「０」間の少なくとも１つのデジタルデータ値「１」および／または近隣のデジタルデータ値「１」間の少なくとも１つのデジタル値「０」を含み得る。バブルセグメントは、その個々の遅延時間より短いラッチ時間を有する少なくとも１つの遅延ユニットに対応し得る。
【００７７】
いくつかの実施形態では、バブルセグメントは、第１のセグメントと第２のセグメントとの間に配置される。第１のセグメントは、第２のセグメントの前に配置することができ、その結果、第１のセグメントは、データシーケンスの始まりからバブルセグメントまで延在し、第２のセグメントは、バブルセグメントからデータシーケンスの終わりまで延在する。第２のセグメントは、第１のセグメントの前に配置することができ、その結果、第２のセグメントは、データシーケンスの始まりからバブルセグメントまで延在し、第１のセグメントは、バブルセグメントからデータシーケンスの終わりまで延在する。
【００７８】
ブロック６５０は、データシーケンスを修正するステップ（ブロック６５４）を含み得る。いくつかの実施形態では、修正プロセスは、データシーケンスの１つまたは複数のバブルを低減または排除するステップを伴う。例えば、修正プロセスは、バブルを低減または排除するために、バブルセグメントの１つまたは複数のデジタルデータ値を再配置するステップを含み得る。修正プロセスは、バブルセグメントの少なくとも１つのデジタルデータ値「１」を第１のセグメントの方（例えば、第１のセグメントのすぐ近隣）に移動するステップと、バブルセグメントの少なくとも１つのデジタルデータ値「０」を第２のセグメントの方（例えば、第２のセグメントのすぐ近隣）に移動するステップとを含み得る。いくつかの実施形態では、修正済みのデータシーケンスは、デジタルデータ値「０」のみの第２のセグメントに隣接するデジタルデータ値「１」のみの第１のセグメントを含む。例えば、再び図９Ａの実施形態を参照すると、初期のデータシーケンスが「１１１１１０１１０１００１０００００」（下線が引かれた数字はバブルセグメントに対応する）である場合は、バブルセグメントなしの修正済みのデータシーケンスは、「１１１１１１１１１０００００００００」であり得る。
【００７９】
ブロック６５０は、データシーケンスの修正に対応する遅延ユニットを識別するステップ（ブロック６５６）を含み得る。いくつかの実施形態では、第１のセグメントは、第２のセグメントの前に配置され、識別された遅延ユニットは、データシーケンスの最後のデジタルデータ値「１」または第２のセグメントに隣接するデジタルデータ値「１」（例えば、「１１１１００００」の下線が引かれた数字などの第２のセグメンのすぐ近隣のデジタルデータ値「１」）に対応する。いくつかの実施形態では、第２のセグメントは、第１のセグメントの前に配置され、識別された遅延ユニットは、データシーケンスの最後のデジタルデータ値「０」または第１のセグメントに隣接するデジタルデータ値「０」（例えば、「００００１１１１」の下線が引かれた数字などの第１のセグメンのすぐ近隣のデジタルデータ値「０」）に対応する。
【００８０】
識別された遅延ユニットは、図６のブロック６１０および図７のブロック６３０を参照して上記で説明されるように、遅延ユニットの計数を計算するために使用することができる。いくつかの実施形態では、識別された遅延ユニットは、実際には信号を受信した最後のユニットではない場合であっても、計数を計算する目的で、次のＦＰＧＡクロックサイクルの前に校正信号を受信した一連の遅延ユニットにおける「最後の」遅延ユニットと見なすことができる。計数は、図７のブロック６３５を参照して上記で説明されるように、遅延ユニットの個々の遅延時間を決定するために使用することができる。
【００８１】
いくつかの実施形態では、データシーケンスは、実際には、遅延ユニットを識別するために修正する必要はなく、その結果、ブロック６５４は任意選択のものである。例えば、遅延ユニットは、修正済みのデータシーケンスに対応するかまたは修正済みのデータシーケンスを表す第２のデータシーケンスに基づいて識別することができる。別の例として、遅延ユニットは、どの遅延ユニットが修正済みのデータシーケンスの最後のデジタルデータ値「１」または最後のデジタルデータ値「０」に対応するかを決定することによって（シーケンスのデジタルデータ値「１」の総数またはデジタルデータ値「０」の総数を決定することによってなど）識別することができる。
【００８２】
方法６００ａ〜６００ｃは図６、７および１０では別々に示されているが、これらの方法は、互いに組み合わせて実行することもでき、その結果、ＦＰＧＡを校正するステップ（図５のブロック６００）は、これらの方法の２つ以上を順次にまたは同時に実行することを伴う。例えば、図７の方法６００ｂは、図１０の方法６００ｃと組み合わせて実行することができる。いくつかの実施形態では、計数を決定するステップ（図７のブロック６３０）は、データシーケンスを生成するステップ（図１０のブロック６５２）、データシーケンスを修正するステップ（図１０のブロック６５４）および／または修正に対応する遅延ユニットを識別するステップ（図１０のブロック６５６）を含む。
【００８３】
図１１は、本技術の代表的な実施形態による、光学式距離測定装置を使用して物体までの距離を測定するための方法８００を示すフロー図である。いくつかの実施形態では、方法８００のプロセスのいくつかまたはすべては、図５の測定プロセス（ブロック８００）のサブプロセスとして実行される。
【００８４】
ブロック８１０は、外向き光パルスを放出するステップを含む。光パルスは、ＬＩＤＡＲシステムの発光体（例えば、図１Ｂの発光体１５２または図２の発光体２０２）が放出することができる。
【００８５】
ブロック８２０は、物体から反射した戻り光パルスを受信するステップを含む。戻り光パルスは、物体からの外向き光パルスの反射であり得る。戻り光パルスは、ＬＩＤＡＲシステムの光センサ（例えば、図１Ｂの光検出器１７０または図２の光センサ２０４）が受信することができる。
【００８６】
ブロック８３０は、戻り光パルスを表すパルス信号を出力するステップを含む。例えば、ＬＩＤＡＲシステムの光センサ（例えば、図１Ｂの光検出器１７０または図２の光センサ２０４）は、戻り光パルスの光エネルギーを電気信号に変換するために使用することができる。
【００８７】
ブロック８４０は、ＦＰＧＡを使用してパルス信号のタイミング情報を測定するステップを含む。いくつかの実施例では、ＦＰＧＡは、図５のブロック６００および７００を参照して上記で説明されるように校正およびインストールされる。例えば、ＦＰＧＡは、図６、７および１０の方法６００ａ〜６００ｃのうちの１つまたは複数に従って校正することができる。ＦＰＧＡは、順次結合された遅延ユニットの１つまたは複数の個々の遅延時間に少なくとも部分的に基づいてタイミング情報を測定するように構成されたＴＤＣを含み得、個々の遅延時間は、校正の間に決定することができる（例えば、図７の方法６００ｂおよび／または図１０の方法６００ｃを使用して）。遅延ユニットの少なくともいくつかは、異なる個々の遅延時間を有し得る。任意選択により、ＴＤＣは、ＴＤＣによって生成されるデータシーケンスのバブルを低減または排除するための技法を使用してタイミング情報を測定することができる。タイミング情報を測定するための例示的な方法は、図１２および１３を参照して以下で論じる。
【００８８】
ブロック８６０は、タイミング情報に少なくとも部分的に基づいて物体までの距離を計算するステップを含む。いくつかの実施形態では、計算するステップは、コントローラ（例えば、システム２００のコントローラ２０６）を使用して実行される。コントローラは、ＦＰＧＡの一部として含めても、ＦＰＧＡとは別個の装置でもよい。距離計算は、以前に論じられるように、パルス信号のタイミング情報を使用して物体距離を決定することを含み得る。
【００８９】
方法８００のプロセスのいくつかまたはすべては、無人車両（例えば、ＵＡＶ）またはロボットなどの可動物体に搭載されるコンポーネントを使用して実行することができる。いくつかの実施形態では、発光体、光センサ、ＦＰＧＡおよび／またはコントローラは、可動物体（例えば、ＵＡＶ、自律走行車両またはロボット）に積載され、方法８００は、計算された物体までの距離に少なくとも部分的に基づいて可動物体の動作を制御するステップをさらに含む。例えば、計算された距離は、可動物体の動きを制御するための基礎として使用することができる。
【００９０】
図１２は、本技術の代表的な実施形態による、個々の遅延時間に少なくとも部分的に基づいてタイミング情報を測定するための方法８４０ａを示すフロー図である。いくつかの実施形態では、方法８４０ａのプロセスのいくつかまたはすべては、一連の順次結合された遅延ユニットを有するＴＤＣを使用して実行される。方法８４０ａのプロセスのいくつかまたはすべては、図１１の測定プロセス（ブロック８４０）のサブプロセスであり得る。
【００９１】
ブロック８４１は、一連の順次結合された遅延ユニットを通じて入力信号を伝播するステップを含む。入力信号は、戻り光パルスを表すパルス信号の１つまたは複数の部分に対応し得る。いくつかの実施形態では、入力信号は、方形波信号であり、方形波信号の立ち上がりおよび／または立ち下がりエッジは、パルス信号が特定の電圧値に達した時点、特定の電圧値を超えた時点および／または特定の電圧値を下回った時点を表す。
【００９２】
ブロック８４２は、一連の順次結合された遅延ユニットを使用して入力信号の細時間値を決定するステップを含む。いくつかの実施形態では、ブロック８４２は、ＦＰＧＡの次のクロックサイクルの前に入力信号を受信した一連の順次結合された遅延ユニットのサブセットを識別するステップを含む。サブセットは、遅延ユニットのラッチ出力を表すデータシーケンスに少なくとも部分的に基づいて識別することができる。例えば、入力信号が立ち上がりエッジ信号である場合は、データシーケンスは、次のクロックサイクルの前に信号を受信した遅延ユニットのサブセットに対応するデジタル値「１」の第１のセグメントを含み得、それに続いて、信号を受信しなかった遅延ユニットのサブセットに対応するデジタル値「０」の第２のセグメントを含み得る。別の例として、入力信号が立ち下がりエッジ信号である場合は、データシーケンスは、次のクロックサイクルの前に信号を受信した遅延ユニットのサブセットに対応するデジタル値「０」の第１のセグメントを含み得、それに続いて、信号を受信しなかった遅延ユニットのサブセットに対応するデジタル値「１」の第２のセグメントを含み得る。
【００９３】
いくつかの実施形態では、細時間値は、サブセットの個々の遅延時間の総和に対応する。例えば、遅延ユニット１〜ｎのサブセットによって受信された信号の細時間値は、以下の関係に従って計算することができ、
【数３】
0006888216.tif 000004
式中、Ｔｆは、細時間値であり、Ｔｃｋは、ＦＰＧＡクロック周期であり、Ｃｉは、ｉ番目の遅延ユニットの計数であり、Ｃｊは、ｊ番目の遅延ユニットの計数である。
【００９４】
ブロック８４３は、ＦＰＧＡのクロック信号に基づいて入力信号の粗時間値を決定するステップを含む。いくつかの実施形態では、粗時間値は、以下の関係に従って計算され、
Ｔｃ＝Ｃｃ×Ｔｃｋ
式中、Ｔｃは、粗時間値であり、Ｔｃｋは、ＦＰＧＡクロック周期であり、Ｃｃは、測定の間に経過したクロックサイクルの数の粗計数である。
【００９５】
ブロック８４４は、粗時間値と細時間値との差を決定するステップを含む。いくつかの実施形態では、タイミング情報は、以下の関係に従って決定され、
Ｔ＝Ｔｃ−Ｔｆ
式中、Ｔは、タイミング情報であり、Ｔｃは、粗時間値であり、Ｔｆは、細時間値である。細時間値の時間分解能（例えば、ピコ秒レベルの分解能）は、粗時間値の時間分解能（例えば、ナノ秒レベル）より高いものであり得、その結果、結果として生じるタイミング情報は、そうでなければ粗時間値単独での使用によって可能であろう時間分解能より高い時間分解能（例えば、ピコ秒レベルの分解能）を有する。
【００９６】
図１３は、本技術の代表的な実施形態による、バブルを低減するための技法を使用してタイミング情報を測定するための方法８４０ｂを示すフロー図である。いくつかの実施形態では、方法８４０ｂのプロセスのいくつかまたはすべては、一連の順次結合された遅延ユニットを有するＴＤＣを使用して実行される。方法８４０ｂのプロセスのいくつかまたはすべては、図１１の測定プロセス（ブロック８４０）のサブプロセスであり得る。
【００９７】
ブロック８４５は、一連の順次結合された遅延ユニットを通じて入力信号を伝播するステップを含む。入力信号を伝播するステップは、図１２のブロック８４１を参照して上記で説明されるように実行することができる。
【００９８】
ブロック８４６は、第１のセグメント、第２のセグメントおよびバブルセグメントを有するデータシーケンスを生成するステップを含む。データシーケンスは、一連の順次結合された遅延ユニットを通じた入力信号の伝播に対応し得る。データシーケンスを生成するステップは、図１０のブロック６５２を参照して上記で説明されるように実行することができる。
【００９９】
ブロック８４７は、データシーケンスを修正するステップを含む。データシーケンスを修正するステップは、図１０のブロック６５４を参照して上記で説明されるように実行することができる。いくつかの実施形態では、修正は、実際には、方法８４０ｂで実行する必要はなく、その結果、ブロック８４７は任意選択のものである。
【０１００】
ブロック８４８は、データシーケンスの修正に対応する時間値を決定するステップを含む。いくつかの実施形態では、時間値を決定するステップは、図１０のブロック６５６を参照して上記で説明されるように、データシーケンスの修正に対応する遅延ユニットを識別するステップを含む。時間値は、一連の遅延ユニットにおける識別された遅延ユニットおよび識別された遅延ユニットに先行する少なくとも１つの遅延ユニットを含むユニットのサブセットの個々の遅延時間の総和に対応する細時間値であり得る。いくつかの実施形態では、サブセットは、一連の遅延ユニットにおける識別された遅延ユニットおよび識別された遅延ユニットに先行するすべての遅延ユニットを含む。サブセットの細時間値は、図１２のブロック８４２を参照して上記で説明されるように計算することができる。
【０１０１】
ブロック８４９は、データシーケンスの修正と関連付けられた遅延時間を補償する調整された時間値を決定するステップを含む。いくつかの実施形態では、データシーケンスの修正に対応する時間値は、入力信号の実際の時間値に対する遅延時間を含む。遅延時間は定数値であり得、ＦＰＧＡの校正（例えば、方法５００のブロック６００）の間に決定することができる。例えば、遅延時間は、既知の時間値で入力信号を測定し、既知の時間値とブロック８４８に従って決定された時間値との差を計算することによって決定することができる。別の例として、遅延時間は、光学式測定デバイからの既知の距離にある物体を測定し、既知の距離に基づいて決定することができる物体からの戻りパルス信号の実際の時間値とブロック８４８に従って決定された時間値との差を計算することによって決定することができる。いくつかの実施形態では、調整された時間値は、本明細書で説明されるプロセスのいくつかまたはすべての間に入力信号がそれを通じて送信される信号チェーンと関連付けられた遅延時間などの他のタイプの遅延を補償するように構成される。
【０１０２】
方法８４０ａおよび８４０ｂは、図１２および１３では別々に示されているが、これらの方法は、互いに組み合わせて実行することもでき、その結果、タイミング情報を測定するステップ（図１１のブロック８４０）は、これらの２つの方法を順次にまたは同時に実行するステップを伴う。例えば、いくつかの実施形態では、入力信号の細時間値を決定するステップ（図１２のブロック８４２）は、データシーケンスを生成するステップ（図１３のブロック８４６）、データシーケンスを修正するステップ（図１３のブロック８４７）、修正に対応する時間値を決定するステップ（図１３のブロック８４８）および／または調整された時間値を決定するステップ（図１３のブロック８４９）を含む。
【０１０３】
３．さらなる代表的な実施形態
本技術のさらなる代表的な実施形態は、物体までの距離を測定するための装置を含む。装置は、外向き光パルスを放出するように構成された発光体と、物体から反射した戻り光パルスを受信し、戻り光パルスを表すパルス信号を出力する光センサとを含む。装置は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）をさらに含み、ＦＰＧＡは、光センサに結合され、一連の順次結合された遅延ユニットを有する時間／デジタル変換器（ＴＤＣ）を含む。個々の順次結合された遅延ユニットは、対応する個々の遅延時間と関連付けられる。順次結合された遅延ユニットの少なくともいくつかは、異なる個々の遅延時間を有する。ＴＤＣは、順次結合された遅延ユニットの個々の遅延時間に少なくとも部分的に基づいてパルス信号のタイミング情報を測定する。装置は、タイミング情報に基づいて物体までの距離を計算するコントローラをさらに含む。
【０１０４】
いくつかの実施形態では、発光体、光センサ、ＦＰＧＡおよびコントローラは、無人航空機、自律走行車両またはロボットに積載される。
【０１０５】
いくつかの実施形態では、ＴＤＣは、一連の順次結合された遅延ユニットを通じて入力信号を伝播することによってタイミング情報を測定する。入力信号は、パルス信号の１つまたは複数の部分に対応し得る。ＴＤＣは、一連の順次結合された遅延ユニットを使用して入力信号の細時間値を決定し、ＦＰＧＡの経過したクロックサイクルの数に基づいて入力信号の粗時間値を決定するようにさらに構成することができる。いくつかの実施形態では、細時間値は、ＦＰＧＡの次のクロックサイクルの前に入力信号を受信した一連の順次結合された遅延ユニットのサブセットの個々の遅延時間の総和に対応する。タイミング情報は、粗時間値と細時間値との差に対応し得る。細時間値の時間分解能は、粗時間値の時間分解能より高いものであり得る。
【０１０６】
いくつかの実施形態では、ＴＤＣは、複数のラッチを有するラッチユニットを含み、個々のラッチは、対応する順次的な遅延ユニットに結合される。
【０１０７】
本技術のさらなる代表的な実施形態は、物体までの距離を測定するための方法を含む。方法は、発光体によって、外向き光パルスを放出するステップと、光センサにおいて、物体から反射した戻り光パルスを受信するステップとを含む。方法は、光センサによって、戻り光パルスを表すパルス信号を出力するステップを含む。方法は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を使用して、パルス信号のタイミング情報を測定するステップを含む。ＦＰＧＡは、一連の順次結合された遅延ユニットを有する時間／デジタル変換器（ＴＤＣ）を含む。個々の順次結合された遅延ユニットは、対応する個々の遅延時間と関連付けられる。順次結合された遅延ユニットの少なくともいくつかは、異なる個々の遅延時間を有する。ＴＤＣは、順次結合された遅延ユニットの個々の遅延時間に少なくとも部分的に基づいてパルス信号のタイミング情報を測定する。方法は、コントローラを使用して、タイミング情報に基づいて物体までの距離を計算するステップをさらに含む。
【０１０８】
いくつかの実施形態では、タイミング情報を測定するステップは、一連の順次結合された遅延ユニットを通じて入力信号を伝播するステップを含み、入力信号は、パルス信号の１つまたは複数の部分に対応する。タイミング情報を測定するステップは、一連の順次結合された遅延ユニットを使用して入力信号の細時間値を決定するステップをさらに含み得る。タイミング情報を測定するステップは、ＦＰＧＡの経過したクロックサイクルの数に基づいて入力信号の粗時間値を決定するステップをさらに含み得る。
【０１０９】
いくつかの実施形態では、細時間値を決定するステップは、入力信号が一連の順次結合された遅延ユニットを通じて伝播される際に、複数のラッチを使用して、一連の順次結合された遅延ユニットの出力をラッチするステップを含む。細時間値を決定するステップは、ラッチ出力を使用して、一連の順次結合された遅延ユニットのサブセットを識別するステップを含み得る。細時間値を決定するステップは、ラッチ出力を使用して、ＦＰＧＡの次のクロックサイクルの前に入力信号を受信した一連の順次結合された遅延ユニットにおける最後の遅延ユニットを識別するステップを含み得る。
【０１１０】
本技術のさらなる代表的な実施形態は、光学式距離測定装置を製造するための方法を含む。方法は、時間／デジタル変換器（ＴＤＣ）を含むフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を光学式距離測定装置にインストールするステップを含み、ＴＤＣは、一連の順次結合された遅延ユニットを含む。ＦＰＧＡは、以下の方法、すなわち、一連の順次結合された遅延ユニットにおいて複数の校正信号を受信するステップおよび対応する順次結合された遅延ユニットの個々の遅延時間を決定するステップに従って校正されている。個々の遅延時間は、対応する遅延ユニットがＦＰＧＡの次のクロックサイクルの前に校正信号を受信した一連の順次結合された遅延ユニットにおける最後の遅延ユニットである回数を表す計数に対応する。
【０１１１】
いくつかの実施形態では、方法は、一連の順次結合された遅延ユニットにおいて複数の校正信号を受信し、対応する順次結合された遅延ユニットの個々の遅延時間を決定することによって、ＦＰＧＡを校正するステップをさらに含む。複数の校正信号は、複数のランダム化信号を含み得る。複数のランダム化信号は、ＦＰＧＡのクロック信号に対してランダム化することができる。
【０１１２】
いくつかの実施形態では、順次結合された遅延ユニットの少なくともいくつかは、異なる個々の遅延時間を有する。対応する遅延ユニットの個々の遅延時間は、遅延ユニットの計数に比例し得る。いくつかの実施形態では、方法は、対応する遅延ユニットの計数を順次結合された遅延ユニットの各々の計数の総和で除したものを表す比率に少なくとも部分的に基づいて個々の遅延時間を計算するステップをさらに含む。
【０１１３】
いくつかの実施形態では、方法は、一連の順次結合された遅延ユニットを通じて複数の校正信号を伝播するステップをさらに含む。方法は、校正信号が一連の順次結合された遅延ユニットを通じて伝播される際に、複数のラッチを使用して、一連の順次結合された遅延ユニットの出力をラッチするステップをさらに含み得る。方法は、ラッチ出力を使用して、ＦＰＧＡの次のクロックサイクルの前に校正信号を受信した一連の順次結合された遅延ユニットにおける最後の遅延ユニットを識別するステップをさらに含み得る。
【０１１４】
本技術のさらなる代表的な実施形態は、物体までの距離を測定するための装置を含む。装置は、外向き光パルスを放出するように構成された発光体と、物体から反射した戻り光パルスを受信し、戻り光パルスを表すパルス信号を出力する光センサとを含む。装置は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）をさらに含み、ＦＰＧＡは、光センサに結合され、一連の順次結合された遅延ユニットを有する時間／デジタル変換器（ＴＤＣ）を含む。ＴＤＣは、一連の順次結合された遅延ユニットを通じて入力信号を伝播することによってパルス信号のタイミング情報を測定するように構成され、入力信号は、パルス信号の１つまたは複数の部分に対応する。ＴＤＣは、デジタルデータ値「１」のみの第１のセグメント、デジタルデータ値「０」のみの第２のセグメントおよび第１のセグメントと第２のセグメントとの間のバブルセグメントを有するデータシーケンスを生成するようにさらに構成される。バブルセグメントは、近隣のデジタル値「０」間の少なくとも１つのデジタルデータ値「１」および／または近隣のデジタルデータ値「１」間の少なくとも１つのデジタル値「０」を含む。ＴＤＣは、データシーケンスの修正に対応する時間値を決定するようにさらに構成され、データシーケンスの修正では、バブルセグメントの少なくとも１つのデジタルデータ値「１」は、第１のセグメントの方に移動され、バブルセグメントの少なくとも１つのデジタルデータ値「０」は、第２のセグメントの方に移動される。装置は、タイミング情報に少なくとも部分的に基づいて物体までの距離を計算するコントローラをさらに含む。
【０１１５】
いくつかの実施形態では、ＴＤＣは、一連の順次結合された遅延ユニットに結合されたラッチユニットを含む。ラッチユニットは、複数のラッチを含み得、個々のラッチは、順次結合された遅延ユニットの対応する遅延ユニットに結合することができ、対応する遅延ユニットの出力をラッチするように構成される。データシーケンスは、複数のラッチによってラッチされた出力を含み得る。
【０１１６】
いくつかの実施形態では、個々のラッチは、対応する遅延ユニットの出力をラッチするための対応するラッチ時間と関連付けられる。ラッチの少なくとも１つは、対応する遅延ユニットの個々の遅延時間を超えるラッチ時間を有し得る。バブルセグメントの少なくとも１つのデジタルデータ値は、少なくとも１つのラッチによってラッチされた出力に対応し得る。
【０１１７】
いくつかの実施形態では、ＴＤＣは、データシーケンスの修正に対応する遅延ユニットを識別することによって時間値を決定するように構成される。第１のセグメントは、第２のセグメントの前に配置することができ、識別された遅延ユニットは、データシーケンスの修正における第２のセグメントに隣接する第１のセグメントのデジタルデータ値「１」に対応し得る。第２のセグメントは、第１のセグメントの前に配置することができ、識別された遅延ユニットは、信号の修正における第１のセグメントに隣接する第２のセグメントのデジタルデータ値「０」に対応し得る。
【０１１８】
いくつかの実施形態では、ＴＤＣは、データシーケンスの修正と関連付けられた遅延時間を補償する調整された時間値を決定するようにさらに構成される。
【０１１９】
本技術のさらなる代表的な実施形態は、物体までの距離を測定するための方法を含む。方法は、発光体によって、外向き光パルスを放出するステップと、光センサにおいて、物体から反射した戻り光パルスを受信するステップとを含む。方法は、光センサによって、戻り光パルスを表すパルス信号を出力するステップをさらに含む。方法は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を使用して、パルス信号のタイミング情報を測定するステップをさらに含む。ＦＰＧＡは、一連の順次結合された遅延ユニットを有する時間／デジタル変換器（ＴＤＣ）を含む。ＴＤＣは、一連の順次結合された遅延ユニットを通じて入力信号を伝播することによってパルス信号のタイミング情報を測定するように構成され、入力信号は、パルス信号の１つまたは複数の部分に対応する。ＴＤＣは、デジタルデータ値「１」のみの第１のセグメント、デジタルデータ値「０」のみの第２のセグメントおよび第１のセグメントと第２のセグメントとの間のバブルセグメントを有するデータシーケンスを生成するように構成される。バブルセグメントは、近隣のデジタル値「０」間の少なくとも１つのデジタルデータ値「１」および／または近隣のデジタルデータ値「１」間の少なくとも１つのデジタル値「０」を含む。ＴＤＣは、データシーケンスの修正に対応する時間値を決定するようにさらに構成され、データシーケンスの修正では、バブルセグメントの少なくとも１つのデジタルデータ値「１」は、第１のセグメントの方に移動され、バブルセグメントの少なくとも１つのデジタルデータ値「０」は、第２のセグメントの方に移動される。方法は、コントローラを使用して、タイミング情報に少なくとも部分的に基づいて物体までの距離を計算するステップをさらに含む。
【０１２０】
いくつかの実施形態では、データシーケンスを生成するステップは、入力信号が一連の順次結合された遅延ユニットを通じて伝播される際に、複数のラッチを使用して、一連の順次結合された遅延ユニットの出力をラッチするステップを含む。データシーケンスを生成するステップは、遅延ユニットの個々の遅延時間を超えるラッチ時間を有するラッチを使用して、遅延ユニットの出力をラッチするステップを含み得、ラッチ出力は、バブルセグメントの少なくとも１つのデジタルデータ値に対応する。データシーケンスを生成するステップは、遅延ユニットの個々の遅延時間より短いラッチ時間を有するラッチを使用して、遅延ユニットの出力をラッチするステップを含み得、ラッチ出力は、第１または第２のセグメントの少なくとも１つのデジタルデータ値に対応する。
【０１２１】
本技術のさらなる代表的な実施形態は、光学式距離測定装置を製造するための方法を含む。方法は、時間／デジタル変換器（ＴＤＣ）を含むフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を光学式距離測定装置にインストールするステップを含み、ＴＤＣは、一連の順次結合された遅延ユニットを含む。ＦＰＧＡは、以下の方法、すなわち、一連の順次結合された遅延ユニットにおいて複数の校正信号を受信するステップおよび対応する個々の順次結合された遅延ユニットの個々の遅延時間を決定するステップに従って校正されている。決定するステップは、デジタルデータ値「１」のみの第１のセグメント、デジタルデータ値「０」のみの第２のセグメントおよび第１のセグメントと第２のセグメントとの間のバブルセグメントを有するデータシーケンスを生成するステップを含む。バブルセグメントは、近隣のデジタル値「０」間の少なくとも１つのデジタルデータ値「１」および／または近隣のデジタルデータ値「１」間の少なくとも１つのデジタル値「０」を含む。決定するステップは、データシーケンスの修正に対応する遅延ユニットを識別するステップを含み、データシーケンスの修正では、バブルセグメントの少なくとも１つのデジタルデータ値「１」は、第１のセグメントの方に移動され、バブルセグメントの少なくとも１つのデジタルデータ値「０」は、第２のセグメントの方に移動される。
【０１２２】
いくつかの実施形態では、方法は、一連の順次結合された遅延ユニットにおいて複数の校正信号を受信し、対応する個々の順次結合された遅延ユニットの個々の遅延時間を決定することによって、ＦＰＧＡを校正するステップをさらに含む。決定するステップは、第１のセグメント、第２のセグメントおよびバブルセグメントを有するデータシーケンスを生成するステップと、データシーケンスの修正に対応する遅延ユニットを識別するステップとを含み得る。
【０１２３】
いくつかの実施形態では、複数の校正信号は、複数のランダム化信号を含み、複数のランダム化信号は、ＦＰＧＡのクロック信号に対してランダム化される。個々の遅延時間を決定するステップは、対応する遅延ユニットがＦＰＧＡの次のクロックサイクルの前にランダム化信号を受信した一連の順次結合された遅延ユニットにおける最後の遅延ユニットとして識別された回数を表す計数を計算するステップを含み得る。
【０１２４】
いくつかの実施形態では、データシーケンスを生成するステップは、入力信号が一連の順次結合された遅延ユニットを通じて伝播される際に、複数のラッチを使用して、一連の順次結合された遅延ユニットの出力をラッチするステップを含む。データシーケンスを生成するステップは、遅延ユニットの個々の遅延時間を超えるラッチ時間を有するラッチを使用して、遅延ユニットの出力をラッチするステップを含み得、ラッチ出力は、バブルセグメントの少なくとも１つのデジタルデータ値に対応する。データシーケンスを生成するステップは、遅延ユニットの個々の遅延時間より短いラッチ時間を有するラッチを使用して、遅延ユニットの出力をラッチするステップを含み得、ラッチ出力は、第１または第２のセグメントの少なくとも１つのデジタルデータ値に対応する。
【０１２５】
本開示は多くの詳細を含むが、これらは、本技術の範囲または特許請求できる範囲を制限するものと解釈すべきではなく、むしろ、特定の発明の特定の実施形態に特有のものであり得る特徴の説明として解釈すべきである。本明細書において別個の実施形態の文脈内で説明されるある特定の特徴は、単一の実施形態において組み合わせて実装することもできる。逆に言えば、単一の実施形態の文脈内で説明される様々な特徴は、複数の実施形態において別々にまたは適切な任意の副組合せで実装することもできる。その上、上記では、特徴は、ある特定の組合せで動作するものとして説明されており、そのようなものとして最初に特許請求されているが、特許請求されている組合せからの１つまたは複数の特徴は、いくつかの事例では、組合せから削除することができ、特許請求されている組合せは、副組合せまたは副組合せの変形形態を対象とすることができる。
【０１２６】
同様に、図面では、動作は、特定の順番で描写されているが、これは、望ましい結果を達成するために、示される特定の順番でもしくは連続的順序でそのような動作を実行することまたは示されるすべての動作を実行することを必要とするものと理解すべきではない。その上、この特許文書で説明される実施形態の様々なシステムコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものと理解すべきではない。
【０１２７】
さらに、本技術のある特定の実施形態と関連付けられた利点は、それらの実施形態の文脈内で説明されているが、他の実施形態もそのような利点を呈することができ、必ずしもすべての実施形態が本技術の範囲内に収めるためにそのような利点を呈さなければならないわけではない。それに従って、本開示および関連技術は、本明細書で明示されていないまたは説明されていない他の実施形態を包含し得る。
【０１２８】
いくつかの実装形態および実施例のみが説明されており、他の実装、強化および変形は、本開示で説明されるものおよび示されるものに基づいて行うことができる。
【０１２９】
本明細書に組み込まれる材料が本開示と矛盾する場合は、本開示が統制する。
【０１３０】
この特許文書の本開示の少なくとも一部分は、著作権保護の対象である材料を含む。特許商標庁の特許ファイルまたは記録にその旨が見られるため、著作権の所有者は、何者かによる特許文書または特許開示の複製に対する異論を唱えないが、そうでなければすべての著作権に関するいかなる権利も留保する。
［項目１］
物体までの距離を測定するための装置であって、
外向き光パルスを放出する発光体と、
上記物体から反射した戻り光パルスを受信し、上記戻り光パルスを表すパルス信号を出力する光センサと、
上記光センサに結合され、一連の順次結合された遅延ユニットを有する時間／デジタル変換器（ＴＤＣ）を含むフィールドプログラマブルゲートアレイ（ＦＰＧＡ）であって、個々の順次結合された遅延ユニットが、対応する個々の遅延時間と関連付けられ、上記順次結合された遅延ユニットの少なくともいくつかが、異なる個々の遅延時間を有し、上記ＴＤＣが、上記順次結合された遅延ユニットの上記個々の遅延時間に少なくとも部分的に基づいて上記パルス信号のタイミング情報を測定する、ＦＰＧＡと、
上記タイミング情報に基づいて上記物体までの上記距離を計算するコントローラと
を含む、装置。
［項目２］
上記発光体、光センサ、ＦＰＧＡおよびコントローラが、無人航空機、自律走行車両またはロボットに積載される、項目１に記載の装置。
［項目３］
上記ＴＤＣが、
上記一連の順次結合された遅延ユニットを通じて入力信号を伝播することであって、上記入力信号が、上記パルス信号の１つまたは複数の部分に対応する、伝播することと、
上記一連の順次結合された遅延ユニットを使用して上記入力信号の細時間値を決定することと、
上記ＦＰＧＡの経過したクロックサイクルの数に基づいて上記入力信号の粗時間値を決定することと
によって上記タイミング情報を測定する、項目１に記載の装置。
［項目４］
上記細時間値が、上記ＦＰＧＡの次のクロックサイクルの前に上記入力信号を受信した上記一連の順次結合された遅延ユニットのサブセットの上記個々の遅延時間の総和に対応する、項目３に記載の装置。
［項目５］
上記タイミング情報が、上記粗時間値と上記細時間値との差に対応する、項目３に記載の装置。
［項目６］
上記細時間値の時間分解能が、上記粗時間値の時間分解能より高いものである、項目３に記載の装置。
［項目７］
上記一連の順次結合された遅延ユニットが、少なくとも２５の遅延ユニットを含む、項目１に記載の装置。
［項目８］
上記一連の順次結合された遅延ユニットが、キャリーチェーンまたはルックアップテーブル（ＬＵＴ）を含む、項目１に記載の装置。
［項目９］
上記個々の遅延時間が、５ピコ秒〜２０００ピコ秒の範囲内である、項目１に記載の装置。
［項目１０］
上記ＴＤＣが、複数のラッチを有するラッチユニットを含み、個々のラッチが、対応する順次的な遅延ユニットに結合される、項目１に記載の装置。
［項目１１］
上記ＴＤＣが、複数のラッチを有するラッチユニットを含み、個々のラッチが、対応する順次的な遅延ユニットに結合され、上記ＴＤＣが、
上記一連の順次結合された遅延ユニットを通じて入力信号を伝播することであって、上記入力信号が、上記パルス信号の１つまたは複数の部分に対応する、伝播することと、
上記一連の順次結合された遅延ユニットを使用して上記入力信号の細時間値を決定することであって、上記細時間値が、上記ＦＰＧＡの次のクロックサイクルの前に上記入力信号を受信した上記一連の順次結合された遅延ユニットのサブセットの上記個々の遅延時間の総和に対応する、決定することと、
上記ＦＰＧＡの経過したクロックサイクルの数に基づいて上記入力信号測定の粗時間を決定することと、
上記粗時間値と上記細時間値との差に基づいて上記タイミング情報を測定することと
を行う、項目１に記載の装置。
［項目１２］
物体までの距離を測定するための方法であって、
発光体によって、外向き光パルスを放出するステップと、
光センサにおいて、上記物体から反射した戻り光パルスを受信するステップと、
上記光センサによって、上記戻り光パルスを表すパルス信号を出力するステップと、
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を使用して、上記パルス信号のタイミング情報を測定するステップであって、上記ＦＰＧＡが、一連の順次結合された遅延ユニットを有する時間／デジタル変換器（ＴＤＣ）を含み、個々の順次結合された遅延ユニットが、対応する個々の遅延時間と関連付けられ、上記順次結合された遅延ユニットの少なくともいくつかが、異なる個々の遅延時間を有し、上記ＴＤＣが、上記順次結合された遅延ユニットの上記個々の遅延時間に少なくとも部分的に基づいて上記パルス信号の上記タイミング情報を測定する、ステップと、
コントローラを使用して、上記タイミング情報に基づいて上記物体までの上記距離を計算するステップと
を含む、方法。
［項目１３］
上記発光体、光センサ、ＦＰＧＡおよびコントローラが、無人車両、自律走行車両またはロボットに積載される方法であって、上記計算された上記物体までの距離に少なくとも部分的に基づいて無人航空機、自律走行車両またはロボットの動作を制御するステップをさらに含む、項目１２に記載の方法。
［項目１４］
上記タイミング情報を測定するステップが、
上記一連の順次結合された遅延ユニットを通じて入力信号を伝播するステップであって、上記入力信号が、上記パルス信号の１つまたは複数の部分に対応する、ステップと、
上記一連の順次結合された遅延ユニットを使用して上記入力信号の細時間値を決定するステップと、
上記ＦＰＧＡの経過したクロックサイクルの数に基づいて上記入力信号の粗時間値を決定するステップと
を含む、項目１２に記載の方法。
［項目１５］
上記細時間値が、上記ＦＰＧＡの次のクロックサイクルの前に上記入力信号を受信した上記一連の順次結合された遅延ユニットのサブセットの上記個々の遅延時間の総和に対応する、項目１４に記載の方法。
［項目１６］
上記細時間値を決定するステップが、上記入力信号が上記一連の順次結合された遅延ユニットを通じて伝播される際に、複数のラッチを使用して、上記一連の順次結合された遅延ユニットの出力をラッチするステップを含む、項目１５に記載の方法。
［項目１７］
上記細時間値を決定するステップが、上記ラッチ出力を使用して、上記一連の順次結合された遅延ユニットの上記サブセットを識別するステップを含む、項目１６に記載の方法。
［項目１８］
上記細時間値を決定するステップが、上記ラッチ出力を使用して、上記ＦＰＧＡの上記次のクロックサイクルの前に上記入力信号を受信した上記一連の順次結合された遅延ユニットにおける最後の遅延ユニットを識別するステップを含む、項目１６に記載の方法。
［項目１９］
上記タイミング情報が、上記粗時間値と上記細時間値との差に対応する、項目１４に記載の方法。
［項目２０］
上記細時間値の時間分解能が、上記粗時間値の時間分解能より高いものである、項目１４に記載の方法。
［項目２１］
光学式距離測定装置を製造するための方法であって、
時間／デジタル変換器（ＴＤＣ）を含むフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を上記光学式距離測定装置にインストールするステップを含み、上記ＴＤＣが、一連の順次結合された遅延ユニットを含み、上記ＦＰＧＡが、以下の方法、すなわち、
上記一連の順次結合された遅延ユニットにおいて複数の校正信号を受信するステップ、および、
対応する順次結合された遅延ユニットの個々の遅延時間を決定するステップであって、個々の遅延時間が、上記対応する遅延ユニットが上記ＦＰＧＡの次のクロックサイクルの前に校正信号を受信した上記一連の順次結合された遅延ユニットにおける最後の遅延ユニットである回数を表す計数に対応する、ステップ
に従って校正されている、方法。
［項目２２］
無人車両、自律走行車両またはロボットに上記光学式距離測定装置をインストールするステップをさらに含む、項目２１に記載の方法。
［項目２３］
上記一連の順次結合された遅延ユニットにおいて上記複数の校正信号を受信すること、および、
対応する順次結合された遅延ユニットの上記個々の遅延時間を決定すること
によって上記ＦＰＧＡを校正するステップをさらに含む、項目２１に記載の方法。
［項目２４］
上記複数の校正信号が、複数のランダム化信号を含む、項目２３に記載の方法。
［項目２５］
上記複数のランダム化信号が、上記ＦＰＧＡのクロック信号に対してランダム化される、項目２４に記載の方法。
［項目２６］
上記順次結合された遅延ユニットの少なくともいくつかが、異なる個々の遅延時間を有する、項目２３に記載の方法。
［項目２７］
対応する遅延ユニットの上記個々の遅延時間が、上記遅延ユニットの上記計数に比例する、項目２３に記載の方法。
［項目２８］
上記対応する遅延ユニットの上記計数を上記順次結合された遅延ユニットの各々の上記計数の総和で除したものを表す比率に少なくとも部分的に基づいて上記個々の遅延時間を計算するステップをさらに含む、項目２３に記載の方法。
［項目２９］
上記一連の順次結合された遅延ユニットを通じて上記複数の校正信号を伝播するステップをさらに含む、項目２３に記載の方法。
［項目３０］
校正信号が上記一連の順次結合された遅延ユニットを通じて伝播される際に、複数のラッチを使用して、上記一連の順次結合された遅延ユニットの出力をラッチするステップをさらに含む、項目２９に記載の方法。
［項目３１］
上記ラッチ出力を使用して、上記ＦＰＧＡの上記次のクロックサイクルの前に上記校正信号を受信した上記一連の順次結合された遅延ユニットにおける最後の遅延ユニットを識別するステップをさらに含む、項目３０に記載の方法。
［項目３２］
物体までの距離を測定するための装置であって、
外向き光パルスを放出する発光体と、
上記物体から反射した戻り光パルスを受信し、上記戻り光パルスを表すパルス信号を出力する光センサと、
上記光センサに結合され、一連の順次結合された遅延ユニットを有する時間／デジタル変換器（ＴＤＣ）を含むフィールドプログラマブルゲートアレイ（ＦＰＧＡ）であって、上記ＴＤＣが、
上記一連の順次結合された遅延ユニットを通じて入力信号を伝播することであって、上記入力信号が、上記パルス信号の１つまたは複数の部分に対応する、上記入力信号を伝播すること、
デジタルデータ値「１」のみの第１のセグメント、デジタルデータ値「０」のみの第２のセグメントおよび上記第１のセグメントと第２のセグメントとの間のバブルセグメントを有するデータシーケンスを生成することであって、上記バブルセグメントが、近隣のデジタル値「０」間の少なくとも１つのデジタルデータ値「１」および／または近隣のデジタルデータ値「１」間の少なくとも１つのデジタル値「０」を含む、上記データシーケンスを生成すること、ならびに、
上記データシーケンスの修正に対応する時間値を決定することであって、データシーケンスの修正では、上記バブルセグメントの上記少なくとも１つのデジタルデータ値「１」が、上記第１のセグメントの方に移動され、上記バブルセグメントの上記少なくとも１つのデジタルデータ値「０」が、上記第２のセグメントの方に移動される、上記時間値を決定することによって上記パルス信号のタイミング情報を測定する、ＦＰＧＡと、
上記タイミング情報に少なくとも部分的に基づいて上記物体までの上記距離を計算するコントローラと
を含む、装置。
［項目３３］
上記発光体、光センサ、ＦＰＧＡおよびコントローラが、無人航空機、自律走行車両またはロボットに積載される、項目３２に記載の装置。
［項目３４］
上記ＴＤＣが、上記一連の順次結合された遅延ユニットに結合されたラッチユニットを含む、項目３２に記載の装置。
［項目３５］
上記ラッチユニットが、複数のラッチを含み、個々のラッチが、上記順次結合された遅延ユニットの対応する遅延ユニットに結合され、上記対応する遅延ユニットの出力をラッチするように構成される、項目３４に記載の装置。
［項目３６］
上記データシーケンスが、上記複数のラッチによってラッチされた上記出力を含む、項目３５に記載の装置。
［項目３７］
個々のラッチが、上記対応する遅延ユニットの上記出力をラッチするための対応するラッチ時間と関連付けられる、項目３５に記載の装置。
［項目３８］
上記ラッチの少なくとも１つが、上記対応する遅延ユニットの上記個々の遅延時間を超えるラッチ時間を有する、項目３７に記載の装置。
［項目３９］
上記バブルセグメントの少なくとも１つのデジタルデータ値が、上記少なくとも１つのラッチによってラッチされた上記出力に対応する、項目３８に記載の装置。
［項目４０］
上記ＴＤＣが、上記データシーケンスの上記修正に対応する遅延ユニットを識別することによって上記時間値を決定するように構成される、項目３２に記載の装置。
［項目４１］
上記第１のセグメントが、上記第２のセグメントの前に配置され、上記識別された遅延ユニットが、上記データシーケンスの上記修正における上記第２のセグメントに隣接する上記第１のセグメントのデジタルデータ値「１」に対応する、項目４０に記載の装置。
［項目４２］
上記第２のセグメントが、上記第１のセグメントの前に配置され、上記識別された遅延ユニットが、上記信号の上記修正における上記第１のセグメントに隣接する上記第２のセグメントのデジタルデータ値「０」に対応する、項目４０に記載の装置。
［項目４３］
上記ＴＤＣが、上記データシーケンスの上記修正と関連付けられた遅延時間を補償する調整された時間値を決定するようにさらに構成される、項目３２に記載の装置。
［項目４４］
上記ＴＤＣが、上記一連の順次結合された遅延ユニットに結合されたラッチユニットを含み、上記ラッチユニットが、複数のラッチを含み、個々のラッチが、上記順次結合された遅延ユニットの対応する遅延ユニットに結合され、上記対応する遅延ユニットの出力をラッチするように構成され、上記データシーケンスが、上記複数のラッチによってラッチされた上記出力を含み、
上記ＴＤＣが、
上記データシーケンスの上記修正に対応する遅延ユニットを識別することによって上記時間値を決定し、
上記データシーケンスの上記修正と関連付けられた遅延時間を補償する調整された時間値を決定する
ように構成される、項目３２に記載の装置。
［項目４５］
物体までの距離を測定するための方法であって、
発光体によって、外向き光パルスを放出するステップと、
光センサにおいて、上記物体から反射した戻り光パルスを受信するステップと、
上記光センサによって、上記戻り光パルスを表すパルス信号を出力するステップと、
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を使用して、上記パルス信号のタイミング情報を測定するステップであって、上記ＦＰＧＡが、一連の順次結合された遅延ユニットを有する時間／デジタル変換器（ＴＤＣ）を含み、
上記ＴＤＣが、
上記一連の順次結合された遅延ユニットを通じて入力信号を伝播することであって、上記入力信号が、上記パルス信号の１つまたは複数の部分に対応する、上記入力信号を伝播すること、
デジタルデータ値「１」のみの第１のセグメント、デジタルデータ値「０」のみの第２のセグメントおよび上記第１のセグメントと第２のセグメントとの間のバブルセグメントを有するデータシーケンスを生成するステップであって、上記バブルセグメントは、近隣のデジタル値「０」間の少なくとも１つのデジタルデータ値「１」および／または近隣のデジタルデータ値「１」間の少なくとも１つのデジタル値「０」を含む、上記データシーケンスを生成すること、ならびに、
上記データシーケンスの修正に対応する時間値を決定することであって、データシーケンスの修正では、上記バブルセグメントの上記少なくとも１つのデジタルデータ値「１」が、上記第１のセグメントの方に移動され、上記バブルセグメントの上記少なくとも１つのデジタルデータ値「０」が、上記第２のセグメントの方に移動される、上記時間値を決定することによって上記パルス信号の上記タイミング情報を測定する、ステップと、
コントローラを使用して、上記タイミング情報に少なくとも部分的に基づいて上記物体までの上記距離を計算するステップと
を含む、方法。
［項目４６］
上記発光体、光センサ、ＦＰＧＡおよびコントローラが、無人車両、自律走行車両またはロボットに積載される方法であって、上記計算された上記物体までの距離に少なくとも部分的に基づいて無人航空機、自律走行車両またはロボットの動作を制御するステップをさらに含む、項目４５に記載の方法。
［項目４７］
上記データシーケンスを生成するステップが、上記入力信号が上記一連の順次結合された遅延ユニットを通じて伝播される際に、複数のラッチを使用して、上記一連の順次結合された遅延ユニットの出力をラッチするステップを含む、項目４５に記載の方法。
［項目４８］
上記データシーケンスを生成するステップが、上記遅延ユニットの上記個々の遅延時間を超えるラッチ時間を有するラッチを使用して、遅延ユニットの出力をラッチするステップを含み、上記ラッチ出力が、上記バブルセグメントの少なくとも１つのデジタルデータ値に対応する、項目４７に記載の方法。
［項目４９］
上記データシーケンスを生成するステップが、上記遅延ユニットの上記個々の遅延時間より短いラッチ時間を有するラッチを使用して、遅延ユニットの出力をラッチするステップを含み、上記ラッチ出力が、上記第１または第２のセグメントの少なくとも１つのデジタルデータ値に対応する、項目４７に記載の方法。
［項目５０］
上記時間値を決定するステップが、上記データシーケンスの上記修正に対応する遅延ユニットを識別するステップを含む、項目４５に記載の方法。
［項目５１］
上記第１のセグメントが、上記第２のセグメントの前に配置され、上記遅延ユニットを識別するステップが、上記データシーケンスの上記修正における上記第２のセグメントに隣接する上記第１のセグメントのデジタルデータ値「１」に対応する遅延ユニットを識別するステップを含む、項目５０に記載の方法。
［項目５２］
上記第２のセグメントが、上記第１のセグメントの前に配置され、上記遅延ユニットを識別するステップが、上記信号の上記修正における上記第１のセグメントに隣接する上記第２のセグメントのデジタルデータ値「０」に対応する遅延ユニットを識別するステップを含む、項目５０に記載の方法。
［項目５３］
上記時間値を決定するステップが、上記データシーケンスの上記修正と関連付けられた遅延時間を補償するステップを含む、項目４５に記載の方法。
［項目５４］
光学式距離測定装置を製造するための方法であって、
時間／デジタル変換器（ＴＤＣ）を含むフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を上記光学式距離測定装置にインストールするステップを含み、上記ＴＤＣが、一連の順次結合された遅延ユニットを含み、上記ＦＰＧＡが、以下の方法、すなわち、
上記一連の順次結合された遅延ユニットにおいて複数の校正信号を受信するステップ、および、
対応する個々の順次結合された遅延ユニットの個々の遅延時間を決定するステップ
に従って校正され、上記決定するステップが、
デジタルデータ値「１」のみの第１のセグメント、デジタルデータ値「０」のみの第２のセグメントおよび上記第１のセグメントと第２のセグメントとの間のバブルセグメントを有するデータシーケンスを生成するステップであって、上記バブルセグメントが、近隣のデジタル値「０」間の少なくとも１つのデジタルデータ値「１」および／または近隣のデジタルデータ値「１」間の少なくとも１つのデジタル値「０」を含む、ステップ、ならびに、
上記データシーケンスの修正に対応する遅延ユニットを識別するステップであって、データシーケンスの修正では、上記バブルセグメントの上記少なくとも１つのデジタルデータ値「１」が、上記第１のセグメントの方に移動され、上記バブルセグメントの上記少なくとも１つのデジタルデータ値「０」が、上記第２のセグメントの方に移動される、ステップ
を含む、方法。
［項目５５］
無人車両、自律走行車両またはロボットに上記光学式距離測定装置をインストールするステップをさらに含む、項目５４に記載の方法。
［項目５６］
上記一連の順次結合された遅延ユニットにおいて上記複数の校正信号を受信し、
対応する個々の順次結合された遅延ユニットの上記個々の遅延時間を決定すること
によって、上記ＦＰＧＡを校正するステップをさらに含み、上記決定するステップが、
上記第１のセグメント、上記第２のセグメントおよび上記バブルセグメントを有する上記データシーケンスを生成するステップと、
上記データシーケンスの上記修正に対応する上記遅延ユニットを識別するステップと
を含む、項目５４に記載の方法。
［項目５７］
上記複数の校正信号が、複数のランダム化信号を含み、上記複数のランダム化信号が、上記ＦＰＧＡのクロック信号に対してランダム化される、項目５６に記載の方法。
［項目５８］
上記個々の遅延時間を決定するステップが、上記対応する遅延ユニットが上記ＦＰＧＡの次のクロックサイクルの前にランダム化信号を受信した上記一連の順次結合された遅延ユニットにおける最後の遅延ユニットとして識別された回数を表す計数を計算するステップを含む、項目５７に記載の方法。
［項目５９］
上記データシーケンスを生成するステップが、上記一連の順次結合された遅延ユニットを通じて上記複数の校正信号を伝播するステップを含む、項目５６に記載の方法。
［項目６０］
上記データシーケンスを生成するステップが、校正信号が上記一連の順次結合された遅延ユニットを通じて伝播される際に、複数のラッチを使用して、上記一連の順次結合された遅延ユニットの出力をラッチするステップを含む、項目５９に記載の方法。
［項目６１］
上記データシーケンスを生成するステップが、上記遅延ユニットの上記個々の遅延時間を超えるラッチ時間を有するラッチを使用して、遅延ユニットの出力をラッチするステップを含み、上記ラッチ出力が、上記バブルセグメントの少なくとも１つのデジタルデータ値に対応する、項目６０に記載の方法。
［項目６２］
上記データシーケンスを生成するステップが、上記遅延ユニットの上記個々の遅延時間より短いラッチ時間を有するラッチを使用して、遅延ユニットの出力をラッチするステップを含み、上記ラッチ出力が、上記第１または第２のセグメントの少なくとも１つのデジタルデータ値に対応する、項目６０に記載の方法。
［項目６３］
上記第１のセグメントが、上記第２のセグメントの前に配置され、上記遅延ユニットを識別するステップが、上記データシーケンスの上記修正における上記第２のセグメントに隣接する上記第１のセグメントのデジタルデータ値「１」に対応する遅延ユニットを識別するステップを含む、項目５６に記載の方法。
［項目６４］
上記第２のセグメントが、上記第１のセグメントの前に配置され、上記遅延ユニットを識別するステップが、上記信号の上記修正における上記第１のセグメントに隣接する上記第２のセグメントのデジタルデータ値「０」に対応する遅延ユニットを識別するステップを含む、項目５６に記載の方法。
【図１Ａ】
0006888216.tif 000005
【図１Ｂ】
0006888216.tif 000006
【図２】
0006888216.tif 000007
【図３】
0006888216.tif 000008
【図４Ａ】
0006888216.tif 000009
【図４Ｂ】
0006888216.tif 000010
【図５】
0006888216.tif 000011
【図６】
0006888216.tif 000012
【図７】
0006888216.tif 000013
【図８Ａ】
0006888216.tif 000014
【図８Ｂ】
0006888216.tif 000015
【図９Ａ】
0006888216.tif 000016
【図９Ｂ】
0006888216.tif 000017
【図１０】
0006888216.tif 000018
【図１１】
0006888216.tif 000019
【図１２】
0006888216.tif 000020
【図１３】
0006888216.tif 000021