(57)【要約】【課題】入力クロックの周波数に関係なく、より精密なオフセットおよび振幅分解能を実現する。【解決手段】出力クロックのプログラム可能な制御を実現するクロック発生器であって、位相オフセットのある複数のクロックを生成するメカニズムと、複数のクロックから２つのクロックを選択する２つのプログラマブルセレクタと、２つの選択されたクロックを複合して、オフセットがあればオフセットと振幅のあらゆる組み合わせを有する出力クロックを生成するロジックとを備える。【選択図】図１
2004127289.tif 000002
【特許請求の範囲】
【請求項１】
　出力クロックのプログラム可能な制御を実現するクロック発生器であって、
　（ａ）位相オフセットを持つ複数のクロックを生成するメカニズムと、
　（ｂ）前記複数のクロックから２つのクロックを選択する２つのプログラマブルセレクタと、
　（ｃ）前記２つの選択されたクロックを複合して、オフセットがあればオフセットと振幅のあらゆる組み合わせを有する出力クロックを生成するロジック手段と、
を備えることを特徴とするクロック発生器。
【請求項２】
　請求項１に記載のクロック発生器であって、
さらに、前記出力クロックを開始、停止するための論理素子を備えることを特徴とするクロック発生器。
【請求項３】
　出力クロックのプログラム可能な制御を実現するクロック発生器であって、
　（ａ）位相オフセットを持つ複数のクロックを生成するメカニズムと、
　（ｂ）前記複数のクロックから２つのクロックを選択する１つのプログラマブルセレクタと、
　（ｃ）前記選択されたクロックを制御して、あらゆるオフセットの出力クロックを生成するロジックと、
を備えることを特徴とするクロック発生器。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、ディレイロックループを用いてオフセットと振幅を制御するプログラマブルタイミング発生器、より詳しくは、電子イメージングシステムのためのプログラム可能な周期波形の成形に関する。
【背景技術】
【０００２】
　周期波形を成形するための現在の方法には、たとえば、下記特許文献１がある。この特許文献１によれば、（１／Ｎ）*Ｔpix_clkの振幅およびオフセット位置決め分解能を得るために、（Ｎ／２）*ｆpix_clkの周波数を有する入力クロックパルスが必要である。
【０００３】
　下記特許文献２は、オフセットと振幅がプログラム可能な各種のクロック波長を発生するために、ビットバターンを循環させるシフトレジスタを使用することを開示している。
【０００４】
【特許文献１】米国特許第５，９８２，４２８号明細書
【特許文献２】米国特許第６，２４６，２７５号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
　現在周知の方法と装置は満足なレベルではあるが、欠点がある。たとえば、特許文献２は、ベース入力クロック周期のサブインタバルにおけるオフセットと振幅を増加させるために、より大きなベース入力クロック周波数倍数を使用しない。また、このような高いクロック周波数逓倍係数を減らすこと、あるいは出力クロックを成形するためにシフトレジスタの出力を複合することを試みていない。さらに、位相の異なる複数のクロックを成形し、その後複合して、より高い分解能のプログラム可能なオフセットおよび振幅の出力クロックを成形するＤＬＬまたはＰＬＬテクノロジーも使用していない。
【０００６】
　したがって、ディレイロックループ（ＤＬＬ）を使って位相オフセットを発生させることにより、入力クロックの周波数に関係なく、より精密なオフセットおよび振幅分解能を実現する方法と装置が必要である。オフセットおよび振幅分解能は、ＤＬＬのジッタによってのみ限定される。さらに、５０％より大きいデューティサイクルのパルスを生成できるＮＯＲ／ＮＡＮＤ／ＭＵＬＴＩＰＬＥＸＥＲ構造も必要である。
【課題を解決するための手段】
【０００７】
　本発明は、上記の問題のひとつまたはいくつかを克服するためのものである。端的に言えば、本発明のひとつの面によれば、本発明は、出力クロックのプログラム可能な制御を実現するクロック発生器にあり、このクロック発生器は、（ａ）位相のオフセットのある複数のクロックを作るメカニズムと、（ｂ）複数のクロックから２つのクロックを選択する２つのプログラマブルセレクタと、（ｃ）２つのクロックを複合して、オフセットがある場合はオフセットおよび振幅のあらゆる組み合わせによる出力クロックを作るためのロジックを備える。
【発明の効果】
【０００８】
　本発明には次の利点がある。本発明により、精密な分解能のオフセットおよび振幅位置決めを実現するための高周波数入力クロックが不要となる。これは、ディレイロックループ（ＤＬＬ）テクノロジーを使用し、入力クロックの周波数とはほとんど無関係なオフセットおよび振幅分解能を持たせることで達成される。出力クロック１周期におけるＮ個のタップのオフセットと振幅を選択するために、本発明では、Ｎ／２個のタップを有するＤＬＬを使用することができ、その結果、ＤＬＬにおけるジッタをなるべく小さく、全体的精度と安定性をなるべく大きくするとともに、集積回路内のスペースを節約する。本発明により、５０％を超えるデューティサイクルのパルスを発生させ、出力波形を反転することができる。最終的に、本発明はグリッチのない出力波形のイネーブリングが可能となる。
【発明を実施するための最良の形態】
【０００９】
　図１において、ディレイロックループ（ＤＬＬ）１０は、複数の連続的に動作するクロックつまり「タップ」、ｄｌｌ＿ｔａｐ（ｎ：０）（図２参照）を発生する。これらの位相オフセットは、ＤＬＬクロック周期Ｔの［（１／（ｎ＋１）＊２）だけ異なり、ｔａｐ＿０＿ｐｈａｓｅ＜ｔａｐ＿１＿ｐｈａｓｅ＜ｔａｐ＿２＿ｐｈａｓｅ＜，・・・ｔａｐ＿ｎ＿ｐｈａｓｅ（ただし、ｎ＝［（ＤＬＬタップの総数）−１］）となる。図２に示すように、ＤＬＬタップが提供する位相シフトは、クロック周期の前半だけにかかわることに注意すべきである。クロック周期の後半にかかわる位相シフトは、ＤＬＬタップを反転させることによって実現するが、これについて説明する。
【００１０】
　ＤＬＬタップであるｄｌｌ＿ｔａｐ（ｎ：０）は、マルチプレクサ（ＭＵＸ＿０）２０とマルチプレクサ（ＭＵＸ＿１）３０に接続される。これらのマルチプレクサ２０，３０はそれぞれ独立して複数のタップのうちのひとつを選択し、２つの異なるチャネルを形成して、その中をこれらのタップが流れる。その結果、各マルチプレクサの出力に異なるＤＬＬタップが送られ、このようにして最終的にｏｕｔｐｕｔ＿ｃｌｏｃｋが形成される。これについて説明する。
【００１１】
　マルチプレクサ２０の出力は、ＥＸＣＬＵＳＩＶＥ　ＯＲ（ＸＯＲ）ゲート４０の入力に接続され、ＸＯＲ４０のもう一方の入力はＭＵＸ＿０　２０の最重要ビット、セレクトバスｓｅｌ＿０（ｍ）に接続される。同様に、ＭＵＸ＿１　３０の出力はＥＸＣＬＵＳＩＶＥ　ＯＲ（ＸＯＲ）５０の入力に接続され、ＸＯＲ５０のもう一方の入力はＭＵＸ＿１　３０の最重要ビット、ｓｅｌ＿１（ｍ）に接続される。
【００１２】
　ここではチャネル０の経路だけを考え、タップ倍化機能を以下に説明する。図１，図２において、ｓｅｌ＿０（ｍ）＝‘０’のとき、ＸＯＲ４０の入力は‘０’であり、ＸＯＲ４０の出力はマルチプレクサ（ＭＵＸ＿０）２０の出力と等しくなる。ｓｅｌ＿０（ｍ）＝‘１’のとき、ＸＯＲ４０への入力は‘１’で、ＸＯＲ４０の出力はマルチプレクサ（ＭＵＸ＿０）２０の出力の反転となる。この反転動作により、ＤＬＬタップ供給チャネル０の１８０°位相シフトが可能となり、クロック周期Ｔの後半に残りのＤＬＬタップを発生させるメカニズムができる。したがって、ｓｅｌ＿０（ｍ）＝‘１’でｓｅｌ＿０［（ｍ−１）：０］＝０（十進）のとき、ｄｌｌ＿ｔａｐ（０）がマルチプレクサ（ＭＵＸ＿０）２０によって選択され、ＸＯＲ４０によって反転され、ＸＯＲ４０の出力においてｄｌｌ＿ｔａｐ（ｎ＋１）が形成される。ｓｅｌ＿０（ｍ）＝‘１’とｓｅｌ＿０［（ｍ−１）：０］＝１（十進）のとき、ｄｌｌ＿ｔａｐ（１）がＭＵＸ＿０　２０によって選択され、ＸＯＲ４０によって反転され、ＸＯＲの出力においてｄｌｌ＿ｔａｐ（ｎ＋２）が形成され、同様にしてｄｌｌ＿ｔａｐ（２ｎ＋１）まで続く。このように、ＤＬＬタップの数は有効に倍化されるため、必要な数の半分のみのタップのＤＬＬを使用することが可能となる。これにより、ＤＬＬ内のジッタが減り、全体的な精度と安定性が高まり、また、集積回路内の省スペースも実現する。
【００１３】
　チャネル０のタップ倍化論理の上記説明は、チャネル１にも同様に適用される。したがって、（２ｎ＋１）のＤＬＬタップ全部をＸＯＲ５０の出力で発生させることができる。
【００１４】
　ここではチャネル０経路だけを考え、イネーブルおよびディスエーブル機能について以下に説明する。図１において、ＸＯＲ４０の出力はＮＡＮＤ６０の入力に接続され、ＮＡＮＤ６０のもう一方の入力はｃｈａｎ＿０＿ｅｎａｂｌｅに接続される。ｃｈａｎ＿０＿ｅｎａｂｌｅ＝‘０’のとき、ＮＡＮＤ６０（１）の出力は‘１’に保持され、これによってＭＵＸ＿０　２０（Ｃ）によって選択されたＤＬＬタップのクロック動作が有効にディスエーブルされる。ｃｈａｎ＿０＿ｅｎａｂｌｅ＝‘１’のとき、ＮＡＮＤ６０の出力はＸＯＲ４０（Ｇ）の出力に従い、ＭＵＸ＿０　２０（Ｃ）によって選択されたＤＬＬタップのクロック動作は自由に次の論理段階に進むことができる。これと同じイネーブルおよびディスエーブル機能がＮＡＮＤ７０とｃｈａｎ＿１＿ｅｎａｂｌｅを使ってチャネル１においても実現する。これらを合わせ、ｃｈａｎ＿０＿ｅｎａｂｌｅとｃｈａｎ＿１＿ｅｎａｂｌｅを使い、ｏｕｔｐｕｔ＿ｃｌｏｃｋのＯＮとＯＦＦを切り替えることができる。また、どのＤＬＬタップでも直接、チャネル０をイネーブルし（ｃｈａｎ＿０＿ｅｎａｂｌｅ＝‘１’）、チャネル１をディスエーブルする（ｃｈａｎ＿１＿ｅｎａｂｌｅ＝‘０’）することによってＯＵＴＰＵＴ＿ＬＯＧＩＣ（出力ロジック）からｏｕｔｐｕｔ＿ｃｌｏｃｋにすることができる。この機能は、試験目的および、ｏｕｔｐｕｔ＿ｃｌｏｃｋでデューティサイクル５０％のクロックを発生するため（ＤＬＬタップのデューティサイクルを５０％とする）にも有益である。
【００１５】
　ＮＡＮＤ６０とＮＡＮＤ７０の出力は、ＮＡＮＤ８０の入力に接続され、これはデューティサイクル５０％未満のパルスの発生に使用される。ＮＡＮＤ６０とＮＡＮＤ７０の出力はまたＮＯＲ９０の入力にも接続され、これはデューティサイクルが５０％を超えるパルスを発生するのに使用される。
【００１６】
　デューティサイクル５０％未満のパルスの発生（ＮＡＮＤ８０を用いる）について先に説明する。図１，３において、ＮＡＮＤ７０によって選択されたＤＬＬタップはＮＡＮＤ６０によって選択されたものより大きく、このため、ＮＡＮＤ８０の出力に示される周期的波形を成形する。ＮＡＮＤ８０への入力がどちらも論理値‘１’であると、出力は論理値‘０’となる。ＮＡＮＤ８０の入力の一方または両方が論理値‘０’であると、出力は論理値‘１’となる。図１において、ＮＡＮＤ８０の出力はＭＵＸ２−１　１００の入力のひとつに接続される。ＭＵＸ２−１　１００のもう一方の入力はＮＯＲ９０の出力に接続され、この動作について説明する。ｓｅｌ＿ａｎｄ＿ｏｒ＿ｎ＝‘１’であると、図３に示すように、ＭＵＸ２−１　１００の出力はＮＡＮＤ８０の出力に従う。ＭＵＸ２−１　１００の出力はｉｎｖｅｒｔ＿ｏｕｔｐｕｔに接続される。ｉｎｖｅｒｔ＿ｏｕｔｐｕｔ＝‘０’であると、図３に示すように、ｏｕｔｐｕｔ＿ｃｌｏｃｋはＭＵＸ２−１　１００の出力に従う。図３ではまた、ｉｎｖｅｒｔ＿ｏｕｔｐｕｔ＝‘１’のとき、ｏｕｔｐｕｔ＿ｃｌｏｃｋの波形が反転していることにも注意されたい。
【００１７】
　デューティサイクルが５０％を超えるｏｕｔｐｕｔ＿ｃｌｏｃｋパルスの発生については、ＮＯＲ９０の経路がＭＵＸ２−１　１００によってｓｅｌ＿ａｎｄ＿ｏｒ＿ｎ＝‘０’に設定することによって選択される。これに対応するＮＯＲ９０の経路の場合の波形を図４に示す。
【００１８】
　ステートマシン１２０は入力、したがって、ＯＵＴＰＵＴ＿ＬＯＧＩＣ（０）の前述の機能を制御するよう設計することが可能である。このように、フレキシブルでパワフルなクロック発生回路を実現できる。
【図面の簡単な説明】
【００１９】
【図１】本発明の好ましい実施形態のブロック図である。
【図２】図１の好ましい実施形態のＤＬＬによって発生される複数のクロックを示すタイミング図である。
【図３】図１の一部のタイミング図であり、デューティサイクルが５０％未満の出力パルス発生例を示す。
【図４】図１の一部のタイミング図であり、デューティサイクルが５０％より大きい出力パルス発生例を示す。
【符号の説明】
【００２０】
　１０　ディレイロックループ（ＤＬＬ）、２０　マルチプレクサ（ＭＵＸ＿０）、３０　マルチプレクサ（ＭＵＸ＿１）、４０　ＸＯＲ、５０　ＸＯＲ、６０　ＮＡＮＤ、７０　ＮＡＮＤ、８０　ＮＡＮＤ、９０　ＮＯＲ、１００　マルチプレクサ（ＭＵＸ２−１）、１１０　ＸＯＲ、１２０　ステートマシン。
【図１】
2004127289.tif 000003
【図２】
2004127289.tif 000004
【図３】
2004127289.tif 000005
【図４】
2004127289.tif 000006