(57)【要約】【課題】分周されたクロック信号を分周前のクロック信号に同期化する。【解決手段】半導体集積回路３０には、クロック生成回路１と同期回路部２が設けられる。クロック生成回路１は、同期化され、周波数の異なるクロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃを生成する。同期回路部２は、クロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃを入力し、クロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、或いはクロック信号ＣＬＫｃを使用するスキャン設計された同期回路を有する。スキャン設計された同期回路は、スキャンチェーンを構成する。【選択図】図１
2008122159.tif 000002
【特許請求の範囲】
【請求項１】
複数の同期クロック信号を生成するクロック生成回路と、
前記複数の同期クロック信号を用いてスキャン設計され、スキャンチェーンを構成する同期回路を有し、前記複数の同期クロック信号が入力され、スキャンシフト状態からＬａｕｎｃｈ／Ｃａｐｔｕｒｅ状態に移行するときに、すべてのスキャンノードの値を維持したまま、前記複数の同期クロック信号の位相関係が決定的な状態で開始される同期回路部と、
を具備することを特徴とする半導体集積回路。
【請求項２】
前記クロック生成回路は、Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態で周波数が異なる複数の同期クロック信号を生成し、前記クロック生成回路には、クロック信号とスキャンシフト信号が入力され、前記スキャンシフト信号により前記スキャンシフト状態或いは前記Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態が選択され、前記クロック信号にもとづいて前記複数の同期クロック信号が生成されることを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
クロック信号とスキャンシフト信号とが入力され、前記クロック信号にもとづいて、周波数の異なる複数の分周クロック信号を生成するクロック分周回路と、前記クロック信号と前記複数の分周クロック信号とが入力され、前記クロック信号にもとづいて、複数の同期クロック信号を生成するクロックゲーティング部とを有するクロック生成回路と、
前記複数の同期クロック信号を用いてスキャン設計され、スキャンチェーンを構成する同期回路を有し、前記複数の同期クロック信号が入力され、スキャンシフト状態からＬａｕｎｃｈ／Ｃａｐｔｕｒｅ状態に移行するときに、すべてのスキャンノードの値を維持したまま、前記複数の同期クロック信号の位相関係が決定的な状態で開始される同期回路部と、
を具備することを特徴とする半導体集積回路。
【請求項４】
前記スキャンシフト信号により前記スキャンシフト状態或いは前記Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態が選択され、前記クロック生成回路は、前記クロック信号にもとづいてＬａｕｎｃｈ／Ｃａｐｔｕｒｅ状態で周波数が異なる複数の同期クロック信号を生成することを特徴とする請求項３に記載の半導体集積回路。
【請求項５】
クロック信号とスキャンシフト信号とが入力され、前記クロック信号にもとづいて、ｎ（ただし、ｎは１以上）或いは（１／ｎ）分周された分周クロック信号を生成するクロック分周回路と、前記クロック信号と前記分周クロック信号とが入力され、前記クロック信号にもとづいて、前記クロック信号に同期する同期クロック信号を生成するクロックゲーティング部とを有するクロック生成回路と、
前記クロック信号及び前記同期クロック信号を用いてスキャン設計され、スキャンチェーンを構成する同期回路を有し、前記クロック信号と前記同期クロック信号とが入力され、スキャンシフト状態からＬａｕｎｃｈ／Ｃａｐｔｕｒｅ状態に移行するときに、すべてのスキャンノードの値を維持したまま、前記クロック信号と前記同期クロック信号の位相関係が決定的な状態で開始される同期回路部と、
を具備することを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のスキャンテストに対応したクロック分周器に関する。
【背景技術】
【０００２】
近年、情報機器等の高機能化、多機能化の進展に伴い、携帯情報機器やパーソナルコンピュータなどに、多数のシステム機能を同一チップ上に集積したシステムＬＳＩや、メモリ、論理回路、及びアナログ回路を同一チップに搭載したＳｏＣ（System  on  a  Chip）などが多用されている。大規模で、且つ高速化したシステムＬＳＩやＳｏＣでは、テストコスト等を抑制するために、スキャンテスト法やＢＩＳＴ（Built  in  Self  Test）法などのテスト容易化設計（Design  for  Testability  ＤＦＴと呼称される）と呼ぶ技術が用いられている。スキャンテスト法では、フリップフロップをスキャンフリップフロップに置き換える。スキャンフリップフロップを用いると、外部から値を設定し、外部入出力端子から、値を読み出すことが可能となり、ＡＴＰＧ（Automatic  Test  Pattern  Generator）を用いたテストパターンの作成が容易になるなどの特徴を有する（例えば、特許文献１参照。）。
【０００３】
クロック信号が入力されるクロック分周器を含む論理回路部のスキャンテストの場合、特許文献１などに記載されるスキャンテスト法では、クロック分周器の出力側にマルチプレクサを設ける。クロック信号或いは分周されたクロック信号の選択を行うマルチプレクサを用いた遅延テストでは、動作周波数に依存したスキャンパターンの発生が非常に非効率になるという問題点がある。また、クロック信号と分周されたクロック信号間のｓｋｅｗに起因するタイミング調整が困難になるという問題点がある。
【特許文献１】特開２００２−１２４８５２号公報（頁９、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、分周されたクロック信号を分周前のクロック信号に同期化できる半導体集積回路を提供する。
【課題を解決するための手段】
【０００５】
本発明の一態様の半導体集積回路は、複数の同期クロック信号を生成するクロック生成回路と、前記複数の同期クロック信号を用いてスキャン設計され、スキャンチェーンを構成する同期回路を有し、前記複数の同期クロック信号が入力され、スキャンシフト状態からＬａｕｎｃｈ／Ｃａｐｔｕｒｅ状態に移行するときに、すべてのスキャンノードの値を維持したまま、前記複数の同期クロック信号の位相関係が決定的な状態で開始される同期回路部とを具備することを特徴とする。
【０００６】
更に、本発明の他態様の半導体集積回路は、クロック信号とスキャンシフト信号とが入力され、前記クロック信号にもとづいて、周波数の異なる複数の分周クロック信号を生成するクロック分周回路と、前記クロック信号と前記複数の分周クロック信号とが入力され、前記クロック信号にもとづいて、複数の同期クロック信号を生成するクロックゲーティング部とを有するクロック生成回路と、前記複数の同期クロック信号を用いてスキャン設計され、スキャンチェーンを構成する同期回路を有し、前記複数の同期クロック信号が入力され、スキャンシフト状態からＬａｕｎｃｈ／Ｃａｐｔｕｒｅ状態に移行するときに、すべてのスキャンノードの値を維持したまま、前記複数の同期クロック信号の位相関係が決定的な状態で開始される同期回路部とを具備することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、分周されたクロック信号を分周前のクロック信号に同期化できる半導体集積回路を提供することができる。
【発明を実施するための最良の形態】
【０００８】
以下本発明の実施例について図面を参照しながら説明する。
【実施例１】
【０００９】
まず、本発明の実施例１に係る半導体集積回路について、図面を参照して説明する。図１は、システムＬＳＩとしての半導体集積回路を示すブロック図、図２はクロック生成回路から出力されるクロック信号の波形を示す図である。本実施例では、クロック生成回路から出力される複数のクロック信号が出力される。
【００１０】
図１に示すように、半導体集積回路３０には、クロック生成回路１と同期回路部２が設けられる。クロック生成回路１は、内部で発生される基準クロック信号及びクロック信号を制御する制御信号にもとづいて、クロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃを生成する。クロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃは同期化された同期クロック信号である。ここでは、基準クロック信号及びクロック信号を制御する制御信号は、クロック生成回路１内で生成しているが、クロック生成回路１の外部から供給してもよい。
【００１１】
同期回路部２は、クロック生成回路１から出力されるクロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃを入力し、クロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、或いはクロック信号ＣＬＫｃを使用するスキャン設計された同期回路、例えばスキャン化されたＳＦＦ（Scan  Flip  Flop）を有する。スキャン設計された同期回路は、スキャンチェーンを構成する。
【００１２】
図２に示すように、クロック生成回路から出力されるクロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃは、スキャンシフト状態では、それぞれクロック周波数（ｆ）を有し、同期化され、同位相の波形を有する。
【００１３】
“スキャンシフト状態”と“スキャンシフト状態”の間の“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“では、クロック信号ＣＬＫａがクロック周波数（２ｆ）を有し、クロック信号ＣＬＫｂがクロック周波数（ｆ）を有し、クロック信号ＣＬＫｂがクロック周波数（ｆ／２）を有する。“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“の間のクロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃは、同期化されている。
【００１４】
同期回路部２では、“スキャンシフト状態”から“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“に移行するとき、例えばＳＦＦの状態を保持しながら、すべてのスキャンノードの値を維持したまま、同期クロック信号であるクロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃの位相関係を確定的な状態で開始できる。
【００１５】
例えば、“スキャンシフト状態”から“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“に移行したクロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃの最初の立ち上がりクロックが１ｓｔ  Ｌａｕｎｃｈクロックとなり、“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“から”スキャンシフト状態“に移行する直前のクロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃの立ち上がりクロックがＬａｓｔ  Ｃａｐｔｕｒｅとなる。
【００１６】
ここでは、信号の立ち上がりエッジで同期化されているが、信号の立ち下がりエッジで同期化されてもよい。“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ”の間のクロック信号ＣＬＫｃのデユーティ比を “Ｈｉｇｈ”レベル期間ＴＨが２５％、“Ｌｏｗ”レベル期間ＴＬが７５％（デユーティ比２５％、７５％）にしているが、これに限定されることなく、任意に変更してもよい。
【００１７】
上述したように、本実施例の半導体集積回路では、クロック生成回路１と同期回路部２が設けられる。クロック生成回路１は、同期化されたクロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃを生成する。“スキャンシフト状態”では、クロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃは、それぞれクロック周波数（ｆ）を有し、同期化され、同位相の波形を有する。“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“では、クロック信号ＣＬＫａがクロック周波数（２ｆ）を有し、クロック信号ＣＬＫｂがクロック周波数（ｆ）を有し、クロック信号ＣＬＫｂがクロック周波数（ｆ／２）を有する。“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“の間のクロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃは、同期化される。
【００１８】
このため、スキャンシフト状態から“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“に移行するとき、同期回路部２の同期回路の状態を保持しながら、すべてのスキャンノードの値を維持したまま、同期クロック信号であるクロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃの位相関係を決定的な状態で開始できる。したがって、クロック生成回路１から出力されるクロック信号ＣＬＫａ、クロック信号ＣＬＫｂ、及びクロック信号ＣＬＫｃ間のｓｋｅｗの問題が発生しない。
【００１９】
なお、本実施例では、クロック生成回路１から３種類の同期化されたクロック信号を出力しているが、ｎ種類（ただし、ｎは２或いは４以上の整数）の同期化されたクロック信号を出力してもよい。
【実施例２】
【００２０】
次に、本発明の実施例２に係る半導体集積回路について、図面を参照して説明する。図３は、システムＬＳＩとしての半導体集積回路を示すブロック図、図４はクロック分周回路及びクロックゲーティング部から出力されるクロック信号を説明する図、図４（ａ）はクロック分周回路から出力されるクロック信号を説明する図、図４（ｂ）はクロックゲーティング部から出力されるクロック信号を説明する図である。本実施例では、クロック生成回路はクロック分周回路及びクロックゲーティング部から構成される。
【００２１】
図３に示すように、半導体集積回路３０ａには、クロック生成回路１ａと同期回路部２ａが設けられる。クロック生成回路１ａには、クロック分周回路１１及びクロックゲーティング部１２が設けられる。
【００２２】
クロック分周回路１１は、クロック信号ＣＬＫ及びスキャンシフト信号ＳＳを入力し、分周されたクロック信号ＣＬＫ１１、・・・、クロック信号ＣＬＫｋｋ、・・・、及びクロック信号ＣＬＫｍｍの計ｍ個のクロック信号を生成する。
【００２３】
クロックゲーティング部１２は、クロック分周回路１１と同期回路部２ａの間に設けられ、クロック信号ＣＬＫ、クロック信号ＣＬＫ１１、・・・、クロック信号ＣＬＫｋｋ、・・・、及びクロック信号ＣＬＫｍｍを入力し、クロック信号ＣＬＫにもとづいて、クロック信号ＣＬＫ１、・・・、クロック信号ＣＬＫｋ、・・・、及びクロック信号ＣＬＫｍの計ｍ個のクロック信号を生成する。クロック信号ＣＬＫ１、・・・、クロック信号ＣＬＫｋ、・・・、及びクロック信号ＣＬＫｍは同期化された同期クロック信号である。
【００２４】
同期回路部２ａは、クロック生成回路１から出力されるクロック信号ＣＬＫ１、・・・、クロック信号ＣＬＫｋ、・・・、及びクロック信号ＣＬＫｍと、クロック信号ＣＬＫと、スキャンシフト信号ＳＳと、スキャン入力信号Ｓｃａｎ  Ｉｎと、ファンクション入力信号ＦＮＣ  Ｉｎとを入力し、通常動作のとき、論理動作してファンクション出力信号ＦＮＣ  Ｏｕｔを出力し、スキャンテストのとき、スキャンテスト結果をスキャン出力信号Ｓｃａｎ  Ｏｕｔとして出力する。
【００２５】
図４（ａ）に示すように、クロック生成回路１ａに入力される、例えばデユーティ比５０％、５０％のクロック信号ＣＬＫの周波数を（ｆ）とすると、クロック分周回路１１から出力されるクロック信号ＣＬＫ１１の周波数が（ｎ×ｆ）で、クロック信号ＣＬＫｋｋの周波数が（ｎ×ｆ）で、クロック信号ＣＬＫｍｍの周波数が（ｆ／ｎ）であり、クロック信号ＣＬＫ１１、・・・、クロック信号ＣＬＫｋｋ、・・・、及びクロック信号ＣＬＫｍｍは、例えば、それぞれ信号の立ち上がりエッジで同期化され、デユーティ比５０％、５０％の信号である。なお、ｎの値は１以上であり、整数でない場合を含む。
【００２６】
図４（ｂ）に示すように、クロックゲーティング部１２から出力されるクロック信号ＣＬＫ１、・・・、クロック信号ＣＬＫｋ、・・・、及びクロック信号ＣＬＫｍは、“スキャンシフト状態”では、クロック信号ＣＬＫ１、・・・、クロック信号ＣＬＫｋ、・・・、及びクロック信号ＣＬＫｍの周波数が（ｆ）でそれぞれ信号の立ち上がりエッジで同期化される。そして、“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ”状態では、クロック信号ＣＬＫ１の周波数が（ｎ×ｆ）で、クロック信号ＣＬＫｋの周波数が（ｆ）で、クロック信号ＣＬＫｍの周波数が（ｆ／ｎ）で、例えば、それぞれ信号の立ち上がりエッジで同期化される。なお、それぞれ信号の立ち下がりエッジで同期化させてもよい。
【００２７】
同期回路部２ａでは、“スキャンシフト状態”から“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“に移行するとき、例えばＳＦＦの状態を保持しながら、すべてのスキャンノードの値を維持したまま、同期クロック信号であるクロック信号ＣＬＫ１、・・・、クロック信号ＣＬＫｋ、・・・、及びクロック信号ＣＬＫｍの位相関係を確定的な状態で開始できる。
【００２８】
上述したように、本実施例の半導体集積回路では、クロック生成回路１ａと同期回路部２ａが設けられる。クロック生成回路１ａには、クロック信号ＣＬＫ及びスキャンシフト信号ＳＳが入力され、同期化されたクロック信号ＣＬＫ１、・・・、クロック信号ＣＬＫｋ、・・・、及びクロック信号ＣＬＫｍを生成する。“スキャンシフト状態”では、クロック信号ＣＬＫ１、・・・、クロック信号ＣＬＫｋ、・・・、及びクロック信号ＣＬＫｍは、それぞれクロック周波数（ｆ）を有し、同期化され、同位相の波形を有する。“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“では、例えばクロック信号ＣＬＫ１がクロック周波数（ｎ×ｆ）を有し、クロック信号ＣＬＫｋがクロック周波数（ｆ）を有し、クロック信号ＣＬＫｍがクロック周波数（ｆ／ｎ）を有する。“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“の間のクロック信号ＣＬＫ１、・・・、クロック信号ＣＬＫｋ、・・・、及びクロック信号ＣＬＫｍは、同期化される。
【００２９】
このため、スキャンシフト状態から“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態“に移行するとき、同期回路部２ａの同期回路の状態を保持しながら、すべてのスキャンノードの値を維持したまま、同期クロック信号であるクロック信号ＣＬＫ１、・・・、クロック信号ＣＬＫｋ、・・・、及びクロック信号ＣＬＫｍの位相関係を決定的な状態で開始できる。したがって、クロック生成回路１ａから出力されるクロック信号ＣＬＫ１、・・・、クロック信号ＣＬＫｋ、・・・、及びクロック信号ＣＬＫｍ間のｓｋｅｗの問題が発生しない。
【００３０】
なお、本実施例では、クロック信号ＣＬＫのデユーティ比を５０％、５０％にしているが、必ずしもこれに限定されるものではなく、任意に変更してもよい。
【実施例３】
【００３１】
次に、本発明の実施例３に係る半導体集積回路について、図面を参照して説明する。図５は、システムＬＳＩとしての半導体集積回路を示すブロック図である。本実施例では、クロック生成回路から出力される２つのクロック信号は立ち上がりエッジで同期化される。
【００３２】
図５に示すように、半導体集積回路３０ｂには、クロック生成回路１ｂと同期回路部２ｂが設けられる。クロック生成回路１ｂには、クロック分周回路１１ａとクロックゲーティング部１２ａが設けられ、クロック信号ＣＬＫとスキャンシフト信号ＳＳを入力し、同期化されたクロック信号ＣＬＫａａ及びＣＬＫｂｂを出力する。ここでは、クロック信号ＣＬＫａａは、クロック信号ＣＬＫを用いている。
【００３３】
クロック分周回路１１ａには、フリップフロップＦＦ１とインバータＩＮＶ１が設けられる。フリップフロップＦＦ１は、半導体集積回路３０ｂ内部で生成、或いは外部から入力されるクロック信号ＣＬＫとスキャンシフト信号ＳＳとを入力し、スキャンシフト信号ＳＳが、例えば“Ｌｏｗ”レベルのとき、ノードＮ１の出力側の信号をインバータＩＮＶ１で反転させてデータ信号として帰還入力し、クロック信号ＣＬＫの（１／２）の周波数を有する分周されたクロック信号ＣＬＫＡをクロックゲーティング部１２ａに出力する。スキャンシフト信号ＳＳが、例えば“Ｈｉｇｈ”レベルのとき、クロック信号ＣＬＫＡを出力せずに一定な値の信号を出力する。
【００３４】
クロックゲーティング部１２ａは、クロック分周回路１１ａと同期回路部２ｂの間に設けられ、ラッチ回路ＬＡＴＣＨ１と２入力ＡＮＤ回路ＡＮＤ１が設けられる。ラッチ回路ＬＡＴＣＨ１は、フリップフロップＦＦ１と２入力ＡＮＤ回路ＡＮＤ１の間に設けられ、クロック信号ＣＬＫとクロック信号ＣＬＫＡとを入力し、クロック信号ＣＬＫの立ち上がりのときにデータ信号としてのクロック信号ＣＬＫＡをラッチし、ノードＮ２から信号を出力する。
【００３５】
２入力ＡＮＤ回路ＡＮＤ１は、ラッチ回路ＬＡＴＣＨ１と同期回路部２ｂの間に設けられ、ノードＮ２の信号とクロック信号ＣＬＫとを入力し、論理演算した信号をノードＮ３からクロック信号ＣＬＫｂｂとして同期回路部２ｂに出力する。なお、２入力ＡＮＤ回路ＡＮＤ１は、ノードＮ２の信号とクロック信号ＣＬＫが共に“Ｈｉｇｈ”レベルのときに“Ｈｉｇｈ”レベルの信号を出力し、それ以外のときは“Ｌｏｗ”レベルの信号を出力する。
【００３６】
同期回路部２ｂには、スキャンチェーンが構成され、第１のＳＦＦ部２１と第２のＳＦＦ部２２が設けられる。第１のＳＦＦ部２１には、クロック信号ＣＬＫａａの立ち上がりエッジで動作するＳＦＦが設けられ、図示しないファンクション入力信号を入力し、ファンクション出力信号ＦＮＣ  Ｏｕｔを出力する。第２のＳＦＦ部２２には、クロック信号ＣＬＫｂｂの立ち上がりエッジで動作するＳＦＦが設けられ、図示しないファンクション入力信号を入力し、ファンクション出力信号ＦＮＣ  Ｏｕｔを出力する。第１のＳＦＦ部２１と第２のＳＦＦ部２２は互いに信号のやりとりを行う。スキャンテストのとき、同期回路部２ｂはスキャン入力信号Ｓｃａｎ  Ｉｎを入力し、スキャンテスト結果をスキャン出力信号Ｓｃａｎ  Ｏｕｔとして出力する。
【００３７】
次に、クロック生成回路の動作について図面を参照して説明する。図６はクロック生成回路の動作を示すタイミングチャート、図７は従来の半導体集積回路を示すブロック図、図８は従来の半導体集積回路での遅延テストの実行を示すフローチャートである。ここで、タイミングチャートはＳＦＦ部の遅延故障（Delay  Fault）検出テストを行う場合に必要とされるクロック信号の波形変化を示している。
【００３８】
図６に示すように、スキャンシフト信号ＳＳが“Ｈｉｇｈ”レベルで、“スキャンイン”のとき、クロック分周回路１１ａから出力されるクロック信号ＣＬＫＡが“Ｈｉｇｈ”レベルとなる。このため、クロックゲーティング部１２ａから出力されるクロック信号ＣＬＫｂｂとクロック信号ＣＬＫａａは、同じ周波数で、信号の立ち上がりエッジで同期化された同位相の信号となる。第１のＳＦＦ部２１にはクロック信号ＣＬＫａａが入力され、第２のＳＦＦ部２２にはクロック信号ＣＬＫａａと同期化された同位相の信号であるクロック信号ＣＬＫｂｂが入力される。
【００３９】
次に、“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ”のとき、スキャンシフト信号ＳＳが“Ｌｏｗ”レベルに変化してクロック分周回路１１ａが分周動作を開始する。“スキャンイン”のときと比較して、例えば２倍の周波数のクロック信号ＣＬＫが入力されると、クロック分周回路１１ａはクロック信号ＣＬＫと同じ周波数のクロック信号ＣＬＫＡを出力する。クロックゲーティング部１２ａは、２倍の周波数のクロック信号ＣＬＫの最初の立ち上がりエッジ及び３周期目の立ち上がりエッジで動作する。
【００４０】
クロックゲーティング部１２ａから出力されるクロック信号ＣＬＫｂｂは、“スキャンイン”のときの２倍の周波数を有するクロック信号ＣＬＫに信号の立ち上がりエッジで同期化され、“スキャンイン”のときのクロック信号ＣＬＫと同じ周波数を有し、“Ｈｉｇｈ”レベル期間が２５％で、“Ｌｏｗ”レベル期間が７５％の信号となる。このクロック信号ＣＬＫｂｂが第２のＳＦＦ部２２に入力され、クロック信号ＣＬＫｂｂの最初の立ち上がりエッジ（Ｌａｕｎｃｈクロック）で、スキャンチェーンを構成する第２のＳＦＦ部２２がスキャンテストされ、クロック信号ＣＬＫｂｂの２番目の立ち上がりエッジ（Ｃａｐｔｕｒｅクロック）で、データがキャプチャされる。
【００４１】
続いて、スキャンシフト信号ＳＳが“Ｈｉｇｈ”レベル、“スキャンアウト”のとき、クロック分周回路１１ａから出力されるクロック信号ＣＬＫＡが“Ｈｉｇｈ”レベルとなる。このため、クロックゲーティング部１２ａから出力されるクロック信号ＣＬＫｂｂとクロック信号ＣＬＫａａは信号の立ち上がりエッジで同期化された同位相の信号となる。“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ”でスキャンテストされた第２のＳＦＦ部２２のデータがスキャンチェーンを構成する第１のＳＦＦ部２１のＳＦＦに入力され、クロック信号ＣＬＫａａの立ち上がりエッジでスキャンテストされる。スキャンテストされた遅延テスト結果は第１のＳＦＦ部２１側から信号出力される。
【００４２】
スキャンチェーンを構成する第１のＳＦＦ部２１及び第２のＳＦＦ部２２は、信号の立ち上がりエッジで同期化されたクロック信号ＣＬＫａａ及びＣＬＫｂｂにもとづいてスキャンテストされるので、確度の高いＳＳＦ部の遅延テストが実行される。
【００４３】
図７に示すように、マルチプレクサを用いたスキャンテストを行う従来の半導体集積回路３０ｃには、クロック分周回路１１ｂ、同期回路部２ｂ、及びマルチプレクサＭＵＸ１が設けられる。なお、同期回路部２ｂは本実施例と同じ構成なので説明を省略する。
【００４４】
クロック分周回路１１ｂには、フリップフロップＦＦ２とインバータＩＮＶ１が設けられる。フリップフロップＦＦ２は、半導体集積回路３０ｃ内部で生成、或いは外部から入力されるクロック信号ＣＬＫを入力し、ノードＮ１の出力側の信号をインバータＩＮＶ１で反転させてデータ信号として帰還入力し、クロック信号ＣＬＫの（１／２）の周波数を有する分周されたクロック信号ＣＬＫＡをマルチプレクサＭＵＸ１に出力する。
【００４５】
マルチプレクサＭＵＸ１は、フリップフロップＦＦ２と同期回路部２ｂの間に設けられ、クロック信号ＣＬＫＡとクロック信号ＣＬＫを入力し、マルチプレクサ制御信号ＭＳＳにもとづいて、クロック信号ＣＬＫＡ或いはクロック信号ＣＬＫを選択し、クロック信号ＣＬＫＢとして第２のＳＦＦ部２２に出力する。
【００４６】
図８に示すように、従来の半導体集積回路３０ｃでの遅延テストでは、スキャンテストのとき、マルチプレクサＭＵＸ１から出力されるクロック信号ＣＬＫＢはクロック信号ＣＬＫが選択される。スキャンチェーンを構成する第２のＳＦＦ部２２は、クロック信号ＣＬＫの（１／２）の周波数を有する分周されたクロック信号ＣＬＫＡで動作するパスであり、期待値をマスクするために、ＳＦＦから次のＳＦＦへの遷移パスがマスクされる（ステップＳ１）。
【００４７】
次に、マルチプレクサＭＵＸ１から出力されるクロック信号ＣＬＫＢは、分周されたクロック信号ＣＬＫＡが選択される（ステップＳ２）。
【００４８】
続いて、第２のＳＦＦ部２２のスキャンテストを実行するために、ＳＦＦから次のＳＦＦへの遷移パスのマスクを外す。スキャンチェーンを構成する第２のＳＦＦ部２２のＳＦＦに分周されたクロック信号ＣＬＫＡが入力され、分周されたクロック信号ＣＬＫＡの立ち上がりエッジでスキャンテストされる（ステップＳ３）。
【００４９】
そして、クロック信号ＣＬＫの周波数を（１／２）に変更してから、マルチプレクサＭＵＸ１から出力されるクロック信号ＣＬＫＢは前のクロック信号ＣＬＫの（１／２）の周波数を有するクロック信号ＣＬＫが選択される。スキャンチェーンを構成する第１のＳＦＦ部２１に第２のＳＦＦ部２２のデータ及び前のクロック信号ＣＬＫの（１／２）の周波数を有するクロック信号ＣＬＫが入力され、前のクロック信号ＣＬＫの（１／２）の周波数を有するクロック信号ＣＬＫの立ち上がりエッジでスキャンテストされる。スキャンテストされた遅延テスト結果は第１のＳＦＦ部２１側から信号出力される（ステップＳ４）。
【００５０】
スキャンテストを行うステップが本実施例ではパターン生成の手順が１ステップで完了するのに対し、従来の半導体集積回路での遅延テストでは、４ステップ必要となる。更に、クロックラインにマルチプレクサが挿入されているので、クロック信号ＣＬＫとクロック信号ＣＬＫＡ間のｓｋｅｗに起因するタイミング調整の困難さが発生する。
【００５１】
上述したように、本実施例の半導体集積回路では、クロック生成回路１ｂと同期回路部２ｂが設けられる。クロック生成回路１ｂには、クロック分周回路１１ａとクロックゲーティング部１２ａが設けられる。クロック分周回路１１ａには、フリップフロップＦＦ１とインバータＩＮＶ１が設けられる。フリップフロップＦＦ１は、スキャンシフト信号ＳＳが“Ｌｏｗ”レベルのとき、クロック信号ＣＬＫの（１／２）の周波数を有する分周されたクロック信号ＣＬＫＡを出力し、スキャンシフト信号ＳＳが“Ｈｉｇｈ２レベルのとき、一定な値の信号を出力する。クロックゲーティング部１２ａは、ラッチ回路ＬＡＴＣＨ１と２入力ＡＮＤ回路ＡＮＤ１が設けられ、スキャンシフト信号ＳＳが”Ｌｏｗ“レベルのとき、クロック信号ＣＬＫにもとづいて、クロック信号ＣＬＫの（１／２）の周波数を有し、立ち上がりがクロック信号ＣＬＫの立ち上がりと同期したクロック信号ＣＬＫｂｂを生成し、スキャンシフト信号ＳＳが”Ｈｉｇｈ“レベルのとき、クロック信号ＣＬＫを選択し、クロック信号ＣＬＫｂｂとして出力する。同期回路部２ｂには、スキャンチェーンが構成され、第１のＳＦＦ部２１と第２のＳＦＦ部２２が設けられる。
【００５２】
このため、クロックデ分周回路１１ａで分周されたクロック信号ＣＬＫＡは、クロックゲーティング部１２ａでスキャンシフト信号ＳＳが“Ｌｏｗ”レベルのときに、クロック信号ＣＬＫにもとづいて、クロック信号ＣＬＫの（１／２）の周波数を有し、立ち上がりがクロック信号ＣＬＫの立ち上がりと同期したクロック信号ＣＬＫｂｂとなるので、分周されたクロック信号と分周前のクロック信号が同じ種類のクロックであるとスキャンパターンソフトウエアには認識される。また、分周されたクロック信号はＬａｎｃｈ及びＣａｐｔｕｒｅクロック印加時には同じ波形となり、クロック信号ＣＬＫをクロックとして定義し、一括してスキャンパターン生成が可能となるので、スキャンパターン生成の手順を１ステップで完了させることができる。更に、クロックラインに従来用いられるマルチプレクサを挿入する必要がないので、クロック信号と分周されたクロック信号間のｓｋｅｗに起因するタイミング調整の困難が発生しない。
【００５３】
本実施例では、まず第２のＳＦＦ部２２がスキャンテストされ、次に第１のＳＦＦ部２１がスキャンテストされているが、スキャンパスを変更し、まず第１のＳＦＦ部２１がスキャンテストされ、次に第２のＳＦＦ部２２がスキャンテストされて第２のＳＦＦ部２２側から遅延テスト結果を出力してもよい。また、同期回路部２ｂに入力されるクロック信号ＣＬＫａａにクロック信号ＣＬＫを用いているが、クロック生成回路１ｂに２分周するクロック分周回路及びクロックゲーティング部を追加し、２分周するクロック分周回路及びクロックゲーティング部を用いて、クロック信号ＣＬＫとは異なるクロック信号ＣＬＫａａを生成してもよい。この場合、クロック生成回路の回路規模が増大するが、“Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ”でクロック信号ＣＬＫの周波数を変更する必要がなくなる。
【実施例４】
【００５４】
次に、本発明の実施例３に係る半導体集積回路について、図面を参照して説明する。図９は、システムＬＳＩとしての半導体集積回路を示すブロック図である。本実施例では、クロック分周回路に入力されるクロック信号とクロックゲーティング部から出力される分周されたクロック信号は立ち上がりエッジで同期化される。
【００５５】
以下、実施例３と同一構成部分には、同一符号を付してその部分の説明を省略し、異なる部分のみ説明する。
【００５６】
図９に示すように、半導体集積回路３０ｄには、クロック生成回路１ｃと同期回路部２ｂが設けられる。クロック生成回路１ｃには、クロック分周回路１１ｃとクロックゲーティング部１２ｃが設けられ、クロック信号ＣＬＫ及びスキャンシフト信号ＳＳが入力され、同期化されたクロック信号ＣＬＫａａ及びＣＬＫｂｂを出力する。ここでは、クロック信号ＣＬＫａａにクロック信号ＣＬＫを用いている。
【００５７】
クロック分周回路１１ｃには、フリップフロップＦＦ２、インバータＩＮＶ１、及び２入力ＯＲ回路ＯＲ１が設けられる。フリップフロップＦＦ２は、半導体集積回路３０ｄ内部で生成、或いは外部から入力されるクロック信号ＣＬＫを入力する。フリップフロップＦＦ２の出力側のノードＮ１の信号はインバータＩＮＶ１で反転され、反転信号が２入力ＯＲ回路ＯＲ１の入力側に入力される。２入力ＯＲ回路ＯＲ１は、この反転信号とスキャンシフト信号ＳＳとを入力し、論理演算した信号をフリップフロップＦＦ２（データポート）に出力する。２入力ＯＲ回路ＯＲ１は、インバータＩＮＶ１から出力される反転信号とスキャンシフト信号ＳＳが共に“Ｌｏｗ”レベルのときに“Ｌｏｗ”レベルの信号を出力し、それ以外では“Ｈｉｇｈ”レベルの信号を出力する。
【００５８】
ここで、スキャンシフト信号ＳＳが、例えば“Ｌｏｗ”レベルのとき、クロック分周回路１１ｃはクロック信号ＣＬＫの（１／２）の周波数を有する分周されたクロック信号を出力し、スキャンシフト信号ＳＳが、例えば“Ｈｉｇｈ”レベルのとき、クロック信号ＣＬＫの（１／２）の周波数を有する信号を出力せずに一定な値の信号を出力する。
【００５９】
クロックゲーティング部１２ｃは、クロックト分周回路１１ｃと同期回路部２ｂの間に設けられ、２入力ＯＲ回路ＯＲ２、ラッチ回路ＬＡＴＣＨ１、及び２入力ＡＮＤ回路ＡＮＤ１が設けられる。
【００６０】
２入力ＯＲ回路ＯＲ２は、フリップフロップＦＦ２とラッチ回路ＬＡＴＣＨ１の間に設けられ、フリップフロップＦＦ２の出力側のノードＮ１の信号とスキャンシフト信号ＳＳとを入力し、論理演算した信号をクロック信号ＣＬＫＡとしてラッチ回路ＬＡＴＣＨ１に出力する。
【００６１】
ここで、２入力ＯＲ回路ＯＲ２から出力されるクロック信号ＣＬＫＡは、スキャンシフト信号ＳＳが“Ｌｏｗ”レベルのとき、分周されたクロック信号となり、スキャンシフト信号ＳＳが“Ｈｉｇｈ”レベルのとき、一定な値となる。
【００６２】
なお、クロックゲーティング部１２ｃから出力されるクロック信号ＣＬＫｂｂは、図６（実施例３）と同様な波形となるので説明を省略する。
【００６３】
上述したように、本実施例の半導体集積回路では、クロック生成回路１ｃと同期回路部２ｂが設けられる。クロック生成回路１ｃには、クロック分周回路１１ｃとクロックゲーティング部１２ｃが設けられる。クロック分周回路１１ｃには、フリップフロップＦＦ２、インバータＩＮＶ１、及び２入力ＯＲ回路ＯＲ１が設けられる。フリップフロップＦＦ２は、スキャンシフト信号ＳＳが“Ｌｏｗ”レベルのとき、クロック信号ＣＬＫの（１／２）の周波数を有する分周されたクロック信号を出力し、スキャンシフト信号ＳＳが“Ｈｉｇｈ”レベルのとき、一定な値の信号を出力する。クロックゲーティング部１２ｃは、２入力ＯＲ回路ＯＲ２、ラッチ回路ＬＡＴＣＨ１、及び２入力ＡＮＤ回路ＡＮＤ１が設けられ、スキャンシフト信号ＳＳが“Ｌｏｗ”レベルのとき、クロック信号ＣＬＫにもとづいて、クロック信号ＣＬＫの（１／２）の周波数を有し、立ち上がりがクロック信号ＣＬＫの立ち上がりと同期したクロック信号ＣＬＫｂｂを生成し、スキャンシフト信号ＳＳが“Ｈｉｇｈ”レベルのとき、クロック信号ＣＬＫを選択し、クロック信号ＣＬＫｂｂとして出力する。同期回路部２ｂには、スキャンチェーンが構成され、第１のＳＦＦ部２１と第２のＳＦＦ部２２が設けられる。
【００６４】
このため、クロック分周回路１１ｃで分周されたクロック信号ＣＬＫＡは、クロックゲーティング部１２ｃでスキャンシフト信号ＳＳが“Ｌｏｗ”レベルのときに、クロック信号ＣＬＫにもとづいて、クロック信号ＣＬＫの（１／２）の周波数を有し、立ち上がりがクロック信号ＣＬＫの立ち上がりと同期したクロック信号ＣＬＫｂｂとなるので、分周されたクロック信号と分周前のクロック信号が同じ種類のクロックであるとスキャンパターンソフトウエアには認識される。また、分周されたクロック信号はＬａｎｃｈ及びＣａｐｔｕｒｅクロック印加時には同じ波形となり、クロック信号ＣＬＫをクロックとして定義し、一括してスキャンパターン生成が可能となるので、スキャンパターン生成の手順を１ステップで完了させることができる。更に、クロックラインに従来用いられるマルチプレクサを挿入する必要がないので、クロック信号と分周されたクロック信号間のｓｋｅｗに起因するタイミング調整の困難が発生しない。
【００６５】
本発明は、上記実施例に限定されるものではなく、発明の趣旨を逸脱しない範囲で、種々、変更してもよい。
【００６６】
例えば、実施例では、システムＬＳＩに適用したがメモリ、論理回路、アナログ回路などを同一チップに搭載したＳｏＣ（System  on  a  Chip）などに適用してもよい。また、クロック生成回路から出力される同期クロック信号をスキャンテスト信号に適用しているが、スキャンテスト以外で、論理回路のクロック信号として適用してもよい。
【００６７】
本発明は、以下の付記に記載されているような構成が考えられる。  
（付記１）  クロック信号とスキャンシフト信号とが入力され、前記クロック信号にもとづいて、ｎ（ただし、ｎは１以上）或いは（１／ｎ）分周された分周クロック信号を生成するクロック分周回路と、前記クロック信号と前記分周クロック信号とが入力され、前記クロック信号にもとづいて、前記クロック信号に同期する同期クロック信号を生成するクロックゲーティング部とを有するクロック生成回路と、前記クロック信号及び前記同期クロック信号を用いてスキャン設計され、スキャンチェーンを構成する同期回路を有し、Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態のときに前記クロック信号の前記ｎ或いは（１／ｎ）の周波数を有する前記同期クロック信号と前記クロック信号とが入力され、スキャンシフト状態から前記Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態に移行するときに、すべてのスキャンノードの値を維持したまま、前記同期クロック信号の最初のクロックを１ｓｔ  Ｌａｕｎｃｈクロックとして入力し、前記Ｌａｕｎｃｈ／Ｃａｐｔｕｒｅ状態から前記スキャンシフト状態に移行する直前の前記同期クロック信号のクロックをＬａｓｔ  Ｃａｐｔｕｒｅクロックとして入力する同期回路部とを具備し、前記１ｓｔ  Ｌａｕｎｃｈクロックから前記Ｌａｓｔ  Ｃａｐｔｕｒｅクロックまでのクロックは同じ波形である半導体集積回路。
【００６８】
（付記２）  前記同期クロック信号は、前記クロック信号の立ち上がり或いは立ち下がりエッジで同期される付記１に記載の半導体集積回路。
【００６９】
（付記３）  前記クロックゲーティング部は、前記分周クロック信号と前記クロック信号とが入力され、前記クロック信号の立ち上がりエッジでデータ信号としての前記分周信号をラッチするラッチ回路と、前記ラッチ回路から出力される信号と前記クロック信号とが入力され、前記同期クロック信号を出力する２入力ＮＡＮＤ回路から構成される付記１に記載の半導体集積回路。
【００７０】
（付記４）  前記同期回路部は、前記クロック信号が入力される第１のＳＦＦ部と、前記同期クロック信号が入力される第２のＳＦＦ部とを有し、前記第１のＳＦＦ部及び前記第２のＳＦＦ部はスキャンチェーンを構成する付記１に記載の半導体集積回路。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施例１に係るシステムＬＳＩとしての半導体集積回路を示すブロック図。
【図２】本発明の実施例１に係るクロック生成回路から出力されるクロック信号の波形を示す図。
【図３】本発明の実施例２に係るシステムＬＳＩとしての半導体集積回路を示すブロック図。
【図４】本発明の実施例２に係るクロック分周回路及びクロックゲーティング部から出力されるクロック信号を説明する図。
【図５】本発明の実施例３に係るシステムＬＳＩとしての半導体集積回路を示すブロック図。
【図６】本発明の実施例３に係るクロック生成回路の動作を示すタイミングチャート。
【図７】本発明の実施例３に係る従来の半導体集積回路を示すブロック図。
【図８】本発明の実施例３に係る従来の半導体集積回路での遅延テストの実行を示すフローチャート。
【図９】本発明の実施例４に係るシステムＬＳＩとしての半導体集積回路を示すブロック図。
【符号の説明】
【００７２】
１、１ａ、１ｂ、１ｃ  クロック生成回路
２、２ａ、２ｂ  同期回路部
１１、１１ａ、１１ｂ、１１ｃ  クロック分周回路
１２、１２ａ、１２ｃ  クロックゲーティング部
２１  第１のＳＦＦ部
２２  第２のＳＦＦ部
３０、３０ａ、３０ｂ、３０ｃ、３０ｄ  半導体集積回路
ＡＮＤ１  ２入力ＡＮＤ回路
ＣＬＫ、ＣＬＫ１、ＣＬＫ１１、ＣＬＫＡ、ＣＬＫＢ、ＣＬＫａ、ＣＬＫｂ、ＣＬＫｃ、ＣＬＫｋ、ＣＬＫｍ、ＣＬＫａａ、ＣＬＫｂｂ、ＣＬＫｋｋ、ＣＬＫｍｍ  クロック信号
ＦＦ１、ＦＦ２  フリップフロップ
ＦＮＣ  Ｉｎ  ファンクション入力信号
ＦＮＣ  Ｏｕｔ  ファンクション出力信号
ＩＮＶ１  インバータ
ＬＡＴＣＨ１  ラッチ回路
ＭＳＳ  マルチプレクサ制御信号
ＭＵＸ１  マルチプレクサ
Ｎ１〜３、Ｎ１１  ノード
ＯＲ１、ＯＲ２  ２入力ＯＲ回路
Ｓｃａｎ  Ｉｎ  スキャン入力信号
Ｓｃａｎ  Ｏｕｔ  スキャン出力信号
ＳＳ  スキャンシフト信号
【図１】
2008122159.tif 000003
【図２】
2008122159.tif 000004
【図３】
2008122159.tif 000005
【図４】
2008122159.tif 000006
【図５】
2008122159.tif 000007
【図６】
2008122159.tif 000008
【図７】
2008122159.tif 000009
【図８】
2008122159.tif 000010
【図９】
2008122159.tif 000011