(57)【要約】【課題】スキャンテストにおいて、遅延値の小さい論理回路に不具合があっても、遅延値の大きい論理回路の影響で不具合の検出はできなかった。【解決手段】スキャンチェーンを構成する第１と第２のスキャン記憶素子と、前記第１と第２のスキャン記憶素子の入力にそれぞれつながる第１と第２の論理回路とを有し、前記第１の論理回路は、前記第１のスキャン記憶素子の入力までの第１の論理パスと第２の論理パスとを有し、前記第１の論理パスは、通常時に動作し、前記第２の論理回路が有する前記第２のスキャン記憶素子の入力までの第３の論理パスとは、所定の範囲以上の遅延差を有し、前記第２の論理パスは、スキャンテスト時に動作し、前記第３の論理パスとは、所定の範囲以内の遅延差を有する半導体集積回路。【選択図】図１
2010181360.tif 000002
【特許請求の範囲】
【請求項１】
スキャンチェーンを構成する第１と第２のスキャン記憶素子と、
前記第１と第２のスキャン記憶素子の入力にそれぞれつながる第１と第２の論理回路とを有し、
前記第１の論理回路は、前記第１のスキャン記憶素子の入力までの第１の論理パスと第２の論理パスとを有し、
前記第１の論理パスは、通常時に動作し、前記第２の論理回路が有する前記第２のスキャン記憶素子の入力までの第３の論理パスとは、所定の範囲以上の遅延差を有し、
前記第２の論理パスは、スキャンテスト時に動作し、前記第３の論理パスとは、所定の範囲以内の遅延差を有する
半導体集積回路。
【請求項２】
前記第２の論理回路は、第３と第４の論理回路とに分割され、
前記第１の論理パスは、前記第３及び第４の論理回路とで構成され、
前記第２の論理パスは、前記第３もしくは第４の論理回路で構成される
請求項１に記載の半導体集積回路。
【請求項３】
前記第３と第４の論理回路は、前記所定の範囲以内の遅延差となるよう分割される
請求項２に記載の半導体集積回路。
【請求項４】
制御回路と、
前記制御回路に制御される第１と第２の選択回路と、を更に有し、
前記第１の選択回路は、一方の入力が前記第３の論理回路、他方の入力が前段のスキャン記憶素子と接続され、
前記第２の選択回路は、一方の入力が前記第４の論理回路、他方の入力が前記第１の選択回路の出力と接続され、
前記制御回路は、前記スキャンテスト時において、
第１の状態では、前記第１の選択回路の一方の入力を選択して出力させ、前記第２の選択回路の他方の入力を選択して出力させ、
第２の状態では、前記第１の選択回路の他方の入力を選択して出力させ、前記第２の選択回路の一方の入力を選択して出力させる
請求項３に記載の半導体集積回路。
【請求項５】
前記制御回路は、前記通常時には、前記第１の選択回路の他方の入力を選択して出力させ、前記第２の選択回路の他方の入力を選択して出力させる
請求項４に記載の半導体集積回路。
【請求項６】
前記第１の論理回路は、第５の論理回路と遅延回路とを含み、
前記第１の論理パスは、前記第５の論理回路で構成され、
前記第２の論理パスは、前記第５の論理回路と前記遅延回路とで構成される
請求項１に記載の半導体集積回路。
【請求項７】
制御回路と、
前段のスキャン記憶素子と第１のスキャン記憶素子との間に接続され、前記制御回路に制御される第３の選択回路と、を更に有し、
前記第３の選択回路は、一方の入力には前記遅延回路を含むパス、他方の入力には前記遅延回路を含まないパスが接続され、
前記制御回路は、
通常時では、前記第３の選択回路の一方の入力を選択して出力し、
スキャンテスト時には、前記第３の選択回路の他方の入力を選択して出力する
請求項６に記載の半導体集積回路。
【請求項８】
前記所定の範囲の遅延差は、少なくとも論理素子１つ分の遅延期間に相当する
請求項１〜７のいずれか１項に記載の半導体集積回路。
【請求項９】
接続される前段のフリップフロップからの出力信号を入力し、その演算結果を後段のフリップフロップに出力する複数の論理回路を有する半導体集積回路のコンピュータによる設計方法であって、
前記複数の論理回路のうち第１と第２の論理回路と、前記第１の論理回路の出力を受ける第１のフリップフロップと、前記第２の論理回路の出力を受ける第２のフリップフロップの回路情報を有するネットリストを作成し、
前記ネットリストと、前記第１及び第２の論理回路の遅延の情報を有する遅延情報レポートとを参照して、前記第１と第２の論理回路の遅延差が所定の範囲内となる場合、前記第１と第２のフリップフロップをスキャンチェーン接続させる
半導体集積回路のコンピュータによる設計方法。
【請求項１０】
接続される前段のフリップフロップからの出力信号を入力し、その演算結果を後段のフリップフロップに出力する複数の論理回路を有する半導体集積回路のコンピュータによる設計方法であって、
前記複数の論理回路のうち第１と第２の論理回路と、前記第１の論理回路の出力を受ける第１のフリップフロップと、前記第２の論理回路の出力を受ける第２のフリップフロップの回路情報を有するネットリストを作成し、
前記ネットリストと、前記第１及び第２の論理回路の遅延の情報を有する遅延情報レポートとを参照して、スキャンテスト時には前記第１と第２の論理回路の少なくとも一方を前記第１と第２の論理回路の遅延差が所定の範囲以内となるよう論理回路の分割もしくは遅延回路の追加が可能なように構成し、
前記第１と第２のフリップフロップをスキャンチェーン接続させる
半導体集積回路のコンピュータによる設計方法。
【請求項１１】
前記第１の論理回路の遅延が、前記第２の論理回路の遅延より大きい場合、前記第１の論理回路を第３の論理回路と第４の論理回路に分割し、
前記第３と第４の論理回路の遅延差が前記所定の範囲以内となるよう構成する
請求項１０に記載の半導体集積回路のコンピュータによる設計方法。
【請求項１２】
第１の状態では前記第３の論理回路、第２の状態では前記第４の論理回路がスキャンテストされるよう構成する
請求項１１に記載の半導体集積回路のコンピュータによる設計方法。
【請求項１３】
前記第１の論理回路の遅延が、前記第２の論理回路の遅延より小さい場合、前記第１の論理回路に、前記第２の論理回路の遅延と実質的に同等となるよう所定の遅延値を有する遅延回路を接続する
請求項１０に記載の半導体集積回路のコンピュータによる設計方法。
【請求項１４】
スキャンチェーンを構成する第１と第２のスキャン記憶素子と、
前記第１と第２のスキャン記憶素子の入力にそれぞれつながる第１と第２の論理回路と、を有し、
前記第１の論理回路は、前記第１のスキャン記憶素子の入力までの第１の論理パスと第２の論理パスとを有し、
前記第２の論理回路は、前記第１の論理パスと所定の範囲以上、前記第２の論理パスと所定の範囲以内の遅延差を有する前記第２のスキャン記憶素子の入力までの第３の論理パスを備える半導体集積回路の試験方法であって、
通常時には、前記第１の論理パスにより動作させ、
スキャンテスト時には、前記第２の論理パスにより動作させる
半導体集積回路の試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、及び半導体集積回路の試験方法、及び半導体集積回路の設計方法に関するものである。
【背景技術】
【０００２】
半導体集積回路は、所望の機能で動作するかをテストする機能テストと、所望の動作周波数で動作するかをテストする遅延テストが行われる。このような半導体集積回路に対する機能及び遅延テスト方法の１つとして、スキャンテスト回路を使ったテスト手法が行われていた。以下、図１３〜図１５を参照して従来のスキャンテスト回路を用いた機能及び遅延テストについての概略を説明する。
【０００３】
図１３に示すようにスキャンテスト回路は、所望の機能を実現するために組み合わせ回路（論理回路）と順序回路（フリップフロップ）等とを有する半導体集積回路１に組み込まれる。このスキャンテスト回路は、半導体集積回路１の順序回路の一部または全部をスキャン記憶素子に置換える。なお、図１３では、図面の簡略化のため、スキャン記憶素子を３つのみ示す。スキャン記憶素子１１〜１３は、入力に前段のスキャン記憶素子の出力を接続している。
【０００４】
図１４に、スキャン記憶素子１１〜１３の構成の一例を示す。図１４に示すように、スキャン記憶素子１１〜１３は、フリップフロップＦＦ１と、セレクタＭＵＸ１とを有する。また、スキャン素子１１〜１３は、データ入力端子Ｄｉｎ、データ出力端子Ｄｏｕｔと、スキャンイン端子Ｓｉｎ、スキャンイネーブル端子ＳＥＮおよびクロック端子ＣＬＫとを有する。
【０００５】
データ入力端子Ｄｉｎは、前段の論理回路からの出力データを入力する。スキャンイン端子Ｓｉｎは、前段のスキャン記憶素子からのスキャンデータを入力する。スキャンイネーブル端子ＳＥＮは、スキャンイネーブル信号を入力する。クロック端子ＣＬＫは、クロック信号ｃｌｋを入力する。データ出力端子Ｄｏｕｔは、フリップフロップＦＦ１からの出力データを出力する。
【０００６】
セレクタＭＵＸ１は、スキャンイネーブル端子ＳＥＮに設定されるスキャンイネーブル信号ｓｃａｎ＿ｅｎの設定値に応じて、データ入力端子Ｄｉｎ、もしくはスキャンイン端子Ｓｉｎに入力されるデータをフリップフロップＦＦ１に出力する。フリップフロップＦＦ１は、クロック端子ＣＬＫに入力されるクロック信号に応じて、入力端子Ｄに入力したデータをラッチし、記憶保持して出力端子Ｑから出力する。
【０００７】
半導体集積回路１において、スキャンデータ入力端子３１からスキャン記憶素子１１〜１３を経て、スキャンデータ出力端子３５まで、１つのスキャンチェーンが構成される。なお、図１３に示す半導体集積回路１では、図面の簡略化のためスキャン記憶素子１１〜１３のみを示しているが、スキャン記憶素子１１の前段、スキャン記憶素子１３の後段にも複数のスキャン記憶素子を有している。このスキャンチェーンを有するスキャンテスト回路は、スキャンイネーブル信号ｓｃａｎ＿ｅｎの値に応じて、上述のスキャンを活性化するシフトモードと、論理回路２１〜２２の出力を順序回路（各スキャン素子のフリップフロップＦＦ１）が取り込むスキャンモードとを切り替えることができる。なお、スキャンモードは半導体集積回路１の通常の動作モードでもある。
【０００８】
半導体集積回路１のスキャンテスト回路の動作を以下に簡単に説明する。図１５に半導体集積回路１のスキャンテスト回路のタイミングチャートを示す。まず時刻ｔ１までスキャンイネーブル信号ｓｃａｎ＿ｅｎをハイレベルとする。スキャンイネーブル信号ｓｃａｎ＿ｅｎがハイレベルの期間、スキャンテスト回路は、シフトモードとなる。このシフトモードの半導体集積回路１は、クロック信号ｃｌｋの立ち上がりエッジに同期させて、スキャンイン端子３１から入力したスキャンデータをスキャン記憶素子１１〜１３に初期設定する。
【０００９】
そして、時刻ｔ１〜ｔ４まで、スキャンイネーブル信号ｓｃａｎ＿ｅｎをロウレベルとする。スキャンイネーブル信号ｓｃａｎ＿ｅｎがロウレベルの期間、スキャンテスト回路は、スキャンモードとなる。スキャンモードの半導体集積回路１において、時刻ｔ２、ｔ３に、所望のパルス周期をもったクロック信号ｃｌｋをクロック端子３４に入力する。この動作により、スキャン記憶素子１１〜１３に、初期値に応じた論理回路２１、２２の演算結果を、スキャン記憶素子１１〜１３に記憶保持させる。
【００１０】
最後に時刻ｔ４から、スキャンイネーブル信号ｓｃａｎ＿ｅｎをハイレベルとする。よって、再びシフトモードとなり、クロック信号ｃｌｋを印加し、演算結果をスキャンデータ出力端子３５から取り出す。この外部に取り出した演算結果を、予め求められた期待値と照合することで、半導体装置１の機能テスト、および遅延テストを行う。また、このようなスキャンテストの診断の信頼性を上げる技術が特許文献１等に開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−１７８２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
近年、ＬＳＩ等の半導体集積回路は、プロセスの微細化に応じて回路規模が増加し、高集積化一層進んでいる。このため、故障箇所を検出する難易度も上がっている。また、同時に高速化も進み、遅延故障箇所の特定も困難となっている。このような高集積化、高速化された半導体集積回路において、上述したスキャンテストを行っても、故障箇所の特定が困難となってきている。例えば、以下のような問題が考えられる。
【００１３】
まず、図１３の論理回路２１と２２が有する遅延時間との関係を示す模式図を図１６、図１７に示す。図１６は正常に回路が構成されている場合、図１７は、回路構成に不具合がある場合の半導体集積回路１の構成である。図１６に示すように、論理回路２１は遅延値「５」、論理回路２２は遅延値「１０」を有するものとする。なお、ここで遅延値とは、論理回路の入出力応答に対する遅延時間を示すものとする。この遅延値の数値が大きいほど、論理回路の入出力応答に対する遅延時間が長いものとする。
【００１４】
図１６に示すように、論理回路２１に比べ論理回路２２の遅延値の方が大きい。このため、スキャンモード時にスキャン記憶素子１１〜１３に入力されるクロック信号ｃｌｋのパルス周期は、論理回路２２の遅延値に合わせて設定される。しかし、図１７に示すような、論理回路２１に何らかの不具合があり所望した遅延値「５」ではなく、異常値である遅延値「８」となっている場合でも、スキャンテストで不具合は発見されず、見過ごされてしまう。この不具合は、例えば温度変化等により動作環境が変わった場合に、論理回路２２の遅延値より論理回路２１の遅延値の方が大きくなるなどして発現する可能性がある。このように不具合が発現すると、半導体集積回路が誤動作を起こす危険性がある。
【００１５】
また、上述の特許文献１の回路においても、各順序回路（フリップフロップ）間の論理回路に上述したのと同様の不具合があって場合、遅延値の大きい論理回路の影響で不具合の検出はできない。よって、半導体集積回路において、このような隠蔽された不具合を発見できるスキャンテスト回路の構成、検査方法、設計方法が求められている。
【課題を解決するための手段】
【００１６】
本発明の第１の態様は、スキャンチェーンを構成する第１と第２のスキャン記憶素子と、前記第１と第２のスキャン記憶素子の入力にそれぞれつながる第１と第２の論理回路とを有し、前記第１の論理回路は、前記第１のスキャン記憶素子の入力までの第１の論理パスと第２の論理パスとを有し、前記第１の論理パスは、通常時に動作し、前記第２の論理回路が有する前記第２のスキャン記憶素子の入力までの第３の論理パスとは、所定の範囲以上の遅延差を有し、前記第２の論理パスは、スキャンテスト時に動作し、前記第３の論理パスとは、所定の範囲以内の遅延差を有する半導体集積回路である。
【００１７】
本発明の半導体集積回路は、スキャン記憶素子にそれぞれつながる第１と第２の論理回路の第２と第３の論理パス遅延差が所定の範囲内に収まる。このため、第１の論理回路に不具合がある場合、スキャンテスト時にエラー検出することが可能となる。
【００１８】
本発明の第２の態様は、接続される前段のフリップフロップからの出力信号を入力し、その演算結果を後段のフリップフロップに出力する複数の論理回路を有する半導体集積回路のコンピュータによる設計方法であって、前記複数の論理回路のうち第１と第２の論理回路と、前記第１の論理回路の出力を受ける第１のフリップフロップと、前記第２の論理回路の出力を受ける第２のフリップフロップの回路情報を有するネットリストを作成し、前記ネットリストと、前記第１及び第２の論理回路の遅延の情報を有する遅延情報レポートとを参照して、前記第１と第２の論理回路の遅延差が所定の範囲内となる場合、前記第１と第２のフリップフロップをスキャンチェーン接続させる半導体集積回路のコンピュータによる設計方法である。
【００１９】
本発明の第３の態様は、接続される前段のフリップフロップからの出力信号を入力し、その演算結果を後段のフリップフロップに出力する複数の論理回路を有する半導体集積回路のコンピュータによる設計方法であって、前記複数の論理回路のうち第１と第２の論理回路と、前記第１の論理回路の出力を受ける第１のフリップフロップと、前記第２の論理回路の出力を受ける第２のフリップフロップの回路情報を有するネットリストを作成し、前記ネットリストと、前記第１及び第２の論理回路の遅延の情報を有する遅延情報レポートとを参照して、スキャンテスト時には前記第１と第２の論理回路の少なくとも一方を前記第１と第２の論理回路の遅延差が所定の範囲以内となるよう論理回路の分割もしくは遅延回路の追加が可能なように構成し、前記第１と第２のフリップフロップをスキャンチェーン接続させる半導体集積回路のコンピュータによる設計方法である。
【００２０】
本発明の第４の態様は、スキャンチェーンを構成する第１と第２のスキャン記憶素子と、前記第１と第２のスキャン記憶素子の入力にそれぞれつながる第１と第２の論理回路と、を有し、前記第１の論理回路は、前記第１のスキャン記憶素子の入力までの第１の論理パスと第２の論理パスとを有し、前記第２の論理回路は、前記第１の論理パスと所定の範囲以上、前記第２の論理パスと所定の範囲以内の遅延差を有する前記第２のスキャン記憶素子の入力までの第３の論理パスを備える半導体集積回路の試験方法であって、通常時には、前記第１の論理パスにより動作させ、スキャンテスト時には、前記第２の論理パスにより動作させる半導体集積回路の試験方法である。
【発明の効果】
【００２１】
本発明の半導体集積回路は、従来のスキャンテストでは隠蔽されていた、組み合わせ回路の不具合の発見が可能になる。
【図面の簡単な説明】
【００２２】
【図１】実施の形態１にかかる半導体集積回路の構成である。
【図２】実施の形態１にかかる半導体集積回路の効果を説明するための模式図である。
【図３】実施の形態１にかかる半導体集積回路の他の構成の例である。
【図４】実施の形態２にかかる半導体集積回路の構成である。
【図５】実施の形態２にかかる半導体集積回路の効果を説明するための模式図である。
【図６】実施の形態３にかかる半導体集積回路の構成である。
【図７】従来技術の半導体集積回路の構成である。
【図８】実施の形態３にかかる半導体集積回路の効果を説明するための模式図である。
【図９】実施の形態３にかかる半導体集積回路の他の構成の例である。
【図１０】実施の形態４にかかる半導体集積回路の設計方法を説明する模式図である。
【図１１】実施の形態４にかかる半導体集積回路の設計方法のフローチャートである。
【図１２】その他の実施の形態にかかる半導体集積回路の構成である。
【図１３】従来の半導体集積回路の構成である。
【図１４】スキャン記憶素子の構成である。
【図１５】一般的なスキャンテストのタイミングチャートである。
【図１６】従来の半導体集積回路の問題点を説明するための模式図である。
【図１７】従来の半導体集積回路の問題点を説明するための模式図である。
【発明を実施するための形態】
【００２３】
発明の実施の形態１
【００２４】
以下、本発明を適用した具体的な実施の形態１について、図面を参照しながら詳細に説明する。図１に本実施の形態にかかる半導集積回路１００の構成の一例を示す。ここで、本実施の形態１では、所望の機能を実現するための組み合わせ回路（論理回路）と、フリップフロップ等の順序回路によりスキャンテスト回路が構成されるものとする。以下、図面で示す半導体集積回路１００は、スキャンテスト回路での構成を示すものとする。
【００２５】
図１に示すように、半導体集積回路１００は、スキャン記憶素子１１１〜１１３と、論理回路１２１、１２２と、制御回路１５０とを有する。また、半導体集積回路１００は、スキャンデータ入力端子１３１と、データ入力端子１３２と、スキャンイネーブル信号入力端子１３３と、クロック信号入力端子１３４と、スキャンデータ出力端子１３５と、データ出力端子１３６とを有する。なお、スキャン記憶素子１１１〜１１３は、図１４のスキャン記憶素子１１〜１３と同様の構成となっている。よって、構成及び動作は説明済みのため省略する。また、本実施の形態１では、図面の簡略化のため、スキャン記憶素子を３つのみとして示す。
【００２６】
スキャン記憶素子１１１〜１１３は、入力に前段のスキャン記憶素子の出力を接続している。つまり、スキャン記憶素子１１１〜１１３は、シリアル接続されシフトレジスタを構成している。このシフトレジスタの初段のスキャン記憶素子１１１は、スキャンデータ入力端子１３１からスキャンデータを入力される。最終段のスキャン記憶素子１１３は、その出力をスキャンデータ出力端子１３５に出力する。このように、半導体集積回路１００において、スキャンデータ入力端子１３１、スキャン記憶素子１１１〜１１３、スキャンデータ出力端子１３５により１つのスキャンチェーンが構成される。
【００２７】
クロック信号入力端子１３４は、半導体集積回路１００を動作させるクロック信号ｃｌｋを入力する。また、スキャンテスト時には、テスト用のクロック信号ｃｌｋを入力する。スキャンイネーブル信号入力端子１３３は、スキャンイネーブル信号ｓｃａｎ＿ｅｎを入力する。スキャンイネーブル信号ｓｃａｎ＿ｅｎは、半導体集積回路１００が通常動作時には、ロウレベルとなる。スキャンデータ入力端子１３１は、スキャンテストでスキャン記憶素子にセットするためのスキャンデータを入力する。スキャンデータ出力端子１３５は、スキャンテスト後にスキャン記憶素子が保持しているテスト結果を出力する。データ入力端子１３２は、半導体集積回路１００の通常動作時に利用する入力データ信号ｉｎｐｕｔが入力される。データ出力端子１３６は、半導体集積回路１００の通常動作時に、入力データ信号ｉｎｐｕｔに応じた組み合わせ回路（論理回路１２１、１２２）の出力データ信号ｏｕｔｐｕｔが出力される。なお、スキャン記憶素子１１３の後段に論理回路がない場合は、スキャンデータ出力端子１３５とデータ出力端子１３６を共通端子としてもよい。
【００２８】
論理回路１２１、１２２は、例えば、ＡＮＤ回路やインバータ回路等の複数の論理演算素子で構成されている。そして、論理回路１２１、１２２は、入力データ信号に対して所定の論理演算結果を後段のスキャン記憶素子に出力する。論理回路１２１は、スキャン記憶素子１１１のＤｏｕｔ端子から入力データ信号を入力し、その入力に対する論理演算結果をスキャン記憶素子１１２のＤｉｎ端子に出力する。論理回路１２２は、スキャン記憶素子１１２のＤｏｕｔ端子から入力データ信号を入力し、その入力に対する論理演算結果をスキャン記憶素子１１３のＤｉｎ端子に出力する。ここで、本実施の形態１では、論理回路１２１は遅延値「５」、論理回路１２２は遅延値「１０」を有するものとする。なお、遅延値とは、前述したのと同様、論理回路の入出力応答に対する遅延時間を示すものとする。この遅延値の数値が大きいほど、論理回路の入出力応答に対する遅延時間が長いものとする。よって、本実施の形態１では、論理回路１２２の遅延時間は論理回路１２１の約２倍となる。
【００２９】
論理回路１２２は、論理回路１４１、１４２と、選択回路１４３、１４４とを有する。ここで、論理回路１４１の演算結果を論理回路１４２に入力すると、その出力演算結果は、論理回路１２２の出力演算結果と同一になるものとする。つまり、論理回路１４１、１４２は、論理回路１２２を構成する複数の論理演算素子を所定のノードにより分割し、その分割した前後でユニット化したものである。
【００３０】
論理回路１４１は、スキャン記憶素子１１２のＤｏｕｔ端子から入力データ信号を入力し、その入力に対する論理演算結果を選択回路１４３の一方の入力端子に出力する。また、論理回路１４１は、論理回路１２１と同様の遅延値「５」を有するよう構成される。
【００３１】
選択回路１４３は、一方の入力端子が論理回路１４１の出力に接続され、他方の端子がスキャン記憶素子１１２のＤｏｕｔ端子に接続され、出力端子がノードＡに接続されている。また、選択回路１４３は、制御端子に制御回路１５０からの制御信号ｃｎｔｌ１を入力する。この制御信号ｃｎｔｌ１に応じて一方の入力端子もしくは他方の入力端子に入力されたデータ信号を選択し、出力端子に出力する。より具体的には、制御信号ｃｎｔｌ１がハイレベルのとき、一方の入力端子に入力したデータ信号を出力端子に出力する。逆に、制御信号ｃｎｔｌ１がロウレベルのとき、他方の入力端子に入力したデータ信号を出力端子に出力する。
【００３２】
論理回路１４２は、ノードＡ、つまり選択回路１４３の出力端子からのデータ信号を入力し、その入力に対する論理演算結果を選択回路１４４の一方の入力端子に出力する。また、論理回路１４２は、論理回路１２１と同様の遅延値「５」を有するよう構成される。
【００３３】
選択回路１４４は、一方の入力端子が論理回路１４２の出力に接続され、他方の端子がノードＡに接続され、出力端子がスキャン記憶素子１１３のＤｉｎ端子に接続されている。また、選択回路１４４は、制御端子に制御回路１５０からの制御信号ｃｎｔｌ２を入力する。この制御信号ｃｎｔｌ２に応じて一方の入力端子もしくは他方の入力端子に入力されたデータ信号のどちらか１つを選択し、出力端子に出力する。より具体的には、制御信号ｃｎｔｌ２がハイレベルのとき、一方の入力端子に入力したデータ信号を出力端子に出力する。逆に、制御信号ｃｎｔｌ２がロウレベルのとき、他方の入力端子に入力したデータ信号を出力端子に出力する。
【００３４】
このように、論理回路１２２は、自身の有する遅延値「１０」を、遅延値「５」に分割した論理回路１４１、１４２を内部に備える。また、選択回路１４３、１４４は、それぞれ制御回路１５０の制御信号ｃｎｔｌ１、ｃｎｔｌ２に応じて動作する。このため、論理回路１４１、１４２の出力演算結果のどちらか一方が、制御回路１５０の制御信号に応じて後段のスキャン記憶素子１１３へ伝達される。よって、スキャン記憶素子１１１、１１２間に設けられる回路（第２の論理回路）の遅延値と、スキャン記憶素子１１２、１１３間に設けられる回路（第１の論理回路）の遅延値とがほぼ等しくなる。
【００３５】
なお、図１の例では、スキャン記憶素子１１２のＤｏｕｔ端子から、論理回路１４１及び１４２を経てスキャン記憶素子１１３のＤｉｎ端子に接続されるパスを第１の論理パスとする。また、論理回路１４１もしくは１４２のいずれか一方を経てスキャン記憶素子１１３のＤｉｎ端子に接続されるパスを第２の論理パスとする。更に、スキャン記憶素子１１１のＤｏｕｔ端子から、論理回路１２１を経てスキャン記憶素子１１２のＤｉｎ端子に接続されるパスを第３の論理パスとする。
【００３６】
次に、上述した半導体集積回路１００の動作について説明する。なお、基本的なスキャンテスト動作は、図１５等で既に説明済みのため省略する。ここでは、本実施の形態１の特徴部分である論理回路１２２のスキャンテスト時の動作について説明する。
【００３７】
まず、制御回路１５０が出力する制御信号ｃｎｔｌ１をロウレベル、制御信号ｃｎｔｌ２をハイレベルとする。この状態（以下、第１の状態と称す）では、スキャンモードでスキャン記憶素子１１３の入力端子Ｄｉｎに入力されるデータ信号は、論理回路１４２の演算結果のみが反映される。つまり、制御信号ｃｎｔｌ１、ｃｎｔｌ２により、スキャン記憶素子１１２の出力端子Ｄｏｕｔとスキャン記憶素子１１３の入力端子Ｄｉｎ間のパスは論理回路１４２だけを経由したパスが選択される。このため、論理回路１２１、及び論理回路１２２の遅延値は共に「５」となる。よって、スキャンテストのスキャンモードで使用するクロック信号ｃｌｋのパルス周期を、遅延値「１０」よりも短い遅延値「５」の設定で使用可能である。
【００３８】
次に、制御回路１５０が出力する制御信号ｃｎｔｌ１をハイレベル、制御信号ｃｎｔｌ２をロウレベルとする。この状態では、スキャンモードでスキャン記憶素子１１３の入力端子Ｄｉｎに入力されるデータ信号は、論理回路１４１の演算結果のみが反映される。つまり、制御信号ｃｎｔｌ１、ｃｎｔｌ２により、スキャン記憶素子１１２の出力端子Ｄｏｕｔとスキャン記憶素子１１３の入力端子Ｄｉｎ間のパスは論理回路１４１だけを経由したパスが選択される。この状態（以下、第２の状態と称す）でも、論理回路１２１、及び論理回路１２２の遅延値は共に「５」となる。よって、スキャンテストのスキャンモードで使用するクロック信号ｃｌｋのパルス周期を、遅延値「５」の設定で使用可能である。
【００３９】
なお、半導体集積回路１００の通常動作時には、制御回路１５０が出力する制御信号ｃｎｔｌ１、ｃｎｔｌ２は、共にハイレベルとする。この場合、スキャン記憶素子１１２の出力端子Ｄｏｕｔとスキャン記憶素子１１３の入力端子Ｄｉｎ間のパスは論理回路１４１、１４２両方を経由したパスが選択される。よって、スキャン記憶素子１１３の入力端子Ｄｉｎに入力されるデータ信号は、論理回路１４１、１４２の両方による演算結果、つまり、論理回路１２２の演算結果となる。このため、本実施の形態１の構成となっていても、通常動作にはなんら影響を与えることがない。
【００４０】
ここで、図１７で説明したように、従来の半導体集積回路１では、スキャンテストを行っても、クリティカルパスである論理回路２２の遅延値の影響で隠蔽され、論理回路２１が有する不具合が検出できなかった。しかし、本実施の形態１の半導体集積回路１００では、図１に示すように、クリティカルパスである論理回路１２２を、論理回路１２１と同じ遅延値「５」となるような論理回路１４１、１４２で分割する。そして、スキャンテスト時において、論理回路１４１、１４２それぞれ一方だけを経由するパスでスキャンテストを行う。この場合のスキャンモードで使用するクロック信号ｃｌｋのパルス周期を、遅延値「５」に対応した設定とする。これらのことにより、図２の模式図に示すように、もし論理回路１２１が何らかの不具合を有しており、遅延値が正常な「５」ではなく異常値の「８」となっている場合、スキャンテスト後のデータが期待値と異なる結果を得る。よって、半導体集積回路１の回路構成では不可能だった、論理回路１２１が有する不具合を検出することが可能となる。
【００４１】
また、上述の説明では、遅延値「１０」の論理回路１２２を、１／２の値の遅延値「５」の論理回路１４１、１４２で分割した構成を述べた。しかし、論理回路１２２内部の複数の論理演算素子の構成によっては、理想的に論理回路１４１、１４２を同じ値の遅延値となるように分割できない場合も考えられる。例えば、図３に示すように、論理回路１２２を、異なる遅延値「Ａ」と「Ｂ」を有する論理回路１４１と１４２で分割する場合を考える。ここで、遅延値「Ａ」と「Ｂ」の関係はＡ＞Ｂとする。但し、論理回路１４１の遅延値「Ａ」は、遅延値「Ｂ」に所定の遅延値「ΔＴ」が付加された値となるように設定される。つまり、図３に示すように、遅延値「Ａ」を有する論理回路１４１は、遅延値「Ｂ」となる論理演算素子群１６１に、所定の遅延値「ΔＴ」を有する演算素子１６２が付加された構成となっている。このため、上記遅延値「ΔＴ」は、少なくとも１論理演算素子が有する遅延値（遅延時間）となる。このような構成とすることで、論理回路１４１、１４２の遅延値の差を最低限度に抑えることができる。よって、論理回路１２２を、ほぼ同一の遅延値を有する２つの論理回路１４１、１４２に分割することができる。なお、図３では、所定の遅延値「ΔＴ」を有する論理演算素子をインバータ回路で記載しているが、他の論理演算素子であってもかまわない。但し、可能な限り遅延時間の少ない論理演算素子を選択することが望ましい。
【００４２】
発明の実施の形態２
【００４３】
以下、本発明を適用した具体的な実施の形態２について、図面を参照しながら詳細に説明する。図４に本実施の形態２にかかる半導集積回路２００の構成の一例を示す。ここで、本実施の形態２は、実施の形態１と同様、所望の機能を実現するための組み合わせ回路（論理回路）と、フリップフロップ等の順序回路によりスキャンテスト回路が構成されるものとする。以下、図面で示す半導体集積回路２００は、スキャンテスト回路での構成を示すものとする。なお、図に示された符号のうち、図１と同じ符号を付した構成は、図１と同じか又は類似の構成を示している。よって、実施の形態１と同様な構成となっている部分の説明は省略する。実施の形態１とは、遅延値の小さい論理回路に遅延回路を付加することで、遅延値の大きな論理回路との間で遅延値と均一化させる点が異なる。ここでは、実施の形態１と異なる点について重点的に説明する。
【００４４】
図４に示すように、半導体集積回路２００は、スキャン記憶素子１１１〜１１３と、論理回路１２１、１２２と、付加遅延回路１７０と、制御回路１５０とを有する。また、半導体集積回路２００は、スキャンデータ入力端子１３１と、データ入力端子１３２と、スキャンイネーブル信号入力端子１３３と、クロック信号入力端子１３４と、スキャンデータ出力端子１３５と、データ出力端子１３６とを有する。各端子、各スキャン記憶素子、論理回路１２１は、実施の形態１と同様なため、具体的構成の説明は省略する。また、論理回路１２２は、特に実施の形態１のように、複数の論理回路に分割されておらず、遅延値「１０」を有するものとする。
【００４５】
付加遅延回路１７０は、ＡＮＤ回路１７１と、バッファ回路１７２、１７３とを有する。論理回路１２１は、入力データ信号に応じた論理演算結果をノードＢに出力する。ＡＮＤ回路１７１は、一方の入力端子がこのノードＢに接続される。また、ＡＮＤ回路１７１は、他方の入力端子に制御回路１５０からの制御信号ｃｎｔｌ３を入力する。ＡＮＤ回路１７１は、一方及び他方の入力端子に入力される信号を論理積し、演算結果を出力端子に出力する。よって、制御信号ｃｎｔｌ３がロウレベルのときは、ノードＢに印加されるデータ信号のレベルによらず、ロウレベルが出力される。逆に、制御信号ｃｎｔｌ３がハイレベルのときは、ノードＢに印加されるデータ信号と同相のデータ信号が出力端子から出力される。
【００４６】
バッファ回路１７２は、入力端子がＡＮＤ回路１７１の出力端子、出力端子がバッファ回路１７３の入力端子に接続される。バッファ回路１７３は、入力端がバッファ回路の出力端子、出力端子が選択回路１８０の一方の入力端子に接続される。付加遅延回路１７０は、ＡＮＤ回路１７１と、バッファ回路１７２、１７３が有する入出力応答に対する遅延時間の和として遅延値「５」を有するよう設定される。つまり、論理回路１２２の遅延値と、論理回路１２１及び付加遅延回路１７０の遅延値の合計が同じとなるように、付加遅延回路１７０が構成される。
【００４７】
選択回路１８０は、一方の入力端子がバッファ回路１７３の出力端子、他方の入力端子がノードＢ、出力端子がスキャン記憶素子１１２の入力端子Ｄｉｎに接続される。また、選択回路１８０は、制御端子に制御回路１５０からの制御信号ｃｎｔｌ３を入力する。この制御信号ｃｎｔｌ３に応じて一方の入力端子もしくは他方の入力端子に入力されたデータ信号のどちらか１つを選択し、出力端子に出力する。より具体的には、制御信号ｃｎｔｌ３がハイレベルのとき、一方の入力端子に入力したデータ信号を出力端子に出力する。逆に、制御信号ｃｎｔｌ３がロウレベルのとき、他方の入力端子に入力したデータ信号を出力端子に出力する。このため、スキャン記憶素子１１１、１１２間に設けられる回路（第２の論理回路）の遅延値は、論理回路１２１の遅延値「５」、もしくは、論理回路１２１及び付加遅延回路１７０の合計の遅延値「１０」として、制御回路１５０の制御信号ｃｎｔｌ３に応じて選択される。なお、スキャン記憶素子１１２、１１３間に設けられる回路（第１の論理回路）の遅延値は、論理回路１２２の遅延値「１０」である。
【００４８】
なお、図４の例では、スキャン記憶素子１１１のＤｏｕｔ端子から、論理回路１４１を経てスキャン記憶素子１１２のＤｉｎ端子に接続されるパスを第１の論理パスとする。また、スキャン記憶素子１１１のＤｏｕｔ端子から、論理回路１２１および付加遅延回路１７０を経てスキャン記憶素子１１２のＤｉｎ端子に接続されるパスを第２の論理パスとする。更に、スキャン記憶素子１１２のＤｏｕｔ端子から、論理回路１２２を経てスキャン記憶素子１１３のＤｉｎ端子に接続されるパスを第３の論理パスとする。
【００４９】
次に、上述した半導体集積回路２００の動作について説明する。なお、基本的なスキャンテスト動作は、図１５等で既に説明済みのため省略する。ここでは、本実施の形態２の特徴部分である負荷遅延回路１６０と選択回路１８０のスキャンテスト時の動作について説明する。
【００５０】
まず、スキャンテスト時に、制御回路１５０が出力する制御信号ｃｎｔｌ３をハイレベルとする。この状態（以下、第３の状態と称す）では、スキャン記憶素子１１１の出力端子Ｄｏｕｔとスキャン記憶素子１１２の入力端子Ｄｉｎ間のパスは論理回路１２１及び付加遅延回路１７０の両方を経由したパスが選択される。よって、スキャン記憶素子１１１の出力データ信号は、論理回路１２１と付加遅延回路１７０の遅延値の和である遅延値「１０」をもって、スキャン記憶素子１１２に伝達される。
【００５１】
なお、半導体集積回路２００の通常動作時、もしくはスキャンテスト時のシフトモード時には、制御回路１５０が出力する制御信号ｃｎｔｌ３は、ロウレベルとする。この場合、スキャン記憶素子１１１の出力端子Ｄｏｕｔとスキャン記憶素子１１２の入力端子Ｄｉｎ間のパスは論理回路１２１のみ経由するパスが選択される。よって、スキャン記憶素子１１２の入力端子Ｄｉｎに入力されるデータ信号は、通常の論理回路１２１での遅延値で伝達される。このため、本実施の形態２の構成となっていても、通常動作にはなんら影響を与えることがない。また、ＡＮＤ回路１７１には、ロウレベルの信号が入力されるため、後段のバッファ回路１７２、１７３が動作を行わない。このため、バッファ回路１７２、１７３で消費される電力を削減することができる。
【００５２】
本実施の形態２の半導体集積回路２００では、図４に示すように、クリティカルパスである論理回路１２２と同じ遅延値となるよう、論理回路１２１に付加遅延回路１７０が付加される。そして、スキャンテスト時において、論理回路１２１と付加遅延回路１７０の両方を経由するパスでスキャンテストを行う。この場合のスキャンモードで使用するクロック信号ｃｌｋのパルス周期を、遅延値「１０」に対応した設定とする。これらのことにより、図５の模式図に示すように、もし論理回路１２１が何らかの不具合を有しており、遅延値が正常な「５」ではなく異常値の「８」となっている場合、付加遅延回路１７０の遅延値の合計が「１３」となる。この異常遅延値「１３」は、遅延値「１０」よりも大きいため、スキャンテスト後のスキャンデータが期待値と異なる結果を得る。よって、実施の形態１と同様、半導体集積回路１の回路構成では不可能だった、論理回路１２１が有する不具合を検出することが可能となる。
【００５３】
また、本実施の形態１では、論理回路１４１、１４２をそれぞれ経由するパスでのスキャンテストが必要であった。このため、スキャンテストを２回行わなければならなかった。しかし、本実施の形態２では、スキャンテストを１回で済ますことができる。このため、検査工程の縮小が可能となり、検査コストを削減できるメリットを有する。また、本実施の形態２では、論理回路１２１と付加遅延回路１７０を経由したパスを利用しても、スキャン記憶素子１１２に入力される論理値には影響は無い。このため、スキャンテストに限らず、実動作テストでも論理回路１２１に付加遅延回路１７０を付加して動作させることができる。そして、その実動作を行ったテスト結果が期待値と異なっている場合、論理回路１２１に不具合があると判断できる。
【００５４】
ここで、図４の半導体集積回路２００では、付加遅延回路１７０と選択回路１８０とがノードＢとスキャン記憶素子１１２間に接続されている。しかし、この付加遅延回路１７０と選択回路１８０とをノードＣと論理回路１２１間に接続してもかまわない。
【００５５】
発明の実施の形態３
【００５６】
以下、本発明を適用した具体的な実施の形態３について、図面を参照しながら詳細に説明する。但し、本実施の形態３にかかる半導体集積回路は、マルチスキャンチェーンとして構成される。図６に本実施の形態３にかかる半導集積回路３００の構成の一例を示す。
【００５７】
図６に示すように、半導体集積回路３００は、スキャン記憶素子３１１〜３１３、３３１〜３３３、３５２〜３５３と、論理回路３２１、３２２、３４１、３４２、３６１、３６２とを有する。また、半導体集積回路３００は、スキャンデータ入力端子３０１、３０２、３０３と、スキャンデータ出力端子３０６、３０７、３０８と、スキャンイネーブル信号入力端子３０４と、クロック信号入力端子３０５とを有する。
【００５８】
スキャン記憶素子３１１〜３１３、３３１〜３３３、３５２〜３５３は、実施の形態１のスキャン素子１１１〜１１３と同様の構成を有する。よって、動作等の詳細な説明は省略する。また、スキャン記憶素子３１１〜３１３、３３１〜３３３、３５２〜３５３は、それぞれクロック信号入力端子３０５から供給されるクロック信号ｃｌｋを端子ＣＬＫに入力する。更に、スキャン記憶素子３１１〜３１３、３３１〜３３３、３５２〜３５３は、それぞれスキャンイネーブル信号入力端子３０４から供給されるスキャンイネーブル信号ｓｃａｎ＿ｅｎを端子ＳＥＮに入力する。
【００５９】
論理回路３２１、３４２は、遅延値「５」を有する。論理回路３４１、３６２は、遅延値「１０」を有する。論理回路３６１、３２２は、遅延値「１５」を有する。
【００６０】
スキャン記憶素子３１１は、端子Ｓｉｎがスキャンデータ入力端子３０１、端子ＤｏｕｔがノードＡ１に接続される。また、スキャン記憶素子３１１は、前段の論理回路が出力するデータ信号を端子Ｄｉｎに入力する。論理回路３２１は、ノードＡ１のデータ信号を入力し、その入力に対する論理演算結果を、スキャン記憶素子３１２の端子Ｄｉｎに出力する。
【００６１】
スキャン記憶素子３１２は、端子ＳｉｎがノードＡ１、端子ＤｏｕｔがノードＡ２に接続される。また、スキャン記憶素子３１２は、論理回路３２１が出力するデータ信号を端子Ｄｉｎに入力する。論理回路３２２は、ノードＡ２のデータ信号を入力し、その入力に対する論理演算結果を、スキャン記憶素子３１３の端子Ｄｉｎに出力する。
【００６２】
スキャン記憶素子３１３は、端子ＳｉｎがノードＣ２、端子Ｄｏｕｔがスキャンデータ出力端子３０６及び後段の論理回路に接続される。また、スキャン記憶素子３１３は、論理回路３２２が出力するデータ信号を端子Ｄｉｎに入力する。
【００６３】
スキャン記憶素子３３１は、端子Ｓｉｎがスキャンデータ入力端子３０２、端子ＤｏｕｔがノードＢ１に接続される。また、スキャン記憶素子３３１は、前段の論理回路が出力するデータ信号を端子Ｄｉｎに入力する。論理回路３４１は、ノードＢ１のデータ信号を入力し、その入力に対する論理演算結果を、スキャン記憶素子３３２の端子Ｄｉｎに出力する。
【００６４】
スキャン記憶素子３３２は、端子ＳｉｎがノードＢ１、端子ＤｏｕｔがノードＢ２に接続される。また、スキャン記憶素子３３２は、論理回路３４１が出力するデータ信号を端子Ｄｉｎに入力する。論理回路３４２は、ノードＢ２のデータ信号を入力し、その入力に対する論理演算結果を、スキャン記憶素子３３３の端子Ｄｉｎに出力する。
【００６５】
スキャン記憶素子３３３は、端子ＳｉｎがノードＡ２、端子Ｄｏｕｔがスキャンデータ出力端子３０７及び後段の論理回路に接続される。また、スキャン記憶素子３３３は、論理回路３４２が出力するデータ信号を端子Ｄｉｎに入力する。
【００６６】
スキャン記憶素子３５１は、端子Ｓｉｎがスキャンデータ入力端子３０３、端子ＤｏｕｔがノードＣ１に接続される。また、スキャン記憶素子３５１は、前段の論理回路が出力するデータ信号を端子Ｄｉｎに入力する。論理回路３６１は、ノードＣ１のデータ信号を入力し、その入力に対する論理演算結果を、スキャン記憶素子３５２の端子Ｄｉｎに出力する。
【００６７】
スキャン記憶素子３５２は、端子ＳｉｎがノードＣ１、端子ＤｏｕｔがノードＣ２に接続される。また、スキャン記憶素子３５２は、論理回路３６１が出力するデータ信号を端子Ｄｉｎに入力する。論理回路３６２は、ノードＣ２のデータ信号を入力し、その入力に対する論理演算結果を、スキャン記憶素子３５３の端子Ｄｉｎに出力する。
【００６８】
スキャン記憶素子３５３は、端子ＳｉｎがノードＢ２、端子Ｄｏｕｔがスキャンデータ出力端子３０８及び後段の論理回路に接続される。また、スキャン記憶素子３５３は、論理回路３６２が出力するデータ信号を端子Ｄｉｎに入力する。
【００６９】
以上、上述した半導体集積回路３００では、スキャンデータ入力端子３０１、スキャン記憶素子３１１、３１２、３３３、スキャンデータ出力端子３０７により１つのスキャンチェーン（以下、第１のスキャンチェーンと称す）が構成される。この第１のスキャンチェーンは、遅延値が「５」の論理回路３２１、３４２を考慮してスキャンチェーンが構成されている。
【００７０】
また、スキャンデータ入力端子３０２、スキャン記憶素子３３１、３３２、３５３、スキャンデータ出力端子３０８により１つのスキャンチェーン（以下、第２のスキャンチェーンと称す）が構成される。この第２のスキャンチェーンは、遅延値が「１０」の論理回路３４１、３６２を考慮してスキャンチェーンが構成されている。
【００７１】
また、スキャンデータ入力端子３０３、スキャン記憶素子３５１、３５２、３１３、スキャンデータ出力端子３０６により１つのスキャンチェーン（以下、第３のスキャンチェーンと称す）が構成される。この第３のスキャンチェーンは、遅延値が「１５」の論理回路３６１、３２２を考慮してスキャンチェーンが構成されている。
【００７２】
次に、上述した半導体集積回路３００の動作について説明する。なお、基本的なスキャンテスト動作は、図１５等で既に説明済みのため省略する。まず、スキャンモードで使用するクロック信号ｃｌｋのパルス周期を、遅延値「１５」用に設定してスキャンテスト（以下、第１条件スキャンテストと称す）を行う。
【００７３】
この第１条件スキャンテストを行うことにより、第１のスキャンチェーンのスキャン記憶素子３１２、３３３は、それぞれ遅延値「５」の論理回路３２１、３４２の論理演算結果を格納する。また、第２のスキャンチェーンのスキャン記憶素子３３２、３５３も、それぞれ遅延値「１０」の論理回路３４１、３６２の論理演算結果を格納する。また、第３のスキャンチェーンのスキャン記憶素子３５２、３１３も、それぞれ遅延値「１５」の論理回路３６１、３２２の論理演算結果を格納する。
【００７４】
そして、そのテスト後に、第３のスキャンチェーンのスキャン記憶素子３５１、３５２、３１３がそれぞれ格納しているスキャンデータをスキャンデータ出力端子３０６から取り出し、期待値と比較する。なお、同様に第１、第２のスキャンチェーンからも、それぞれスキャンデータがスキャンデータ出力端子３０７、３０８から取り出される。しかし、注目している第３のスキャンチェーン以外の出力結果は、破棄する。
【００７５】
次に、スキャンモードで使用するクロック信号ｃｌｋのパルス周期を、遅延値「１０」用に設定してスキャンテスト（以下、第２条件スキャンテストと称す）を行う。この第２条件スキャンテストを行い、第１条件スキャンテストと同様、第１〜第３のスキャンチェーンのスキャン記憶素子にそれぞれ、論理回路の演算結果を格納させる。そして、そのテスト後に、第２のスキャンチェーンのスキャン記憶素子３３１、３３２、３５３がそれぞれ格納しているスキャンデータをスキャンデータ出力端子３０８から取り出し、期待値と比較する。また、第１条件スキャンテストと同様、注目している第２のスキャンチェーン以外の出力結果は破棄する。
【００７６】
次に、スキャンモードで使用するクロック信号ｃｌｋのパルス周期を、遅延値「５」用に設定してスキャンテスト（以下、第３条件スキャンテストと称す）を行う。この第３条件スキャンテストを行い、第１、第２条件スキャンテストと同様、第１〜第３のスキャンチェーンのスキャン記憶素子にそれぞれ、論理回路の演算結果を格納させる。そして、そのテスト後に、第１のスキャンチェーンのスキャン記憶素子３１１、３１２、３３３がそれぞれ格納しているスキャンデータをスキャンデータ出力端子３０７から取り出し、期待値と比較する。また、第１、第２条件スキャンテストと同様、注目している第１のスキャンチェーン以外の出力結果は破棄する。
【００７７】
ここで、従来の半導体集積回路３の構成を図７に示す。半導体集積回路３は、スキャン記憶素子３１１〜３１３、３３１〜３３３、３５２〜３５３と、論理回路３２１、３２２、３４１、３４２、３６１、３６２とを有する。また、半導体集積回路３００は、スキャンデータ入力端子３０１、３０２、３０３と、スキャンデータ出力端子３０６、３０７、３０８と、スキャンイネーブル信号入力端子３０４と、クロック信号入力端子３０５とを有する。なお、図に示された符号のうち、図６と同じ符号を付した構成は、図６と同じか又は類似の構成を示している。
【００７８】
図７からわかるように、半導体集積回路３は、半導体集積回路３００と同様の構成要素を有している。但し、構成要素間の接続関係が一部異なっている。具体的な異なる箇所は、スキャン記憶素子３１３の端子ＳｉｎはノードＡ２、スキャン記憶素子３３３の端子ＳｉｎはノードＢ２、スキャン記憶素子３５３の端子ＳｉｎはノードＣ２に接続されている点である。このため、スキャンデータ入力端子３０１、スキャン記憶素子３１１、３１２、３１３、スキャンデータ出力端子３０６で１つのスキャンチェーンが構成される。以下同様に、スキャンデータ入力端子３０２、スキャン記憶素子３３１、３３２、３３３、スキャンデータ出力端子３０７で１つのスキャンチェーンが構成される。スキャンデータ入力端子３０３、スキャン記憶素子３５１、３５２、３５３、スキャンデータ出力端子３０８で１つのスキャンチェーンが構成される。これらのスキャンチェーンは、本実施の形態３の半導体集積回路３００と異なり、論理回路が有する遅延値を考慮せず構成されている。
【００７９】
このため、もし論理回路３２１が不具合を有しており、遅延値が正常な場合の「５」ではなく異常値である「８」となっていても、遅延値「１５」の論理回路の影響で、この不具合が隠蔽されスキャンテストで検出できない。つまり、クリティカルパスである遅延値「１５」の論理回路３２２、３６１に合わせ、スキャンモードで使用するクロック信号ｃｌｋのパルス周期を、遅延値「１５」用に設定してスキャンテストするしかない。
【００８０】
しかし、本実施の形態３の半導体集積回路３００では、例えば、図８に示すように論理回路３２１が不具合を有している場合、第３条件スキャンテストで上記不具合を検出することが可能である。このように、本実施の形態３の半導体集積回路３００は、スキャンチェーンの配線パターンを各論理回路の遅延値を考慮して構成することで、従来の半導体集積回路３では、検出できなかった不具合を検出可能となる。
【００８１】
ここで、図９に本実施の形態３の半導体集積回路３００の他の構成例を示す。図６の構成と異なるのは、構成要素間の接続関係が一部異なっている点である。以下に、その相違点を述べる。まず、スキャン記憶素子３１２、３３２、３５２の端子Ｄｏｕｔが、それぞれノードＡ３、Ｂ３、Ｃ３に接続されている。論理回路３２２、３４２、３６２は、それぞれノードＣ３、Ａ３、Ｂ３と、スキャン記憶素子３１３、３３３、３５３の端子Ｄｉｎ間に接続されている。更に、スキャン記憶素子３１３、３３３、３５３の端子Ｓｉｎは、それぞれノードＣ３、Ａ３、Ｂ３と接続されている。
【００８２】
このような構成とすることで、スキャンテスト時に各スキャン記憶素子に格納させる初期値を、各スキャンチェーンだけを注目して設定できる。つまり、異なるスキャンチェーン間のテスト結果を考慮した、テストパターンを作成しなくてすむ。これにより、テストパターンの作成効率がよくなる利点と、検出率が向上する利点も有する。
【００８３】
発明の実施の形態４
【００８４】
以下、本発明を適用した具体的な実施の形態４について、図面を参照しながら詳細に説明する。本実施の形態４では、上述した実施の形態１から３までの半導体集積回路１００〜３００の回路の設計方法について述べる。この回路の設計には、ＰＣ等のコンピュータを利用して行う。
【００８５】
図１０に、本実施の形態４の半導体集積回路の設計方法を説明するための概念図を示す。図１０に示すように、所望の機能を有するよう半導体集積回路１００〜３００のネットリストを作成し、その回路情報をコンピュータのメモリやＨＤＤ等の記憶装置４０１に格納する。この格納された回路情報と、データベース４０２等で、ライブラリ化されている回路情報にある組み合わせ回路（論理回路等）の遅延情報レポートから、コンピュータ４００で動作するテスト回路作成ツール４０３により、スキャンテスト用のテスト回路を反映したネットリスト（以後、テスト回路反映済みネットリストと称す）を作成する。
【００８６】
例えば、実施の形態１の半導体集積回路１００の場合、スキャンチェーン接続を行い、遅延値「１０」の論理回路１２２を遅延値「５」の論理回路１４１、１４２に分割する。そして、選択回路１４３、１４４を接続する。実施の形態２の半導体集積回路２００の場合、スキャンチェーン接続を行い、遅延値「５」の論理回路１２１に遅延値「５」の付加遅延回路１７０を追加する。そして、選択回路１８０を接続する。実施の形態３の半導体集積回路２００の場合、遅延値「５」の複数の論理回路を考慮したスキャンチェーン、遅延値「１０」の複数の論理回路を考慮したスキャンチェーン、遅延値「１５」の複数の論理回路を考慮したスキャンチェーン接続を行う。そして、そのテスト回路反映済みネットリストを再びメモリやＨＤＤ等の記憶装置４０４に格納、もしくは外部出力する。なお、記憶装置４０４と４０１は同一記憶装置であってもよい。
【００８７】
図１１に、本実施の形態４の半導体集積回路の設計方法のフローチャートを示す。まず、所望の機能を有するよう半導体集積回路１００〜３００のネットリストを作成する（Ｓ４０１）。次に、Ｓ４０１で作成した回路情報にある組み合わせ回路（論理回路等）の遅延情報レポートとリンクさせて、半導体集積回路１００のような論理回路の分割、半導体集積回路２００のような付加遅延回路の追加、半導体集積回路３００のような同様の遅延値の論理回路を考慮したスキャンチェーンの構築したテスト回路反映済みネットリストを作成する（Ｓ４０２）。完成したテスト回路反映済みネットリストを記憶装置に格納する（Ｓ４０３）。
【００８８】
以上、本実施の形態４の半導体集積回路の設計方法は、上述したように、遅延情報レポートからの情報に基づいて、遅延値がほぼ等しい論理回路をスキャンテストができるようテスト回路を反映してネットリストを作成できる。
【００８９】
なお、本発明は上記実施の形態に限られたものでなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、実施の形態１〜３の特徴を合わせた半導体集積回路であってもよい。また、図１２に示すように、論理回路１２１及び論理回路１２２が有する論理回路１４１、１４２に、スキャン記憶素子１２１、１２２以外の他のスキャン記憶素子１５１〜１５３が接続されていてもよい。つまり、スキャンスキャンテストの対象となっている論理回路が１入力型でなく２以上の多入力型であってもよい。なお、図１２の説明は実施の形態１を基に行ったが、実施の形態２、３においても同様である。
【符号の説明】
【００９０】
１００、２００、３００  半導体集積回路
１１１〜１１３、３１１〜３１３、３３１〜３３３、３５１〜３５３  スキャン記憶素子
１２１、１２２、１４１、１４２、３２１、３２２、３４１、３４２、３６１、３６２  論理回路
１５０  制御回路
１４３、１４４、１８０  選択回路
１７０  付加遅延回路
１７１  ＡＮＤ回路
１７２、１７３  バッファ回路
１３１〜１３６、３０１〜３０８  端子
【図１】
2010181360.tif 000003
【図２】
2010181360.tif 000004
【図３】
2010181360.tif 000005
【図４】
2010181360.tif 000006
【図５】
2010181360.tif 000007
【図６】
2010181360.tif 000008
【図７】
2010181360.tif 000009
【図８】
2010181360.tif 000010
【図９】
2010181360.tif 000011
【図１０】
2010181360.tif 000012
【図１１】
2010181360.tif 000013
【図１２】
2010181360.tif 000014
【図１３】
2010181360.tif 000015
【図１４】
2010181360.tif 000016
【図１５】
2010181360.tif 000017
【図１６】
2010181360.tif 000018
【図１７】
2010181360.tif 000019