(57)【特許請求の範囲】
【請求項１】
通常動作時にはクロック発生源が発生する源クロックと同一周期の第１のクロック信号と、前記第１のクロック信号と異なる周期の第２のクロック信号とを生成し、スキャンテスト時には外部入力から生成されるスキャンクロックを供給するクロック生成回路であって、
前記クロック発生源からの源クロックを分周する分周器と、
通常動作時には前記クロック発生源からの源クロックを選択し、スキャンテスト時には外部入力から生成されるスキャンクロックを選択する選択回路と、
前記スキャンテスト時に前記スキャンクロックを入力し、このスキャンクロックの立ち下がりに同期した非同期リセット用のパルス信号を出力するパルス生成回路と、
前記スキャンテスト時には前記選択回路の出力の立ち上がりに同期してセットされ、かつ前記パルス生成回路からの前記非同期リセット用のパルス信号によって非同期リセットされるとともに、前記通常動作時には前記選択回路の出力の立ち上がりに同期して前記分周器の出力の値を設定されて、その出力を前記第２のクロック信号として出力する第１の非同期リセット付フリップフロップ回路と、
遅延量が前記第１の非同期リセット付フリップフロップ回路と等しくされ、かつ前記選択回路の出力を前記第１のクロック信号として出力する等価遅延回路と
を備えていることを特徴とするクロック生成回路。
【請求項２】
請求項１記載のクロック生成回路において、前記等価遅延回路における入力変化から出力変化までの遅延時間が、前記非同期リセット付フリップフロップ回路における前記選択回路からの入力の立ち上がりから出力変化までの時間と等価であることを特徴とするクロック生成回路。
【請求項３】
請求項１記載のクロック生成回路において、前記パルス生成回路は、前記スキャンクロックを遅延回路と論理反転回路に入力し、さらに前記遅延回路の出力と前記論理反転回路の出力の論理積を出力することを特徴とするクロック生成回路。
【請求項４】
請求項１記載のクロック生成回路において、前記パルス生成回路は、
前記スキャンクロックの立ち上がりに同期してセットされ、パルス生成回路の出力によって非同期リセットされる第２の非同期リセット付フリップフロップ回路と、
前記スキャンクロックの立ち上がりに同期して値を反転するフリップフロップ回路と、
前記フリップフロップ回路の出力の論理反転と前記スキャンクロックの論理反転との論理積の立ち上がりに同期してセットされる少なくとも１つの第３の非同期リセット付フリップフロップ回路と、
前記フリップフロップ回路の出力と前記スキャンクロックの論理反転との論理積の立ち上がりに同期してセットされる少なくとも１つの第４の非同期リセット付フリップフロップ回路とを有し、
前記第３の非同期リセット付フリップフロップ回路のうちの１段目は前記第２の非同期リセット付フリップフロップ回路の出力の論理反転と前記フリップフロップ回路の出力と前記スキャンクロックの論理反転との論理積によって非同期リセットされ、２段目以降は前段の前記第３の非同期リセット付フリップフロップ回路の出力の論理反転と前記フリップフロップ回路の出力と前記スキャンクロックの論理反転との論理積によって非同期リセットされ、
前記第４の非同期リセット付フリップフロップ回路のうちの１段目は前記第２の非同期リセット付フリップフロップ回路の出力の論理反転と前記フリップフロップ回路の出力の論理反転と前記スキャンクロックの論理反転との論理積によって非同期リセットされ、２段目以降は前段の前記第４の非同期リセット付フリップフロップ回路の出力の論理反転と前記フリップフロップ回路の出力の論理反転と前記スキャンクロックの論理反転との論理積によって非同期リセットされ、
さらに、最終段の前記第３の非同期リセット付フリップフロップ回路の出力と前記フリップフロップ回路の出力と前記スキャンクロックの論理反転の論理積と、最終段の前記第４の非同期リセット付フリップフロップ回路の出力と前記フリップフロップ回路の出力の論理反転と前記スキャンクロックの論理反転の論理積との論理和を出力することを特徴とするクロック生成回路。
【請求項５】
請求項４記載のクロック生成回路において、前記パルス生成回路の前記第２の非同期リセット付フリップフロップ回路と前記第３の非同期リセット付フリップフロップ回路と前記第４の非同期リセット付フリップフロップ回路が前記第１の非同期リセット付フリップフロップ回路と同一の回路構成であることを特徴とするクロック生成回路。
【請求項６】
請求項１記載のクロック生成回路において、前記パルス生成回路は、前記スキャンクロックの立ち下がりに同期してセットされ、外部入力によって非同期リセットされる第２の非同期リセット付フリップフロップ回路を備え、前記第２の非同期リセット付フリップフロップ回路の出力を前記非同期リセット用のパルス信号として出力することを特徴とするクロック生成回路。
【請求項７】
請求項６記載のクロック生成回路において、前記外部入力が、前記第１のクロック信号および前記第２のクロック信号を入力するスキャンチェインを構成するフリップフロップ回路群のスキャンシフト制御端子に接続されることを特徴とするクロック生成回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサ等のＬＳＩに用いられるスキャンテスト用クロックを供給可能なクロック生成回路に関するものである。
【０００２】
【従来の技術】
近年、マイクロプロセッサ等のデジタルＬＳＩは年々その集積度および動作速度が向上し、同時に製造におけるテスト容易性が課題となっている。このようなＬＳＩにおいて、テスト容易性を高める方法としてスキャンテスト手法が一般的に用いられるようになってきている。しかしながら、特に非常に高速に動作するマイクロプロセッサにおいては、スキャンテストを導入することによって動作速度が低下することがないように設計することが必要がある。
【０００３】
高速なマイクロプロセッサ、もしくはそれを内蔵したＬＳＩにおいては、その内部で複数の周波数のクロック信号を用いてフリップフロップ回路（以下ＦＦ回路と略記する）を駆動するのが一般的である。すなわち、ＬＳＩ内部の一部のＦＦ回路は高い周波数のクロックで駆動されるのに対して、一部のＦＦ回路は低い周波数（例えば、１／２や１／４の周波数）のクロックで駆動されて使用される。
【０００４】
しかしながら、一般的なフルスキャンテスト手法においては、ＬＳＩ内部のすべてのＦＦ回路をＬＳＩ外部から制御することができる同一のクロック信号によって駆動することが必要である。さらに、これらのクロックは高い精度で位相を揃える必要がある。
【０００５】
図１７は従来のマイクロプロセッサ等の構成の一例を示すブロック図である。図１７において、１７１はクロック生成回路であり、ＰＬＬ（Phase Locked Loop）回路１７２の出力する高周波数のクロックを伝達するクロック信号Ａ１７３とその１／２の周波数のクロックを伝達するクロック信号Ｂ１７４を生成する。クロック信号Ａ１７３とクロック信号Ｂ１７４は、各々マイクロプロセッサを構成するＦＦ群Ａ１７５とＦＦ群Ｂ１７６に接続されて各々の内部のＦＦ回路を駆動する。各ＦＦ群の出力は、組合せ回路１７７に入力して、その出力がＦＦ群Ａ１７５およびＦＦ群Ｂ１７６にラッチされる構成となっている。
【０００６】
ここで、スキャンテストを実施する際には、スキャンテスト制御回路１７８の出力するスキャンテストモード信号１７９の制御によって、クロック生成回路１７１の内部のクロック選択回路Ａ１７１０およびクロック選択回路Ｂ１７１１においてスキャンテスト制御回路１７８の出力するスキャンクロック信号１７１２が選択され、クロック信号Ａ１７３およびクロック信号Ｂ１７４として出力される。このスキャンクロック信号１７１２は、ＬＳＩの外部から外部入力Ａ１７１３を通して制御される構成となっていることから、マイクロプロセッサを構成するＦＦ群Ａ１７５およびＦＦ群Ｂ１７６のＦＦ回路に供給されるクロックは、スキャンテストを実施する際にはＬＳＩ外部から制御する構成となっている。
【０００７】
【発明が解決しようとする課題】
上記のように構成された従来のクロック生成回路１７１においては、ＦＦ群Ａ１７５およびＦＦ群Ｂ１７６に到達するクロックの位相を揃えることに課題がある。すなわち、プロセッサの高速な動作を実現し、同時にＦＦ回路がミスラッチ（ホールドタイミングエラー）することを防止するためには、通常、回路内のすべてのＦＦ回路に到達するクロックの位相（特に立ち上がりエッジ）を高い精度で揃える必要がある。
【０００８】
この従来のクロック生成回路１７１の構成においては、まず、ＰＬＬ回路１７２から出力されたクロックから１／２の周波数を生成する分周器１８０を通ってＦＦ群Ｂ１７６に至る経路とＰＬＬ回路１７２の出力のままの周波数でＦＦ群Ａ１７５に至る経路において位相（遅延）を合わせ込む必要がある。そこで、後者の経路に遅延調整回路１８１を介挿している。
【０００９】
さらに、スキャンテスト時においてもミスラッチを防止するためには、スキャンクロック信号１７１２からクロック選択回路Ａ１７１０およびクロック選択回路Ｂ１７１１を経て各々ＦＦ群Ａ１７５およびＦＦ群Ｂ１７６に到達する２経路のクロックの位相を揃える必要があり、それぞれに遅延調整回路１８２，１８３を介挿している。すなわち、計２重のクロックの経路で位相を合わせ込むことが必要であると言う問題を発生する。
【００１０】
さらに、ここでは、クロックを伝達して位相を合わせ込む必要のある経路内にそれぞれクロック選択回路Ａ１７１０およびクロック選択回路Ｂ１７１１という回路素子があることから、回路的な複雑さが増して位相を合わせる設計に困難を増している。
【００１１】
上記の従来のクロック生成回路１７１を用いたマイクロプロセッサにおいては、組合せ回路１７７の設計に機能的な制約を加えることによって、たとえＦＦ群Ａ１７５およびＦＦ群Ｂ１７６に供給されるクロック信号Ａ１７３およびクロック信号Ｂ１７４に位相差があっても誤動作を生じない設計がなされる場合がある。しかし、スキャンテストを行うためには、スキャンクロック信号１７１２からクロック選択回路Ａ１７１０およびクロック選択回路Ｂ１７１１を経て各々ＦＦ群Ａ１７５およびＦＦ群Ｂ１７６に到達する２経路については、クロックの位相を揃える必要があるという問題を発生する。
【００１２】
本発明の目的は、上記のようにスキャンテストのためのクロック供給を行う場合においても、複数の経路を持つクロックに対して位相の合わせ込みを容易に行うことができるクロック生成回路を提供することである。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、本発明によるクロック生成回路は、クロック発生源からの源クロックを遅延回路で遅延させて第１のクロック信号として出力するとともに、クロック発生源からの源クロックを分周器で分周し、その分周された出力を非同期リセット付フリップフロップ回路にラッチして第２のクロック信号として出力し、前記第１のクロック信号の前記遅延回路を前記非同期リセット付フリップフロップ回路と等しい遅延量の等価遅延回路とすることにより、両クロック信号の位相を揃える構成としたものである。
【００１５】
具体的には、次のとおりである。通常動作時にはクロック発生源が発生する源クロックと同一周期の第１のクロック信号と、前記第１のクロック信号と異なる周期の第２のクロック信号とを生成し、スキャンテスト時には外部入力から生成されるスキャンクロックを供給するクロック生成回路を前提とする。このように構成されたクロック生成回路において、次のような構成要素を備えたものとして構成されている。すなわち、前記クロック発生源からの源クロックを分周する分周器を備えている。また、通常動作時には前記クロック発生源からの源クロックを選択し、スキャンテスト時には外部入力から生成されるスキャンクロックを選択する選択回路を備えている。
【００１６】
さらに、次に説明するような内容をもつパルス生成回路と、第１の非同期リセット付フリップフロップ回路と、等価遅延回路とを備えている。
【００１７】
前記のパルス生成回路は、前記スキャンテスト時に前記スキャンクロックを入力し、このスキャンクロックの立ち下がりに同期した非同期リセット用のパルス信号を出力するように構成されている。
【００１８】
また、前記の第１の非同期リセット付フリップフロップ回路は、前記スキャンテスト時には前記選択回路の出力の立ち上がりに同期してセットされ、かつ前記パルス生成回路からの前記非同期リセット用のパルス信号によって非同期リセットされるように構成されている。さらに、この第１の非同期リセット付フリップフロップ回路は、前記通常動作時には前記選択回路の出力の立ち上がりに同期して前記分周器の出力の値を設定されて、その出力を前記第２のクロック信号として出力するように構成されている。
【００１９】
また、前記の等価遅延回路は、遅延量が前記第１の非同期リセット付フリップフロップ回路と等しくされ、かつ前記選択回路の出力を前記第１のクロック信号として出力するように構成されている。
【００２０】
なお、上記において、非同期リセット付フリップフロップ回路につき、「第１の」を付加してあるのは、これは、後に、他の非同期リセット付フリップフロップ回路が記述されることになるが、それと区別するためである。
【００２１】
上記構成による作用は次のとおりである。通常動作時には、クロック発生源からの源クロックが選択回路を通り等価遅延回路で遅延されて第１のクロック信号として出力され、また、源クロックを分周器で分周したものを第１の非同期リセット付フリップフロップ回路において、選択回路を通った源クロックのタイミングでラッチして第２のクロック信号として出力する。第１の非同期リセット付フリップフロップ回路と等価遅延回路の遅延量が等しいので、第１のクロック信号と第２のクロック信号とは、互いに位相の揃ったものとなる。
【００２２】
また、スキャンテスト時には、外部入力から生成されるスキャンクロックが選択回路を通り等価遅延回路で遅延されて出力されるのが第１のクロック信号となる。一方、第１の非同期リセット付フリップフロップ回路は選択回路を通ったスキャンクロックの立ち上がりでセットされ、パルス生成回路からの非同期リセット用のパルス信号で非同期リセットされて、第２のクロック信号を出力する。ここで、パルス生成回路が出力する非同期リセット用のパルス信号は、スキャンクロックに基づいて生成されるもので、そのスキャンクロックの立ち下がりに同期して立ち上がるものである。その結果として、スキャンテスト時においても、第１のクロック信号と第２のクロック信号とは、互いに位相の揃ったものとなる。
【００２３】
以上のように、通常動作時もスキャンテスト時も第１のクロック信号と第２のクロック信号とを互いに位相の揃った状態で供給することができる。しかも、第１の非同期リセット付フリップフロップ回路と等価遅延回路とは、通常動作時の位相合わせ込みとスキャンテスト時の位相合わせ込みとに兼用されるものであり、上記位相合わせ込みの機能のための回路構成を比較的簡単にすることができる。
【００２４】
上記において好ましい態様は、前記の等価遅延回路における入力変化から出力変化までの遅延時間が、前記非同期リセット付フリップフロップ回路における前記選択回路からの入力の立ち上がりから出力変化までの時間と等価に設定されていることである。
【００２５】
これによれば、第１のクロック信号と第２のクロック信号との位相の高精度な合わせ込みを容易に実現することができる。
【００２６】
また、上記において、好ましい態様は、前記のパルス生成回路が、前記スキャンクロックを遅延回路と論理反転回路に入力し、さらに前記遅延回路の出力と前記論理反転回路の出力の論理積を出力するものとして構成されていることである。なお、これについては、後述する実施の形態１の図３を参照するとよい。
【００２７】
スキャンテスト時において、第１のクロック信号は、スキャンクロックが選択回路から等価遅延回路に供給されて生成される。第２のクロック信号の立ち上がりは、スキャンクロックが選択回路から第１の非同期リセット付フリップフロップ回路のクロック入力に供給されて形成される。ただし、第２のクロック信号を第１のクロック信号と同一周期にするには、スキャンクロックの１周期の間に非同期リセット付フリップフロップ回路をリセットし、第２のクロック信号の立ち下がりを形成する必要がある。このリセットのために、スキャンクロックの立ち下がりエッジを利用し、論理反転回路によって非同期リセット用のパルス信号を生成するようにしている。また、この非同期リセット用のパルス信号による非同期リセット付フリップフロップ回路のリセットを確実にするには、非同期リセット用のパルス信号に一定以上のパルス幅が必要であるが、これを遅延回路で実現している。
【００２８】
以上のように、非同期リセット付フリップフロップ回路の非同期リセット用のパルス信号を生成するパルス生成回路を、論理反転回路と遅延回路と論理積回路とで比較的簡単に構成することができる。
【００２９】
ところで、上記の遅延回路を含むパルス生成回路の場合には、半導体集積回路の動作条件（電源電圧、温度など）が変動すると、遅延回路の遅延時間が変動し、かつその変動が非同期リセット付フリップフロップ回路のリセットに要する時間の変動と必ずしも一致しない。そのため、動作が不安定になるという課題が生じる。
【００３０】
この課題を解決するに好ましい態様として、次のものを挙げることができる。なお、これについては、後述する実施の形態２の図７を参照するとよい。以下、理解を助けるため、図７で用いる参照符号を括弧書きで併記するが、本発明はこのような記述の仕方によって後述の実施の形態に限定されるものではない。
【００３１】
その好ましい態様とは、前記のパルス生成回路が次のように構成されていることである。すなわち、スキャンクロック（１１２）の立ち上がりに同期してセットされ、パルス生成回路の出力によって非同期リセットされる第２の非同期リセット付フリップフロップ回路（７９）と、前記スキャンクロック（１１２）の立ち上がりに同期して値を反転するフリップフロップ回路（７１０）と、前記フリップフロップ回路（７１０）の出力の論理反転と前記スキャンクロック（１１２）の論理反転との論理積の立ち上がりに同期してセットされる少なくとも１つの第３の非同期リセット付フリップフロップ回路（７１１，７１３）と、前記フリップフロップ回路（７１０）の出力と前記スキャンクロック（１１２）の論理反転との論理積の立ち上がりに同期してセットされる少なくとも１つの第４の非同期リセット付フリップフロップ回路（７１２，７１４）とを有する構成とされている。
【００３２】
そして、前記第３の非同期リセット付フリップフロップ回路のうちの１段目（７１１）は前記第２の非同期リセット付フリップフロップ回路（７９）の出力の論理反転と前記フリップフロップ回路（７１０）の出力と前記スキャンクロック（１１２）の論理反転との論理積によって非同期リセットされ、２段目（７１３）以降は前段の前記第３の非同期リセット付フリップフロップ回路（７１１）の出力の論理反転と前記フリップフロップ回路（７１０）の出力と前記スキャンクロック（１１２）の論理反転との論理積によって非同期リセットされるように構成されている。
【００３３】
また、前記第４の非同期リセット付フリップフロップ回路のうちの１段目（７１２）は前記第２の非同期リセット付フリップフロップ回路（７９）の出力の論理反転と前記フリップフロップ回路（７１０）の出力の論理反転と前記スキャンクロック（１１２）の論理反転との論理積によって非同期リセットされ、２段目（７１４）以降は前段の前記第４の非同期リセット付フリップフロップ回路（７１２）の出力の論理反転と前記フリップフロップ回路（７１０）の出力の論理反転と前記スキャンクロック（１１２）の論理反転との論理積によって非同期リセットされるように構成されている。
【００３４】
さらに、最終段の前記第３の非同期リセット付フリップフロップ回路（７１３）の出力と前記フリップフロップ回路（７１０）の出力と前記スキャンクロック（１１２）の論理反転の論理積と、最終段の前記第４の非同期リセット付フリップフロップ回路（７１４）の出力と前記フリップフロップ回路（７１０）の出力の論理反転と前記スキャンクロック（１１２）の論理反転の論理積との論理和を前記非同期リセット用のパルス信号として出力するように構成されている。
【００３５】
これによれば、非同期リセット付フリップフロップ回路を多段接続しているので非同期リセット用のパルス信号のパルス幅を十分に大きなものにすることができ、半導体集積回路の動作条件（電源電圧、温度など）が変動しても、第２のクロック信号を出力する第１の非同期リセット付フリップフロップ回路の動作を安定させることができる。
【００３６】
また、スキャンクロックの立ち上がりに同期して値を反転するフリップフロップ回路（７１０）を用いて、２系統（７１１，７１３側と７１２，７１４側）の遅延伝達の経路において非同期リセット付フリップフロップ回路を１サイクル毎にセットと非同期リセットとに排他的に使い分けることにより、セットのためのクロック入力とリセットのための非同期リセット入力の信号間に十分な間隔を設けることができる。これにより、設計の容易性と動作の安定を実現できる。
【００３７】
上記において好ましい態様は、前記のパルス生成回路において、前記第２の非同期リセット付フリップフロップ回路と前記第３の非同期リセット付フリップフロップ回路と前記第４の非同期リセット付フリップフロップ回路が前記第１の非同期リセット付フリップフロップ回路と同一の回路構成とされていることである。
【００３８】
これによれば、非同期リセット用のパルス信号のパルス幅を、１つの非同期リセット付フリップフロップ回路における非同期リセット入力からデータ出力に伝達する遅延時間の整数倍にすることができ、さらなる設計の容易性と動作の安定を実現できる。
【００３９】
そして、パルス生成回路における非同期リセット付フリップフロップ回路の段数を増減することで非同期リセット用のパルス信号のパルス幅を、前記遅延時間を単位として短縮または伸長することが容易に可能である。段数については、使用する非同期リセット付フリップフロップ回路の回路特性に合わせて選択すればよい。
【００４２】
また、別の好ましい態様として、次のものを挙げることができる。なお、これについては、後述する実施の形態４の図１３を参照するとよい。すなわち、前記パルス生成回路が、前記スキャンクロック（１１２）の立ち下がりに同期してセットされ、外部入力によって非同期リセットされる第２の非同期リセット付フリップフロップ回路（１３０１）を備え、前記第２の非同期リセット付フリップフロップ回路の出力を前記非同期リセット用のパルス信号（１１８）として出力することである。なお、ここでの第２の非同期リセット付フリップフロップ回路の「第２の」というのは、請求項１の第１の非同期リセット付フリップフロップ回路の「第１の」と区別するためのものであり、請求項４の「第１の」とは無関係である。
【００４３】
この場合、非同期リセット用のパルス信号のパルス幅を外部入力のタイミング調整によって可変することができる。したがって、半導体集積回路の動作条件（電源電圧、温度など）が変動しても、第２のクロック信号を出力する第１の非同期リセット付フリップフロップ回路の動作を安定させることができる。また、そのためのパルス生成回路の回路構成が比較的簡単なものですむ。
【００４４】
上記の外部入力によって非同期リセットされる第２の非同期リセット付フリップフロップ回路を備えたパルス生成回路について、さらに好ましい態様は、前記外部入力が、前記第１のクロック信号および前記第２のクロック信号を入力するスキャンチェインを構成するフリップフロップ回路群のスキャンシフト制御端子に接続されることである。
【００４５】
スキャンチェインを構成するフリップフロップ回路群には、そのスキャンテストのためにスキャンシフト制御信号を供給する必要があるが、このスキャンシフト制御信号を前記の外部入力から生成する。その外部入力で第２の非同期リセット付フリップフロップ回路を非同期リセットすることで非同期リセット用のパルス信号を生成するので、非同期リセット用のパルス信号のパルス幅を可変するのに、特別な外部入力を増やす必要がなく、回路構成を簡略化できる。
【００５０】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００５１】
（実施の形態１）
図１は、本発明の実施の形態１のマイクロプロセッサの特にクロック生成回路を中心とした構成を示すブロック図である。このマイクロプロセッサにおいては、２種類の周波数のクロックで駆動されるフリップフロップ回路（ＦＦ回路）を使った論理回路を用いて動作性能および消費電力の効率化を図っている。
【００５２】
図１において、１１はクロック生成回路であり、クロック発生源であるＰＬＬ（Phase Locked Loop）回路１２の出力する高周波数のクロックを伝達する第１のクロック信号Ａ１３とその１／２の周波数のクロックを伝達する第２のクロック信号Ｂ１４を生成する。第１のクロック信号Ａ１３と第２のクロック信号Ｂ１４は、各々マイクロプロセッサを構成する第１のＦＦ群Ａ１５と第２のＦＦ群Ｂ１６に接続されて各々の内部のＦＦ回路を駆動する。各ＦＦ群の出力は組合せ回路１７に入力し、その出力が第１のＦＦ群Ａ１５および第２のＦＦ群Ｂ１６にラッチされることによって、マイクロプロセッサとしての様々な機能を実現する構成となっている。
【００５３】
組合せ回路１７では、第１のＦＦ群Ａ１５の出力が第２のＦＦ群Ｂ１６の入力に論理的に接続されている個所があり、同時に第２のＦＦ群Ｂ１６の出力が第１のＦＦ群Ａ１５の入力に論理的に接続されている個所もある。このことから、そのような論理個所において第１のＦＦ群Ａ１５および第２のＦＦ群Ｂ１６内のＦＦ回路がミスラッチ（ホールドタイミングエラー）を発生しないためには、第１のクロック信号Ａ１３と第２のクロック信号Ｂ１４の立ち上がりエッジの位相が精度良く合わせられていることが望まれる。
【００５４】
図２に、第１のＦＦ群Ａ１５および第２のＦＦ群Ｂ１６の内部の構成を示している。ＦＦ群を構成する各ＦＦ回路２１は、通常のクロック入力（ＣＫ）とデータ入力（Ｄ）、データ出力（Ｑ）に加えて、スキャンテストのためのスキャンシフトデータ入力（ＤＴ）、スキャンシフト制御信号（ＮＴ）の各端子を持ち、スキャンシフト制御信号端子（ＮＴ）が「０」のレベルの場合にはデータ入力（Ｄ）の値を、スキャンシフト制御信号端子（ＮＴ）が「１」のレベルの場合にはスキャンシフトデータ入力（ＤＴ）の値をクロック入力（ＣＫ）の立ち上がりエッジに同期してラッチし、データ出力（Ｑ）に出力する。
【００５５】
各ＦＦ回路２１のクロック入力（ＣＫ）およびスキャンシフト制御信号端子（ＮＴ）には、第１のＦＦ群Ａ１５および第２のＦＦ群Ｂ１６に入力する第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４およびスキャンシフト制御信号１１９が接続され、データ入力（Ｄ）とデータ出力（Ｑ）はＦＦ群のデータ入出力として使用される。スキャンシフトデータ入力（ＤＴ）には隣接するＦＦ回路２１のデータ出力（Ｑ）を接続することによってＦＦ回路２１をチェインにつなぎ、チェイン先頭のＦＦ回路２１のスキャンシフトデータ入力（ＤＴ）にはＦＦ群のスキャン入力を接続し、また、末端のＦＦ回路２１のデータ出力（Ｑ）をＦＦ群のスキャン出力に接続することでスキャンチェインを構成している。
【００５６】
なお、この図には記載されていないが、各ＦＦ回路２１に接続されるクロック信号については、その遅延および位相を制御するためにクロックツリー構成のようなバッファー回路が挿入される。
【００５７】
次に、本実施の形態において特徴的な構成となっているクロック生成回路１１の構成を説明する。
【００５８】
クロック生成回路１１は、ＰＬＬ回路１２の出力する高周波数のクロックを第１のクロック信号Ａ１３に供給するのに加えて、その１／２の周波数のクロックを第２のクロック信号Ｂ１４に供給するために、ＰＬＬ回路１２の出力は１／２分周器１１３へと接続され、その出力は論理和ゲート１１４を通って、非同期リセット付ＦＦ回路よりなるクロック出力ＦＦ１１１のデータ入力（Ｄ）に接続される。ＰＬＬ回路１２の出力は、さらにスキャンクロック選択回路１１５を経て等価遅延回路１１０とクロック出力ＦＦ１１１のクロック入力（ＣＫ）に入力し、等価遅延回路１１０の出力およびクロック出力ＦＦ１１１のデータ出力（Ｑ）が各々第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４として供給される。この等価遅延回路１１０は、その入力から出力までの遅延がクロック出力ＦＦ１１１のクロック入力（ＣＫ）からデータ出力（Ｑ）への遅延と等価なものになるように設計され、これによって、第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４の位相が合う構成となっている。なお、等価遅延回路１１０は、その回路およびトランジスタなどの物理的な大きさと配置などもクロック出力ＦＦ１１１と同様な構成とすることにより、等価な遅延を実現されている。
【００５９】
スキャンテストを行う時（スキャンテストモード）には、ＬＳＩの外部入力によって第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４を制御することが必要となるが、このために、第１の外部入力Ａ１１６によって制御されるスキャンクロック信号１１２がクロック生成回路１１に入力している。すなわち、スキャンクロック信号１１２はスキャンテストモード信号１９によって制御されるスキャンクロック選択回路１１５において選択され、等価遅延回路１１０とクロック出力ＦＦ１１１のクロック入力（ＣＫ）に入力し、各出力が第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４として供給される構成となっている。スキャンテストモードにおいては、スキャンテストモード信号１９を「１」のレベルにすることによって、論理和ゲート１１４を経てクロック出力ＦＦ１１１のデータ入力（Ｄ）を「１」のレベルに固定している。さらに、スキャンクロック信号１１２を入力するパルス生成回路１１７は、スキャンクロック信号１１２の立ち下がりエッジに同期した非同期リセット用のパルス信号１１８を出力して、これをクロック出力ＦＦ１１１の非同期リセット入力（Ｒ）に接続する構成となっている。
【００６０】
図３に、ここで用いているパルス生成回路１１７の内部構成を示す。これは、スキャンクロック信号１１２を論理反転回路３１および多段のゲート遅延等を用いた遅延回路３２に入力し、それらの出力を論理積回路３３に入力する構成である。スキャンクロック信号１１２の立ち下がりから遅延回路３２の遅延時間に相当する幅を持った「１」のレベルのパルスが生成され、非同期リセット用のパルス信号１１８に出力される。この遅延回路３２の遅延時間としては、これによって生成されるパルスの幅がクロック出力ＦＦ１１１を非同期にリセットするのに十分な時間が確保されるよう調整する。
【００６１】
以下、上記のように構成されたクロック生成回路１１において、その動作を説明する。
【００６２】
まず、スキャンテストを行わない通常動作時（スキャンテストモード信号１９が「０」のレベル）の動作を説明する。
【００６３】
図４は、通常動作時のＰＬＬ回路１２、１／２分周器１１３、および第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４の出力波形を示している。１／２分周器１１３の出力には、ＰＬＬ回路１２の出力の１／２の周波数で１／２分周器１１３に固有の遅延時間分遅れた波形が出力される。クロック出力ＦＦ１１１は、この１／２分周器１１３の出力をＰＬＬ回路１２の出力のクロックの立ち上がりエッジに同期してラッチする構成となっているため、その出力である第２のクロック信号Ｂ１４にはＰＬＬ回路１２の１／２の周波数でクロック出力ＦＦ１１１の遅延時間分遅れた波形が出力される。ただし、位相的には１／２分周器１１３の出力よりＰＬＬ回路１２の出力クロックの１周期分遅れた波形になる。
【００６４】
これに対して、クロック出力ＦＦ１１１のクロック入力（ＣＫ）からデータ出力（Ｑ）への遅延と等価な遅延時間を持つ等価遅延回路１１０を通して第１のクロック信号Ａ１３を生成していることから、第２のクロック信号Ｂ１４と位相の揃ったクロックを第１のクロック信号Ａ１３に供給することが可能となっている。
【００６５】
次に、スキャンテストモードを行う場合（スキャンテストモード信号１９が「１」のレベル）の動作を説明する。スキャンテストモードにおいては、ＬＳＩ外部から制御可能な第１の外部入力Ａ１１６がスキャンテスト制御回路１８を経てスキャンクロック信号１１２としてクロック生成回路１１に入力する。図５は、この場合の動作時のスキャンクロック信号１１２、それを用いてパルス生成回路１１７で生成される非同期リセット用のパルス信号１１８、第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４の出力波形を示している。非同期リセット用のパルス信号１１８には、スキャンクロック信号１１２の立ち下がりからわずかに遅れて「１」のレベルとなった後、「０」のレベルに再び戻る波形が出力される。この「１」のレベルを出力する期間は、パルス生成回路１１７内の遅延回路３２の遅延値によって決まる。スキャンテストモードでは、スキャンテストモード信号１９が「１」となり、クロック出力ＦＦ１１１のデータ入力（Ｄ）が「１」に固定される。したがって、クロック出力ＦＦ１１１は、スキャンクロック選択回路１１５において選択されたスキャンクロック信号１１２の立ち上がりのタイミングで常に「１」のレベルをラッチすることになるため、その出力である第２のクロック信号Ｂ１４にはスキャンクロック信号１１２の立ち上がりに同期して「１」のレベルが出力される。
【００６６】
しかし、クロック出力ＦＦ１１１はその非同期リセット入力（Ｒ）に入力する非同期リセット用のパルス信号１１８によってリセットされることから、スキャンクロック信号１１２の立ち下がりからわずかに遅れた時点で「０」のレベルに遷移する波形となり、その結果、第２のクロック信号Ｂ１４にスキャンクロック信号１１２と同周波数のクロックを出力する。また、第１のクロック信号Ａ１３には、スキャンクロック選択回路１１５において選択されたスキャンクロック信号１１２がクロック出力ＦＦ１１１のクロック入力（ＣＫ）からデータ出力（Ｑ）と等価な遅延をもって出力されるため、第１のクロック信号Ａ１３と第２のクロック信号Ｂ１４には同周波数かつ立ち上がりエッジの位相が揃ったクロックが供給される。
【００６７】
なお、スキャンテストモードにおいては、スキャンシフト制御信号１１９が第２の外部入力Ｂ１２０を通してＬＳＩ外部から制御可能な構成となっている。このスキャンシフト制御信号１１９を図５に示すように、シフトサイクルに「１」のレベルに、キャプチャサイクルに「０」のレベルとなるように制御を行うことによって、シフトサイクルには図２で示したスキャンチェインを通じて各ＦＦ回路２１の値をＬＳＩ外部に入／出力し、キャプチャサイクルには組合せ回路１７の出力を各ＦＦ回路２１に取り込むというスキャンテストの動作を行うことができる。
【００６８】
以上のように、本実施の形態におけるクロック生成回路１１においては、ＰＬＬ回路１２の出力を１／２分周してクロック出力ＦＦ１１１によってラッチしたものを第２のクロック信号Ｂ１４として出力し、また、ＰＬＬ回路１２の出力するクロックを等価遅延回路１１０を通して第１のクロック信号Ａ１３として出力する構成とすることによって、第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４に位相誤差の少ないクロックを供給することが可能となっている。
【００６９】
本実施の形態においては、分周されたクロックとして１／２分周されたものだけを扱っているが、１／４分周やさらなる分周比の複数のクロックを扱う場合においては、それらの分周器の遅延の大きさにかかわらず、クロック出力ＦＦと等価な遅延を持つ等価遅延回路を用いることによって位相の揃ったクロックを容易に供給することが可能である。また、スキャンテストを行う際においても、上記のように、クロック出力ＦＦ１１１のデータ入力を「１」のレベルに固定し、かつクロックの立ち下がりエッジに同期した非同期リセット用のパルス信号を用いてクロック出力ＦＦ１１１を非同期にリセットして「０」レベルに遷移させる構成とすることによって、スキャンテストの場合においても特に立ち上がりエッジの位相の揃ったクロックを第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４に供給することが可能であり、スキャンテストのための多重の位相の合わせ込みを行う必要をなくすことができる。また、各クロック信号の位相差に影響を及ぼす経路については、クロック出力ＦＦ１１１と等価遅延回路１１０のみで選択回路が存在しない構成となっていることから、位相の精度に悪影響を受けることなく設計することがさらに容易となっている。
【００７０】
（実施の形態２）
ところで、上記の実施の形態１におけるパルス生成回路１１７（図３）の場合には、非同期リセット用のパルス信号１１８のパルス幅の決定に、多段のゲート遅延等を用いた遅延回路３２が使用されているが、ＬＳＩを動作させる条件（電源電圧、温度など）が変動すると、遅延回路３２の遅延時間が大きく変動し、かつその変動がクロック出力ＦＦ１１１のリセットに要する時間の変動と必ずしも一致しない。そのため、動作が不安定になるという課題が生じる。したがって、安定して動作することを保証するためにはパルス幅を大きくなるように設計することが必要となる。実施の形態２は、この課題に対処するものである。
【００７１】
図６は、本発明の実施の形態２のマイクロプロセッサの特にクロック生成回路を中心とした構成を示すブロック図である。この実施の形態は、パルス生成回路６１７の構成を除いて実施の形態１の構成と同じである。
【００７２】
図７にここで用いているパルス生成回路６１７の内部構成を示す。また、図８にスキャンテストモードにおけるパルス生成回路６１７の動作時の波形を示す。
【００７３】
このパルス生成回路６１７は、非同期リセット付ＦＦ回路７９，７１１〜７１４を用いて、非同期リセット入力（Ｒ）からデータ出力（Ｑ）に伝達する遅延時間を用いて非同期リセット用のパルス信号１１８が「１」のレベルとなる期間（幅）を生成する回路となっている。ここで使われている非同期リセット付ＦＦ回路７９，７１１〜７１４は、クロック出力ＦＦ１１１と同じ回路構成のものが使用されている。
【００７４】
非同期リセット用のパルス信号１１８はスキャンクロック信号１１２の立ち下がりエッジに同期して「１」のレベルに遷移し、スキャンクロック信号１１２の立ち上がりエッジによって「１」のレベルをラッチしていた非同期リセット付ＦＦ回路７９の出力７４を非同期リセット入力（Ｒ）からデータ出力（Ｑ）に伝達する遅延時間をもって「０」のレベルに遷移させる。この出力７４が「０」のレベルになることで、接続された非同期リセット付ＦＦ回路７１１，７１２の出力７５，７６を非同期リセット入力（Ｒ）からデータ出力（Ｑ）に伝達する遅延時間をもって「０」のレベルに遷移させ、さらにその出力７５，７６に接続された非同期リセット付ＦＦ回路７１３，７１４の出力７７，７８を非同期リセット入力（Ｒ）からデータ出力（Ｑ）に伝達する遅延時間をもって「０」のレベルに遷移させる。ただし、非同期リセット付ＦＦ回路７１１，７１２および非同期リセット付ＦＦ回路７１３，７１４については、あるサイクルにはそのいずれか一方がリセットの対象となるように、毎サイクルに論理が反転する分周ＦＦ回路７１０の出力を用いて排他的に制御される。さらに、非同期リセット付ＦＦ回路７１３，７１４の出力７７，７８は、スキャンクロック信号１１２の論理反転と分周ＦＦ回路７１０の出力論理との論理積をとり、さらに互いの論理和をとることで、スキャンクロック信号１１２の立ち下がりエッジから非同期リセット付ＦＦ回路の非同期リセット入力（Ｒ）からデータ出力（Ｑ）に伝達する遅延時間の３倍に相当する幅を持った「１」のレベルのパルスが生成され、非同期リセット用のパルス信号１１８に出力される。
【００７５】
ここで、この非同期リセット付ＦＦ回路の非同期リセット入力（Ｒ）からデータ出力（Ｑ）に伝達する遅延時間の３倍に相当するパルス幅は、クロック出力ＦＦ１１１をリセットするのに十分な時間をもったパルス幅である。したがって、ＬＳＩを動作させる条件（電源電圧、温度など）が変動した場合においても、非同期リセット用のパルス信号１１８のパルス幅が十分であるので、クロック出力ＦＦ１１１の動作を安定させることができる。
【００７６】
また、分周ＦＦ回路７１０を用いて、２系統の遅延伝達の経路において非同期リセット付ＦＦ回路を１サイクル毎にセットと非同期リセットとに排他的に使い分ける構成とすることによって、セットのためのクロック入力（ＣＫ）とリセットのための非同期リセット入力（Ｒ）の信号間に十分な間隔を設けることとし、設計の容易性と動作の安定を実現している。
【００７７】
なお、本実施の形態のパルス生成回路においては、非同期リセット付ＦＦ回路を７９，７１１，７１３および７９，７１２，７１４と３段直列に接続して、非同期リセット入力（Ｒ）からデータ出力（Ｑ）に伝達する遅延時間の３倍に相当するパルス幅を生成しているが、ここで直列に接続する非同期リセット付ＦＦ回路を増減することでパルス幅を、前記遅延時間を単位として短縮または伸長することが可能であり、使用する非同期リセット付ＦＦ回路の回路特性に合わせて選択することができることは明らかである。
【００７８】
（実施の形態３）
図９は、本発明の実施の形態３のマイクロプロセッサの特にクロック生成回路を中心とした構成を示すブロック図である。この実施の形態は、パルス生成回路９１７の構成を除いて実施の形態１の構成とほぼ同じである。ただし、パルス生成回路９１７はスキャン分周クロック信号９１２を出力して、スキャンクロック信号１１２に代えてスキャンクロック選択回路１１５に入力する構成となっている。
【００７９】
図１０にここで用いているパルス生成回路９１７の内部構成を示し、図１１にスキャンテストモードにおけるパルス生成回路９１７の動作時の波形を示す。このパルス生成回路９１７では、スキャンクロック信号１１２は分周ＦＦ回路１００２に入力して１／２の周波数のクロックをスキャン分周クロック信号９１２に出力する。さらに、分周ＦＦ回路１００２の出力をスキャンクロック信号１１２の立ち下がりエッジに同期してＦＦ回路１００３にラッチすることでスキャンクロック信号１１２を半サイクル分遅延した波形を生成し、この出力１００１の論理反転とスキャンクロック信号１１２の論理積を非同期リセット用のパルス信号１１８に出力する構成となっている。この構成によって、非同期リセット用のパルス信号１１８にはスキャン分周クロック信号９１２の立ち下がりに同期して「１」のレベルを出力し、スキャンクロック信号１１２の半サイクル時間後に「０」に遷移するパルスが出力される。
【００８０】
このように構成されたクロック生成回路９１７においては、スキャンテストを実施する場合にＬＳＩ外部から第１の外部入力Ａ１１６にスキャンテストを行うクロックの２倍の周波数のクロック信号を入力することによって、所定の周波数を第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４に供給することが可能となる。また、ここでは、クロック出力ＦＦ１１１を非同期にリセットするパルス信号１１８のパルス幅はＬＳＩを動作させる条件（電源電圧、温度など）にかかわらず、第１の外部入力Ａ１１６に入力したクロックの半サイクル期間となるため、安定した動作が実現される。
【００８１】
（実施の形態４）
図１２は、本発明の実施の形態４のマイクロプロセッサの特にクロック生成回路を中心とした構成を示すブロック図である。この実施の形態は、パルス生成回路１２１７の構成を除いて実施の形態１の構成とほぼ同じであり、パルス生成回路１２１７はスキャンクロック信号１１２に加えてスキャンシフト制御信号１１９を入力して非同期リセット用のパルス信号１１８を出力する構成となっている。
【００８２】
図１３にここで用いているパルス生成回路１２１７の内部構成を示し、図１４にスキャンテストモードにおけるパルス生成回路１２１７の動作時の波形を示す。このパルス生成回路１２１７では、スキャンクロック信号１１２の論理反転をクロック入力（ＣＫ）に接続し、データ入力（Ｄ）を「１」のレベルに固定した非同期リセット付ＦＦ回路１３０１が非同期リセット用のパルス信号１１８を出力する構成となっている。非同期リセット付ＦＦ回路１３０１は、また、非同期リセット入力（Ｒ）にスキャンシフト制御信号１１９を接続している。
【００８３】
スキャンテストを行う際には、シフトサイクル期間中およびキャプチャサイクル中にスキャンシフト制御信号１１９が図１４の波形となるようにＬＳＩ外部から第２の外部入力Ｂ１２０を制御することによって、非同期リセット用のパルス信号１１８を生成する。すなわち、シフトサイクル、キャプチャサイクルにかかわらず、スキャンクロック信号１１２が「１」のレベルから「０」のレベルへ立ち下がる期間には、スキャンシフト制御信号１１９は「０」のレベルを保ち、これによって非同期リセット付ＦＦ回路１３０１は「１」のレベルをラッチして非同期リセット用のパルス信号１１８を立ち上げる。そして、十分なパルス幅を確保する時間を経た後、スキャンシフト制御信号１１９を「１」のレベルに立ち上げることで、非同期リセット付ＦＦ回路１３０１をリセットして非同期リセット用のパルス信号１１８を「０」のレベルに立ち下げる。
【００８４】
この後、シフトサイクルにおいては、スキャンクロック信号１１２が立ち上がるまでスキャンシフト制御信号１１９の「１」のレベルを保つことで第１のＦＦ群Ａ１５および第２のＦＦ群Ｂ１６におけるスキャンチェインのシフト動作を実行し、その後、スキャンシフト制御信号１１９を「０」のレベルに戻すよう制御する。一方、キャプチャサイクルにおいては、スキャンクロック信号１１２が立ち上がる以前にスキャンシフト制御信号１１９を「０」のレベルに立ち下げるよう制御することで、第１のＦＦ群Ａ１５および第２のＦＦ群Ｂ１６における取り込み動作を実行することができる。
【００８５】
このように構成されたクロック生成回路１１においては、非同期リセット用のパルス信号１１８に「１」のレベルを出力する期間（パルス幅）をＬＳＩ外部から第２の外部入力Ｂ１２０に入力する波形を調整することによって変化させることが可能である。したがって、ＬＳＩを動作させる条件（電源電圧、温度など）に合わせて最適なパルス幅を選択することが可能となり、安定した動作を実現することができる。さらに、この構成においては、非同期リセット用のパルス信号１１８をＬＳＩ外部から生成するのに第２の外部入力Ｂ１２０を使用することによって、そのための外部入力を増やすことなくパルス幅をＬＳＩ外部から調整可能なクロック生成回路を実現している。
【００８６】
（実施の形態５）
本発明の実施の形態５は、クロック生成回路が２つのクロック信号の位相の合わせ込みを行う機能をもたない場合でも、ＦＦ群のスキャンテストを正しく動作させるものである。
【００８７】
図１５は、本発明の実施の形態５のマイクロプロセッサの特にクロック生成回路を中心とした構成を示すブロック図である。この実施の形態は、第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４に各々独立したクロック発生源としてのＰＬＬ回路Ａ１２、ＰＬＬ回路Ｂ１５１２の出力するクロックが供給されて、第１のＦＦ群Ａ１５および第２のＦＦ群Ｂ１５１６を駆動するという点で実施の形態１と異なっている。
【００８８】
ここで、ＰＬＬ回路Ａ１２とＰＬＬ回路Ｂ１５１２は発振する周波数が異なり、また独立して動作している。また、実際の回路においては、ＰＬＬ回路Ａ１２から第１のクロック信号Ａ１３までに至る経路とＰＬＬ回路Ｂ１５１２から第２のクロック信号Ｂ１４までに至る経路とが回路的に同等とはなっていない。このような理由で、第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４の位相が一致することは保証されていない。
【００８９】
図１５の組合せ回路１５１７の論理においては、第１のＦＦ群Ａ１５の出力が論理的に第２のＦＦ群Ｂ１５１６の入力に接続されることはないが、第２のＦＦ群Ｂ１５１６のいくつかのＦＦ回路の出力は論理的に第１のＦＦ群Ａ１５の入力の一部に接続される構成となっている。したがって、第２のＦＦ群Ｂ１５１６の出力する信号が第１のクロック信号Ａ１３が立ち上がる近傍において変化し、第１のＦＦ群Ａ１５のＦＦ回路においてラッチされる値がいずれになるかを予測することができない場合が生じるが、組合せ回路１５１７は、たとえそのような場合においても、マイクロプロセッサとして機能的に誤動作を引き起こさないよう設計されている。
【００９０】
このような構成のマイクロプロセッサにおいてスキャンテストを行うために、スキャンテストモードにおいては、クロック生成回路１５１１のスキャンクロック選択回路Ａ１１５およびスキャンクロック選択回路Ｂ１５１５は、スキャンクロック信号１１２を選択して第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４に供給する構成となっている。
【００９１】
ここでは、スキャンクロック信号１１２から第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４に至る経路についても、ＰＬＬ回路Ａ１２とＰＬＬ回路Ｂ１５１２からの経路と同様に、両経路が同等な回路とはなっておらず、遅延調整を行って位相を揃えるための遅延回路等は挿入されておらず、位相差のあるクロックをそのまま第１のクロック信号Ａ１３および第２のクロック信号Ｂ１４に出力する構成となっている。
【００９２】
しかしながら、スキャンテストにおいては、上記のように、第２のＦＦ群Ｂ１５１６の出力する信号が第１のクロック信号Ａ１３が立ち上がる近傍において変化して第１のＦＦ群Ａ１５おいてラッチされる値が予測できないような状況ではスキャンテストを正しく動作させることはできず、回路内のすべてのＦＦ回路においてラッチされる値を正確に予測可能なものとする必要がある。
【００９３】
この目的のために、第２のＦＦ群Ｂ１５１６のスキャンチェインに接続されてスキャンテスト時には任意の値をシフトサイクルを通じて設定することが可能なスキャン制御ＦＦ回路１５０１が設けられている。このスキャン制御ＦＦ回路１５０１は、第１のクロック信号Ａ１３と第２のクロック信号Ｂ１４に位相差がある状態でスキャンテストを正しく行うために設けてある。
【００９４】
スキャン制御ＦＦ回路１５０１は、スキャンテストモードでない時には常時「０」のレベルを設定するために非同期リセット入力（Ｒ）にスキャンテストモード信号１９の論理反転が接続され、また、スキャン制御ＦＦ回路１５０１は、第２のＦＦ群Ｂ１５１６のスキャンチェインに接続されており、スキャンテストモード時にはシフトサイクルを通じて任意の値を設定することが可能なフリップフロップとなっている。さらに、そのデータ入力（Ｄ）にデータ出力（Ｑ）を直結することで、スキャンテストモードのキャプチャサイクルには常に値を保持する構成となっている。
【００９５】
スキャン制御ＦＦ回路１５０１と第２のＦＦ群Ｂ１５１６との関係は、スキャン制御ＦＦ回路１５０１の出力（Ｑ）の論理反転とスキャンテストモード信号１９とを論理積回路１５０３を介して第２のＦＦ群Ｂ１５１６のロウホールド端子（ＬＨ）に供給するように構成されている。これによって、キャプチャサイクルにおいて、このスキャン制御ＦＦ回路１５０１の出力（Ｑ）が「０」のレベルの場合には、図１６に示す第２のＦＦ群Ｂ１５１６内のＦＦ回路のうち、その出力が組合せ回路１５１７を経て第１のＦＦ群Ａ１５に論理的に接続するＦＦ回路１６０１については、データ選択回路１６０２によってその値を保持するように構成されている。これにより、第１のＦＦ群Ａ１５に入力する信号(Ｄ)が第１のクロック信号Ａ１３が立ち上がる近傍において変化することがないことが保証される。
【００９６】
スキャン制御ＦＦ回路１５０１と第１のＦＦ群Ａ１５との関係は、スキャン制御ＦＦ回路１５０１の出力（Ｑ）とスキャンシフト制御信号１１９とを論理和回路１５０２を介して第１のＦＦ群Ａ１５のスキャンシフト制御信号端子（ＮＴ）に供給するように構成されている。これによって、シフトサイクルにスキャンシフトを行う場合に加えて、キャプチャサイクルにおいてスキャン制御ＦＦ回路１５０１の出力が「１」のレベルの場合にも、第１のＦＦ群Ａ１５内のＦＦ回路２１のスキャンシフト制御信号端子（ＮＴ）を制御して、組合せ回路１５１７からの入力ではなく第１のＦＦ群Ａ１５内の隣接するＦＦ回路２１の出力（Ｑ）をラッチして取り込む（組合せ回路１５１７からの入力を遮断する）構成となっている。これにより、第１のクロック信号Ａ１３が立ち上がる近傍において変化する第１のＦＦ群Ａ１５に入力する信号(Ｄ)はＦＦ回路２１に取り込まれることがないことが保証される。
【００９７】
図１６は第２のＦＦ群Ｂ１５１６の具体的構成を示す。複数のＦＦ回路のうち、ＦＦ回路２１は一般的なものであり、ＦＦ回路１６０１はその出力が組合せ回路１５１７を経て第１のＦＦ群Ａ１５に論理的に接続するものである。なお、第１のＦＦ群Ａ１５の場合には、ＦＦ回路１６０１およびデータ選択回路１６０２がなく、すべてのＦＦ回路がＦＦ回路２１と同様の構成となっている（図２参照）。
【００９８】
ＦＦ回路１６０１に対しては、データ選択回路１６０２が設けられている。データ選択回路１６０２は、ロウホールド端子（ＬＨ）が「０」のときは組合せ回路１５１７の出力を選択し、ロウホールド端子（ＬＨ）が「１」のときはＦＦ回路１６０１のデータ出力（Ｑ）を選択する。データ出力（Ｑ）を選択することは、値の保持を行うことである。
【００９９】
通常動作時には、スキャンテストモード信号１９が「０」であり、論理積回路１５０３の出力は「０」に固定され、第２のＦＦ群Ｂ１５１６のロウホールド端子（ＬＨ）が「０」であるため、データ選択回路１６０２はデータ入力（Ｄ）において組合せ回路１５１７からのデータを入力する状態となる。
【０１００】
スキャンテスト時には、スキャンテストモード信号１９が「１」となり、スキャン制御ＦＦ回路１５０１のリセットが解除される。
【０１０１】
スキャンテスト時のシフトサイクルでは、スキャンシフト制御信号１１９が「１」であり、これが第１のＦＦ群Ａ１５および第２のＦＦ群Ｂ１５１６におけるＦＦ回路、スキャン制御ＦＦ回路１５０１の各スキャンシフト制御信号端子（ＮＴ）に入力される。第１のＦＦ群Ａ１５に対しては論理和回路１５０２を介して入力される。これにより、第１のＦＦ群Ａ１５および第２のＦＦ群Ｂ１５１６において、それぞれのスキャン入力から入力したスキャンテストパターンを順次スキャンシフトする。
【０１０２】
引き続くキャプチャサイクルでは、スキャンシフト制御信号１１９が「０」となり、スキャン制御ＦＦ回路１５０１は、そのデータ出力（Ｑ）をデータ入力（Ｄ）に直結することで、常に同じ値を保持する。すなわち、「１」を保持しているときは、第２のクロック信号Ｂ１４の遷移にかかわりなく、「１」を保持し続け、「０」を保持しているときは、第２のクロック信号Ｂ１４の遷移にかかわりなく、「０」を保持し続ける。
【０１０３】
ここで、キャプチャサイクルにおいて、スキャン制御ＦＦ回路１５０１の出力が「０」のレベルの場合を考えると、論理和回路１５０２の２入力はともに「０」となり、第１のＦＦ群Ａ１５は、そのデータ入力（Ｄ）から組合せ回路１５１７の出力データを取り込む状態となる。同時に、論理積回路１５０３の２入力がともに「１」となり、図１６に示す第２のＦＦ群Ｂ１５１６のロウホールド端子（ＬＨ）が「１」となる。その結果、データ選択回路１６０２は、組合せ回路１５１７につながるデータ入力（Ｄ）は選択せず、ＦＦ回路１６０１のデータ出力（Ｑ）を選択するので、ＦＦ回路１６０１は第２のクロック信号Ｂ１４の遷移にかかわらず、現在の値を保持する。すなわち、第１のＦＦ群Ａ１５のＦＦ回路が組合せ回路１５１７からデータを取り込んでいる状態では、第２のＦＦ群Ｂ１５１６内のＦＦ回路のうち、その出力が組合せ回路１５１７を経て第１のＦＦ群Ａ１５に論理的に接続するＦＦ回路１６０１については、その値を保持する。
【０１０４】
次に、キャプチャサイクルにおいて、スキャン制御ＦＦ回路１５０１の出力が「１」のレベルの場合を考えると、論理和回路１５０２の１入力が「１」となり、第１のＦＦ群Ａ１５は、スキャンモードとなる。同時に、論理積回路１５０３の１入力が「０」となり、第２のＦＦ群Ｂ１５１６のロウホールド端子（ＬＨ）が「０」となる。その結果、データ選択回路１６０２は、組合せ回路１５１７につながるデータ入力（Ｄ）を選択し、ＦＦ回路１６０１は、ＦＦ回路２１と同様に、組合せ回路１５１７からのデータを取り込む。すなわち、第１のＦＦ群Ａ１５のＦＦ回路がスキャンテストパターンをシフトしている状態では、第２のＦＦ群Ｂ１５１６のすべてのＦＦ回路は、組合せ回路１５１７からのデータ取り込みが可能となっている。
【０１０５】
このように、本実施の形態においては、スキャン制御ＦＦ回路１５０１によって、スキャンテストモードのキャプチャサイクルにおける第２のＦＦ群Ｂ１５１６内のＦＦ回路の更新と、第１のＦＦ群Ａ１５内のＦＦ回路における組合せ回路１５１７の出力の取り込み（すなわち、第２のＦＦ群Ｂ１５１６内のＦＦ回路の保持と、第１のＦＦ群Ａ１５内のＦＦ回路における組合せ回路１５１７からの入力の遮断）を排他的に行うようにしている。すなわち、第１のクロック信号Ａ１３が立ち上がって第１のＦＦ群Ａ１５が組合せ回路１５１７の出力をラッチする近傍においては、第２のＦＦ群Ｂ１５１６の出力する信号は変化をさせない。また、第２のＦＦ群Ｂ１５１６内のＦＦ回路が組合せ回路１５１７の出力を取り込んで値を更新するキャプチャサイクルにおいては、その変化した値を第１のＦＦ群Ａ１５がラッチしないことが保証されている。したがって、この構成によれば、第１のクロック信号Ａ１３と第２のクロック信号Ｂ１４の位相の合わせ込みを行わない状態においてもスキャンテストを正しく動作させることが可能となる。
【０１０６】
なお、本実施の形態においては第１のＦＦ群Ａ１５の出力が論理的に第２のＦＦ群Ｂ１５１６の入力に接続されない構成としているが、第１のＦＦ群Ａ１５の出力が論理的に第２のＦＦ群Ｂ１５１６の入力に接続されている場合においても、第１のＦＦ群Ａ１５の構成をキャプチャサイクルにスキャン制御ＦＦ回路１５０１の出力が「１」のレベルの時にはその値を保持するようにすることで、スキャンテストを正しく動作させることが可能なことは明らかである。
【０１０７】
【発明の効果】
以上のように本発明のクロック生成回路によれば、スキャンテストのためのクロック供給を行う場合においても、複数の経路を持つクロックに対して位相の合わせ込みを簡単な回路構成で容易に実現することができる。
【０１０８】
また、非同期リセット付フリップフロップ回路の多段接続でパルス生成回路を構成することにより、非同期リセット用のパルス信号のパルス幅を十分に大きなものにし、半導体集積回路の動作条件（電源電圧、温度など）が変動しても、クロック信号位相の合わせ込みを安定させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１のマイクロプロセッサの特にクロック生成回路を中心とした構成図
【図２】同実施の形態１におけるＦＦ群の内部構成図
【図３】同実施の形態１におけるパルス生成回路の内部構成図
【図４】同実施の形態１におけるスキャンテストモード以外の場合のクロック信号などの出力波形図
【図５】同実施の形態１におけるスキャンテストモードの場合のクロック信号などの出力波形図
【図６】本発明の実施の形態２のマイクロプロセッサの特にクロック生成回路を中心とした構成図
【図７】同実施の形態２におけるパルス生成回路の内部構成図
【図８】同実施の形態２におけるスキャンテストモードの場合のクロック信号などの出力波形図
【図９】本発明の実施の形態３のマイクロプロセッサの特にクロック生成回路を中心とした構成図
【図１０】同実施の形態３におけるパルス生成回路の内部構成図
【図１１】同実施の形態３におけるスキャンテストモードの場合のクロック信号などの出力波形図
【図１２】本発明の実施の形態４のマイクロプロセッサの特にクロック生成回路を中心とした構成図
【図１３】同実施の形態４におけるパルス生成回路の内部構成図
【図１４】同実施の形態４におけるスキャンテストモードの場合のクロック信号などの出力波形図
【図１５】本発明の実施の形態５のマイクロプロセッサの特にクロック生成回路を中心とした構成図
【図１６】同実施の形態５におけるＦＦ群の内部構成図
【図１７】従来例のマイクロプロセッサの特にクロック生成回路を中心とした構成図
【符号の説明】
１１ クロック生成回路
１２ ＰＬＬ回路（クロック発生源）
１３ 第１のクロック信号Ａ
１４ 第２のクロック信号Ｂ
１５ 第１のＦＦ群Ａ
１６ 第１のＦＦ群Ｂ
１７ 組合せ回路
１８ スキャンテスト制御回路
１９ スキャンテストモード信号
３２ 遅延回路
１１０ 等価遅延回路
１１１ クロック出力ＦＦ(第１の非同期リセット付フリップフロップ回路)
１１２ スキャンクロック信号
１１３ １／２分周器
１１５ スキャンクロック選択回路
１１６ 第１の外部入力Ａ
１１７ パルス生成回路
１１８ 非同期リセット用のパルス信号
１１９ スキャンシフト制御信号
１２０ 第２の外部入力Ｂ
６１７ パルス生成回路
９１７ パルス生成回路
１２１７ パルス生成回路
１５０１ スキャン制御ＦＦ回路
１５１２ ＰＬＬ回路（クロック発生源）
１５１５ スキャンクロック選択回路
１５１６ 第２のＦＦ群Ｂ
１５１７ 組合せ回路
【図１】
0004342141.tif 000002
【図２】
0004342141.tif 000003
【図３】
0004342141.tif 000004
【図４】
0004342141.tif 000005
【図５】
0004342141.tif 000006
【図６】
0004342141.tif 000007
【図７】
0004342141.tif 000008
【図８】
0004342141.tif 000009
【図９】
0004342141.tif 000010
【図１０】
0004342141.tif 000011
【図１１】
0004342141.tif 000012
【図１２】
0004342141.tif 000013
【図１３】
0004342141.tif 000014
【図１４】
0004342141.tif 000015
【図１５】
0004342141.tif 000016
【図１６】
0004342141.tif 000017
【図１７】
0004342141.tif 000018