(57)【要約】【課題】同期化対象の信号の周波数と基準信号の周波数の高低関係とは関係なく安定した同期化を行う。【解決手段】ＣＰＵバスクロックの周波数と動作クロック信号の周波数を比較する周波数比較回路１００と、動作クロック信号の周波数の方が高い場合は、ソフトリセット信号を動作クロック信号のタイミングで捕捉して出力し、ＣＰＵバスクロックの周波数の方が高い場合は、動作クロック信号の少なくとも１周期に相当する期間にわたって保持したソフトリセット信号を動作クロック信号のタイミングで捕捉して出力するソフトリセット同期化回路１０１とを備える。【選択図】  図１
2005078147.tif 000002
【特許請求の範囲】
【請求項１】
非同期信号を基準信号に同期させる非同期信号の同期化回路であって、前記非同期信号の動作周波数と前記基準信号の周波数を比較する周波数比較手段と、前記基準信号の周波数の方が高い場合は、前記非同期信号を前記基準信号のタイミングで捕捉して出力し、前記非同期信号の動作周波数の方が高い場合は、前記基準信号の少なくとも１周期に相当する期間にわたって保持した前記非同期信号を前記基準信号のタイミングで捕捉して出力する同期化手段と、
を備える非同期信号の同期化回路。
【請求項２】
前記周波数比較部は、
前記非同期信号を分周する分周手段と、前記基準信号に同期して動作するカウンタと、前記分周手段で分周した信号の１周期の前半区間における前記カウンタのカウント値と、分周した信号の立ち上がりエッジおよび立ち下がりエッジの各タイミングで前記他方の信号のレベルをサンプリングして得られるレベル情報とを保持する記憶手段と、前記カウント値および前記レベル情報に基づき、分周した信号の１周期の後半区間において周波数の高低を判定する演算手段と、前記演算回路から出力される信号を分周した信号の１周期毎に取り込んで更新し出力する出力手段とを含む第１の周波数比較部と、前記基準信号を分周する分周手段と、前記非同期信号に同期して動作するカウンタと、前記分周手段により分周した信号の１周期の前半区間における前記カウンタのカウント値と、分周した信号の立ち上がりエッジおよび立ち下がりエッジの各タイミングで前記他方の信号のレベルをサンプリングして得られるレベル情報とを保持する記憶手段と、前記記憶手段に保持されている前記カウント値および前記レベル情報に基づき、分周した信号の１周期の後半区間において周波数の高低を判定する演算手段と、前記演算手段から出力される信号を、分周した信号の１周期毎に取り込んで更新し出力する出力手段とを含む第２の周波数比較部と、前記第１および第２の周波数比較部の比較結果を統合して出力する比較結果出力手段とを備える請求項１記載の非同期信号の同期化回路。
【請求項３】
非同期信号を基準信号に同期させる非同期信号の同期化方法であって、前記非同期信号の動作周波数と前記基準信号の周波数を比較する周波数比較工程と、前記基準信号の周波数の方が高い場合は、前記非同期信号を前記基準信号のタイミングで捕捉して出力し、前記非同期信号の動作周波数の方が高い場合は、前記基準信号の少なくとも１周期に相当する期間にわたって保持した前記非同期信号を前記基準信号のタイミングで捕捉して出力する同期化工程とを備える非同期信号の同期化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期信号の同期化回路および同期化方法に関し、例えば、ソフトリセット信号をＣＰＵを含むシステムＬＳＩの機能ブロックの動作クロックに同期化する技術に係る。
【背景技術】
【０００２】
一般に、機能ブロックの動作クロック信号（基準信号）に対してＣＰＵバスクロック信号が非同期の場合、ＣＰＵバスクロック信号に同期したソフトリセット信号（非同期信号）を動作クロック信号に同期させるための同期化回路が設けられている。従来の同期化回路は、図８のように、１個のクロック端子を有するフリップフロップ８００と２入力論理和ゲート８０１を用いて、フリップフロップのクロック入力に動作クロックを入力し、データ入力にソフトリセット信号を入力する構成で同期化を行う。このような従来の同期化回路においては、フリップフロップの不安定状態回避のためクロック禁則回路を設けているものもある（例えば、特許文献１参照）。
【特許文献１】特開２０００−１７２６３７号公報（図４等）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の同期化回路においては、動作クロック信号がＣＰＵバスクロック信号よりも十分に周波数が高い必要があるため、ＣＰＵバスクロック信号の方が動作クロック信号よりも周波数が高い場合や、システムＬＳＩ内部のクロック制御によって、ＣＰＵバスクロック信号の周波数がダイナミックに変化し、ＣＰＵバスクロック信号と動作クロック信号の周波数の高低の関係が変化してしまう場合には適用できないといった問題がある。
【０００４】
本発明はかかる点に鑑みてなされたものであり、ＣＰＵバスクロック信号と動作クロック信号（基準信号）の周波数の高低に関わらずソフトリセット信号等の非同期信号を基準信号に同期化させることができる非同期信号の同期化回路および同期化方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の第１の態様は、非同期信号を基準信号に同期させる非同期信号の同期化回路であって、前記非同期信号の動作周波数と前記基準信号の周波数を比較する周波数比較手段と、前記基準信号の周波数の方が高い場合は、前記非同期信号を前記基準信号のタイミングで捕捉して出力し、前記非同期信号の動作周波数の方が高い場合は、前記基準信号の少なくとも１周期に相当する期間にわたって保持した前記非同期信号を前記基準信号のタイミングで捕捉して出力する同期化手段とを備える。
【０００６】
この構成によれば、周波数比較手段により非同期信号の動作周波数と基準信号との周波数との比較結果に基づいて捕捉する非同期信号を異ならせることで、ＣＰＵバスクロック信号と動作クロック信号（基準信号）の周波数の高低に関わらず、非同期信号を基準信号に同期化させることができる。
【０００７】
本発明の第２の態様は、第１の態様において、前記周波数比較部は、前記ＣＰＵバスクロック信号を分周する分周手段と、前記基準信号に同期して動作するカウンタと、前記分周手段で分周した信号の１周期の前半区間における前記カウンタのカウント値と、分周した信号の立ち上がりエッジおよび立ち下がりエッジの各タイミングで前記他方の信号のレベルをサンプリングして得られるレベル情報とを保持する記憶手段と、前記カウント値および前記レベル情報に基づき、分周した信号の１周期の後半区間において周波数の高低を判定する演算手段と、前記演算回路から出力される信号を分周した信号の１周期毎に取り込んで更新し出力する出力手段とを含む第１の周波数比較部と、前記基準信号を分周する分周手段と、前記ＣＰＵバスクロック信号に同期して動作するカウンタと、前記分周手段により分周した信号の１周期の前半区間における前記カウンタのカウント値と、分周した信号の立ち上がりエッジおよび立ち下がりエッジの各タイミングで前記他方の信号のレベルをサンプリングして得られるレベル情報とを保持する記憶手段と、前記記憶手段に保持されている前記カウント値および前記レベル情報に基づき、分周した信号の１周期の後半区間において周波数の高低を判定する演算手段と、前記演算手段から出力される信号を、分周した信号の１周期毎に取り込んで更新し出力する出力手段とを含む第２の周波数比較部と、前記第１および第２の周波数比較部の比較結果を統合して出力する比較結果出力手段とを備える。
【０００８】
この構成によれば、周波数比較手段を２つの周波数比較部で構成し、ＣＰＵバスクロック信号を分周して基準信号についてのカウント値等を検出して得られる周波数の高低判定結果と、基準信号を分周してＣＰＵバスクロック信号についてのカウント値等を検出して得られる周波数の高低判定結果の双方を統合して出力させることで、周波数の比較を行う両信号の周波数が近い場合には周波数の高低の判断ができなくなる場合があるが、２つの周波数比較部を用いて判断を行うため、より精度の高い判断を行え、したがって、周波数の高低判断ができなくなる周波数範囲を狭くすることができる。
【０００９】
本発明の第３の態様は、非同期信号を基準信号に同期させる非同期信号の同期化方法であって、前記非同期信号の動作周波数と前記基準信号の周波数を比較する周波数比較工程と、前記基準信号の周波数の方が高い場合は、前記非同期信号を前記基準信号のタイミングで捕捉して出力し、前記非同期信号の動作周波数の方が高い場合は、前記基準信号の少なくとも１周期に相当する期間にわたって保持した前記非同期信号を前記基準信号のタイミングで捕捉して出力する同期化工程とを備える。
【００１０】
この構成によれば、非同期信号の動作周波数と基準信号との周波数との比較結果に基づいて捕捉する非同期信号を異ならせることで、ＣＰＵバスクロック信号と動作クロック信号（基準信号）の周波数の高低に関わらず、非同期信号を基準信号に同期化させることができる。
【発明の効果】
【００１１】
本発明によれば、非同期信号の動作周波数と基準信号との周波数との比較結果に基づいて捕捉する非同期信号を異ならせることで、ＣＰＵバスクロック信号と動作クロック信号（基準信号）の周波数の高低に関わらず非同期信号を基準信号に同期化させることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。図１は本発明の一実施の形態に係る非同期信号（ソフトリセット信号）の同期化回路の構成を示すブロック図である。ソフトリセット信号は、ＣＰＵ１０３からＣＰＵバスクロックに同期して出力され、ＣＰＵバスを経由して機能ブロックに入力される。機能ブロックには、動作クロック信号およびハードリセット信号も入力される。
【００１３】
機能ブロックは、入力されるソフトリセット信号を、ＣＰＵバスクロックのエッジタイミングでサンプリングし保持するフリップフロップ１０４と、そのソフトリセット信号１１４を動作クロック信号に同期させる同期化回路１０２と、その他のロジック回路１０６、１０７と、フリップフロップ１０５とを備える。同期化回路１０２は、周波数比較回路１００とソフトリセット同期化回路１０１とを備える。
【００１４】
ソフトリセット同期化回路１０１で同期化されたソフトリセット信号およびハードリセット信号は、例えば、ロジック回路１０６を介してフリップフロップ１０５のリセット端子に入力され、これにより、フリップフロップ１０５はリセット（初期化）されて初期状態に戻る。
【００１５】
図２は周波数比較回路１００の構成を示すブロック図である。周波数比較回路１００は、２ビットカウンタ２００、２０３と、４分周回路２０１、２０４と、アンドゲート２１３、２１６と、演算回路２０２、２０５と、周波数比較結果出力回路２０６（ノアゲートおよびオアゲート）とを備える。
【００１６】
カウンタや４分周回路等、同じ回路が２個用意されているのは、ＣＰＵバスクロック信号を４分周回路２０１で４分周し、４分周された信号の１周期に相当する期間内で周波数の高低の判定結果を示す信号を出力する回路（２００、２０１、２０２、２１３）と、動作クロック信号を４分周回路２０４で４分周し、４分周された信号の１周期に相当する期間内で周波数の高低の判定結果を示す信号を出力する回路（２０３、２０４、２０５、２１６）とを並列に動作させ、それぞれの回路から出力される判定結果を示す信号によって高低の判定を行うことで、精度の高い判定を行えるようにした。
【００１７】
すなわち、動作クロック信号とＣＰＵバスクロックの周波数が近いと、周波数の高低の判定ができない場合（判定不能の場合）が生じるが、２つの回路を並列に動作させて周波数の高低の判定を行わせておけば、少なくともいずれか一方の回路から正確な比較結果が得られればよく、判定不能の状態となる周波数範囲を狭くできる。
【００１８】
以下、各回路の入出力信号について説明する。２ビットのカウンタ２００（２０３）のＣＫ端子には動作クロックが入力され、ＮＲＳＴ端子にはアンドゲート２１３（２１６）を介してハードリセット信号または４分周回路２０１（２０４）でＣＰＵバスクロック信号を４分周して得られる信号が入力される。
【００１９】
２ビットカウンタ２００（２０３）の出力端子Ｑ０、Ｑ１からは入力される動作クロック信号の数のカウント値が出力される。つまり、各出力端子Ｑ０、Ｑ１の出力値は、動作クロックが１つ入力される毎に、（０，０）、（１，０）、（０，１）、（１，１）と変化し、したがって、十進数で０〜３までのカウント値を出力することができる。
【００２０】
演算回路２０２（２０５）の入力信号（入力端子）としては、ＭＣＫ、Ｑ０、Ｑ１、ＳＣＫ４、ＨＲＳＴ、ＳＣＫの６つがあり、出力信号（出力端子）としては、ＳＥＬ、ＥＲＲの２つがある。
【００２１】
ＳＥＬは周波数の高低を判定した結果を示す１ビットの信号、ＥＲＲは両信号の周波数が近いために判定不能であることを示す１ビットの信号である。
【００２２】
判定結果出力回路２０６は、演算回路２０２、２０５の各々から出力される判定結果を示す信号を統合し、１ビットの信号として出力する回路であり、ノアゲートおよびオアゲートで構成される。
【００２３】
演算回路２０５から出力されるＳＥＬ、ＥＲＲの各信号はオアゲートで統合され、オアゲートの出力信号と演算回路２０２から出力されるＳＥＬ信号を、さらにノアゲートで統合し、判定結果を示す１ビットの信号（ＳＬ）が出力される。
【００２４】
動作クロック信号の周波数よりもＣＰＵバスクロック信号の周波数の方が高く、周波数の逆転現象が生じていると判定される場合には、比較結果を示す信号の値は“１”となり、動作クロック信号の周波数の方が高いと判定される場合（正常状態である）には、判定結果を示す信号の値は“０”となる。
【００２５】
図３は２ビットカウンタ２００（２０３）の構成を示すブロック図である。２ビットカウンタ２００（２０３）は、フリップフロップのＱ端子の出力と、後段のロード／ホールド機能をもつフリップフロップのＮＱ端子の出力をナンドゲートを介してＤ端子に帰還させ、フリップフロップのＮＱ端子は、後段のフリップフロップのＬＨ端子に接続する構成からなる。
【００２６】
図４は演算回路２０２（２０５）の構成を示すブロック図である。演算回路２０２（２０５）は、２ビットカウンタ２００（２０３）から出力される各ビットを取り込むタイミングを生成するタイミング生成回路４０９（アンドゲートおよびオアゲート）と、比較状態記憶回路４０４（フリップフロップ４００〜４０３）と、比較結果演算回路４０５と、比較結果出力回路４０８（ロード／ホールド機能をもつフリップフロップ４０６、４０７）とを備える。
【００２７】
比較状態記憶回路４０４を構成するフリップフロップ４００〜４０３は、４分周された信号（ＣＰＵバスクロック信号を４分周した信号）に同期してサンプリング動作を行う。
【００２８】
フリップフロップ４００〜４０３のうち、フリップフロップ４００、４０１は２ビットのカウンタ２００（２０３）から出力される各ビットの値を保持する。フリップフロップ４０２、４０３は４分周された信号の立ち上がりエッジおよび立ち下がりエッジで、ＭＣＫ端子を介して供給される動作クロック信号のレベルをサンプリングし、そのサンプリングの結果として得られたレベル値を保持し出力する。
【００２９】
なお、ＳＣＫ４端子を介して供給される４分周された信号は、インバータによりレベルが反転され、フリップフロップ４０２には、レベルが反転した信号が動作クロックとして与えられ、フリップフロップ４０３には、インバータの出力信号を、さらにレベル反転した信号が動作クロックとして与えられるため、フリップフロップ４０２、４０３は異なるエッジのタイミングでサンプリングを行う。
【００３０】
カウンタのカウント値の情報は、分周の対象となった信号に対する、他方の信号の周波数の高低の情報を直接的に含み、サンプリングされたレベル値の情報は、両信号の相対的な位相関係を示す情報を含む。したがって、これらを組み合わせて、総合的に判断することにより、両信号の周波数の高低を判定することができる。
【００３１】
周波数の高低の比較は比較結果演算回路４０５が行う。得られた周波数の高低の結果を示す信号と、両信号の周波数が近くて判定不能であることを示す信号とが、比較結果出力回路４０８を構成するフリップフロップ４０６、４０７により取り込まれて保持され、比較結果信号（ＳＥＬ）および比較結果エラー信号（ＥＲＲ）として出力される。
【００３２】
図５は一連の動作を示すタイミングである。図５に示されるように、基準クロックのＣＰＵバスクロックが４分周されて４分周信号が生成される。４分周信号の１周期に相当する期間が、周波数の高低を判定して出力するのに要する期間であり、その１周期の前半の期間において周波数の高低の判定を行い、後半の期間において、その判定結果を更新して出力する。
【００３３】
なお、比較結果出力回路４０８のロード／ホールド機能付きのフリップフロップ４０６、４０７は、４分周信号の１周期の前半区間ではホールド状態（出力信号の変化が禁止された状態）となり、後半区間ではロード状態となって入力信号の取り込みが許可され、これにより、４分周信号の１周期毎に周波数の高低の判定結果が更新されて出力される。
【００３４】
図５において、時刻ｔ１から周波数の高低比較を行い、２ビットのカウンタから出力されるカウント値（十進数で“２”）が、４分周信号の立ち下がりエッジのタイミングで取り込まれる（時刻ｔ３）。また、４分周信号の立ち上がりエッジのタイミングで、動作クロック信号のレベルがサンプリングされ（時刻ｔ１）、その結果、“Ｈ”レベルが保持され出力される。
【００３５】
同様に、４分周信号の立ち下がりエッジのタイミングで、動作クロック信号のレベルがサンプリングされ（時刻ｔ３）、その結果、“Ｌ”レベルが保持され出力される。得られた各信号に基づき、比較結果演算回路４０５によるリアルタイム演算が行われ、判定結果を示す信号が得られて、判定処理が終了する（時刻ｔ３）。
【００３６】
図６は比較結果演算回路４０５の出力結果を示す図である。例えば、最上欄には、カウント値が“０”、４分周信号の立ち上がりエッジ、立ち下がりエッジの各タイミングでサンプリングされた各動作クロック信号の各レベルが、“Ｌ”、“Ｌ”であり、判定結果は基準クロック信号に対して、動作クロックの周波数は「低い」と判定され、判定結果を示す比較結果信号（ＳＥＬ）および比較結果エラー信号（ＥＲＲ）は、それぞれ“０”、“０”となる場合を示している。
【００３７】
図５の場合は、カウント値が“２”であり、４分周信号の立ち上がりエッジ、立ち下がりエッジの各タイミングでサンプリングされた測定クロック信号のレベルが、“Ｈ”、“Ｌ”であり、これは、図６の下から５番目に示される。したがって、判定結果は、基準クロック信号に対して、測定クロック信号の周波数は「高い」と判定され、比較結果信号（ＳＥＬ）および比較結果エラー信号（ＥＲＲ）は、それぞれ“１”、“０”となる。そして、時刻ｔ４において、比較結果出力回路４０８のフリップフロップ４０６、４０７に、判定結果を示す信号が取り込まれ、比較結果が更新される。
【００３８】
図７はソフトリセット同期化回路１０１の構成を示すブロック図である。ソフトリセット同期化回路１０１は、非同期のソフトリセット信号を保持するフリップフロップ７０１と、非同期のソフトリセット信号およびフリップフロップ７０１のＱ出力を入力とし、周波数比較回路１００から出力される周波数比較結果信号によって、フリップフロップ７０１のＱ出力の入力可否を決定する回路７００（アンドゲートおよびオアゲート）と、実際の同期化を行う回路７０２（フリップフロップおよびオアゲート）と、フリップフロップ７０１のリセットを行うアンドゲートとを備える。
【００３９】
上記構成において、フリップフロップ７０１は、ＣＰＵバスクロック信号の周波数の方が動作クロック信号の周波数よりも高く、周波数の逆転が生じる場合を想定し、ソフトリセット信号を取り込み、少なくとも動作クロック信号の１周期に相当する期間、保持する。具体的には、ソフトリセット信号をフリップフロップ７０１に動作クロックとして供給し、その供給タイミングで、所定の電圧（ハイレベルの電圧）をサンプリングし、そのハイレベルの信号を保持する。
【００４０】
入力可否決定回路７００は、周波数比較回路１００の周波数比較結果信号の値が“１”の場合は、フリップフロップ７０１により保持されている、以前に出力されたソフトリセット信号と現在のソフトリセット信号を併せて出力し、値が“０”の場合には、現在のソフトリセットをそのまま出力する。
【００４１】
同期化回路７０２のフリップフロップは、動作クロック信号のエッジタイミングでセレクタ７００の出力信号をサンプリングして保持し、保持された信号はオアゲートを介して同期化されたソフトリセット信号として出力される。
【００４２】
本実施形態によれば、動作クロック信号とＣＰＵバスクロック信号の周波数の比較判定を、周波数が低い方の信号を４分周した信号（４分周信号）の１周期に相当する期間において行うことができ、その周波数の高低の判定結果に基づき、適切な同期化処理を行うことができる。
【００４３】
よって、機能ブロックの動作クロック信号の周波数とＣＰＵバスクロック信号の周波数の高低が不明である場合や、周波数の高低がダイナミックに変更される場合でも、両信号の周波数の高低とは関係なく、動作クロック信号に同期したソフトリセット信号を出力することができる。
【産業上の利用可能性】
【００４４】
本発明の非同期信号の同期化回路および同期化方法は、非同期信号の動作周波数と基準信号との周波数との比較結果に基づいて捕捉する非同期信号を異ならせることで、ＣＰＵバスクロック信号と動作クロック信号（基準信号）の周波数の高低に関わらず非同期信号を基準信号に同期化させることができ、例えば、ソフトリセット信号をＣＰＵを含むシステムＬＳＩの機能ブロックの動作クロックに同期化する技術として有用である。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施形態の同期化回路の構成を示すブロック図
【図２】同期化回路を構成する周波数比較回路構成を示すブロック図
【図３】同期化回路を構成するソフトリセット同期化回路の構成を示すブロック図
【図４】周波数比較回路を構成する２ビットカウンタの構成を示すブロック図
【図５】周波数比較回路の動作を示すタイミング図
【図６】周波数比較回路の動作を説明する図
【図７】ソフトリセット同期化回路の構成を示すブロック図
【図８】従来の同期化回路の構成を示すブロック図
【符号の説明】
【００４６】
１００  周波数比較回路
１０１  ソフトリセット同期化回路
１０２  同期化回路
１０３  ＣＰＵ
１０４、１０５  フリップフロップ
１０６、１０７  ロジック回路
２００、２０３  ２ビットカウンタ
２０１、２０４  分周器
２０２、２０５  比較結果算出回路
２０６  比較結果出力回路
４００〜４０４  フリップフロップ
４０４  比較状態記憶回路
４０５  比較結果演算回路
４０６、４０７  フリップフロップ
４０８  比較結果出力回路
４０９  タイミング生成回路
７００  入力可否決定回路
７０１  フリップフロップ
７０２  同期化回路
８００  フリップフロップ
８０１  論理和ゲート
【図１】
2005078147.tif 000003
【図２】
2005078147.tif 000004
【図３】
2005078147.tif 000005
【図４】
2005078147.tif 000006
【図５】
2005078147.tif 000007
【図６】
2005078147.tif 000008
【図７】
2005078147.tif 000009
【図８】
2005078147.tif 000010