(57)【要約】【課題】ＰＬＬ回路を使用してクロックの位相をずらすクロック位相シフト装置において、ＰＬＬロック外れを発生しにくくする。【解決手段】水晶発振器１００の出力クロックC100を入力する第１段のＰＬＬ回路２０１、およびこの第１段のＰＬＬ回路の出力クロックC201を入力する第２段のＰＬＬ回路２０２を備え、前記第２段のＰＬＬ回路の出力クロックC202が前記第１段のＰＬＬ回路に前記水晶発振器の出力クロックと比較する入力クロックとして入力され、前記第２段のＰＬＬ回路の出力クロックC202が外部への出力クロックとして取り出されるクロック位相シフト装置。【選択図】図１
2008099097.tif 000002
【特許請求の範囲】
【請求項１】
水晶発振器の出力クロックを入力する第１段のＰＬＬ回路、およびこの第１段のＰＬＬ回路の出力クロックを入力する第２段のＰＬＬ回路を備え、前記第２段のＰＬＬ回路の出力クロックが前記第１段のＰＬＬ回路に前記水晶発振器の出力クロックと比較する入力クロックとして入力され、前記第２段のＰＬＬ回路の出力クロックが外部への出力クロックとして取り出されるクロック位相シフト装置。
【請求項２】
請求項１に記載のクロック位相シフト装置において、前記第１段のＰＬＬ回路および前記第２段のＰＬＬ回路がＦＰＧＡ内に設けられ、前記バッファの出力が前記第２段のＰＬＬ回路に前記第１段のＰＬＬ回路の出力クロックと比較する入力クロックとして入力され、前記第２段のＰＬＬ回路の出力クロックが、前記ＦＰＧＡ内のバッファを介して外部への出力クロックとして取り出されることを特徴とするクロック位相シフト装置。
【請求項３】
請求項１または請求項２に記載の記載のクロック位相シフト装置において、前記第１段のＰＬＬ回路の出力クロックおよび前記第２段のＰＬＬ回路の出力クロックの少なくとも一方により前記ＦＰＧＡがリセットされることを特徴とするクロック位相シフト装置。
【請求項４】
請求項１または請求項２に記載の記載のクロック位相シフト装置において、前記水晶発振器の出力クロックの停止を検知するクロックロス信号に基づいて前記ＦＰＧＡ内に有意な信号が作り出されることを特徴とするクロック位相シフト装置。
【請求項５】
請求項４に記載のクロック位相シフト装置において、クロックロス信号に依存して作動するカウンタの出力に基づいてリセット信号が生成されることを特徴とするクロック位相シフト装置。
【請求項６】
請求項１または請求項２に記載の記載のクロック位相シフト装置において、前記第１段のＰＬＬ回路の出力クロックおよび前記第２段のＰＬＬ回路の出力クロックの少なくとも一方と、前記水晶発振器の出力クロックの停止を検知するクロックロス信号に依存して作動するカウンタの出力とに基づいてリセット信号が生成されることを特徴とするクロック位相シフト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数個のＰＬＬ（Phase  Locked  Loop）回路を使用してクロックの位相をずらすクロック位相シフト装置に関するものであり、例えばクロック同期メモリなどのデバイスへのアクセスタイミング仕様を満足させるためにＰＬＬ回路を用いてクロックの位相をずらす必要がある装置において、ＰＬＬロック外れを発生しにくくしたい、あるいはロックするまでの間はシステム全体を動作させずに必要な期間のリセット信号を出力したい場合等に適用すれば至便なクロック位相シフト装置に関するものである。
【背景技術】
【０００２】
従来のＰＬＬ回路を使用したクロック位相シフトに関しては様々な方式が案出されてきた。例えば、特開平１０−５６３８２号公報（特許文献１）のようにＰＬＬ回路を２個使用する方式である。
特開平１０−５６３８２号公報に記載の方式を図７に示す。図７に示すように、この方式では１個目のＰＬＬ回路を通常のようにフィードバックしたクロックを１個目のＰＬＬ回路に入れる使用方法で使用した直後に、２個目のＰＬＬ回路を同様にフィードバックしたクロックを２個目のＰＬＬ回路に入れる方式が採用されている。
この方式においては電圧低下時でも安定した周波数特性を得られるなどの利点があるが、ＰＬＬロック外れの発生しやすさに対しては対策は取られておらず、各々フィードバックループを有するＰＬＬ回路を２個使用したことによりフィードバックループが２箇所となり、ＰＬＬロック外れの可能性のある場所が２箇所になってしまっており、ＰＬＬロック外れの発生しやすさが２倍になってしまっていた。
【０００３】
また、前記リセットの期間を延長させる回路に関しても、従来から様々な方式が案出されてきた。例えば特開平５−８８７８５号公報（特許文献２）に記載のものがある。
特開平５−８８７８５号公報に記載の方式を図８に示す。図８に示すように、この方式は、リセット信号発生部とパルス幅補償部と回路を分ける方式である。この方式は、クロックが安定していない場合の動作が不確実であり、またパルス幅補償部のリセットは何をもってするのかという点が考慮されていないなど現実的な方式ではなかった。
【０００４】
【特許文献１】特開平１０−５６３８２号公報（第８頁、第１図）
【特許文献１】特開平  ５−８８７８５号公報（第５頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＰＬＬ回路を使用した従来のクロック位相シフト装置では、ＰＬＬロック外れの発生しやすさに対する対策としてはＰＬＬ回路そのものの性能にのみ頼っており、ＰＬＬロック外れを発生しにくくすることについてはは特に考慮されていなかった。
例えば、１００MHzを超える高速クロックを使用するデバイスやシステムでは、例えば、水晶発振器出力クロックのジッタ変動や電源ノイズなどにより出力電圧に変動が生じた場合、ＰＬＬ回路ではその出力クロックを入力側の基準周波数としてフィードバックして位相制御しているので、前記ジッタ変動や電源ノイズなどが原因してＰＬＬロック外れを起こすことがあり、もし、ＰＬＬロック外れが発生した場合には、ＰＬＬ出力クロック周波数が過渡的に乱れ、ＰＬＬ出力クロックを利用しているクロック同期メモリなどのクロック利用デバイスやシステムへのアクセスでパリティエラーなどのエラーが発生する可能性があるため、ＰＬＬ回路を使用してクロックの位相をずらすクロック位相シフト装置においてはＰＬＬロック外れを発生しにくくするの好ましい。
【０００６】
また、前記リセットの期間を延長させる従来のリセット延長回路では、クロックが安定していない期間での動作が不確定であったり、リセット延長回路そのもののリセットをどのようにするのかという点について考慮がされていないので、ロックが完了するまでの間、システムが動作し始めないように的確なリセット信号を出すようにすることが好ましい。
【０００７】
この発明は、前述のような実情に鑑みてなされたもので、ＰＬＬ回路を使用してクロックの位相をずらすクロック位相シフト装置において、ＰＬＬロック外れを発生しにくくし、またロックが完了するまでの間、ＰＬＬ出力クロックを使用するシステムが動作し始めないようにリセット信号をシステム全体に必要な期間だけ出すことができるようにすることを目的とするものである。
【課題を解決するための手段】
【０００８】
この発明に係るクロック位相シフト装置は、水晶発振器の出力クロックを入力する第１段のＰＬＬ回路、およびこの第１段のＰＬＬ回路の出力クロックを入力する第２段のＰＬＬ回路を備え、前記第２段のＰＬＬ回路の出力クロックが前記第１段のＰＬＬ回路に前記水晶発振器の出力クロックと比較する入力クロックとして入力され、前記第２段のＰＬＬ回路の出力クロックが外部への出力クロックとして取り出されるものである。
【発明の効果】
【０００９】
この発明は、水晶発振器の出力クロックを入力する第１段のＰＬＬ回路、およびこの第１段のＰＬＬ回路の出力クロックを入力する第２段のＰＬＬ回路を備え、前記第２段のＰＬＬ回路の出力クロックが前記第１段のＰＬＬ回路に前記水晶発振器の出力クロックと比較する入力クロックとして入力され、前記第２段のＰＬＬ回路の出力クロックが外部への出力クロックとして取り出されるので、ＰＬＬ回路を使用してクロックの位相をずらすクロック位相シフト装置において、ＰＬＬロック外れを発生しにくくできる効果がある。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
以下、この発明の実施の形態１を、複数のＰＬＬ回路を使用したクロック位相シフト装置の事例を示すブロック図である図１に基づいて説明する。
【００１１】
この発明の実施の形態１を図１に基づいて説明するに当たって、まず、従来の一般的なクロック位相シフト装置について図９より説明する。
図９において、水晶発振器１００から生成されるクロックが、ＰＬＬ回路２０１とフリップフロップ回路２０３とを含むＦＰＧＡ（Field  Programmable  Gate  Array）２００に入力されており、ＰＬＬ回路２０１から出力されるクロックとフリップフロップ回路２０３から出力されるその他の信号（アドレス信号／データ信号／制御信号等）が例えばクロック同期メモリなどのデバイス３００に入力されている。ＦＰＧＡ２００はデバイス３００にアクセスするが、デバイス３００にアクセスするためのタイミング仕様をＦＰＧＡ２００を通常に使用した場合では満足できない場合、クロックの位相をずらす必要がある。
【００１２】
なおＦＰＧＡとは、周知のように、ユーザが希望する論理機能を何度でも書き換えできるデバイスであり、ＦＰＧＡ上に格子状に並んだＣＬＢ（Configurable  Logic  Block）により構成され、各ＣＬＢはＣＬＢ間の配線リソースによって接続可能となっており、また、各ＣＬＢは任意の論理関数を生成できるファンクションジェネレータとフリップフロップにより構成されている。
【００１３】
次に、図９に示される従来の一般的なクロック位相シフト装置の動作について、クロックの位相をずらす必要がある場合について説明する。
【００１４】
ＦＰＧＡ２００は、水晶発振器１００から入力されたクロックC100を使用してフリップフロップ回路２０３からアドレス信号／データ信号等の出力O203を出す一方で、ＦＰＧＡ２００の出力クロックO200の位相を水晶発振器１００の出力クロックC100に対してずらすために、水晶発振器１００の出力クロックC100をＰＬＬ回路２０１に入力する。
【００１５】
ＰＬＬ回路２０１は、入力されたクロックC100を、ＰＬＬ回路２０１内部の多少の遅延を伴って出力C201する。
ＰＬＬ回路２０１から出力されたクロックC201は、ＦＰＧＡ２００から出力されて、例えばクロック同期メモリなどのデバイス３００に入力されるとともに、フィードバックされてＰＬＬ回路２０１にも入力される。
【００１６】
ＰＬＬ回路２０１は、水晶発振器１００から入力されたクロックC100と、フィードバックされて入力されたクロックC201とを比較する。当然、クロックが入力され始めた直後は、水晶発振器１００から入力されたクロックC100と、フィードバックされて入力されたクロックC201との位相はずれているが、ＰＬＬ回路２０１は水晶発振器１００から入力されたクロックC100とフィードバックされて入力されたクロックC201との位相のずれをなくすよう、ＰＬＬ回路２０１の出力クロックC201を調整してフィードバックされて入力されているクロックC201を水晶発振器１００から入力されたクロックC100と位相を同じにする。
【００１７】
この調整を一般に「クロックの位相をずらす」と言い、またこの調整に成功している状態を一般に「ＰＬＬロックしている」と言い、逆に調整に失敗している状態を一般に「ＰＬＬロック外れ」と言う。
【００１８】
なお、クロックが入力され始めてからＰＬＬロックしている状態になるまでの時間は、例えば、クロック周波数で数サイクルである。
【００１９】
次に、前述の図９に示された従来の一般的なクロック位相シフト装置を踏まえて、この発明の実施の形態１のクロック位相シフト装置の事例を図１にとり説明する。なお、図１において、図９と同一又は相当部分には図９と同一符号を付してある。
【００２０】
図１において、水晶発振器１００から生成されるクロックC100が、第１段のＰＬＬ回路Ａ２０１と第２段のＰＬＬ回路Ｂ２０２とフリップフロップ回路２０３とバッファ２０４とを含むＦＰＧＡ２００に入力されており、バッファ２０４から出力されるクロックC204とフリップフロップ回路２０３から出力されるその他の信号（アドレス信号／データ信号／制御信号等）O203が、例えばクロック同期メモリなどのデバイス３００に入力されている。
【００２１】
ＦＰＧＡ２００は、クロック同期メモリ３００にアクセスするが、デバイス３００にアクセスするためのタイミング仕様を、ＦＰＧＡ２００を通常に使用した場合では満足できない場合、クロックC204の位相をずらす必要がある。
【００２２】
次に図１に例示されている実施の形態１の動作について、クロックの位相をずらす必要がある場合について説明する。
【００２３】
ＦＰＧＡ２００は、水晶発振器１００から入力されたクロックC100をクロックの位相をずらすためにＰＬＬ回路Ａ２０１にクロックを入力する。
【００２４】
第１段のＰＬＬ回路Ａ２０１は、水晶発振器１００から入力されたクロックC100を、第１段のＰＬＬ回路Ａ２０１の内部での多少の遅延を伴って出力C201する。
【００２５】
第１段のＰＬＬ回路Ａ２０１から出力されたクロックC201は、フリップフロップ回路２０３に入力されてアドレス信号／データ信号等の出力C203をＦＰＧＡ２００から出力する一方で、第２段のＰＬＬ回路Ｂ２０２に入力される。
【００２６】
第２段のＰＬＬ回路Ｂ２０２は入力されたクロックC201を第２段のＰＬＬ回路Ｂ２０２の内部での多少の遅延を伴って出力する。
【００２７】
第２段のＰＬＬ回路Ｂ２０２から出力されたクロックC202は、バッファ２０４に入力されるとともにフィードバックされて第１段のＰＬＬ回路Ａ２０１にも入力される。
【００２８】
バッファ２０４から出力されたクロックC204は、ＦＰＧＡ２００から出力されて例えばクロック同期メモリなどのデバイス３００に入力されるとともに、フィードバックされて第２段のＰＬＬ回路Ｂ２０２に入力される。
【００２９】
第１段のＰＬＬ回路Ａ２０１は、水晶発振器１００から入力されたクロックC100と、第２段のＰＬＬ回路Ｂ２０２からフィードバックされて入力されたクロックC202とを比較する。
【００３０】
第１段のＰＬＬ回路Ａ２０１にクロックC100が入力され始めた直後は、水晶発振器１００から入力されたクロックC100と第２段のＰＬＬ回路Ｂ２０２からフィードバックされて入力されたクロックC202との位相は当然ずれているが、第１段のＰＬＬ回路Ａ２０１は、
水晶発振器１００から入力されたクロックC100と第２段のＰＬＬ回路Ｂ２０２からフィードバックされて入力されたクロックC202との位相のずれをなくすように第１段のＰＬＬ回路Ａ２０１の出力クロックC201を調整して、第２段のＰＬＬ回路Ｂ２０２からフィードバックされて入力されているクロックC202と水晶発振器１００から入力されたクロックC100とを同じ位相にする。
【００３１】
第２段のＰＬＬ回路Ｂ２０２は、第１段のＰＬＬ回路Ａ２０１から入力されたクロックC201と、バッファ２０４からフィードバックされて入力されたクロックC204とを比較する。
【００３２】
第２段のＰＬＬ回路Ｂ２０２では、クロックが入力され始めた直後は、第１段のＰＬＬ回路２０１から入力されたクロックC201とバッファ２０４からフィードバックされて入力されたクロックC204との位相は当然ずれているが、第２段のＰＬＬ回路Ｂ２０２は、第１段のＰＬＬ回路Ａ２０１から入力されたクロックC201とバッファ２０４からフィードバックされて入力されたクロックC204との位相のずれをなくすように第２段のＰＬＬ回路Ｂ２０２の出力クロックC202を調整して、バッファ２０４からフィードバックされて入力されているクロックC204と第１段のＰＬＬ回路Ａ２０１から入力されたクロックC201とを同じ位相にする。実施の形態１では以上の方法でクロックの位相をずらす。
【００３３】
この実施の形態１に例示したクロック位相シフト装置では、クロックのフィードバックを２個のＰＬＬ回路（第１段のＰＬＬ回路２０１、第２段のＰＬＬ回路Ｂ２０２）にまたがらせることにより、クロックの位相ずらしのための調整が実施できる箇所を２箇所とした。
【００３４】
クロックの位相ずらしのための調整が実施できる箇所を２箇所としたことにより、前述のＰＬＬロック外れの発生しやすさは、前述の図７に示す従来のクロック位相シフト装置の場合の２分の１となっている。
【００３５】
また、前述のＰＬＬロックに要する時間は、例えば、第１段のＰＬＬ回路Ａ２０１、第２段のＰＬＬ回路Ｂ２０２の各々での時間がクロック周波数で３サイクルであるとすれば、この発明の実施の形態１では６サイクル（３サイクル＋３サイクル）であるが、前述の図７に示す従来のクロック位相シフト装置においては、フィードバック回路を有する１個目の位相比較器（ＰＬＬ回路）のＰＬＬロックしてない状態の不確定な出力を、フィードバック回路を有する２個目の位相比較器（ＰＬＬ回路）に取り込んでいるため、最終出力がＰＬＬロックするまでの時間は６サイクルを数サイクル超え完全にＰＬＬロックするまでに時間を要する。換言すれば、６サイクル経過時点では、前述の図７に示す従来のクロック位相シフト装置においてはＰＬＬロック外れの状態となるが、この発明の実施の形態１では、確実にＰＬＬロックの状態となる。
【００３６】
なお、前述の実施の形態１では、クロック周波数を分周により下げることについては記載してないが、デバイスやシステムによって使用するクロック周波数は、水晶発振器の発振周波数より低い場合や高い場合など、様々であり、何れの場合にも前述の実施の形態１を適用することが可能である。
また、前述の出力クロックC204は、水晶発信器の出力クロックC100から、所定位相シフトされるが、そのシフト量は、必要に応じて調整できるように可調整としてもよい。
【００３７】
実施の形態２．
以下、この発明の実施の形態２を、複数のＰＬＬ回路を使用し且つリセット信号生成回路を有したクロック位相シフト装置の事例を示す図２に基づいて説明する。
【００３８】
図２において、水晶発振器１００から生成されるクロックC100が、第１段のＰＬＬ回路Ａ２０１と第２段のＰＬＬ回路Ｂ２０２とフリップフロップ回路２０３とバッファ２０４とを含むＦＰＧＡ２００に入力されており、ＦＰＧＡ２００から出力されるクロックC204とその他の信号（アドレス信号／データ信号／制御信号等）O203とが、例えばクロック同期メモリなどのデバイス３００に入力されている。
【００３９】
第１段のＰＬＬ回路Ａ２０１は、自己のＰＬＬロック外れを自ら判定し当該ＰＬＬロック外れを通知するためのＰＬＬロック外れ通知信号２０５を出力する。
【００４０】
第２段のＰＬＬ回路Ｂ２０２は、自己のＰＬＬロック外れを自ら判定し当該ＰＬＬロック外れを通知するためのＰＬＬロック外れ通知信号２０６を出力する。
【００４１】
ＦＰＧＡ２００は、ＦＰＧＡ２００の出力であるクロックC204やその他の信号（アドレス信号／データ信号／制御信号等）O203を利用するシステム（図示省略）をリセット（初期化）するリセット信号２０７を出力する。このリセット信号２０７は、ＰＬＬロック外れ通知信号２０５とＰＬＬロック外れ通知信号２０６とを入力するOR論理要素等の論理要素２０７から、ＰＬＬロック外れ通知信号２０５およびＰＬＬロック外れ通知信号２０６の少なくとも一が出力されると出力される。
【００４２】
ＦＰＧＡ２００はデバイス３００にアクセスするが、デバイス３００にアクセスするためのタイミング仕様をＦＰＧＡ２００を通常に使用した場合では満足できない場合、クロックの位相をずらす必要がある。
【００４３】
次に実施の形態２の動作について説明する。実施の形態１及び２では、最初に一度ロックしてしまえばロック外れが発生しにくいという利点がある反面、最初のロックがしにくくなっている。最初にロックするまでの間は正常な動作が期待できないため、リセットをかけてＦＰＧＡ２００が例えばクロック同期メモリなどのデバイス３００にアクセスしないようにする。
【００４４】
第１段のＰＬＬ回路Ａ２０１から出力されるＰＬＬロック外れ通知信号２０５は、ロック外れが発生した時に有意になるが、ロックする前も有意となっている。また同様に第２段のＰＬＬ回路Ｂ２０２から出力されるＰＬＬロック外れ信号２０６は、ロック外れが発生した時に有意になるが、ロックする前も有意となっている。
【００４５】
これらロック外れ信号２０５、２０６の論理和を論理要素２０７で取った信号をＦＰＧＡ２００から出力されるリセット信号O207とし、前記システム全体とＦＰＧＡ２００自身をリセットする。これにより、ロックの状態になる前にＦＰＧＡ２００がデバイス３００にアクセスしてしまい、ＦＰＧＡ２００及びシステム全体が誤動作することを防げる。
【００４６】
実施の形態３．
以下、この発明の実施の形態３を図１０、図３、図４に基づいて説明する。図１０は従来のＦＰＧＡ内部回路をリセットする回路構成を示すブロック図、図３は複数のＰＬＬ回路を有したＦＰＧＡの内部回路をリセットする回路構成の事例を示すブロック図、図４は図３における各部動作例と図１０における各部動作とを比較してタイムチャートで示す図である。
【００４７】
図１０、図３において、水晶発振器１００から生成されるクロックC100が、クロックロス検出回路４００と、内部回路２０８を備えるＦＰＧＡ２００とに入力されている。
【００４８】
クロックロス検出回路４００は、入力されるクロックC100が供給されなくなってしばらくすると有意になり、クロックが供給されている間は無意になるクロックロス信号O400を常に出力している。
【００４９】
またリセット信号５００がＦＰＧＡ２００に入力され、出力されている。リセット信号５００の発生要因は、電源降下による自動リセットや、システムが備えているリセットボタンの人為の押下などである。図１０は従来の方式である。図３は本実施の形態３の方式である。
【００５０】
まず従来の方式の動作について図４に基づいて説明する。
特殊なケースでない限り、電源、クロックC100、クロックロス信号O400、リセット信号５００は、図４に図示の上から順番に有意になっていく。
即ち、電源を投入すると、まず電源そのものがゆっくりと供給されはじめ、やがて完全に供給されるようになる。
水晶発振器１００は、電源供給を完全に受けてから初めてクロックC100の生成を開始する。電源が供給され始めた直後は動作が不確定である。不確定であるとは、具体的にはハイとローの中間の電位であったり、本来水晶発振器１００が生成すべき周波数ではないクロックが出力されたりなどの状態である。
クロックロス検出回路４００は、電源が供給されはじめてもクロックC100が生成されていない場合には、図示のように、クロックロス信号O400として有意を出力している。即ち、図示のように、クロックロス信号は、ロー有意である。従って、この「クロックロス信号O400有意」は、クロックC100が発生していないことを表す信号である。
クロックC100が不確定の動作中であっても、クロック信号C100がハイに変化するのを検出したり、異なった周波数のクロックを検出したりすると、図示のように、クロックロス信号O400は無意へと変化する。従って、この「クロックロス信号O400無意」は、クロックC100が発生していることを表す信号である。
リセット信号５００は、図示のように、クロックC100が完全に供給されてしばらく経ってから有意から無意へと変わる。リセット信号５００はロー有意である。この「リセット信号５００有意」は、ＦＰＧＡ２００内部の内部回路２０８のリセット、即ち初期化状態、スタンバイ状態、を意味し、ＦＰＧＡ２００の内部回路２０８の出力O208（図２におけるフリップフロップ回路２０３の出力O203等）が出力されていないことを意味する。
図１０に示す従来の方式、システムでは、このリセット信号５００がＦＰＧＡ２００内部の内部回路２０８をリセットしていたため、正常なクロックC100が供給されていても、リセット信号５００が無意になるまで内部回路２０８は動作することができなかった。ＦＰＧＡ２００の出力を利用するデバイスやシステムも動作することができなかった。
【００５１】
次に実施の形態３の動作について図８に基づいて説明する。
特殊なケースでない限り、電源、クロックC100、クロックロス信号O400、リセット信号５００は、図４に図示の上から順番に有意になっていく。
即ち、電源を投入すると、まず電源そのものがゆっくりと供給されはじめ、やがて完全に供給されるようになる。
水晶発振器１００は、電源供給を完全に受けてから初めてクロックC100の生成を開始する。電源が供給され始めた直後は動作が不確定である。不確定であるとは、具体的にはハイとローの中間の電位であったり、本来水晶発振器１００が生成すべき周波数ではないクロックが出力されたりなどの状態である。
クロックロス検出回路４００は、電源が供給されはじめてもクロックC100が生成されていない場合には、図示のように、クロックロス信号O400として有意を出力している。即ち、図示のように、クロックロス信号は、ロー有意である。従って、この「クロックロス信号O400有意」は、クロックC100が発生していないことを表す信号である。
クロックC100が不確定の動作中であっても、クロック信号C100がハイに変化するのを検出したり、異なった周波数のクロックを検出したりすると、図示のように、クロックロス信号O400は無意へと変化する。従って、この「クロックロス信号O400無意」は、クロックC100が発生していることを表す信号である。
リセット信号５００は、図示のように、クロックC100が完全に供給されてしばらく経ってから有意から無意へと変わる。リセット信号５００はロー有意である。この「リセット信号５００有意」は、ＦＰＧＡ２００内部の内部回路２０８のリセット、即ち初期化状態、スタンバイ状態、を意味し、ＦＰＧＡ２００の内部回路２０８の出力O208（図２におけるフリップフロップ回路２０３の出力O203等）が出力されていないことを意味する。
図３に例示する本実施の形態３の方式、システムでは、このリセット信号５００は、図３に図示のように、ＦＰＧＡ２００の内部回路２０８のリセットには使用されず、必要に応じて内部回路２０８以外のＦＰＧＡ２００内のリセットに使用されたり、必要に応じてそのままＦＰＧＡ２００から出力されてシステム全体のリセットに使用されたりするようにしてもよい。
ＦＰＧＡ２００の内部回路２０８のリセットをするのは、クロックロス検出回路４００の出力であるクロックロス信号O400である。そのため内部回路２０８が有意な出力信号を作り出せる時期は、図４に示すように、図１０に示す従来方式、システムに較べて格段に早くなった。ＦＰＧＡ２００の内部回路２０８の出力O208を利用するデバイス、システムの動作開始時期が図１０に示す従来方式、システムに較べて格段に早くなった。
【００５２】
実施の形態４．
以下、この発明の実施の形態４を、ＦＰＧＡにおいてリセット信号を生成するリセット生成回路の具体的構成の事例を示すブロック図である図５に基づいて説明する。
【００５３】
図５において、水晶発振器１００から生成されるクロックC100が、クロックロス検出回路４００と、リセット生成回路２１１を備えるＦＰＧＡ２００に入力されている。
クロックロス検出回路４００は、入力されるクロックが供給されなくなってしばらくすると有意になり、クロックが供給されている間は無意になるクロックロス信号O400を常に出力している。
またリセット信号５００は、ＦＰＧＡ２００内のリセット生成回路２１１及びＦＰＧＡ２００自体に入力されている。リセット信号５００の発生要因は、電源降下によるリセットや、システムが備えているリセットボタンの人為の押下などである。
リセット生成回路２１１は、内部にさらにカウンタ２１２とリセット検出回路２１４とＯＲ論理要素等の論理要素２１６とを内蔵している。
カウンタ２１２は、カウント満了を示す信号２１３を出力している。
リセット検出回路２１４は、入力されたリセット信号５００が無意から有意へと変わったことを検出する回路であり、これを検出するとリセット検出信号２１５は有意になってカウンタ２１２へと出力される。
カウンタ２１２は、クロックロス信号O400が無意になるか、リセット検出信号２１５が有意になるとリセットされ、入力されるクロック数をカウントし始め、そのカウントがカウント満了値に達した時点でカウント満了信号２１３を出力する。
リセット生成回路２１１は、論理要素２１６によるリセット信号５００とカウント満了信号２１３との論理和を、リセット出力O216として、ＦＰＧＡ２００から外部へ出力している。
【００５４】
次に実施の形態４の動作について説明する。
リセット生成回路２１１は、クロックロス信号O400が無意になると同時に動作を開始する。ここで、カウンタ２１２のカウント満了値は、カウンタ２１２が動作をする期間が最初のクロック不確定期間を含むため、実際に必要となるカウント値よりも多めに設定しておく。リセット生成回路２１１はそのカウント満了信号２１３とリセット信号５００との和をリセット出力O216とすることにより、電源投入時やその他のリセット要因に関してもシステムに必要な長さのリセット信号を確実に生成できる。
【００５５】
実施の形態５．
以下、この発明の実施の形態５を、ＦＰＧＡにおける複数のＰＬＬ回路と当該ＰＬＬ回路の出力に依存して作動するリセット生成回路との接続回路構成の事例を示すブロック図である図６に基づいて説明する。
【００５６】
図６において、水晶発振器１００にて生成されるクロックC100は、ＦＰＧＡ２００とクロックロス検出回路４００とに入力されている。
クロックロス検出回路４００は、入力されるクロックが供給されなくなってしばらくすると有意になり、クロックが供給されている間は無意になるクロックロス信号O400を常に出力している。
ＦＰＧＡ２００は、第１段のＰＬＬ回路Ａ２０１と第２段のＰＬＬ回路Ｂ２０２とフリップフロップ回路２０３とバッファ２０４とリセット生成回路２１１とを備えている。
バッファ２０４から出力されるクロックC204とフリップフロップ回路２０３から出力されるその他の信号（アドレス信号／データ信号／制御信号等）O203が、例えばクロック同期メモリなどのデバイス３００に入力されている。
ＦＰＧＡ２００は、デバイス３００にアクセスするが、デバイス３００にアクセスするためのタイミング仕様をＦＰＧＡ２００を通常に使用した場合では満足できない場合、クロックの位相をずらす必要がある。
第１段のＰＬＬ回路Ａ２０１は第１段のＰＬＬ回路Ａ２０１のＰＬＬロック外れを示すＰＬＬロック外れ信号２０５を出力し、第２段のＰＬＬ回路Ｂ２０２は第２段のＰＬＬ回路Ｂ２０２のＰＬＬロック外れを示すＰＬＬロック外れ信号２０６を出力する。
ＰＬＬロック外れ信号２０５とＰＬＬロック外れ信号２０６とをＯＲ論理要素等の論理要素２０７で論理和した信号がO207であり、さらにリセット信号５００とO207とが論理要素２１７で論理和されて信号O217が生成されている。
信号O217はリセット信号としてＦＰＧＡ２００に入力されている。
ここで、リセット信号５００の発生要因は、電源降下によるリセットや、システムが備えているリセットボタンの人為の押下などである。
リセット生成回路２１１は、内部にさらにカウンタ２１２とリセット検出回路２１４とを内蔵している。
カウンタ２１２はカウント満了を示す信号２１３を出力している。
リセット検出回路２１４は入力されたリセット信号O217が無意から有意へと変わったことを検出する回路であり、これを検出するとリセット検出信号２１５は有意になってカウンタ２１２へと出力される。
カウンタ２１２は、クロックロス信号O400が無意になるか、リセット検出信号２１５が有意になるとリセットされ、入力されるクロック数をカウントし始め、そのカウントがカウント満了値に達した時点でカウント満了信号２１３を出力する。
リセット生成回路２１１は、リセット信号O217とカウント満了信号２１３との論理和を、論理要素２１６から、リセット出力O216としてＦＰＧＡ２００からシステム全体へ出力している。
【００５７】
次に実施の形態５の動作について、クロックの位相をずらす必要がある場合について説明する。
ＦＰＧＡ２００は水晶発振器１００から入力されたクロックC100をクロックC100の位相をずらすために第１段のＰＬＬ回路Ａ２０１にクロックを入力する。
第１段のＰＬＬ回路Ａ２０１は、入力されたクロックC100を、第１段のＰＬＬ回路Ａ２０１内部の多少の遅延を伴って出力C201する。出力されたクロックC201は、フリップフロップ回路２０３に入力されてアドレス信号／データ信号等をＦＰＧＡ２００から出力する一方で、第２段のＰＬＬ回路Ｂ２０２に入力される。
第２段のＰＬＬ回路Ｂ２０２は、入力されたクロックC201を、第２段のＰＬＬ回路Ｂ２０２内部の多少の遅延を伴って出力C202する。第２段のＰＬＬ回路Ｂ２０２から出力されたクロックC202は、バッファ２０４に入力されるとともに、フィードバックされて第１段のＰＬＬ回路Ａ２０１にも入力される。
バッファ２０４から出力されたクロックC204は、ＦＰＧＡ２００から出力されて例えばクロック同期メモリなどのデバイス３００に入力されるとともに、フィードバックされて第２段のＰＬＬ回路Ｂに入力される。
第１段のＰＬＬ回路Ａ２０１は、水晶発振器１００から入力されたクロックC100と、第２段のＰＬＬ回路Ｂ２０２からフィードバックされて入力されたクロックC202とを比較する。当然、クロックC202が入力され始めた直後は水晶発振器１００から入力されたクロックC100とＰＬＬ回路Ｂ２０２からフィードバックされて入力されたクロックC202との位相はずれているが、第１段のＰＬＬ回路Ａ２０１は水晶発振器１００から入力されたクロックC100と第２段のＰＬＬ回路Ｂ２０２からフィードバックされて入力されたクロックC202との位相のずれをなくすよう、第１段のＰＬＬ回路Ａ２０１の出力クロックC201を調整して第２段のＰＬＬ回路Ｂ２０２からフィードバックされて入力されているクロックC202と水晶発振器１００から入力されたクロックC100とを同じ位相にする。
第２段のＰＬＬ回路Ｂ２０２は、第１段のＰＬＬ回路Ａ２０１から入力されたクロックC201と、バッファ２０４からフィードバックされて入力されたクロックC204とを比較する。当然、クロックC204が入力され始めた直後は第１段のＰＬＬ回路２０１から入力されたクロックC201とバッファ２０４からフィードバックされて入力されたクロックC204との位相はずれているが、第２段のＰＬＬ回路Ｂ２０２は第１段のＰＬＬ回路Ａ２０１から入力されたクロックC201とバッファ２０４からフィードバックされて入力されたクロックC204との位相のずれをなくすよう、第２段のＰＬＬ回路Ｂ２０２の出力クロックC202を調整してバッファ２０４からフィードバックされて入力されているクロックC204と第１段のＰＬＬ回路Ａ２０１から入力されたクロックC201とを同じ位相にする。
この方式では、最初に一度ロックしてしまえばロック外れが発生しにくいという利点がある反面、最初のロックがしにくくなっている。
最初にロックするまでの間は正常な動作が期待できないため、リセットをかけてＦＰＧＡ２００がデバイス３００にアクセスしないようにする。ロック外れ信号２０５、２０６の論理和を取った信号0207と外部からのリセット信号５００との論理和信号O217を生成し、リセット信号としてＦＰＧＡ２００をリセットする。
これにより、ロックの状態になる前にＦＰＧＡ２００がデバイス３００にアクセスしてしまい、ＦＰＧＡ２００及びシステム全体が誤動作することを防げる。
一方で、このリセット信号O217は、システムが必要としているリセット期間に満たない長さのリセットである可能性が十分にある。そこでリセット信号O217は、リセット生成回路２１１へと入力する。
リセット生成回路２１１は、クロックロス信号O400が無意になると同時に動作を開始する。ここで、カウンタ２１２のカウント満了値は、カウンタ２１２が動作をする期間が最初のクロック不確定期間を含むため、実際に必要となるカウント値よりも多めに設定しておく。リセット生成回路２１１は、カウンタ２１２の出力であるカウント満了信号２１３と前記論理要素２１７の出力O217との和をリセット出力O216とすることにより、電源投入時やその他のリセット要因に関してもシステムに必要な長さのリセット信号を確実に生成できる。
【００５８】
この発明の実施の形態１〜５は、前述のように構成されており、以下の特徴点を有する。
特徴点１：クロックの位相をずらすために使用するＰＬＬ回路を通常１個のみ使用するところを２個使用とし、また従来の方式とは異なり１つのループに２個のＰＬＬ回路を組み込むことにより、調整可能な箇所が１つのループに２箇所としたことでＰＬＬロック外れの発生しやすさを従来の２分の１にし、ＰＬＬロック外れが発生しにくくなった。
特徴点２：ロックが完了するまではシステムが動作しないようにシステム全体に必要な期間だけリセット信号を出力させるリセット回路を組み込むが、このリセット回路はクロックが不安定である場合についてもリセットを出力できるリセット回路とすることで、ロックが完了するまでの間やクロックが不安定な場合でも安定して一定期間のリセット信号が出力でき、装置がより安定した動作ができるようにした。
特徴点３：ＰＬＬ回路を２個使用し、クロックのフィードバックは２個のＰＬＬ回路をまたがるようにすることでＰＬＬロック外れを発生しにくくした。また、リセット生成回路をＦＰＧＡ内に設け、リセット生成回路のリセットをクロックロス信号にて実施することによって、ＰＬＬロック外れ時のみならず電源投入時等のリセットを確実に生成できるようにした。
特徴点１Ａ：ある装置において、装置内の水晶発振器にて生成されるクロックに対し、クロックの位相をずらすための回路である、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）内のＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路を、通常１個使用するところをＰＬＬロック外れが発生しにくくなるように２個使用するものである（実施の形態１〜５）。
特徴点２Ａ：特徴点１Ａの方式は、従来のＰＬＬ回路を１個使用する方式に較べてＰＬＬロック外れが発生しにくい反面、ＰＬＬロックもしにくいため、特徴点１Ａに加えて、ＰＬＬロック外れによる自動リセット回路をＦＰＧＡに備えたものである（実施の形態２）。
特徴点３Ａ：電源とリセット信号が供給されている装置において、電源投入時におけるリセット解除がされる前に、供給される電源によって装置内で水晶発振器から生成されるクロックが停止を検知したことを通知する信号であるクロックロス信号をリセット信号の代用とすることによって装置内のＦＰＧＡを初期化し、装置内で有意な信号を作り出すものである（実施の形態３）。
特徴点４Ａ：特徴点３Ａにおいて、電源投入時に供給されるリセット信号を装置内で保持し、必要なだけリセット期間を延ばすことができるものである（実施の形態４）。
特徴点５Ａ：特徴点４Ａにおいて、電源降下やシステムが備えているリセットボタンの人為の押下、また請求項２の自動リセット回路による期間の短いリセット信号を装置内で保持し、リセット期間を延ばすことができるものである（実施の形態５）。
特徴点１Ｂ１：水晶発振器の出力クロックを入力する第１段のＰＬＬ回路、およびこの第１段のＰＬＬ回路の出力クロックを入力する第２段のＰＬＬ回路を備え、前記第２段のＰＬＬ回路の出力クロックが前記第１段のＰＬＬ回路に前記水晶発振器の出力クロックと比較する入力クロックとして入力され、前記第２段のＰＬＬ回路の出力クロックが外部への出力クロックとして取り出されるものである。
特徴点１Ｂ２：特徴点１Ｂ１において、前記第１段のＰＬＬ回路および前記第２段のＰＬＬ回路がＦＰＧＡ内に設けられ、前記バッファの出力が前記第２段のＰＬＬ回路に前記第１段のＰＬＬ回路の出力クロックと比較する入力クロックとして入力され、前記第２段のＰＬＬ回路の出力クロックが、前記ＦＰＧＡ内のバッファを介して外部への出力クロックとして取り出されるものである。
特徴点２Ｂ：特徴点１Ｂ１または特徴点１Ｂ２において、前記第１段のＰＬＬ回路の出力クロックおよび前記第２段のＰＬＬ回路の出力クロックの少なくとも一方により前記ＦＰＧＡがリセットされるものである。
特徴点３Ｂ：特徴点１Ｂ１または特徴点１Ｂ２において、前記水晶発振器の出力クロックの停止を検知するクロックロス信号に基づいて前記ＦＰＧＡ内に有意な信号が作り出されるものである。
特徴点４Ｂ：特徴点３Ｂにおいて、クロックロス信号に依存して作動するカウンタの出力に基づいてリセット信号が生成されるものである。
特徴点５Ｂ：特徴点１Ｂ１または特徴点１Ｂ２において、前記第１段のＰＬＬ回路の出力クロックおよび前記第２段のＰＬＬ回路の出力クロックの少なくとも一方と、前記水晶発振器の出力クロックの停止を検知するクロックロス信号に依存して作動するカウンタの出力とに基づいてリセット信号が生成されるものである。
【００５９】
なお、図１〜１０の各図において、同一符号は同一又は相当部分を示す。
【図面の簡単な説明】
【００６０】
【図１】この発明の実施の形態１を示す図で、複数のＰＬＬ回路を使用したクロック位相シフト装置の事例を示すブロック図である。
【図２】この発明の実施の形態２を示す図で、複数のＰＬＬ回路を使用し且つリセット信号生成回路を有したクロック位相シフト装置の事例を示すブロック図である。
【図３】この発明の実施の形態３を示す図で、複数のＰＬＬ回路を有したＦＰＧＡの内部回路をリセットする回路構成の事例を示すブロック図である。
【図４】この発明の実施の形態３を示す図で、図３における各部動作例と図１０における各部動作とを比較してタイムチャートで示す図である。
【図５】この発明の実施の形態４を示す図で、ＦＰＧＡにおいてリセット信号を生成するリセット生成回路の具体的構成の事例を示すブロック図である。
【図６】この発明の実施の形態５を示す図で、ＦＰＧＡにおける複数のＰＬＬ回路と当該ＰＬＬ回路の出力に依存して作動するリセット生成回路との接続回路構成の事例を示すブロック図である。
【図７】ＰＬＬ回路を使用した従来（特許文献１に記載）のクロック位相シフト装置を示すブロック図である。
【図８】従来（特許文献２に記載）のリセット信号生成回路を示すブロック図である。
【図９】従来のＰＬＬ回路の適用対象であるＦＰＧＡ及びその出力を受けるクロック同期メモリの接続回路構成を示すブロック図である。
【図１０】である。
【符号の説明】
【００６１】
１００    水晶発振器、
２００    ＦＰＧＡ、
２０１    第１段のＰＬＬ回路、
２０２    第２段のＰＬＬ回路、
２０３    フリップフロップ回路、
２０４    バッファ、
２１２    カウンタ、
４０２    クロックロス検出回路。
【図１】
2008099097.tif 000003
【図２】
2008099097.tif 000004
【図３】
2008099097.tif 000005
【図４】
2008099097.tif 000006
【図５】
2008099097.tif 000007
【図６】
2008099097.tif 000008
【図７】
2008099097.tif 000009
【図８】
2008099097.tif 000010
【図９】
2008099097.tif 000011
【図１０】
2008099097.tif 000012