(57)【特許請求の範囲】
【請求項１】
クロック信号により制御され、第１のフリップフロップから第２のフリップフロップへのデータ転送を行うデータ転送回路において、
前記第１のフリップフロップと同じ条件の領域に配置され、前記第１のフリップフロップの出力を保持するする第３のフリップフロップと、
前記第２のフリップフロップの出力と前記第３のフリップフロップの出力を比較し、両出力の不一致を検出する不一致検出回路と、
前記不一致検出回路により不一致が検出されたとき、前記第１、第２および第３のフリップフロップに供給する前記クロック信号を停止するクロック停止回路と、
前記不一致検出回路により不一致が検出されたとき、前記第２のフリップフロップに保持されている情報を前記第３のフリップフロップに保持されている情報と一致するように訂正する訂正回路と、
を具備することを特徴とするデータ転送回路。
【請求項２】
請求項１に記載のデータ転送回路において、
前記クロック停止回路は、前記クロック信号の停止時間を制御する停止時間制御回路を備えていることを特徴とするデータ転送回路。
【請求項３】
請求項１又は２に記載のデータ転送回路において、
前記訂正回路は、前記第２のフリップフロップに保持された情報の訂正に要する時間を制御する訂正時間制御回路を備えていることを特徴とするデータ転送回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック信号に同期して行われるデータ転送が正常に実行されたか否かを監視して、そのデータ転送に誤りがあった場合は一時的にクロック信号を停止してデータ訂正を行うデータ転送回路に関するものである。
【背景技術】
【０００２】
フリップフロップ間でデータを転送する場合、受け側のフリップフロップのホールド制約を満足するように、クロック信号やデータ信号のタイミング調整が行われる。しかし、タイミングが想定以上に変化すると正常動作しない。電源電圧をはじめとするノイズの混入等があると、このような現象が発生し易い。
【０００３】
例えば、図７に示すデータ転送回路において、図中の領域Ａ（網点で示した。）の電源ラインおよび接地ラインが領域Ｂの電源ラインや接地ラインと分離されている場合、領域Ａ側のフリップフロップＦＦ１から領域Ｂ側のフリップフロップＦＦ２へのデータ転送が正しく行われるように、回路設計時には、バッファＢ１〜Ｂ３，Ｂ５，Ｂ６〜Ｂ９等を使用することで、フリップフロップＦＦ２のクロックタイミングとそこへの入力データ信号の到達タイミングを調整し、フリップフロップＦＦ２におけるセットアップタイムとホールドタイムが確保できるようにしている。なお、セットアップタイムとホールドタイムは図９に示す関係にある。
【０００４】
ここで、電源電圧変動について考えてみると、領域Ｂは領域Ａから電源ラインが分離されているので、領域Ａの電圧変動パターンと領域Ｂの電圧変動パターンは異なる。しかし、回路設計時には、通常、領域Ａの電源電圧と領域Ｂの電源電圧は等しいものとして調整するので、このような電圧変動は想定されていない。したがって、フリップフロップＦＦ１からフリップフロップＦＦ２へのデータ転送が正常に行われず、不正なデータが転送されることになる場合が発生する。
【０００５】
例えば、領域Ａ，Ｂで電源電圧が同一の場合は、図８(a)に示すタイミングチャートのように正常動作するが、領域Ｂの電源電圧が領域Ａのそれよりも一時的に低くなった場合は、フリップフロップＦＦ２へのクロック信号の到達が遅れ、ホールド違反が発生して、図８(b)のタイミングチャートに示すように、フリップフロップＦＦ２の２サイクル目のクロック信号が遅れ、フリップフロップＦＦ２のＱ出力が正常動作の場合に比べて１サイクル速く変化することがある。
【０００６】
そこで、このようにデータ転送異常を防止するために、入力信号の静止状態を検出してからサンプリングを行うこと（例えば、特許文献１参照）や、信号が安定したことを検出して次段のフリップフロップ用のクロック信号を生成すること（例えば、特許文献２参照）等が行われている。これらは、入力信号がある一定期間変化しないことをもって、信号が安定したことを検出して、サンプリングを行うものである。
【０００７】
【特許文献１】特開昭６２−１３１６２９号公報
【特許文献２】特開平０８−２８８８２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところが、特許文献１に記載のように、入力信号の静止状態を検出してからサンプリングを行う手法では、サンプリングする瞬間に入力信号が変化すると、間違った値をサンプリングしてしまうことがあり、そもそもこの手法は多ビットの信号にのみ適用可能であり、１ビットの信号には使えない。また、特許文献２に記載のように、信号が安定したことを検出して次段のフリップフロップのクロック信号を生成する手法でも、サンプリングする瞬間に入力信号が変化すると正常動作しない。以上のいずれも、入力信号がある一定期間変化しないことをもって信号が安定したことを検出してサンプリングしているので、信号が間違っていると誤動作する。また、タイミングが変化する要因をすべて考慮してタイミング設計を行うことについては、そもそも技術的に不可能な場合があり、仮に可能であっても、コスト、消費電力、納期等などの面で困難な場合が多い。
【０００９】
本発明の目的は、サンプリングしたデータの値を期待値と比較し、不一致の場合に訂正処理を行うようにして、簡単な構成で正常なデータ転送を行うことができるようにしたデータ転送回路を提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、クロック信号により制御され、第１のフリップフロップから第２のフリップフロップへのデータ転送を行うデータ転送回路において、前記第１のフリップフロップと同じ条件の領域に配置され、前記第１のフリップフロップの出力を保持するする第３のフリップフロップと、前記第２のフリップフロップの出力と前記第３のフリップフロップの出力を比較し、両出力の不一致を検出する不一致検出回路と、前記不一致検出回路により不一致が検出されたとき、前記第１、第２および第３のフリップフロップに供給する前記クロック信号を停止するクロック停止回路と、前記不一致検出回路により不一致が検出されたとき、前記第２のフリップフロップに保持されている情報を前記第３のフリップフロップに保持されている情報と一致するように訂正する訂正回路と、を具備することを特徴とする。
【００１１】
ここで、前記クロック停止回路は、前記クロック信号の停止時間を制御する停止時間制御回路を備えていることが望ましい。
【００１２】
また、前記訂正回路は、前記第２のフリップフロップに保持された情報の訂正に要する時間を制御する訂正時間制御回路を備えていることが望ましい。
【発明の効果】
【００１３】
本発明によれば、タイミング調整が簡単となる。ノイズ等により稀に発生するタイミング変動を考慮する必要がなく、通常通りのタイミング調整だけでよい。通常ホールドタイム調整を行うには、パスの遅延を増やすよう回路変更を行うが、このような対策は前記タイミング変動分に対して行う必要はない。
【００１４】
また、信頼性が向上する。すなわち、もし万が一不正なデータが転送されても、自動的にこれが検出され訂正される。この動作による遅れは訂正を行っている場合に限られるので、正常動作をしている場合には他の回路に比べて動作の遅れはない。したがって、高い確率で正常動作が期待できる回路においては、動作の遅れをほぼ０に保ったまま高い信頼性を確保できる。
【００１５】
さらに、費用対効果の面で有利である。不一致が発生し訂正回路が動作すると、正常動作に比べて１乃至数サイクルの時間だけ遅れるが、ホールドタイムの調整を完璧に行うことは、作業に時間がかかり、場合によっては最大動作周波数を落とす必要が出てきたり、回路規模増大でコスト増につながり、タイミング調整が完璧でなかった場合は最悪ＬＳＩの作り直しになる。そのコストとリスクを考えると、低い確率で発生する１乃至数サイクル程度の遅れをシステムが許容できるかどうか検討するほうが遙かに簡単である。
【発明を実施するための最良の形態】
【００１６】
以下、本発明のデータ転送回路の具体例を実施例によって説明する。本発明では、受け側のフリップフロップがサンプリングしたデータ信号の値を期待値と比較し、不一致の場合にクロック信号を一時的に停止しておいて、データの訂正処理を行う。
【実施例１】
【００１７】
図１は実施例１のデータ転送回路の回路構成を示す図であり、領域Ａ（網点で表した。）に配置されたフリップフロップＦＦ１からのデータ信号を領域Ｂに配置されたフリップフロップＦＦ２に転送する構成を示す。フリップフロップＦＦ２はセット／リセット端子付きである。領域Ａと領域Ｂは電源ラインと接地ラインが異なる領域である。フリップフロップＦＦ１にはクロック信号がアンド回路ＡＮＤ１とバッファＢ１〜Ｂ５を経由して供給され、フリップフロップＦＦＢ１には同クロック信号がアンド回路ＡＮＤ１とバッファＢ６〜Ｂ９を経由して供給されている。また、領域Ａにはフリップフロップ１のＱ出力を保持するフリップフロップＦＦ３が期待値保持用として配置され、これに対してクロック信号ＣＬＫがアンド回路ＡＮＤ１とバッファＢ１〜Ｂ３を経由して供給されている。
【００１８】
比較器ＣＯＭＰはフリップフロップＦＦ２のＱ出力値とフリップフロップＦＦ３のＱ出力値を比較し、その比較結果の検出信号Ｓ１（一致のときＬ、不一致のときＨ）をアンド回路ＡＮＤ１に送ると共に、フリップフロップＦＦ４に送る。ナンド回路ＮＡＮＤ１，ＮＡＮＤ２は、フリップフロップＦＦ４のＱ出力とフリップフロップＦＦ３のＱ出力とクロック信号ＣＬＫを入力して、フリップフロップＦＦ２に対するＨレベル訂正信号又はＬレベル訂正信号を生成する。
【００１９】
請求項との関係では、比較回路ＣＯＭＰが不一致検出回路を構成し、フリップフロップＦＦ４とナンド回路ＮＡＮＤ１，ＮＡＮＤ２が訂正回路を構成し、アンド回路ＡＮＤ１がクロック停止回路を構成する。また、フリップフロップＦＦ４は訂正時間制御回路も構成する。
【００２０】
さて、フリップフロップＦＦ１とＦＦ３に入力するクロック信号は同期しており、これに対してフリップフロップＦＦ２に入力するクロック信号も同期している場合は、フリップフロップＦＦ３のＱ出力（期待値）とフリップフロップＦＦ２のＱ出力は同じ値となり、比較器ＣＯＭＰの検出信号Ｓ１はＬとなる。よって、アンド回路ＡＮＤ１はゲートを開き継続してクロック信号ＣＬＫを通過させる。また、次のクロックタイミング（クロック信号がＨになるタイミング、以下同じ）でフリップフロップＦＦ４のＱ出力がＬになるので、ナンド回路ＮＡＮＤ１，ＮＡＮＤ２の出力はＨから変化しない。よって、フリップフロップＦＦ２はセットもまたリセットもされず、そのフリップフロップＦＦ２は入力したデータを保持してＱ出力に出力する。
【００２１】
フリップフロップＦＦ２に供給されるクロック信号がフリップフロップＦＦ１，ＦＦ３に供給されるクロック信号に対して一時的に遅れた場合（図２参照）は、フリップフロップＦＦ２，ＦＦ３のＱ出力の値が異なってきて、比較器ＣＯＭＰの検出信号Ｓ１がＨに変化する。このため、アンド回路ＡＮＤ１がゲートを閉じてフリップフロップＦＦ１〜ＦＦ３へのクロック信号供給を停止する。
【００２２】
また、フリップフロップＦＦ４のＱ出力が次のクロックタイミングでＨになり、このとき、フリップフロップＦＦ３のＱ出力がＬのときは、ナンド回路ＮＡＮＤ２の出力がＬとなってフリップフロップＦＦ２がリセットされ、そのＱ出力がフリップフロップＦＦ３のＱ出力と同じＬになる。なお、フリップフロップＦＦ３のＱ出力がＨのときは、ナンド回路ＮＡＮＤ１の出力がＬとなってフリップフロップＦＦ２がセットされ、そのＱ出力がフリップフロップＦＦ３のＱ出力と同じＨになる。
【００２３】
このようにして、フリップフロップＦＦ２のＱ出力がフリップフロップＦＦ３のＱ出力と異なるときは、フリップフロップＦＦ１〜ＦＦ３に供給するクロック信号を停止すると共に、その停止中にフリップフロップＦＦ２のＱ出力をフリップフロップＦＦ３のＱ出力と一致するように訂正する。これにより、フリップフロップＦＦ２，ＦＦ３のＱ出力が一致すると、比較器ＣＯＭＰの検出信号Ｓ１がＬになるので、アンド回路ＡＮＤ１がゲートを開いて、クロック信号をＦＦ１〜ＦＦ３に供給し、次の入力データの転送を開始する。この実施例１では、アンド回路ＡＮＤ２はフリップフロップＦＦ１〜ＦＦ３に対して１クロック分だけゲートを閉じる。
【実施例２】
【００２４】
図３は実施例２のデータ転送回路の回路構成を示す図である。ここでは、フリップフロップＦＦ５、アンド回路ＡＮＤ２、ノア回路ＮＯＲ１、およびナンド回路ＮＡＮＤ３，ＮＡＮＤ４を使用する点が図１の構成と異なっている。
【００２５】
請求項との関係では、比較回路ＣＯＭＰが不一致検出回路を構成し、フリップフロップＦＦ４とナンド回路ＮＡＮＤ３，ＮＡＮＤ４が訂正回路を構成し、アンド回路ＡＮＤ２、ノア回路ＮＯＲ１、フリップフロップＦＦ５がクロック停止回路を構成する。また、フリップフロップＦＦ４は訂正時間制御回路も構成し、フリップフロップＦＦ５は停止時間制御回路も構成する。
【００２６】
フリップフロップＦＦ２のＱ出力がフリップフロップＦＦ３のＱ出力と同じときは、比較器ＣＯＭＰの検出信号Ｓ１がＬになり、次のクロックタイミングでフリップフロップＦＦ４のＱ出力がＬになり、ナンド回路ＮＡＮＤ３，ＮＡＮＤ４の出力はＨとなって、フリップフロップＦＦ２に対するセット、リセットは行われない。また、ノア回路ＮＯＲ１の出力がＨとなるので、アンド回路ＡＮＤ２がゲートを閉じることはなく、フリップフロップＦＦ１〜ＦＦ３に対するクロック信号供給は継続して行なわれる。
【００２７】
フリップフロップＦＦ２に供給されるクロック信号がフリップフロップＦＦ１，ＦＦ３に供給されるクロック信号に対して遅れた場合（図４参照）は、フリップフロップＦＦ２，ＦＦ３のＱ出力の値が異なってきて、比較器ＣＯＭＰの検出信号Ｓ１がＨに変化する。このため、即座にノア回路ＮＯＲ１の出力がＬになり、アンド回路ＡＮＤ２がゲートを閉じてフリップフロップＦＦ１〜ＦＦ３へのクロック信号供給を停止する。このクロック信号供給停止は、次のクロックタイミングで検出信号Ｓ１をサンプリングするフリップフロップＦＦ５によって、次のクロックでも継続される。
【００２８】
また、フリップフロップＦＦ４のＱ出力が次のクロックタイミングでＨになり、このとき、フリップフロップＦＦ３のＱ出力がＬのときは、ナンド回路ＮＡＮＤ４の出力がＬとなってフリップフロップＦＦ２がリセットされ、そのＱ出力がフリップフロップＦＦ３のＱ出力と同じＬになる。なお、フリップフロップＦＦ３のＱ出力がＨのときは、ナンド回路ＮＡＮＤ３の出力がＬとなってフリップフロップＦＦ２がセットされ、そのＱ出力がフリップフロップＦＦ３のＱ出力と同じＨになる。
【００２９】
このようにして、フリップフロップＦＦ２のＱ出力がフリップフロップＦＦ３のＱ出力と異なるときは、フリップフロップＦＦ１〜ＦＦ３に供給するクロック信号を停止すると共に、その停止中にフリップフロップＦＦ２のＱ出力をフリップフロップＦＦ３のＱ出力と一致するように訂正する。これにより、フリップフロップＦＦ２，ＦＦ３のＱ出力が一致すると、比較器ＣＯＭＰの検出信号Ｓ１がＬになるので、アンド回路ＡＮＤ２がゲートを開いて、クロック信号をＦＦ１〜ＦＦ３に供給し、次の入力データの転送を開始する。
【００３０】
この実施例２では、アンド回路ＡＮＤ２を制御するためにフリップフロップＦＦ５を使用するので、アンド回路ＡＮＤ２はフリップフロップＦＦ１〜ＦＦ３に対して２クロック分だけゲートを閉じ、実施例１の構成に比べて、グリッチの発生を防止し、最大動作周波数を高くすることができる。
【実施例３】
【００３１】
図５は実施例３のデータ転送回路の回路構成を示す図である。ここでは、実施例２の構成に対して、さらにフリップフロップＦＦ６〜ＦＦ８を追加している。このように、ここではナンド回路ＮＡＮＤ３，ＮＡＮＤ４から出力する訂正信号をフリップフロップＦＦ７，ＦＦ８で一端ホールドしてからフリップフロップＦＦ２に送るようにしている。このため、アンド回路ＡＮＤ２のゲートを閉じるための回路部分に、フリップフロップＦＦ６をさらに１段追加して、フリップフロップＦＦ１〜ＦＦ３に供給するクロック信号の停止期間を３クロック分に延長している。動作は実施例２とほぼ同様であるので、詳しい説明は省略する。図６に動作のタイミングチャートを示した。
【００３２】
請求項との関係では、比較回路ＣＯＭＰが不一致検出回路を構成し、フリップフロップＦＦ４，ＦＦ７，ＦＦ８とナンド回路ＮＡＮＤ３，ＮＡＮＤ４が訂正回路を構成し、アンド回路ＡＮＤ２、ノア回路ＮＯＲ１、フリップフロップＦＦ５，ＦＦ６がクロック停止回路を構成する。また、フリップフロップＦＦ４，ＦＦ７，ＦＦ８は訂正時間制御回路も構成する。フリップフロップＦＦ５，ＦＦ６は停止時間制御回路も構成する。
【図面の簡単な説明】
【００３３】
【図１】実施例１のデータ転送回路のブロック図である。
【図２】実施例１のデータ転送回路の動作のタイミングチャートである。
【図３】実施例２のデータ転送回路のブロック図である。
【図４】実施例２のデータ転送回路の動作のタイミングチャートである。
【図５】実施例３のデータ転送回路のブロック図である。
【図６】実施例３のデータ転送回路の動作のタイミングチャートである。
【図７】従来のデータ転送回路のブロック図である。
【図８】従来のデータ転送回路の動作のタイミングチャートである。
【図９】セットアップタイムとホールドタイムの説明図である。
【符号の説明】
【００３４】
ＦＦ１〜ＦＦ８：フリップフロップ
Ｂ１〜Ｂ９：バッファ
ＣＯＭＰ：比較器
ＡＮＤ１，ＡＮＤ２：アンド回路
ＮＡＮＤ１〜ＮＡＮＤ４：ナンド回路
ＮＯＲ１：ノア回路
【図１】
0004610423.tif 000002
【図２】
0004610423.tif 000003
【図３】
0004610423.tif 000004
【図４】
0004610423.tif 000005
【図５】
0004610423.tif 000006
【図６】
0004610423.tif 000007
【図７】
0004610423.tif 000008
【図８】
0004610423.tif 000009
【図９】
0004610423.tif 000010