(57)【要約】【課題】半導体回路におけるテスト効率を向上することが可能な技術を提供する。【解決手段】被テスト回路は、ＯＲ回路１２が出力するクロック信号ＣＬＫ２に同期してテスト結果データを出力する。リング発振器１６は、通常動作モード時では、テスト用クロック信号ＴＣＬＫとは非同期でリングクロック信号ＲＣＬＫを所定周波数で発振させ、テスト動作モード時では、リングクロック信号ＲＣＬＫＡをテスト用クロック信号ＴＣＬＫに同期させて変化させる。ＯＲ回路１２は、通常動作モード時では、リングクロック信号ＲＣＬＫＡをクロック信号ＣＬＫ２として使用し、テスト動作モード時では、テスト用クロック信号ＴＣＬＫをクロック信号ＣＬＫ２として出力するか否かを決定する条件信号としてリングクロック信号ＲＣＬＫＡを使用する。【選択図】図１
2008003047.tif 000002
【特許請求の範囲】
【請求項１】
通常動作モード及びテスト動作モードを有する半導体回路であって、
前記テスト動作モード時において、テストデータが入力され、当該テストデータに対するテスト結果データを第１クロック信号に同期して出力する被テスト回路と、
前記第１クロック信号を出力する第１の回路と、
第２クロック信号を出力する第２の回路と
を備え、
前記第２の回路は、
前記通常動作モード時では、前記テスト動作モード時に前記半導体回路に入力されるテスト用クロック信号とは非同期で前記第２クロック信号を所定周波数で発振させ、
前記テスト動作モード時では、前記第２クロック信号を前記テスト用クロック信号に同期させて変化させ、
前記第１の回路は、
前記通常動作モード時では、前記第２クロック信号を前記第１クロック信号として使用し、
前記テスト動作モード時では、前記テスト用クロック信号を前記第１クロック信号として出力するか否かを決定する条件信号として前記第２クロック信号を使用する、半導体回路。
【請求項２】
請求項１に記載の半導体回路であって、
前記第２の回路は、制御信号によって発振が制御されるリング発振器であって、
前記リング発振器は、前記テスト動作モード時では、前記制御信号に応じて前記第２クロック信号を変化させるとともに、前記制御信号に応じてリング状の信号伝達経路における複数個所で個別に信号伝達を停止することが可能である、半導体回路。
【請求項３】
請求項２に記載の半導体回路であって、
前記テスト動作モード時において前記制御信号が前記リング発振器を発振させる条件となることを防止する発振防止回路をさらに備える、半導体回路。
【請求項４】
第１テストデータが入力され、当該第１テストデータに対する第１テスト結果データを所定間隔で出力する第１の被テスト回路と、
第２テストデータが入力され、当該第２テストデータに対する第２テスト結果データを前記所定間隔で出力する第２の被テスト回路と
を備え、
前記第１及び第２の被テスト回路からは、前記第１及び第２テスト結果データが交互に出力される、半導体回路。
【請求項５】
テストデータが入力され、当該テストデータに対するテスト結果データをテスト用クロック信号に同期して出力する被テスト回路と、
前記テスト用クロック信号を生成して出力するテスト用クロック生成回路と
を備え、
前記テスト用クロック生成回路は、テスト開始を通知する信号が入力されると、前記テスト用クロック信号を所定クロック数出力して停止する、半導体回路。
【請求項６】
請求項５に記載の半導体回路であって、
前記被テスト回路は、リセット端子を有するフリップフロップ回路を有し、
前記テスト用クロック生成回路は、前記所定クロック数をカウントするカウンタ回路を有し、
前記フリップフロップ回路の前記リセット端子に対して、前記カウンタ回路でのカウント値に応じてリセット信号を出力するリセット信号生成回路をさらに備える、半導体回路。
【請求項７】
テストデータが入力され、当該テストデータに対するテスト結果データを出力する被テスト回路と、
前記テスト結果データに基づいて前記テストデータを生成して出力するテストデータ生成回路と
を備え、
前記被テスト回路は、前記テストデータが入力されるフリップフロップ回路を有し、
前記テストデータ生成回路は、テストが開始すると、所定時間の間、固定値の前記テストデータを出力する、半導体回路。
【請求項８】
第１及び第２の被テスト回路と、
前記第２の被テスト回路をテストする際に前記第１の被テスト回路の出力信号が前記第２の被テスト回路に入力されることを防止するマスク回路と
を備える、半導体回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体回路のテスト技術に関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）等の半導体回路をテストする際には、縮退故障を想定して行うことが多い。縮退故障とは、論理値が“０”または“１”に固定される故障である。半導体回路の縮退故障を検出するテスト（以後、「縮退故障テスト」と呼ぶ）は、製造出荷時において、何らかの物理的原因によって回路要素が正常時と同じ論理出力を行うことができない半導体回路の選別に用いられる。縮退故障テストでは、半導体回路にテストパターンを入力し、当該テストパターンに対する半導体回路の出力値と、期待値とを比較し、その比較結果を使用して合否を判定する。
【０００３】
テスタを用いて半導体回路をテストする場合には、被テスト回路の動作を当該テスタから出力されるテスト用クロック信号に同期させる必要がある。被テスト回路が内蔵の発振器からのクロック信号に同期して動作する場合には、テスト時において、当該被テスト回路にテスト用クロック信号を動作クロック信号として直接入力することができない。従来では、この場合にはセレクタ回路を設けて、当該セレクタ回路に内蔵の発振器からのクロック信号と、テスト用クロック信号とを入力し、テスト時には、当該セレクタ回路からテスト用クロック信号を出力させることによって、内蔵の発振器を除く被テスト回路の動作をテスト用クロック信号に同期させている。
【０００４】
そして、内蔵の発振器については、当該発振器の出力を外部ピンに取り出し、当該外部ピンにて当該発振器の発振を確認することによって当該発振器の縮退故障テストを行っている。
【０００５】
なお、半導体回路のテストに関する技術が特許文献１〜６に記載されている。
【０００６】
【特許文献１】特開２００１−１０８７２７号公報
【特許文献２】特開昭６４−８４６５７号公報
【特許文献３】特開昭６１−１３２８８３号公報
【特許文献４】特開２００３−３１７４９８号公報
【特許文献５】特開平１１−１９４１５１号公報
【特許文献６】特開平７−４３４２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述のように、被テスト回路が内蔵の発振器からのクロック信号に同期して動作する場合には、セレクタ回路を用いて、使用するクロック信号を、内蔵の発振器のクロック信号からテスト用クロック信号に切り替えている。したがって、内蔵の発振器に対するテストをテスタを用いて他の回路と一緒に行うことはできず、十分なテスト効率を確保することは困難である。
【０００８】
さらには、被テスト回路に内蔵されている発振器に関しては、その発振を直接確認することによってテストを行っているため、テスタを用いて縮退故障の発生を検出することは非常に困難であり、この点からも、十分なテスト効率を確保することが困難である。
【０００９】
また、被テスト回路が内部のクロック信号に同期して動作している場合に限らず、被テスト回路が外部からのクロック信号に同期して動作し、テスト用クロック信号を被テスト回路に直接入力することができる場合にも、従来からテスト効率の向上が望まれている。
【００１０】
また、被テスト回路に対して外部からテスト用クロック信号を直接入力することができる場合には、外部において当該テスト用クロック信号を操作することにより被テスト回路の動作が容易に解析される可能性があり、その秘匿性の向上が望まれている。
【００１１】
また、設計段階において、被テスト回路のテスト結果に基づいて当該被テスト回路を修正する場合には、当該被テスト回路を容易に修正できることが望まれている。
【００１２】
そこで、本発明は上述の問題に鑑みて成されたものであり、半導体回路におけるテスト効率を向上することが可能な技術を提供することを第１の目的とする。また、被テスト回路の動作の秘匿性を向上することを第２の目的とする。そして、被テスト回路を容易に修正できる技術を提供することを第３の目的とする。
【課題を解決するための手段】
【００１３】
この発明の第１の半導体回路は、通常動作モード及びテスト動作モードを有する半導体回路であって、前記テスト動作モード時において、テストデータが入力され、当該テストデータに対するテスト結果データを第１クロック信号に同期して出力する被テスト回路と、前記第１クロック信号を出力する第１の回路と、第２クロック信号を出力する第２の回路とを備え、前記第２の回路は、前記通常動作モード時では、前記テスト動作モード時に前記半導体回路に入力されるテスト用クロック信号とは非同期で前記第２クロック信号を所定周波数で発振させ、前記テスト動作モード時では、前記第２クロック信号を前記テスト用クロック信号に同期させて変化させ、前記第１の回路は、前記通常動作モード時では、前記第２クロック信号を前記第１クロック信号として使用し、前記テスト動作モード時では、前記テスト用クロック信号を前記第１クロック信号として出力するか否かを決定する条件信号として前記第２クロック信号を使用する。
【００１４】
また、この発明の第２の半導体回路は、第１テストデータが入力され、当該第１テストデータに対する第１テスト結果データを所定間隔で出力する第１の被テスト回路と、第２テストデータが入力され、当該第２テストデータに対する第２テスト結果データを前記所定間隔で出力する第２の被テスト回路とを備え、前記第１及び第２の被テスト回路からは、前記第１及び第２テスト結果データが交互に出力される。
【００１５】
また、この発明の第３の半導体回路は、テストデータが入力され、当該テストデータに対するテスト結果データをテスト用クロック信号に同期して出力する被テスト回路と、前記テスト用クロック信号を生成して出力するテスト用クロック生成回路とを備え、前記テスト用クロック生成回路は、テスト開始を通知する信号が入力されると、前記テスト用クロック信号を所定クロック数出力して停止する。
【００１６】
また、この発明の第４の半導体回路は、テストデータが入力され、当該テストデータに対するテスト結果データを出力する被テスト回路と、前記テスト結果データに基づいて前記テストデータを生成して出力するテストデータ生成回路とを備え、前記被テスト回路は、前記テストデータが入力されるフリップフロップ回路を有し、前記テストデータ生成回路は、テストが開始すると、所定時間の間、固定値の前記テストデータを出力する。
【００１７】
また、この発明の第５の半導体回路は、第１及び第２の被テスト回路と、前記第２の被テスト回路をテストする際に前記第１の被テスト回路の出力信号が前記第２の被テスト回路に入力されることを防止するマスク回路とを備える。
【発明の効果】
【００１８】
この発明の第１の半導体回路によれば、テスト動作モード時では、第２クロック信号がテスト用クロック信号と同期して変化するとともに、当該第２クロック信号が、テスト用クロック信号を被テスト回路に入力するかどうかの条件信号として使用されるため、テスト用クロック信号と同期して動作するテスタを使用して、第２の回路を含めて本半導体回路のテストを実行することができる。よって、第２の回路とその他の回路とを別々にテストする必要がなく、第２の回路の出力を直接観測する必要もないことから、テスト効率が向上する。
【００１９】
また、この発明の第２の半導体回路によれば、ともに所定間隔で出力される第１及び第２テスト結果データが交互に出力されるため、当該第１及び第２テスト結果データが所定間隔で同時に出力される場合よりも、一定期間内に多くのテスト結果を得ることができる。よって、テスト時間を短くすることができ、テスト効率が向上する。
【００２０】
また、この発明の第３の半導体回路によれば、所定クロック数だけ出力されるテスト用クロック信号を生成する回路を内蔵しているため、テスト用クロック信号を外部から直接操作することを防止できる。そのため、本半導体回路の動作の秘匿性が向上する。
【００２１】
また、この発明の第４の半導体回路によれば、テストが開始すると、所定時間の間、固定値のテストデータがフリップフロップ回路に入力されるため、当該フリップフロップ回路はテスト開始時に初期化される。よって、当該フリップフロップ回路としてリセット端子を有していない回路を使用することができ、本半導体回路の回路規模を低減できる。その結果、テスト時間を短くすることができ、テスト効率が向上する。
【００２２】
また、この発明の第５の半導体回路によれば、第１の被テスト回路の修正が第２の被テスト回路のテスト結果には影響を与えないことから、一度、第２の被テスト回路の修正が完了すれば、その後に、第１の被テスト回路を修正したとしても第２の被テスト回路に対して再びテストを実行する必要はなく、第２の被テスト回路を再度修正する必要もない。よって、本半導体回路の修正が容易となる。
【発明を実施するための最良の形態】
【００２３】
実施の形態１．
図１は本発明の実施の形態１に係る半導体回路の構成を示す図である。図１に示されるように、本実施の形態１に係る半導体回路は、フリップフロップ回路１〜５と、ＡＮＤ回路やＯＲ回路などのロジック回路で構成されている組合せ回路６，７と、出力バッファ回路８〜１０と、ＯＲ回路１１〜１４と、発振防止回路１５と、リング発振器１６とを備えており、これらの回路は例えば同一の半導体基板に形成されている。
【００２４】
フリップフロップ回路１は、クロック信号ＣＬＫ１が立ち上がるたびに入力データＤＩＮを保持して組合せ回路６に出力する。フリップフロップ回路２は、クロック信号ＣＬＫ２が立ち上がるたびに組合せ回路６の出力データを保持して組合せ回路７に出力する。フリップフロップ回路３は、クロック信号ＣＬＫ２が立ち上がるたびに組合せ回路７の出力データを保持してデータＤＯＵＴ０として出力する。フリップフロップ回路４は、クロック信号ＣＬＫ３が立ち上がるたびに組合せ回路７の出力データを保持してデータＤＯＵＴ１として出力する。フリップフロップ回路５は、クロック信号ＣＬＫ４が立ち上がるたびに組合せ回路７の出力データを保持してデータＤＯＵＴ２として出力する。出力バッファ回路８〜１０はデータＤＯＵＴ０〜ＤＯＵＴ２をそれぞれ受けて出力する。
【００２５】
リング発振器１６は所定の周波数のクロック信号を出力することが可能であって、ＡＮＤ回路１６０，１６１と、ＮＡＮＤ回路１６２と、インバータ回路１６３〜１６８とを備えている。インバータ回路１６３〜１６６と、ＡＮＤ回路１６０と、インバータ回路１６７と、ＮＡＮＤ回路１６２と、インバータ回路１６８と、ＡＮＤ回路１６１とは、この順でリング状に直列接続されている。ＡＮＤ回路１６１の出力信号は、リングクロック信号ＲＣＬＫＡとしてＯＲ回路１１，１２のそれぞれに入力される。ＡＮＤ回路１６０の出力信号は、リングクロック信号ＲＣＬＫＢとしてＯＲ回路１３に入力され、ＮＡＮＤ回路１６２の出力信号は、リングクロック信号ＲＣＬＫＣとしてＯＲ回路１４に入力される。
【００２６】
本実施の形態１に係るリング発振器１６は、発振防止回路１５から出力される制御信号ＣＳ０〜ＣＳ２によって発振が制御される。リング発振器１６は、制御信号ＣＳ０〜ＣＳ２がすべてＨｉｇｈレベルに設定されると発振し、制御信号ＣＳ０〜ＣＳ２の少なくとも一つがＬｏｗレベルに設定されると発振が停止する。リング発振器１６のＡＮＤ回路１６０では、前段のインバータ回路１６６の出力端子と接続されている入力端子とは別の入力端子に制御信号ＣＳ０が入力される。ＮＡＮＤ回路１６２では、前段のインバータ回路１６７の出力端子と接続されている入力端子とは別の入力端子に制御信号ＣＳ１が入力される。ＡＮＤ回路１６１では、前段のインバータ回路１６８の出力端子と接続されている入力端子とは別の入力端子に制御信号ＣＳ２が入力される。
【００２７】
ＯＲ回路１１〜１４の一方の入力端子には、所定周波数のテスト用クロック信号ＴＣＬＫが入力される。ＯＲ回路１１，１２のそれぞれの他方の入力端子にはリングクロック信号ＲＣＬＫＡが入力され、ＯＲ回路１３，１４の他方の入力端子には、リングクロック信号ＲＣＬＫＢ，ＲＣＬＫＣがそれぞれ入力される。ＯＲ回路１１〜１４は、２つの入力信号の論理和を演算してクロック信号ＣＬＫ１〜ＣＬＫ４としてそれぞれ出力する。テスト用クロック信号ＴＣＬＫは、本半導体回路をテストする際にテスタから出力される。当該テスタはテスト用クロック信号ＴＣＬＫに同期して動作する。
【００２８】
発振防止回路１５は、本半導体回路をテストする際にリング発振器１６が発振することを防止する回路である。図２は発振防止回路１５の構成を示す図である。図２に示されるように、発振防止回路１５は、ＡＮＤ回路１５０〜１５２と、インバータ回路１５３〜１５５と、ＮＯＲ回路１５６と、ＯＲ回路１５７とを備えている。ＡＮＤ回路１５０は、データＤＯＵＴ０と、テストイネーブル信号ＴＥＮとの論理積を演算して出力する。ＡＮＤ回路１５１は、データＤＯＵＴ１と、テストイネーブル信号ＴＥＮとの論理積を演算して出力する。インバータ回路１５３はＡＮＤ回路１５０の出力信号を反転して制御信号ＣＳ０として出力する。インバータ回路１５４はＡＮＤ回路１５１の出力信号を反転して制御信号ＣＳ１として出力する。ＮＯＲ回路１５６は、ＡＮＤ回路１５０，１５１の出力信号の否定論理和を演算して出力する。ＯＲ回路１５７は、ＮＯＲ回路１５６の出力信号とデータＤＯＵＴ２との論理和を演算して出力する。ＡＮＤ回路１５２は、ＯＲ回路１５７の出力信号と、テストイネーブル信号ＴＥＮとの論理積を演算して出力する。インバータ回路１５５は、ＡＮＤ回路１５２の出力信号を反転して制御信号ＣＳ２として出力する。なお、テストイネーブル信号ＴＥＮはテスタから出力される。
【００２９】
次に、本実施の形態１に係る半導体回路の動作について説明する。テストイネーブル信号ＴＥＮがＬｏｗレベルに設定されると、本半導体回路は通常動作モードとなる。このとき、テスト用クロック信号ＴＣＬＫはＯＲ回路１１〜１４には入力されず、テスト動作中においてテスト用クロック信号ＴＣＬＫが入力されるＯＲ回路１１〜１４の一方の入力端子はすべてＬｏｗレベルに固定される。テストイネーブル信号ＴＥＮがＬｏｗレベルに設定されると、制御信号ＣＳ０〜ＣＳ２はすべてＨｉｇｈレベルとなり、リング発振器１６が発振し、当該リング発振器１６からは、テスト用クロック信号ＴＣＬＫとは非同期の所定周波数のリングクロック信号ＲＣＬＫＡ〜ＲＣＬＫＣが出力される。ＯＲ回路１１〜１４の一方の入力端子がＬｏｗレベルに固定されると、ＯＲ回路１１，１２からはともにリングクロック信号ＲＣＬＫＡが出力され、ＯＲ回路１３，１４からはリングクロック信号ＲＣＬＫＢ，ＲＣＬＫＣがそれぞれ出力される。よって、フリップフロップ回路１〜３はリングクロック信号ＲＣＬＫＡに同期して動作し、フリップフロップ回路４はリングクロック信号ＲＣＬＫＢに同期して動作し、フリップフロップ回路５はリングクロック信号ＲＣＬＫＣに同期して動作する。
【００３０】
一方で、テストイネーブル信号ＴＥＮがＨｉｇｈレベルに設定されると、本半導体回路はテスト動作モードとなる。このとき、ＯＲ回路１１〜１４のそれぞれにはテスト用クロック信号ＴＣＬＫが入力される。テスト動作モードでは、テスタからテストデータが出力され、当該テストデータが入力データＤＩＮとしてフリップフロップ回路１に入力される。
【００３１】
テストイネーブル信号ＴＥＮがＨｉｇｈレベルに設定されると、制御信号ＣＳ０〜ＣＳ２は、フリップフロップ回路３〜５から出力されるデータＤＯＵＴ０〜ＤＯＵＴ２に応じて変化する。そして、テスト動作モードにおいては、データＤＯＵＴ０〜ＤＯＵＴ２がどのような値となっても、制御信号ＣＳ０〜ＣＳ２の少なくとも一つがＬｏｗレベルとなるように、言い換えれば、制御信号ＣＳ０〜ＣＳ２のすべてがＨiｇｈレベルとならないように、発振防止回路１５は動作する。これにより、テスト動作モードにおけるリング発振器１６の発振が防止される。
【００３２】
本実施の形態１では、テスト動作モードでは、制御信号ＣＳ０〜ＣＳ２はテスト用クロック信号ＴＣＬＫに同期して変化する。そして、テスト動作モードでは、リング発振器１６は発振せず、リングクロック信号ＲＣＬＫＡ，ＲＣＬＫＢ，ＲＣＬＫＣは、制御信号ＣＳ０〜ＣＳ２に応じて変化する。したがって、テスト動作モードでは、リングクロック信号ＲＣＬＫＡ，ＲＣＬＫＢ，ＲＣＬＫＣのそれぞれはテスト用クロック信号ＴＣＬＫに同期して変化する。
【００３３】
図３はテスト動作モードにおける本半導体回路の動作を示す図である。図４はテスト動作モードにおける制御信号ＣＳ０〜ＣＳ２の信号レベルの組合せの例を示す図である。図３の期間Ｔ１は、図４に示されるように、制御信号ＣＳ０，ＣＳ１，ＣＳ２がそれぞれＨｉｇｈレベル、Ｌｏｗレベル、Ｈｉｇｈレベルであるときの期間を示しており、期間Ｔ２，Ｔ３は、制御信号ＣＳ０，ＣＳ１，ＣＳ２がそれぞれＬｏｗレベル、Ｈｉｇｈレベル、Ｈｉｇｈレベルであるときの期間を示している。図３に示される例では、テスト用クロック信号ＴＣＬＫに同期して制御信号ＣＳ０〜ＣＳ２がそれぞれＨｉｇｈレベル、Ｌｏｗレベル、Ｈｉｇｈレベルとなると、リングクロック信号ＲＣＬＫＡ，ＲＣＬＫＢ，ＲＣＬＫＣは、テスト用クロック信号ＴＣＬＫに同期してそれぞれＬｏｗレベル、Ｌｏｗレベル、Ｈｉｇｈレベルとなっている。そして、制御信号ＣＳ２のレベルはそのままで制御信号ＣＳ０，ＣＳ１がテスト用クロック信号ＴＣＬＫに同期してそれぞれＬｏｗレベル、Ｈｉｇｈレベルとなると、リングクロック信号ＲＣＬＫＡ，ＲＣＬＫＣは、テスト用クロック信号ＴＣＬＫに同期してそれぞれＨｉｇｈレベル、Ｌｏｗレベルとなっている。なお、このとき、リングクロック信号ＲＣＬＫＢのレベルは変化しない。このように、テスト動作モード時では、リングクロック信号ＲＣＬＫＡ，ＲＣＬＫＢ，ＲＣＬＫＣの発振は停止し、リングクロック信号ＲＣＬＫＡ，ＲＣＬＫＢ，ＲＣＬＫＣはテスト用クロック信号ＴＣＬＫに同期して変化する。
【００３４】
また、図３に示されるように、リングクロック信号ＲＣＬＫＡがＬｏｗレベルのときにはテスト用クロック信号ＴＣＬＫがクロック信号ＣＬＫ１としてＯＲ回路１１から出力され、リングクロック信号ＲＣＬＫＡがＨｉｇｈレベルのときにはクロック信号ＣＬＫ１はＬｏｗレベルに固定され、ＯＲ回路１１からはテスト用クロック信号ＴＣＬＫが出力されない。このように、テスト動作モードでは、リングクロック信号ＲＣＬＫＡは、テスト用クロック信号ＴＣＬＫをクロック信号ＣＬＫ１として出力するかどうか、つまりフリップフロップ回路１にテスト用クロック信号ＴＣＬＫを入力するかどうかを決定する条件信号として機能する。
【００３５】
同様に、テスト動作モードでは、ＯＲ回路１２に入力されるリングクロック信号ＲＣＬＫＡは、フリップフロップ回路２，３にテスト用クロック信号ＴＣＬＫを入力するかどうかを決定する条件信号として機能し、リングクロック信号ＲＣＬＫＢは、フリップフロップ回路４にテスト用クロック信号ＴＣＬＫを入力するかどうかを決定する条件信号として機能し、リングクロック信号ＲＣＬＫＣは、フリップフロップ回路５にテスト用クロック信号ＴＣＬＫを入力するかどうかを決定する条件信号として機能する。
【００３６】
図５は従来技術を本半導体回路に適用した場合のリングクロック信号ＲＣＬＫＡと本実施の形態１に係る半導体回路のリングクロック信号ＲＣＬＫＡとの比較を示す図である。図５（ａ）は従来技術を本半導体回路に適用した場合のリングクロック信号ＲＣＬＫＡの変化の様子を示しており、図５（ｂ）は本実施の形態１に係る半導体回路でのリングクロック信号ＲＣＬＫＡの変化の様子を示している。図５（ａ）に示されるように、従来技術を使用した場合には、テスト中のリングクロック信号ＲＣＬＫＡはＬｏｗレベルに固定され、上述したセレクタ回路から出力されるテスト用クロック信号ＴＣＬＫがフリップフロップ回路１にそのまま入力される。
【００３７】
一方で、図５（ｂ）に示されるように、本実施の形態１では、テスト中のリングクロック信号ＲＣＬＫＡの信号レベルは固定されておらず、テスト用クロック信号ＴＣＬＫに同期して変化する。したがって、フリップフロップ回路１へのテスト用クロック信号ＴＣＬＫの入力は、当該テスト用クロック信号ＴＣＬＫに同期して制御される。同様に、フリップフロップ回路２〜５へのテスト用クロック信号ＴＣＬＫの入力は、当該テスト用クロック信号ＴＣＬＫに同期して制御される。
【００３８】
テスト動作モードでは、本半導体回路に入力されたテストデータは、フリップフロップ回路１を介して組合せ回路６に入力される。そして、当該テストデータに対する組合せ回路６の出力データは、フリップフロップ回路２を介して組合せ回路７に入力され、当該組合せ回路７の出力データはフリップフロップ回路３〜５に設定される。そして、フリップフロップ回路３〜５の出力データ、つまりデータＤＯＵＴ０〜ＤＯＵＴ２はテスト結果データとして出力バッファ回路８〜１０を介してテスタに入力される。
【００３９】
このように、フリップフロップ回路１〜５及び組合せ回路６，７から成る被テスト回路にはテストデータが入力され、当該テストデータに対する被テスト回路の出力データがテスト結果データとしてテスタに入力される。テスタでは、テスト結果データと、予め記憶する期待値データとの比較が行われ、その比較結果に基づいて本半導体回路の製造の良否が判定される。
【００４０】
上述のように、テスト動作モードでは、リングクロック信号ＲＣＬＫＡ〜ＲＣＬＫＣによってフリップフロップ回路１〜５へのテスト用クロック信号ＴＣＬＫの入力が制御されるため、リング発振器１６において縮退故障が発生して当該リング発振器１６の発振が停止し、リングクロック信号ＲＣＬＫＡ〜ＲＣＬＫＣの信号レベルが固定されている場合には、データＤＯＵＴ０〜ＤＯＵＴ２の値は変化しない。したがって、テスタにおいて、データＤＯＵＴ０〜ＤＯＵＴ２と、予め記憶する期待値データとの比較を行うことによって、リング発振器１６での故障も検出することができる。
【００４１】
以上のように、本実施の形態１に係る半導体回路では、テスト動作モード時では、リングクロック信号ＲＣＬＫＡ〜ＲＣＬＫＣがテスト用クロック信号ＴＣＬＫと同期して変化するとともに、当該リングクロック信号ＲＣＬＫＡ〜ＲＣＬＫＣが、テスト用クロック信号ＴＣＬＫをフリップフロップ回路１〜５に入力するかどうかの条件信号として使用される。したがって、テスト用クロック信号ＴＣＬＫと同期して動作するテスタを使用して、リング発振器１６を含めて本半導体回路のテストを実行することができる。よって、リング発振器１６とその他の回路とを別々にテストする必要がなく、テストパターンの減少とテスト時間の短縮とが可能となる。その結果、テスト効率が向上する。
【００４２】
さらに、リング発振器１６の出力を直接観測する必要がないことから、当該リング発振器１６の故障検出を容易に行うことができ、テスト効率が向上する。
【００４３】
また、従来技術のように、セレクタ回路を使用して、フリップフロップ回路１〜５にテスト用クロック信号ＴＣＬＫを入力するのか、リング発振器１６からのクロック信号を入力するのかを切り替える場合には、当該セレクタ回路に対する故障検出をどのようにして行うのかが問題となるが、本実施の形態１に係る半導体回路ではそのような問題も発生しない。
【００４４】
また、本実施の形態１では、テスト動作モード時では、リングクロック信号ＲＣＬＫＡ〜ＲＣＬＫＣがテスト用クロック信号ＴＣＬＫと同期して変化するとともに、当該リングクロック信号ＲＣＬＫＡ〜ＲＣＬＫＣが、テスト用クロック信号ＴＣＬＫをフリップフロップ回路１〜５に入力するかどうかの条件信号として使用されるため、ＡＳＩＣ（Application Specific Integrated Circuit）等の設計で使用されるＥＤＡ（Electronic Design Automation）ツールを使用して、テスト動作時における本半導体回路のタイミング調整や静的タイミング検証の実施が可能となる。したがって、テスト動作時のフリップフロップ回路１〜５において、シフト動作中のデータを正しく保持することができるように、本半導体回路を容易に設計することができる。なお、この場合には、テスト用クロック信号ＴＣＬＫはＥＤＡツールから出力されることになる。
【００４５】
また、本実施の形態１に係るリング発振器１６では、リング状の信号伝達経路における３箇所で個別に信号伝達を停止することが可能であるため、テスト動作モードにおいては、当該リング状の信号伝達経路を、図６に示されるように、３つの経路Ｒ１〜Ｒ３に分けて考えることができる。本半導体回路では、制御信号ＣＳ０〜ＣＳ２のうち、制御信号ＣＳ２のみがＬｏｗレベルのときには経路Ｒ１，Ｒ２を足し合わせた経路での故障を検出することができ、制御信号ＣＳ１のみがＬｏｗレベルのときには経路Ｒ１，Ｒ３を足し合わせた経路での故障を検出することができ、制御信号ＣＳ０のみがＬｏｗレベルのときには経路Ｒ２，Ｒ３を足し合わせた経路での故障を検出することができる。よって、リング状の信号伝達経路のすべてについて故障検出できる。
【００４６】
このように、リング発振器１６では、制御信号ＣＳ０〜ＣＳ２に応じてリング状の信号伝達経路における複数個所で個別に信号伝達を停止することが可能であるため、制御信号ＣＳ０〜ＣＳ２を変化させて信号伝達を停止する個所を変化させることによって、当該リング状の信号伝達経路のすべてについてテストすることができる。その結果、リング発振器１６に発生した故障を確実に検出することができる。
【００４７】
さらに、リング発振器１６での信号伝達経路において信号伝達を停止できる個所を複数設けることによって、信号伝達を停止するためのＬｏｗレベルの制御信号ＣＳ０〜ＣＳ２をリング発振器１６に入力してから、リングクロック信号ＲＣＬＫＡ〜ＲＣＬＫの発振が停止するまでの時間を短くすることができる。
【００４８】
例えば、リング発振器１６において、仮にＡＮＤ回路１６０及びＮＡＮＤ回路１６２をともにインバータ回路に置き換え、リング発振器１６の発振が制御信号ＣＳ２のみでしか制御できないとすると、制御信号ＣＳ２が入力される論理素子と、リングクロック信号ＲＣＬＫＢを出力する論理素子との間には、両素子を含めて６個の論理素子が存在する。したがって、Ｌｏｗレベルの制御信号ＣＳ２をリング発振器１６に入力してから、リングクロック信号ＲＣＬＫＢの発振が停止するまでには、少なくとも、６個の論理素子での信号遅延時間を加算しただけの時間が必要となる。
【００４９】
一方で、本実施の形態１に係るリング発振器１６では、リングクロック信号ＲＣＬＫＢを出力するＡＮＤ回路１６０の一方入力に制御信号ＣＳ０を入力することができるため、Ｌｏｗレベルの制御信号ＣＳ０をリング発振器１６に入力してから、リングクロック信号ＲＣＬＫＢの発振が停止するまでに必要な時間は、ＡＮＤ回路１６０だけでの信号遅延時間に依存する。したがって、リング発振器１６に対して信号伝達を停止するための信号を入力してからその発振が停止するまでの時間を短縮することができる。よって、テスト用クロック信号ＴＣＬＫの周波数を増加させることができ、テスト時間をさらに短縮することができる。
【００５０】
また、本実施の形態１のように、テスト動作モード時において制御信号ＣＳ０〜ＣＳ２がリング発振器１６を発振させる条件となることを防止する発振防止回路１５を設けることによって、テスト動作モード時においてリングクロック信号ＲＣＬＫＡ〜ＲＣＬＫＣの発振を確実に防止することができる。したがって、テスト動作モード時において、リングクロック信号ＲＣＬＫＡ〜ＲＣＬＫＣをテスト用クロック信号ＴＣＬＫに確実に同期させることができる。よって、リング発振器１６を含めた本半導体回路のテストを確実に行うことができる。
【００５１】
なお、本実施の形態１に係るリング発振器１６は、リング状の信号伝達経路において３個所で信号伝達を停止できるように構成しているが、図７に示されるように６個所で信号伝達を停止できるように構成しても良い。図７に示されるリング発振器１６は、図１，６に示されるリング発振器１６において、インバータ回路１６３〜１６５の替わりにＮＡＮＤ回路１６３ａ〜１６５ａをそれぞれ設けたものである。ＮＡＮＤ回路１６３ａにおいては、前段のＡＮＤ回路１６１の出力信号が入力される入力端子とは別の入力端子に制御信号ＣＳ０が入力される。ＮＡＮＤ回路１６４ａにおいては、前段のＮＡＮＤ回路１６３ａの出力信号が入力される入力端子とは別の入力端子に制御信号ＣＳ１が入力される。ＮＡＮＤ回路１６５ａにおいては、前段のＮＡＮＤ回路１６４ａの出力信号が入力される入力端子とは別の入力端子に制御信号ＣＳ２が入力される。リング発振器１６を図７に示されるような構成に変更することによって、ＥＤＡツールを用いてリング発振器１６のタイミング調整を実行しやすくなるとともに、より細かいタイミング調整が可能となる。
【００５２】
また、本実施の形態１に係る半導体回路ではリング発振器１６が一つだけしか設けられていなかったが、２つ以上のリング発振器を備える半導体回路にも本発明を適用することができる。図８は、本実施の形態１に係る半導体回路において、リング発振器１６とは別にリング発振器２６を設けた場合の構成例を部分的に示す図である。図８に示されるように、リング発振器２６は、ＡＮＤ回路２６０，２６１と、ＮＡＮＤ回路２６２と、インバータ回路２６３〜２６８とを備えている。インバータ回路２６３〜２６６と、ＡＮＤ回路２６０と、インバータ回路２６７と、ＮＡＮＤ回路２６２と、インバータ回路２６８と、ＡＮＤ回路２６１とは、この順でリング状に直列接続されている。ＡＮＤ回路２６０では、前段のインバータ回路２６６の出力と接続されている入力端子とは別の入力端子には制御信号ＣＳ０が入力される。ＮＡＮＤ回路２６２では、前段のインバータ回路２６７の出力と接続されている入力端子とは別の入力端子には制御信号ＣＳ１が入力される。ＡＮＤ回路２６１では、前段のインバータ回路２６８の出力と接続されている入力端子とは別の入力端子には制御信号ＣＳ２が入力される。ＯＲ回路１１には、リングクロック信号ＲＣＬＫＡの替わりに、ＡＮＤ回路２６１の出力がリングクロック信号ＲＣＬＫＡ２として入力される。その他の構成について図１に示される構成と同様である。このように、複数のリング発振器を備えている半導体回路においても、各リング発振器を同様の構成にすることによって、上述の効果が得られる。
【００５３】
また、本実施の形態１では、本半導体回路をテストしている間は、テストイネーブル信号ＴＥＮはＨｉｇｈレベルに固定されているため、発振防止回路１５では、テストイネーブル信号ＴＥＮが入力されるＡＮＤ回路１５０〜１５２の入力端子の信号レベルが縮退故障によりＨｉｇｈレベルに固定されていても、それを検出することができない。そこで、テスタから、テストイネーブル信号ＴＥＮとは別の第２テストイネーブル信号ＴＥＮ２を出力させて、図９に示されるように、ＡＮＤ回路１５０，１５１の一方の入力端子に、テストイネーブル信号ＴＥＮの替わりに第２テストイネーブル信号ＴＥＮ２を入力する。テスト期間中では、第２テストイネーブル信号ＴＥＮ２は、基本的にはＨｉｇｈレベルに設定されるが、ときどきＨｉｇｈレベルからＬｏｗレベルに変化する。テスト期間中において、第２テストイネーブル信号ＴＥＮ２がＬｏｗレベルに設定されると、テストイネーブル信号ＴＥＮが常にＨｉｇｈレベルであることから、縮退故障が発生していなければ、制御信号ＣＳ０，ＣＳ１，ＣＳ２は、それぞれＨｉｇｈレベル、Ｈｉｇｈレベル、Ｌｏｗレベルに設定される。そうすると、リングクロック信号ＲＣＬＫＡ〜ＲＣＬＫＣはすべてＬｏｗレベルとなり、データＤＯＵＴ０〜ＤＯＵＴ２は変化しなくなる。したがって、第２テストイネーブル信号ＴＥＮ２の変化の前後においてデータＤＯＵＴ０〜ＤＯＵＴ２を観測することによって、第２テストイネーブル信号ＴＥＮ２が入力される本半導体回路の外部入力端子から、ＡＮＤ回路１５０，１５１における第２テストイネーブル信号ＴＥＮ２が入力される入力端子までの信号ラインの縮退故障、つまり本半導体回路において第２テストイネーブル信号ＴＥＮ２が伝搬する信号ラインの縮退故障を検出することができる。
【００５４】
実施の形態２．
図１０は本発明の実施の形態２に係る半導体回路の構成を示す図である。本実施の形態２に係る半導体回路は、故障検出に関してセルフテストを実行することができる。図１０に示されるように、本実施の形態２に係る半導体回路は、Ｉ／Ｆ回路５１と、制御回路５２と、圧縮回路５３とを備えており、これらの回路は例えば同一の半導体基板に形成されている。Ｉ／Ｆ回路５１は、本半導体回路の外部の回路との間で信号の受け渡しを行う。制御回路５２は、ＣＰＵ等を含み、本半導体回路全体の動作を主として管理する。圧縮回路５３は、制御回路５２から出力される信号をＭ系列を使用して拡散して乱数データを生成し、当該乱数データを圧縮して出力する。圧縮回路５３からは、例えば３２ビットのデータＤＯＵＴ＜３１：０＞が出力される。
【００５５】
図１１は制御回路５２の構成を示す図である。図１１では制御回路５２の構成のうち本発明に関係する部分だけを示している。図１１に示されるように、制御回路５２には、フリップフロップ回路５２０〜５２１と、ＡＮＤ回路やＯＲ回路などのロジック回路で構成されている組合せ回路５２２，５２３と、セレクタ回路５２４，５２５と、テスト用クロック生成回路５２６と、セレクト信号生成回路５２７と、ＯＲ回路５２８，５２９と、マスク回路５３０と、上述のリング発振器１６，２６及び発振防止回路１５とが設けられている。
【００５６】
セレクタ回路５２４，５２５のそれぞれには、圧縮回路５３から出力されるデータＤ＜３１：０＞のうち最下位のデータＤＯＵＴ＜０＞が入力される。そして、セレクタ回路５２４，５２５には、組合せ回路５２２，５２３の出力データがそれぞれ入力される。セレクタ回路５２４は、組合せ回路５２２の出力データ及びデータＤＯＵＴ＜０＞のどちらか一方を、セレクト信号生成回路５２７から出力されるセレクト信号ＳＬＴに基づいて選択して出力する。具体的には、セレクタ回路５２４は、セレクト信号ＳＬＴがＨｉｇｈレベルのときにはデータＤＯＵＴ＜０＞を出力し、Ｌｏｗレベルのときには組合せ回路５２２の出力データを出力する。フリップフロップ回路５２０は、クロック信号ＣＬＫ１１が立ち上がるたびにセレクタ回路５２４の出力データを保持して組合せ回路５２３及び圧縮回路５３に出力する。セレクタ回路５２５は、組合せ回路５２３の出力データ及びデータＤＯＵＴ＜０＞のどちらか一方をセレクト信号ＳＬＴに基づいて選択して出力する。具体的には、セレクタ回路５２５は、セレクト信号ＳＬＴがＨｉｇｈレベルのときにはデータＤＯＵＴ＜０＞を出力して、Ｌｏｗレベルのときには組合せ回路５２３の出力データ出力する。フリップフロップ回路５２１は、クロック信号ＣＬＫ１２が立ち上がるたびにセレクタ回路５２５の出力データを保持して圧縮回路５３に出力する。
【００５７】
本実施の形態２に係る発振防止回路１５には、データＤＯＵＴ＜３１：０＞のうち下位３ビットのデータＤＯＵＴ＜２：０＞が入力される。つまり、本発振防止回路１５は、上述の図２に示される回路において、データＤＯＵＴ０，ＤＯＵＴ１，ＤＯＵＴ２の替わりにデータＤＯＵＴ＜０＞，ＤＯＵＴ＜１＞，ＤＯＵＴ＜２＞をそれぞれ入力したものである。そして、発振防止回路１５から出力される制御信号ＣＳ０は、リング発振器１６のＡＮＤ回路１６０とリング発振器２６のＡＮＤ回路２６０とに入力され、制御信号ＣＳ１は、リング発振器１６のＮＡＮＤ回路１６２とリング発振器２６のＮＡＮＤ回路２６２とに入力され、制御信号ＣＳ２は、リング発振器１６のＡＮＤ回路１６１とリング発振器２６のＡＮＤ回路２６１とに入力される。
【００５８】
マスク回路５３０は、制御回路５２をテストする際にＩ／Ｆ回路５１の出力信号が制御回路５２に入力されることを防止する。マスク回路５３０は、テスタから出力される上述のテストイネーブル信号ＴＥＮがＬｏｗレベルのときにはＩ／Ｆ回路５１の出力信号を制御回路５２に入力し、Ｈｉｇｈレベルのときは自身の出力信号をＬｏｗレベルに固定して、Ｉ／Ｆ回路５１の出力信号が制御回路５２に入力されないようにする。
【００５９】
リング発振器１６から出力されるリングクロック信号ＲＣＬＫＡはＯＲ回路５２８に入力される。また、リング発振器２６から出力されるリングクロック信号ＲＣＬＫＡ２はＯＲ回路５２９に入力される。
【００６０】
上述の実施の形態１では、テスト用クロック信号ＴＣＬＫをテスタで生成していたが、本実施の形態２では、制御回路５２のテスト用クロック生成回路５２６でテスト用クロック信号ＴＣＬＫを生成している。テスト用クロック生成回路５２６で生成されたテスト用クロック信号ＴＣＬＫはＯＲ回路５２８，５２９のそれぞれに入力される。ＯＲ回路５２８は、入力された２つの信号の論理和を演算してクロック信号ＣＬＫ１１として出力し、ＯＲ回路５２９は、入力された２つの信号の論理和を演算してクロック信号ＣＬＫ１２として出力する。
【００６１】
図１１では、マスク回路５３０と圧縮回路５３との間には、互いに直列接続された組合せ回路５２２、セレクタ回路５２４及びフリップフロップ回路５２０から成る単位回路と、互いに直列接続された組合せ回路５２３、セレクタ回路５２５及びフリップフロップ回路５２１から成る単位回路の２つの単位回路しか示されていないが、互いに直列接続された組合せ回路、セレクタ回路及びフリップフロップ回路から成る他の単位回路も複数存在している。そして、これらの複数の単位回路は直列接続されている。各単位回路では、セレクタ回路は、前段の組合せ回路の出力データと、圧縮回路５３からのデータＤＯＵＴ＜０＞とのどちらか一方をセレクト信号ＳＬＴに基づいて選択して出力し、フリップフロップ回路のクロック端子には、クロック信号ＣＬＫ１１，ＣＬＫ１２のどちらか一方が入力される。以後、これらの互いに直列接続された複数の単位回路を「単位回路群」と呼ぶ。
【００６２】
さらに、マスク回路５３０と圧縮回路５３との間には、圧縮回路５３からのデータＤＯＵＴ＜０＞が入力される単位回路群以外にも、データＤＯＵＴ＜１＞などのデータＤＯＵＴ＜３１：０＞の他のデータが入力される単位回路群が複数並列に設けられている。そして、これらの単位回路群における各フリップフロップ回路の出力データは圧縮回路５３に入力され、圧縮回路５３は当該出力データから乱数データを生成する。
【００６３】
また、制御回路５２の各組合せ回路には、マスク回路５３０の出力信号も入力されている。したがって、各組合せ回路には、テストイネーブル信号ＴＥＮがＬｏｗレベルのときにはＩ／Ｆ回路５１の出力信号も入力される。
【００６４】
図１２はテスト用クロック生成回路５２６の構成を示す図である。図１２に示されるように、テスト用クロック生成回路５２６は、ＯＲ回路５２６ａと、ＡＮＤ回路５２６ｂ,５２６ｃと、フリップフロップ回路５２６ｄと、カウンタ回路５２６ｅとを備えている。カウンタ回路５２６ｅは、ＯＲ回路５２６ａの出力信号がＨｉｇｈレベルの間、外部クロック信号ＥＣＬＫの立ち下がり回数をカウントする。カウンタ回路５２６ｅは、外部クロック信号ＥＣＬＫの立ち下がり回数のカウントを開始するとＬｏｗレベルからＨｉｇｈレベルとなり、当該カウントが終了するとＨｉｇｈレベルからＬｏｗレベルとなるカウンタ出力信号ＣＯＵＴを出力する。なお、外部クロック信号ＥＣＬＫは、本半導体回路をテストする際に使用されるテスタから入力される。
【００６５】
ＡＮＤ回路５２６ｂは、カウンタ出力信号ＣＯＵＴと、テストイネーブル信号ＴＥＮとの論理積を演算して出力する。フリップフロップ回路５２６ｄは、外部クロック信号ＥＣＬＫが立ち上がるたびにＡＮＤ回路５２６ｂの出力信号を保持して出力する。ＡＮＤ回路５２６ｃは、フリップフロップ回路５２６ｄの出力信号と外部クロック信号ＥＣＬＫとの論理積を演算してテスト用クロック信号ＴＣＬＫとして出力する。
【００６６】
また、フリップフロップ回路５２６ｄの出力信号はビジー信号ＢＳＹとしてセレクト信号生成回路５２７に入力されるとともに、ＯＲ回路５２６ａに入力される。ＯＲ回路５２６ａは、テスト開始を通知するテストスタート信号ＴＳＴＡＲＴとビジー信号ＢＳＹとの論理和を演算してカウンタ回路５２６ｅに出力する。テストスタート信号ＴＳＴＡＲＴは、所定時間Ｈｉｇｈレベルを示すパルス信号であって、テスタから出力される。
【００６７】
図１３はテスト用クロック生成回路５２６の動作を示す図である。図１３に示されるように、テストイネーブル信号ＴＥＮがＨｉｇｈレベルとなり、パルス状のテストスタート信号ＴＳＴＡＲＴがテスト用クロック生成回路５２６に入力されると、ＯＲ回路５２６ａの出力信号はＬｏｗレベルからＨｉｇｈレベルに変化する。そうすると、カウンタ回路５２６ｅは、直後の外部クロック信号ＥＣＬＫの立ち下がりでカウントアップ動作を開始するとともに、カウンタ出力信号ＣＯＵＴをＬｏｗレベルからＨｉｇｈレベルに変化させる。そして、カウンタ回路５２６ｅは、カウント値が所定値、例えば“ＦＦ”となると、内部でキャリー信号を生成する。このキャリー信号は、図１３に示されるように、カウント値が“ＦＦ”となる外部クロック信号ＥＣＬＫの立下りから、次の立ち下がりまでＨｉｇｈレベルを示す正のパルス信号である。カウンタ回路５２６ｅは、キャリー信号からリセット信号を生成し、当該リセット信号を、自身が有するフリップフロップ回路のリセット端子に入力し、カウント値をリセットする。そうすると、カウンタ出力信号ＣＯＵＴはＨｉｇｈレベルからＬｏｗレベルに変化する。このリセット信号は、図１３に示されるように、キャリー信号がＨｉｇｈレベルからＬｏｗレベルに変化する外部クロック信号ＥＣＬＫの立ち下がりから、次の立ち下がりまでＬｏｗレベルを示す負のパルス信号である。なお、リセット信号がＬｏｗレベルの間はカウンタ値は“００”を維持する。
【００６８】
一方で、ビジー信号ＢＳＹは、カウンタ出力信号ＣＯＵＴがＨｉｇｈレベルとなると、その直後の外部クロック信号ＥＣＬＫの立ち上がりでＬｏｗレベルからＨｉｇｈレベルに変化する。そうすると、ＡＮＤ回路５２６ｃからは、外部クロック信号ＥＣＬＫがテスト用クロック信号ＴＣＬＫとして出力されるようになる。そして、カウンタ回路５２６ｅでのカウント値が“ＦＦ”となり、その後、当該カウント値がリセットされて“００”となると、その直後の外部クロック信号ＥＣＬＫの立ち上がりでビジー信号ＢＳＹはＨｉｇｈレベルからＬｏｗレベルに変化する。そうすると、ＯＲ回路５２６ａの出力信号がＨｉｇｈレベルからＬｏｗレベルに変化する。その後、新たにテストスタート信号ＴＳＴＡＲＴが入力されるとテスト用クロック生成回路５２６は同様の動作を行う。
【００６９】
このように、テスト用クロック生成回路５２６にテストスタート信号ＴＳＴＡＲＴが入力されると、当該テスト用クロック生成回路５２６からは、所定周波数のテスト用クロック信号ＴＣＬＫが所定クロック数だけ出力される。ここで、「クロック数」とは、クロック信号の立ち上がり回数あるいは立ち下がり回数を意味している。なお、ビジー信号ＢＳＹは、本半導体回路の外部出力端子に出力して、本半導体回路の外部でモニタできるようにしても良い。
【００７０】
図１４はセレクト信号生成回路５２７の動作を示す図である。図１４に示されるように、セレクト信号生成回路５２７は、ビジー信号ＢＳＹがＬｏｗレベルのときにはＬｏｗレベルのセレクト信号ＳＬＴを出力し、Ｈｉｇｈレベルのときにはテスト用クロック信号ＴＣＬＫが立ち上がるたびにセレクト信号ＳＬＴの信号レベルを変化させる。図１４では、セレクト信号ＳＬＴは、テスト用クロック信号ＴＣＬＫの立ち上がりと同時に変化しているが、実際には、素子の動作遅延のために、テスト用クロック信号ＴＣＬＫの立ち上がりから若干遅れて変化する。
【００７１】
ＯＲ回路５２８，５２９がともにテスト用クロック信号ＴＣＬＫを出力している場合には、セレクト信号ＳＬＴがＨｉｇｈレベルのときのテスト用クロック信号ＴＣＬＫの立ち上がりで、データＤＯＵＴ＜０＞が各単位回路のフリップフロップ回路にセットされる（図１４の“セット”）。そして、セレクト信号ＳＬＴがＬｏｗレベルとなり、テスト用クロック信号ＴＣＬＫの次の立ち上がりまでに、データＤＯＵＴ＜０＞が入力された後段の組合せ回路の出力が確定し（図１４の“ロード”）、次のテスト用クロック信号ＴＣＬＫの立ち上がりで当該組合せ回路の出力データが後段のフリップフロップ回路に取り込まれる（図１４の“キャプチャ”）。
【００７２】
本実施の形態２では、圧縮回路５３が出力するデータＤＯＵＴ＜３１：０＞がテストデータとして機能し、当該テストデータに対する組合せ回路の出力信号がフリップフロップ回路を介して圧縮回路５３に入力される。そして、圧縮回路５３は入力されたデータに基づいて乱数データを生成し、当該乱数データを圧縮したデータをテストデータとして出力する。この動作が繰り返して実行されることによって、外部からテストデータを入力することなく本半導体回路のテストを実行することができる。
【００７３】
図１５は圧縮回路５３から出力されるデータＤＯＵＴ＜３１：０＞の変化の様子を示す図である。図１５では、データＤＯＵＴ＜３１：０＞のうちの任意の１ビットのデータをデータＤＯＵＴ＜ｘ＞（０≦ｘ≦３１）として示している。図１５に示されるように、圧縮回路５３は、テストが開始し、テスト用クロック信号ＴＣＬＫが入力されると、当該テスト用クロック信号ＴＣＬＫの立ち上がりをカウントし、カウントしている間、データＤＯＵＴ＜３１：０＞をすべてＬｏｗレベルあるいはＨｉｇｈレベルに固定する（図１５ではＬｏｗレベルに固定された場合を示している）。そして、圧縮回路５３は、テスト用クロック信号ＴＣＬＫの立ち上がりを所定数カウントすると、制御回路５２の出力信号から乱数データを生成し、それを圧縮してデータＤＯＵＴ＜３１：０＞として出力する。
【００７４】
このように、圧縮回路５３から出力されるデータＤＯＵＴ＜３１：０＞は、テストが開始すると、所定時間の間、信号レベルが固定されるため、テスト開始段階において制御回路５２の各フリップフロップ回路は初期化される。よって、制御回路５２のフリップフロップ回路として、リセット端子を有していないフリップフロップ回路を使用することができ、本半導体回路の回路規模を低減することができるとともに、フリップフロップ回路のリセットラインの故障検出を行う必要も無い。その結果、テスト時間が短縮し、テスト効率が向上する。
【００７５】
次に、本実施の形態２に係る半導体回路の通常動作及びテスト動作について説明する。まず通常動作について説明する。テストイネーブル信号ＴＥＮがＬｏｗレベルに設定されると、本半導体回路は通常動作モードになる。このとき、テスト用クロック生成回路５２６からはテスト用クロック信号ＴＣＬＫは出力されずに、ＯＲ回路５２８，５２９の一方の入力端子はＬｏｗレベルに固定される。また、制御信号ＣＳ０〜ＣＳ２はすべてＨｉｇｈレベルとなり、リング発振器１６，２６がともに発振し、ＯＲ回路５２８の他方の入力端子には所定周波数のリングクロック信号ＲＣＬＫＡが入力され、ＯＲ回路５２９の他方の入力端子には所定周波数のリングクロック信号ＲＣＬＫＡ２が入力される。これにより、ＯＲ回路５２８，５２９からはそれぞれリングクロック信号ＲＣＬＫＡ，ＲＣＬＫＡ２が出力される。よって、フリップフロップ回路５２０はリングクロック信号ＲＣＬＫＡに同期して動作し、フリップフロップ回路５２１はリングクロック信号ＲＣＬＫＡ２に同期して動作する。また、マスク回路５３０からはＩ／Ｆ回路５１の出力信号が出力され、制御回路５２の各組合せ回路に入力される。
【００７６】
次に、本半導体回路のテスト動作について説明する。図１６は本半導体回路のテスト動作を示すフローチャートである。ステップｓ１において、テストイネーブル信号ＴＥＮがＨｉｇｈレベルに設定されると、本半導体回路はテスト動作モードとなる。そして、ステップｓ２において、テストスタート信号ＴＳＴＡＲＴが入力されると、ステップｓ３において、テスト用クロック生成回路５２６のカウンタ回路５２６ｅは外部クロック信号ＥＣＬＫの立ち下がりのカウントを開始する。そうすると、テスト用クロック生成回路５２６から、テスト用クロック信号ＴＣＬＫが出力される。
【００７７】
ステップｓ１においてテストイネーブル信号ＴＥＮがＨｉｇｈレベルに設定されると、制御信号ＣＳ０〜ＣＳ２は、圧縮回路５３から出力されるデータＤＯＵＴ＜２：０＞に応じて変化する。その結果、実施の形態１と同様に、リングクロック信号ＲＣＬＫＡは、フリップフロップ回路５２０にテスト用クロック信号ＴＣＬＫを入力するかどうかを決定する条件信号として機能し、リングクロック信号ＲＣＬＫＡ２は、フリップフロップ回路５２１にテスト用クロック信号ＴＣＬＫを入力するかどうかを決定する条件信号として機能する。
【００７８】
ステップｓ３において、テスト用クロック生成回路５２６でのテスト用クロック信号ＴＣＬＫの出力が開始すると、被テスト回路としての単位回路群に入力された、圧縮回路５３からのテストデータは、セレクタ回路及びフリップフロップ回路を介して組合せ回路に入力される。そして、テストデータに対する組合せ回路の出力データが、後段のセレクタ回路及びフリップフロップ回路を介して圧縮回路５３にテスト結果データとして入力される。
【００７９】
このように、被テスト回路にはテストデータが入力され、当該テストデータに対する被テスト回路の出力データがテスト結果データとして圧縮回路５３に入力される。圧縮回路５３は、入力されたテスト結果データに応じて変化するデータＤＯＵＴ＜３１：０＞を生成して出力し、当該データＤＯＵＴ＜３１：０＞はテスタに入力される。
【００８０】
その後、ステップｓ４において、テスタでは、データＤＯＵＴ＜３１：０＞と、予め記憶する期待値データとの比較が行われ、その比較結果に基づいて本半導体回路の製造の良否が判定される。上述のように、テスト動作モードでは、リングクロック信号ＲＣＬＫＡ，ＲＣＬＫＡ２によって制御回路５２中のフリップフロップ回路へのテスト用クロック信号ＴＣＬＫの入力が制御されるため、リング発振器１６，２６において縮退故障が発生し、当該リング発振器１６，２６の発振が停止している場合には、データＤＯＵＴ＜３１：０＞の値は変化しない。したがって、テスタにおいて、データＤＯＵＴ＜３１：０＞と、予め記憶する期待値データとの比較を行うことによって、リング発振器１６，２６での故障も検出することができる。
【００８１】
その後、ステップｓ５において、カウンタ回路５２６ｅのカウント動作が終了すると、テスト用クロック生成回路５２６からのテスト用クロック信号ＴＣＬＫの出力が停止し、本半導体回路のセルフテストが終了する。その後、新たにテストスタート信号ＴＳＴＡＲＴが本半導体回路に入力されると、次のセルフテストが開始し、本半導体回路は同様の動作を行う。
【００８２】
以上のように、本実施の形態２に係る半導体回路ではセルフテストを行っているため、外部からテストデータを入力する必要はなく、テスト効率が向上する。
【００８３】
また、本実施の形態２では、所定クロック数だけテスト用クロック信号ＴＣＬＫを被テスト回路に入力しているため、外部からテスト用クロック信号ＴＣＬＫを入力し続ける場合と比較して、テスト結果データに対する期待値データを作成しやすい。したがって、テスト効率が向上する。
【００８４】
また、本実施の形態２に係る半導体回路では、所定クロック数のテスト用クロック信号ＴＣＬＫを生成する回路を内蔵しているため、テスト用クロック信号ＴＣＬＫを外部から直接操作することを防止できる。そのため、本半導体回路の動作の秘匿性が向上する。
【００８５】
また、本実施の形態２に係るテスト用クロック生成回路５２６では、カウンタ回路５２６ｅでのカウント値が所定値となると、当該カウンタ回路５２６ｅを構成するフリップフロップ回路をリセットし、それによって、テスト用クロック信号ＴＣＬＫの出力を停止している。したがって、当該フリップフロップ回路のリセット機能に故障が発生していれば、テスト用クロック信号ＴＣＬＫはテスト用クロック生成回路５２６から出力され続ける。よって、テスト開始から所定時間経過しても圧縮回路５３が出力するデータＤＯＵＴ＜３１：０＞が変化し続ければ、カウンタ回路５２６ｅを構成するフリップフロップ回路のリセット機能が正常に動作していないと判定することができる。
【００８６】
なお、本実施の形態２に係るセレクト信号生成回路５２７から、セレクト信号ＳＬＴと相補的に変化するセレクト信号ＳＬＴＢを出力しても良い。図１７はこのセレクト信号ＳＬＴＢの変化の様子を示す図である。図１７では、セレクト信号ＳＬＴをセレクト信号ＳＬＴＡとして示している。図１７に示されるように、セレクト信号ＳＬＴＢは、セレクト信号ＳＬＴＡがＬｏｗレベルからＨｉｇｈレベルに変化すると、ＨｉｇｈレベルからＬｏｗレベルに変化する。そして、セレクト信号ＳＬＴＢは、セレクト信号ＳＬＴＡがＨｉｇｈレベルからＬｏｗレベルに変化すると、ＬｏｗレベルからＨｉｇｈレベルに変化する。
【００８７】
上述のように、本半導体回路の制御回路５２には、データＤＯＵＴ＜０＞が入力される単位回路群以外にも、データＤＯＵＴ＜３１：０＞におけるデータＤＯＵＴ＜０＞以外のデータが入力される単位回路群が複数設けられている。それらの単位回路群の少なくとも一つの各セレクタ回路に対して、セレクト信号ＳＬＴＡの替わりにセレクト信号ＳＬＴＢを入力する。
【００８８】
図１４に示されるように、１種類だけのセレクト信号ＳＬＴを使用する場合には、圧縮回路５３が出力するテストデータに対する被テスト回路の出力信号、つまりテスト結果データは、テスト用クロック信号ＴＣＬＫの立ち上がりの２回に１回の割合で圧縮回路５３に入力される。
【００８９】
一方で、図１７に示されるような２種類のセレクト信号ＳＬＴＡ，ＳＬＴＢを使用する場合には、セレクト信号ＳＬＴＡが入力される被テスト回路からのテスト結果データと、セレクト信号ＳＬＴＢが入力された被テスト回路からのテスト結果データとは、テスト用クロック信号ＴＣＬＫが立ち上がるたびに交互に圧縮回路５３に入力される。そのため、一定時間内により多くのテスト結果データを得ることができる。よって、テスト時間が短縮し、テスト効率が向上する。
【００９０】
また、本実施の形態２では、テストが開始すると、所定時間の間、データＤＯＵＴ＜３１：０＞を固定値に設定することによって、制御回路５２中のフリップフロップ回路を初期化するため、基本的には、フリップフロップ回路にはリセット端子は不要である。しかしながら、通常動作モードにおいてどうしてもリセットを行う必要のあるフリップフロップ回路も存在することから、制御回路５２のすべてのフリップフロップ回路をリセット端子無しの回路にすることはできない。そこで、リセット端子を有するフリップフロップ回路に対しては、テスト期間中に、定期的にリセット信号を入力することによって、当該フリップフロップ回路が正常にリセットされるかどうかを確認する。
【００９１】
図１８は、テスト期間中にリセット端子を有するフリップフロップ回路にリセット信号を出力するリセット信号生成回路の構成を示す図である。図１８では、一例として、リセット端子を有するフリップフロップ回路として上述のフリップフロップ回路５２０を示している。
【００９２】
図１８に示されるように、上述のカウンタ回路５２６ｅでのカウント値をデコード回路５５１に入力する。デコード回路５５１は入力されたカウント値をデコードして、テスト用リセット信号ＴＳＩＧを生成する。テスト用リセット信号ＴＳＩＧはＡＮＤ回路５５０の一方の入力端子に入力され、ＡＮＤ回路５５０の他方の入力端子には、通常動作時に使用されるリセット信号ＲＳＴＢが入力される。ＡＮＤ回路５５０は、２つの入力信号の論理積を演算してフリップフロップ回路５２０のリセット端子に出力する。
【００９３】
図１９はテスト用リセット信号ＴＳＩＧを示す図である。セルフテストが開始すると、図１９に示されるように、テスト用クロック信号ＴＣＬＫの立ち上がりから次の立ち上がりまでの間、Ｌｏｗレベルを示すパルス状のテスト用リセット信号ＴＳＩＧが、カウンタ回路５２６ｅでのカウント値に応じて所定間隔でデコード回路５５１から出力される。例えば、カウンタ回路５２６ｅでのカウント値が十進数表記で“１０”増加するたびにデコード回路５５１からテスト用リセット信号ＴＳＩＧが出力される。テスト期間中では、ＡＮＤ回路５５０の一方の入力端子にはリセット信号ＲＳＴＢは入力されずに当該入力端子はＨｉｇｈレベルに固定されることから、ＡＮＤ回路５５０からはテスト用リセット信号ＴＳＩＧが出力される。したがって、フリップフロップ回路５２０のリセット端子にはテスト期間中に定期的にテスト用リセット信号ＴＳＩＧが入力される。フリップフロップ回路５２０がリセットされると、その出力信号はＬｏｗレベルとなり、それに応じてデータＤＯＵＴ＜３１：０＞が変化することから、データＤＯＵＴ＜３１：０＞を確認することによって、テスト期間中においてリセット端子付きのフリップフロップ回路５２０が正常にリセットされたかどうかを検出することができる。
【００９４】
このように、カウンタ回路５２６ｅでのカウント値に応じてテスト用リセット信号ＴＳＩＧをフリップフロップ回路に出力することによって、本半導体回路の回路規模をそれほど大きくすることなく、フリップフロップ回路のリセット機能をテストすることができる。
【００９５】
なお、テスト用リセット信号ＴＳＩＧは、テスト期間中に定期的にＬｏｗレベルとなることから、上述の第２テストイネーブル信号ＴＥＮ２の代わりに使用することができる。
【００９６】
また、制御回路５２だけではなく、Ｉ／Ｆ回路５１についても、制御回路５２と同様の回路構成にすることによって同様の方法でセルフテストすることができる。図２０はＩ／Ｆ回路５１及び制御回路５２をともに被テスト回路とした場合の本半導体回路の構成の一例を示す図である。図２０に示されるように、図１０に示される構成において、イネーブル信号生成回路６０及びマスク回路６１をさらに設ける。
【００９７】
Ｉ／Ｆ回路５１には、制御回路５２と同様に、各フリップフロップ回路の前段にセレクタ回路を設けて、当該セレクタ回路によって、圧縮回路５３の出力信号と組合せ回路の出力信号とのどちらか一方を当該フリップフロップ回路に入力できるようにする。そして、Ｉ／Ｆ回路５１のテスト結果を圧縮回路５３に入力するために、Ｉ／Ｆ回路５１と制御回路５２とを接続する信号ラインとは別の信号ラインを設けて、Ｉ／Ｆ回路５１内の各フリップフロップ回路の出力信号を圧縮回路５３に入力するようにする。圧縮回路５３は、Ｉ／Ｆ回路５１からの信号と、制御回路５２からの信号とに基づいて乱数データを生成し、それを圧縮してデータＤＯＵＴ＜３１：０＞として出力する。また、Ｉ／Ｆ回路５１には、制御回路５２と同様のセレクト信号生成回路及びテスト用クロック生成回路を設ける。本例では、Ｉ／Ｆ回路５１にはリング発振器が設けられていないため、テスト用クロック生成回路から出力されるテスト用クロック信号は各フリップフロップ回路のクロック端子に直接入力される。さらに、Ｉ／Ｆ回路５１には、テスト期間中、本半導体回路の外部からの信号がＩ／Ｆ回路５１に入力されないように、制御回路５２のマスク回路５３０と同様の回路が設けられる。
【００９８】
イネーブル信号生成回路６０は、制御回路５２で生成されるテスト用クロック信号ＴＣＬＫに基づいて、Ｉ／Ｆ回路５１をテストする際に使用されるＩ／Ｆ用テストイネーブル信号ＴＩＦＥＮを生成して出力する。Ｉ／Ｆ用テストイネーブル信号ＴＩＦＥＮは、Ｉ／Ｆ回路５１をテストする際にはＨｉｇｈレベルとなり、それ以外ではＬｏｗレベルとなる。Ｉ／Ｆ回路５１では、テストイネーブル信号ＴＥＮの替わりにＩ／Ｆ用テストイネーブル信号ＴＩＦＥＮが使用される。
【００９９】
マスク回路６１は、制御回路５２をテストする際に圧縮回路５３の出力信号がＩ／Ｆ回路５１に入力されることを防止する。マスク回路６１は、Ｉ／Ｆ用テストイネーブル信号ＴＩＦＥＮがＨｉｇｈレベルのとき圧縮回路５３の出力信号をＩ／Ｆ回路５１に入力し、Ｌｏｗレベルのときには自身の出力信号をＬｏｗレベルに固定して、圧縮回路５３の出力信号がＩ／Ｆ回路５１に入力されないようにする。
【０１００】
図２１はＩ／Ｆ用テストイネーブル信号ＴＩＦＥＮの変化の様子を示す図である。図２１に示されるように、例えば、制御回路５２で生成されるテスト用クロック信号ＴＣＬＫが、５１２クロックの間、発振しているとすると、後半の２５６クロックの間だけＩ／Ｆ用テストイネーブル信号ＴＩＦＥＮはＨｉｇｈレベルとなる。
【０１０１】
次に、図２０に示される半導体回路のテスト動作について説明する。本例では、半導体回路のテスト期間において、前半半分の期間では制御回路５２だけがテストされ、後半半分の期間ではＩ／Ｆ回路５１と制御回路５２との両方がテストされる。
【０１０２】
テストイネーブル信号ＴＥＮがＬｏｗレベルからＨｉｇｈレベルに変化すると、まず制御回路５２に対するセルフテストが実行される。このとき、Ｉ／Ｆ用テストイネーブル信号ＴＩＦＥＮはＬｏｗレベルであるため、Ｉ／Ｆ回路５１には圧縮回路５３の出力信号が入力されない。また、Ｉ／Ｆ回路５１内のフリップフロップ回路は初期化されているため、当該Ｉ／Ｆ回路５１から圧縮回路５３に入力される信号はすべてＬｏｗレベル、あるいはすべてＨｉｇｈレベルの固定値を示す。さらに、制御回路５２にはマスク回路５３０の働きによってＩ／Ｆ回路５１の出力信号が入力されない。したがって、テスト期間の前半の期間では、Ｉ／Ｆ回路５１の動作の影響を受けずに、制御回路５２だけのテストを行うことができる。
【０１０３】
本半導体回路のテスト期間の後半半分になると、Ｉ／Ｆ用テストイネーブル信号ＴＩＦＥＮがＬｏｗレベルからＨｉｇｈレベルとなり、Ｉ／Ｆ回路５１に対するセルフテストが実行される。このとき、テストイネーブル信号ＴＥＮも依然としてＨｉｇｈレベルであるため、制御回路５２に対してもセルフテストが実行される。また、制御回路５２のマスク回路５３０にはＩ／Ｆ用テストイネーブル信号ＴＩＦＥＮも入力されており、当該Ｉ／Ｆ用テストイネーブル信号ＴＩＦＥＮがＨｉｇｈレベルのときには、Ｉ／Ｆ回路５１の出力信号が制御回路５２に入力されるようにマスク回路５３０は動作する。したがって、テスト期間の後半半分においては、制御回路５２の組合せ回路には、Ｉ／Ｆ回路５１の出力信号と、圧縮回路５３の出力信号との両方が入力される。よって、後半半分のテスト期間では、制御回路５２がＩ／Ｆ回路５１の出力信号に応じて正常に動作するかについてテストすることができるとともに、Ｉ／Ｆ回路５１と制御回路５２とを接続する信号ラインの縮退故障も検出することができる。
【０１０４】
このように、Ｉ／Ｆ回路５１及び制御回路５２をともにテストする場合において、Ｉ／Ｆ回路５１の出力信号が制御回路５２に入力されないようにして、まず制御回路５２をテストすることは、設計段階において回路修正を行う上で非常に有効である。
【０１０５】
Ｉ／Ｆ回路５１の出力信号が制御回路５２に入力された状態で当該制御回路５２をテストする場合には、Ｉ／Ｆ回路５１の出力信号が制御回路５２のテスト結果に影響を与えるため、制御回路５２をテストした後にＩ／Ｆ回路５１をテストし、その後、Ｉ／Ｆ回路５１のテスト結果に基づいて当該Ｉ／Ｆ回路５１を修正すると、制御回路５２に対する故障検出率に変化が生じる可能性があるため、再度制御回路５２に対するテストを実行して、そのテスト結果を確認しなくてはならない。そして、再度実行したテストの結果によっては、制御回路５２を修正する必要がある。
【０１０６】
一方で、Ｉ／Ｆ回路５１の出力信号が制御回路５２に入力されないようにして、当該制御回路５２をテストする場合には、Ｉ／Ｆ回路５１の修正が制御回路５２のテスト結果には影響を与えないことから、一度、制御回路５２の修正が完了すれば、その後に、Ｉ／Ｆ回路５１を修正したとしても制御回路５２に対して再びテストを実行する必要はなく、制御回路５２を再度修正する必要もない。よって、本半導体回路の修正が容易となる。
【０１０７】
なお、圧縮回路５３についてはハードウェアで構成しても良いし、ソフトウェアで構成しても良い。圧縮回路５３をソフトウェアで構成した場合には、本半導体回路の実装面積を低減することができる。
【０１０８】
実施の形態３．
図２２は本発明の実施の形態３に係る半導体回路の構成を示す図である。本実施の形態３に係る半導体回路は、故障検出に関してスキャンパステストを実行することができる。本実施の形態３に係る半導体回路は、基本的には、上述の実施の形態１に係る半導体回路において、フリップフロップ回路１〜４の前段にセレクタ回路７０〜７４をそれぞれ設けたものである。
【０１０９】
セレクタ回路７０は、テスタから出力されるスキャンイネーブル信号ＳＥＮに基づいて入力データＤＩＮとスキャン入力データＳＤＩＮとのどちらか一方を選択して出力する。具体的には、セレクタ回路７０は、スキャンイネーブル信号ＳＥＮがＨｉｇｈレベルのときにはスキャン入力データＳＤＩＮを出力し、Ｌｏｗレベルのときには入力データＤＩＮを出力する。入力データＤＩＮは通常動作時に使用されるデータであって、スキャン入力データＳＤＩＮはスキャンパステスト時に使用されるテストデータである。
【０１１０】
フリップフロップ回路１は、クロック信号ＣＬＫ１が立ち上がるたびにセレクタ回路７０の出力信号を保持して組合せ回路６及びセレクタ回路７１に出力する。セレクタ回路７１は、スキャンイネーブル信号ＳＥＮに基づいてフリップフロップ回路１の出力信号と組合せ回路６の出力信号とのどちらか一方を選択して出力する。具体的には、セレクタ回路７１は、スキャンイネーブル信号ＳＥＮがＨｉｇｈレベルのときにはフリップフロップ回路１の出力信号を出力し、Ｌｏｗレベルのときには組合せ回路６の出力信号を出力する。
【０１１１】
フリップフロップ回路２は、クロック信号ＣＬＫ２が立ち上がるたびにセレクタ回路７１の出力信号を保持して組合せ回路７及びセレクタ回路７２〜７４に出力する。セレクタ回路７２〜７４のそれぞれは、スキャンイネーブル信号ＳＥＮに基づいてフリップフロップ回路２の出力信号と組合せ回路７の出力信号とのどちらか一方を選択して出力する。具体的には、セレクタ回路７２〜７４のそれぞれは、スキャンイネーブル信号ＳＥＮがＨｉｇｈレベルのときにはフリップフロップ回路２の出力信号を出力し、Ｌｏｗレベルのときには組合せ回路７の出力信号を出力する。
【０１１２】
フリップフロップ回路３は、クロック信号ＣＬＫ２が立ち上がるたびにセレクタ回路７２の出力信号を保持してデータＤＯＵＴ１として出力する。フリップフロップ回路４は、クロック信号ＣＬＫ３が立ち上がるたびにセレクタ回路７３の出力信号を保持してデータＤＯＵＴ２として出力する。フリップフロップ回路５は、クロック信号ＣＬＫ４が立ち上がるたびにセレクタ回路７４の出力信号を保持してデータＤＯＵＴ２として出力する。出力バッファ回路８〜１０はデータＤＯＵＴ０〜ＤＯＵＴ２をそれぞれ受けて出力する。その他の構成については実施の形態１に係る半導体回路と同様であるため、その説明は省略する。
【０１１３】
次に、本実施の形態３に係る半導体回路の動作について説明する。テストイネーブル信号ＴＥＮがＬｏｗレベルに設定されると、本半導体回路は通常動作モードとなる。このとき、スキャンイネーブル信号ＳＥＮはＬｏｗレベルに設定される。また、テスト用クロック信号ＴＣＬＫはＯＲ回路１１〜１４には入力されず、テスト動作中においてテスト用クロック信号ＴＣＬＫが入力されるＯＲ回路１１〜１４の一方の入力端子はすべてＬｏｗレベルに固定される。実施の形態１と同様に、テストイネーブル信号ＴＥＮがＬｏｗレベルに設定されると、リング発振器１６が発振し、フリップフロップ回路１〜３はリングクロック信号ＲＣＬＫＡに同期して動作し、フリップフロップ回路４はリングクロック信号ＲＣＬＫＢに同期して動作し、フリップフロップ回路５はリングクロック信号ＲＣＬＫＣに同期して動作する。
【０１１４】
一方で、テストイネーブル信号ＴＥＮがＨｉｇｈレベルに設定されると、本半導体回路はテスト動作モードとなる。テスト動作モードでは、ＯＲ回路１１〜１４のそれぞれにはテスト用クロック信号ＴＣＬＫが入力され、セレクタ回路７０にはスキャン入力データＳＤＩＮが入力される。
【０１１５】
テスト動作モードでは、まず、スキャンイネーブル信号ＳＥＮがＨｉｇｈレベルとなる。そうすると、フリップフロップ回路１〜３が直列接続されて「スキャンパス」と呼ばれるシフトレジスタを構成する。同様に、フリップフロップ回路１，２，４が直列接続されてスキャンパスを構成し、フリップフロップ回路１，２，５が直列接続されてスキャンパスを構成する。
【０１１６】
ＯＲ回路１１〜１４からテスト用クロック信号ＴＣＬＫが出力されている場合には、セレクタ回路７０から出力されたスキャン入力データＳＤＩＮは、テスト用クロック信号ＴＣＬＫの立ち上がりに同期してフリップフロップ回路１に設定される。テスト用クロック信号ＴＣＬＫが新たに立ち上がると、フリップフロップ回路１内のスキャン入力データＳＤＩＮは後段のフリップフロップ回路２にシフトし、フリップフロップ回路１には新たなスキャン入力データＳＤＩＮが設定される。そして、テスト用クロック信号ＴＣＬＫが新たに立ち上がると、フリップフロップ回路２内のスキャン入力データＳＤＩＮは後段のフリップフロップ回路３〜５にシフトし、フリップフロップ回路１内のスキャン入力データＳＤＩＮはフリップフロップ回路２にシフトし、フリップフロップ回路１には新たなスキャン入力データＳＤＩＮが設定される。
【０１１７】
このようにして、フリップフロップ回路１〜５のすべてにスキャン入力データＳＤＩＮが設定されると、今度はスキャンイネーブル信号ＳＥＮはＬｏｗレベルに設定される。そうすると、次のテスト用クロック信号ＴＣＬＫの立ち上がりで、フリップフロップ回路１が出力するスキャン入力データＳＤＩＮに対する組合せ回路６の出力信号がフリップフロップ回路２に設定されるとともに、フリップフロップ回路２が出力するスキャン入力データＳＤＩＮに対する組合せ回路７の出力信号がフリップフロップ回路３〜５に設定される。これにより、フリップフロップ回路２〜５にはスキャンパステストのテスト結果データが設定される。
【０１１８】
次に、スキャンイネーブル信号ＳＥＮを再びＨｉｇｈレベルに設定する。そうすると、フリップフロップ回路１〜５は再度スキャンパスを構成し、テスト用クロック信号ＴＣＬＫの立ち上がりに同期して、フリップフロップ回路３〜５からテスト結果データがそれぞれデータＤＯＵＴ０〜ＤＯＵＴ２として順次出力される。データＤＯＵＴ０〜ＤＯＵＴ２は、出力バッファ回路８〜１０を介してテスタに入力される。テスタにおいては、データＤＯＵＴ０〜ＤＯＵＴ２と、予め記憶する期待値データとの比較が行われ、その比較結果に基づいて本半導体回路の製造の良否が判定される。
【０１１９】
また、テストイネーブル信号ＴＥＮがＨｉｇｈレベルに設定されると、制御信号ＣＳ０〜ＣＳ２は、データＤＯＵＴ０〜ＤＯＵＴ２に応じて変化する。その結果、実施の形態１と同様に、ＯＲ回路１１に入力されるリングクロック信号ＲＣＬＫＡは、フリップフロップ回路１にテスト用クロック信号ＴＣＬＫを入力するかどうかを決定する条件信号として機能し、ＯＲ回路１２に入力されるリングクロック信号ＲＣＬＫＡは、フリップフロップ回路２，３にテスト用クロック信号ＴＣＬＫを入力するかどうかを決定する条件信号として機能し、リングクロック信号ＲＣＬＫＢは、フリップフロップ回路４にテスト用クロック信号ＴＣＬＫを入力するかどうかを決定する条件信号として機能し、リングクロック信号ＲＣＬＫＣは、フリップフロップ回路５にテスト用クロック信号ＴＣＬＫを入力するかどうかを決定する条件信号として機能する。
【０１２０】
このように、テスト動作モードでは、リングクロック信号ＲＣＬＫＡ〜ＲＣＬＫＣによってフリップフロップ回路１〜５へのテスト用クロック信号ＴＣＬＫの入力が制御されるため、リング発振器１６において縮退故障が発生し当該リング発振器１６の発振が停止している場合には、データＤＯＵＴ０〜ＤＯＵＴ２の値は変化しない。したがって、実施の形態１と同様に、テスタにおいて、データＤＯＵＴ０〜ＤＯＵＴ２と、予め記憶する期待値データとの比較を行うことによって、リング発振器１６での故障も検出することができる。
【０１２１】
以上のように、スキャンパステストを実行することが可能な半導体回路においても、本発明を適用することができ、テスト効率を向上することができる。
【図面の簡単な説明】
【０１２２】
【図１】本発明の実施の形態１に係る半導体回路の構成を示す図である。
【図２】本発明の実施の形態１に係る発振防止回路の構成を示す図である。
【図３】本発明の実施の形態１に係る半導体回路の動作を示す図である。
【図４】本発明の実施の形態１に係る制御信号の信号レベルの組合せの例を示す図である。
【図５】従来技術と本発明の実施の形態１に係る半導体回路とのリングクロック信号の比較を示す図である。
【図６】本発明の実施の形態１に係るリング発振器の構成を示す図である。
【図７】本発明の実施の形態１に係るリング発振器の変形例の構成を示す図である。
【図８】本発明の実施の形態１に係る半導体回路の変形例の構成を示す図である。
【図９】本発明の実施の形態１に係る発振防止回路の変形例の構成を示す図である。
【図１０】本発明の実施の形態２に係る半導体回路の構成を示す図である。
【図１１】本発明の実施の形態２に係る制御回路の構成を主に示す図である。
【図１２】本発明の実施の形態２に係るテスト用クロック生成回路の構成を示す図である。
【図１３】本発明の実施の形態２に係るテスト用クロック生成回路の動作を示す図である。
【図１４】本発明の実施の形態２に係るセレクト信号生成回路の動作を示す図である。
【図１５】本発明の実施の形態２に係る圧縮回路の出力信号の変化の様子を示す図である。
【図１６】本発明の実施の形態２に係る半導体回路のテスト動作を示すフローチャートである。
【図１７】本発明の実施の形態２に係るセレクト信号生成回路の変形例の動作を示す図である。
【図１８】フリップフロップ回路にテスト用リセット信号を出力するリセット生成回路の構成を示す図である。
【図１９】テスト用リセット信号の変化の様子を示す図である。
【図２０】本発明の実施の形態２に係る半導体回路の変形例の構成を示す図である。
【図２１】Ｉ／Ｆ用テストイネーブル信号の変化の様子を示す図である。
【図２２】本発明の実施の形態３に係る半導体回路の構成を示す図である。
【符号の説明】
【０１２３】
１〜５，５２０，５２１  フリップフロップ回路、６，７，５２２，５２３  組合せ回路、１１〜１４，５２８，５２９  ＯＲ回路、１５  発振防止回路、１６，２６  リング発振器、７１〜７４，５２４，５２５  セレクタ回路、５２６  テスト用クロック生成回路、５３０  マスク回路、５５１  デコード回路。
【図１】
2008003047.tif 000003
【図２】
2008003047.tif 000004
【図３】
2008003047.tif 000005
【図４】
2008003047.tif 000006
【図５】
2008003047.tif 000007
【図６】
2008003047.tif 000008
【図７】
2008003047.tif 000009
【図８】
2008003047.tif 000010
【図９】
2008003047.tif 000011
【図１０】
2008003047.tif 000012
【図１１】
2008003047.tif 000013
【図１２】
2008003047.tif 000014
【図１３】
2008003047.tif 000015
【図１４】
2008003047.tif 000016
【図１５】
2008003047.tif 000017
【図１６】
2008003047.tif 000018
【図１７】
2008003047.tif 000019
【図１８】
2008003047.tif 000020
【図１９】
2008003047.tif 000021
【図２０】
2008003047.tif 000022
【図２１】
2008003047.tif 000023
【図２２】
2008003047.tif 000024