説明

パルス遅延回路の構成方法

【課題】プログラマブルロジックデバイス上に、遅延ユニット毎の遅延時間のばらつきの少ないパルス遅延回路を構成する。
【解決手段】FPGAには、1列に配置された複数のロジックセルからなるセル列が多数設けられており、同一のセル列に属する二つのロジックセル間の伝送(以下「同セル列内伝送」という)と、異なるセル列に属する二つのロジックセル間の伝送(以下「異セル列間伝送」という)とでは、遅延が異なったものとなる。ストレートディレイラインを構成する遅延ユニットR1〜RnをFPGAに実装する際にマニュアルで配置する。具体的には、遅延ユニットR1〜Rnを隣接するn個のセル列CC1〜CCnに一つずつ割り当て、しかも、遅延ユニットR1〜Rnが、その接続順に並ぶように、セル列CCi(i=1,2,…,n)に遅延ユニットRiを割り当る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブルロジックデバイス上に、パルス信号を遅延させて伝送する複数の遅延ユニットからなるパルス遅延回路を構成するパルス遅延回路の構成方法に関する。
【背景技術】
【0002】
従来より、パルス信号を遅延させて伝送する複数の遅延ユニットからなるパルス遅延回路を利用した装置として、時間計測回路、A/D変換回路、デジタル制御発振回路等が知られている(例えば、特許文献1,2参照)。
【0003】
このようなパルス遅延回路を利用した装置を集積回路(IC)化する場合、フィールドプログラマブルゲートアレイ(FPGA)等のプログラマブルロジックデバイスを用いてプログラミングによって実現することが考えられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平5−259907号公報
【特許文献2】特開平7−183800号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、プログラミングした回路を、プログラマブルロジックデバイスのロジックセルにレイアウトする際には、通常、自動配置が行われる。
しかし、自動配置した場合、パルス遅延回路を構成する遅延ユニットの配置が整列するとは限らず、適当に配置されてしまうため、各遅延ユニット間の伝送遅延のばらつきが大きくなり、その結果、A/D変換回路や時間計測回路の変換値や計測値、デジタル制御発振回路が制御する周波数や位相の精度が劣化してしまうという問題があった。
【0006】
本発明は、上記問題点を解決するために、プログラマブルロジックデバイス上に、遅延ユニット毎の遅延時間のばらつきの少ないパルス遅延回路を構成することを可能とするパルス遅延回路の構成方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するためになされた請求項1に記載の発明は、プログラマブルロジックデバイス上に、複数の遅延ユニットを直列接続してなるストレートディレイラインからなるパルス遅延回路を構成する方法であって、パルス遅延回路を構成する各遅延ユニットを、それぞれ一つのロジックセルで実現すると共に、セル列を構成するロジックセルの配列方向とは直交する方向に配列されたセル列のそれぞれに、遅延ユニットを、該遅延ユニットの接続順に従って一つずつ割り当てることを特徴とする。
【0008】
即ち、プログラマブルロジックデバイスは、1列に配置された複数のロジックセルからなるセル列を複数有し、異なるセル列に属するロジックセル間の伝送と同一のセル列に属するロジックセル間の伝送とで伝送遅延が異なっている。そこで、本発明のように遅延ユニットの配置を行うことによって、遅延ユニット間の伝送は、いずれも、異なるセル列間の伝送に統一されるため、各遅延ユニットでの遅延を均一なものとすることができる。
【0009】
なお、本発明においては、請求項2に記載のように、セル列内で同一位置にあるロジックセルを、遅延ユニットに割り当てることが望ましい。
これにより、遅延ユニット(ロジックセル)間の伝送が同一経路で行われることになるため、各遅延ユニットでの遅延をより均一なものとすることができる。
【0010】
なお、遅延ユニットの出力をラッチするラッチ回路を備えている場合は、請求項3に記載のように、そのラッチ回路を、ラッチする出力の送出元である遅延ユニットと同一のセル列に属するロジックセルに割り当てることが望ましい。
【0011】
これにより、遅延ユニットの出力をラッチするタイミングも均一なものとすることができる。
次に、請求項4に記載の発明は、プログラマブルロジックデバイス上に、遅延ユニットを複数個接続してなるパルス遅延回路を構成する方法であって、パルス遅延回路を構成する各遅延ユニットを、それぞれ一つのロジックセルで実現すると共に、遅延ユニットの全てを、単一のセル列に割り当てることを特徴とする。
【0012】
この場合、遅延ユニット間の伝送は、いずれも、同一のセル列内での伝送に統一されるため、各遅延ユニットでの遅延を均一なものとすることができる。
しかも、通常、同一のセル列内での伝送は、異なるセル列間での伝送より高速であるため、パルス遅延回路をより高速に動作させること、即ち、パルス遅延回路を用いて行う計測や制御の分解能を向上させることができる。
【0013】
なお、パルス遅延回路がストレートディレイラインからなる場合は、請求項5に記載のように、遅延ユニットを、該遅延ユニットの接続順に、セル列を構成するロジックセルの配列方向に沿って且つ一方向に向けて配置することが望ましい。
【0014】
特に、間隔を開けずに連続したロジックセルを用いて構成した場合は、遅延ユニット(ロジックセル)間の遅延を最小とすることができる。
一方、パルス遅延回路がリングディレイラインからなる場合は、請求項6に記載のように、遅延ユニットを、該遅延ユニットの接続順に、セル列を構成するロジックセルの配列方向に沿って且つ途中で折り返して配置することが望ましい。
【0015】
これによって、どの遅延ユニット間の伝送経路長もほぼ等しくすることができ、各遅延ユニットでの遅延をより均一なものとすることができる。
また、パルス遅延回路が2m+1個の遅延ユニットで構成されたリングディレイラインからなる場合、例えば、請求項7に記載のように、連続するm+1個の遅延ユニットを、一方向に向けて一つおきのロジックセルに割り当て、残りの連続するm個の遅延ユニットを、逆方向に向けて、m+1個の遅延ユニットの間に一つずつ割り当ててもよい。
【0016】
また、例えば、請求項8に記載のように、連続するm+2個の遅延ユニットを、一方向に向けて一つおきのロジックセルに割り当て、残りの連続するm−1個の遅延ユニットを、逆方向に向けて、m+2個の遅延ユニットのうち、両端に位置する2個を除くm個の遅延ユニットの間に一つずつ順番に割り当ててもよい。
【0017】
即ち、これらの場合、互いに接続される遅延ユニットは、基本的には一つのロジックセルを挟んだ二つのロジックセル間での信号伝送となる。但し、前者(請求項7)の場合は、m+1個目とm+2個目との間、及び2m+1個目と1個目との間のみ、隣接したロジックセル間での信号伝送となり、後者の場合は、m+2個目とm+3個目との間、及び2m+1個目と1個目との間のみ、二つのロジックセルを挟んだ二つのロジックセル間での信号伝送となる。
【0018】
そして、通常、隣接ロジックセル間での信号伝送で生じる遅延(遅延1)と、一つのロジックセルを挟んだ場合の信号伝送で生じる遅延(遅延2)と、二つのロジックセルを挟んだ場合の信号伝送で生じる遅延(遅延3)とを比較すると、通常、(遅延2)−(遅延1)>(遅延3)−(遅延2)となるため、後者(請求項8)の方が、遅延ユニットでの遅延をより均一なものとすることができる。
【0019】
なお、遅延ユニットの出力をラッチするラッチ回路を備えている場合は、請求項9に記載のように、ラッチする出力の送出元である遅延ユニットを割り当てたセル列に対して隣接するセル列のロジックセルに、送出元の遅延ユニットと同様の配置で割り当てることが望ましい。
【0020】
これにより、遅延ユニットの出力をラッチするタイミングも均一なものとすることができる。
次に、請求項10に記載の発明は、プログラマブルロジックデバイス上に、遅延ユニットを複数個接続してなるパルス遅延回路を構成する方法であって、パルス遅延回路を構成する各遅延ユニットを、それぞれ一つのロジックセルで実現すると共に、遅延ユニットを、複数の前記セル列に割り当て且つ伝送順が連続する一部の遅延ユニットを同一セル列に割り当て、同一セル列に割り当てた遅延ユニットを、該遅延ユニット間の伝送遅延が異なるセル列間での伝送遅延と同等になるように、セル列内で離れて位置するロジックセルに割り当てることを特徴とする。
【0021】
このように遅延ユニットを配置することにより、遅延ユニット間の伝送として、異なるセル列間の伝送と同一セル列内での伝送とが混在する場合でも、各遅延ユニットでの遅延を均一なものとすることができる。
【0022】
次に、請求項11に記載の発明は、プログラマブルロジックデバイス上に、遅延ユニットを複数個接続してなるパルス遅延回路を構成する方法であって、パルス遅延回路を構成する各遅延ユニットを、それぞれ一つのロジックセルで実現すると共に、遅延ユニットを、複数の前記セル列に割り当て且つ伝送順が連続する一部の遅延ユニットを同一セル列に割り当て、同一セル列に割り当てられた遅延ユニットのうち、次段の遅延ユニットが同一のセル列内にあるものを、次段の遅延ユニットが異なるセル列にあるものより、遅延の大きな論理素子を用いて構成することを特徴とする。
【0023】
このように遅延ユニットを構成することにより、請求項10の場合と同様に、遅延ユニット間の伝送として、異なるセル列間の伝送と同一セル列内での伝送とが混在する場合でも、各遅延ユニットでの遅延を均一なものとすることができる。
【0024】
ところで、パルス遅延回路は、該パルス遅延回路を構成する各遅延ユニットの出力から、指定された時間の間にパルス信号が通過した遅延ユニットの段数を数値化する数値化回路と組み合わせることによって時間計測回路を実現することができ、更に、遅延ユニットを、駆動電圧に応じて遅延量が変化するように構成することによって、A/D変換装置回路を実現することができる。
【0025】
そして、A/D変換回路の場合、数値化回路の駆動電圧は、パルス遅延回路の駆動電圧とは異なっていることが望ましい。なお、プログラマブルロジックデバイスは、消費電力を制御する等のために、複数の電源系統が用意されている場合がある。
【0026】
そこで、請求項12に記載のように、遅延ユニットを、駆動電圧に応じて遅延量が変化するように構成し、プログラマブルロジックデバイスが提供する複数の電源系統の一つを、パルス遅延回路の駆動電圧として割り当ててもよい。
【0027】
この場合、パルス遅延回路を組み込んだA/D変換回路を構成した場合に、A/D変換回路での変換精度を向上させることができる。
【図面の簡単な説明】
【0028】
【図1】第1及び第2実施形態に係る時間計測回路の全体構成図。
【図2】FPGAに実装された遅延ユニット及びラッチ回路の配置を示す説明図。
【図3】FPGAに実装された遅延ユニット及びラッチ回路の配置を示す説明図。
【図4】第3及び第4実施形態に係る時間計測回路の全体構成図。
【図5】FPGAに実装された遅延ユニット及びラッチ回路の配置を示す説明図。
【図6】FPGAに実装された遅延ユニット及びラッチ回路の配置を示す説明図。
【図7】FPGAに実装された遅延ユニット及びラッチ回路の配置を示す説明図。
【図8】FPGAに実装された遅延ユニット及びラッチ回路の配置を示す説明図。
【図9】第5実施形態に係るデジタル制御発振回路の全体構成図、及びFPGAに実装された遅延ユニット及び選択回路の配置を示す説明図。
【図10】第6実施形態に係るクロック生成回路、及びその変形例の周期測定回路の全体構成図。
【発明を実施するための形態】
【0029】
以下に本発明の実施形態を図面と共に説明する。
[第1実施形態]
<回路構成>
図1は、本実施形態に係る時間計測回路1の全体構成図である。
【0030】
図1に示すように、時間計測回路1は、駆動電圧Vinに応じた遅延時間で信号を遅延させる遅延ユニットRを、n(nは正整数)段直列接続してなるストレートディレイライン(SDL)として構成され、起動用パルスPAの入力タイミングで起動され、各遅延ユニットR1〜Rnにてパルス信号を順次遅延させながら伝送するパルス遅延回路10と、計測用パルスPBの入力タイミングで、各遅延ユニットR1〜Rnの出力d1〜dnをラッチするラッチ回路(図示せず)を内蔵し、そのラッチした結果に基づき、起動用パルスPAが入力されてから計測用パルスPBが入力されるまでの間にパルス信号PAが通過した遅延ユニットRの段数を表すデジタルデータDTを生成して出力する符号化回路12とから構成されている。
【0031】
そして、この時間計測回路1は、プログラマブルロジックデバイスの一種であるフィールドプログラマブルゲートアレイ(FPGA)に実装されている。
<FPGAの概要>
ここで、FPGAの概要について説明する。
【0032】
FPGAは、外部とつながるピンへの入出力を行うI/O、論理回路を実現するためのテーブルであるルックアップテーブルやフリップフロップで構成されたロジックセル、ロジックセル間やロジックセルとI/Oとの間を接続する内部配線(スイッチマトリクス)等からなる周知のものである。
【0033】
但し、FPGAには、1列に配置された複数のロジックセルからなるセル列が多数設けられており、例えば130nmプロセスルールFPGAであれば、同一のセル列に属する二つのロジックセル間の伝送(以下「同セル列内伝送」という)での遅延は250ps〜400ps程度、異なるセル列に属する二つのロジックセル間の伝送(以下「異セル列間伝送」という)での遅延は650ps程度(即ち、同セル列内伝送と比較して約1.6〜2.6程度)となる。また、同セル列内伝送であっても、隣接するロジックセル間では遅延が小さく(250ps程度)、位置が離れるほど遅延が大きくなる。
【0034】
また、FPGAは、ロジックセルに対する電源供給を、複数の電源系統が用意されており、予め設定されたロジックセルの単位(個々のロジックセル,セル列,複数のセル列からなるセルグループ等)毎に、どの電源系統から電源供給を受けるか選択できるように構成されているものとする。以下では、この電源系統を選択できるロジックセルの単位を電源供給単位という。
【0035】
更に、FPGAのプログラミングにおいて、時間計測回路1を構成する回路素子の配置(即ち、FPGAのどのロジックセルに回路素子を割り当てるか)は、通常は自動設定されるが、その一部、又は全部をマニュアルで配置できるように構成されている。
【0036】
<FPGAへの実装>
本実施形態では、時間計測回路1をFPGAに実装する際に、遅延ユニットR1〜Rn、及び遅延ユニットの出力d1〜dnをそれぞれラッチするラッチ回路L1〜Lnについては、マニュアルで配置を設定する。
【0037】
ここで、図2は、FPGAにおけるロジックセルの構造の一部を模式的に示すと共に、遅延ユニットR1〜Rn及びラッチ回路L1〜Lnの配置をマニュアルで設定した結果を示す説明図である。
【0038】
図2に示すように、遅延ユニットR1〜Rnは、隣接するn個のセル列CC1〜CCnに一つずつ割り当てられ、遅延ユニットR1〜Rnが、その接続順に並ぶように、セル列CCi(i=1,2,…,n)には、遅延ユニットRiが割り当てられる。但し、各セル列CCi内で、遅延ユニットRiが割り当てられるロジックセルの位置は、いずれも同じ位置であり、図ではセル列CCiの先頭(図中上端)に設定されている。
【0039】
また、各ラッチ回路Liは、ラッチする出力の送出元となる遅延ユニットRiと同じセル列CCiに割り当てられ、これらラッチ回路Liが割り当てられるセル列CCiでのロジックセルの位置も、いずれも同じ位置(図では、セル列CCiの先頭から3番目のロジックセル)となるように設定されている。
【0040】
なお、遅延ユニットR1〜Rnが割り当てられたロジックセルでは、いずれも、論理素子NOTによって遅延ユニットRiが実現される。
更に、遅延ユニットR1〜Rnが割り当てられたロジックセルを含む最小の電源供給単位には、その他の電源供給単位とは異なる電源系統が割り当てられる。
【0041】
<動作>
このように構成された時間計測回路1は、駆動電圧Vinを一定に保持(即ち、遅延ユニットR1〜Rnが割り当てられたロジックセルを含む電源供給単位とその他の電源供給単位とを区別することなく電源供給)して、計測用パルスPBを任意のタイミングで入力するようにして使用すれば、デジタルデータDTとして、起動用パルスPA及び計測用パルスPBで規定される時間間隔を表す時間計測データが得られる。
【0042】
また、時間計測回路1は、駆動電圧Vinとして測定対象の電圧信号を入力(即ち、遅延ユニットR1〜Rnが割り当てられたロジックセルを含む電源供給単位に用いる電源系統を介して電圧信号を供給)し、起動用パルスPA及び計測用パルスPBの入力タイミングを固定して使用すれば、デジタルデータDTとして、駆動電圧Vinの電圧レベルを表すA/D変換データが得られる。つまり、この場合、時間計測回路1をA/D変換回路として用いることができる。
【0043】
<効果>
以上説明したように時間計測回路1によれば、遅延ユニットR間の伝送は、異セル列間伝送に統一されるため、各遅延ユニットR1〜Rnでの遅延Td1〜Tdnを均一なものとすることができる。その結果、時間計測回路1をFPGAによって実現しているにも関わらず、分解能が均一な時間計測結果を得ることができるものを確実に構成することができる。
【0044】
なお、本実施形態では、遅延ユニットR1〜Rnが割り当てられたロジックセルを含む電源供給単位とその他の電源供給単位とで異なる電源系統を割り当てたが、時間計測回路1を、A/D変換回路として用いることがない場合は、全ての電源供給単位に単一の電源系統を割り当ててもよい。
【0045】
[第2実施形態]
次に第2実施形態について説明する。
本実施形態では、FPGA上における遅延ユニットR1〜Rn及びラッチ回路L1〜Lnの配置が、第1実施形態とは異なるだけであるため、この相違する点を中心に説明する。
【0046】
<FPGAへの実装>
図3は、FPGAにおけるロジックセルの構造の一部を模式的に示すと共に、遅延ユニットR1〜Rn及びラッチ回路L1〜Lnの配置をマニュアルで設定した結果を示す説明図である。
【0047】
図3に示すように、遅延ユニットR1〜Rnは、同一のセル列CCiに属するn個のロジックセルに、一つずつ且つその接続順に(図では上端から下端に向けて)並ぶように割り当てられている。
【0048】
また、各ラッチ回路Liは、遅延ユニットR1〜Rnが割り当てられたセル列CCiに対して隣接するセル列CCi+1 において、そのセル列に属するn個のロジックセルに、一つずつ且つラッチする出力の送出元となる遅延ユニットR1〜Rnの接続順に並ぶように割り当てられている。つまり、遅延ユニットRiが割り当てられるロジックセルと、その出力をラッチするラッチ回路Liが割り当てられるロジックセルとは、行方向(図中左右方向)に隣接して配置されるように設定されている。
【0049】
<効果>
このように構成された時間計測回路1によれば、遅延ユニットR間の伝送は、同セル列内伝送に統一されるため、各遅延ユニットR1〜Rnでの遅延Td1〜Tdnを均一なものとすることができる。その結果、時間計測回路1をFPGAによって実現しているにも関わらず、分解能が均一な時間計測結果を得ることができるものを確実に構成することができる。
【0050】
しかも、本実施形態では、同一セル列CCiの隣接したロジックセル間で信号が伝送されるように、遅延ユニットR1〜Rnが配置されているため、遅延ユニットR1〜Rnの遅延をFPGA上で実現可能な最小限のものとすることができ、FPGAの持つ能力の限界まで、時間計測の分解能を向上させることができる。
【0051】
[第3実施形態]
次に第3実施形態について説明する。
図4は、本実施形態に係る時間計測回路2の全体構成図である。
【0052】
図4に示すように、時間計測回路2は、上述した時間計測回路1と同様に、パルス遅延回路20と、符号化回路22とで構成されている。
但し、パルス遅延回路20は、駆動電圧Vinに応じた遅延時間で信号を遅延させる遅延ユニットRを、n(nは正整数)段リング状に接続してなるリングディレイライン(RDL)として構成されている。なお、初段の遅延ユニットR1は、最終段の遅延ユニットRnの出力と起動用パルスPAの入力が可能なように、論理素子NANDで実現され、その他の遅延ユニットR2〜Rnは、論理素子NOTで実現される。
【0053】
また、符号化回路22は、各遅延ユニットR1〜Rnの出力d1〜dnをラッチするラッチ回路(図示せず)の他、遅延ユニットRnの出力dnに基づいてパルス信号PAの周回数をカウントするカウンタ、カウンタの出力をラッチするラッチ回路を少なくとも備えており、遅延ユニットR1〜Rn及びカウンタの出力をラッチした結果に基づき、ラッチされるまでにパルス信号PAが通過した遅延ユニットRの段数を表すデジタルデータDTを生成するように構成されている。
【0054】
このように構成された時間計測回路2は、時間計測回路1の場合と同様に、デジタルデータDTとして、起動用パルスPA及び計測用パルスPBで規定される時間間隔、又は連続する二つの計測用パルスで規定される時間間隔を表す時間計測データが得られるように動作させることもできるし、駆動電圧Vinの電圧レベルを表すA/D変換データが得られるように動作させることもできる。
【0055】
また、RDLからなるパルス遅延回路20では、SDLからなるパルス遅延回路10よりも、遅延ユニットRの数を大幅に削減することが可能である。
<FPGAへの実装>
図5は、FPGAにおけるロジックセルの構造の一部を模式的に示すと共に、遅延ユニットR1〜Rn及びラッチ回路L1〜Lnの配置をマニュアルで設定した結果を示す説明図である。但し、ここでは、n=7として説明する。
【0056】
図5に示すように、遅延ユニットR1〜R7は、隣接する4つのセル列CC1〜CC4に割り当てられている。但し、先頭の4個の遅延ユニットR1〜R4は、セル列CC1〜CC4の先頭に位置するロジックセルに、その接続順に並ぶように割り当てられ、残りの3個の遅延ユニットR5〜R7は、セル列CC2〜CC4の先頭から7番目に位置するロジックセルに、遅延ユニットR5〜7とセル列CC2〜CC4とが逆順になるように割り当てられている。つまり、セル列CC1には遅延ユニットR1が、セル列CC2には遅延ユニットR2,R7が、セル列CC3には遅延ユニットR3,R6が、セル列CC4には、遅延ユニットR4,R5が割り当てられている。
【0057】
このため、遅延ユニットR4,R5間のみ同セル列内伝送となり、他の遅延ユニット間は異セル列間伝送となる。
そこで、同セル列内伝送に関わる遅延ユニットR4,R5(これに合わせてR3,R6及びR2,R7も同様)の配置は、その間の遅延Td4が異セル列間伝送による遅延Td1〜Td3,Td5〜Td7と同程度となるように離して設定される。この設定は、FPGA開発ツールを使用してマニュアル配線を行う際に表示される回路素子間の遅延時間のシミュレーション値を参考にして行う。
【0058】
一方、各ラッチ回路Liは、ラッチする出力の送出元となる遅延ユニットRiと同じセル列CCiに割り当てられ、いずれのラッチ回路Liも、遅延ユニットRiとの相対的な位置関係がいずれも同じとなるように設定される。
【0059】
<効果>
このように構成された時間計測回路2によれば、遅延ユニットR間の伝送に、同セル列内伝送と異セル列間伝送とが混在することになるが、セル列CC内での遅延ユニットRの配置を調整することで同セル列内伝送での遅延を異セル列間伝送での遅延に合わせているため、各遅延ユニットR1〜R7での遅延を均一なものとすることができる。その結果、時間計測回路1をFPGAによって実現しているにも関わらず、分解能が均一な時間計測結果を得ることができるものを確実に構成することができる。
【0060】
また、時間計測回路2によれば、パルス遅延回路20がRDLにより構成されているため、SDLにより構成されている場合と比較して、遅延ユニットRの数を大幅に削減することができ、その結果、マニュアル配線の作業量も大幅に削減することができる。
【0061】
<変形例>
図6は、同セル列内伝送と異セル間伝送とが混在する他の配置例を示す説明図である。
図6に示すように、遅延ユニットR1〜R7は、隣接する2つのセル列CCi,CCi+1 に割り当てられている。但し、先頭の4個の遅延ユニットR1〜R4は、一方のセル列CCiに属するロジックセルに等間隔で並ぶように割り当てられ、残りの3個の遅延ユニットR5〜R7は、他方のセル列CCi+1 に属するロジックセルに等間隔で並ぶように割り当てられている。
【0062】
具体的には、遅延ユニットR1〜R4は、セル列CCiの先頭から1,3,5,7番目のロジックセルに割り当てられ、遅延ユニットR5〜R7は、セル列CCi+1 の先頭から6,4,2番目のロジックセルに割り当てられている。
【0063】
つまり、遅延ユニットR4,R5間、及びR7,R1間が異セル列間伝送となり、その他は同セル列間伝送となり、また、異セル列間伝送となる遅延ユニットR4,R5が割り当てられるロジックセル間の距離と、遅延ユニットR7,R1が割り当てられるロジックセル間の距離とが等しくなるようにされている。
【0064】
そして、異セル列間伝送の送信元となる遅延ユニットR4,R7を、最も遅延の小さい論理素子であるNOTによって実現し、同セル列間伝送の送信元となる遅延ユニットR1〜R3,R5,R6を、NOTより遅延の大きい論理素子であるNANDやXNOR等によって実現することによって、同セル列間伝送の遅延Td1〜Td3,Td5,Td6が、異セル列間伝送の遅延Td4,Td7に近づくように設定されている。
【0065】
なお、このような論理素子の選択による遅延調整に代えて(又は加えて)、図5の場合と同様に、同セル列CC内での遅延ユニットRの配置により遅延調整を行ってもよい。
また、セル列CCiに割り当てられた遅延ユニットR1〜R4の出力d1〜d4をラッチするラッチ回路L1〜L4は、セル列CCiに隣接するセル列CCi-1 に、遅延ユニットR1〜R4と同様の配置となるように割り当てられ、セル列CCi+1 に割り当てられた遅延ユニットR5〜R7の出力d5〜d7をラッチするラッチ回路L5〜L7は、セル列CCi+1 に隣接するセル列CCi+2 に、遅延ユニットR5〜R7と同様の配置となるように割り当てられている。
【0066】
このように構成された変形例によれば、上述した時間計測回路2と同様の効果を得ることができる。
[第4実施形態]
次に第4実施形態について説明する。
【0067】
本実施形態では、FPGA上における遅延ユニットR1〜Rn及びラッチ回路L1〜Lnの配置が、第3実施形態とは異なるだけであるため、この相違する点を中心に説明する。
【0068】
但し、本実施形態ではn=9として説明する。
<FPGAへの実装>
図7は、FPGAにおけるロジックセルの構造の一部を模式的に示すと共に、遅延ユニットR1〜R9及びラッチ回路L1〜L9の配置をマニュアルで設定した結果を示す説明図である。
【0069】
図7に示すように、遅延ユニットR1〜R9は、同一のセル列CCiに属する9個のロジックセルに、一つずつ割り当てられている。但し、遅延ユニットR1〜R5については、セル列CCiの先頭のロジックセルから一つおきに順番に割り当てられ、残りの遅延ユニットR6〜R9は、遅延ユニットR1〜R5の間のロジックセルに、セル列CCiの末尾側から先頭側に向けて順番に割り当てられている。
【0070】
即ち、連続する9個のロジックセルに、9個の遅延ユニットがR1,R9,R2,R8,R3,R7,R4,R6,R5の順に割り当てられている。従って、遅延ユニットR5,R6間及びR9,R1間が、同一セル列内の隣接ロジックセル間での伝送(以下「隣接セル間伝送」という)となり、その他は、非隣接セル間伝送(但し、ここではロジックセル一つ分だけ間隔が空いたもの)となる。
【0071】
そこで、非隣接セル間伝送の送信元となる遅延ユニットR1〜R4,R6〜R8を、最も遅延の小さい論理素子であるNOTによって実現し、隣接セル間伝送の送信元となる遅延ユニットR5,R9を、NOTより遅延の大きい論理素子であるNANDやXNOR等によって実現することによって、隣接セル間伝送の遅延Td5,Td9が、非隣接セル間伝送の遅延Td1〜Td4,Td6〜Td8に近づくように設定されている。
【0072】
また、各ラッチ回路L1〜L9は、遅延ユニットR1〜R9が割り当てられたセル列CCiに対して隣接するセル列CCi+1 において、そのセル列に属する9個のロジックセルに、一つずつ且つラッチする出力の送出元となる遅延ユニットR1〜R9の配列順に並ぶように割り当てられている。つまり、遅延ユニットRiが割り当てられるロジックセルと、その出力をラッチするラッチ回路Liが割り当てられるロジックセルとは、行方向(図中左右方向)に隣接して配置されるように設定されている。
【0073】
<効果>
このように構成された時間計測回路2によれば、遅延ユニットR間の伝送は、同セル列内伝送に統一され、しかも、遅延ユニットRを実現する論理素子を適宜選択することによって、隣接セル間伝送での遅延が非隣接セル間伝送での遅延に近づくようにされているため、各遅延ユニットR1〜R9での遅延Td1〜Td9を均一なものとすることができる。その結果、時間計測回路1をFPGAによって実現しているにも関わらず、分解能が均一な時間計測結果を得ることができるものを確実に構成することができる。
【0074】
<変形例>
図8は、単一のセル列CCで、RDLを実現する他の配置例を示す説明図である。
但し、ここではn=7として説明する。
【0075】
図8に示すように、遅延ユニットR1〜R7は、同一のセル列CCiに属する7個のロジックセルに、一つずつ割り当てられている。但し、遅延ユニットR1〜R5については、セル列CCiの先頭のロジックセルから一つおきに順番に割り当てられ、残りの遅延ユニットR6,R7は、遅延ユニットR2〜R4の間に位置するロジックセルに、セル列CCiの末尾側から先頭側に向けて順番に割り当てられている。
【0076】
即ち、連続する9個のロジックセルに、7個の遅延ユニットRが、R1,空き,R2,R7,R3,R6,R4,空き,R5の順に割り当てられており、全ての遅延ユニットR1〜R7間の伝送が、非隣接セル間伝送となるようにされている。但し、遅延ユニットR5,R6間及びR7,R1間では、ロジックセル二つ分の間隔があり、他の遅延ユニットR間は、ロジックセル一つ分の間隔がある。
【0077】
この場合、遅延ユニットR間の間隔がロジックセル一つ分か二つ分かで遅延が多少異なるが、その遅延差は、隣接セル間伝送とロジックセル一つ分の場合との遅延差と比較して十分に小さい。従って、各遅延ユニットR1〜R7は、同じ論理素子により実現してもよいが、遅延ユニットR1〜R4,R6を実現する論理素子として、遅延ユニットR5,R7を実現する論理素子より遅延の大きなものを用いることによって、両者間の遅延量を調整してもよい。
【0078】
[第5実施形態]
次に、第5実施形態について説明する。
<回路構成>
図9(a)は、本実施形態に係るデジタル制御発振回路3の全体構成図である。
【0079】
図9(a)に示すように、デジタル制御発振回路3は、n個(ここではn=7)の遅延ユニットR1〜Rnをリング状に接続したリングディレイラインからなり、起動用パルスPAが入力されるとパルス信号を周回させるリングオシレータ30と、制御データCDに従って、遅延ユニットR1個分の遅延時間を分解能として出力信号Poutの発振周期を制御する発振制御回路32とで構成されている。
【0080】
なお、このようなデジタル制御発振回路3は、公知(例えば特開平7−106923号公報)のものであるため、その詳細についての説明は省略する。
但し、発振制御回路32には、出力信号Poutの位相調整のために、リングオシレータ30を構成する遅延ユニットからの各出力d1〜dnのいずれかを選択するパルスセレクタが少なくとも設けられている。
【0081】
<FPGAへの実装>
図9(b)は、FPGAにおけるロジックセルの構造の一部を模式的に示すと共に、遅延ユニットR1〜R7及びパルスセレクタを構成する二者択一の選択回路S1〜S7の配置をマニュアルで設定した結果を示す説明図である。
【0082】
図9(b)に示すように、遅延ユニットR1〜R7は、セル列CC1〜CC4に、第3実施形態の場合(図5参照)と同様に配置されている。
一方セレクタは、セル列CC2に、遅延ユニットR1,R2の出力d1,d2のいずれかを選択して出力する選択回路S1、遅延ユニットR7の出力d7を常に出力するように構成された選択回路S4が割り当てられ、セル列CC4には、遅延ユニットR3,R4の出力d3,d4のいずれかを選択して出力する選択回路S2、遅延ユニットR5,R6の出力d5,d6のいずれかを選択して出力する選択回路S3が割り当てられ、セル列CC3には、選択回路S1,S2の出力d[1,2],d[3,4]のいずれかを選択して出力する選択回路S5、選択回路S3,S4の出力d[5,6],d[7,X]のいずれかを選択して出力する選択回路S6が割り当てられ、セル列CC1には、選択回路S5,S6の出力d[1:4],d[5:7]のいずれかを選択して出力する選択回路S7が割り当てられている。
【0083】
<効果>
このように構成されたデジタル制御発振回路3によれば、各遅延ユニットR1〜R7での遅延を均一なものとすることができるだけでなく、セレクタ(選択回路S1〜S7)によって選択された出力を、いずれの出力d1〜d7が選択された場合でも、均一な遅延で出力することができる。
【0084】
[第6実施形態]
次に第6実施形態について説明する。
<回路構成>
図10(a)は、本実施形態に係るクロック生成回路4の全体構成図である。
【0085】
図10(a)に示すように、クロック生成回路4は、n個の遅延ユニットR1〜Rnをリング状に接続したリングディレイラインからなり、起動用パルスPAが入力されるとパルス信号を周回させるリングオシレータ40と、リングオシレータ40を構成する各遅延ユニットR1〜Rnの出力d1〜dnに基づき、基準信号PBの周期を表すデジタルデータDTを生成する符号化回路42と、符号化回路42にて得られたデジタルデータDTに、設定値を乗(又は除)してクロック信号の出力周期を表す制御データCDを生成する演算回路44と、演算回路44から出力される制御データCD、及びリングオシレータ40からの出力d1〜dnに基づき、基準信号PBを分周又は逓倍したクロック信号Poutを出力する発振制御回路46とを備えている。即ち、第3実施形態の時間計測回路2と、第5実施形態のデジタル制御発振回路3とを、リングオシレータ40を共通にして組み合わせた構成を有している。
【0086】
なお、このようなクロック生成回路4は、公知(例えば、特開平7−183800号公報)のものであるため、その詳細についての説明は省略する。
<FPGAへの実装>
このように構成されたクロック生成回路4は、FPGAに実装する際には、リングオシレータ40を構成する遅延ユニットR1〜Rnを、第4実施形態で示したように(図7,図8参照)、単一のセル列CCiに割り当てる。
【0087】
そして、そのセル列CCiを挟んだ一方の側に符号化回路42を、他方の側に発振制御回路46を実装する。
<効果>
このように構成されたクロック生成回路4では、リングオシレータ40から符号化回路42及び発振制御回路46への出力d1〜dnの伝送遅延を均一且つ最小とすることができ、生成するクロック信号Poutの制御精度を最大限に向上させることができる。
【0088】
<変形例>
図10(b)は、上述したクロック生成回路4において、発振制御回路46の代わりに、リングオシレータ40の出力d1〜dnに基づいて被測定信号PXの周期を表すデジタルデータD2生成する符号化回路48を設け、演算回路44の代わりに、符号化回路48のデジタルデータD2を符号化回路42のデジタルデータD1で除することで、被測定信号PXの周期が基準信号PBの周期の何倍であるかを表す値DOを出力する除算回路45を設けることで構成した周期測定回路5である。
【0089】
この場合も、FPGAへの実装を同様に行うことによって、リングオシレータ40から符号化回路42,48への出力d1〜dnの伝送遅延を均一且つ最小とすることができ、周期の測定精度を最大限に向上させることができる。
【0090】
[他の実施形態]
以上本発明のいくつかの実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において様々な態様にて実施可能である。
【0091】
例えば、上記実施形態いでは、FPGAに適用する場合について説明したが、異セル列間伝送と同セル列内伝送とで伝送遅延が異なるものであれば、どのようなプログラマブルロジックデバイスに適用してもよい。
【符号の説明】
【0092】
1,2…時間計測回路 3…デジタル制御発振回路 4…クロック生成回路 5…周期測定回路 10,20…パルス遅延回路 12,22,42,48…符号化回路 30,40…リングオシレータ 32,46…発振制御回路 44…演算回路 45…除算回路 48…符号化回路

