(57)【要約】      （修正有）【課題】スキャンチェイン上の隣接するＦＦの異なる論理値を持つ頻度が大きくなることでテスト時のＩＲドロップを回避する技術を提供する。【解決手段】期待値導出処理モジュールＭ１が各ＦＦの論理値を確率伝播の計算または論理シミュレーションの実施によって導出する。グルーピングモジュールＭ２は求めた論理値を参照して検査対象のＦＦをいくつかのグループにグルーピングする。スキャンチェイン構成モジュールＭ３は論理値「１」を取り込む頻度が背反する２つのグループをペアにして、一方を論理反転させて１つのスキャンチェインを構成する。【選択図】図４
2010157009.tif 000002
【特許請求の範囲】
【請求項１】
期待値導出処理モジュールと、グルーピングモジュールと、スキャンチェイン構成モジュールと、を呼び出し可能なＥＤＡツールであって、
前記期待値導出処理モジュールは、検証対象である半導体装置の各フリップフロップの期待値を導出し、
前記グルーピングモジュールは、前記検証対象である半導体装置の各フリップフロップの期待値に基づき各フリップフロップを複数のグループに分け、
前記スキャンチェイン構成モジュールは、前記グループ単位でスキャンチェインを構築することを特徴とするＥＤＡツール。
【請求項２】
期待値導出処理モジュールと、グルーピングモジュールと、スキャンチェイン構成モジュールと、を呼び出し可能なＥＤＡツールであって、
前記期待値導出処理モジュールは、該ＥＤＡツールが検証する半導体装置の各フリップフロップの期待値を導出し、
前記グルーピングモジュールは、前記検証対象である半導体装置の各フリップフロップの期待値に基づき各フリップフロップを複数のグループに分け、
前記スキャンチェイン構成モジュールは、前記グループのうち２つのグループを１つのペアとし、該ペアに属する一方のグループに属するフリップフロップの極性を反転させ、ペア単位でスキャンチェインを構築することを特徴とするＥＤＡツール。
【請求項３】
請求項１または２に記載のＥＤＡツールにおいて、前記期待値導出処理モジュールは確率伝播を計算することによって前記検証対象である半導体装置の各フリップフロップの期待値を導出することを特徴とするＥＤＡツール。
【請求項４】
請求項１または２に記載のＥＤＡツールにおいて、前記期待値導出処理モジュールは論理シミュレーションを実行することによって前記検証対象である半導体装置の各フリップフロップの期待値を導出することを特徴とするＥＤＡツール。
【請求項５】
請求項１または２に記載のＥＤＡツールにおいて、前記グルーピングモジュールはグルーピング時に判断の基準とするグループ毎の刻み幅を読み出し、前記検証対象である半導体装置の各フリップフロップの期待値がどのグループに属するかを判定することを特徴とするＥＤＡツール。
【請求項６】
第１のスキャンチェインと、第２のスキャンチェインを含む複数のスキャンチェインを有する半導体装置であって、
前記第１のスキャンチェインに属する全てのフリップフロップが論理値「１」を取る期待値が第１の刻み幅内に含まれ、
前記第２のスキャンチェインに属する全てのフリップフロップが論理値「１」を取る期待値が第２の刻み幅内に含まれ、
前記第１の刻み幅と前記第２の刻み幅が相違することを特徴とする半導体装置。
【請求項７】
請求項６記載の半導体装置において、
前記第１のスキャンチェインに属する全てのフリップフロップが論理値「１」を取る期待値及び前記第２のスキャンチェインに属する全てのフリップフロップが論理値「１」を取る期待値は確率伝播によって求められることを特徴とする半導体装置。
【請求項８】
期待値導出処理モジュールと、グルーピングモジュールと、スキャンチェイン構成モジュールと、を呼び出し可能なＥＤＡツールにおけるスキャンチェイン構成方法であって、
前記期待値導出処理モジュールが検証対象である半導体装置の各フリップフロップの期待値を導出する期待値導出ステップと、
前記グルーピングモジュールがグループの刻み幅を読み出す刻み幅読み出しステップと、
前記グルーピングモジュールが前記刻み幅と対応させて前記検証対象である半導体装置のフリップフロップがいずれのグループに属するかを決定するグルーピングステップと、
前記スキャンチェイン構成モジュールが前記グルーピングステップで割り当てたグループ中のフリップフロップでスキャンチェインを構築するスキャンチェイン構築ステップと、を含むことを特徴とするスキャンチェイン構成方法。
【請求項９】
期待値導出処理モジュールと、グルーピングモジュールと、スキャンチェイン構成モジュールと、を呼び出し可能なＥＤＡツールにおけるスキャンチェイン構成方法であって、
前記期待値導出処理モジュールが検証対象である半導体装置の各フリップフロップの期待値を導出する期待値導出ステップと、
前記グルーピングモジュールがグループの刻み幅を読み出す刻み幅読み出しステップと、
前記グルーピングモジュールが前記刻み幅と対応させて前記検証対象である半導体装置のフリップフロップがいずれのグループに属するかを決定するグルーピングステップと、
前記スキャンチェイン構成モジュールが前記グルーピングステップで作ったグループのうちの２つのグループを１つのペアとするペア構成ステップと、
前記スキャンチェイン構成モジュールが前記ペア構成ステップで作られたペアに含まれる一方のグループのフリップフロップの極性を反転させる極性反転ステップと、
前記極性反転ステップでフリップフロップの極性を反転させたグループと、フリップフロップの極性を反転させなかったグループをまとめてペア単位でスキャンチェインを構築するスキャンチェイン構築ステップと、を含むことを特徴とするスキャンチェイン構成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置の設計手段であるＥＤＡツールのテスト容易化設計手法、特にスキャンチェインの構築に関する。
【背景技術】
【０００２】
半導体集積回路のテスト方式として、スキャンテスト方式と呼ばれる方式がある。スキャンテスト方式は、スキャンテスト用のＦＦと、ＦＦを直列に繋ぎ合わせたスキャンチェインと、テスト対象となる組合せ回路とから成る。ＦＦの入力端子と出力端子はセレクタで通常動作時のデータとテスト用のデータを切り替えることができる。スキャンチェインはテスト用のデータの入出力端子を繋ぎ合わせたものである。テスト対象となる組合せ回路はスキャンチェインの間に配置され、ＦＦの通常動作時のデータ入出力端子と接続されている。テスタに収めたテストパターンを外部端子から各スキャンＦＦに印加する際は、セレクタの切替え信号をテスト用のデータにしておき、ＦＦの数だけクロック信号を入力する。これをスキャンインと呼ぶ。組合せ回路のテスト時にはＦＦの入出力端子を通常動作時のデータ用にする。こうすることで、ＦＦに印加されたテストパターンは組合せ回路を通過し、応答パターンとなり再びＦＦに取り込まれる。この応答パターンはスキャンイン時と同様にセレクタを切り替えることで外部端子よりテスタへ取り出す。これをスキャンアウトと呼ぶ。取り出した応答パターンと正常動作時での応答パターンを比較することで組合せ回路のテストを可能にする。
【０００３】
微細化が進んだ現代においては、このスキャンテストに際してクロストークと共にＩＲドロップが問題となる。ＩＲドロップとは配線の持つ抵抗によってＦＦ等に供給される電圧が低下したり、遅延したりすることである。
【０００４】
スキャンテスト時のＩＲドロップについて述べる際には、スキャンチェイン内の隣接するＦＦが異なる値を持つ頻度が重要となる。スキャンチェイン内の隣接するフリップフロップが異なる値を持つ頻度を以下のように定義する。スキャンチェインの各ＦＦに順番をつけ、ｉ番目のＦＦが持つ論理値をαiで表す。ｉ番目のＦＦとｉ＋１番目のＦＦが異なる値をもつ回数は｜αi−αi＋１｜で表される。これをすべてのｉについて足し合わせるとスキャンチェインの隣接するＦＦが異なる論理値を持つ回数Σｉ｜αi−αi＋１｜を得ることができる。各ＦＦの論理値はテストパターン毎に異なるためすべてのテストパターンについて足し合わせを行い、
ΣテストパターンΣｉ｜αi−αi＋１｜
を得る。テストパターン数をＮ、スキャンチェインを構成するＦＦの数をＭとおくと、隣接するＦＦが異なる論理値をもつ頻度は
｛１／Ｎ×（Ｍ−１）｝×ΣテストパターンΣｉ｜αi−αi＋１｜
である。異なる論理値をもつ頻度が大きければ、半導体集積回路内で同時に論理値が変化する領域が大きくなり、ＩＲドロップの危険性が大きくなる。したがって異なる論理値をもつ頻度を最小化することでＩＲドロップを低減することができる。
【０００５】
スキャンテスト時のＩＲドロップを低減させる方式について記載された文献の例として、以下の特許文献を挙げることができる。
【０００６】
特開平１１−３０４８８９号公報（特許文献１）は、テストパターン生成方法について開示している。特許文献１の図１では論理「０」と論理「１」からなるテストパターンの中から特定のパターンを削除あるいは実行順序を変更して半導体集積回路の出力同時変化数を抑えたテストパターンを生成するフローを示している。
【０００７】
特開２００６−０６６８２５号公報（特許文献２）は、半導体集積回路スキャンテスト時のＩＲドロップによる誤作動を防止する方法について開示している。特許文献２の図１では、動作率情報を用いてＩＲドロップ解析を行い、その結果がＯＫになるまでスキャン回路のグルーピングを繰り返す方法を示している。
【特許文献１】特開平１１−３０４８８９号公報
【特許文献２】特開２００６−０６６８２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１では、スキャンチェインの隣接するＦＦが異なる理論値を持つ頻度を低減させるテストパターンを選択しているが、応答パターンをＦＦが受け取った後の値は制御することができない。結果スキャンアウト時には隣接するＦＦが異なる理論値を持つ頻度が高くなり、ＩＲドロップの低減は行えない。
【０００９】
また、特許文献２では、動作率情報とともにＩＲドロップ解析を行い、スキャン回路のグルーピングを行っている。これは、グルーピングしたスキャン回路の動作タイミングをずらすことで、半導体集積回路全体が同時に動作することで発生するＩＲドロップを低減させることを目的としたものである。従って、特許文献２の方法では隣接するＦＦが異なる理論値を持つ頻度に着目しておらず、実際のスキャンテスト時には半導体集積回路が同時に動作するときよりもテスト時間が増加する可能性も否定できない。
【００１０】
本発明の目的は、スキャンテスト時にスキャンチェイン上の隣接するＦＦの異なる理論値を持つ頻度が大きくなることで発生するテスト時のＩＲドロップを抑制する技術を提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【００１３】
本発明の代表的な実施の形態に関わるＥＤＡツールは、期待値導出処理モジュールと、グルーピングモジュールと、スキャンチェイン構成モジュールと、を呼び出し可能なものであって、期待値導出処理モジュールは検証対象である半導体装置の各フリップフロップの期待値を導出し、グルーピングモジュールは、検証対象である半導体装置の各フリップフロップの期待値に基づき各フリップフロップを複数のグループに分け、スキャンチェイン構成モジュールは、グループ単位でスキャンチェインを構築することを特徴とする。
【００１４】
本発明の代表的な実施の形態に関わる別のＥＤＡツールは、グルーピングモジュールと、スキャンチェイン構成モジュールと、を呼び出し可能なものであって、期待値導出処理モジュールは該ＥＤＡツールが検証する半導体装置の各フリップフロップの期待値を導出し、グルーピングモジュールは、検証対象である半導体装置の各フリップフロップの期待値に基づき各フリップフロップを複数のグループに分け、スキャンチェイン構成モジュールはグループのうち２つのグループを１つのペアとし、該ペアに属する一方のグループに属するフリップフロップの極性を反転させ、ペア単位でスキャンチェインを構築することを特徴とする。
【００１５】
これらのＥＤＡツールにおいて、期待値導出処理モジュールは確率伝播を計算することによって検証対象である半導体装置の各フリップフロップの期待値を導出することを特徴としてもよい。
【００１６】
これらのＥＤＡツールにおいて、期待値導出処理モジュールは論理シミュレーションを実行することによって検証対象である半導体装置の各フリップフロップの期待値を導出することを特徴としてもよい。
【００１７】
これらのＥＤＡツールにおいて、グルーピングモジュールはグルーピング時に判断の基準とするグループ毎の刻み幅を読み出し、検証対象である半導体装置の各フリップフロップの期待値がどのグループに属するかを判定することを特徴としてもよい。
【００１８】
本発明の代表的な実施の形態に関わる半導体装置は、第１のスキャンチェインと、第２のスキャンチェインを含む複数のスキャンチェインを有するものであって、第１のスキャンチェインに属する全てのフリップフロップが論理値「１」を取る期待値が第１の刻み幅内に含まれ、第２のスキャンチェインに属する全てのフリップフロップが論理値「１」を取る期待値が第２の刻み幅内に含まれ、第１の刻み幅と第２の刻み幅が相違することを特徴とする。
【００１９】
この半導体装置において、第１のスキャンチェインに属する全てのフリップフロップが論理値「１」を取る期待値及び第２のスキャンチェインに属する全てのフリップフロップが論理値「１」を取る期待値は確率伝播によって求められることを特徴とする。
【００２０】
本発明の代表的な実施の形態に関わるＥＤＡツールにおけるスキャンチェイン構成方法は、期待値導出処理モジュールと、グルーピングモジュールと、スキャンチェイン構成モジュールと、を呼び出し可能なものであって、期待値導出処理モジュールが検証対象である半導体装置の各フリップフロップの期待値を導出する期待値導出ステップと、グルーピングモジュールがグループの刻み幅を読み出す刻み幅読み出しステップと、グルーピングモジュールが刻み幅と対応させて検証対象である半導体装置のフリップフロップがいずれのグループに属するかを決定するグルーピングステップと、スキャンチェイン構成モジュールがグルーピングステップで割り当てたグループ中のフリップフロップでスキャンチェインを構築するスキャンチェイン構築ステップと、を含むことを特徴とする。
【００２１】
本発明の代表的な実施の形態に関わるＥＤＡツールにおける別のスキャンチェイン構成方法は、期待値導出処理モジュールと、グルーピングモジュールと、スキャンチェイン構成モジュールと、を呼び出し可能なものであって、期待値導出処理モジュールが検証対象である半導体装置の各フリップフロップの期待値を導出する期待値導出ステップと、グルーピングモジュールがグループの刻み幅を読み出す刻み幅読み出しステップと、グルーピングモジュールが刻み幅と対応させて検証対象である半導体装置のフリップフロップがいずれのグループに属するかを決定するグルーピングステップと、スキャンチェイン構成モジュールがグルーピングステップで作ったグループのうちの２つのグループを１つのペアとするペア構成ステップと、スキャンチェイン構成モジュールがペア構成ステップで作られたペアに含まれる一方のグループのフリップフロップの極性を反転させる極性反転ステップと、極性反転ステップでフリップフロップの極性を反転させたグループと、フリップフロップの極性を反転させなかったグループをまとめてペア単位でスキャンチェインを構築するスキャンチェイン構築ステップと、を含むことを特徴とする。
【発明の効果】
【００２２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
【００２３】
本発明の代表的な実施の形態に関わるスキャンチェインの構築方法によって、スキャンテスト時のＩＲドロップを低減させることができる。結果、スキャンテストに要する時間・工数の低減を図ることが可能となる。
【発明を実施するための最良の形態】
【００２４】
（第１の実施の形態）
図１は本発明に関わるテストパターンによりスキャンテストを行う対象となる半導体装置及びテスト回路の一例である。
【００２５】
図１の半導体装置は、ＦＦ（フリップフロップ）１０１ないし１１２、組み合わせ回路２００、テストクロック生成回路（ＴＧＮ）３００、テスト制御回路４００、乱数パターン発生回路（ＴＰＧ）５００、圧縮回路（ＭＩＳＲ）６００を含んで構成される。
【００２６】
ＦＦ１０１〜１１２とはスキャンテストを可能とするスキャンテスト用のフリップフロップ群のことである。
【００２７】
組み合わせ回路２００とは、複数の論理素子で構成された回路のことである。これらのＦＦ１０１ないし１１２を直列につなぎ合わせ、テストパターンを外部端子からＦＦ１０１ないし１１２に印加可能なような構成となっている。このＦＦのつなぎ合わせたものをスキャンチェインという。図１では、ＦＦ１０１ないし１０６で１本のスキャンチェインを、ＦＦ１０７、１０９、１１２（計３個）で別の１本のスキャンチェインを、ＦＦ１０８、１１１（計２個）で１本のスキャンチェインを、ＦＦ１１０のみで１本のスキャンチェインを構成する。
【００２８】
テストクロック生成回路（ＴＧＮ）３００とは、スキャンテスト時のクロック信号を生成する回路である。
【００２９】
テスト制御回路４００とは、スキャンテスト時に論理ＢＩＳＴ（Ｂｕｉｌｄ−Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）回路を制御する回路である。
【００３０】
乱数パターン発生回路（ＴＰＧ）５００とは、スキャンテスト用の乱数を発生する回路である。
【００３１】
圧縮回路（ＭＩＳＲ：Ｍｕｌｔｉ  Ｉｎｐｕｔ  Ｓｉｇｎａｔｕｒｅ  Ｒｅｇｉｓｔｅｒ）６００とは、スキャンテスト用のテストパターンを圧縮する回路である。
【００３２】
次にこの半導体装置のテスト手法について説明する。
【００３３】
乱数パターン発生回路（ＴＰＧ）５００で発生した乱数は、スキャンチェインを通じて、各ＦＦ１０１ないし１１２にスキャンインされる。この際、テストクロック生成回路（ＴＧＮ）３００からＦＦ１０１ないし１１２のクロック信号が供給される。
【００３４】
テスト時にはＦＦ１０１ないし１１２にセットされた論理値が組み合わせ回路２００を通過する。
【００３５】
組み合わせ回路２００を通過した後の論理値はスキャンチェインを通じて圧縮回路（ＭＩＳＲ）６００に供給される。
【００３６】
従来、一つの半導体装置に対してスキャンチェインを１本だけ割り当てることはほとんど無い。これは、単機能単位でスキャンチェインを構成し、その組み合わせでより複雑な動作を確認するほうが障害の切り分けという点で時間的なコストの低減を図れることが多いことからである。
【００３７】
図９はスキャンテスト時と通常動作時の動作の違いを表す概念図である。図９で表すように、通常使用時の処理と関係なく通常はスキャンチェインを構成する。この様に構成した際、通常使用時には半導体装置の一部の機能しか用いないため、半導体装置全体から見てフリップフロップの変化する確率は低い。図９では最上段に位置するフリップフロップ３つ（識別可能なようにハッチを駆けているもの）が動作する際、他のフリップフロップは動作しないことが多い。これに対し、スキャンテスト時には、全てのフリップフロップが動作するので、フリップフロップの変化確率が高い。従ってＩＲドロップによる回路の誤動作の要因となる。
【００３８】
このように、スキャンチェインの割り当て方は半導体装置のテスト容易化を図る上で非常に重要な要素である。
【００３９】
従来、このスキャンチェインをどのように構成するかについては種々の方法が提案されている。既述のような単機能の動作単位ごとにスキャンチェインを用意する方法、全てのスキャンチェインの構成ＦＦを略均一にすることでスキャンチェインのシフトサイクル数を平均化する方法、スキャンテスト時にのみ用いるスキャンテストパターン数を可能なかぎり減らすことでチップ面積の増加を抑止する方法、既に「枯れている（事前に仕様実績があり故障等の問題が少ない）」と思われるハードコア内部についてはスキャンチェインを設けない方法などである。
【００４０】
本発明においては、スキャンチェイン構成に際して、論理値が「１」になりやすいＦＦと論理値が「１」になりにくいＦＦを別系統のスキャンチェインに割り当てる。また、「０」になりやすいＦＦについては論理反転させることで、論理値が「１」になりやすいＦＦと同じスキャンチェインに割り当てる。これにより、スキャンアウト時のＦＦの変化確率を抑止することを可能とする。
【００４１】
具体的には、以下の通りである。
【００４２】
１）期待値の導出
まず、最初に各ＦＦの論理値の偏りを計算する。各種手法はあるが、ここでは確率伝播によって論理値の偏りを計算する。具体的な手法については図２を例としてあげる。
【００４３】
図２は簡単な組み合わせ回路を用いた本発明の動作例を表す説明図である。また図３は簡単な組み合わせ回路を用いた本発明の動作例を表す別の説明図である。
【００４４】
まず図２について説明する。
【００４５】
この図では組み合わせ回路２００Ａの評価用にＦＦ１０１Ａ、１０２Ａ、１０３Ａ、１０４Ａが用意されている。組み合わせ回路２００Ａは単純な三入力ＡＮＤ（論理積）回路である。この評価用に、入力用のＦＦ１０１Ａ、１０２Ａ、１０３Ａ及び出力用のＦＦ１０４Ａが用意されている。
【００４６】
入力用の各ＦＦは外部からのスキャンチェインを構成する。これに伴い、これらのＦＦに対しての外部からのデータの入力によりデータが規定される。ここでは説明用に入力用の各ＦＦが「１」になる確率は５０％であるものとする。
【００４７】
これに対し、出力用のＦＦ１０４Ａは組み合わせ回路２００Ａに支配される。すなわち、三入力ＡＮＤ（論理積）回路の各入力端子に「１」が入力される確率が５０％であれば、ＦＦ１０４Ａが「１」になる期待値は１２．５％（１／８）である。
【００４８】
次に図３について説明する。
【００４９】
この図では組み合わせ回路２００Ｂの評価用にＦＦ１０１Ｂ、１０２Ｂ、１０３Ｂ、１０４Ｂが用意されている。
【００５０】
この図の組み合わせ回路２００Ｂには二入力ＡＮＤ（論理積）回路２００Ｂ−１、インバータ２００Ｂ−２、二入力ＸＯＲ（排他的論理和）回路２００Ｂ−３が含まれる。互いの接続は図を参照されたい。
【００５１】
二入力ＡＮＤ回路２００Ｂ−１には入力用のＦＦとしてＦＦ１０１Ｂ、１０２Ｂが接続される。図２同様、ＦＦ１０１Ｂ、１０２Ｂが「１」になる確率は５０％とするので、二入力ＡＮＤ回路２００Ｂ−１が「１」になる確率は２５％（１／４）である。
【００５２】
これがインバータ２００Ｂ−２で論理反転されるため、二入力ＸＯＲ回路２００Ｂ−３の入力端子の一つには７５％（３／４）の確率で「１」が入力される。
【００５３】
二入力ＸＯＲ回路２００Ｂ−３のもう一方の端子には入力用のＦＦとしてＦＦ１０３Ｂが接続される。既述の通り、入力用ＦＦの期待値は５０％（１／２）である。従って、二入力ＸＯＲ回路２００Ｂ−３の出力（＝ＦＦ１０４の入力）が「１」になる期待値は５０％（１／２）になる。
【００５４】
このようにして、各ＦＦの入力に「１」が入力される確率を確率伝播に基づき導出する。
【００５５】
２）グルーピング
次に、求めた期待値に基づきスキャンチェインを構成するＦＦのグルーピングを行う。このグルーピングは、回路規模、構成やスキャンチェインの本数によっても変わるが一定の確率の幅に従って行う。以下はその例である。
【００５６】
系統１：論理値「１」の発生確率が２０％未満
系統２：論理値「１」の発生確率が２０％以上４０％未満
系統３：論理値「１」の発生確率が４０％以上６０%未満
系統４：論理値「１」の発生確率が６０％以上８０％未満
系統５：論理値「１」の発生確率が８０％以上
このように論理値「１」の発生確率をスキャンチェイン毎に揃える。上記の各系統に割り当てられた期待値の幅を本明細書では「刻み幅」という。このようにすると、各スキャンチェインに属するＦＦの変化する確率を揃えることができる。たとえば、上記のスキャンチェインのＦＦの変化率を各系統の中心値とすると以下のようになる。
【００５７】
系統１：１８％
系統２：４２％
系統３：５０％
系統４：４２％
系統５：１８％
このように変化率の近いＦＦを同じスキャンチェインにまとめることでスキャンテスト時のＩＲドロップを低減し、これによる誤動作の防止及び消費電力の低減を図ることが可能となる。
【００５８】
なお、上述では２０％刻みで同じ幅を割り当てたが、グループ毎に幅を変えてもよい。たとえば系統１は２５％、系統２は２０％、系統３は１０％、系統４は２０％、系統５は２５％、などである。
【００５９】
３）スキャンチェインの構成
２）でグルーピングが終わると、あとは、そのグループ毎に、スキャンチェインを配置する。この際、論理値「１」を取る確率が背反関係を有するグループが存在すると、一方を論理反転することによって、論理値「１」を取る確率を等しくすることが可能となる。この場合、２つのグループをまとめて一つのスキャンチェインとすることができる。上の例では、系統１は論理値「１」の発生確率が２０％未満である。一方、系統５は論理値「１」の発生確率が８０％以上である。従って、系統５に属するＦＦを論理反転させると、反転後の系統５は論理値「１」の発生確率は２０％以下となる。これは、系統１とほぼ等しいためこれを系統１と反転後の系統５をまとめることでスキャンチェインの数を低減することができる。
【００６０】
しかし一方では、ＩＲドロップ阻止の観点では、スキャンチェインの配線長を可能な限り短くすることが求められる。このように他の条件（たとえばスケジューリング）も含めてスキャンチェインの構成を行うことが求められる。
【００６１】
以上述べた処理を設計者は行うことになる。より具体的にいえば、設計者はＰＣ（パーソナルコンピュータ）、ＷＳ（ワークステーション）上で動作するＥＤＡ（Ｅｌｅｃｔｒｉｃ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ）ツールでこれらの処理を行う。以下この作業の実行環境について説明する。
【００６２】
図４は本発明に関わるＥＤＡツールに関する構成概念図である。
【００６３】
このＥＤＡツールはＰＣ上で動作する。ＰＣは演算実行部１０及びデータ記憶部２０、インターフェース３０を含んで構成される。
【００６４】
演算実行部１０は実際の処理を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）だけでなく、ＤＲＡＭなども含まれる。
【００６５】
データ記憶部２０は演算実行部１０が処理に用いるプログラムやネットリスト、セル機能に関するライブラリ（セル機能ライブラリ）を含むＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記録部である。
【００６６】
インターフェース３０は該ＰＣの操作者とのインターフェースを受け持つ入力手段、出力手段の総称である。入力手段としてはキーボードやマウス、タッチパネルなどがあり、出力手段としてはディスプレイなどがある。
【００６７】
なお、ＥＤＡツールは各種の機能を有するが、ここでは本発明の機能に関連する事項のみについて記載する。ここに記載が無くとも、ＥＤＡツールとしての一般的な機能を有することは言うまでもない。また、本実施の形態に関わるスキャンチェイン構築専用のアプリケーションであっても問題は無い。
【００６８】
上記で記載した通り、本発明に関する処理は３つに分けられる。この３つの処理のうちの最初の処理である、期待値導出処理をまず行う。
【００６９】
図５は本発明の第１の実施の形態に関わる期待値導出処理の手順を表すフローチャートである。この図の開始時には既に演算実行部１０で動作するＥＤＡツール本体等がデータ記憶部２０から期待値導出処理モジュールＭ１を読み出して実行が開始されているものとする。また、期待値の導出に関わる回路の構成は既にネットリストＤ４及びセル機能ライブラリＤ５から読み出しが完了しているものとする。
【００７０】
まず、全てのＦＦの論理値「１」になる確率を０．５（１／２）に設定する（ステップＳ１００１）。このステップＳ１００１における入力方法であるが、以下のようなものが考えられる。
【００７１】
１）期待値導出処理モジュールＭ１のプログラム中で初期値として規定する。
【００７２】
２）インターフェース３０から手動で入力する。
【００７３】
３）データ記憶部２０に格納された所定のファイルから読み出す。
【００７４】
なお、これらに限定するものではなく、必要な値が得られるのであれば、どのような手段を用いても良い。
【００７５】
次に確率伝播計算を行い、ＦＦの入力の期待値が「１」になる確率を計算する（ステップＳ１００２）。具体的には図２及び図３にあげた方法で計算する。
【００７６】
最後に、求めた確率を論理値「１」を取り込む頻度として扱い、論理値「１」取り込み頻度として期待値導出処理モジュールＭ１は導出した期待値をデータ記憶部２０の所定の記憶領域（図上ではＤ１）に保存する（ステップＳ１００３）。
【００７７】
期待値導出処理モジュールＭ１での処理が終われば、既述の「２）グルーピング」に処理が移行する。この際、グルーピングモジュールＭ２がこの処理を行う。グルーピングモジュールＭ２の起動をＥＤＡツール本体が行うか、期待値導出処理モジュールＭ１が行うか、また他のモジュールが行うかは設計事項である。
【００７８】
図６は本発明に関わるグルーピングの手順を表すフローチャートである。
【００７９】
まずグルーピングモジュールＭ２は期待値導出処理モジュールＭ１がデータ記憶部２０の所定の記憶領域Ｄ１に格納した各ＦＦの期待値を読み込む（ステップＳ２００１）。またグルーピングの基準となる期待値の「刻み幅」を読み込む（ステップＳ２００２）。これは既述の「２）グルーピング」で挙げたようにＦＦのグルーピングの際の基準となる。
【００８０】
グルーピングモジュールＭ２は各ＦＦの期待値が前ステップ（ステップＳ２００２）で読み込んだ「刻み幅」のどこに属するかを確認し、該ＦＦが属するグループを決定する（ステップＳ２００３）。なお、図上では省略しているが、グルーピングモジュールＭ２はデータ記憶部２０から「刻み幅」を読み込むことになるであろう。また、インターフェース３０経由で入力するようにしておいてもよい。
【００８１】
このグルーピングの結果をグルーピングモジュールＭ２は所定の記憶領域（図上ではＤ２）に保存して、グルーピングモジュールＭ２は動作を終了する。
【００８２】
グルーピングモジュールＭ２の処理が終われば、「３）スキャンチェインの構成」の処理を開始することができる。ＥＤＡツール本体もしくはグルーピングモジュールＭ２がスキャンチェイン構成モジュールＭ３を起動する。スキャンチェイン構成モジュールＭ３は所定の記憶領域Ｄ２に格納されたＦＦのグルーピングを読み込み、各グループのスキャンチェインを構成する。図７は、本発明に関わるスキャンチェイン構成の手順を表すフローチャートである。
【００８３】
まず、スキャンチェイン構成モジュールＭ３は所定の記憶領域Ｄ２に格納されたグルーピングの結果を読み出す（ステップＳ３００１）。このグルーピングの結果を参考に、スキャンチェイン構成モジュールＭ３はグループ毎にスキャンチェインを構成する（ステップＳ３００２）。次にスキャンチェイン構成モジュールＭ３は論理値「１」を取り込む頻度が背反するグループをペアにする（ステップＳ３００３）。既述の「２）グルーピング」での例を用いて説明すると以下の通りである。
【００８４】
系統１は論理値「１」を取る確率が２０％未満であり、一方、系統２は論理値「１」を取る確率が２０％以上４０％未満である。従って、系統１には系統５（論理値「１」の発生確率が８０％以上）を、系統２には系統４（論理値「１」の発生確率が６０％以上８０％未満）をそれぞれペアとして指定する。
【００８５】
なお、上記では系統３がペアとして指定できない。このような場合、スキャンチェイン構成モジュールＭ３はペアを構成しなくてもよい。また、ＦＦ毎の論理値「１」を取り込む頻度（所定の記憶領域Ｄ１に記録されているもの）を参照可能であるなら、系統３を４０％以上５０％未満、５０％以上６０％未満の二つに分け、擬似的なペアを設定してもよい。
【００８６】
ペアを構成した後に、スキャンチェイン構成モジュールＭ３はペアに属する一方のグループの極性を反転させる（ステップＳ３００４）。たとえば上記の例では、系統１と系統５のペアのうち、スキャンチェイン構成モジュールＭ３は系統１のみを極性反転させる。
【００８７】
そして、スキャンチェイン構成モジュールＭ３はペア毎にスキャンチェインを再構成する（ステップＳ３００５）。すなわち極性反転後の系統１と極性を反転させない系統５の２本のスキャンチェインを１本にまとめる。これにより５つのスキャンチェインの系統を３つに減らすことができる。
【００８８】
最後に、スキャンチェイン構成モジュールＭ３は、このスキャンチェイン構成後のネットリストを所定の記憶領域（図上ではＤ３）に格納する（ステップＳ３００６）。
【００８９】
ＥＤＡツール本体はこの所定の領域Ｄ３に格納されたスキャンチェイン構成後のネットリストを用いて、ＦＦの配置、結線等を決定する。
【００９０】
このように論理値「１」を取り込む頻度が背反するグループをペアにして、ペア内の一方の極性を反転させ、ペア毎にスキャンチェインを再構成することで、ＥＤＡツールは半導体装置内のスキャンチェインの本数を減らすことが可能となる。
【００９１】
また、グループ及びペア内の隣接するＦＦで異なる論理値を持つ頻度が小さくなる。結果テスト時のＩＲドロップを回避することが可能となる。
【００９２】
なお、設計要件に応じて上記ステップを省略することも本発明の射程に入る。たとえば、スキャンチェインの本数の低減を図るために、ステップＳ３００４で極性の反転を行い、ステップＳ３００５で２本のスキャンチェインの系統を１つにまとめることを説明した。しかし、このステップＳ３００４及びＳ３００５を省略して、系統ごとにステップＳ３００６でスキャンチェインを構築するようにしてもよい。
【００９３】
また、ステップＳ１００１では、各フリップフロップの論理値「１」を取る期待値を０．５としている。しかし、組み合わせ回路２００を複数多段に有する場合、前段の組み合わせ回路２００の出力の期待値が分かっているときには、０．５と異なる値を入力してもよい。
【００９４】
また上記では３つのモジュールとしたが、これを一つのソフトウェアモジュールにまとめてもよい。また、更に細分化したモジュールによって構築してもよい。関数化やクラス化、オブジェクト化と言ったソフトウェアの設計手法により生じるモジュール構成の差異は当然に本発明の射程に含まれる。
【００９５】
（第２の実施の形態）
次に本発明の第２の実施の形態について説明する。
【００９６】
第１の実施の形態では、確率伝播を計算で導出し、論理値「１」の頻度を求める計算をしていた。これに対し、本実施の形態では、論理シミュレーションを実行し、頻度を求める方法を提唱する。なお、本発明に関わるＥＤＡツールに関する構成概念図は図４とほぼ同じであるのでここでは省略する。ただし、ＦＦ出力期待値データＤ６は用いない。
【００９７】
図８は本発明の第２の実施の形態に関わる期待値導出処理の手順を表すフローチャートである。これは図５の処理を置き換えることを想定している。したがって、この図の開始時には既に演算実行部１０で動作するＥＤＡツール本体がデータ記憶部２０から期待値導出処理モジュールＭ１を読み出して実行が開始されているものとする。また、ネットリストＤ４及びセル機能ライブラリＤ５からの読み出しも図５同様に完了しているものとする。
【００９８】
まず、論理値を取り込む回数Ｎを取得する（ステップＳ４００１）。この際、期待値導出処理モジュールＭ１のプログラム上で取り込む回数Ｎを特定しても、インターフェース３０からの入力によって取り込む回数Ｎを指定しても、ファイルから取り込む回数Ｎを読み込んでもよい。具体的な設定方法は設計事項である。
【００９９】
次に期待値導出処理モジュールＭ１は各ＦＦの出力端子にランダムパターンを設定する（ステップＳ４００２）。ここで「ランダムパターン」とは、論理値「０」または「１」がランダムに選ばれたパターンのことである。
【０１００】
ランダムパターンの設定後、期待値導出処理モジュールＭ１は論理シミュレーションを実行する（ステップＳ４００３）。この論理シミュレーションにより、ステップＳ４００２で設定されたランダムパターンがＦＦ出力端子から次段のＦＦの入力端子の間にある組み合わせ回路２００を通過する。次段のＦＦの入力端子には、組み合わせ回路２００通過後の論理値が設定される。
【０１０１】
次に、各ＦＦが取り込む論理値を求める（ステップＳ４００４）。「ＦＦが取り込む論理値」とは論理シミュレーション後にＦＦの入力端子に設定された論理値のことである。
【０１０２】
この一連の処理をステップＳ４００１で取得した回数Ｎだけ繰り返す。
【０１０３】
上記Ｎ回の繰り返しの後に、期待値導出処理モジュールＭ１はＦＦ毎に論理値「１」を取り込んだ回数を繰り返し回数Ｎで割る。これにより、期待値導出処理モジュールＭ１は各ＦＦが論理値「１」を取り込む頻度を求める（ステップＳ４００５）。たとえばＮ＝１００であり、あるＦＦの論理値「１」を取り込んだ回数が３２回であった場合を考える。この場合、論理値「１」を取り込む頻度は３２／１００＝０．３２となる。
【０１０４】
このように期待値導出処理モジュールＭ１は全てのＦＦについて論理値「１」を取り込む頻度を求める。求めた確率をデータ記憶部２０の所定の記憶領域Ｄ１に保存する（ステップＳ４００６）。
【０１０５】
以上のように論理シミュレーションを実行して各ＦＦの論理値「１」を取り込む頻度を求め、次段のＦＦの入力端子に論理値「１」が入力される取り込む頻度の理論値として設定することで、実際の動作環境に近い状態での論理値「１」を取り込む頻度を求めることが可能となる。
【０１０６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更が可能であることは言うまでもない。
【産業上の利用可能性】
【０１０７】
本発明はＥＤＡツールの中のモジュールの一つとして実装されることを想定して説明した。しかし、必ずしもこれにこだわるものでない。最適なスキャンチェインのネットリストを作成する独立したソフトウェアとして実装することも本発明の射程に含まれる。
【図面の簡単な説明】
【０１０８】
【図１】本発明に関わるテストパターンによりスキャンテストを行う対象となる半導体装置及びテスト回路の一例である。
【図２】簡単な組み合わせ回路を用いた本発明の動作例を表す説明図である。
【図３】簡単な組み合わせ回路を用いた本発明の動作例を表す別の説明図である。
【図４】本発明に関わるＥＤＡツールに関する構成概念図である。
【図５】本発明の第１の実施の形態に関わる期待値導出処理の手順を表すフローチャートである。
【図６】本発明に関わるグルーピングの手順を表すフローチャートである。
【図７】本発明に関わるスキャンチェイン構成の手順を表すフローチャートである。
【図８】本発明の第２の実施の形態に関わる期待値導出処理の手順を表すフローチャートである。
【図９】スキャンテスト時と通常動作時の動作の違いを表す概念図である。
【符号の説明】
【０１０９】
Ｄ１、Ｄ２、Ｄ３…所定の記憶領域、Ｄ４…ネットリスト、
Ｄ５…セル機能ライブラリ、Ｄ６…ＦＦ出力期待値ライブラリ、
Ｍ１…期待値導出処理モジュール、Ｍ２…グルーピングモジュール、
Ｍ３…スキャンチェイン構成モジュール、
１０…演算実行部、２０…データ記憶部、３０…インターフェース、
１０１、１０２、１０３、１０４、１０５、１０６、１０７、１０８、１０９、
１１０、１１１、１１２…ＦＦ（フリップフロップ）、
１０１Ａ、１０２Ａ、１０３Ａ、１０４Ａ…ＦＦ（フリップフロップ）、
１０１Ｂ、１０２Ｂ、１０３Ｂ、１０４Ｂ…ＦＦ（フリップフロップ）、
２００、２００Ａ、２００Ｂ…組み合わせ回路、
２００Ｂ−１…二入力ＡＮＤ（論理積）回路、２００Ｂ−２…インバータ、
２００Ｂ−３…二入力ＸＯＲ（排他的論理和）回路、
３００…テストクロック生成回路（ＴＧＮ）、４００…テスト制御回路、
５００…乱数パターン発生回路（ＴＰＧ）、６００…圧縮回路（ＭＩＳＲ）。
【図１】
2010157009.tif 000003
【図２】
2010157009.tif 000004
【図３】
2010157009.tif 000005
【図４】
2010157009.tif 000006
【図５】
2010157009.tif 000007
【図６】
2010157009.tif 000008
【図７】
2010157009.tif 000009
【図８】
2010157009.tif 000010
【図９】
2010157009.tif 000011