(57)【要約】【課題】端子にフリップフロップを追加して故障検出率を向上させようとすると、追加するフリップフロップが端子数分増加するため、回路規模、回路面積の増大を招くという課題がある。【解決手段】  半導体集積回路は、第１選択回路と第２選択回路とを具備する。第１選択回路は、外部回路から入力される入力信号と、内部回路に備えられる記憶素子から出力される設定データ信号とを入力し、内部回路を試験するとき設定データ信号を選択して出力する。第２選択回路は、内部回路から外部回路に出力される出力信号と、記憶素子に記憶される結果データ信号に基づいて演算される演算信号とを入力する。第２選択回路は、内部回路を試験するとき出力信号と演算信号とを切り替えて出力する。記憶素子は、内部回路を試験するとき直列接続されてテスト入力データが設定される。内部回路は、この記憶素子に設定されるテスト入力データに基づいてスキャン方式で試験される。【選択図】  図１
2006234512.tif 000002
【特許請求の範囲】
【請求項１】
外部回路から入力される入力信号と、内部回路に備えられる記憶素子から出力される設定データ信号とを入力し、前記内部回路を試験するとき前記設定データ信号を選択して出力する第１選択回路と、
前記内部回路から前記外部回路に出力される出力信号と、前記記憶素子に記憶される結果データ信号に基づいて演算される演算信号とを入力し、前記内部回路を試験するとき前記出力信号と前記演算信号とを切り替えて出力する第２選択回路と
を具備し、
前記記憶素子は、前記内部回路を試験するとき直列接続されてテスト入力データが設定され、
前記内部回路は、前記テスト入力データに基づいてスキャン方式で試験される
半導体集積回路。
【請求項２】
前記内部回路を試験していないとき、前記第２選択回路は前記結果データ信号を選択して出力する請求項１に記載の半導体集積回路。
【請求項３】
前記試験は、前記第２選択回路が前記出力信号を出力する第１試験モードと、前記結果データ信号を出力する第２試験モードとを有する
請求項１または請求項２に記載の半導体集積回路。
【請求項４】
前記第２選択回路は、入力される複数の前記結果データ信号の各々を選択して出力し、選択される前記複数の前記結果データの各々に対応する前記テスト入力データを有する
請求項１から請求項３のいずれかに記載の半導体集積回路。
【請求項５】
前記記憶素子は、フリップフロップである
請求項１から請求項４のいずれかに記載の半導体集積回路。
【請求項６】
前記内部回路は、マクロ回路（ＩＰコア）である
請求項１から請求項５のいずれかに記載の半導体集積回路。
【請求項７】
組み合せ回路と記憶素子とを備える内部回路の正常性を試験する試験方法であって、
前記記憶素子を直列に接続してテストパターンを設定する設定ステップと、
前記組み合せ回路に入力される信号に代えて前記テストパターンを前記組み合せ回路に供給する第１選択ステップと、
前記記憶素子から出力される前記テストパターンに基づいて前記組み合せ回路に演算結果を出力させる演算ステップと、
前記演算結果を前記記憶素子に記憶させる記憶ステップと、
前記記憶素子を直列に接続して前記記憶素子に記憶された前記演算結果を前記内部回路から出力する結果出力ステップと
を具備し、
前記記憶ステップは、複数の前記演算結果のうち１つを選択して記憶させる第２選択ステップを備える
半導体集積回路の試験方法。
【請求項８】
前記複数の前記演算結果のうち少なくとも１つは、前記内部回路から出力される出力信号である
請求項７に記載の半導体集積回路の試験方法。
【請求項９】
前記記憶素子は、フリップフロップである
請求項７または請求項８に記載の半導体集積回路の試験方法。
【請求項１０】
前記内部回路は、マクロ回路（ＩＰコア）である
請求項７から請求項９のいずれかに記載の半導体集積回路の試験方法。
【請求項１１】
内部回路に含まれる記憶素子をシフトレジスタとなるように構成してスキャン方式により試験される前記内部回路を備える半導体集積回路であって、
前記内部回路が出力する第１被選択信号と、外部回路と前記内部回路との間で入出力される第２被選択信号とを入力し、いずれかを選択して出力する選択回路を具備する
半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の故障を検出するために設けられるテスト用回路およびテスト方法に関する。
【背景技術】
【０００２】
半導体集積回路のテスト容易化設計手法の一つに内部スキャン手法がある。これは、半導体集積回路内部の順序回路を組み合せ回路とフリップフロップ等の記憶素子に展開し、外部端子から直接的に信号を制御・観測するものである。即ち、半導体集積回路の論理回路に含まれる全ての順序回路（記憶素子を含む回路）にテスト用のパスが通され、１つのシフトレジスタとして動作させる。このシフトレジスタを制御することにより、直接的に内部の信号が観測される。このシフトレジスタをスキャンチェーンという。このようにすると、組み合せ回路の入出力端子（ポート）は、半導体集積回路の外部端子（ピン／ポート）から制御可能となる。したがって、全ての記憶素子に論理値“１”または“０”を設定することが可能となる。この記憶素子に設定される論理値列はパターン（テストパターン）と称される。記憶素子の出力が組み合せ回路に供給されてテスト入力となるとき、このパターンを入力パターン、組み合せ回路の出力が記憶素子に取り込まれてテスト結果となるとき、このパターンを出力パターンという。この組み合わせ回路は、論理がわかっているので、入力パターンに対する出力パターンが算出可能である。したがって、計算機シミュレーションにより、組み合わせ回路の全故障を検出することのできるパターンが自動生成される。
【０００３】
一方、半導体集積回路は、大規模化、多機能化が進み、回路機能の繰り返し利用が盛んになっている。共通利用でき、半導体チップ上で根幹の役割を果たす回路機能ブロックは、マクロ回路あるいはＩＰコアと呼ばれる。
【０００４】
半導体集積回路に含まれる組み合せ回路の入出力端子（ポート）は、次の３タイプに分類できる。
タイプ１：記憶素子の出力に接続される組み合せ回路の入力端子。
タイプ２：記憶素子の入力に接続される組み合せ回路の出力端子。
タイプ３：記憶素子に接続されず、半導体集積回路の入出力端子或いは、他の組み合せ回路に接続される入出力端子。
【０００５】
入力端子の全てがタイプ１、出力端子の全てがタイプ２である組み合せ回路は、入力端子に接続される記憶素子に入力パターンがセットされ、出力端子に接続される記憶素子に出力パターンがセットされる。したがって、この組み合せ回路は、全ての故障を検出することができる。しかし、タイプ３の入力端子、出力端子を有する組み合せ回路は、入力パターンが設定できなかったり、出力パターンを出力できない。そのため、組み合せ回路の一部或いは全部の故障を検出することができなくなる。
【０００６】
これらが混在する半導体集積回路として図８に示される回路を説明する。図８は、半導体集積回路の構成を模式的に示した図である。半導体集積回路１００は、マクロ回路１２３と、組み合せ回路１２１、１２５、１２７、フリップフロップ１３１、１３２、１３３、１３４、１３５、１３６を備え、入力端子１１１、１１２、出力端子１１７、１１８、１１９を介して信号を入出力する。また、テスト用の入出力端子１１４、１１５を備える。
【０００７】
入力端子１１１と入力端子１１２から入力信号が組み合せ回路１２１に入力される。組み合せ回路１２１の出力は、フリップフロップ１３１に入力され、保持される。フリップフロップ１３１の出力は、マクロ回路１２３に入力される。マクロ回路１２３の出力はフリップフロップ１３２〜１３４に入力され、保持される。フリップフロップ１３２〜１３４の出力は、組み合せ回路１２５に入力される。組み合せ回路１２５の出力は、フリップフロップ１３５、１３６に入力され、保持される。フリップフロップ１３５、１３６の出力は、組み合せ回路１２７に入力される。組み合せ回路１２７の出力は出力端子１１７〜１１９から半導体集積回路の外に出力される。半導体集積回路は、この通常時（ノーマルモード）の接続の他に、テスト時（テストモード）にフリップフロップ１３１〜１３６をシリアルに接続してシフトレジスタとして動作させるテスト回路が設定されている。テストモードの場合、シリアル入力端子１１４からテストパターンが入力され、フリップフロップ１３１〜１３６を順に通過してテストパターンが設定される。テスト結果はフリップフロップ１３１〜１３６に保持され、シリアル出力端子１１５から順に出力される。
【０００８】
組み合せ回路１２１の入力端子はタイプ３、出力端子はタイプ２に分類される。組み合せ回路１２５の入力端子はタイプ１、出力端子はタイプ２に分類される。組み合せ回路１２７の入力端子はタイプ１、出力端子はタイプ３に分類される。この状態では、組み合せ回路１２５の全故障は検出されるが、組み合せ回路１２１、１２７の故障は検出されないことになる。半導体集積回路１００をテストする場合、入力端子１１１、１１２の外部にテスト装置が接続され、入力パターンが供給される。また、出力端子１１７、１１８、１１９にもテスト装置が接続され、出力パターンを取り出すことができる。半導体集積回路１００の外部にテスト装置を接続することにより、組み合せ回路１２１、１２７の全故障は検出される。
【０００９】
マクロ回路１２３が組み合せ回路のみで構成される場合、この半導体集積回路１００のテストは、以下のように行われる。まず、半導体集積回路１００をテストモードにし、フリップフロップ１３１〜１３６はシリアル接続される。シリアル入力端子１１４から入力パターンが入力され、フリップフロップ１３１〜１３６にセットされる。入力端子１１１、１１２に外部のテスト装置から入力パターンが供給され、フリップフロップ１３１〜１３６に入力パターンがセットされると、組み合せ回路１２１、１２３、１２５、１２７は、それぞれ演算結果を出力する。フリップフロップ１３１〜１３６の接続をシリアル接続から通常の接続に切り替え、組み合せ回路１２１の出力をフリップフロップ１３１が保持し、組み合せ回路１２３の出力をフリップフロップ１３２〜１３４が保持し、組み合せ回路１２５の出力をフリップフロップ１３５とフリップフロップ１３６とが保持する。また、組み合せ回路１２７の出力は半導体集積回路１００の外部のテスト装置に設置される記憶回路により保持される。フリップフロップ１３１〜１３６は再度シリアル接続され、保持している演算結果をシリアル出力端子１１５から順次出力する。このシリアル端子１１５から出力される情報と、外部の記憶回路に保持される情報とを予め求めてある期待値と比較し、半導体集積回路１００の正常性を確認する。マクロ回路１２３が組み合せ回路の場合には、このようにして全ての回路に対して故障検出が可能である。
【００１０】
マクロ回路１２３が順序回路の場合、その出力は過去の入力の履歴に依存する。そのため、マクロ回路１２３の内部構成が開示されていないと入力パターンのみでは出力パターンを算出することができない。したがって、このマクロ回路１２３を除いてテストすることになり、故障検出率（故障診断率）が低下する。
【００１１】
これを回避するために、マクロ回路１２３の内部構成が開示される場合には、マクロ回路１２３を組み合せ回路に展開してテストする。即ち、マクロ回路１２３は組み合せ回路とフリップフロップとに分離される。このフリップフロップはマクロ回路１２３の外部のスキャンチェーンに接続されて新たなスキャンチェーンが構成される。この新たなスキャンチェーンは上述と同じようにテストすることを可能にする。この場合、マクロ回路１２３をテストするためのパターンは、搭載される回路毎に作成されなければならず、特にマクロ回路１２３が大規模であるとき、負担が増大する。また、この方法ではチップ設計においてスキャンチェーン結線後にパターン設計が行われる。このときチップ、あるいは、マクロ回路の回路構成をパターン設計者に示さなければならない。したがって、マクロ回路の回路構成をパターン設計者に開示することができない場合、この方法は実施できないことになる。
【００１２】
マクロ回路の内部構成が開示されない場合、マクロ回路とその他の回路とを分離して各々別にテストしてもよい。このとき、マクロ回路とその周辺の回路との分界点において上述のタイプ３の端子、即ち入力パターンが設定できない端子、出力パターンを取り出すことができない端子が生じてしまう。例えば、図８に示される回路１００が、マクロ回路であるとする。上述の半導体チップであるとした場合には、その外部にテスト装置を接続して端子に入力パターンを供給し、端子から出力パターンを取り出すことができた。しかし、マクロ回路の場合には、マクロ回路の外部にテスト装置を取りつけることはできない。即ち、マクロ回路とその周辺回路とを分離してテストする場合、マクロ回路１００の入出力端子１１１、１１２、１１７〜１１９の外部にテストパターンを入力する仕組みやテスト結果を取り出す仕組みを設置することはできない。したがって、マクロ端子１１１、１１２とフリップフロップ１３１との間にある組み合せ回路１２１は、入力パターンを設定することができない。マクロ端子１１７〜１１９とフリップフロップ１３５、１３６との間にある組み合せ回路１２７は、出力パターンを取り出すことができない。
【００１３】
この故障検出率の低下を回避するためには、図９に示されるように、マクロ端子に対してフリップフロップを追加し、スキャンチェーンに組み込むとよい。マクロ端子１１１に対してフリップフロップ１５１と選択回路１６１が設けられる。選択回路１６１は、ノーマルモードのときマクロ端子１１１からの入力を選択し、テストモードのときにはフリップフロップ１５１にセットされた入力パターンを選択して出力する。同様にマクロ端子１１２に対してフリップフロップ１５２と選択回路１６２が設けられる。出力側のマクロ端子１１７にはフリップフロップ１５３が設けられる。フリップフロップ１５３はマクロ端子１１７に出力するテスト結果が保持される。同様にマクロ端子１１８にはフリップフロップ１５４が、マクロ端子１１９にはフリップフロップ１５５が設けられ、それぞれテスト結果を保持する。フリップフロップ１５１〜１５５は、フリップフロップ１３１〜１３６により構成されるスキャンチェーンに接続され、新たなスキャンチェーンが構成される。このようにすると組み合せ回路１２１、１２７の故障検出も可能となる。しかし、追加するフリップフロップはマクロ回路のマクロ端子数分増加することになり、マクロ回路が占めるチップ面積は増大する。特に最近はＬＳＩに搭載されるマクロ回路は多機能になっていてマクロ端子数が多い。そのため、安易にフリップフロップを置くと配線混雑度が高くなり、面積が増大する。
【００１４】
例えば、内部のフリップフロップが約３０００個あるマクロ回路では、マクロ端子を３００個有するものもある。この場合マクロ端子の数と同じ３００個のフリップフロップを追加することになる。即ち、故障検出率を上げるためにフリップフロップ数が１割増加することになる。このようにチップ面積に与える影響は大きい。
【００１５】
マクロ回路とその周辺回路に分離するのではなく、マクロ回路の外側の組み合せ回路を一部含めてテストする技術が、特開２００１−２０８８１０号公報に開示されている。これによると、マクロ回路をテストするスキャンパターンは、マクロ回路とその外側にある組み合せ回路を含んだ回路に対して生成される。そのスキャンパターンは、スキャンイン端子から入力側のスキャンフリップフロップに設定される。スキャンフリップフロップの出力はマクロ回路の外側の組み合せ回路のうち入力側の組み合わせ回路を経由してマクロ回路に入力される。マクロ回路の演算結果は、マクロ回路の外側の組み合せ回路のうち出力側の組み合わせ回路を経由して出力側のスキャンフリップフロップに取り込まれる。そのスキャンフリップフロップ出力が、スキャン出力端子においてあらかじめ定めた期待値と比較させるための比較信号として出力される。このようなテスト回路の構成によりマクロ回路をテストするものであるが、この場合、マクロ回路の外側の回路が変わるたびに変更の無いマクロ回路をテストするスキャンパターンを生成することになる。
【００１６】
【特許文献１】特開２００１−２０８８１０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上述のように、端子にフリップフロップを追加して故障検出率を向上させようとすると、追加するフリップフロップが端子数分増加するため、回路規模、回路面積の増大を招くという課題がある。
【課題を解決するための手段】
【００１８】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１９】
本発明の観点では、半導体集積回路は、第１選択回路と第２選択回路とを具備する。第１選択回路（１１、１２）は、外部回路から入力される入力信号と、内部回路（１０）に備えられる記憶素子（３６、３４）から出力される設定データ信号とを入力し、内部回路（１０）を試験するとき設定データ信号を選択して出力する。第２選択回路（４４、４６、４８）は、内部回路（１０）から外部回路に出力される出力信号と、記憶素子（３１〜３６）に記憶される結果データ信号に基づいて演算される演算信号とを入力する。第２選択回路（４４、４６、４８）は、内部回路（１０）を試験するとき出力信号と演算信号とを切り替えて出力する。記憶素子（３１〜３６）は、内部回路（１０）を試験するとき直列接続されてテスト入力データが設定される。内部回路は（１０）、この記憶素子（３１〜３６）に設定されるテスト入力データに基づいてスキャン方式で試験される。このように第１および第２選択回路を具備することにより、内部回路を時分割的に試験することが可能となる。したがって、記憶素子を増加させることなく、内部回路の全てを試験することができるようになる。
【００２０】
本発明の他の観点では、半導体集積回路の試験方法は、組み合せ回路（２１、２３、２５、２７）と記憶素子（３１〜３６）とを備える内部回路（１０）の正常性を試験する試験方法であって、設定ステップと、第１選択ステップと、演算ステップと、記憶ステップと、結果出力ステップとを具備する。設定ステップは、記憶素子（３１〜３６）を直列に接続してテストパターンを設定する。第１選択ステップは、組み合せ回路（２１、２３、２５、２７）に入力される信号に代えてテストパターンを組み合せ回路（２１、２３、２５、２７）に供給する。演算ステップは、記憶素子（３１〜３６）から出力されるテストパターンに基づいて組み合せ回路（２１、２３、２５、２７）に演算結果を出力させる。記憶ステップは、演算結果を記憶素子（３１〜３６）に記憶させる。この記憶ステップは、複数の演算結果のうち１つを選択して記憶させる第２選択ステップを備える。結果出力ステップは、記憶素子（３１〜３６）を直列に接続して記憶素子（３１〜３６）に記憶された演算結果を内部回路（１０）から出力する。記憶素子を増加させることなく、内部回路の故障検出率を向上させることができるようになる。
【発明の効果】
【００２１】
本発明によれば、回路規模の増大、回路の面積の増加を抑制しつつ故障検出率を向上させることができる。
【発明を実施するための最良の形態】
【００２２】
図を参照して発明を実施するための最良の形態として半導体集積回路に搭載されるマクロ回路を例示して説明する。本発明によれば、スキャンチェーンは、従来のスキャンチェーンが利用でき、フリップフロップを追加する必要はない。従来のマクロ回路に選択回路を追加することにより故障検出率を向上させることが可能となる。この追加される選択回路は、その動作によって２種類に分類できる。
【００２３】
第１の選択回路は、一方の入力端子に信号が入力されるマクロ端子が接続され、他の入力端子に任意のフリップフロップの出力が接続される。この選択回路は、ノーマルモードではマクロ端子に接続される入力端子を選択し、テストモードでは、フリップフロップの出力が接続される入力端子を選択する。したがって、第１の選択回路は、テストモードのとき、フリップフロップにセットされた入力パターンを組み合せ回路に供給することになる。
【００２４】
第２の選択回路は、任意のフリップフロップの前段に設けられ、フリップフロップに出力する信号を選択する。組み合せ回路の出力が一方の入力端子に接続され、ノーマルモードとテストモードＡのとき選択される。他の端子は、マクロ端子（出力）と接続され、テストモードＢのとき選択される。したがって、保持されることのなかったマクロ端子からの出力をこのフリップフロップにラッチすることが可能となる。
【００２５】
第１の選択回路、第２の選択回路は、配線効率が悪化しないように、マクロ端子の近傍に設けられることが好ましい。また、第２の選択回路の近傍に配置されるものが、第２の選択回路の後段のフリップフロップとして選択されることが好ましい。さらに、第１の選択回路、第２の選択回路を設けて任意のフリップフロップを決定し、配置後に配線効率が悪くなることが判った場合には、その配置情報からこの任意のフリップフロップを選択し直すことが好ましい。
【００２６】
第１の選択回路は、ノーマルモードとテストモードにおいて選択する信号を切り替える。第２の選択回路は、テストモードにおいて、ノーマルモードと同じ信号と、マクロ端子に出力される信号とを切り替える。本実施の形態では、ノーマルモードと同じ信号を選択するテストモードＡと、マクロ端子に出力される信号を選択するテストモードＢとを有する場合を説明する。マクロ端子の数と任意のフリップフロップの数との関係からさらに多くのテストモード、即ち第２の選択回路の選択数を持つように構成されてもよい。
【００２７】
なお、フリップフロップの入力に直接接続されるマクロ端子と、フリップフロップの出力が直接接続されるマクロ端子は、スキャンチェーンに含まれるため、上記の選択回路を設けなくてもよい。このように、第１の選択回路、第２の選択回路を設けることにより、回路規模の大幅な拡大を伴わずに故障検出率を向上させることができる。
【００２８】
図１は、本発明による半導体集積回路に搭載されるマクロ回路の構成を模式的に示した図である。マクロ回路１０は、動作モードとして、テスト動作を行うテストモードと、通常の動作であるノーマルモードを有する。テストモードは、さらに幾つかの動作モードを有し、テストする範囲等を切り替える。これらのモード切替は、半導体集積回路の外部から制御することができる。マクロ回路１０は、組み合せ回路２１、２３、２５、２７とフリップフロップ３１〜３６と選択回路４１、４２、４４、４６、４８とを含む。選択回路４１と選択回路４２は、上述の第１の選択回路に相当する。選択回路４４と選択回路４６と選択回路４８は、上述の第２の選択回路に相当する。選択回路４１は、マクロ端子１１から入力される信号とフリップフロップ３６から出力される信号とを入力し、その一方を選択して組み合せ回路２１に出力する。選択回路４２は、マクロ端子１２から入力される信号とフリップフロップ３４から出力される信号とを入力し、その一方を選択して組み合せ回路２１に出力する。組み合せ回路２１は、選択回路４１、４２から出力される信号を入力し、組み合せ論理による結果を選択回路４４に出力する。
【００２９】
選択回路４４は、組み合せ回路２１から出力される信号とマクロ端子１９から出力される組み合せ回路２７の出力信号とを入力し、その一方を選択してフリップフロップ３１に出力する。フリップフロップ３１の出力は、組み合せ回路２３に接続される。組み合せ回路２３は、フリップフロップ３１から出力される信号を入力し、組み合せ論理による結果を選択回路４６、フリップフロップ３３、３４に出力する。選択回路４６は、組み合せ回路２３から出力される信号とマクロ端子１８から出力される組み合せ回路２７の出力信号とを入力し、その一方を選択してフリップフロップ３２に出力する。フリップフロップ３２、３３、３４から出力される信号は、組み合せ回路２５に入力される。
【００３０】
組み合せ回路２５は、フリップフロップ３２、３３、３４から出力される信号を入力し、組み合せ論理による結果を選択回路４８、フリップフロップ３６に出力する。選択回路４８は、組み合せ回路２５から出力される信号とマクロ端子１７から出力される組み合せ回路２７の出力信号とを入力し、その一方を選択してフリップフロップ３５に出力する。フリップフロップ３５、３６から出力される信号は、組み合せ回路２７に入力される。組み合せ回路２７は、フリップフロップ３５、３６から出力される信号を入力し、組み合せ論理による結果をマクロ端子１７、１８、１９に出力する。
【００３１】
フリップフロップ３１〜３６は、テスト用のシリアル入力を有する。フリップフロップ３１〜３６は、テスト時にシリアル接続され、シフトレジスタとして動作することもできる。このシフトレジスタは、マクロ端子１４をシリアルデータの入力端子とし、フリップフロップ３１〜３６の順にデータがシフトされてマクロ端子１５からシリアルデータを出力する。このようにスキャンチェーンが構成される。全ての組み合わせ回路がフリップフロップによって囲まれることになるため、自動テスト手法により、組み合わせ回路の故障は全て検出することができる。
【００３２】
図１から図７を参照して、マクロ回路のテスト動作について説明する。図７は、テスト動作の流れを示すフローチャートである。本実施の形態では、テストモードはテストモードＡとテストモードＢとを有する。
【００３３】
（ステップＳ２１：初期設定）
まず、半導体集積回路の外部から制御して、マクロ回路１０をテストするテストモードに切り替え、初期設定する。テストモードは、ノーマルモードの接続でテストするテストモードＡから開始される。
【００３４】
（ステップＳ２２：テストパターン設定）
テストが開始されると、シフトレジスタとなるように各フリップフロップはシリアル接続され、スキャンチェーンが形成される。その後、シリアルデータのテストパターンが外部から入力される。テストパターンはシフトレジスタを順次伝達され、テストパターンがスキャンチェーンを構成する各フリップフロップに設定される。テストパターンが各フリップフロップに設定されると、シフトレジスタは、シリアル接続を解除される。選択回路は、外部から制御されるテストモードに基づいて出力する信号を選択する。各フリップフロップの出力は、組み合せ回路に供給される。組み合せ回路は、入力されたテストパターンに基づく論理演算の結果を出力する。
【００３５】
（ステップＳ２３：テスト結果収集）
組み合せ回路から演算結果が出力されると、各フリップフロップはその結果をラッチする。ラッチした結果を外部に出力するため、各フリップフロップはシリアル接続されてスキャンチェーンを形成する。各フリップフロップにラッチされた演算結果は、スキャンチェーンを通過してシリアルに外部に出力される。
【００３６】
（ステップＳ２５：パターン終了判定）
組み合せ回路の演算結果を取り出すと、次に試験するパターンがあるか判定する。入力パターンがある場合（ステップＳ２５−Ｎ）、次の入力パターンを設定してステップＳ２２から繰り返す。パターンを全て演算させると（ステップＳ２５−Ｙ）、このテストモードでのテストが終了する。
【００３７】
（ステップＳ２６：次のテストモード設定）
１つのテストモードが終了すると、次のテストモードを設定する。即ち、テストモードＡが終了すると、テストモードＢに設定を変更する。テストモードの変更は、選択回路が選択する信号を変えることにより行われる。
【００３８】
（ステップＳ２８：テストモード終了判定）
テストモードを全て終了したか否か判定する。未だテストすべきテストモードがある場合（ステップ２８−Ｎ）、次のテストモードが設定されてステップＳ２２から繰り返す。全てのテストモードのテストを完了すると（ステップＳ２８−Ｙ）、ノーマルモードが設定され、マクロ回路のテストは終了する。
【００３９】
さらに具体的に説明する。図１は、ノーマルモードにおける信号の流れを示す。選択回路４１、４２は、ノーマルモード（Ｎ）が設定され、マクロ端子１１、１２から入力する信号を選択して組み合せ回路２１に出力する。選択回路４４、４６、４８は、ノーマルモードとテストモードＡとにおいて同じ設定（Ａ）になっている。したがって、マクロ端子１１、１２から入力される信号は、選択回路４１、４２を介して組み合わせ回路２１に入力される。組み合わせ回路２１の出力は、選択回路４４を介して、フリップフロップ３１に入力される。フリップフロップ３１の出力は、組み合せ回路２３に接続される。組み合せ回路２３の出力は、フリップフロップ３３、３４に直接接続され、選択回路４６を介してフリップフロップ３２に入力される。フリップフロップ３２、３３、３４の出力は、組み合せ回路２５に接続される。組み合せ回路２５の出力は、フリップフロップ３６に直接、フリップフロップ３５には選択回路４８を介して接続される。フリップフロップ３５、３６の出力は、組み合せ回路２７に入力される。組み合せ回路２７の出力は、マクロ端子１７、１８、１９からマクロ回路１０の外部に出力される。
【００４０】
マクロ回路１０は半導体集積回路の外部から制御され、テストが開始される。図２に示されるように、フリップフロップ３１〜３６はシリアル接続され、スキャンチェーンを構成する。マクロ回路１０は、テストパターンを入力される状態になる。マクロ端子１４からテストパターンが入力され、スキャンチェーンを順次伝達される。マクロ端子１４から入力されたパターンがフリップフロップ３６に到達すると全てのフリップフロップに入力パターンが設定されたことになる。
【００４１】
全てのフリップフロップにテストパターンが設定されると、スキャンチェーンが解除される。マクロ回路１０は、半導体集積回路の外部から制御されて動作モードをテストモードＡに設定される。選択回路４１、４２は、一連のテストが終了するまでテストモード（Ｔ）が設定される。テストモードＡでは、選択回路４４、４６、４８は、出力信号としてＡ側の入力を選択する。したがって、図３に示されるように、フリップフロップ３１〜３６の出力が組み合せ回路２１、２３、２５、２７に供給される。組み合せ回路２１、２３、２５、２７の演算が開始される。組み合せ回路２１には、フリップフロップ３４の出力、フリップフロップ３６の出力が各々選択回路４２、選択回路４１を介して供給される。
【００４２】
テストパターンが供給されると、組み合せ回路２１、２３、２５、２７は、それぞれの組み合せ論理にしたがって演算結果を出力する。図４に示されるように、組み合せ回路２１の出力は、選択回路４４を介してフリップフロップ３１にラッチされる。組み合せ回路２３の出力はフリップフロップ３３、３４に直接、フリップフロップ３２には選択回路４６を介してラッチされる。組み合せ回路２５の出力は、フリップフロップ３６に直接、フリップフロップ３５に選択回路４８を介してラッチされる。この場合、組み合せ回路２７の出力はどのフリップフロップにもラッチされない。
【００４３】
各フリップフロップに演算結果がラッチされると、図２に示されるように、演算結果を出力するためにフリップフロップ３１〜３６はシリアル接続されてスキャンチェーンを構成する。演算結果はスキャンチェーン上をシフトされてマクロ端子１５から順次出力される。マクロ端子１５から出力される出力パターンは、予め計算機シミュレーションにより求められるパターンと比較されることになる。ここで、演算結果をマクロ端子１５から出力するとともに、マクロ端子１４から次のテストパターンを入力する。このようにパターンの出力と入力を同時に行うと、テスト時間の短縮が図れる。このテストモードＡのテストパターンを全て演算して出力するまで以上を繰り返す。
【００４４】
テストモードＡのテストパターンを消化すると、マクロ回路１０は、半導体集積回路の外部から制御されて、動作モードをテストモードＢに設定される。テストモードＢでは、選択回路４４、４６、４８は、出力信号としてＢ側の入力を選択する。テストモードＡの場合と同様に、図２に示されるように、フリップフロップ３１〜３６はシリアル接続され、スキャンチェーンを構成する。マクロ回路１０は、テストパターンを入力される状態になる。マクロ端子１４からテストパターンが入力され、スキャンチェーンを順次伝達される。マクロ端子１４から入力されたテストパターンがフリップフロップ３６に到達すると全てのフリップフロップにテストパターンが設定されたことになる。
【００４５】
全てのフリップフロップにテストパターンが設定されると、スキャンチェーンが解除される。図５に示されるように、フリップフロップ３１〜３６の出力が組み合せ回路２１、２３、２５、２７に供給される。組み合せ回路２１、２３、２５、２７の演算が開始される。組み合せ回路２１には、フリップフロップ３４の出力、フリップフロップ３６の出力が各々選択回路４２、選択回路４１を介して供給される。
【００４６】
テストパターンが供給されると、組み合せ回路２１、２３、２５、２７は、組み合せ論理にしたがって演算結果を出力する。図６に示されるように、組み合せ回路２７の出力は、マクロ端子１７、１８、１９に出力されるとともに、各々選択回路４８、４６、４を介してフリップフロップ３５、３２、３１にラッチされる。テストモードＡのときラッチされた組み合せ回路２１の出力は、選択回路４４がＢ側を選択するためテストモードＢではラッチされない。直接フリップフロップ３３、３４に接続される組み合せ回路２３の出力はフリップフロップ３３、３４にラッチされる。テストモードＡのとき選択回路４６を介してフリップフロップ３２にラッチされた組み合せ回路２３の出力は、テストモードＢではラッチされない。組み合せ回路２５の出力のうち、フリップフロップ３６に直接接続されるものはラッチされるが、フリップフロップ３５に選択回路４８を介して接続されるものはラッチされない。このように、テストモードＢは、主に組み合せ回路２７をテストした結果を得ることになる。
【００４７】
各フリップフロップに演算結果がラッチされると、図２に示されるように、演算結果を出力するためにフリップフロップ３１〜３６はシリアル接続されてスキャンチェーンを構成する。演算結果はスキャンチェーン上をシフトされてマクロ端子１５から順次出力される。マクロ端子１５から出力される出力パターンは、予め計算機シミュレーションにより求められるパターンと比較されることになる。ここで、演算結果をマクロ端子１５から出力するとともに、マクロ端子１４から次のテストパターンを入力する。
【００４８】
このテストモードＢのテストパターンを全て演算して出力するまで以上を繰り返す。テストモードＢのテストパターンによりマクロ端子に直接接続する組み合せ回路２７のテストが行われることになる。テストモードＢのテストが終了すると、図１に示されるノーマルモードが設定される。
【００４９】
このように、従来技術では得ることのできなかった組み合せ回路２１及び組み合せ回路２７のテスト結果を取り出すことができるようになる。
【００５０】
本実施の形態では、選択回路４４、４６、４８は２入力で説明した。出力マクロ端子の数と内在するフリップフロップの数との関係から多入力の選択回路を用い、多重度を上げてテストする組み合せ回路を分割してもよい。その場合、多重度に応じたテストモードを必要とし、多数のテストモードを使い分けることになる。また、ここでは、テストモードの全パターンのテストが終了するとテストモードを切り替えるように説明したが、テストパターン毎にテストモードを切り替えてもよい。
【００５１】
入力側のマクロ端子に直接接続される組み合せ回路にテストパターンを設定するフリップフロップとして内在のフリップフロップを用い、出力側のマクロ端子に直接接続される組み合せ回路の出力を内在のフリップフロップに時間的にずらしてラッチさせる。
【００５２】
即ち、内在のフリップフロップを時多重で使用してテスト用のフリップフロップを設けること無く入出力のマクロ端子に直接接続される組み合せ回路のテストをすることができ、故障検出率を向上させることができる。このとき多重化のために使用される選択回路は、フリップフロップに比較して回路の面積が大幅に小さい。そのため、チップ面積に対するメリットが大きい。なお、ここでは、マクロ回路に関して説明したが、スキャン手法を用いる回路では全て同じようにすることができる。
【図面の簡単な説明】
【００５３】
【図１】本発明を実施するための最良の形態に係るマクロ回路を模式的に示す図（ノーマルモード時）である。
【図２】同スキャンチェーンを構成したときを示す図である。
【図３】同テストモードＡのテストパターンをセットしたときを示す図である。
【図４】同テストモードＡの結果をラッチするときを示す図である。
【図５】同テストモードＢのテストパターンをセットしたときを示す図である。
【図６】同テストモードＢの結果をラッチするときを示す図である。
【図７】同テストモードの動作を示すフローチャートである。
【図８】従来のスキャン手法によるテストを説明するための図である。
【図９】従来のスキャン手法によるテストの改良を説明するための図である。
【符号の説明】
【００５４】
１０  マクロ回路
１１、１２、１４、１５、１７、１８、１９  マクロ端子
２１、２３、２５、２７  組み合せ回路
３１、３２、３３、３４、３５、３６  フリップフロップ
４１、４２、４４、４６、４８  選択回路
１００  半導体集積回路／マクロ回路
１１１、１１２、１１４、１１５、１１７、１１８、１１９  端子
１２１、１２３、１２５、１２７  組み合せ回路
１３１、１３２、１３３、１３４、１３５、１３６  フリップフロップ
１５１、１５２、１５３、１５４、１５５  フリップフロップ
１６１、１６２  選択回路
【図１】
2006234512.tif 000003
【図２】
2006234512.tif 000004
【図３】
2006234512.tif 000005
【図４】
2006234512.tif 000006
【図５】
2006234512.tif 000007
【図６】
2006234512.tif 000008
【図７】
2006234512.tif 000009
【図８】
2006234512.tif 000010
【図９】
2006234512.tif 000011