(57)【要約】【課題】フリップフロップでセットアップ時間を確保できるようにした同期回路を提供する。【解決手段】後段のフリップフロップ１３でセットアップ時間に余裕があるとき、前段のフリップフロップ１２に供給するクロック信号ＣＬＫ１を組合せ論理回路２１の出力データ信号ＤＡＴＡ１よりも遅らせる。このために、データ信号ＤＡＴＡ１が変化してからクロック信号ＣＬＫ１が出力するようクロックタイミング調整回路３０を設ける。【選択図】  図１
2007180894.tif 000002
【特許請求の範囲】
【請求項１】
複数の組合せ論理回路と複数のフリップフロップとが交互に配置された同期回路において、前記複数のフリップフロップのそれぞれが、クロック信号の有効エッジに同期して、前記複数の組合せ論理回路の内の前段の組合せ論理回路の出力データ信号の論理値を保持し後段の組合せ論理回路に入力データ信号として供給するときの、動作タイミングを調整する方法であって、
前記複数のフリップフロップの内の第１のフリップフロップに、該第１のフリップフロップの前段のフリップフロップに供給されるクロック信号に同期した第１のクロック信号を供給すると、該第１のフリップフロップでセットアップ時間を確保できないとき、該第１のフリップフロップの前段の第１の組合せ論理回路の出力データ信号の論理変化の確定に基づいて、前記第１のクロック信号の有効エッジよりも遅い有効エッジをもつ第２のクロック信号を生成して、前記第１のフリップフロップに供給することにより、前記第１のフリップフロップのセットアップ時間を確保し、又は、
前記複数のフリップフロップの内の前記第１のフリップフロップに、該第１のフリップフロップの前段のフリップフロップに供給されるクロック信号に同期した第１のクロック信号を供給すると、該第１のフリップフロップの後段の第２のフリップフロップでセットアップ時間を確保できないとき、前記第１の組合せ論理回路の出力データ信号の論理変化の確定に基づいて、前記第１のクロック信号の有効エッジよりも早い有効エッジをもつ第２のクロック信号を生成し、前記第１のフリップフロップに供給することにより、前記第２のフリップフロップのセットアップ時間を確保することを特徴とするタイミング調整方法。
【請求項２】
複数の組合せ論理回路と複数のフリップフロップとが交互に配置され、前記複数のフリップフロップのそれぞれが、クロック信号の有効エッジに同期して、前記複数の組合せ論理回路の内の前段の組合せ論理回路の出力データ信号の論理値を保持し後段の組合せ論理回路に入力データ信号として供給する同期回路において、
前記複数のフリップフロップの内の第１のフリップフロップの前段の第１の組合せ論理回路の出力データ信号の変化タイミングに基づいて、前記第１の組合せ論理回路の出力データ信号の論理値が確定した以降に有効エッジをもつ第２のクロック信号を生成し、前記第１のフリップフロップに供給する、クロックタイミング調整回路を有することを特徴とする同期回路。
【請求項３】
前記第１のフリップフロップに対して、該第１のフリップフロップの前段のフリップフロップに供給されるクロック信号に同期した前記第１のクロック信号と前記第２のクロック信号の一方を選択して供給するセレクタを設けたことを特徴とする請求項２に記載の同期回路。
【請求項４】
前記第１のフリップフロップに該第１のフリップフロップの前段に供給されるクロック信号に同期したクロック信号を供給すると、該第１のフリップフロップでセットアップ時間を確保できないとき、前記第２のクロック信号の有効エッジのタイミングが、前段のフリップフロップに供給されるクロック信号の有効エッジのタイミングよりも遅くなるようにしたことを特徴とする請求項２又は３に記載の同期回路。
【請求項５】
前記第１のフリップフロップに該第１のフリップフロップの前段のフリップフロップに供給されるクロック信号に同期したクロック信号を供給すると、該第１のフリップフロップの後段のフリップフロップでセットアップ時間を確保できないとき、前記第２のクロック信号の有効エッジのタイミングが、前段のフリップフロップに供給されるクロック信号の有効エッジのタイミングよりも早くなるようにしたことを特徴とする請求項２又は３に記載の同期回路。
【請求項６】
前記クロックタイミング調整回路は、前記前段のフリップフロップに供給されるクロック信号の有効エッジのタイミングでリセットが解除された後に、前記第１の組合せ論理回路の出力データ信号が変化することによって有効エッジを呈する前記第２のクロック信号を生成するクロック生成用フリップフロップを含むことを特徴とする請求項４に記載の同期回路。
【請求項７】
前記クロックタイミング調整回路は、前記前段のフリップフロップに供給されるクロック信号の無効エッジのタイミングでリセットが解除された後に、前記第１の組合せ論理回路の出力データ信号が変化することによって有効エッジを呈する前記第２のクロック信号を生成するクロック生成用フリップフロップを含むことを特徴とする請求項５に記載の同期回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フリップフロップのセットアップ時間を確保できるようクロック信号のタイミイングを調整するようにしたタイミング調整方法および同期回路に関するものである。
【背景技術】
【０００２】
半導体集積回路内でのデータ処理において、図７に示すように、入力データ信号ＤＡＴＡをフリップフロップ１１で一旦保持してから組合せ論理回路２１に入力して論理処理し、その結果をフリップフロップ１２で一旦保持してから次段の組合せ論理回路２２で論理処理し、その結果をフリップフロップ１３で一旦保持してさらに後段の論理回路に入力するパイプライン処理が一般的に行われる。この場合、各フリップフロップ１１〜１３には図示しない共通のクロック源からクロック配線６０を通じてクロック信号ＣＬＫが供給される。そして、このクロック信号ＣＬＫに同期してデータ信号の保持および転送を行う。
ここで、半導体集積回路設計の初期段階においては、各フリップフロップ１１〜１３には、同一のタイミングを有するクロック信号ＣＬＫが供給されることが仮定される。しかし、同一のタイミングのクロック信号ＣＬＫを供給したのでは、正常な動作が保証されない場合がある。すなわち、ある段のフリップフロップにおける保持を行うためには、前段の組合せ論理回路に入力データ信号が入力されてから、その組合せ論理回路の出力データ信号の論理値が確定してフリップフロップに入力されるまでに必要なセットアップ時間が経過した後に、クロック信号ＣＬＫが入力される必要があるが、いくつかのフリップフロップにおいてこのタイミング関係を満たせない場合がある。
【０００３】
そこで、例えば、クロック信号ＣＬＫの周期に比較してフリップフロップ１２と１３の間のタイミングに余裕があり、且つフリップフロップ１１と１２の間でタイミングを満足できない、つまりクロック信号ＣＬＫの到達タイミングよりも組合せ論理回路２２の出力データ信号の方が先にフリップフロップ１３に入力してフリップフロップ１３でのセットアップ時間に余裕があり、一方、クロック信号ＣＬＫのフリップフロップ１２への到達タイミングよりも組合せ論理回路１１の出力データ信号の方が後にフリップフロップ１２に入力する等により、フリップフロップ１２でのセットアップ時間を確保できないときは、クロック配線を調整してフリップフロップ１２に入力するクロック信号ＣＬＫを遅らせることが行われる。
【０００４】
また、上記と逆に、フリップフロップ１１と１２の間のタイミングに余裕があり、且つフリップフロップ１２と１３の間でタイミングを満足できない、つまりクロック信号ＣＬＫのフリップフロップ１２への到達タイミングよりも組合せ論理回路２１の出力データ信号の方が先にフリップフロップ１２に入力してフリップフロップ１２でのセットアップ時間に余裕があり、一方、クロック信号ＣＬＫのフリップフロップ１３への到達タイミングよりも組合せ論理回路２２の出力データ信号の方が後にフリップフロップＦ３に入力する等により、フリップフロップ１３でのセットアップ時間を確保できないときは、クロック配線を調整してフリップフロップ１３に入力するクロック信号ＣＬＫを遅らせることが行われる。
【０００５】
そして、前者に対しては図７において遅延回路６１を挿入し、後者に対しては遅延回路６２を挿入することが行われる（例えば、特許文献１〜４参照）。また、遅延回路に代えて適当な箇所にフリップフロップを追加して、１クロック分だけ処理を遅らせることも行われる。
【特許文献１】特開昭６１−４５６２９号公報
【特許文献２】特開平６−１９７００６号公報
【特許文献３】特開平９−５４７９６号公報
【特許文献４】特開平１０−３２６３０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、クロック配線を調整する手法は、図８の設計フローチャートに示すように、回路設計において終りに近いステップＳ６のレイアウト段階で実施される。従って、試行して十分なタイミング改善を確認することができなければ、フロントエンド工程から設計をやり直すことが必要になるという、大きなリスクを伴うことになる。また、クロック信号に遅延を持たせるために、一部で同期が崩れることになり、スキャンテスト時に問題が発生する可能性がある。また、フリップフロップを挿入する手法は、データ信号が１クロック信号分遅れるので、期待した動作となるか否かをシミュレーションによって再検証する論理等価性検証を実施する必要がある。しかも、一般的には、論理等価性検証では期待値との一致が取れない場合が多い。
【０００７】
本発明の目的は、データ信号の変化のタイミングを考慮してクロック信号のタイミングを調整することによりフリップフロップでセットアップ時間を確保できるようにしたタイミング調整方法および同期回路を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１にかかる発明は、複数の組合せ論理回路と複数のフリップフロップとが交互に配置された同期回路において、前記複数のフリップフロップのそれぞれが、クロック信号の有効エッジに同期して、前記複数の組合せ論理回路の内の前段の組合せ論理回路の出力データ信号の論理値を保持し後段の組合せ論理回路に入力データ信号として供給するときの、動作タイミングを調整する方法であって、前記複数のフリップフロップの内の第１のフリップフロップに、該第１のフリップフロップの前段のフリップフロップに供給されるクロック信号に同期した第１のクロック信号を供給すると、該第１のフリップフロップでセットアップ時間を確保できないとき、該第１のフリップフロップの前段の第１の組合せ論理回路の出力データ信号の論理変化の確定に基づいて、前記第１のクロック信号の有効エッジよりも遅い有効エッジをもつ第２のクロック信号を生成して、前記第１のフリップフロップに供給することにより、前記第１のフリップフロップのセットアップ時間を確保し、又は、前記複数のフリップフロップの内の前記第１のフリップフロップに、該第１のフリップフロップの前段のフリップフロップに供給されるクロック信号に同期した第１のクロック信号を供給すると、該第１のフリップフロップの後段の第２のフリップフロップでセットアップ時間を確保できないとき、前記第１の組合せ論理回路の出力データ信号の論理変化の確定に基づいて、前記第１のクロック信号の有効エッジよりも早い有効エッジをもつ第２のクロック信号を生成し、前記第１のフリップフロップに供給することにより、前記第２のフリップフロップのセットアップ時間を確保することを特徴とする。
請求項２にかかる発明は、複数の組合せ論理回路と複数のフリップフロップとが交互に配置され、前記複数のフリップフロップのそれぞれが、クロック信号の有効エッジに同期して、前記複数の組合せ論理回路の内の前段の組合せ論理回路の出力データ信号の論理値を保持し後段の組合せ論理回路に入力データ信号として供給する同期回路において、前記複数のフリップフロップの内の第１のフリップフロップの前段の第１の組合せ論理回路の出力データ信号の変化タイミングに基づいて、前記第１の組合せ論理回路の出力データ信号の論理値が確定した以降に有効エッジをもつ第２のクロック信号を生成し、前記第１のフリップフロップに供給する、クロックタイミング調整回路を有することを特徴とする。
請求項３にかかる発明は、請求項２に記載の発明において、前記第１のフリップフロップに対して、該第１のフリップフロップの前段のフリップフロップに供給されるクロック信号に同期した前記第１のクロック信号と前記第２のクロック信号の一方を選択して供給するセレクタを設けたことを特徴とする。
請求項４にかかる発明は、請求項２又は３に記載の発明において、前記第１のフリップフロップに該第１のフリップフロップの前段に供給されるクロック信号に同期したクロック信号を供給すると、該第１のフリップフロップでセットアップ時間を確保できないとき、前記第２のクロック信号の有効エッジのタイミングが、前段のフリップフロップに供給されるクロック信号の有効エッジのタイミングよりも遅くなるようにしたことを特徴とする。
請求項５にかかる発明は、請求項２又は３に記載の発明において、前記第１のフリップフロップに該第１のフリップフロップの前段のフリップフロップに供給されるクロック信号に同期したクロック信号を供給すると、該第１のフリップフロップの後段のフリップフロップでセットアップ時間を確保できないとき、前記第２のクロック信号の有効エッジのタイミングが、前段のフリップフロップに供給されるクロック信号の有効エッジのタイミングよりも早くなるようにしたことを特徴とする。
請求項６にかかる発明は、請求項４に記載の発明において、前記クロックタイミング調整回路は、前記前段のフリップフロップに供給されるクロック信号の有効エッジのタイミングでリセットが解除された後に、前記第１の組合せ論理回路の出力データ信号が変化することによって有効エッジを呈する前記第２のクロック信号を生成するクロック生成用フリップフロップを含むことを特徴とする。
請求項７にかかる発明は、請求項５に記載の発明において、前記クロックタイミング調整回路は、前記前段のフリップフロップに供給されるクロック信号の無効エッジのタイミングでリセットが解除された後に、前記第１の組合せ論理回路の出力データ信号が変化することによって有効エッジを呈する前記第２のクロック信号を生成するクロック生成用フリップフロップを含むことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、半導体集積回路設計フローにおける論理合成直後の段階でクロック信号のタイミング調整を行い、その効果を確認することができる。また、クロック信号のタイミング調整がデータ信号の変化タイミングに基づいて自動的に行われるので、手動調整する必要はない。さらに、フリップフロップによりクロック信号を１クロック分遅延させるのではないため、論理等価性検証を行う必要もない。また、タイミング調整したクロック信号を供給するか元のクロック信号を供給するかをセレクタにより選択できるようにした場合には、スキャンテストに支障が起きることを防止できる。なお、タイミング調整用の回路にフリップフロップ等が必要になるので、面積の増加が懸念されるが、タイミングを満たす必要性を考慮すると、面積増加よりも効果が大きい。また、タイミングを満たすことが出来ないパスが少数の場合は、面積増加は少ない。
【発明を実施するための最良の形態】
【００１０】
本発明では、セットアップ時間が確保できないフリップフロップについて、当該フリップフロップに入力する出力データ信号に基づいて、そのフリップフロップに供給するクロック信号を遅くし、セットアップ時間に余裕を持たせる。あるいは、そのフリップフロップより前段のフリップフロップに入力する出力データ信号に基づいて当該前段のフリップフロップに供給するクロック信号を早くする。これによって、セットアップ時間が確保できないフリップフロップに入力するデータ信号を早くして、当該セットアップ時間が確保できなかったフリップフロップでセットアップ時間に余裕を持たせる。
【００１１】
[第１の実施例]
図１は第１の実施例の同期回路のブロック図である。１１，１２，１３はフリップフロップ、２１，２２は組合せ論理回路である。この実施例は、フリップフロップ１２と１３の間においてフリップフロップ１３でセットアップ時間に余裕があり、フリップフロップ１１と１２の間においてフリップフロップ１２でセットアップ時間を満たせない場合を想定する。そして、フリップフロップ１２に入力するクロック信号ＣＬＫ１が組合せ論理回路２１の出力データ信号ＤＡＴＡ１が変化し論理値が確定した後に立ち上がるようして、フリップフロップ１２のセットアップ時間を確保できるようにした例である。なお、ここでのクロック信号ＣＬＫ，ＣＬＫ１の有効エッジは立上りエッジである。
【００１２】
３０はクロックタイミング調整回路であり、フリップフロップ３１〜３４、インバータ３５、およびオア回路３６から構成される。調整回路３０は、組合せ論理回路２１の出力データ信号ＤＡＴＡ１とクロック信号ＣＬＫの供給を受け、フリップフロップ１２に供給するクロック信号ＣＬＫ１を生成する。フリップフロップ３１，３３は出力データ信号ＤＡＴＡ１の立上りエッジにおいてＤ端子のデータ信号「１」を保持し、フリップフロップ３２，３４は出力データ信号ＤＡＴＡ１の立下りエッジにおいてＤ端子のデータ信号「１」を保持する。また、フリップフロップ３１，３２はクロック信号ＣＬＫが「０」のときリセット状態にあり、フリップフロップ３３，３４はクロック信号ＣＬＫが「１」のときリセット状態にある。そして、フリップフロップ３１〜３４のＱ端子の出力信号がオア回路３６に入力し、このオア回路３６からクロックＣＬＫ１が出力する。
【００１３】
ここで、出力データ信号ＤＡＴＡ１の変化タイミングが、クロック信号ＣＬＫに対して図２に示すように遅れている場合は、クロックタイミング調整回路３０は以下のように動作する。まず、クロック信号ＣＬＫの有効エッジ（立上りエッジ）のタイミングでフリップフロップ３１，３２がリセットを解除され、フリップフロップ３３，３４がリセットとなる。よって、出力データ信号ＤＡＴＡ１の変化タイミングではフリップフロップ３１，３２のみが応答可能となる。このとき、出力データ信号ＤＡＴＡ１が立ち上がるときはフリップフロップ３１がそのタイミングでＤ端子の「１」を保持し、立ち下がるときはフリップフロップ３２がそのタイミングでＤ端子の「１」を保持する。よって、いずれの場合であってもフリップフロップ３１，３２のＱ端子の出力信号のいずれかが「１」となってオア回路３６から出力する。これにより、フリップフロップ１２に供給される出力クロック信号ＣＬＫ１は、出力データ信号ＤＡＴＡ１の変化タイミングよりもフリップフロップ３１，３２の応答時間だけ遅れて立ち上がるクロック信号となり、フリップフロップ１２のセットアップ時間を確保することができる。そして、この後に入力クロック信号ＣＬＫが立ち下がると、フリップフロップ３１，３２はリセットされ、そのＱ端子の信号は「０」になり、クロック信号ＣＬＫ１も立ち下がる。
【００１４】
なお、ここで、出力データ信号ＤＡＴＡ１の変化が、立ち上がりであるか立下りであるかが予め分かっている場合であれば、フリップフロップ３１と３２のいずれかを省略することができる。しかし、一般的には、出力データ信号ＤＡＴＡ１の変化の方向は一定ではないことが多いため、図１に示された例のように、出力データ信号の立上りエッジで応答するフリップフロップ３１と、立下りエッジで応答するフリップフロップ３２の両方を組み合わせてクロックタイミング調整回路３０を構成することが好ましい。すなわち、組合せ論理回路２１には、図１においては省略されているが、実際には、フリップフロップ１１のみからではなく複数のフリップフロップからの入力データ信号が供給される。そして、それら複数の入力データ信号の論理値の組合せによって、出力データ信号ＤＡＴＡ１が立ち上がる場合と立ち下がる場合との両方があり得る。
【００１５】
このように、フリップフロップ１２に供給されるクロック信号ＣＬＫ１を遅らせたことにより、フリップフロップ１２のＱ端子から出力するデータ信号は遅れ、組合せ論理回路２２で処理されたデータ信号も遅れてフリップフロップ１３のＤ端子に入力することになる。従って、後段のフリップフロップ１３でのセットアップ時間に余裕がある場合に、このような対策をとり、フリップフロップ１２におけるセットアップ時間の不足を解消することができる。このようにして、後段のフリップフロップ１３におけるセットアップ時間の余裕の一部が、フリップフロップ１２のセットアップ時間を確保するために有効利用されることになる。
【００１６】
一方、出力データ信号ＤＡＴＡ１の変化タイミングが、クロック信号ＣＬＫに対して図３に示すように早い場合は、クロックタイミング調整回路３０は以下のように動作する。まず、クロック信号ＣＬＫの立下りエッジ（無効エッジ）のタイミングでフリップフロップ３１，３２がリセットされ、フリップフロップ３３，３４がリセット解除される。よって、出力データ信号ＤＡＴＡ１の変化タイミングではフリップフロップ３３，３４のみが応答可能となる。このとき、出力データ信号ＤＡＴＡ１が立上るときはフリップフロップ３３がそのタイミングでＤ端子の「１」を保持し、立ち下がるときはフリップフロップ３４がそのタイミングでＤ端子の「１」を保持する。よって、いずれの場合であっても、フリップフロップ３３，３４のＱ端子の出力信号のいずれかが「１」となってオア回路３６から出力する。これにより、フリップフロップ１２に供給される出力クロック信号ＣＬＫ１は、出力データ信号ＤＡＴＡ１の変化タイミングより若干遅れて立ち上がるクロック信号となり、フリップフロップ１２のセットアップ時間は確保することができる。そして、その後に入力クロック信号ＣＬＫが立ち上がると、フリップフロップ３３，３４はリセットされ、そのＱ端子の信号は「０」になり、出力クロック信号ＣＬＫ１は立ち下がる。
【００１７】
ここで、出力データ信号ＤＡＴＡ１の変化タイミングが、クロック信号ＣＬＫに対して必ず遅れる場合であれば、フリップフロップ３３，３４を設ける必要はない。しかし、前述のように、組み合わせ論理回路２１には複数のフリップフロップからの入力データ信号が供給される。このため、それら複数の入力データ信号の論理値の組み合わせによって、出力データ信号ＤＡＴＡ１の変化タイミングがクロック信号ＣＬＫに対して遅れる場合と早くなる場合との両方があり得る。従って、一般的には、クロックタイミング調整回路３０には、出力データ信号ＤＡＴＡ１の変化のタイミングがクロック信号ＣＬＫに対して遅れる場合にクロック信号ＣＬＫ１を生成する回路（フリップフロップ３１および３２）と、出力データ信号ＤＡＴＡ１の変化のタイミングがクロック信号ＣＬＫよりも早い場合にクロック信号ＣＬＫ１を生成する回路（フリップフロップ３３および３４）の両方を設けることが好ましい。
【００１８】
また、出力データ信号ＤＡＴＡ１がクロックＣＬＫよりも早く変化する場合であれば、出力データ信号ＤＡＴＡ１からクロック信号ＣＬＫ１を生成する必要はなく、元のクロックＣＬＫをそのままフリップフロップ１２に供給すればよいと考えられる。しかし、このためには、クロック信号ＣＬＫの立上りエッジと出力データ信号ＤＡＴＡ１の変化のどちらが早いかを判定する回路が必要となり、かえって回路規模が大きくなる懸念がある。そこで、本実施例では、出力データ信号ＤＡＴＡ１がクロックＣＬＫよりも早く変化する場合であっても、出力データ信号ＤＡＴＡ１とクロックＣＬＫとからクロックＣＬＫ１を生成できるように、フリップフロップ３３，３４やインバータ３５を設けた構成とした。
【００１９】
[第２の実施例]
図４は第２の実施例の同期回路のブロック図である。この実施例は、フリップフロップ１２と１３の間においてフリップフロップ１３でセットアップ時間を確保できず、フリップフロップ１１と１２の間においてフリップフロップ１２でセットアップ時間に余裕がある場合を想定する。そして、フリップフロップ１２に入力するクロック信号ＣＬＫ２の立上りエッジを早め、これによりフリップフロップ１２から出力されて組合せ論理回路２２に入力されるデータ信号のタイミングを早め、ひいては組合せ論理回路２２の出力データ信号ＤＡＴＡ２を早めて、フリップフロップ１３でセットアップ時間を確保できるようにした例である。
【００２０】
４０はクロックタイミング調整回路であり、フリップフロップ４１，４２、インバータ４３、およびオア回路４４から構成される。調整回路４０は、組合せ論理回路２１の出力データ信号ＤＡＴＡ１とクロック信号ＣＬＫの供給を受け、フリップフロップ１２に供給するクロック信号ＣＬＫ２を生成する。フリップフロップ４１は出力データ信号ＤＡＴＡ１の立上りエッジにおいてＤ端子のデータ信号「１」を保持し、フリップフロップ４２は出力データ信号ＤＡＴＡ１の立下りエッジにおいてＤ端子のデータ信号「１」を保持する。また、フリップフロップ４１，４２はクロック信号ＣＬＫが「１」のときリセット状態にある。そして、フリップフロップ４１，４２のＱ端子の信号がオア回路４４に入力する。
【００２１】
さて、出力データ信号ＤＡＴＡ１の変化タイミングがクロック信号ＣＬＫに対して図５に示すように早い場合は、クロックタイミング調整回路４０は以下のように動作する。まず、クロック信号ＣＬＫの立下りエッジ（無効エッジ）のタイミングでフリップフロップ４１，４２がリセット解除される。よって、出力データ信号ＤＡＴＡ１の変化タイミングではフリップフロップ４１，４２が応答可能となる。このとき、出力データ信号ＤＡＴＡ１が立ち上がるときはフリップフロップ４１がそのタイミングでＤ端子の「１」を保持し、立ち下がるときはフリップフロップ４２がそのタイミングでＤ端子の「１」を保持する。よって、いずれの場合であっても、そのフリップフロップ４１，４２のＱ端子のいずれかが「１」となってオア回路４４から出力する。これにより、フリップフロップ１２に供給される出力クロック信号ＣＬＫ２は、出力データ信号ＤＡＴＡ１の変化タイミングより若干遅れて立ち上がるクロック信号となる。
【００２２】
この結果、フリップフロップ１２から供給されて組合せ論理回路２２に入力される出力データ信号のタイミングを早め、ひいては組合せ論理回路２２の出力データ信号ＤＡＴＡ２の変化タイミングを早めるので、フリップフロップ１３でセットアップ時間を確保することができるようになる。そして、その後入力クロック信号ＣＬＫが立ち上がると、フリップフロップ４１，４２はリセットされ、そのＱ端子は「０」になる。
【００２３】
[第３の実施例]
図６は第３の実施例の同期回路のブロック図である。この実施例は、図１に示した第１の実施例に、セレクタとしてマルチプレクサ５０を追加したものである。これによって、フリップフロップ１２に供給するクロック信号として、クロック信号ＣＬＫとクロック信号ＣＬＫ１を選択できるマルチプレクサ５０にスキャンテストモード選択信号を供給し、スキャンテスト時にはフリップフロップ１２にも他のフリップフロップ１１，１３と同様に、共通のクロック源からクロック配線６０を通じて供給されるクロック信号ＣＬＫを入力させることができる。また、論理等価性検証では、フリップフロップ１２にクロック信号ＣＬＫ１を入力させればよい。なお、図４に示した第２の実施例においても、同様のマルチプレクサによって、クロック信号ＣＬＫとクロック信号ＣＬＫ２を選択的にフリップフロップ１２に入力させることが可能である。
【００２４】
[その他の実施例]
なお、以上の実施例において、クロックタイミング調整回路３０，４０に供給するクロックは、通常は、前段のフリップフロップ１１および後段のフリップフロップ１３に供給されるクロック信号ＣＬＫと共通のクロック源から、クロック配線６０を通じて供給される。各フリップフロップ１１，１３およびクロックタイミング調整回路３０，４０に至るクロック配線６０の長さはそれぞれ異なり、また、配線経路に必要に応じて挿入されるバッファ（図示しない）の個数にも差がある。このため、従来技術に関連して説明したような意図したクロック信号の遅延は行われなくても、各フリップフロップ１１，１３およびクロックタイミング調整回路３０，４０のそれぞれに供給されるクロック信号ＣＬＫのタイミングには僅かな差が発生する場合がある。しかし、このような意図しない差を除けば、各フリップフロップ１１，１３およびクロックタイミング調整回路３０，４０には、同一のタイミングを有する、互いに同期したクロック信号ＣＬＫが供給される。このようなタイミングの関係が満たされるのであれば、クロックタイミング調整回路３０，４０に対して、フリップフロップ１１，１３にクロック信号ＣＬＫを供給するものとは別のクロック源からクロック信号を供給するようにしても良い。
【図面の簡単な説明】
【００２５】
【図１】第１の実施例の同期回路のブロック図である。
【図２】図１の同期回路のＤＡＴＡ１がＣＬＫより遅いときの動作波形図である。
【図３】図１の同期回路のＤＡＴＡ１がＣＬＫより早いときの動作波形図である。
【図４】第２の実施例の同期回路のブロック図である。
【図５】図４の同期回路のＤＡＴＡ１がＣＬＫより早いときの動作波形図である。
【図６】第３の実施例の同期回路のブロック図である。
【図７】従来の同期回路のブロック図である。
【図８】従来の同期回路設計のフローチャートである。
【符号の説明】
【００２６】
１１〜１３：フリップフロップ
２１，２２：組合せ論理回路
３０：クロックタイミング調整回路、３１〜３４：フリップフロップ、３５：インバータ、３６：オア回路
４０：クロックタイミング調整回路、４１〜４２：フリップフロップ、４３：インバータ、４４：オア回路
５０：マルチプレクサ
６０：クロック配線
【図１】
2007180894.tif 000003
【図２】
2007180894.tif 000004
【図３】
2007180894.tif 000005
【図４】
2007180894.tif 000006
【図５】
2007180894.tif 000007
【図６】
2007180894.tif 000008
【図７】
2007180894.tif 000009
【図８】
2007180894.tif 000010