【特許請求の範囲】
【請求項1】
1列に配置された複数のロジックセルからなるセル列を複数有し、異なる前記セル列に属する前記ロジックセル間の伝送と同一の前記セル列に属する前記ロジックセル間の伝送とで伝送遅延が異なるプログラマブルロジックデバイス上に、パルス信号を遅延させて伝送する遅延ユニットを複数個接続してなるパルス遅延回路を構成するパルス遅延回路の構成方法であって、
前記パルス遅延回路は、前記遅延ユニットを直列接続してなるストレートディレイラインからなり、
前記パルス遅延回路を構成する各遅延ユニットを、それぞれ一つの前記ロジックセルで実現すると共に、
前記セル列を構成するロジックセルの配列方向とは直交する方向に配列された前記セル列のそれぞれに、前記遅延ユニットを、該遅延ユニットの接続順に従って一つずつ割り当てることを特徴とするパルス遅延回路の構成方法。
【請求項2】
前記セル列内で同一位置にあるロジックセルを、前記遅延ユニットに割り当てることを特徴とする請求項1に記載のパルス遅延回路の構成方法。
【請求項3】
前記遅延ユニットの出力をラッチするラッチ回路を、該遅延ユニットと同一のセル列に属するロジックセルに割り当てることを特徴とする請求項1又は請求項2に記載のパルス遅延回路の構成方法。
【請求項4】
1列に配置された複数のロジックセルからなるセル列を複数有し、異なる前記セル列に属する前記ロジックセル間の伝送と同一の前記セル列に属する前記ロジックセル間の伝送とで伝送遅延が異なるプログラマブルロジックデバイス上に、パルス信号を遅延させて伝送する遅延ユニットを複数個接続してなるパルス遅延回路を構成するパルス遅延回路の構成方法であって、
前記パルス遅延回路を構成する各遅延ユニットを、それぞれ一つの前記ロジックセルで実現すると共に、
前記遅延ユニットの全てを、単一の前記セル列に割り当てることを特徴とするパルス遅延回路の構成方法。
【請求項5】
前記パルス遅延回路は、前記遅延ユニットを直列接続してなるストレートディレイラインからなり、
前記遅延ユニットを、該遅延ユニットの接続順に、前記セル列を構成するロジックセルの配列方向に沿って且つ一方向に向けて配置することを特徴とする請求項4に記載のパルス遅延回路の構成方法。
【請求項6】
前記パルス遅延回路は、前記遅延ユニットをリング状に接続してなるリングディレイラインからなり、
前記遅延ユニットを、該遅延ユニットの接続順に、前記セル列を構成するロジックセルの配列方向に沿って且つ途中で折り返して配置することを特徴とする請求項4に記載のパルス遅延回路の構成方法。
【請求項7】
前記パルス遅延回路は、2m+1個の前記遅延ユニットで構成され、
連続するm+1個の前記遅延ユニットを、一方向に向けて一つおきの前記ロジックセルに割り当て、残りの連続するm個の前記遅延ユニットを、逆方向に向けて、前記m+1個の遅延ユニットの間に一つずつ割り当てることを特徴とする請求項6に記載のパルス遅延回路の構成方法。
【請求項8】
前記パルス遅延回路は、2m+1個の前記遅延ユニットで構成され、
連続するm+2個の前記遅延ユニットを、一方向に向けて一つおきの前記ロジックセルに割り当て、残りの連続するm−1個の前記遅延ユニットを、逆方向に向けて、前記m+2個の遅延ユニットのうち、両端に位置する2個を除くm個の遅延ユニットの間に一つずつ順番に割り当てることを特徴とする請求項6に記載のパルス遅延回路の構成方法。
【請求項9】
前記遅延ユニットの出力をラッチするラッチ回路を、前記遅延ユニットを割り当てたセル列に対して隣接するセル列のロジックセルに、該遅延ユニットと同様の配置で割り当てることを特徴とする請求項4乃至請求項8のいずれかに記載のパルス遅延回路の構成方法。
【請求項10】
1列に配置された複数のロジックセルからなるセル列を複数有し、異なる前記セル列に属する前記ロジックセル間の伝送と同一の前記セル列に属する前記ロジックセル間の伝送とで伝送遅延が異なるプログラマブルロジックデバイス上に、パルス信号を遅延させて伝送する遅延ユニットを複数個接続してなるパルス遅延回路を構成するパルス遅延回路の構成方法であって、
前記パルス遅延回路を構成する各遅延ユニットを、それぞれ一つの前記ロジックセルで実現すると共に、
前記遅延ユニットを、複数の前記セル列に割り当て、且つ伝送順が連続する一部の遅延ユニットを同一セル列に割り当て、
同一セル列に割り当てた前記遅延ユニットを、該遅延ユニット間の伝送遅延が異なる前記セル列間での伝送遅延と同等になるように、前記セル列内で離れて位置するロジックセルに割り当てることを特徴とするパルス遅延回路の構成方法。
【請求項11】
1列に配置された複数のロジックセルからなるセル列を複数有し、異なる前記セル列に属する前記ロジックセル間の伝送と同一の前記セル列に属する前記ロジックセル間の伝送とで伝送遅延が異なるプログラマブルロジックデバイス上に、パルス信号を遅延させて伝送する遅延ユニットを複数個接続してなるパルス遅延回路を構成するパルス遅延回路の構成方法であって、
前記パルス遅延回路を構成する各遅延ユニットを、それぞれ一つの前記ロジックセルで実現すると共に、
前記遅延ユニットを、複数の前記セル列に割り当て、且つ伝送順が連続する一部の遅延ユニットを同一セル列に割り当て、
同一セル列に割り当てた前記遅延ユニットのうち、次段の遅延ユニットが同一のセル列内にあるものを、次段の遅延ユニットが異なるセル列にあるものより、遅延の大きな論理素子を用いて構成することを特徴とするパルス遅延回路の構成方法。
【請求項12】
前記遅延ユニットを、駆動電圧に応じて遅延量が変化するように構成し、
前記プログラマブルロジックデバイスが提供する複数の電源系統の一つを、前記パルス遅延回路の駆動電圧として割り当てることを特徴とする請求項1乃至請求項11のいずれかに記載のパルス遅延回路の構成方法。

【図1】
image rotate

【図4】
image rotate

【図10】
image rotate

【図2】
image rotate

【図3】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−226211(P2010−226211A)
【公開日】平成22年10月7日(2010.10.7)
【国際特許分類】
【出願番号】特願2009−68509(P2009−68509)
【出願日】平成21年3月19日(2009.3.19)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】