(57)【要約】【課題】システムクロックの基準エッジにおいて発生したメタステーブルの影響を受けることなく、次のシステムクロックで所望の入力データを同期化することが可能な同期化回路を提供することを目的とする。【解決手段】同期化回路１００は、システムクロックで入力信号を保持するフリップフロップ１２０と、システムクロックの逆位相の信号で入力信号を保持するフリップフロップ１２０とを有し、入力信号とフリップフロップ１１０の出力信号とを比較してメタステーブルを検出する。そして検出結果に基づきフリップフロップ１１０の出力信号又はフリップフロップ１２０の出信号の何れか一方を後段のフリップフロップ１３０へ伝搬する。【選択図】図３
2009147869.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号と非同期の入力信号を前記クロック信号により保持する第一のフリップフロップと、
前記入力信号を前記クロック信号と逆位相の信号により保持する第二のフリップフロップと、
前記入力信号と前記第一のフリップフロップの出力信号とを比較し、比較結果を示す信号を出力する比較手段と、
前記比較手段から出力された信号に基づき前記第一のフリップフロップの出力信号又は前記第二のフリップフロップの出力信号の何れか一方を選択する選択手段と、
前記選択手段により選択された出力信号を出力する第三のフリップフロップと、を有することを特徴とする同期化回路
【請求項２】
前記比較手段から出力された信号を保持する保持手段を有し、
前記選択手段は、前記保持手段から出力された信号に基づき、前記第一のフリップフロップの出力信号又は前記第二のフリップフロップの出力信号の何れか一方を選択することを特徴とする請求項１記載の同期化回路。
【請求項３】
前記比較手段は、
排他的論理和演算回路により構成されることを特徴とする請求項１又は２記載の同期化回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期の信号を同期化させる同期化回路に関する。
【背景技術】
【０００２】
近年では、あらゆる機器において処理の高速化及び消費電力の低減が要求されるため、機器を構成する各モジュールは、それぞれが最適な速度で動作するように設計される。このため各モジュールのシステムクロックは、それぞれが非同期の場合がある。システムクロックが非同期であるモジュール間でのデータの受け渡しを行う場合、入力信号を受け取る側のモジュールにおいて、このモジュールのシステムクロックと入力信号とを同期させるための同期化回路が必要となる。
【０００３】
図１は、従来の同期化回路の構成の一例を示す図である。図１に示す同期化回路１０は、モジュール間のデータの受け渡しにおいてデータを受け取る側のモジュールに設けられる。同期化回路１０は、入力信号ＡＤをシステムクロックＳＣＫによりフリップフロップ１１、１２にラッチしてシステムクロックＳＣＫと同期させる。
【０００４】
フリップフロップ１１、１２では、システムクロックＳＣＫの立ち上がりエッジを基準エッジとしてときに、基準エッジ以前に入力信号ＡＤを安定させておかなければならない時間であるセットアップ時間ｔｓと、基準エッジ以後に入力信号を保持しなければならないホールド時間ｔｈがある。フリップフロップ１１、１２は、セットアップ時間ｔｓにおいて安定した入力信号ＡＤが入力され、ホールド時間ｔｈの間入力信号ＡＤが保持されると、入力信号ＡＤを正常に読み込むことができる。
【０００５】
例えばフリップフロップ１１において、セットアップ・ホールド時間（ｔｓ＋ｔｈ）内にデータ入力端子Ｄの入力信号ＡＤの信号レベルが確定していない場合、フリップフロップ１１の出力信号ＰＤはしばらくの間メタステーブルとなる。メタステーブルとは、出力信号がハイレベル（以下、Ｈレベル）でもローレベル（以下、Ｌレベル）でもない不安定な状態を示す。そしてフリップフロップ１１の出力信号は、ＨレベルかＬレベルの何れか一方に収束する。メタステーブルが発生した後に出力信号がどちらのレベルに到達するか否かは、入力信号ＡＤのレベルに関わらず全くランダムである。したがって前段のフリップフロップ１１でメタステーブルが発生により、入力信号が後段のフリップフロップ１２へ正しく伝搬されない場合がある。
【０００６】
そこでメタステーブルが発生した場合にも入力信号を正しく伝搬するための回路構成が提案されている。図２は、従来の同期化回路の回路構成の別の例を示す図である。
【０００７】
図２に示す同期化回路２０は、フリップフロップ２１、２２、２３、選択回路２４、論理回路２５を有する。フリップフロップ２１とフリップフロップ２２は、それぞれ逆位相の信号と同期して動作する。フリップフロップ２１はシステムクロックＳＣＫと同期して動作し、フリップフロップ２２はシステムクロックＳＣＫを反転させた信号と同期して動作する。
【０００８】
同期化回路２０では、前段のフリップフロップ２１の出力信号ＳＹＮＣ１と、同期化回路２０の出力信号となる後段のフリップフロップ２３の出力信号ＳＹＮＣ３とを比較してメタステーブルが発生しているか否かを検出する。そして同期化回路２０は、比較結果に基づき、フリップフロップ２１の出力信号ＳＹＮＣ１又はフリップフロップ２２の出力信号ＳＹＮＣ２の何れか一方を選択してフリップフロップ２３へ入力する。
【０００９】
図２に示す同期化回路と等価の回路構成は、例えば特許文献１に記載されている。
【特許文献１】特開平７−１３９２７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、例えば特許文献１に記載の同期化回路では、入力信号と後段のフリップフロップの出力信号とを比較してメタステーブルの発生を検出している。このため特許文献１記載の同期化回目では、前段のフリップフロップの出力信号がメタステーブルの発生後に入力信号と異なる論理に収束した場合、後段のフリップフロップは、メタステーブルが発生したシステムクロックの次のシステムクロックで正しく入力信号を取り込めない場合がある。よって複数ビットの入力信号をシステムクロックと同期化させる場合にビット間で１システムクロックサイクルの時間差が生じ、同期化回路の後段のモジュールの誤動作の原因となる。
【００１１】
本発明は、上記事情を鑑みてこれを解決すべく成されたものであり、メタステーブルが発生した場合にも、メタステーブルの影響を受けることなく、次のシステムクロックで所望の入力データを同期化することが可能な同期化回路を提供することを目的とするものである。
【課題を解決するための手段】
【００１２】
本発明は、上記目的を達成するために以下の如き構成を採用した。
【００１３】
本発明の同期化回路は、クロック信号と非同期の入力信号を前記クロック信号により保持する第一のフリップフロップと、前記入力信号を前記クロック信号と逆位相の信号により保持する第二のフリップフロップと、前記入力信号と前記第一のフリップフロップの出力信号とを比較し、比較結果を示す信号を出力する比較手段と、前記比較手段から出力された信号に基づき前記第一のフリップフロップの出力信号又は前記第二のフリップフロップの出力信号の何れか一方を選択する選択手段と、前記選択手段により選択された出力信号を出力する第三のフリップフロップと、を有する構成とした。
【００１４】
係る構成によれば、メタステーブルが発生した場合にも、メタステーブルの影響を受けることなく、次のシステムクロックで所望の入力データを同期化することができる。
【００１５】
また本発明の同期化回路は、前記比較手段から出力された信号を保持する保持手段を有し、前記選択手段は、前記保持手段から出力された信号に基づき、前記第一のフリップフロップの出力信号又は前記第二のフリップフロップの出力信号の何れか一方を選択する構成としても良い。
【００１６】
また本発明の同期化回路において、前記比較手段は、排他的論理和演算回路により構成されても良い。
【発明の効果】
【００１７】
本発明によれば、メタステーブルが発生した場合にも、メタステーブルの影響を受けることなく、次のシステムクロックで所望の入力データを同期化することができる。
【発明を実施するための最良の形態】
【００１８】
本発明の同期化回路は、システムクロックで入力信号を保持する第一のフリップフロップと、システムクロックの逆位相の信号で入力信号を保持する第二のフリップフロップとを有し、入力信号と第一のフリップフロップの出力信号とを比較してメタステーブルを検出する。そして同期化回路は、検出結果に基づき第一のフリップフロップの出力信号又は第二のフリップフロップの出力信号の何れか一方を後段の第三のフリップフロップへ入力する。
（第一の実施形態）
以下に図面を参照して本発明の第一の実施形態について説明する。図３は、本発明の第一の実施形態の同期化回路１００の回路構成図である。
【００１９】
本実施形態の同期化回路１００は、フリップフロップ１１０、１２０、１３０、選択回路１４０、ＸＯＲ回路１５０、インバータ１６０により構成される。
【００２０】
本実施形態の同期化回路１００は、同期化回路１００が含まれるモジュールに入力される入力信号と、同期化回路１００が含まれるモジュールのシステムクロックＳＣＫとを同期させる。
【００２１】
フリップフロップ１１０、１３０のクロック端子には、システムクロックＳＣＫが入力される。フリップフロップ１２０のクロック端子には、システムクロックＳＣＫをインバータ１６０により反転させた、システムクロックＳＣＫと逆位相の信号がクロック信号として入力される。
【００２２】
フリップフロップ１１０のデータ端子Ｄ１及びフリップフロップ１２０のデータ端子Ｄ２には、システムクロックＳＣＫと非同期の入力信号ＡＳＹＮＣが入力される。フリップフロップ１１０の出力端子Ｑ１から出力される出力信号ＳＹＮＣ１と、フリップフロップ１２０の出力端子Ｑ２から出力される出力信号ＳＹＮＣ２は、選択回路１４０へそれぞれ入力される。
【００２３】
またフリップフロップ１１０の出力信号ＳＹＮＣ１と、入力信号ＡＳＹＮＣとがＸＯＲ回路１５０に入力される。ＸＯＲ回路１５０の出力信号ＳＥＬは、選択回路１４０の選択信号として選択回路１４０へ供給される。選択回路１４０の出力信号ＳＹＮＣ３は、フリップフロップ１３０のデータ端子Ｄ３に入力される。フリップフロップ１３０は、選択回路１４０からの出力信号ＳＹＮＣ３をシステムクロックＳＣＫにより保持し、出力端子Ｑ３から出力信号ＳＹＮＣ４として出力する。
【００２４】
以下に図４、図５を参照して本実施形態の同期化回路１００の動作を説明する。図４は、第一の実施形態の同期化回路１００の動作を説明する第一のタイミングチャートである。図４は、同期化回路１００においてフリップフロップ１１０にメタステーブルが発生し、フリップフロップ１１０の出力信号ＳＹＮＣ１がＬレベルへ収束した場合を示している。
【００２５】
同期化回路１００において、入力信号ＡＳＹＮＣがシステムクロックＳＣＫの立ち上がりエッジＴ１でセットアップ・ホールド時間内にＬレベルからＨレベルへ変化した場合、フリップフロップ１１０でメタステーブルの状態が発生する。本実施形態のフリップフロップ１１０の出力信号ＳＹＮＣ１は、メタステーブル期間Ｔｗを経てＬレベルへ収束する。
【００２６】
同期化回路１００では、メタステーブル期間Ｔｗ経過した時点で、出力信号ＳＹＮＣ１と入力信号ＡＳＹＮＣとが一致していない場合、ＸＯＲ回路１５０の出力信号ＳＥＬがＨレベルとなる。またメタステーブル期間Ｔｗが経過した時点で、出力信号ＳＹＮＣ１と入力信号ＡＳＹＮＣとが一致している場合、ＸＯＲ回路１５０の出力信号ＳＥＬはＬレベルとなる。すなわち本実施形態のＸＯＲ回路１５０は、入力信号ＡＳＹＮＣと出力信号ＳＹＮＣ１とを比較して一致しているか否かの結果を出力する比較手段である。
【００２７】
図４で示す例では、メタステーブル期間Ｔｗ経過した時点の出力信号ＳＹＮＣ１は、不定状態を経てＬレベルに収束し、入力信号ＡＳＹＮＣはＨレベルであるから、ＸＯＲ回路１５０の出力信号ＳＥＬはＨレベルとなる。
【００２８】
ＸＯＲ回路１５０の出力信号ＳＥＬは、選択回路１４０に選択信号として選択される。選択回路１４０では、選択信号にＬレベルの信号が入力されるとフリップフロップ１１０の出力信号ＳＹＮＣ１を出力し、選択信号にＨレベルの信号が入力されるとフリップフロップ１２０の出力信号ＳＹＮＣ２を出力する。図４の例では、選択回路１４０にＨレベルの選択信号が供給されるため、選択回路１４０はフリップフロップ１２０の出力信号ＳＹＮＣ２を出力信号ＳＹＮＣ３として出力する。
【００２９】
フリップフロップ１２０は、システムクロックＳＣＫと逆位相の信号の立ち上がりエッジにおいて、入力信号ＡＳＹＮＣを取り込む。よってフリップフロップ１２０は、フリップフロップ１１０が入力信号ＡＳＹＮＣを取り込むタイミングよりも１／２クロックサイクロ遅いタイミングＴ２で、既に確定した信号となった入力信号ＡＳＹＮＣを取り込む。
【００３０】
このため選択回路１４０がフリップフロップ１２０の出力信号ＳＹＮＣ２を選択して出力信号ＳＹＮＣ３とした場合、フリップフロップ１３０は、システムクロックＳＣＫの次の立ち上がりエッジＴ３で出力信号ＳＹＮＣ３を取り込むことができる。ここでフリップフロップ１３０に取り込まれる出力信号ＳＹＮＣ３は、入力信号ＡＳＹＮＣと同じ論理（Ｈレベル）である。フリップフロップ１３０は、出力信号ＳＹＮＣ３を保持して出力信号ＳＹＮＣ４として出力する。
【００３１】
したがって本実施形態の同期化回路１００では、フリップフロップ１１０で立ち上がりエッジＴ１のタイミングでメタステーブルが発生した場合にも、次のシステムクロックＳＣＫの立ち上がりエッジＴ３のタイミングで入力信号ＡＳＹＮＣを後段のフリップフロップ１３０へ伝搬することができる。
【００３２】
次に図５を参照して、フリップフロップ１１０でメタステーブルが発生した後に出力信号ＳＹＮＣ１がＨレベルへ収束した場合について説明する。図５は、第一の実施形態の同期化回路１００の動作を説明する第二のタイミングチャートである。
【００３３】
同期化回路１００において、システムクロックＳＣＫの立ち上がりエッジＴ１においてフリップフロップ１１０にメタステーブルが発生すると、フリップフロップ１１０の出力信号ＳＹＮＣ１はメタステーブル期間Ｔｗの不定状態を経てＨレベルへ収束する。
【００３４】
このときＸＯＲ回路１５０入力される入力信号ＡＳＹＮＣはＨレベルであるから、入力信号ＡＳＹＮＣと出力信号ＳＹＮＣ１とが一致する。よってＸＯＲ回路１５０の出力信号ＳＥＬはＬレベルとなる。選択回路１４０は、Ｌレベルの選択信号が入力されると、フリップフロップ１１０の出力信号ＳＹＮＣ１を選択して出力する。したがって選択回路１４０の出力信号ＳＹＮＣ３は、出力信号ＳＹＮＣ１となる。尚出力信号ＳＹＮＣ１は入力信号ＡＳＹＮＣと一致した信号であり、入力信号ＡＳＹＮＣと同様の論理（Ｈレベル）である。フリップフロップ１３０は、選択回路１４０からの出力信号ＳＹＮＣ３を保持して出力信号ＳＹＮＣ４として出力する。
【００３５】
よってフリップフロップ１３０は、立ち上がりエッジＴ１の次の立ち上がりエッジＴ３で入力信号ＡＳＹＮＣと一致した信号である出力信号ＳＹＮＣ３（出力信号ＳＹＮＣ１）を取り込むことができる。したがって本実施形態の同期化回路１００では、立ち上がりエッジＴ１のタイミングでフリップフロップ１１０でメタステーブルが発生した場合にも、次のシステムクロックＳＣＫの立ち上がりエッジＴ３のタイミングで入力信号ＡＳＹＮＣを後段のフリップフロップ１３０へ伝搬することができる。
【００３６】
このように本実施形態の同期化回路１００では、入力信号ＡＳＹＮＣとフリップフロップ１１０の出力信号ＳＹＮＣ１とを比較して、メタステーブルが発生しているか否かを検出する。そしてメタステーブルが発生した場合、出力信号ＳＹＮＣ１が収束した信号レベルに基づき、後段に伝搬する信号を出力信号ＳＹＮＣ１又は出力信号ＳＹＮＣ１又は出力信号ＳＹＮＣ２の何れか一方から選択する。
【００３７】
よって本実施形態の同期化回路１００では、メタステーブルが発生しても時間差を生じることなく入力信号ＡＳＹＮＣを後段へ伝搬することができる。このため本実施形態の同期化回路１００では、複数ビットの非同期信号を同期化する場合においても、ビット間の同期化タイミングの時間差によるシステムの誤動作を防止することができる。
（第二の実施形態）
以下に図面を参照して本発明の第二の実施形態について説明する。本発明の第二の実施形態は、第一の実施形態の同期化回路のＸＯＲ回路１５０と選択回路１４０との間にラッチ回路１７０を設けた点で第一の実施形態と相違する。よって以下の第二の実施形態の説明では、第一の実施形態と同様の機能構成を有するものには第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【００３８】
図６は、本発明の第二の実施形態の同期化回路１００Ａの回路構成図である。本実施形態の同期化回路１００Ａでは、システムクロックＳＣＫとＸＯＲ回路１５０の出力信号ＳＥＬ１とが入力されるラッチ回路１７０を有する。ラッチ回路１７０の出力信号ＳＥＬ２は、選択回路１４０に選択信号として供給される。
【００３９】
次に図７、図８を参照して本実施形態の同期化回路１００Ａの動作を説明する。図７は、第二の実施形態の同期化回路１００Ａの動作を説明する第一のタイミングチャートである。図７に示す例は、同期化回路１００ＡにおいてシステムクロックＳＣＫの立ち下がりＴ０においてフリップフロップ１２０がメタステーブルの状態となった後、フリップフロップ１２０の出力信号ＳＹＮＣ２がＬレベルに収束した場合を示している。
【００４０】
本実施形態では、フリップフロップ１２０でメタステーブルが発生した場合でも、フリップフロップ１１０は入力信号ＡＳＹＮＣを保持して出力している。よってフリップフロップ１１０の出力信号ＳＹＮＣ１は、フリップフロップ１１０が入力信号ＡＳＹＮＣを取り込んで出力するタイミングである立ち上がりエッジＴ１において一致する。入力信号ＡＳＹＮＣと出力信号ＳＹＮＣ１が一致すると、ＸＯＲ回路１５０の出力信号ＳＥＬ１は、Ｌレベルとなる。
【００４１】
このときラッチ回路１７０は、システムクロックＳＣＫがＬレベルになる直前の出力信号ＳＥＬ１の論理を保持しているため、ラッチ回路１７０の出力信号ＳＥＬ２はＬレベルのままである。したがって選択回路１４０には選択信号としてＬレベルの出力信号ＳＥＬ２が供給される。
【００４２】
選択回路１４０では、Ｌレベルの選択信号を受けて出力信号ＳＹＮＣ１を選択し、出力信号ＳＹＮＣ３として出力する。このとき出力信号ＳＹＮＣ３は、システムクロックＳＣＫの立ち上がりエッジＴ１のタイミングで出力される。フリップフロップ１３０は、この出力信号ＳＹＮＣ３を保持して出力信号ＳＹＮＣ４として出力する。
【００４３】
このように本実施形態では、システムクロックＳＣＫの立ち下がりエッジでフリップフロップ１２０にメタステーブルが発生した場合にも、システムクロックＳＣＫの次の立ち上がりエッジＴ１のタイミングで入力信号ＡＳＹＮＣを後段のフリップフロップ１３０へ伝搬することができる。
【００４４】
次に図８を参照して、システムクロックＳＣＫの立ち上がりエッジＴ１においてフリップフロップ１２０がメタステーブルの状態となった後、フリップフロップ１２０の出力信号ＳＹＮＣ２がＨレベルに収束した場合を説明する。図８は、第二の実施形態の同期化回路１００Ａの動作を説明する第二のタイミングチャートである。
【００４５】
本実施形態においてフリップフロップ１２０のメタステーブルが発生し、Ｌレベルに収束した場合も、ラッチ回路１７０の出力信号ＳＥＬ２はＬレベルのままである。よって選択回路１４０はフリップフロップ１１０の出力信号ＳＹＮＣ１を選択し、出力信号ＳＹＮＣ１と同じ論理の出力信号ＳＹＮＣ３をフリップフロップ１３０へ出力する。よって本実施形態では、システムクロックＳＣＫの次の立ち上がりエッジＴ１のタイミングで入力信号ＡＳＹＮＣを後段のフリップフロップ１３０へ伝搬することができる。
【００４６】
以上に説明したように、本発明の第二の実施形態では、前段のフリップフロップ１２０にメタステーブルが発生した場合にも、システムクロックＳＣＫの次の立ち上がりエッジＴ１のタイミングで入力信号ＡＳＹＮＣを後段のフリップフロップ１３０へ伝搬することができる。よって本実施形態によれば、メタステーブルが発生した場合にも、メタステーブルの影響を受けることなく、次のシステムクロックで所望の入力データを同期化することができる。
【００４７】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【図面の簡単な説明】
【００４８】
【図１】従来の同期化回路の構成の一例を示す図である。
【図２】従来の同期化回路の回路構成の別の例を示す図である。
【図３】第一の実施形態の同期化回路１００の回路構成図である。
【図４】第一の実施形態の同期化回路１００の動作を説明する第一のタイミングチャートである。
【図５】第一の実施形態の同期化回路１００の動作を説明する第二のタイミングチャートである。
【図６】第二の実施形態の同期化回路１００Ａの回路構成図である。
【図７】第二の実施形態の同期化回路１００Ａの動作を説明する第一のタイミングチャートである。
【図８】第二の実施形態の同期化回路１００Ａの動作を説明する第二のタイミングチャートである。
【符号の説明】
【００４９】
１００、１００Ａ  同期化回路
１１０、１２０、１３０  フリップフロップ
１４０  選択回路
１５０  ＸＯＲ回路
１６０  インバータ
１７０  ラッチ回路
【図１】
2009147869.tif 000003
【図２】
2009147869.tif 000004
【図３】
2009147869.tif 000005
【図４】
2009147869.tif 000006
【図５】
2009147869.tif 000007
【図６】
2009147869.tif 000008
【図７】
2009147869.tif 000009
【図８】
2009147869.tif 000010