(57)【特許請求の範囲】
【請求項１】
内部に複数の論理回路と各論理回路間に配置された複数のフリップフロップ回路とを含む集積回路装置であって、
上記各フリップフロップ回路は、
スキャンテスト信号を受ける第１の入力部と、
上記論理回路に接続され、上記論理回路に入力されたスキャンテスト信号に応じた論理回路の出力をデータ信号として受ける第２の入力部と、
フリップフロップ回路内への入力を上記スキャンテスト信号とデータ信号とに切り換えるための制御信号を受ける第３の入力部と、
クロック信号を受ける第４の入力部と、
上記論理回路に接続されスキャンテスト信号を上記論理回路内に送るための第１の出力部と、
データ信号及びスキャン信号を出力するための第２の出力部と
を備え、
上記複数のフリップフロップ回路のうちの任意のフリップフロップ回路の第２の出力部と次段のフリップフロップ回路の第１の入力部とが順次接続されて、上記複数のフリップフロップ回路を直列に接続したスキャンテスト回路が形成されていて、
複数のホールド用信号により上記複数のフリップフロップ回路内の上記第１の出力部からの出力値を各々固定する機能を有し、
上記複数のホールド用信号は、上記複数のフリップフロップ回路内の上記第１の出力部からの出力値の固定を順次解除していくように状態が変化し、上記複数の論理回路に上記スキャンテスト信号が順次入力される
ことを特徴とする集積回路装置。
【請求項２】
請求項１記載の集積回路装置において、
上記各フリップフロップ回路は、上記フリップフロップ回路の上記第１の出力部からの出力値が、上記ホールド信号を受けたときに保持している値に固定されるように構成されていることを特徴とする集積回路装置。
【請求項３】
請求項１記載の集積回路装置において、
上記各フリップフロップ回路は、上記ホールド信号を受ける第５の入力部を備えることを特徴とする集積回路装置。
【請求項４】
請求項３記載の集積回路装置において、
上記各フリップフロップ回路における第５の入力部は上記第３の入力部と共通化されていることを特徴とする集積回路装置。
【請求項５】
請求項１記載の集積回路装置において、
上記各フリップフロップ回路は、上記フリップフロップ回路の上記第１の出力部からの出力値が、上記ホールド信号を受けたときに保持している値に拘わらず１又は０に固定されるように構成されていることを特徴とする集積回路装置。
【請求項６】
請求項１記載の集積回路装置において、
上記クロック信号のレベルを固定し、上記クロック信号のレベルが固定される間に、上記第１の出力部からの出力値の固定を順次解除していくように状態が変化し、上記複数の論理回路に上記スキャンテスト信号が順次入力されることを特徴とする集積回路装置。
【請求項７】
請求項１〜６のうちいずれか１つに記載の集積回路装置において、
前記複数のフリップフロップ回路は複数のグループに分けられ、上記複数のホールド用信号は、上記複数のフリップフロップ回路内の上記第１の出力部からの出力値の固定をグループ単位で順次解除していくように状態が変化することを特徴とする集積回路装置。
【請求項８】
内部に複数の論理回路と各論理回路間に配置された複数のフリップフロップ回路とを含み、各フリップフロップ回路を順次接続してなるスキャンテスト回路を備えた集積回路装置のテスト方法であって、
上記フリップフロップ回路から上記各論理回路に接続される経路への出力信号を固定するホールド動作を行うステップ（ａ）と、
上記ステップ（ａ）により上記フリップフロップ回路からの出力信号が固定されている状態で上記各フリップフロップ回路にスキャンテスト信号を順次送るとともに、上記各フリップフロップ回路からデータ信号を順次集積回路装置の外部に送り出すシフト動作を行うステップ（ｂ）と、
上記シフト動作の終了後に、上記ステップ（ａ）で固定された出力信号の固定を解除するホールド解除動作を行うステップ（ｃ）とを有し、
上記ステップ（ｃ）におけるホールド解除動作は、上記複数のフリップフロップ回路に対して順次実行されることを特徴とする集積回路装置のテスト方法。
【請求項９】
請求項８記載の集積回路装置のテスト方法において、
更に、上記ステップ（ｃ）の後に、上記論理回路からの出力信号をフリップフロップ回路に取り込むキャプチャ動作を行うステップ（ｄ）を有し、
上記ステップ（ｄ）におけるキャプチャ動作は上記複数の論理回路に対して順次実行されることを特徴とする集積回路装置のテスト方法。
【請求項１０】
請求項９記載の集積回路装置のテスト方法において、
上記論理回路内は、複数のグループに分けられており、
上記ステップ（ａ）は、出力信号の値を固定時にフリップフロップ回路内に保持されている値に固定するように行われ、
上記ステップ（ｃ）は、上記各グループごとに行われ、
上記ステップ（ａ）は、第１回目のシフト動作が終了した後は、ステップ（ｃ）の後でステップ（ｄ）の前に行われることを特徴とする集積回路装置のテスト方法。
【請求項１１】
請求項９記載の集積回路装置のテスト方法において、
上記論理回路内は、複数のグループに分けられており、
上記ステップ（ａ）は、出力信号の値を固定時にフリップフロップ回路内に保持されている値に固定するように行われ、
上記ステップ（ｃ）及び（ｄ）は、上記各グループ別に、かつ、あるグループのキャプチャ動作が当該グループのホールド解除動作の後になるように行われ、
上記ステップ（ａ）は、第１回目のシフト動作が終了した後においては、ステップ（ｄ）の後に行われることを特徴とする集積回路装置のテスト方法。
【請求項１２】
請求項９記載の集積回路装置のテスト方法において、
上記論理回路内は、複数のグループに分けられており、
上記ステップ（ａ）は、出力信号の値を固定時にフリップフロップ回路内に保持されている値に拘わらず１又は０に固定するように、かつ、上記各グループごとに行われ、
上記ステップ（ｃ）及び（ｄ）は、上記複数のグループに分けられた各グループ別に、かつ、あるグループのキャプチャ動作が当該グループのホールド解除動作の後になるように行われ、
上記ステップ（ａ）は、第２回目のシフト動作以後においては、ステップ（ｄ）の後に行われることを特徴とする集積回路装置のテスト方法。
【請求項１３】
請求項９記載の集積回路装置のテスト方法において、
上記ステップ（ｂ）におけるシフト動作の終了後に、上記複数のフリップフロップ回路に入力されるクロック信号のレベルを固定するステップ（ｅ）を有し、
上記ステップ（ｃ）において上記複数のフリップフロップ回路に対して順次実行されるホールド解除動作は、上記ステップ（ｅ）において上記クロック信号のレベルが固定されている間に実行されることを特徴とする集積回路装置のテスト方法。
【請求項１４】
請求項１０〜１２のうちいずれか１つに記載の集積回路装置のテスト方法において、
上記論理回路内のグループ分けは、テスト時におけるピークの消費電力が集積回路装置の実使用時の許容値を超えないように行われることを特徴とする集積回路装置のテスト方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スキャンテスト回路を備えた集積回路装置及びそのテスト方法に関するものである。
【０００２】
【従来の技術】
従来より、システムＬＳＩなどの集積回路装置において、内部に多数の回路を備えるとともに、この回路の試験のためにスキャンテスト回路を備えたものが知られている。
【０００３】
図１３は、集積回路装置の設計段階において設計しようとする回路のデータをデータベースから取り出して設計する状態を示す斜視図である。データベースには、各回路に関するデータがＣＯＲＥ１，ＣＯＲＥ２，ＣＯＲＥ３，ＣＯＲＥ４として登録されており、これらのＣＯＲＥをデータベースから取り出して、集積回路装置内に適宜配置する。これらのＣＯＲＥのデータとしては、以前に利用したものを再利用する場合もあれば新規に作成する場合もある。
【０００４】
そして、図１３には示されていないが、集積回路装置内の各論理回路の試験を行うためのスキャンテスト回路が形成されているものがある。このスキャンテスト方式とは、集積回路装置内のフリップフロップを利用して、集積回路装置内の各要素（特にロジック回路の要素）が正常に動作するかどうかなどを検査するものであって、これらのフリップフロップを数珠つなぎにして、試験モードのときにはこれをシフトレジスタとして動作させるスキャンテスト回路を形成する方式である。そして、集積回路装置の入出力ピンを、シフト入力端子及びシフト出力端子として利用することにより、内部のフリップフロップが外部からアクセスできるようになる。また、この方式によって、内部の論理回路を組合せ回路として取り扱うことができるので、自己診断機能を実現することができる。ここで、組合せ回路とは、記憶動作を行なわない素子であるＡＮＤ，ＯＲ，ゲート等の素子によって構成された回路をいう。
【０００５】
図１４（ａ）は、スキャンテスト回路を備えた従来のシステムＬＳＩの一部を示す図である。同図に示すように、システムＬＳＩ中の内部回路である組合せ回路１１０と別の組合せ回路１１０との間には、各組合せ回路１１０に接続されるスキャンテスト用のフリップフロップ１１１Ａ〜１１１Ｆが設けられている。なお、図１４（ａ）においては、組合せ回路１１０を１つしか表示していないが、実際には、多数の組合せ回路が設けられており、各組合せ回路と組合せ回路との間には、スキャンテスト回路を構成するフリップフロップが配置されている。
【０００６】
ここで、フリップフロップ１１１は、データ信号を取り込むためのＤ端子と、スキャンテスト信号を取り込むためのＤＴ端子と、クロック信号を取り込むためのクロック端子と、動作モード設定用のＮＴ信号を取り込むためのＮＴ端子と、スキャンテスト信号及びデータ信号を出力するためのＱ端子とを有している（なお、図示されていないが、一般的なフリップフロップには／Ｑ端子も設けられている）。
【０００７】
そして、あるフリップフロップ（例えば１１１Ａ）のＱ端子と、これに隣接するフリップフロップ（例えば１１１Ｂ）のＤＴ端子とを順次接続し、フリップフロップ１１１Ａ〜１１１Ｆが数珠繋ぎになるようにスキャンテスト回路を構成している。そして、システムＬＳＩへのスキャンテスト信号入力端子として機能する入力ピンから入力されるスキャン・イン信号を、システムＬＳＩ内の１つのスキャンテスト回路中の先頭に配置されるフリップフロップのＤＴ端子で受けて、スキャンテスト回路中の最終段のフリップフロップのＱ端子からスキャン・アウト信号をシステムＬＳＩの出力ピンを経て外部に出力するように構成されている。一般的に、システムＬＳＩ内には、数個から数１０個程度のスキャンテスト回路が形成されている。
【０００８】
システムＬＳＩのテスト時には、システムＬＳＩのスキャンテスト信号入力端子となっている入力ピンと、スキャンテスト出力端子となっている出力ピンとはテスターに接続され、テスターから出力されるスキャンテスト信号ＤＴをスキャンテスト信号入力端子で受けるとともに、システムＬＳＩ内の組合せ回路を経たデータ信号Ｄ（スキャンテスト信号が組合せ回路内を通過した結果得られるデータ値）をテスター内に取り込んで、データ信号Ｄの値と期待値とをテスターで比較することにより、各組合せ回路１１０内の各要素の良否を判定できるように構成されている。
【０００９】
このテスターを用いたシステムＬＳＩのテスト時には、ＮＴ信号がテストモードに切り換わる。特に、スキャンテストのためのテストモードとしては、シフトモードとキャプチャモードとがある。
【００１０】
図１４（ｂ）は、スキャンテスト時における制御状態の時間に対する遷移を示す図である。ＮＴ信号がシフトモードの間には、各フリップフロップ１１１Ａ〜１１１Ｆにスキャンテスト信号ＤＴが送り込まれる。つまり、１クロックごとにあるフリップフロップのＱ端子から次段のフリップフロップのＤＴ端子へスキャンテスト信号が順次送り込まれて、スキャンテスト回路を形成しているすべてのフリップフロップに、組合せ回路に入力しようとするテストスキャン信号が保持された状態となる。このとき、スキャンテスト回路内のフリップフロップ数に応じたクロック数（一般的には数１００クロック以上）に相当する時間（つまり数１００クロック以上の周期）が必要である。そして、フリップフロップ１１１Ａ〜１１１Ｆにスキャンテスト信号ＤＴが取り込まれた状態で、ＮＴ信号がキャプチャモードになると、各フリップフロップ１１１Ａ〜１１１Ｆ内にデータ信号が取り込まれる。このときは、各フリップフロップ１１１Ａ〜１１１Ｆに同時にデータ信号を取り込めばよいので、１クロックに相当する時間でキャプチャが行なわれる。このデータ信号Ｄは、組合せ回路１１０内を通過した信号であって、組合せ回路１１０に入力されたスキャンテスト信号ＤＴの値に応じた出力値を持っている。そして、次のシフトモードにおいて、各フリップフロップ１１１Ａ〜１１１Ｆに、次のスキャンテスト信号ＤＴが送り込まれていくが、そのとき、同時に各フリップフロップ１１１Ａ〜１１１Ｆに保持されているデータ信号Ｄが、出力ピンからテスターに送り出され、シフトモード動作が終了した時点では、スキャンテスト回路内のフリップフロップ１１１Ａ〜１１１Ｆには、キャプチャモードで取り込んだデータ信号Ｄに代わってスキャンテスト信号ＤＴが保持された状態となっている。その後、キャプチャ，シフト，キャプチャ，…を繰り返す。
【００１１】
つまり、当該組合せ回路１１０に入力されたスキャンテスト信号ＤＴが各組合せ回路を通過した結果得られるはずの期待値と、当該組合せ回路１１０から現実に出力されるデータ信号Ｄとを比較することにより、各組合せ回路１１０の良否の判定が行える。
【００１２】
このスキャンテストを行なうに際しては、集積回路装置のスキャンテストを短時間で済ませるために、できるだけ多くの組合せ回路を同時に動作させる必要がある。これは、テスターのランニングコストが高価なために、テスターを使用している時間が長いと、最終的に集積回路装置のコストの上昇をきたすからである。
【００１３】
そのために、スキャンテスト用の信号を各フリップフロップに送る際には、一般的には、フリップフロップ数に応じたテストパターンをその数のクロック数でシフトさせてから、１クロックでキャプチャ動作に入るという一連の流れで行なわれているのである。
【００１４】
【発明が解決しようとする課題】
しかしながら、上記集積回路装置のスキャンテストのごとく、短時間で多くのＣＯＲＥを動作させると、テスト時の瞬間的な消費電力（ピーク消費電力）がきわめて大きくなるおそれが生じてきている。特に、近年、きわめて多数かつ多種類の回路を１チップ内に収納したシステムＬＳＩのような集積回路装置を形成する際には、このピーク消費電力が非常に大きくなることが予想される。
【００１５】
図１５は、スキャンテスト時における集積回路装置全体の消費電力の経時変化を例示する図である。同図に示すように、ＣＯＲＥ１，ＣＯＲＥ２，ＣＯＲＥ３，ＣＯＲＥ４が同時に（１クロックで）動作することによって、テスト時の消費電力が瞬間的に上昇することになる。ところが、一般的には、デバイスの実使用時における消費電力についての電源設計は行なわれるが、テスト時のピーク電力の上昇を見込んだ電源設計は行なわれていない。実使用時には集積回路装置内のすべての回路が同時に動作することはほとんどあり得ないので、実使用時のピーク電力値は一般にはそれほど大きくはない。その結果、このようなテスト時のピークの消費電力を見込んでいない集積回路装置は、スキャンテスト時に正常に動作しないか、あるいは、ダメージを受けることになる。
【００１６】
本発明の目的は、テスターの使用時間の増大を抑制しつつ、集積回路装置のスキャンテストを行なう際に各回路が動作するタイミングを分散させる手段を講ずることにより、スキャンテスト時のピーク消費電力の低減を図ることにある。
【００１７】
【課題を解決するための手段】
本発明の第１の集積回路装置は、内部に複数の論理回路と各論理回路間に配置された複数のフリップフロップ回路とを含む集積回路装置であって、上記各フリップフロップ回路は、スキャンテスト信号を受ける第１の入力部と、上記論理回路に接続され、上記論理回路に入力されたスキャンテスト信号に応じた論理回路の出力をデータ信号として受ける第２の入力部と、フリップフロップ回路内への入力を上記スキャンテスト信号とデータ信号とに切り換えるための制御信号を受ける第３の入力部と、クロック信号を受ける第４の入力部と、上記論理回路に接続されスキャンテスト信号を上記論理回路内に送るための第１の出力部と、データ信号及びスキャン信号を出力するための第２の出力部とを備え、上記複数のフリップフロップ回路のうちの任意のフリップフロップ回路の第２の出力部と次段のフリップフロップ回路の第１の入力部とが順次接続されて、上記複数のフリップフロップ回路を直列に接続したスキャンテスト回路が形成されていて、複数のホールド用信号により上記複数のフリップフロップ回路内の上記第１の出力部からの出力値を各々固定する機能を有し、上記複数のホールド用信号は、上記複数のフリップフロップ回路内の上記第１の出力部からの出力値の固定を順次解除していくように状態が変化し、上記複数の論理回路に上記スキャンテスト信号が順次入力される。
【００１８】
これにより、スキャンテスト時におけるシフト動作において、シフト動作のクロックごとに論理回路内の状態が変化するのが阻止されるので、集積回路装置のスキャンテスト時におけるピークの消費電力を抑制することができる。
【００１９】
上記第１の集積回路装置において、上記各フリップフロップ回路は、上記フリップフロップ回路の上記第１の出力部からの出力値が、上記ホールド信号を受けたときに保持している値に固定されるように構成されていてもよい。
【００２０】
その場合、上記各フリップフロップ回路は、上記ホールド信号を受ける第５の入力部を備えていてもよい。
【００２１】
更に、上記各フリップフロップ回路における第５の入力部は上記第３の入力部と共通化されていてもよい。
【００２２】
また、上記第１の集積回路装置において、上記各フリップフロップ回路は、上記フリップフロップ回路の上記第１の出力部からの出力値が、上記ホールド信号を受けたときに保持している値に拘わらず１又は０に固定されるように構成されていてもよい。
【００２３】
更に、上記第１の集積回路装置において、上記クロック信号のレベルを固定し、上記クロック信号のレベルが固定される間に、上記第１の出力部からの出力値の固定を順次解除していくように状態が変化し、上記複数の論理回路に上記スキャンテスト信号が順次入力される構成としてもよい。
【００２４】
加えて、前記複数のフリップフロップ回路は複数のグループに分けられ、上記複数のホールド用信号は、上記複数のフリップフロップ回路内の上記第１の出力部からの出力値の固定をグループ単位で順次解除していくように状態が変化する構成としてもよい。
【００２５】
本発明の第１の集積回路装置のテスト方法は、内部に複数の論理回路と各論理回路間に配置された複数のフリップフロップ回路とを含み、各フリップフロップ回路を順次接続してなるスキャンテスト回路を備えた集積回路装置のテスト方法であって、上記フリップフロップ回路から上記各論理回路に接続される経路への出力信号を固定するホールド動作を行うステップ（ａ）と、上記各フリップフロップ回路にスキャンテスト信号を順次送るとともに、上記各フリップフロップ回路からデータ信号を順次集積回路装置の外部に送り出すシフト動作を行うステップ（ｂ）と、上記シフト動作の終了後に、上記ステップ（ａ）で固定された出力信号の固定を解除するホールド解除動作を行うステップ（ｃ）とを有し、上記ステップ（ｃ）におけるホールド解除動作は、上記複数のフリップフロップ回路に対して順次実行される方法である。
【００２６】
この方法により、シフト動作時に論理回路内がスキャンテスト信号に応じて変化することに起因するピークの消費電力の増大を抑制することができる。さらに、以下のような動作を付加することにより、ホールド動作，ホールド解除動作，キャプチャ動作などにおけるピークの消費電力を低減することができる。
【００２７】
更に、上記ステップ（ｃ）の後に、上記論理回路からの出力信号をフリップフロップ回路に取り込むキャプチャ動作を行うステップ（ｄ）を有し、上記ステップ（ｄ）におけるキャプチャ動作は上記複数の論理回路に対して順次実行される構成としてもよい。
【００２８】
上記論理回路内を複数のグループに分けて、上記ステップ（ａ）を、出力信号の値を固定時にフリップフロップ回路内に保持されている値に固定するように行い、上記ステップ（ｃ）を上記各グループごとに行い、上記ステップ（ａ）を、第１回目のシフト動作が終了した後はステップ（ｃ）の後でステップ（ｄ）の前に行うことができる。
【００２９】
上記論理回路内を複数のグループに分けて、上記ステップ（ａ）を、出力信号の値を固定時にフリップフロップ回路内に保持されている値に固定するように行い、上記ステップ（ｃ）及び（ｄ）を、上記複数のグループに分けられた各グループ別に、かつ、あるグループのキャプチャ動作が当該グループのホールド解除動作の後になるように行い、上記ステップ（ａ）を、第１回目のシフト動作が終了した後においてはステップ（ｄ）の後に行うことができる。
【００３０】
上記論理回路内を、複数のグループに分けて、上記ステップ（ａ）を、出力信号の値を固定時にフリップフロップ回路内に保持されている値に拘わらず１又は０に固定するように、かつ、上記各グループごとに行い、上記ステップ（ｃ）及び（ｄ）を、上記複数のグループに分けられた各グループ別に、かつ、あるグループのキャプチャ動作が当該グループのホールド解除動作の後になるように行い、上記ステップ（ａ）を、第１回目のシフト動作が終了した後においては、ステップ（ｄ）の後に行うことができる。
【００３１】
上記第１の集積回路装置のテスト方法において、上記ステップ（ｂ）におけるシフト動作の終了後に、上記複数のフリップフロップ回路に入力されるクロック信号のレベルを固定するステップ（ｅ）を有し、上記ステップ（ｃ）において上記複数のフリップフロップ回路に対して順次実行されるホールド解除動作は、上記ステップ（ｅ）において上記クロック信号のレベルが固定されている間に実行されることが好ましい。
【００３２】
更に、上記第１の集積回路装置のテスト方法において、上記論理回路内のグループ分けは、テスト時におけるピークの消費電力が集積回路装置の実使用時の許容値を超えないように行われることが好ましい。
【００３３】
【発明の実施の形態】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る集積回路装置であるシステムＬＳＩの一部を示す図である。同図に示すように、システムＬＳＩ中の論理回路の１つである組合せ回路１０と、各組合せ回路１０同士の間に配置され各組あわせ回路に接続されるフリップフロップ回路１１Ａ〜１１Ｆとが設けられている。なお、図１においては、組合せ回路１１０を１つしか表示していないが、実際には、システムＬＳＩ中のフリップフロップ回路を利用して、システムＬＳＩ内の多数の要素からなる組合せ回路をテストするためのスキャンテスト回路が設けられている。このフリップフロップ回路１１Ａ〜１１Ｆは、できるだけ実使用のために配置されているフリップフロップを用いる。
【００３４】
なお、システムＬＳＩ内にはスキャンテストを適用できない回路も存在しており、それらの回路は別のテスト方法で検査を受けることになる。
【００３５】
各フリップフロップ回路１１は、データ信号Ｄを取り込むためのＤ端子と、スキャンテスト信号ＤＴを取り込むためのＤＴ端子と、クロック信号を取り込むためのクロック端子と、動作モード設定用のＮＴ信号を取り込むためのＮＴ端子と、データ信号Ｄを出力するためのＱ端子と、スキャンテスト信号ＤＴを出力するためのＳＯ端子とを有している。そして、あるフリップフロップ回路（例えば１１Ａ）のＳＯ端子と、これに隣接するフリップフロップ回路（例えば１１Ｂ）のＤＴ端子とを順次接続し、各フリップフロップ回路１１Ａ〜１１Ｆが数珠繋ぎになるようにスキャンテスト回路を構成している。そして、システムＬＳＩへのスキャンテスト信号入力端子（入力ピンの１つ）から入力されるスキャン・イン信号を、システムＬＳＩ内のスキャンテスト回路中の先頭に配置されるフリップフロップ回路のＤＴ端子で受けて、スキャンテスト回路中の最終段のフリップフロップ回路のＳＯ端子からスキャン・アウト信号をシステムＬＳＩのスキャンテスト信号出力端子（出力ピンの１つ）を経て外部に出力するように構成されている。このスキャンテスト信号入力端子とスキャンテスト信号出力端子とは、システムＬＳＩの実使用時に使用される入力ピン，出力ピンの一部を流用している。そして、システムＬＳＩのスキャンテストのためにいくつのスキャンテスト回路を多く形成すればするほどテスト時間は短くて済むが、スキャンテスト回路を形成するための回路面積が余分に必要となり、しかも、タイミング等に影響を与える箇所が増加するという不利な点もある。したがって、このトレードオフを考慮して、システムＬＳＩの試験項目数や回路規模に応じた適切なスキャンテスト回路数，つまりピン数が設定されている。
【００３６】
システムＬＳＩのテスト時には、システムＬＳＩのスキャンテスト信号入力端子となっている入力ピンと、スキャンテスト信号出力端子となっている出力ピンとはテスターに接続され、テスターから出力されるスキャンテスト信号ＤＴをスキャンテスト信号入力端子で受けるとともに、システムＬＳＩ内の組合せ回路を経たデータ信号Ｄ（スキャンテスト信号が組合せ回路内を通過した結果得られるデータ値）をテスター内に取り込んで、データ信号Ｄの値と期待値とをテスターで比較することにより、各組合せ回路１０内の各要素の良否を判定できるように構成されている。
【００３７】
スキャンテスト時においては、ＮＴ信号がシフトモードの間には、各フリップフロップ回路１１Ａ〜１１Ｆにスキャンテスト信号ＤＴが次々と送り込まれる。つまり、１クロックごとにあるフリップフロップ回路のＳＯ端子から次段のフリップフロップ回路のＤＴ端子へスキャンテスト信号が順次送られる。そして、シフトモード動作の終了時には、すべてのフリップフロップ回路に、組合せ回路に入力しようとするテストスキャン信号が保持された状態となる。このとき、システムＬＳＩのピン数に応じたクロック数が必要である。そして、フリップフロップ回路１１Ａ〜１１Ｆにスキャンテスト信号ＤＴが取り込まれた状態で、ＮＴ信号がキャプチャモードになると、各フリップフロップ回路１１Ａ〜１１Ｆ内にデータ信号Ｄが取り込まれる。このときは、各フリップフロップ回路１１Ａ〜１１Ｆに同時にデータ信号を取り込めばよいので、１クロックに相当する時間でキャプチャが行なわれる。このデータ信号Ｄは、組合せ回路１０内を通過した信号であって、フリップフロップ回路１１から組合せ回路１０に入力されたスキャンテスト信号ＤＴの値に応じた出力値を持っている。
【００３８】
つまり、当該組合せ回路１０に入力されたスキャンテスト信号ＤＴに応じた期待値と当該組合せ回路１０から出力されるデータ信号Ｄとが食い違っている場合には、組合せ回路内に何らかの不良が存在することになる。そして、組合せ回路１０内のテスト項目に応じたテストを行なうために、スキャンテスト信号のシフト，組合せ回路を通過したデータのキャプチャ，…を繰り返して、すべての必要な項目に関するスキャンテストを行なうようになされている。
【００３９】
ここで、本実施形態におけるシステムＬＳＩの特徴は、図１に示すように、組合せ回路１０にデータ信号Ｄやスキャンテスト信号ＤＴを送り込むためのＱ端子とは別に、スキャンテスト信号ＤＴを次のフリップフロップ回路１１に送るための端子としてＳＯ端子を設け、スキャンテストのシフトモードの間、Ｑ端子の出力を固定して組合せ回路１０内の状態がシフトモード中は変化しないように構成している点である。
【００４０】
つまり、図１４に示すような従来のテストスキャン回路の構成では、シフトモードの間、各フリップフロップ回路に順次送り込まれるテストスキャン信号のためにＱ端子の出力が変化する。それに対し、本実施形態のスキャンテスト回路では、フリップフロップ回路１０のＱ端子の出力をシフトモードの間は固定しておくことで、組合せ回路１０内の状態が１クロックごとに変化して消費電力が増大するのを抑制するようにしている。
【００４１】
以下、Ｑ端子の出力を固定するためのフリップフロップ回路の回路構造の具体例と、このフリップフロップ回路を用いたスキャンテスト時の動作に関する具体例とについて説明する。
【００４２】
−フリップフロップ回路の構成に関する第１の具体例−
図２は、Ｑ端子の出力を固定するための第１の具体例に係るフリップフロップ回路１１ｘの構成を示す回路図である。同図に示すように、フリップフロップ回路１１ｘは、データ信号Ｄ及びスキャンテスト信号ＤＴを受け、ＮＴ信号に応じていずれかを選択するセレクタとして機能するマルチプレクサ２１と、クロック信号ＣＬＫの反転信号に応じてマルチプレクサ２１の出力をラッチする第１ラッチ回路２２と、クロック信号ＣＬＫに応じて第１ラッチ回路２２の出力をラッチする第２ラッチ回路２３と、クロック信号ＣＬＫ及びＨＯＬＤ信号を受け、両者のＡＮＤ演算を行なった結果を出力にするＡＮＤ回路２４と、ＡＮＤ回路２４の出力に応じて第２ラッチ回路２３の出力をラッチする第３ラッチ回路２５とを備えている。そして、マルチプレクサ２１の２つの信号入力部がＤ端子，ＤＴ端子として機能し、マルチプレクサ２１の制御信号入力部がＮＴ端子として機能し、第２ラッチ回路２３の出力端子がＳＯ端子として機能し、第３ラッチ回路２５の出力端子がＱ端子として機能する。
【００４３】
この構成により、ＨＯＬＤ信号が“１”のときには、クロック信号ＣＬＫが“１（Ｈ）”又は“０（Ｌ）”のいずれであるかに拘わらず、ＡＮＤ回路２４の出力は必ず“０”になる。したがって、出力端子がＱ端子として機能する第３ラッチ回路２５は、第１ラッチ回路２２の出力が次々と変化していっても、ＨＯＬＤ信号が“１”である間は同じ入力値（“１”又は“０”）をそのまま維持する。つまり、シフトモードの間、クロック信号ＣＬＫの１パルスごとに、第１ラッチ回路２２からテストスキャン信号ＤＴが出力され、第２ラッチ回路２３を経てＳＯ端子から次のフリップフロップ回路に出力される。その間、第３ラッチ回路２５の出力つまりＱ端子の出力は、ＨＯＬＤ信号がＡＮＤ回路２４に入力されたときの値（１又は０）に固定されることになる。
【００４４】
なお、ＨＯＬＤ信号に代えてＮＴ信号をＱ端子を固定するための信号として利用することもできる。つまり、ＨＯＬＤ信号用端子とＮＴ端子とを共通化することができる。その場合には、次の第２の実施形態において説明するような動作が可能になる。
【００４５】
−フリップフロップ回路の構成に関する第２の具体例−
図３は、Ｑ端子の出力を固定するための第２の具体例に係るフリップフロップ回路１１ｙの構成を示す回路図である。同図に示すように、フリップフロップ回路１１ｙは、図１４（ａ）に示す従来のフリップフロップと同様の構成において、Ｑ端子をＳＯ端子として機能させるように構成されたフリップフロップ３１と、ＨＯＬＤ信号の反転信号とフリップフロップ３１の出力と受け、両者のＡＮＤ演算を行なった結果を出力するＡＮＤ回路３２とを備えている。図３に示すフリップフロップ回路１１ｙにおいては、フリップフロップ３１のＤ端子，ＤＴ端子，クロック端子ＮＴ端子がそのままフリップフロップ回路１１ｙ全体のＤ端子，ＤＴ端子，クロック端子，ＮＴ端子として機能し、ＡＮＤ回路３２の出力端子がフリップフロップ回路１１ｙ全体のＱ端子として機能する。
【００４６】
この構成により、ＨＯＬＤ信号が“１”のときには、フリップフロップ３１の出力が“１（Ｈ）”又は“０（Ｌ）”のいずれであるかに拘わらず、ＡＮＤ回路３２の出力は必ず“０”になる。したがって、ＡＮＤ回路３２の出力は、フリップフロップ３１のＳＯ端子からの出力が次々と変化していっても、ＨＯＬＤ信号が“１”である間は、“０”をそのまま維持する。つまり、シフトモードの間、クロック信号ＣＬＫの１パルスごとに、フリップフロップ３１のＳＯ端子からテストスキャン信号ＤＴが出力され、次のフリップフロップ回路に出力される。その間、ＡＮＤ回路３２の出力つまりＱ端子の出力は、常に“０”に固定されることになる。
【００４７】
なお、図３の構造においても、ＨＯＬＤ信号に代えてＮＴ信号をＱ端子を固定するための信号として利用することもできる。つまり、ＨＯＬＤ信号用端子とＮＴ端子とを共通化することができる。その場合には、次の第２の実施形態において説明するような動作が可能になる。
【００４８】
（第２の実施形態）
本実施形態においては、第１の実施形態の具体例で説明したフリップフロップ回路の構成を利用してスキャンテストを行なう方法について説明する。
【００４９】
−スキャンテストの方法に関する第１の具体例−
図４（ａ），（ｂ）は、それぞれスキャンテストの方法の第１の具体例に係るシステムＬＳＩの一部を示す回路図、テストモードの変化を示す図である。本具体例においては、第１の具体例におけるフリップフロップ回路１１ｘ（図２参照）を用いる。
【００５０】
まず、図４（ａ）に示すように、組合せ回路１０内を３つのグループＸ，Ｙ，Ｚに分ける。すなわち、各フリップフロップ回路１１Ａ〜１１Ｃの入力信号によって影響を受ける組合せ回路１０中の各部分がほぼ３分割されるように、以下のようにグルーピングを行なう。
【００５１】
まず、フリップフロップ回路１１のＱ端子からの出力の影響範囲の和集合を求める。そして、影響範囲の和集合がほぼ均等になるように、組合せ回路１０内のすべての要素をグループＸ，Ｙ，Ｚに分ける。ただし、各フリップフロップ回路１１Ａ〜１１Ｃの各グループＸ，Ｙ，Ｚは互いにオーバーラップする要素を含んでいる。ある要素が、例えば１つのフリップフロップ回路１１ＡのＱ端子からの出力の影響と、他のフリップフロップ回路１１ＢのＱ端子の出力の影響とを受けることは当然あり得るからである。ただし、この具体例では、１つの組合せ回路１０の前段側に配置されるフリップフロップ回路１１Ａ〜１１Ｃの数も組合せ回路１０内のグループＸ，Ｙ，Ｚの数も偶然３つであるが、一般的には、これらの数が互いに一致するというわけではない。一般的には、多数のフリップフロップが数個のグループに分けられると考えてよい。
【００５２】
なお、このグループ分けの方法は、上述の方法の他に、例えば組合せ回路１０内における各グループの動作量がほぼ均一になるように分ける方法などがあり、この具体例の方法に限定されるものではない。
【００５３】
そして、図４（ｂ）に示すように、スキャンテストの開始時に、ＨＯＬＤ信号を“１”にしてフリップフロップ回路のＱ端子の出力を固定にする。そして、シフトモードにおいては、ＨＯＬＤ信号を“１”に保って、組合せ回路１０内の状態をホールドして変化させないでおく。次に、シフト動作が終了しても、すぐにキャプチャモードに移行するのではなく、ＨＯＬＤ信号によるホールド状態を解除するモードに移る。このとき、すべてのフリップフロップ回路のＱ端子の固定を同時に解除するのではなく、グループ分けした各グループＸ，Ｙ，Ｚに対応するフリップフロップ回路ごとに（この例では、フリップフロップ回路１１Ｃ，１１Ｂ，１１Ａの順に）、Ｑ端子の出力の固定を解いて、各グループＸ，Ｙ，Ｚのホールド状態を解除していく。このホールドの解除はクロック信号がＨレベルのときに行なう。これにより、図２内の第３ラッチ回路２５にはそのときの第１ラッチ回路２２の出力つまりスキャンテスト信号ＤＴが取り込まれる。次に、ＨＯＬＤ信号により、すべてのフリップフロップ回路のＱ端子の出力を固定する。その後、キャプチャモードに移行して、データ信号Ｄをフリップフロップ回路１１のＤ端子からフリップフロップ回路１１内に取り込む。その際、キャプチャモード動作の前に、フリップフロップ回路１１のＱ端子を固定して組合せ回路１０内の状態をホールドしているので、スキャンテスト回路内のすべてのフリップフロップ回路１１Ａ〜１１Ｆにデータ信号が同時に取り込まれることによる消費電力の瞬間的な上昇を回避することができる。
【００５４】
そして、シフトモードに移行すると、このデータ信号Ｄをスキャンテスト回路を通じて順次次段側のフリップフロップ回路に送り込むとともに、その後からスキャン信号をスキャンテスト回路に順に送り込んでいく。そして、システムＬＳＩのスキャンテスト回路内の各フリップフロップ回路１１内にいったん取り込まれたデータ信号Ｄがすべてテスターに送り出され、スキャンテスト回路内のすべてのフリップフロップ回路１１に次のスキャンテスト信号ＤＴが保持されると（つまりシフトモード動作が終了すると）、再び、各グループＸ，Ｙ，Ｚの順にホールド解除を行ない、ホールド動作，キャプチャモード動作，…という制御を繰り返す。
【００５５】
、本実施形態のスキャンテスト方法によると、シフトモード動作に移行する前に、組合せ回路１０内の状態をホールドしているので、シフトモード動作のときに各フリップフロップ回路１１Ａ〜１１Ｆに送られるスキャンテスト信号ＤＴがシフトされていく度に組合せ回路１０内の各要素が同時に変化することに起因する消費電力の上昇を抑制することができる。
【００５６】
しかも、組合せ回路１０内を複数のグループに分けて、ホールド解除を複数のグループごとに行なったあと、再びホールドを行なってからキャプチャ動作を行なうので、ホールドの解除とキャプチャ時におけるピーク消費電力の上昇を抑制することができる。
【００５７】
一方、上述のスキャンテストの制御において、ホールド解除動作は、クロック信号がＨレベルのときに行なう必要があるが、クロックがゆっくりの場合には１つのクロック信号のＨレベルの間に３つのグループＸ，Ｙ，Ｚのホールド解除を行なうことも不可能ではないし、クロックを３クロック分の期間Ｈレベルに固定値手、その間にホールド解除を行なってもよい、また、ホールド動作は、クロックとは無関係に行なうことができる。したがって、本実施形態のスキャンテスト方法の動作によって増大するしテスト時間は、従来のスキャンテスト方法に比べて、たかだか４クロック周期分であり、シフトモード動作に要する時間が数１００クロック周期分であることを考慮すると、テスト時間の増大はほとんどないといえる。
【００５８】
−スキャンテストの方法に関する第２の具体例−
図５（ａ），（ｂ）は、それぞれスキャンテストの方法の第２の具体例に係るシステムＬＳＩの一部を示す回路図、及びテストモードの変化を示す図である。本具体例においては、第１の具体例におけるフリップフロップ回路１１ｘ（図２参照）を用いる。
【００５９】
まず、図５（ａ）に示すように、組合せ回路１０内を３つのグループＸ，Ｙ，Ｚに分ける。このグループ分けは、基本的には上述のテストスキャン方法の第１の具体例と同じ方法によるが、「あるグループ（例えばＸ）の状態に影響するフリップフロップ回路（前段側に接続されるフリップフロップ回路１１Ｃ）のキャプチャを行なうためのクロック信号が、当該グループＸの後段側に接続されるフリップフロップ回路１１Ｆのキャプチャを行なうためのクロック信号よりも先に入らない」という制限を設ける。具体的な方法については後述する。
【００６０】
本具体例の方法においては、図５（ｂ）に示すように、フリップフロップ回路のＱ端子を固定した状態でシフトモードの動作を行なった後、シフトモードの動作が終了すると、グループ分けした各グループＸ，Ｙ，Ｚに対応するフリップフロップ回路ごとに（この例では、フリップフロップ回路１１Ｃ，１１Ｂ，１１Ａの順に）、Ｑ端子の出力固定の解除（ホールド解除）と、キャプチャ動作とを行なう。このとき、例えば１つのクロックのＨレベルのときにホールド解除を行ない、そのクロックのＬレベルのときにキャプチャ動作を行なってもよいし、各グループＸ，Ｙ，Ｚの順にホールド解除を行なってから各グループＸ，Ｙ，Ｚの順にデータ信号Ｄを取り込むキャプチャ動作を行なってもよい。さらに、グループＸのホールド解除を行なった後、グループＹのホールド解除とグループＸのキャプチャとを少しタイミングをずらせて行なうなど、多くのバリエーションを採ることができる。
【００６１】
その後、再びホールド動作を行なってから、シフトモードに移行すると、このデータ信号Ｄをスキャンテスト回路を通じて順次次段側のフリップフロップ回路に送り込むとともに、その後からスキャン信号ＤＴをスキャンテスト回路に順に送り込んでいく。そして、システムＬＳＩのスキャンテスト回路内の各フリップフロップ回路１１内にいったん取り込まれたデータ信号Ｄがすべてテスターに送り出され、スキャンテスト回路内のすべてのフリップフロップ回路１１に次のスキャンテスト用のスキャンテスト信号ＤＴが取り込まれると、再び、各グループＸ，Ｙ，Ｚの順にホールド解除，キャプチャモード，…という制御を繰り返す。
【００６２】
本具体例のスキャンテスト方法によると、第１の具体例と同様に効果を発揮することができる。また、従来のテストスキャン方法に比べて、３〜６クロック周期程度の時間が増大するが、この時間は全体の時間からみるとわずかである。
【００６３】
−スキャンテストの方法に関する第３の具体例−
図６（ａ），（ｂ）は、それぞれスキャンテストの方法の第３の具体例に係るシステムＬＳＩの一部を示す回路図、テストモードの変化を示す図である。本具体例においては、第２の具体例におけるフリップフロップ回路１１ｙ（図３参照）を用いる。
【００６４】
まず、図６（ａ）に示すように、組合せ回路１０内を３つのグループＸ，Ｙ，Ｚに分ける。このグループ分けは、基本的には上述のテストスキャン方法の第１の具体例と同じ方法によるが、「あるグループ（例えばＸ）の状態に影響するフリップフロップ回路（前段側に接続されるフリップフロップ回路１１Ｃ）のキャプチャを行なうためのクロック信号が、当該グループＸの後段側に接続されるフリップフロップ回路１１Ｆのキャプチャを行なわせるためのクロック信号よりも先に入らない」という制限を設ける。
【００６５】
一般的には、ホールド動作の場合は、基本的には組合せ回路１０内の状態を変化させないので１クロックで同時に行なってもよい。しかし、Ｑ端子の出力を０，１に固定するということは、その固定動作自体が組合せ回路１０に大きな変化をもたらして、ピーク電力が実使用時の許容電力を越えることが起こらないとも限らない。そこで、本具体例の方法においては、図６（ｂ）に示すように、このとき、すべてのフリップフロップ回路のＱ端子を同時に固定するのではなく、グループ分けした各グループＸ，Ｙ，Ｚに対応するフリップフロップ回路ごとに（この例では、フリップフロップ回路１１Ｃ，１１Ｂ，１１Ａの順に）、タイミングをずらせてＱ端子の出力を固定していく。その後、シフトモードに移行して、シフトモードの動作が終了すると、上述の第２の具体例と同様の動作によって、各グループＸ，Ｙ，Ｚのホールド解除とキャプチャとを行なっていく。
【００６６】
本具体例のスキャンテスト方法によると、第２の具体例に比べてホールドを３クロックに分けて行なう分だけ余分に時間を要する。しかし、シフトモード動作に要する時間が数１００クロック周期分であることを考慮すると、このホールド動作の分割により生じるテスト時間の増大はきわめてわずかである。しかも、フリップフロップ回路の構成を上記第１の実施形態の第２の具体例のフリップフロップ回路１１ｙ（図３参照）にすることで、スキャンテスト回路のための回路面積を上記第１，第２の具体例の構成よりも小さくできる利点がある。
【００６７】
−ＨＯＬＤ信号用端子とＮＴ端子との共通化−
すでに説明したように、図２又は図３中のＨＯＬＤ信号用端子とＮＴ端子とは共通化することができる。その場合には、以下のような動作が可能になる。ここでは、図５（ａ），（ｂ）又は図６（ａ），（ｂ）に示すグループ化された回路構成及び回路動作を前提として説明する。
【００６８】
まず、ＮＴ信号がシフトモードになると、各フリップフロップ回路１１Ａ〜１１Ｆ内にデータ信号Ｄが取り込まれるが、このシフト動作中は、ＮＴ信号によってホールド動作を行なわせることができる。
【００６９】
そして、シフト終了時、ＮＴ信号をシフトモードから解除すると、同時にホールドが解除される。このとき、ホールドの解除動作は、各フリップフロップ回路１１Ｃ，１１Ｂ，１１ＡのＮＴ信号を順次解除することによって、図５（ｂ）又は図６（ｂ）に示すように、各グループＸ，Ｙ，Ｚの順に個別に行なわれる。
【００７０】
また、キャプチャ動作も各グループＸ，Ｙ，Ｚ別に行なわれる。このときには、ＮＴ信号に応じて、各フリップフロップ回路１１Ａ〜１１Ｆ内にデータ信号Ｄが取り込まれるが、ＨＯＬＤ信号用端子とＮＴ端子とが共通化されているので、ＮＴ信号はシフトモードから解除されており、ホールドは解除されている。
【００７１】
そして、シフト動作に移行するとき、図２に示すフリップフロップ回路１１ｘを用いる場合には、図５（ｂ）に示すように、各フリップフロップ回路１１Ｃ，１１Ｂ，１１ＡのＮＴ信号を一斉にシフトモードにすることにより、各グループＸ，Ｙ，Ｚに対して一斉にホールド動作を行なわせる。
【００７２】
一方、図３に示すフリップフロップ回路１１ｙを用いる場合には、図６（ｂ）に示すように、各フリップフロップ回路１１Ｃ，１１Ｂ，１１ＡのＮＴ信号を順次シフトモードにすることにより、各グループＸ，Ｙ，Ｚ別にホールド動作を行なわせる。
【００７３】
−本実施形態の各具体例の効果−
したがって、本実施形態のスキャンテスト方法によると、各具体例において説明したように、組合せ回路１０内の状態をホールドした状態で、スキャンテスト信号のシフト動作を行なうとともに、組合せ回路１０内の各要素をグループ分けして、各グループのホールド解除，キャプチャ，ホールドなどの動作をグループごとにずらせるようにしているので、瞬間的な消費電力の増大を抑制することができる。
【００７４】
図７は、本実施形態のスキャンテスト方法に関する各具体例の効果を示す図である。同図に示すように、組合せ回路内の要素をグループＧ１〜Ｇ４にグループ分けして、このグループごとにホールド解除，キャプチャ，ホールドなどを行なうことにより、スキャンテスト時における消費電力の分散化を図ることができる。そして、システムＬＳＩのスキャンテスト時におけるピークの消費電力が、システムＬＳＩの実使用時における消費電力の許容値を越えるおそれを確実に解消することができる。
【００７５】
（第３の実施形態）
本実施形態においては、集積回路装置であるシステムＬＳＩの設計段階における消費電力を低減するための対策について説明する。
【００７６】
−消費電力削減のためのグルーピングについての具体例−
組合せ回路やスキャンテスト回路を設計する際、データベース内に存在する組合せ回路などの設計に必要なデータを記述したコアが存在する。したがって、このデータベースのコアを利用して、組合せ回路等の設計を行なうことができる。ところが、一般的に、各コアの中はデータがループして複雑な前後関係を形成しているので、このデータから各コアのある動作の順序を適正に決定するのは困難なことが多い。
【００７７】
その点、上流設計の段階では、各コアの構成要素が少なく、各コアの前後関係を求める処理が簡便かつ高速になる。例えば、図８に示すように、機能レベルにおいてはコアＡ，Ｂ，Ｃ間のデータの流れを示すデータフローのみがあるだけの場合が多い。
【００７８】
そこで、図９に示すような手順で、スキャンテストにおける消費電力を考慮した設計を行なうのが効果的である。
【００７９】
まず、ステップＳ１において、データベースからコアライブラリに関する記述（テスト時の消費電力や推定情報）や、システムＬＳＩの仕様を入力して、アーキテクチャ設計を行なう。つまり、どのようなコアを用いて所望のシステムＬＳＩを設計するためのアーキテクチャを設計する。
【００８０】
このとき、ステップＳ１で、コアの選択やテスト手法の割り付けを行なうが、この段階で、例えば、図８に示すコアのデータフロー情報に基づいて、「コアＣに先にクロック信号を入力してから、順次コアＢ，コアＡにクロック信号を入力する。」というような情報を取り込んでおくと、後でこの情報を利用した下流側でのグルーピングが容易になる。つまり、各コアを１まとめとして扱う上流設計でコアの選択やテスト手法を割り付けておくことで、具体的な膨大な回路構造をみてグルーピングするような処理の煩雑さを回避できるのである。
【００８１】
実際に、第１の実施形態において示したようなグルーピングを行なおうとすると、制御回路を組み込む必要があるのに加えて、クロック信号を所望の順序で入力させるためにクロック系統を何系統作成するか、といったことをきめ細かく決定する必要がある。それを論理設計の段階で、クロックの作成やホールドの解除手順をいきなり決めるのは、困難であることが多い。特に、システムＬＳＩのごとく、回路要素数が膨大なデバイスにおいてはなおさらである。
【００８２】
そこで、アーキテクチャ設計の段階で、電力許容値を満たすように、スキャンテストのスケジューリングを行なう。つまり、各コアのグループ分割数、チップ全体のテスト時における制御、例えば同時にテストするコアなどに関するテストスケジューリングや、制御回路の設計のための指示，指針の作成，又は制御回路の作成を行なっておく。
【００８３】
そして、このようなテスト設計情報を含む設計情報を下流側に渡すことにより、ステップＳ２でＲＴＬ設計を行ない、ステップＳ３で消費電力の推定を行なう。このＲＴＬ設計の段階では、配線による各素子の接続関係までは現れていないが、例えば記憶素子と記憶素子との間の論理演算の関係が現れている。そこで、このステップＳ３では、図７に示すようなスキャンテスト時における消費電力のピーク値をシミュレーションにより求め、消費電力の許容値を満たすなど仕様を満足するか否かを検討することができる。
【００８４】
そして、ステップＳ４で、論理設計を行なうと、この段階では各階路の具体的な構造が現れてくる。そして、ステップＳ５で、最終的に正確なシミュレーションを行なって消費電力の推定を行なうことができる。
【００８５】
本具体例によると、設計の上流側（アーキテクチャ設計）において消費電力削減のためのテスト方法についての戦略を立てることで、下流側の設計において、データベース中のデータの複雑なループ関係による処理の煩雑化を回避しつつ、消費電力の削減のための設計を迅速に行なうことができる。
【００８６】
例えば、ステップＳ２のＲＴＬ設計，ステップＳ３の消費電力の推定を行なった後に、消費電力の許容値を満たすことが不可能であることが判明すると、再びアーキテクチャ設計をやり直す必要が生じる。また、ステップＳ４の論理設計，ステップＳ５の消費電力の推定を行なってから、消費電力の許容値を満たす回路構成が見つからないときには、ステップＳ２又はステップＳ１の処理をやり直す必要が生じる。つまり、再設計ループの繰り返しを頻繁に行なうことになる。
【００８７】
しかし、本具体例のごとく、設計の上流側で消費電力削減のためのテスト方法についての戦略を立てることで、コアの分割数やテスト制御のスケジューリングなどの基本的な事項については、ほぼ適正な設計が行なわれている。したがって、上述のような再設計ループの繰り返しを効果的に削減することができる。
【００８８】
なお、本具体例では、スキャンテストを行う場合を例にとって消費電力削減のための設計方法について説明したが、本発明はかかる例に限定されるものではなく、他のテスト方法を実施する場合にも適用できることは言うまでもない。
【００８９】
また、テスト時消費電力推定情報は、コアライブラリに格納されている必要はなくデータベースのどこかに格納されていればよい。
【００９０】
−テストスケジューリングの具体例−
図１０は、組合せ回路に相当するコアの分割を伴うテストスケジューリングの例を示す図である。同図に示すように、例えば１００個のテストピンがある場合に、７０番までのテストピンを使用してコア２，コア３のテストを行ないながら、とこれに並行して７０番から１００番までのテストピンを使用して、コア２，コア３とはテスト手法が異なるコア１のテストを行なうというようなテストスケジューリングを立てる。このとき、コア２内は３つのグループに分け、コア３内は４つのグループに分けるというようなグルーピングを行なっておく。すなわち、上述のようなコア内におけるキャプチャ・ホールド・ホールド解除の分散、他のコアとのキャプチャ・ホールド・ホールド解除の分散などのスケジューリングを行なっておくのである。
【００９１】
そして、このようなグルーピングを伴ったテストスケジューリングを立てておくことにより、テスト時間の短縮を図りつつ、ピークの消費電力が許容値を超えるおそれを未然に解消して、下流側の設計を円滑に行なうことができる。
【００９２】
−コアライブラリの構成要素に関する具体例−
図１１は、システムＬＳＩの設計用のデータベース内のコアライブラリ５０に記述されている情報の具体例を示す図である。同図に示すように、コアライブラリ５０内には、テスト時消費電力情報５１、コアの分割可能数情報５１，コアの分割可能性情報５２などが収納されている。すなわち、テスト時のピーク消費電力に関する記述を含ませておくことで、アーキテクチャ設計時にピーク消費電力が許容値を超えないためのテスト戦略を立てることが可能になる。
【００９３】
まず、コアのテスト時消費電力情報５１は、コアのピーク消費電力に関する記述を含んでいる。この記述とは、コアのピークの消費電力の推定値であり、可能であれば、シフト動作時のピークの消費電力の推定値と、キャプチャ動作時のピークの消費電力の推定値と、ホールド動作時のピークの消費電力の推定値と、ホールド解除動作時のピークの消費電力の推定値とを含んでいる。すでに説明したように、シフト，キャプチャ，ホールド，ホールド解除の各動作には各種の制御パターンがあるので、これらをすべて記憶しておき、これらを比較してもっとも有利な制御パターンや、フリップフロップ回路の種類などを選択することができる。
【００９４】
また、コアのテスト時消費電力情報５１は、コアの最大トグル率（信号の遷移確率）、コアの回路規模（例えばゲート数）、及びコアを構成するゲートの消費電力に関する記述を含んでいる。ただし、ゲートの消費電力に関する記述はライブラリ内でなくてもよい。例えば０．２５μｍのゲートを使用する場合に、０．２５μｍのゲートであればどの程度の消費電力になるかということが常識的となっている場合もあるからである。ピークの消費電力の推定精度がよくない場合には、このような記述があることにより、テスト時のピークの消費電力を比較的正確に算出することができる。
【００９５】
また、コアのテスト時消費電力情報５１は、回路とシミュレーションパターンとに関する記述を含んでいる。これが記述してあれば、テスト時のシミュレーションを行なって、消費電力を算出することができる。
【００９６】
コアの分割可能数情報５２は、コア内のグルーピングがいくつまで可能かということに関する情報（推定値）の他に、例えば、シフト動作時のピークの消費電力とコアの分割時のピーク消費電力とが等しくなるレベルに関する記述を含んでいる。上述のように、シフト動作は分割して行なうわけではないので、シフト動作時のピークの消費電力は低減することができない。したがって、あまりに細かくグルーピングしても、ピークの消費電力の低減という観点からみると意味がなくなるからである。なお、ここでいう分割とは、複数のコアを何グループ化にグルーピングすることを含んでいる。
【００９７】
コアの分割可能数情報５２は、いわゆるハードマクロと呼ばれるレイアウトまで決まっているコア（例えば乗算器など）やテスト回路の設計変更を行わないコア（例えば流用設計のコア）の分割数（分割数がわかっている又はすでに分割されている）とピークの消費電力とに関する記述を含んでいる。
【００９８】
さらに、コアの分割可能数情報５２は、ハードマクロと呼ばれるコアや上述の設計方法で設計されたコアなど、もはや設計変更を行わず、テストを行なわないコアの分割数と、クロックごとのピークの消費電力とに関する記述を含んでいる。これから設計しようとするコアだけでなく、すでにこの発明を用いて設計したコアの再利用や、ＩＰベンダーなどから供給されるコアの利用など、設計がすでに決まっているコアで当該システムＬＳＩ中に組み込もうとするコアがある場合には、その消費電力に関するに情報も利用することで、システムＬＳＩ全体のテスト時のピークの消費電力を正確に把握することができるからである。
【００９９】
分割可能性情報５３は、コアの最大許容分割数に関する記述を含んでいる。この記述は、推定であってもよいし、実際に分割されている場合には実際の分割数であってもよい。
【０１００】
また、分割可能性情報５３は、作成できるクロック系統数に関する記述を含んでいる。クロック系統数は、コアの分割数を決めるときの１つの基準になるものである。セレクタなどクロックの順番を制御するための回路は、簡単に修正を加えることができない性質のものであるので、例えばクロック系統が４系統あればクロックをずらせて何らかの動作を行なわせる場合には、４つまでは可能であるというような設計上の条件・制限を含ませておく。そして、それに合わせて例えば「グループごとにキャプチャする」という動作を制御することができる限界をそこから求めて記憶させておくことができる。
【０１０１】
（第４の実施形態）
本実施形態においては、スキャンテストに限らず、他のテスト方法も含めて、反転クロックを利用したテストを行うためのシステムＬＳＩの設計方法及びテスト方法について説明する。
【０１０２】
図１２は、反転クロックを利用したテストを行う方法について説明するための図である。例えば、コアＡ，コアＢ，コアＣというデータフローがある場合に、コアＡ，コアＣは論理回路で、コアＢはメモリであるとすると、メモリであるコアＢはＢＩＳＴ等によるテストが行なわれ、論理回路であるコアＡ，コアＣは例えば上述のようなスキャンテストが行われる。このように、システムＬＳＩ内に互いに異なる種類のテストが行なわれる回路が存在する場合には、設計時に以下のようなグルーピングを行う。同図に示すように、テストモード信号ＴＭがＨレベルとなるテストモード時には、セレクタからメモリに反転クロックが入力される。また、テストを行なうためのＢＩＳＴには、セレクタを介さずに直接反転クロックが入力される。そして、この反転クロックを用いて、メモリについてのテストを行なうようになっている。つまり、１つのクロック系統を用いて、コアＣのスキャンテストを行ないながら、メモリのＢＩＳＴによるテストを行うことができる。このとき、メモリのテストを制御するためのクロックは反転しているので、コアＣのテストを行っているときの消費電力がピークとなるタイミングと、メモリのテストを行う際の消費電力がピークとなるタイミングとは、クロックの半周期だけずれるので、コアＣとメモリとを同時にテストしても、これらの１つずつを個別にテストしたときに比べてピークの消費電力が増大することはない。
【０１０３】
このように、特に論理回路以外の回路をテストを行なう際には、反転クロックを利用することにより、ピークの消費電力の増大を招くことなく、テスト時間の短縮を図ることができる。
【０１０４】
なお、設計されたシステムＬＳＩには、図１２に示すコアＡ，Ｂ，Ｃの代わりに、論理回路，メモリ，論理回路がそれぞれ設けられていることは言うまでもない。
【０１０５】
また、本発明は、コアＡ，Ｂ，Ｃが同種類の回路例えばすべて論理回路であって、しかも、いずれのコアについてもスキャンテストが行われる場合にも、適用することができる。その場合においても、スキャンテストに用いるクロックが非反転クロックと反転クロックとであることにより、消費電力がピークとなるタイミングを互いにずらせることができるからである。
【０１０６】
【発明の効果】
本発明の集積回路装置及びそのテスト方法によれば、集積回路装置のスキャンテストなどのテストを行う際の消費電力を考慮しているので、実使用時の許容消費電力値を満たしていてもテスト時の消費電力が過大となって、集積回路装置の損傷などの不具合が発生するのを未然に防止することができる。
【０１０７】
その場合、テスト時の各種の動作をずらすように回路内のグルーピングという概念を導入することにより、ピークの消費電力の増大を抑制することができる。
【０１０８】
また、非反転クロックと反転クロックとを利用して２つの回路のテストを同時に行うことにより、２つの回路のテストを同時に行うことによるピークの消費電力の増大を抑制することができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施形態に係る集積回路装置であるシステムＬＳＩの一部を示すブロック回路図である。
【図２】  Ｑ端子の出力を固定するためのフリップフロップ回路の構成に関する第１の具体例を示す回路図である。
【図３】  Ｑ端子の出力を固定するためのフリップフロップ回路の構成に関する第２の具体例を示す回路図である。
【図４】  （ａ），（ｂ）は、第２の実施形態におけるスキャンテストの方法の第１の具体例に係るシステムＬＳＩの一部を示す回路図、テストモードの変化をそれぞれ示す図である。
【図５】  （ａ），（ｂ）は、第２の実施形態におけるスキャンテストの方法の第２の具体例に係るシステムＬＳＩの一部を示す回路図、テストモードの変化をそれぞれ示す図である。
【図６】  （ａ），（ｂ）は、第２の実施形態におけるスキャンテストの方法の第３の具体例に係るシステムＬＳＩの一部を示す回路図、テストモードの変化をそれぞれ示す図である。
【図７】  第２の実施形態のスキャンテスト方法に関する各具体例の効果を示す図である。
【図８】  機能レベルにおいて存在するコアＡ，Ｂ，Ｃ間のデータの流れを示すデータフロー図である。
【図９】  第３の実施形態のスキャンテストにおける消費電力を考慮した設計を行う手順を示すフローチャート図である。
【図１０】  第３の実施形態における組合せ回路に相当するコアの分割を伴うテストスケジューリングの具体例を示す図である。
【図１１】  第３の実施形態におけるシステムＬＳＩの設計用のデータベース内のコアライブラリ５０に記述されている情報の具体例を示す図である。
【図１２】  第４の実施形態における反転クロックを利用したテストを行う方法について説明するための図である。
【図１３】  集積回路装置の設計段階において設計しようとする回路のデータをデータベースから取り出して設計する状態を示す斜視図である。
【図１４】  （ａ），（ｂ）は、スキャンテスト回路を備えた従来のシステムＬＳＩの一部，スキャンテスト時における制御状態の時間に対する遷移をそれぞれ示す図である。
【図１５】  従来のスキャンテスト時における集積回路装置全体の消費電力の経時変化を例示する図である。
【符号の説明】
１０  組合せ回路
１１  フリップフロップ回路
２１  マルチプレクサ
２２  第１ラッチ回路
２３  第２ラッチ回路
２４  ＡＮＤ回路
２５  第３ラッチ回路
３１  フリップフロップ
３２  ＡＮＤ回路
５０  コアライブラリ
５１  テスト時消費電力情報
５２  コアの分割可能数情報
５３  分割可能性情報
【図１】
0004428489.tif 000002
【図２】
0004428489.tif 000003
【図３】
0004428489.tif 000004
【図４】
0004428489.tif 000005
【図５】
0004428489.tif 000006
【図６】
0004428489.tif 000007
【図７】
0004428489.tif 000008
【図８】
0004428489.tif 000009
【図９】
0004428489.tif 000010
【図１０】
0004428489.tif 000011
【図１１】
0004428489.tif 000012
【図１２】
0004428489.tif 000013
【図１３】
0004428489.tif 000014
【図１４】
0004428489.tif 000015
【図１５】
0004428489.tif 000016