(57)【要約】【課題】回路規模の増大を抑制することが可能な半導体集積回路を提供すること。【解決手段】本発明にかかる半導体集積回路は、高速のクロック信号ＣＬＫＡ，ＣＬＫＢと、低速のテストクロック信号ＴＣＬＫと、を生成するクロック生成回路１１と、機能ブロック１３と、を備える。機能ブロック１３は、クロック信号ＣＬＫＡ及びテストクロック信号ＴＣＬＫの何れかを動作モードに応じて選択的に出力する選択回路ＳＥＬ１１と、選択回路ＳＥＬ１１から出力されたクロック信号に同期して動作するフリップフロップ回路ＦＦ１１を有する論理回路１３１と、クロック信号ＣＬＫＢ及びテストクロック信号ＴＣＬＫの何れかを動作モードに応じて選択的に出力する選択回路ＳＥＬ１２と、選択回路ＳＥＬ１２から出力されたクロック信号に同期して動作するフリップフロップ回路ＦＦ１２，ＦＦ１３を有する論理回路１３２と、を有する。【選択図】図３
2013145135.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２クロック信号と、前記第１及び前記第２クロック信号より低速のテストクロック信号と、を生成するクロック生成回路と、
機能ブロックと、を備え、
前記機能ブロックは、
前記第１クロック信号及び前記テストクロック信号の何れかを動作モードに応じて選択的に出力する第１選択回路と、
前記第１選択回路から出力されたクロック信号に同期して動作する第１フリップフロップを有する第１論理回路と、
前記第２クロック信号及び前記テストクロック信号の何れかを前記動作モードに応じて選択的に出力する第２選択回路と、
前記第２選択回路から出力されたクロック信号に同期して動作する第２フリップフロップを有する第２論理回路と、を有する半導体集積回路。
【請求項２】
外部から供給されるモード信号に応じた制御信号を出力する制御回路をさらに備え、
前記第１選択回路は、前記制御信号に応じて前記第１クロック信号及び前記テストクロック信号の何れかを選択的に出力し、
前記第２選択回路は、前記制御信号に応じて前記第２クロック信号及び前記テストクロック信号の何れかを選択的に出力することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記制御回路は、第１テストモードの場合に、前記第１及び前記第２選択回路がそれぞれ前記テストクロック信号を選択する論理値の前記制御信号を出力し、第２テストモードの場合に、前記第１及び前記第２選択回路がそれぞれ前記第１及び前記第２クロック信号を選択する論理値の前記制御信号を出力することを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記クロック生成回路は、第１テストモードの場合に、所定の論理値に固定された前記第１及び第２クロック信号を生成し、第１テストモードから第２テストモードへの切り替わりに同期して、所定パルス数に限定された前記第１及び前記第２クロック信号を生成することを特徴とする請求項３に記載の半導体集積回路。
【請求項５】
前記制御回路は、第３及び第４テストモードの何れの場合も、前記第１及び前記第２選択回路がそれぞれ前記テストクロック信号を選択する論理値の前記制御信号を出力することを特徴とする請求項２〜４のいずれか一項に記載の半導体集積回路。
【請求項６】
前記クロック生成回路は、第３テストモードの場合に、所定周波数の前記テストクロック信号を生成し、第３テストモードから第４テストモードへの切り替わりに同期して、所定パルス数に限定された前記テストクロック信号を生成することを特徴とする請求項５に記載の半導体集積回路。
【請求項７】
前記制御回路は、通常動作モードの場合に、前記第１及び前記第２選択回路がそれぞれ前記第１及び前記第２クロック信号を選択する論理値の前記制御信号を出力することを特徴とする請求項２〜６のいずれか一項に記載の半導体集積回路。
【請求項８】
前記クロック生成回路は、通常動作モードの場合に、前記テストクロック信号よりも高い所定周波数の前記第１及び前記第２クロック信号を生成することを特徴とする請求項７に記載の半導体集積回路。
【請求項９】
前記機能ブロックは、第１及び第２機能ブロックによって構成され、
前記第１機能ブロックは、
前記第１選択回路及び前記第１論理回路を有し、
前記第２機能ブロックは、
前記第２選択回路及び前記第２論理回路を有する、請求項１〜８のいずれか一項に記載の半導体集積回路。
【請求項１０】
第１及び第２クロック信号と、前記第１及び前記第２クロック信号より低速のテストクロック信号と、を生成するクロック生成回路と、
前記第１クロック信号及び前記テストクロック信号の何れかを動作モードに応じて選択的に出力する第１選択回路と、前記第１選択回路から出力されたクロック信号に同期して動作する第１フリップフロップを有する第１論理回路と、前記第２クロック信号及び前記テストクロック信号の何れかを前記動作モードに応じて選択的に出力する第２選択回路と、前記第２選択回路から出力されたクロック信号に同期して動作する第２フリップフロップを有する第２論理回路と、を有する機能ブロックと、を備えた半導体集積回路のテスト方法であって、
第１テストモードの場合に、前記第１及び前記第２選択回路からそれぞれ前記テストクロック信号を選択的に出力させ、
第２テストモードの場合に、前記第１及び前記第２選択回路からそれぞれ前記第１及び前記第２クロック信号を選択的に出力させる、半導体集積回路のテスト方法。
【請求項１１】
第１テストモードの場合に、前記クロック生成回路から所定の論理値に固定された前記第１及び前記第２クロック信号を出力させ、
第１テストモードから第２テストモードへの切り替わりに同期して、前記クロック生成回路から所定パルス数に限定された前記第１及び前記第２クロック信号を出力させる、請求項１０に記載の半導体集積回路のテスト方法。
【請求項１２】
通常動作モードの場合、前記クロック生成回路から所定周波数の前記第１及び前記第２クロック信号を出力させることを特徴とする請求項１０又は１１に記載の半導体集積回路のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及びそのテスト方法に関する。
【背景技術】
【０００２】
半導体集積回路内に設けられた論理回路の規模の増大、及び、半導体プロセスの微細化に伴い、製造ばらつきや局所的特性変動等に起因して生じる信号伝達速度の変動が無視できないほど大きくなってきている。このような条件下でホールドタイミング制約を満たす設計（マージン設計）を行うには、フリップフロップ回路間のデータライン上に多くの遅延バッファを挿入する必要があるため、回路規模が増大してしまう可能性がある。
【０００３】
ところで、近年の半導体集積回路には、通常動作時に、異なる系統の複数のクロック信号に同期して動作するものが多く存在する。さらに、近年の半導体集積回路には、スキャンテスト等のテスト時に、上記した複数のクロック信号からテスト専用の一つのクロック信号（テストクロック信号）に切り替えて一括して動作するもの（いわゆる、チップ一括スキャン方式の半導体集積回路）が存在する。
【０００４】
関連する技術が特許文献１に開示されている。図２２は、特許文献１に開示されたクロック生成回路を含むマイクロプロセッサの構成を示す図である。図２２に示すクロック生成回路は、通常動作時には、クロック発生源が発生する源クロックと同一周期の第１のクロック信号と、第１クロック信号と異なる周期の１又は複数の第２のクロック信号と、を生成し、スキャンテスト時には、外部入力から生成されるスキャンクロックを供給する。このクロック生成回路は、源クロックとスキャンテストクロックとを選択的に出力する選択回路と、位相調整用の等価遅延回路及びフリップフロップ回路と、を少なくとも備える。それにより、このクロック生成回路は、スキャンテストのためのクロックも含めたクロックの位相調整を容易に行っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２７０３０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記したように、図２２に示すクロック生成回路は、通常動作時に、異なる系統の複数のクロックを生成し、スキャンテスト時に、これら複数のクロックに代えて一つのスキャンテストクロックを生成する。つまり、このクロック生成回路は、通常動作時とスキャンテスト時とでクロックラインを共用している。換言すると、このクロック生成回路とクロック供給先との間には、通常動作用のクロックと、スキャンテスト用のスキャンテストクロックと、が選択的に伝搬する共通のクロックラインが設けられている。
【０００７】
ここで、この従来技術のスキャンテストでは、複数のクロック供給先に供給されるスキャンテストクロックの位相がすべて揃っている必要がある。そのため、この従来技術では、通常動作時に用いられるクロックライン上に、スキャンテストクロックの位相を調整するための余分な遅延素子（等価遅延回路及びフリップフロップ回路）が付加されることとなる。それにより、製造ばらつきや局所的特性変動などに起因して生じるクロックライン上の信号伝達速度の変動が一層大きくなってしまう。
【０００８】
このような条件下でホールドタイミング制約を満たす設計（マージン設計）を行うには、フリップフロップ回路間のデータライン上に非常に多くの遅延素子を挿入する必要があるため、回路規模が増大してしまうという問題があった。
【課題を解決するための手段】
【０００９】
本発明にかかる半導体集積回路は、第１及び第２クロック信号と、前記第１及び前記第２クロック信号より低速のテストクロック信号と、を生成するクロック生成回路と、機能ブロックと、を備え、前記機能ブロックは、前記第１クロック信号及び前記テストクロック信号の何れかを動作モードに応じて選択的に出力する第１選択回路と、前記第１選択回路から出力されたクロック信号に同期して動作する第１フリップフロップを有する第１論理回路と、前記第２クロック信号及び前記テストクロック信号の何れかを前記動作モードに応じて選択的に出力する第２選択回路と、前記第２選択回路から出力されたクロック信号に同期して動作する第２フリップフロップを有する第２論理回路と、を有する。
【００１０】
本発明にかかる半導体集積回路のテスト方法は、第１及び第２クロック信号と、前記第１及び前記第２クロック信号より低速のテストクロック信号と、を生成するクロック生成回路と、前記第１クロック信号及び前記テストクロック信号の何れかを動作モードに応じて選択的に出力する第１選択回路と、前記第１選択回路から出力されたクロック信号に同期して動作する第１フリップフロップを有する第１論理回路と、前記第２クロック信号及び前記テストクロック信号の何れかを前記動作モードに応じて選択的に出力する第２選択回路と、前記第２選択回路から出力されたクロック信号に同期して動作する第２フリップフロップを有する第２論理回路と、を有する機能ブロックと、を備えた半導体集積回路のテスト方法であって、第１テストモードの場合に、前記第１及び前記第２選択回路からそれぞれ前記テストクロック信号を選択的に出力させ、第２テストモードの場合に、前記第１及び前記第２選択回路からそれぞれ前記第１及び前記第２クロック信号を選択的に出力させる。
【００１１】
上述のような回路構成により、フリップフロップ回路間のデータライン上に挿入する遅延素子の数を低減して、回路規模の増大を抑制することができる。
【発明の効果】
【００１２】
本発明により、フリップフロップ回路間のデータライン上に挿入する遅延素子の数を低減して、回路規模の増大を抑制することが可能な半導体集積回路及びその制御方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１にかかる半導体集積回路の構成例を示す図である。
【図２】本発明の実施の形態１にかかる半導体集積回路のテストシステムを示す図である。
【図３】本発明の実施の形態１にかかる機能ブロックの具体的構成例を示す図である。
【図４】本発明の実施の形態１にかかる機能ブロックの具体的構成例を示す図である。
【図５】本発明に至る前の構想にかかる半導体集積回路の構成例を示す図である。
【図６】本発明の実施の形態１にかかる制御回路の具体的構成例を示す図である。
【図７】本発明の実施の形態１にかかる半導体集積回路の動作を示すタイミングチャートである。
【図８】本発明の実施の形態１にかかる制御回路の具体的構成例を示す図である。
【図９】本発明の実施の形態１にかかる半導体集積回路の動作を示すタイミングチャートである。
【図１０】本発明の実施の形態２にかかる半導体集積回路の構成例を示す図である。
【図１１】本発明の実施の形態２にかかる機能ブロックの具体的構成例を示す図である。
【図１２】本発明の実施の形態２にかかる機能ブロックの具体的構成例を示す図である。
【図１３】本発明の実施の形態２にかかる制御回路の具体的構成例を示す図である。
【図１４】本発明の実施の形態２にかかる半導体集積回路の動作を示すタイミングチャートである。
【図１５】本発明の実施の形態２にかかる制御回路の具体的構成例を示す図である。
【図１６】本発明の実施の形態２にかかる半導体集積回路の動作を示すタイミングチャートである。
【図１７】本発明の実施の形態３にかかる制御回路の具体的構成例を示す図である。
【図１８】本発明の実施の形態３にかかる半導体集積回路の動作を示すタイミングチャートである。
【図１９】本発明の実施の形態３にかかる半導体集積回路の動作を示すタイミングチャートである。
【図２０】本発明の実施の形態３にかかる半導体集積回路の動作を示すタイミングチャートである。
【図２１】本発明の実施の形態３にかかる半導体集積回路の動作を示すタイミングチャートである。
【図２２】関連する技術のマイクロプロセッサの構成を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照しつつ、本発明の実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【００１５】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１６】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１７】
実施の形態１
図１は、本発明の実施の形態１にかかる半導体集積回路１の構成例を示す図である。本実施の形態にかかる半導体集積回路１は、機能ブロック（ＩＰモジュール）内に、通常動作用の高速クロック信号とテスト用の低速クロック信号とを動作モードに応じて選択的に出力する選択回路を複数設けている。それにより、本実施の形態にかかる半導体集積回路１は、フリップフロップ回路間のデータライン上に挿入する遅延素子の数を低減して、回路規模の増大を抑制することができる。以下、具体的に説明する。
【００１８】
図１に示す半導体集積回路１は、クロック生成回路１１と、制御回路１２と、機能ブロック１３と、機能ブロック１４と、複数の遅延素子（バッファ）Ｄ１１，Ｄ１２と、を備える。
【００１９】
なお、この半導体集積回路１は、通常動作時に、異なる系統の複数のクロック信号（第１及び第２クロック信号）ＣＬＫＡ，ＣＬＫＢに同期して動作する。さらに、この半導体集積回路１は、テスト時に、上記した複数のクロック信号ＣＬＫＡ，ＣＬＫＢに代えてテスト専用の一つのクロック信号（テストクロック信号）ＴＣＬＫに同期して動作する。それにより、この半導体集積回路１のテストでは、テストパタンの本数を低減して、テストコストの増大を抑制している。
【００２０】
図２は、図１に示す半導体集積回路１のテストシステムを示す図である。被テスト回路である半導体集積回路１は、テストボード１００上に設けられる。テスト装置２００は、電源、テストクロック、テストデータ、モード信号、イネーブル信号等を生成し、半導体集積回路１に供給する。また、テスト装置２００は、半導体集積回路１から出力されたテスト結果を取り込み、期待値と比較する。
【００２１】
図１に戻り、外部端子ＴＣＫには、外部（テスト装置２００）からテストクロック（以下、テストクロックＴＣＫ）が供給される。外部端子ＭＯＤＥには、外部（テスト装置２００）からモード信号（以下、モード信号ＭＯＤＥと称す）が供給される。外部端子ＥＮには、外部（テスト装置２００）からイネーブル信号（以下、イネーブル信号ＥＮと称す）が供給される。なお、図示しないが、当然ながら、外部端子として、データ入力端子やデータ出力端子等も存在する。
【００２２】
クロック生成回路１１は、異なる系統の２つのクロック信号ＣＬＫＡ，ＣＬＫＢを生成する。例えば、クロック生成回路１１は、高速のクロック信号ＣＬＫＡを生成するＰＬＬ回路と、クロック信号ＣＬＫＡを分周してクロック信号ＣＬＫＢを生成する分周回路と、を有する。あるいは、クロック生成回路１１は、高速のクロック信号ＣＬＫＡを生成するＰＬＬ回路と、クロック信号ＣＬＫＡとは異なる位相の高速のクロック信号ＣＬＫＢを生成するＰＬＬ回路と、を有する。あるいは、クロック生成回路１１は、外部から供給されるクロック信号に基づいて２つのクロック信号ＣＬＫＡ，ＣＬＫＢを生成する内部クロック生成部を有する。
【００２３】
さらに、クロック生成回路１１は、テストクロックＴＣＫに基づいてテストクロック信号ＴＣＬＫを生成する。
【００２４】
そして、クロック生成回路１１は、モード信号ＭＯＤＥに基づき、クロック信号ＣＬＫＡ，ＣＬＫＢ及びテストクロック信号ＴＣＬＫを出力する。例えば、クロック生成回路１１は、通常動作（通常動作モード）時に、クロック信号ＣＬＫＡ，ＣＬＫＢをそれぞれ専用のクロックラインＬＡ、ＬＢに向けて出力する。このとき、クロック生成回路１１は、テストクロック信号ＴＣＬＫを専用のクロックラインＬＴに向けて出力する必要はない。また、クロック生成回路１１は、テスト（テストモード）時に、テストクロック信号ＴＣＬＫを専用のクロックラインＬＴに向けて出力する。このとき、クロック生成回路１１は、クロック信号ＣＬＫＡ，ＣＬＫＢをそれぞれ専用のクロックラインＬＡ，ＬＢに向けて出力する必要はない。
【００２５】
制御回路１２は、イネーブル信号ＥＮがアクティブの場合、モード信号ＭＯＤＥに応じた制御信号を出力する。また、制御回路１２は、イネーブル信号ＥＮがインアクティブの場合、モード信号ＭＯＤＥに関わらず、所定の論理値（例えばＬレベル）の制御信号を出力する。以下では、特に断りがない限り、イネーブル信号ＥＮはアクティブであるものとする。
【００２６】
機能ブロック１３は、半導体集積回路１の部分的な回路情報を有するブロックであり、半導体集積回路１の中の一つの機能を実現するブロックである。例えば、機能ブロック１３は、ＩＰ(Intellectual Property)モジュールとも称する。
【００２７】
具体的には、機能ブロック１３は、選択回路（第１選択回路）ＳＥＬ１１と、選択回路（第２選択回路）ＳＥＬ１２と、論理回路（第１論理回路）１３１と、論理回路（第２論理回路）１３２と、を少なくとも有する。論理回路１３１は、複数の組み合わせ回路及び複数の順序回路によって構成される。なお、論理回路１３１に設けられた複数の順序回路は、通常動作時において、クロック信号ＣＬＫＡに同期して動作する。論理回路１３２は、論理回路１３１と同じく、複数の組み合わせ回路及び複数の順序回路によって構成される。なお、論理回路１３２に設けられた複数の順序回路は、通常動作時において、クロック信号ＣＬＫＢに同期して動作する。つまり、論理回路１３１と論理回路１３２とは、通常動作時に、それぞれ異なるクロック信号ＣＬＫＡ，ＣＬＫＢに同期して動作する。
【００２８】
選択回路ＳＥＬ１１では、一方の入力端子がクロックラインＬＡに接続され、他方の入力端子がクロックラインＬＴに接続され、切替制御端子に制御回路１２からの制御信号が供給される。そして、選択回路ＳＥＬ１１は、クロック生成回路１１からクロックラインＬＡを介して供給されたクロック信号ＣＬＫＡと、クロック生成回路１１からクロックラインＬＴを介して供給されたテストクロック信号ＴＣＬＫと、を制御信号に基づき選択的に出力する。
【００２９】
例えば、通常動作モードの場合（制御信号がＬレベルの場合）、選択回路ＳＥＬ１１は、クロック信号ＣＬＫＡを選択して出力する。一方、テストモードの場合（制御信号がＨレベルの場合）、選択回路ＳＥＬ１１は、テストクロック信号ＴＣＬＫを選択して出力する。選択回路ＳＥＬ１１から出力されたクロック信号は、後段の論理回路１３１に供給される。したがって、論理回路１３１は、通常動作時に、クロック信号ＣＬＫＡに同期して動作し、テスト時に、テストクロック信号ＴＣＬＫに同期して動作する。
【００３０】
選択回路ＳＥＬ１２では、一方の入力端子がクロックラインＬＢに接続され、他方の入力端子がクロックラインＬＴに接続され、切替制御端子に制御回路１２からの制御信号が供給される。そして、選択回路ＳＥＬ１２は、クロック生成回路１１からクロックラインＬＢを介して供給されたクロック信号ＣＬＫＢと、クロック生成回路１１からクロックラインＬＴを介して供給されたテストクロック信号ＴＣＬＫと、を制御信号に基づき選択的に出力する。
【００３１】
例えば、通常動作モードの場合、具体的には制御信号がＬレベルの場合、選択回路ＳＥＬ１２は、クロック信号ＣＬＫＢを選択して出力する。一方、テストモードの場合、具タ的には制御信号がＨレベルの場合、選択回路ＳＥＬ１２は、テストクロック信号ＴＣＬＫを選択して出力する。選択回路ＳＥＬ１２から出力されたクロック信号は、後段の論理回路１３２に供給される。したがって、論理回路１３２は、通常動作時に、クロック信号ＣＬＫＢに同期して動作し、テスト時に、テストクロック信号ＴＣＬＫに同期して動作する。
【００３２】
機能ブロック１４は、半導体集積回路１の部分的な回路情報を有するブロックであり、半導体集積回路１の中の一つの機能を実現するブロックである。例えば、機能ブロック１４は、ＩＰ(Intellectual Property)モジュールとも称する。
【００３３】
具体的には、機能ブロック１４は、選択回路ＳＥＬ１３と、論理回路１４１と、を少なくとも有する。論理回路１４１は、複数の組み合わせ回路及び複数の順序回路によって構成される。なお、論理回路１４１に設けられた複数の順序回路は、通常動作時において、クロック信号ＣＬＫＡに同期して動作する。
【００３４】
選択回路ＳＥＬ１３では、一方の入力端子がクロックラインＬＡに接続され、他方の入力端子がクロックラインＬＴに接続され、切替制御端子に制御回路１２からの制御信号が供給される。そして、選択回路ＳＥＬ１３は、クロック生成回路１１からクロックラインＬＡを介して供給されたクロック信号ＣＬＫＡと、クロック生成回路１１からクロックラインＬＴを介して供給されたテストクロック信号ＴＣＬＫと、を制御信号に基づき選択的に出力する。
【００３５】
例えば、通常動作モードの場合（制御信号がＬレベルの場合）、選択回路ＳＥＬ１３は、クロック信号ＣＬＫＡを選択して出力する。一方、テストモードの場合（制御信号がＨレベルの場合）、選択回路ＳＥＬ１３は、テストクロック信号ＴＣＬＫを選択して出力する。選択回路ＳＥＬ１３から出力されたクロック信号は、後段の論理回路１４１に供給される。したがって、論理回路１４１は、通常動作時に、クロック信号ＣＬＫＡに同期して動作し、テスト時に、テストクロック信号ＴＣＬＫに同期して動作する。
【００３６】
また、クロック信号ＣＬＫＡが伝搬するクロックラインＬＡ上には、複数の遅延素子（バッファ）Ｄ１１が設けられている。これら遅延素子Ｄ１１は、通常動作時において、論理回路１３１，１４１内の複数の順序回路に供給されるクロック信号ＣＬＫＡの位相を調整するために設けられたものである。また、クロック信号ＣＬＫＢが伝搬するクロックラインＬＢ上には、複数の遅延素子（バッファ）Ｄ１２が設けられている。これら遅延素子Ｄ１２は、通常動作時において、論理回路１３１内の複数の順序回路に供給されるクロック信号ＣＬＫＢの位相を調整するために設けられたものである。
【００３７】
上記したように、クロック生成回路１１と機能ブロック１３，１４との間には、テストクロック信号ＴＣＬＫが伝搬するクロックラインＬＴと、クロック信号ＣＬＫＡ，ＣＬＫＢがそれぞれ伝搬するクロックラインＬＡ，ＬＢと、が個別に存在する。したがって、クロックラインＬＡ，ＬＢ上には、それぞれクロック信号ＣＬＫＡ，ＣＬＫＢの位相を調整するための遅延素子Ｄ１１，Ｄ１２が設けられるのみであり、テストクロック信号ＴＣＬＫの位相を調整するための遅延素子は設けられていない。つまり、クロックラインＬＡ，ＬＢ上には、テストクロック信号ＴＣＬＫの位相を調整するための余分な遅延素子が付加されていない。そのため、製造ばらつきや局所的特性変動等に起因して生じるクロックラインＬＡ，ＬＢ上の信号伝達速度の変動は増大しない。
【００３８】
図３は、機能ブロック１３のより詳細な構成例を示す図である。図３では、説明の簡略化のため、機能ブロック１３，１４のうち機能ブロック１３の詳細のみを示している。また、図３では、論理回路１３１に設けられた複数の回路のうち、順序回路（第１フリップフロップ回路）ＦＦ１１のみを示している。また、図３では、論理回路１３２に設けられた複数の回路のうち、順序回路（第２フリップフロップ回路）ＦＦ１２，ＦＦ１３、組み合わせ回路Ｃ１２及び遅延素子（バッファ）Ｄ１６のみを示している。なお、組み合わせ回路Ｃ１１及び遅延素子（バッファ）Ｄ１５は、論理回路１３１，１３２の何れに設けられていても良い。
【００３９】
選択回路ＳＥＬ１１から出力されたクロック信号は、論理回路１３１に設けられたフリップフロップ回路ＦＦ１１に供給される。選択回路ＳＥＬ１２から出力されたクロック信号は、論理回路１３２に設けられたフリップフロップ回路ＦＦ１２，ＦＦ１３に供給される。
【００４０】
なお、選択回路ＳＥＬ１１とフリップフロップ回路ＦＦ１１との間のクロックライン上には、複数の遅延素子（バッファ）Ｄ１３が設けられている。これら遅延素子Ｄ１３は、通常動作時及びテスト時において、論理回路１３１内の複数の順序回路（フリップフロップ回路ＦＦ１１を含む）に供給されるクロック信号の位相を調整するために設けられたものである。また、選択回路ＳＥＬ１２とフリップフロップ回路ＦＦ１２，ＦＦ１３との間のクロックライン上には、複数の遅延素子（バッファ）Ｄ１４が設けられている。これら遅延素子Ｄ１４は、通常動作時及びテスト時において、論理回路１３２内の複数の順序回路（フリップフロップ回路ＦＦ１２，ＦＦ１３を含む）に供給されるクロック信号の位相を調整するために設けられたものである。なお、テストクロック信号ＴＣＬＫの位相のみを調整したい場合には、クロックラインＬＴ上に遅延素子をさらに追加すればよい。
【００４１】
例えば、通常動作モードでは、フリップフロップ回路ＦＦ１１は、外部からのデータ或いは前段のフリップフロップ回路からのデータを、クロック信号ＣＬＫＡに同期して取り込んで出力する。フリップフロップ回路ＦＦ１１から出力されたデータは、組み合わせ回路Ｃ１１及び遅延素子（バッファ）Ｄ１５を介して、フリップフロップ回路ＦＦ１２に供給される。そして、フリップフロップ回路ＦＦ１２は、供給されたデータを、クロック信号ＣＬＫＢに同期して取り込んで出力する。フリップフロップ回路ＦＦ１２から出力されたデータは、組み合わせ回路Ｃ１２及び遅延素子（バッファ）Ｄ１６を介して、フリップフロップ回路ＦＦ１３に供給される。そして、フリップフロップ回路ＦＦ１３は、供給されたデータを、クロック信号ＣＬＫＢに同期して取り込んで出力する。
【００４２】
つまり、機能ブロック１３では、異なるクロック信号ＣＬＫＡ，ＣＬＫＢに同期して動作するフリップフロップ回路ＦＦ１１，ＦＦ１２間でデータの受け渡しが行われている。また、機能ブロック１３では、同一のクロック信号ＣＬＫＢに同期して動作するフリップフロップ回路ＦＦ１１，ＦＦ１３間でデータの受け渡しが行われている。
【００４３】
一方、テストモードでは、フリップフロップ回路ＦＦ１１は、外部からのデータ或いは前段のフリップフロップ回路からのデータを、テストクロック信号ＴＣＬＫに同期して取り込んで出力する。フリップフロップ回路ＦＦ１１から出力されたデータは、組み合わせ回路Ｃ１１及び遅延素子（バッファ）Ｄ１５を介して、フリップフロップ回路ＦＦ１２に供給される。そして、フリップフロップ回路ＦＦ１２は、供給されたデータを、テストクロック信号ＴＣＬＫに同期して取り込んで出力する。フリップフロップ回路ＦＦ１２から出力されたデータは、組み合わせ回路Ｃ１２及び遅延素子（バッファ）Ｄ１６を介して、フリップフロップ回路ＦＦ１３に供給される。そして、フリップフロップ回路ＦＦ１３は、供給されたデータを、テストクロック信号ＴＣＬＫに同期して取り込んで出力する。
【００４４】
このように、本実施の形態にかかる半導体集積回路１では、通常動作用のクロック信号（クロック信号ＣＬＫＡ，ＣＬＫＢ）と、テスト用のクロック信号（テストクロック信号ＴＣＬＫ）と、を選択する選択回路（ＳＥＬ１１，ＳＥＬ１２）が、クロック生成回路１１ではなく、機能ブロック１３内に設けられている。それにより、クロック生成回路１１と機能ブロック１３との間には、テストクロック信号ＴＣＬＫが伝搬するクロックラインＬＴと、クロック信号ＣＬＫＡ，ＣＬＫＢがそれぞれ伝搬するクロックラインＬＡ，ＬＢと、が個別に存在することとなる。したがって、クロックラインＬＡ，ＬＢ上には、それぞれクロック信号ＣＬＫＡ，ＣＬＫＢの位相を調整するための遅延素子Ｄ１１，Ｄ１２が設けられるのみであり、テストクロック信号ＴＣＬＫの位相を調整するための余分な遅延素子は設けられない。そのため、製造ばらつきや局所的特性変動などに起因して生じるクロックラインＬＡ，ＬＢ上の信号伝達速度の変動は増大しない。
【００４５】
このような条件下でフリップフロップ回路が確実にデータを取り込むためのクロックエッジに対するデータ保持時間を確保するためのホールドタイミング制約を満たす設計（マージン設計）が行われた場合、半導体集積回路１は、フリップフロップ回路間のデータライン上に挿入する遅延素子（Ｄ１５，Ｄ１６）の数を低減することができるため、回路規模の増大を抑制することができる。
【００４６】
なお、図３に示すように、クロック信号ＣＬＫＡ，ＣＬＫＢが何れも同一の機能ブロック１３に供給されている場合でも、機能ブロック１３に設けられたフリップフロップ間のデータライン上に挿入する遅延素子（Ｄ１５，Ｄ１６）の数を低減することができる。
【００４７】
続いて、図４は、機能ブロック１４のより詳細な構成例を示す図である。図４では、説明の簡略化のため、機能ブロック１３，１４のうち機能ブロック１４の詳細のみを示している。また、図４では、論理回路１４１に設けられた複数の回路のうち、順序回路（フリップフロップ回路）ＦＦ１４，ＦＦ１５、組み合わせ回路Ｃ１３及び遅延素子（バッファ）Ｄ１８のみを示している。
【００４８】
選択回路ＳＥＬ１３から出力されたクロック信号は、論理回路１４１に設けられたフリップフロップ回路ＦＦ１４，ＦＦ１５に供給される。なお、選択回路ＳＥＬ１３とフリップフロップ回路ＦＦ１４，ＦＦ１５との間のクロックライン上には、複数の遅延素子（バッファ）Ｄ１７が設けられている。これら遅延素子Ｄ１７は、通常動作時及びテスト時において、論理回路１４１内の複数の順序回路（フリップフロップ回路ＦＦ１４，ＦＦ１５を含む）に供給されるクロック信号ＣＬＫＡの位相を調整するために設けられたものである。なお、テストクロック信号ＴＣＬＫの位相のみを調整したい場合には、クロックラインＬＴ上に遅延素子をさらに追加すればよい。
【００４９】
例えば、通常動作モードでは、フリップフロップ回路ＦＦ１４は、外部からのデータ或いは前段のフリップフロップ回路からのデータを、クロック信号ＣＬＫＡに同期して取り込んで出力する。フリップフロップ回路ＦＦ１４から出力されたデータは、組み合わせ回路Ｃ１３及び遅延素子（バッファ）Ｄ１８を介して、フリップフロップ回路ＦＦ１５に供給される。そして、フリップフロップ回路ＦＦ１５は、供給されたデータを、クロック信号ＣＬＫＡに同期して取り込んで出力する。つまり、機能ブロック１４では、同一のクロック信号ＣＬＫＡに同期して動作するフリップフロップ回路ＦＦ１４，ＦＦ１５間でデータの受け渡しが行われている。
【００５０】
一方、テストモードでは、フリップフロップ回路ＦＦ１４は、外部からのデータ或いは前段のフリップフロップ回路からのデータを、テストクロック信号ＴＣＬＫに同期して取り込んで出力する。フリップフロップ回路ＦＦ１４から出力されたデータは、組み合わせ回路Ｃ１３及び遅延素子（バッファ）Ｄ１８を介して、フリップフロップ回路ＦＦ１５に供給される。そして、フリップフロップ回路ＦＦ１５は、供給されたデータを、テストクロック信号ＴＣＬＫに同期して取り込んで出力する。
【００５１】
このように、本実施の形態にかかる半導体集積回路１では、通常動作用のクロック信号（クロック信号ＣＬＫＡ）と、テスト用のクロック信号（テストクロック信号ＴＣＬＫ）と、を選択する選択回路（ＳＥＬ１３）が、クロック生成回路１１ではなく、機能ブロック１４内に設けられている。それにより、クロック生成回路１１と機能ブロック１４との間には、テストクロック信号ＴＣＬＫが伝搬するクロックラインＬＴと、クロック信号ＣＬＫＡがそれぞれ伝搬するクロックラインＬＡ，ＬＢと、が個別に存在することとなる。したがって、クロックラインＬＡ上には、クロック信号ＣＬＫＡの位相を調整するための遅延素子Ｄ１１が設けられるのみであり、テストクロック信号ＴＣＬＫの位相を調整するための余分な遅延素子は設けられない。そのため、製造ばらつきや局所的特性変動などに起因して生じるクロックラインＬＡ上の信号伝達速度の変動は増大しない。
【００５２】
このような条件下でホールドタイミング制約を満たす設計（マージン設計）が行われた場合、半導体集積回路１は、フリップフロップ回路間のデータライン上に挿入する遅延素子（Ｄ１８）の数を低減することができるため、回路規模の増大を抑制することができる。
【００５３】
なお、図４に示すように、クロック信号ＣＬＫＡ，ＣＬＫＢがそれぞれ異なる機能ブロック１４，１３に供給されている場合でも、各機能ブロック１３，１４に設けられたフリップフロップ間のデータライン上に挿入する遅延素子の数を低減することができる。
【００５４】
さらに、半導体集積回路１は、フリップフロップ回路間のデータライン上に挿入する遅延素子（Ｄ１５，Ｄ１６，Ｄ１８）の数を低減することができるため、消費電力の増大を抑制することができる。
【００５５】
さらに、半導体集積回路１は、フリップフロップ回路間のデータライン上に挿入する遅延素子（Ｄ１５，Ｄ１６，Ｄ１８）の数を低減することができるため、クロック信号ＣＬＫＡ，ＣＬＫＢがさらに高速化された場合でも、セットアップ制約を満たす設計の困難化を抑制することができる。
【００５６】
（本願発明と従来技術との比較）
次に、本実施の形態にかかる半導体集積回路１と、本発明に至る前の構想にかかる半導体集積回路５と、の違いを図３及び図５を用いて説明する。図５は、本発明に至る前の構想にかかる半導体集積回路５の構成を示す図である。
【００５７】
図５に示す半導体集積回路５では、図３に示す半導体集積回路１と比較して、選択回路の配置が異なる。具体的には、選択回路ＳＥＬ５１，ＳＥＬ５２が、機能ブロック５３ではなく、クロック生成回路５１内に設けられている。また、図５では、同一のクロック信号（例えば、クロック信号ＣＬＫＡ）に対して、一つ或いは複数の選択回路が例えば機能ブロックごとに設けられている。図５に示す半導体集積回路５のその他の回路構成及び基本的な動作については、図３に示す半導体集積回路１と同様であるため、その説明を省略する。
【００５８】
なお、クロック生成回路５１は、図３におけるクロック生成回路１１に対応する。機能ブロック５３は、図３における機能ブロック１３に対応する。選択回路ＳＥＬ５１，ＳＥＬ５２は、それぞれ図３における選択回路ＳＥＬ１１，ＳＥＬ１２に対応する。フリップフロップ回路ＦＦ５１〜ＦＦ５３は、それぞれ図３におけるフリップフロップ回路ＦＦ１１〜ＦＦ１３に対応する。遅延素子Ｄ５１〜Ｄ５６は、それぞれ図３における遅延素子Ｄ１１〜Ｄ１６に対応する。組み合わせ回路Ｃ５１，Ｃ５２は、それぞれ図３における組み合わせ回路Ｃ１１，Ｃ１２に対応する。
【００５９】
上記したように、図３に示す半導体集積回路５では、通常動作用のクロック信号（クロック信号ＣＬＫＡ，ＣＬＫＢ）と、テスト用のクロック信号（テストクロック信号ＴＣＬＫ）と、を選択する選択回路（ＳＥＬ５１，ＳＥＬ５２）が、機能ブロック５３ではなく、クロック生成回路５１内に設けられている。それにより、クロック生成回路５１と機能ブロック５３との間には、テストクロック信号ＴＣＬＫと、クロック信号ＣＬＫＡ，ＣＬＫＢと、が選択的に伝搬する共通のクロックラインが存在することとなる。したがって、クロックラインＬＡ，ＬＢ上には、それぞれ、クロック信号ＣＬＫＡ，ＣＬＫＢの位相を調整するための遅延素子Ｄ５１，Ｄ５２に加え、テストクロック信号ＴＣＬＫの位相を調整するための余分な遅延素子Ｄ５７，Ｄ５８が付加される。そのため、製造ばらつきや局所的特性変動などに起因して生じるクロックラインＬＡ，ＬＢ上の信号伝達速度が増大してしまう。
【００６０】
このような条件下でホールドタイミング制約を満たす設計（マージン設計）が行われた場合、フリップフロップ回路間のデータライン上に挿入する遅延素子（Ｄ５５，Ｄ５６）の数が増大してしまうため、回路規模の増大が増大してしまう。また、消費電力も増大してしまう。さらには、クロック信号ＣＬＫＡ，ＣＬＫＢが高速化された場合、セットアップ制約を満たす設計が困難になってしまう。
【００６１】
一方、図５に示す半導体集積回路１では、選択回路（ＳＥＬ１１，ＳＥＬ１２）が、クロック生成回路１１ではなく、機能ブロック１３内に設けられているため、このような問題は生じない。
【００６２】
（制御回路１２の具体的構成例（その１））
図６は、制御回路１２の具体的な構成の一例を制御回路１２ａとして示す図である。ここでは、テストの一例として、低速のスキャンテスト（圧縮スキャンテストを含む）が行われる場合を例に説明する。また、ここでは、モード信号ＭＯＤＥをスキャンテスト選択信号ＳＣに読み替えて説明する。なお、圧縮スキャンテストが行われる場合、半導体集積回路１には、テストデータを展開する回路と、テスト結果を圧縮する回路とが、設けられている必要がある。
【００６３】
制御回路１２ａは、論理積回路（以下、単にＡＮＤ回路と称す）１２１を有する。ＡＮＤ回路１２１は、イネーブル信号ＥＮとスキャンテスト選択信号ＳＣとの論理積を制御信号として出力する。
【００６４】
続いて、制御回路１２ａの構成が採用された半導体集積回路１のテスト動作を、図７を用いて説明する。図７は、半導体集積回路１のテスト動作を示すタイミングチャートである。
【００６５】
スキャンテストでは、主として、初期化及び構造解析フェーズ（第３テストモード）、テストデータ供給及びテスト結果の取り込みフェーズ（シフトモード、第３テストモード）、及び、キャプチャ動作フェーズ（キャプチャモード、第４テストモード）、の３つフェーズが存在する。スキャンテストでは、まず、初期化及び構造解析が実施される。次に、被テスト回路である半導体集積回路１にテストデータが供給される。シフト動作により、全てのフリップフロップにテストデータが供給されると、キャプチャ動作が実施される。その後、キャプチャ動作にて全てのフリップフロップに取り込まれたデータは、再度のシフト動作によりテスト結果として出力される。
【００６６】
この低速のスキャンテストでは、イネーブル信号ＥＮが常にアクティブ（Ｈレベル）になり、スキャンテスト選択信号ＳＣも常にアクティブ（Ｈレベル）になる。したがって、制御回路１２ａは、常にＨレベルの制御信号を出力する。それにより、選択回路（例えば、選択回路ＳＥＬ１１）は、常に低速のテストクロック信号ＴＣＬＫを選択して出力する。
【００６７】
なお、スキャンテスト中、上記したように、選択回路（例えば、選択回路ＳＥＬ１１）は、テストクロック信号ＴＣＬＫを選択して出力し続ける。したがって、クロック生成回路１１は、低速のテストクロック信号ＴＣＬＫを出力する必要はあるが、高速クロック信号（例えば、クロック信号ＣＬＫＡ，ＣＬＫＢ）を出力する必要はない。図７の例では、高速クロック信号は、Ｌレベルに固定されている。
【００６８】
（制御回路１２の具体的構成例（その２））
図８は、制御回路１２の具体的な構成の一例を制御回路１２ｂとして示す図である。ここでは、テストの一例として低速のロジックＢＩＳＴが行われる場合を例に説明する。また、ここでは、モード信号ＭＯＤＥを高速モード選択信号ＭＣに読み替えて説明する。なお、ロジックＢＩＳＴが行われる場合、半導体集積回路１には、テストデータを発生させる回路と、テスト結果を期待値と比較する回路とが、設けられている必要がある。この場合、高速モード選択信号ＭＣは、例えば、テストデータを発生させる回路から出力される。
【００６９】
制御回路１２ｂは、ＡＮＤ回路１２２と、否定回路（以下、単にＩＮＶ回路と称す）１２３と、を有する。ＡＮＤ回路１２２は、イネーブル信号ＥＮと、高速モード選択信号ＭＣをＩＮＶ回路１２３で反転させた信号と、の論理積を制御信号として出力する。
【００７０】
続いて、制御回路１２ｂの構成が採用された半導体集積回路１のテスト動作を、図９を用いて説明する。図９は、半導体集積回路１のテスト動作を示すタイミングチャートである。
【００７１】
ロジックＢＩＳＴでは、一例として、初期化及び構造解析、初期スキャン動作、キャプチャ動作、テストデータ供給、リピートキャプチャ動作、キャプチャ動作、テスト結果の取り込み、リピートキャプチャ動作、リピートテスト動作、終了動作、が順に実施される。
【００７２】
この低速のロジックＢＩＳＴでは、イネーブル信号ＥＮが常にアクティブ（Ｈレベル）になり、高速モード選択信号ＭＣが常にインアクティブ（Ｌレベル）になる。したがって、制御回路１２ｂは、常にＨレベルの制御信号を出力する。それにより、選択回路（例えば、選択回路ＳＥＬ１１）は、常に低速のテストクロック信号ＴＣＬＫを選択して出力する。
【００７３】
なお、ロジックＢＩＳＴのテスト中、上記したように、選択回路（例えば、選択回路ＳＥＬ１１）は、テストクロック信号ＴＣＬＫを選択して出力し続ける。したがって、クロック生成回路１１は、低速のテストクロック信号ＴＣＬＫを出力する必要はあるが、高速クロック信号（例えば、クロック信号ＣＬＫＡ，ＣＬＫＢ）を出力する必要はない。図９の例では、高速クロック信号は、Ｌレベルに固定されている。
【００７４】
実施の形態２
図１０は、本発明の実施の形態２にかかる半導体集積回路２の構成例を示す図である。図１０に示す半導体集積回路２では、図１に示す半導体集積回路１と比較して、主として、制御回路の構成が異なる。図１０に示す制御回路２２は、高速なクロック信号によるテストを可能にするために、選択回路によるクロック信号の選択を動的に切り替えることを特徴とする。図１０に示す半導体集積回路２のその他の回路構成については、図１に示す半導体集積回路１と同様であるため、その説明を省略する。
【００７５】
なお、クロック生成回路２１は、図１におけるクロック生成回路１１に対応する。制御回路２２は、図１における制御回路１２に対応する。機能ブロック２３は、図１における機能ブロック１３に対応する。機能ブロック２４は、図１における機能ブロック１４に対応する。選択回路ＳＥＬ２１〜ＳＥＬ２３は、それぞれ図１における選択回路ＳＥＬ１１〜ＳＥＬ１３に対応する。論理回路２３１，２３２，２４１は、それぞれ図１における論理回路１３１，１３２，１４１に対応する。
【００７６】
図１１は、機能ブロック２３のより詳細な構成例を示す図である。図１２は、機能ブロック２４のより詳細な構成例を示す図である。機能ブロック２３，２４の回路構成については、それぞれ、図３に示す機能ブロック１３及び図４に示す機能ブロック１４と同様であるため、その説明を省略する。
【００７７】
なお、フリップフロップ回路ＦＦ２１〜ＦＦ２５は、それぞれフリップフロップ回路ＦＦ１１〜ＦＦ１５に対応する。遅延素子Ｄ２１〜Ｄ２８は、それぞれ遅延素子Ｄ１１〜Ｄ１８に対応する。組み合わせ回路Ｃ２１〜Ｃ２３は、それぞれ組み合わせ回路Ｃ１１〜Ｃ１３に対応する。
【００７８】
制御回路２２は、例えば、テストデータ供給及びテスト結果の取り込み（シフトモード、第１テストモード）時に、選択回路（例えば、選択回路ＳＥＬ２１，ＳＥＬ２２）に低速のテストクロック信号ＴＣＬＫを選択させる。また、制御回路２２は、例えば、キャプチャ動作（キャプチャモード、第２テストモード）時に、選択回路（例えば、選択回路ＳＥＬ２１，ＳＥＬ２２）に高速のクロック信号（例えば、クロック信号ＣＬＫＡ，ＣＬＫＢ）を選択させる。つまり、制御回路２２は、選択回路によるクロック信号の選択を動的に切り替える。それにより、半導体集積回路２は、半導体集積回路１と同等の効果を奏することができるとともに、高速のテストを実施することが可能になる。
【００７９】
（制御回路２２の具体的構成例（その１））
図１３は、制御回路２２の具体的な構成の一例を制御回路２２ａとして示す図である。ここでは、テストの一例として、高速のスキャンテスト（圧縮スキャンテストを含む）が行われる場合を例に説明する。また、ここでは、モード信号ＭＯＤＥをスキャンテスト選択信号ＳＣに読み替えて説明する。また、制御回路２２ａには、高速スキャンテスト用イネーブル信号ＳＥＮＢＲがさらに供給される。この高速スキャンテスト用イネーブル信号ＳＥＮＢＲは、例えば、キャプチャモードと、シフトモードを含むそれ以外のモードと、を切り替えるために用いられている信号である。なお、圧縮スキャンテストが行われる場合、半導体集積回路２には、テストデータを展開する回路と、テスト結果を圧縮する回路とが、設けられている必要がある。
【００８０】
制御回路２２ａは、ＡＮＤ回路２２１，２２２を有する。ＡＮＤ回路２２２は、高速スキャンテスト用イネーブル信号ＳＥＮＢＲとスキャンテスト選択信号ＳＣとの論理積を出力する。ＡＮＤ回路２２１は、イネーブル信号ＥＮとＡＮＤ回路２２２の出力との論理積を制御信号として出力する。つまり、制御回路２２ａは、高速スキャンテスト用イネーブル信号ＳＥＮＢＲ、イネーブル信号ＥＮ、及び、スキャンテスト選択信号ＳＣの論理積を制御信号として出力する。
【００８１】
続いて、制御回路２２ａの構成が採用された半導体集積回路２のテスト動作を、図１４を用いて説明する。図１４は、半導体集積回路２のテスト動作を示すタイミングチャートである。
【００８２】
この高速のスキャンテストでは、イネーブル信号ＥＮが常にアクティブ（Ｈレベル）になり、スキャンテスト選択信号ＳＣも常にアクティブ（Ｈレベル）になる。一方、高速スキャンテスト用イネーブル信号ＳＥＮＢＲは、例えば、シフトモード（第１テストモード）の場合にＨレベルになり、キャプチャモード（第２テストモード）の場合にＬレベルになる。また、高速スキャンテスト用イネーブル信号ＳＥＮＢＲは、初期化及び構造解析時（第１テストモード）にもＨレベルになる。したがって、制御回路２２ａは、初期化及び構造解析時、及び、シフトモードでは、Ｈレベルの制御信号を出力し、キャプチャモードでは、Ｌレベルの制御信号を出力する。それにより、選択回路（例えば、選択回路ＳＥＬ２１，ＳＥＬ２２）は、初期化及び構造解析時、及び、シフトモードでは、低速のテストクロック信号ＴＣＬＫを選択して出力し、キャプチャモードでは、高速のクロック信号（例えば、ＣＬＫＡ，ＣＬＫＢ）を選択して出力する。
【００８３】
なお、初期化及び構造解析時、及び、シフトモードでは、上記したように、選択回路（例えば、選択回路ＳＥＬ２１，ＳＥＬ２２）は、テストクロック信号ＴＣＬＫを選択して出力する。したがって、クロック生成回路２１は、低速のテストクロック信号ＴＣＬＫを出力するが、高速クロック信号（例えば、クロック信号ＣＬＫＡ，ＣＬＫＢ）を出力しない。一方、キャプチャモードでは、上記したように、選択回路は、高速クロック信号を選択して出力する。したがって、クロック生成回路２１は、高速クロック信号を出力するが、低速のテストクロック信号ＴＣＬＫを出力しない。例えば、クロック生成回路２１は、モードがシフトモードからキャプチャモードに切り替わってから所定期間経過後に、２つのパルスの高速クロック信号を出力する。
【００８４】
このように、制御回路２２ａは、動的かつハザードフリーに制御信号を切り替える。それにより、半導体集積回路２は、半導体集積回路１の場合と同様に回路規模の増大を抑制し、さらに、高速のテストを実施することが可能となる。
【００８５】
（制御回路２２の具体的構成例（その２））
図１５は、制御回路２２の具体的な構成の一例を制御回路２２ｂとして示す図である。ここでは、テストの一例として、高速のロジックＢＩＳＴが行われる場合を例に説明する。また、ここでは、モード信号ＭＯＤＥを高速モード選択信号ＭＣに読み替えて説明する。また、制御回路２２ｂには、高速ロジックＢＩＳＴ用イネーブル信号ＣＴＲＬＣＡ及び制御回路用クロック信号ＴＴ＿ＴＲが供給される。この高速ロジックＢＩＳＴ用イネーブル信号ＣＴＲＬＣＡは、例えば、キャプチャモードと、シフトモードを含むそれ以外のモードと、を切り替えるために用いられている信号である。また、制御回路用クロック信号ＴＴ＿ＴＲは、例えば、テストクロック信号ＴＣＬＫと同じ周波数のクロック信号である。
【００８６】
なお、ロジックＢＩＳＴが行われる場合、半導体集積回路２には、テストデータを発生させる回路と、テスト結果を期待値と比較する回路とが、設けられている必要がある。この場合、高速モード選択信号ＭＣは、例えば、テストデータを発生させる回路から出力される。
【００８７】
制御回路２２ｂは、ＡＮＤ回路２２３と、論理和回路（以下、単にＯＲ回路と称す）２２４と、ＩＮＶ回路２２５〜２２７と、フリップフロップ回路２２８と、を有する。フリップフロップ回路２２８は、制御回路用クロック信号ＴＴ＿ＴＲの立ち下がりに同期して、高速ロジックＢＩＳＴ用イネーブル信号ＣＴＲＬＣＡを取り込み出力する。ＯＲ回路２２４は、高速モード選択信号ＭＣの反転信号と、フリップフロップ回路２２８の出力の反転信号と、の論理和を出力する。ＡＮＤ回路２２３は、イネーブル信号ＥＮと、ＯＲ回路２２４の出力と、の論理積を制御信号として出力する。
【００８８】
続いて、制御回路２２ｂの構成が採用された半導体集積回路２のテスト動作を、図１６を用いて説明する。図１６は、半導体集積回路２のテスト動作を示すタイミングチャートである。
【００８９】
この高速のロジックＢＩＳＴでは、イネーブル信号ＥＮが常にアクティブ（Ｈレベル）になり、高速モード選択信号ＭＣも常にアクティブ（Ｈレベル）になる。一方、高速ロジックＢＩＳＴ用イネーブル信号ＣＴＲＬＣＡは、例えば、キャプチャモード（第２テストモード）の場合にＨレベルになり、それ以外のモード（第１テストモード）の場合にＬレベルになる。（より詳細には、高速ロジックＢＩＳＴ用イネーブル信号ＣＴＲＬＣＡは、例えば、キャプチャモードの１テストクロックサイクル前からＨレベルになり、それ以外のモードの１テストクロックサイクル前からＬレベルになる。）したがって、制御回路２２ｂは、キャプチャモードでは、制御回路用クロック信号ＴＴ＿ＴＲの立ち下がりに同期してＬレベルの制御信号を出力し続け、それ以外のモードでは、制御回路用クロック信号ＴＴ＿ＴＲの立ち下がりに同期してＨレベルの制御信号を出力し続ける。それにより、選択回路（例えば、選択回路ＳＥＬ２１，ＳＥＬ２２）は、キャプチャモードでは、高速のクロック信号（例えば、クロック信号ＣＬＫＡ，ＣＬＫＢ）を選択して出力し、それ以外のモードでは、低速のテストクロック信号ＴＣＬＫを選択して出力する。
【００９０】
なお、キャプチャモード以外のモードでは、上記したように、選択回路（例えば、選択回路ＳＥＬ２１，ＳＥＬ２２）は、テストクロック信号ＴＣＬＫを選択して出力する。したがって、クロック生成回路２１は、低速のテストクロック信号ＴＣＬＫを出力するが、高速クロック信号（例えば、クロック信号ＣＬＫＡ，ＣＬＫＢ）を出力しない。一方、キャプチャモードでは、上記したように、選択回路は、高速クロック信号を選択して出力する。したがって、クロック生成回路２１は、高速クロック信号を出力するが、低速のテストクロック信号ＴＣＬＫを出力する必要はない。例えば、クロック生成回路２１は、モードがキャプチャモードに切り替わってから所定期間経過後に、２つのパルスの高速クロック信号を出力する。
【００９１】
このように、制御回路２２ａは、動的かつハザードフリーに制御信号を切り替える。それにより、半導体集積回路２は、半導体集積回路１の場合と同様に回路規模の増大を抑制しつつ、さらに、高速のテストを実施することが可能となる。
【００９２】
実施の形態３
本実施の形態では、制御回路の他の構成例について説明する。
【００９３】
図１７は、制御回路３２の具体的な構成の一例を示す図である。制御回路３２は、図６、図８、図１３、及び図１５に示す制御回路１２ａ，１２ｂ，２２ａ，２２ｂの機能を全て備えている。つまり、制御回路３２は、低速のスキャンテスト、低速のロジックＢＩＳＴ、高速のスキャンテスト、及び、高速のロジックＢＩＳＴにおいて、選択回路（例えば、図１における選択回路ＳＥＬ１１等）によるクロック信号の選択を制御することができる。以下、具体的に説明する。
【００９４】
制御回路３２には、イネーブル信号ＥＮ、高速モード選択信号ＭＣ、高速スキャンテスト用イネーブル信号ＳＥＮＢＲ、高速ロジックＢＩＳＴ用イネーブル信号ＣＴＲＬＣＡ、制御回路用クロック信号ＴＴ＿ＴＲ、スキャンテスト選択信号ＳＣが供給される。これらの信号は、制御回路１２ａ，１２ｂ，２２ａ，２２ｂで使用された場合と同様の目的で使用される。
【００９５】
つまり、イネーブル信号ＥＮは、テスト自体を行うか否かを制御するための信号である。高速モード選択信号ＭＣは、高速テストか低速テストかを選択するための信号である。高速スキャンテスト用イネーブル信号ＳＥＮＢＲは、高速スキャンテストを行うか否かを制御するための信号である。高速ロジックＢＩＳＴ用イネーブル信号ＣＴＲＬＣＡは、高速ロジックＢＩＳＴを行うか制御するための信号である。スキャンテスト選択信号ＳＣは、高速のスキャンテストか高速のロジックＢＩＳＴかを選択するための信号である。
【００９６】
さらに、制御回路３２には、メモリＢＩＳＴモード選択信号及びメモリＢＩＳＴ用イネーブル信号が供給される。
【００９７】
制御回路３２は、ＡＮＤ回路３２１と、ＯＲ回路３２２と、セレクタ３２３，３２４と、ＩＮＶ回路３２５〜３２７と、フリップフロップ回路３２８と、を有する。
【００９８】
フリップフロップ回路３２８は、制御回路用クロック信号ＴＴ＿ＴＲの立ち下がりに同期して、高速ロジックＢＩＳＴ用イネーブル信号ＣＴＲＬＣＡを取り込み出力する。セレクタ３２４は、高速スキャンテスト用イネーブル信号ＳＥＮＢＲと、フリップフロップ回路３２８の出力の反転信号と、の何れかをスキャンテスト選択信号ＳＣに基づいて選択的に出力する。例えば、スキャンテスト選択信号ＳＣがＬレベルの場合、セレクタ３２４は、フリップフロップ回路３２８の出力の反転信号を選択して出力する。一方、スキャンテスト選択信号ＳＣがＨレベルの場合、セレクタ３２４は、高速スキャンテスト用イネーブル信号ＳＥＮＢＲを選択して出力する。ＯＲ回路３２２は、高速モード選択信号ＭＣの反転信号と、セレクタ３２４の出力と、の論理和を出力する。
【００９９】
セレクタ３２３は、メモリＢＩＳＴ用イネーブル信号と、イネーブル信号ＥＮと、の何れかをメモリＢＩＳＴモード選択信号に基づいて選択的に出力する。例えば、メモリＢＩＳＴモード選択信号がインアクティブ（Ｌレベル）の場合、セレクタ３２３は、イネーブル信号ＥＮを選択して出力する。一方、メモリＢＩＳＴモード選択信号がアクティブ（Ｈレベル）の場合、セレクタ３２３は、メモリＢＩＳＴ用イネーブル信号を選択して出力する。ＡＮＤ回路３２１は、セレクタ３２３の出力と、ＯＲ回路３２２の出力と、の論理積を制御信号として出力する。
【０１００】
なお、メモリＢＩＳＴを実施する場合、メモリＢＩＳＴモード選択信号をアクティブ（Ｈレベル）にする。したがって、制御回路３２は、他に供給されている信号に関わらず、メモリＢＩＳＴ用イネーブル信号（例えば、Ｌレベル）に基づいて、Ｌレベルの制御信号を出力する。それにより、選択回路（例えば、図１における選択回路ＳＥＬ１１等）は、高速のクロック信号（例えば、クロック信号ＣＬＫＡ，ＣＬＫＢ）を出力する。それにより、前記他に供給されている信号の影響を受けることなく、メモリＢＩＳＴを実施することが可能になる。
【０１０１】
続いて、制御回路３２の構成が採用された半導体集積回路（例えば、図１における半導体集積回路１）のテスト動作を、図１８〜図２１を用いて説明する。なお、以下の説明では、メモリＢＩＳＴモード選択信号は常にインアクティブ（Ｌレベル）であり、イネーブル信号ＥＮは常にアクティブ（Ｈレベル）であるものとする。したがって、セレクタ３２３は、Ｈレベルのイネーブル信号ＥＮを選択して出力し続けている。
【０１０２】
図１８は、低速のスキャンテスト動作を示すタイミングチャートである。基本的な動作は、図７のタイミングチャートで説明した内容と同様である。なお、このとき、高速モード選択信号ＭＣが常にインアクティブ（Ｌレベル）であるため、制御回路３２は、高速スキャンテスト用イネーブル信号ＳＥＮＢＲ等に関わらず、Ｈレベルの制御信号を出力し続ける。それにより、選択回路（例えば、図１における選択回路ＳＥＬ１１等）は、低速のテストクロック信号ＴＣＬＫを出力し続ける。
【０１０３】
図１９は、低速のロジックＢＩＳＴ動作を示すタイミングチャートである。基本的な動作は、図９のタイミングチャートで説明した内容と同様である。なお、このとき、高速モード選択信号ＭＣが常にインアクティブ（Ｌレベル）であるため、制御回路３２は、高速ロジックＢＩＳＴ用イネーブル信号ＣＴＲＬＣＡ等に関わらず、Ｈレベルの制御信号を出力し続ける。それにより、選択回路（例えば、図１における選択回路ＳＥＬ１１等）は、低速のテストクロック信号ＴＣＬＫを出力し続ける。
【０１０４】
図２０は、高速のスキャンテスト動作を示すタイミングチャートである。基本的な動作は、図１４のタイミングチャートで説明した内容と同様である。なお、このとき、高速モード選択信号ＭＣが常にアクティブ（Ｈレベル）であり、スキャンテスト選択信号ＳＣが常にアクティブ（Ｈレベル）であるため、制御回路３２は、高速スキャンテスト用イネーブル信号ＳＥＮＢＲをそのまま制御信号として出力する。それにより、選択回路（例えば、図１における選択回路ＳＥＬ１１等）は、初期化及び構造解析時、及び、シフトモードでは、低速のテストクロック信号ＴＣＬＫを出力し、キャプチャモードでは、高速のクロック信号（例えば、クロック信号ＣＬＫＡ，ＣＬＫＢ）を出力する。
【０１０５】
図２１は、高速のスキャンテスト動作を示すタイミングチャートである。基本的な動作は、図１６のタイミングチャートで説明した内容と同様である。なお、このとき、高速モード選択信号ＭＣが常にアクティブ（Ｈレベル）であり、スキャンテスト選択信号ＳＣが常にインアクティブ（Ｌレベル）である。そのため、制御回路３２は、高速ロジックＢＩＳＴ用イネーブル信号ＣＴＲＬＣＡを制御回路用クロック信号ＴＴ＿ＴＲの立ち下がりに同期して取り込み、その反転信号を制御信号として出力する。それにより、選択回路（例えば、図１における選択回路ＳＥＬ１１等）は、キャプチャモードでは、高速のクロック信号（例えば、クロック信号ＣＬＫＡ，ＣＬＫＢ）を出力し、それ以外のモードでは、低速のテストクロック信号ＴＣＬＫを出力する。
【０１０６】
このように、制御回路３２は、複数の種類のテストに対応して制御信号を出力することができる。
【０１０７】
以上のように、上記実施の形態にかかる半導体集積回路は、機能ブロック（ＩＰモジュール）内に、通常動作用の高速クロック信号とテスト用の低速クロック信号とを動作モードに応じて選択的に出力する選択回路を複数設けている。それにより、上記実施の形態にかかる半導体集積回路１は、フリップフロップ回路間のデータライン上に挿入する遅延素子の数を低減して、回路規模の増大を抑制することができる。また、消費電力の増大を抑制することができる。さらには、高速クロック信号がさらに高速化された場合でも、セットアップ制約を満たす設計の困難化を抑制することができる。
【０１０８】
さらに、実施の形態２、３にかかる半導体集積回路は、当該選択回路によるクロック信号の選択を動的に切り替える。それにより、実施の形態２、３にかかる半導体集積回路は、回路規模の増大を抑制等しつつ、さらに、高速のテストを実施することが可能となる。
【０１０９】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、制御回路１２ａ，１２ｂ，２２ａ，２２ｂ，３２の構成は一例に過ぎず、同様の機能を有する他の構成に適宜変更可能である。
【０１１０】
また、上記実施の形態では、半導体集積回路が２つの機能ブロック（例えば、図１における機能ブロック１３，１４）を備えた場合を例に説明したが、これに限られない。半導体集積回路は、任意の数の機能ブロックを備えた構成に適宜変更可能である。
【０１１１】
また、上記実施の形態では、クロック生成回路が通常動作用の高速クロック信号としてクロック信号ＣＬＫＡ，ＣＬＫＢを生成する場合を例に説明したが、これに限られない。クロック生成回路は、機能ブロックの仕様に応じて、任意の数のクロック信号を生成する構成に適宜変更可能である。
【符号の説明】
【０１１２】
１，２  半導体集積回路
１１，２１  クロック生成回路
１２，１２ａ，１２ｂ，２２，２２ａ，２２ｂ，３２  制御回路
１３，１４，２３，２４  機能ブロック
１００  テストボード
１２１，１２２，２２１，２２２，２２３，３２１  ＡＮＤ回路
１２３，２２５〜２２７，３２５〜３２７  ＩＮＶ回路
１３１，１３２，１４１，２３１，２３２，２４１  論理回路
２００  テスト装置
２２４，３２２  ＯＲ回路
２２８，３２８  フリップフロップ回路
３２３，３２４  セレクタ
Ｃ１１〜Ｃ１３，Ｃ２１〜Ｃ２３  組み合わせ回路
Ｄ１１〜Ｄ１８，Ｄ２１〜Ｄ２８  遅延素子
ＦＦ１１〜ＦＦ１５，ＦＦ２１〜ＦＦ２５  フリップフロップ回路
ＬＡ，ＬＢ，ＬＴ  クロックライン
ＳＥＬ１１〜ＳＥＬ１３，ＳＥＬ２１〜ＳＥＬ２３  選択回路
【図１】
2013145135.tif 000003
【図２】
2013145135.tif 000004
【図３】
2013145135.tif 000005
【図４】
2013145135.tif 000006
【図５】
2013145135.tif 000007
【図６】
2013145135.tif 000008
【図７】
2013145135.tif 000009
【図８】
2013145135.tif 000010
【図９】
2013145135.tif 000011
【図１０】
2013145135.tif 000012
【図１１】
2013145135.tif 000013
【図１２】
2013145135.tif 000014
【図１３】
2013145135.tif 000015
【図１４】
2013145135.tif 000016
【図１５】
2013145135.tif 000017
【図１６】
2013145135.tif 000018
【図１７】
2013145135.tif 000019
【図１８】
2013145135.tif 000020
【図１９】
2013145135.tif 000021
【図２０】
2013145135.tif 000022
【図２１】
2013145135.tif 000023
【図２２】
2013145135.tif 000024