JP2008003047A - 半導体回路 - Google Patents
半導体回路 Download PDFInfo
- Publication number
- JP2008003047A JP2008003047A JP2006175366A JP2006175366A JP2008003047A JP 2008003047 A JP2008003047 A JP 2008003047A JP 2006175366 A JP2006175366 A JP 2006175366A JP 2006175366 A JP2006175366 A JP 2006175366A JP 2008003047 A JP2008003047 A JP 2008003047A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- test
- clock signal
- signal
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
【課題】半導体回路におけるテスト効率を向上することが可能な技術を提供する。
【解決手段】被テスト回路は、OR回路12が出力するクロック信号CLK2に同期してテスト結果データを出力する。リング発振器16は、通常動作モード時では、テスト用クロック信号TCLKとは非同期でリングクロック信号RCLKを所定周波数で発振させ、テスト動作モード時では、リングクロック信号RCLKAをテスト用クロック信号TCLKに同期させて変化させる。OR回路12は、通常動作モード時では、リングクロック信号RCLKAをクロック信号CLK2として使用し、テスト動作モード時では、テスト用クロック信号TCLKをクロック信号CLK2として出力するか否かを決定する条件信号としてリングクロック信号RCLKAを使用する。
【選択図】図1
【解決手段】被テスト回路は、OR回路12が出力するクロック信号CLK2に同期してテスト結果データを出力する。リング発振器16は、通常動作モード時では、テスト用クロック信号TCLKとは非同期でリングクロック信号RCLKを所定周波数で発振させ、テスト動作モード時では、リングクロック信号RCLKAをテスト用クロック信号TCLKに同期させて変化させる。OR回路12は、通常動作モード時では、リングクロック信号RCLKAをクロック信号CLK2として使用し、テスト動作モード時では、テスト用クロック信号TCLKをクロック信号CLK2として出力するか否かを決定する条件信号としてリングクロック信号RCLKAを使用する。
【選択図】図1
Description
本発明は、半導体回路のテスト技術に関する。
LSI(Large Scale Integration)等の半導体回路をテストする際には、縮退故障を想定して行うことが多い。縮退故障とは、論理値が“0”または“1”に固定される故障である。半導体回路の縮退故障を検出するテスト(以後、「縮退故障テスト」と呼ぶ)は、製造出荷時において、何らかの物理的原因によって回路要素が正常時と同じ論理出力を行うことができない半導体回路の選別に用いられる。縮退故障テストでは、半導体回路にテストパターンを入力し、当該テストパターンに対する半導体回路の出力値と、期待値とを比較し、その比較結果を使用して合否を判定する。
テスタを用いて半導体回路をテストする場合には、被テスト回路の動作を当該テスタから出力されるテスト用クロック信号に同期させる必要がある。被テスト回路が内蔵の発振器からのクロック信号に同期して動作する場合には、テスト時において、当該被テスト回路にテスト用クロック信号を動作クロック信号として直接入力することができない。従来では、この場合にはセレクタ回路を設けて、当該セレクタ回路に内蔵の発振器からのクロック信号と、テスト用クロック信号とを入力し、テスト時には、当該セレクタ回路からテスト用クロック信号を出力させることによって、内蔵の発振器を除く被テスト回路の動作をテスト用クロック信号に同期させている。
そして、内蔵の発振器については、当該発振器の出力を外部ピンに取り出し、当該外部ピンにて当該発振器の発振を確認することによって当該発振器の縮退故障テストを行っている。
なお、半導体回路のテストに関する技術が特許文献1〜6に記載されている。
上述のように、被テスト回路が内蔵の発振器からのクロック信号に同期して動作する場合には、セレクタ回路を用いて、使用するクロック信号を、内蔵の発振器のクロック信号からテスト用クロック信号に切り替えている。したがって、内蔵の発振器に対するテストをテスタを用いて他の回路と一緒に行うことはできず、十分なテスト効率を確保することは困難である。
さらには、被テスト回路に内蔵されている発振器に関しては、その発振を直接確認することによってテストを行っているため、テスタを用いて縮退故障の発生を検出することは非常に困難であり、この点からも、十分なテスト効率を確保することが困難である。
また、被テスト回路が内部のクロック信号に同期して動作している場合に限らず、被テスト回路が外部からのクロック信号に同期して動作し、テスト用クロック信号を被テスト回路に直接入力することができる場合にも、従来からテスト効率の向上が望まれている。
また、被テスト回路に対して外部からテスト用クロック信号を直接入力することができる場合には、外部において当該テスト用クロック信号を操作することにより被テスト回路の動作が容易に解析される可能性があり、その秘匿性の向上が望まれている。
また、設計段階において、被テスト回路のテスト結果に基づいて当該被テスト回路を修正する場合には、当該被テスト回路を容易に修正できることが望まれている。
そこで、本発明は上述の問題に鑑みて成されたものであり、半導体回路におけるテスト効率を向上することが可能な技術を提供することを第1の目的とする。また、被テスト回路の動作の秘匿性を向上することを第2の目的とする。そして、被テスト回路を容易に修正できる技術を提供することを第3の目的とする。
この発明の第1の半導体回路は、通常動作モード及びテスト動作モードを有する半導体回路であって、前記テスト動作モード時において、テストデータが入力され、当該テストデータに対するテスト結果データを第1クロック信号に同期して出力する被テスト回路と、前記第1クロック信号を出力する第1の回路と、第2クロック信号を出力する第2の回路とを備え、前記第2の回路は、前記通常動作モード時では、前記テスト動作モード時に前記半導体回路に入力されるテスト用クロック信号とは非同期で前記第2クロック信号を所定周波数で発振させ、前記テスト動作モード時では、前記第2クロック信号を前記テスト用クロック信号に同期させて変化させ、前記第1の回路は、前記通常動作モード時では、前記第2クロック信号を前記第1クロック信号として使用し、前記テスト動作モード時では、前記テスト用クロック信号を前記第1クロック信号として出力するか否かを決定する条件信号として前記第2クロック信号を使用する。
また、この発明の第2の半導体回路は、第1テストデータが入力され、当該第1テストデータに対する第1テスト結果データを所定間隔で出力する第1の被テスト回路と、第2テストデータが入力され、当該第2テストデータに対する第2テスト結果データを前記所定間隔で出力する第2の被テスト回路とを備え、前記第1及び第2の被テスト回路からは、前記第1及び第2テスト結果データが交互に出力される。
また、この発明の第3の半導体回路は、テストデータが入力され、当該テストデータに対するテスト結果データをテスト用クロック信号に同期して出力する被テスト回路と、前記テスト用クロック信号を生成して出力するテスト用クロック生成回路とを備え、前記テスト用クロック生成回路は、テスト開始を通知する信号が入力されると、前記テスト用クロック信号を所定クロック数出力して停止する。
また、この発明の第4の半導体回路は、テストデータが入力され、当該テストデータに対するテスト結果データを出力する被テスト回路と、前記テスト結果データに基づいて前記テストデータを生成して出力するテストデータ生成回路とを備え、前記被テスト回路は、前記テストデータが入力されるフリップフロップ回路を有し、前記テストデータ生成回路は、テストが開始すると、所定時間の間、固定値の前記テストデータを出力する。
また、この発明の第5の半導体回路は、第1及び第2の被テスト回路と、前記第2の被テスト回路をテストする際に前記第1の被テスト回路の出力信号が前記第2の被テスト回路に入力されることを防止するマスク回路とを備える。
この発明の第1の半導体回路によれば、テスト動作モード時では、第2クロック信号がテスト用クロック信号と同期して変化するとともに、当該第2クロック信号が、テスト用クロック信号を被テスト回路に入力するかどうかの条件信号として使用されるため、テスト用クロック信号と同期して動作するテスタを使用して、第2の回路を含めて本半導体回路のテストを実行することができる。よって、第2の回路とその他の回路とを別々にテストする必要がなく、第2の回路の出力を直接観測する必要もないことから、テスト効率が向上する。
また、この発明の第2の半導体回路によれば、ともに所定間隔で出力される第1及び第2テスト結果データが交互に出力されるため、当該第1及び第2テスト結果データが所定間隔で同時に出力される場合よりも、一定期間内に多くのテスト結果を得ることができる。よって、テスト時間を短くすることができ、テスト効率が向上する。
また、この発明の第3の半導体回路によれば、所定クロック数だけ出力されるテスト用クロック信号を生成する回路を内蔵しているため、テスト用クロック信号を外部から直接操作することを防止できる。そのため、本半導体回路の動作の秘匿性が向上する。
また、この発明の第4の半導体回路によれば、テストが開始すると、所定時間の間、固定値のテストデータがフリップフロップ回路に入力されるため、当該フリップフロップ回路はテスト開始時に初期化される。よって、当該フリップフロップ回路としてリセット端子を有していない回路を使用することができ、本半導体回路の回路規模を低減できる。その結果、テスト時間を短くすることができ、テスト効率が向上する。
また、この発明の第5の半導体回路によれば、第1の被テスト回路の修正が第2の被テスト回路のテスト結果には影響を与えないことから、一度、第2の被テスト回路の修正が完了すれば、その後に、第1の被テスト回路を修正したとしても第2の被テスト回路に対して再びテストを実行する必要はなく、第2の被テスト回路を再度修正する必要もない。よって、本半導体回路の修正が容易となる。
実施の形態1.
図1は本発明の実施の形態1に係る半導体回路の構成を示す図である。図1に示されるように、本実施の形態1に係る半導体回路は、フリップフロップ回路1〜5と、AND回路やOR回路などのロジック回路で構成されている組合せ回路6,7と、出力バッファ回路8〜10と、OR回路11〜14と、発振防止回路15と、リング発振器16とを備えており、これらの回路は例えば同一の半導体基板に形成されている。
図1は本発明の実施の形態1に係る半導体回路の構成を示す図である。図1に示されるように、本実施の形態1に係る半導体回路は、フリップフロップ回路1〜5と、AND回路やOR回路などのロジック回路で構成されている組合せ回路6,7と、出力バッファ回路8〜10と、OR回路11〜14と、発振防止回路15と、リング発振器16とを備えており、これらの回路は例えば同一の半導体基板に形成されている。
フリップフロップ回路1は、クロック信号CLK1が立ち上がるたびに入力データDINを保持して組合せ回路6に出力する。フリップフロップ回路2は、クロック信号CLK2が立ち上がるたびに組合せ回路6の出力データを保持して組合せ回路7に出力する。フリップフロップ回路3は、クロック信号CLK2が立ち上がるたびに組合せ回路7の出力データを保持してデータDOUT0として出力する。フリップフロップ回路4は、クロック信号CLK3が立ち上がるたびに組合せ回路7の出力データを保持してデータDOUT1として出力する。フリップフロップ回路5は、クロック信号CLK4が立ち上がるたびに組合せ回路7の出力データを保持してデータDOUT2として出力する。出力バッファ回路8〜10はデータDOUT0〜DOUT2をそれぞれ受けて出力する。
リング発振器16は所定の周波数のクロック信号を出力することが可能であって、AND回路160,161と、NAND回路162と、インバータ回路163〜168とを備えている。インバータ回路163〜166と、AND回路160と、インバータ回路167と、NAND回路162と、インバータ回路168と、AND回路161とは、この順でリング状に直列接続されている。AND回路161の出力信号は、リングクロック信号RCLKAとしてOR回路11,12のそれぞれに入力される。AND回路160の出力信号は、リングクロック信号RCLKBとしてOR回路13に入力され、NAND回路162の出力信号は、リングクロック信号RCLKCとしてOR回路14に入力される。
本実施の形態1に係るリング発振器16は、発振防止回路15から出力される制御信号CS0〜CS2によって発振が制御される。リング発振器16は、制御信号CS0〜CS2がすべてHighレベルに設定されると発振し、制御信号CS0〜CS2の少なくとも一つがLowレベルに設定されると発振が停止する。リング発振器16のAND回路160では、前段のインバータ回路166の出力端子と接続されている入力端子とは別の入力端子に制御信号CS0が入力される。NAND回路162では、前段のインバータ回路167の出力端子と接続されている入力端子とは別の入力端子に制御信号CS1が入力される。AND回路161では、前段のインバータ回路168の出力端子と接続されている入力端子とは別の入力端子に制御信号CS2が入力される。
OR回路11〜14の一方の入力端子には、所定周波数のテスト用クロック信号TCLKが入力される。OR回路11,12のそれぞれの他方の入力端子にはリングクロック信号RCLKAが入力され、OR回路13,14の他方の入力端子には、リングクロック信号RCLKB,RCLKCがそれぞれ入力される。OR回路11〜14は、2つの入力信号の論理和を演算してクロック信号CLK1〜CLK4としてそれぞれ出力する。テスト用クロック信号TCLKは、本半導体回路をテストする際にテスタから出力される。当該テスタはテスト用クロック信号TCLKに同期して動作する。
発振防止回路15は、本半導体回路をテストする際にリング発振器16が発振することを防止する回路である。図2は発振防止回路15の構成を示す図である。図2に示されるように、発振防止回路15は、AND回路150〜152と、インバータ回路153〜155と、NOR回路156と、OR回路157とを備えている。AND回路150は、データDOUT0と、テストイネーブル信号TENとの論理積を演算して出力する。AND回路151は、データDOUT1と、テストイネーブル信号TENとの論理積を演算して出力する。インバータ回路153はAND回路150の出力信号を反転して制御信号CS0として出力する。インバータ回路154はAND回路151の出力信号を反転して制御信号CS1として出力する。NOR回路156は、AND回路150,151の出力信号の否定論理和を演算して出力する。OR回路157は、NOR回路156の出力信号とデータDOUT2との論理和を演算して出力する。AND回路152は、OR回路157の出力信号と、テストイネーブル信号TENとの論理積を演算して出力する。インバータ回路155は、AND回路152の出力信号を反転して制御信号CS2として出力する。なお、テストイネーブル信号TENはテスタから出力される。
次に、本実施の形態1に係る半導体回路の動作について説明する。テストイネーブル信号TENがLowレベルに設定されると、本半導体回路は通常動作モードとなる。このとき、テスト用クロック信号TCLKはOR回路11〜14には入力されず、テスト動作中においてテスト用クロック信号TCLKが入力されるOR回路11〜14の一方の入力端子はすべてLowレベルに固定される。テストイネーブル信号TENがLowレベルに設定されると、制御信号CS0〜CS2はすべてHighレベルとなり、リング発振器16が発振し、当該リング発振器16からは、テスト用クロック信号TCLKとは非同期の所定周波数のリングクロック信号RCLKA〜RCLKCが出力される。OR回路11〜14の一方の入力端子がLowレベルに固定されると、OR回路11,12からはともにリングクロック信号RCLKAが出力され、OR回路13,14からはリングクロック信号RCLKB,RCLKCがそれぞれ出力される。よって、フリップフロップ回路1〜3はリングクロック信号RCLKAに同期して動作し、フリップフロップ回路4はリングクロック信号RCLKBに同期して動作し、フリップフロップ回路5はリングクロック信号RCLKCに同期して動作する。
一方で、テストイネーブル信号TENがHighレベルに設定されると、本半導体回路はテスト動作モードとなる。このとき、OR回路11〜14のそれぞれにはテスト用クロック信号TCLKが入力される。テスト動作モードでは、テスタからテストデータが出力され、当該テストデータが入力データDINとしてフリップフロップ回路1に入力される。
テストイネーブル信号TENがHighレベルに設定されると、制御信号CS0〜CS2は、フリップフロップ回路3〜5から出力されるデータDOUT0〜DOUT2に応じて変化する。そして、テスト動作モードにおいては、データDOUT0〜DOUT2がどのような値となっても、制御信号CS0〜CS2の少なくとも一つがLowレベルとなるように、言い換えれば、制御信号CS0〜CS2のすべてがHighレベルとならないように、発振防止回路15は動作する。これにより、テスト動作モードにおけるリング発振器16の発振が防止される。
本実施の形態1では、テスト動作モードでは、制御信号CS0〜CS2はテスト用クロック信号TCLKに同期して変化する。そして、テスト動作モードでは、リング発振器16は発振せず、リングクロック信号RCLKA,RCLKB,RCLKCは、制御信号CS0〜CS2に応じて変化する。したがって、テスト動作モードでは、リングクロック信号RCLKA,RCLKB,RCLKCのそれぞれはテスト用クロック信号TCLKに同期して変化する。
図3はテスト動作モードにおける本半導体回路の動作を示す図である。図4はテスト動作モードにおける制御信号CS0〜CS2の信号レベルの組合せの例を示す図である。図3の期間T1は、図4に示されるように、制御信号CS0,CS1,CS2がそれぞれHighレベル、Lowレベル、Highレベルであるときの期間を示しており、期間T2,T3は、制御信号CS0,CS1,CS2がそれぞれLowレベル、Highレベル、Highレベルであるときの期間を示している。図3に示される例では、テスト用クロック信号TCLKに同期して制御信号CS0〜CS2がそれぞれHighレベル、Lowレベル、Highレベルとなると、リングクロック信号RCLKA,RCLKB,RCLKCは、テスト用クロック信号TCLKに同期してそれぞれLowレベル、Lowレベル、Highレベルとなっている。そして、制御信号CS2のレベルはそのままで制御信号CS0,CS1がテスト用クロック信号TCLKに同期してそれぞれLowレベル、Highレベルとなると、リングクロック信号RCLKA,RCLKCは、テスト用クロック信号TCLKに同期してそれぞれHighレベル、Lowレベルとなっている。なお、このとき、リングクロック信号RCLKBのレベルは変化しない。このように、テスト動作モード時では、リングクロック信号RCLKA,RCLKB,RCLKCの発振は停止し、リングクロック信号RCLKA,RCLKB,RCLKCはテスト用クロック信号TCLKに同期して変化する。
また、図3に示されるように、リングクロック信号RCLKAがLowレベルのときにはテスト用クロック信号TCLKがクロック信号CLK1としてOR回路11から出力され、リングクロック信号RCLKAがHighレベルのときにはクロック信号CLK1はLowレベルに固定され、OR回路11からはテスト用クロック信号TCLKが出力されない。このように、テスト動作モードでは、リングクロック信号RCLKAは、テスト用クロック信号TCLKをクロック信号CLK1として出力するかどうか、つまりフリップフロップ回路1にテスト用クロック信号TCLKを入力するかどうかを決定する条件信号として機能する。
同様に、テスト動作モードでは、OR回路12に入力されるリングクロック信号RCLKAは、フリップフロップ回路2,3にテスト用クロック信号TCLKを入力するかどうかを決定する条件信号として機能し、リングクロック信号RCLKBは、フリップフロップ回路4にテスト用クロック信号TCLKを入力するかどうかを決定する条件信号として機能し、リングクロック信号RCLKCは、フリップフロップ回路5にテスト用クロック信号TCLKを入力するかどうかを決定する条件信号として機能する。
図5は従来技術を本半導体回路に適用した場合のリングクロック信号RCLKAと本実施の形態1に係る半導体回路のリングクロック信号RCLKAとの比較を示す図である。図5(a)は従来技術を本半導体回路に適用した場合のリングクロック信号RCLKAの変化の様子を示しており、図5(b)は本実施の形態1に係る半導体回路でのリングクロック信号RCLKAの変化の様子を示している。図5(a)に示されるように、従来技術を使用した場合には、テスト中のリングクロック信号RCLKAはLowレベルに固定され、上述したセレクタ回路から出力されるテスト用クロック信号TCLKがフリップフロップ回路1にそのまま入力される。
一方で、図5(b)に示されるように、本実施の形態1では、テスト中のリングクロック信号RCLKAの信号レベルは固定されておらず、テスト用クロック信号TCLKに同期して変化する。したがって、フリップフロップ回路1へのテスト用クロック信号TCLKの入力は、当該テスト用クロック信号TCLKに同期して制御される。同様に、フリップフロップ回路2〜5へのテスト用クロック信号TCLKの入力は、当該テスト用クロック信号TCLKに同期して制御される。
テスト動作モードでは、本半導体回路に入力されたテストデータは、フリップフロップ回路1を介して組合せ回路6に入力される。そして、当該テストデータに対する組合せ回路6の出力データは、フリップフロップ回路2を介して組合せ回路7に入力され、当該組合せ回路7の出力データはフリップフロップ回路3〜5に設定される。そして、フリップフロップ回路3〜5の出力データ、つまりデータDOUT0〜DOUT2はテスト結果データとして出力バッファ回路8〜10を介してテスタに入力される。
このように、フリップフロップ回路1〜5及び組合せ回路6,7から成る被テスト回路にはテストデータが入力され、当該テストデータに対する被テスト回路の出力データがテスト結果データとしてテスタに入力される。テスタでは、テスト結果データと、予め記憶する期待値データとの比較が行われ、その比較結果に基づいて本半導体回路の製造の良否が判定される。
上述のように、テスト動作モードでは、リングクロック信号RCLKA〜RCLKCによってフリップフロップ回路1〜5へのテスト用クロック信号TCLKの入力が制御されるため、リング発振器16において縮退故障が発生して当該リング発振器16の発振が停止し、リングクロック信号RCLKA〜RCLKCの信号レベルが固定されている場合には、データDOUT0〜DOUT2の値は変化しない。したがって、テスタにおいて、データDOUT0〜DOUT2と、予め記憶する期待値データとの比較を行うことによって、リング発振器16での故障も検出することができる。
以上のように、本実施の形態1に係る半導体回路では、テスト動作モード時では、リングクロック信号RCLKA〜RCLKCがテスト用クロック信号TCLKと同期して変化するとともに、当該リングクロック信号RCLKA〜RCLKCが、テスト用クロック信号TCLKをフリップフロップ回路1〜5に入力するかどうかの条件信号として使用される。したがって、テスト用クロック信号TCLKと同期して動作するテスタを使用して、リング発振器16を含めて本半導体回路のテストを実行することができる。よって、リング発振器16とその他の回路とを別々にテストする必要がなく、テストパターンの減少とテスト時間の短縮とが可能となる。その結果、テスト効率が向上する。
さらに、リング発振器16の出力を直接観測する必要がないことから、当該リング発振器16の故障検出を容易に行うことができ、テスト効率が向上する。
また、従来技術のように、セレクタ回路を使用して、フリップフロップ回路1〜5にテスト用クロック信号TCLKを入力するのか、リング発振器16からのクロック信号を入力するのかを切り替える場合には、当該セレクタ回路に対する故障検出をどのようにして行うのかが問題となるが、本実施の形態1に係る半導体回路ではそのような問題も発生しない。
また、本実施の形態1では、テスト動作モード時では、リングクロック信号RCLKA〜RCLKCがテスト用クロック信号TCLKと同期して変化するとともに、当該リングクロック信号RCLKA〜RCLKCが、テスト用クロック信号TCLKをフリップフロップ回路1〜5に入力するかどうかの条件信号として使用されるため、ASIC(Application Specific Integrated Circuit)等の設計で使用されるEDA(Electronic Design Automation)ツールを使用して、テスト動作時における本半導体回路のタイミング調整や静的タイミング検証の実施が可能となる。したがって、テスト動作時のフリップフロップ回路1〜5において、シフト動作中のデータを正しく保持することができるように、本半導体回路を容易に設計することができる。なお、この場合には、テスト用クロック信号TCLKはEDAツールから出力されることになる。
また、本実施の形態1に係るリング発振器16では、リング状の信号伝達経路における3箇所で個別に信号伝達を停止することが可能であるため、テスト動作モードにおいては、当該リング状の信号伝達経路を、図6に示されるように、3つの経路R1〜R3に分けて考えることができる。本半導体回路では、制御信号CS0〜CS2のうち、制御信号CS2のみがLowレベルのときには経路R1,R2を足し合わせた経路での故障を検出することができ、制御信号CS1のみがLowレベルのときには経路R1,R3を足し合わせた経路での故障を検出することができ、制御信号CS0のみがLowレベルのときには経路R2,R3を足し合わせた経路での故障を検出することができる。よって、リング状の信号伝達経路のすべてについて故障検出できる。
このように、リング発振器16では、制御信号CS0〜CS2に応じてリング状の信号伝達経路における複数個所で個別に信号伝達を停止することが可能であるため、制御信号CS0〜CS2を変化させて信号伝達を停止する個所を変化させることによって、当該リング状の信号伝達経路のすべてについてテストすることができる。その結果、リング発振器16に発生した故障を確実に検出することができる。
さらに、リング発振器16での信号伝達経路において信号伝達を停止できる個所を複数設けることによって、信号伝達を停止するためのLowレベルの制御信号CS0〜CS2をリング発振器16に入力してから、リングクロック信号RCLKA〜RCLKの発振が停止するまでの時間を短くすることができる。
例えば、リング発振器16において、仮にAND回路160及びNAND回路162をともにインバータ回路に置き換え、リング発振器16の発振が制御信号CS2のみでしか制御できないとすると、制御信号CS2が入力される論理素子と、リングクロック信号RCLKBを出力する論理素子との間には、両素子を含めて6個の論理素子が存在する。したがって、Lowレベルの制御信号CS2をリング発振器16に入力してから、リングクロック信号RCLKBの発振が停止するまでには、少なくとも、6個の論理素子での信号遅延時間を加算しただけの時間が必要となる。
一方で、本実施の形態1に係るリング発振器16では、リングクロック信号RCLKBを出力するAND回路160の一方入力に制御信号CS0を入力することができるため、Lowレベルの制御信号CS0をリング発振器16に入力してから、リングクロック信号RCLKBの発振が停止するまでに必要な時間は、AND回路160だけでの信号遅延時間に依存する。したがって、リング発振器16に対して信号伝達を停止するための信号を入力してからその発振が停止するまでの時間を短縮することができる。よって、テスト用クロック信号TCLKの周波数を増加させることができ、テスト時間をさらに短縮することができる。
また、本実施の形態1のように、テスト動作モード時において制御信号CS0〜CS2がリング発振器16を発振させる条件となることを防止する発振防止回路15を設けることによって、テスト動作モード時においてリングクロック信号RCLKA〜RCLKCの発振を確実に防止することができる。したがって、テスト動作モード時において、リングクロック信号RCLKA〜RCLKCをテスト用クロック信号TCLKに確実に同期させることができる。よって、リング発振器16を含めた本半導体回路のテストを確実に行うことができる。
なお、本実施の形態1に係るリング発振器16は、リング状の信号伝達経路において3個所で信号伝達を停止できるように構成しているが、図7に示されるように6個所で信号伝達を停止できるように構成しても良い。図7に示されるリング発振器16は、図1,6に示されるリング発振器16において、インバータ回路163〜165の替わりにNAND回路163a〜165aをそれぞれ設けたものである。NAND回路163aにおいては、前段のAND回路161の出力信号が入力される入力端子とは別の入力端子に制御信号CS0が入力される。NAND回路164aにおいては、前段のNAND回路163aの出力信号が入力される入力端子とは別の入力端子に制御信号CS1が入力される。NAND回路165aにおいては、前段のNAND回路164aの出力信号が入力される入力端子とは別の入力端子に制御信号CS2が入力される。リング発振器16を図7に示されるような構成に変更することによって、EDAツールを用いてリング発振器16のタイミング調整を実行しやすくなるとともに、より細かいタイミング調整が可能となる。
また、本実施の形態1に係る半導体回路ではリング発振器16が一つだけしか設けられていなかったが、2つ以上のリング発振器を備える半導体回路にも本発明を適用することができる。図8は、本実施の形態1に係る半導体回路において、リング発振器16とは別にリング発振器26を設けた場合の構成例を部分的に示す図である。図8に示されるように、リング発振器26は、AND回路260,261と、NAND回路262と、インバータ回路263〜268とを備えている。インバータ回路263〜266と、AND回路260と、インバータ回路267と、NAND回路262と、インバータ回路268と、AND回路261とは、この順でリング状に直列接続されている。AND回路260では、前段のインバータ回路266の出力と接続されている入力端子とは別の入力端子には制御信号CS0が入力される。NAND回路262では、前段のインバータ回路267の出力と接続されている入力端子とは別の入力端子には制御信号CS1が入力される。AND回路261では、前段のインバータ回路268の出力と接続されている入力端子とは別の入力端子には制御信号CS2が入力される。OR回路11には、リングクロック信号RCLKAの替わりに、AND回路261の出力がリングクロック信号RCLKA2として入力される。その他の構成について図1に示される構成と同様である。このように、複数のリング発振器を備えている半導体回路においても、各リング発振器を同様の構成にすることによって、上述の効果が得られる。
また、本実施の形態1では、本半導体回路をテストしている間は、テストイネーブル信号TENはHighレベルに固定されているため、発振防止回路15では、テストイネーブル信号TENが入力されるAND回路150〜152の入力端子の信号レベルが縮退故障によりHighレベルに固定されていても、それを検出することができない。そこで、テスタから、テストイネーブル信号TENとは別の第2テストイネーブル信号TEN2を出力させて、図9に示されるように、AND回路150,151の一方の入力端子に、テストイネーブル信号TENの替わりに第2テストイネーブル信号TEN2を入力する。テスト期間中では、第2テストイネーブル信号TEN2は、基本的にはHighレベルに設定されるが、ときどきHighレベルからLowレベルに変化する。テスト期間中において、第2テストイネーブル信号TEN2がLowレベルに設定されると、テストイネーブル信号TENが常にHighレベルであることから、縮退故障が発生していなければ、制御信号CS0,CS1,CS2は、それぞれHighレベル、Highレベル、Lowレベルに設定される。そうすると、リングクロック信号RCLKA〜RCLKCはすべてLowレベルとなり、データDOUT0〜DOUT2は変化しなくなる。したがって、第2テストイネーブル信号TEN2の変化の前後においてデータDOUT0〜DOUT2を観測することによって、第2テストイネーブル信号TEN2が入力される本半導体回路の外部入力端子から、AND回路150,151における第2テストイネーブル信号TEN2が入力される入力端子までの信号ラインの縮退故障、つまり本半導体回路において第2テストイネーブル信号TEN2が伝搬する信号ラインの縮退故障を検出することができる。
実施の形態2.
図10は本発明の実施の形態2に係る半導体回路の構成を示す図である。本実施の形態2に係る半導体回路は、故障検出に関してセルフテストを実行することができる。図10に示されるように、本実施の形態2に係る半導体回路は、I/F回路51と、制御回路52と、圧縮回路53とを備えており、これらの回路は例えば同一の半導体基板に形成されている。I/F回路51は、本半導体回路の外部の回路との間で信号の受け渡しを行う。制御回路52は、CPU等を含み、本半導体回路全体の動作を主として管理する。圧縮回路53は、制御回路52から出力される信号をM系列を使用して拡散して乱数データを生成し、当該乱数データを圧縮して出力する。圧縮回路53からは、例えば32ビットのデータDOUT<31:0>が出力される。
図10は本発明の実施の形態2に係る半導体回路の構成を示す図である。本実施の形態2に係る半導体回路は、故障検出に関してセルフテストを実行することができる。図10に示されるように、本実施の形態2に係る半導体回路は、I/F回路51と、制御回路52と、圧縮回路53とを備えており、これらの回路は例えば同一の半導体基板に形成されている。I/F回路51は、本半導体回路の外部の回路との間で信号の受け渡しを行う。制御回路52は、CPU等を含み、本半導体回路全体の動作を主として管理する。圧縮回路53は、制御回路52から出力される信号をM系列を使用して拡散して乱数データを生成し、当該乱数データを圧縮して出力する。圧縮回路53からは、例えば32ビットのデータDOUT<31:0>が出力される。
図11は制御回路52の構成を示す図である。図11では制御回路52の構成のうち本発明に関係する部分だけを示している。図11に示されるように、制御回路52には、フリップフロップ回路520〜521と、AND回路やOR回路などのロジック回路で構成されている組合せ回路522,523と、セレクタ回路524,525と、テスト用クロック生成回路526と、セレクト信号生成回路527と、OR回路528,529と、マスク回路530と、上述のリング発振器16,26及び発振防止回路15とが設けられている。
セレクタ回路524,525のそれぞれには、圧縮回路53から出力されるデータD<31:0>のうち最下位のデータDOUT<0>が入力される。そして、セレクタ回路524,525には、組合せ回路522,523の出力データがそれぞれ入力される。セレクタ回路524は、組合せ回路522の出力データ及びデータDOUT<0>のどちらか一方を、セレクト信号生成回路527から出力されるセレクト信号SLTに基づいて選択して出力する。具体的には、セレクタ回路524は、セレクト信号SLTがHighレベルのときにはデータDOUT<0>を出力し、Lowレベルのときには組合せ回路522の出力データを出力する。フリップフロップ回路520は、クロック信号CLK11が立ち上がるたびにセレクタ回路524の出力データを保持して組合せ回路523及び圧縮回路53に出力する。セレクタ回路525は、組合せ回路523の出力データ及びデータDOUT<0>のどちらか一方をセレクト信号SLTに基づいて選択して出力する。具体的には、セレクタ回路525は、セレクト信号SLTがHighレベルのときにはデータDOUT<0>を出力して、Lowレベルのときには組合せ回路523の出力データ出力する。フリップフロップ回路521は、クロック信号CLK12が立ち上がるたびにセレクタ回路525の出力データを保持して圧縮回路53に出力する。
本実施の形態2に係る発振防止回路15には、データDOUT<31:0>のうち下位3ビットのデータDOUT<2:0>が入力される。つまり、本発振防止回路15は、上述の図2に示される回路において、データDOUT0,DOUT1,DOUT2の替わりにデータDOUT<0>,DOUT<1>,DOUT<2>をそれぞれ入力したものである。そして、発振防止回路15から出力される制御信号CS0は、リング発振器16のAND回路160とリング発振器26のAND回路260とに入力され、制御信号CS1は、リング発振器16のNAND回路162とリング発振器26のNAND回路262とに入力され、制御信号CS2は、リング発振器16のAND回路161とリング発振器26のAND回路261とに入力される。
マスク回路530は、制御回路52をテストする際にI/F回路51の出力信号が制御回路52に入力されることを防止する。マスク回路530は、テスタから出力される上述のテストイネーブル信号TENがLowレベルのときにはI/F回路51の出力信号を制御回路52に入力し、Highレベルのときは自身の出力信号をLowレベルに固定して、I/F回路51の出力信号が制御回路52に入力されないようにする。
リング発振器16から出力されるリングクロック信号RCLKAはOR回路528に入力される。また、リング発振器26から出力されるリングクロック信号RCLKA2はOR回路529に入力される。
上述の実施の形態1では、テスト用クロック信号TCLKをテスタで生成していたが、本実施の形態2では、制御回路52のテスト用クロック生成回路526でテスト用クロック信号TCLKを生成している。テスト用クロック生成回路526で生成されたテスト用クロック信号TCLKはOR回路528,529のそれぞれに入力される。OR回路528は、入力された2つの信号の論理和を演算してクロック信号CLK11として出力し、OR回路529は、入力された2つの信号の論理和を演算してクロック信号CLK12として出力する。
図11では、マスク回路530と圧縮回路53との間には、互いに直列接続された組合せ回路522、セレクタ回路524及びフリップフロップ回路520から成る単位回路と、互いに直列接続された組合せ回路523、セレクタ回路525及びフリップフロップ回路521から成る単位回路の2つの単位回路しか示されていないが、互いに直列接続された組合せ回路、セレクタ回路及びフリップフロップ回路から成る他の単位回路も複数存在している。そして、これらの複数の単位回路は直列接続されている。各単位回路では、セレクタ回路は、前段の組合せ回路の出力データと、圧縮回路53からのデータDOUT<0>とのどちらか一方をセレクト信号SLTに基づいて選択して出力し、フリップフロップ回路のクロック端子には、クロック信号CLK11,CLK12のどちらか一方が入力される。以後、これらの互いに直列接続された複数の単位回路を「単位回路群」と呼ぶ。
さらに、マスク回路530と圧縮回路53との間には、圧縮回路53からのデータDOUT<0>が入力される単位回路群以外にも、データDOUT<1>などのデータDOUT<31:0>の他のデータが入力される単位回路群が複数並列に設けられている。そして、これらの単位回路群における各フリップフロップ回路の出力データは圧縮回路53に入力され、圧縮回路53は当該出力データから乱数データを生成する。
また、制御回路52の各組合せ回路には、マスク回路530の出力信号も入力されている。したがって、各組合せ回路には、テストイネーブル信号TENがLowレベルのときにはI/F回路51の出力信号も入力される。
図12はテスト用クロック生成回路526の構成を示す図である。図12に示されるように、テスト用クロック生成回路526は、OR回路526aと、AND回路526b,526cと、フリップフロップ回路526dと、カウンタ回路526eとを備えている。カウンタ回路526eは、OR回路526aの出力信号がHighレベルの間、外部クロック信号ECLKの立ち下がり回数をカウントする。カウンタ回路526eは、外部クロック信号ECLKの立ち下がり回数のカウントを開始するとLowレベルからHighレベルとなり、当該カウントが終了するとHighレベルからLowレベルとなるカウンタ出力信号COUTを出力する。なお、外部クロック信号ECLKは、本半導体回路をテストする際に使用されるテスタから入力される。
AND回路526bは、カウンタ出力信号COUTと、テストイネーブル信号TENとの論理積を演算して出力する。フリップフロップ回路526dは、外部クロック信号ECLKが立ち上がるたびにAND回路526bの出力信号を保持して出力する。AND回路526cは、フリップフロップ回路526dの出力信号と外部クロック信号ECLKとの論理積を演算してテスト用クロック信号TCLKとして出力する。
また、フリップフロップ回路526dの出力信号はビジー信号BSYとしてセレクト信号生成回路527に入力されるとともに、OR回路526aに入力される。OR回路526aは、テスト開始を通知するテストスタート信号TSTARTとビジー信号BSYとの論理和を演算してカウンタ回路526eに出力する。テストスタート信号TSTARTは、所定時間Highレベルを示すパルス信号であって、テスタから出力される。
図13はテスト用クロック生成回路526の動作を示す図である。図13に示されるように、テストイネーブル信号TENがHighレベルとなり、パルス状のテストスタート信号TSTARTがテスト用クロック生成回路526に入力されると、OR回路526aの出力信号はLowレベルからHighレベルに変化する。そうすると、カウンタ回路526eは、直後の外部クロック信号ECLKの立ち下がりでカウントアップ動作を開始するとともに、カウンタ出力信号COUTをLowレベルからHighレベルに変化させる。そして、カウンタ回路526eは、カウント値が所定値、例えば“FF”となると、内部でキャリー信号を生成する。このキャリー信号は、図13に示されるように、カウント値が“FF”となる外部クロック信号ECLKの立下りから、次の立ち下がりまでHighレベルを示す正のパルス信号である。カウンタ回路526eは、キャリー信号からリセット信号を生成し、当該リセット信号を、自身が有するフリップフロップ回路のリセット端子に入力し、カウント値をリセットする。そうすると、カウンタ出力信号COUTはHighレベルからLowレベルに変化する。このリセット信号は、図13に示されるように、キャリー信号がHighレベルからLowレベルに変化する外部クロック信号ECLKの立ち下がりから、次の立ち下がりまでLowレベルを示す負のパルス信号である。なお、リセット信号がLowレベルの間はカウンタ値は“00”を維持する。
一方で、ビジー信号BSYは、カウンタ出力信号COUTがHighレベルとなると、その直後の外部クロック信号ECLKの立ち上がりでLowレベルからHighレベルに変化する。そうすると、AND回路526cからは、外部クロック信号ECLKがテスト用クロック信号TCLKとして出力されるようになる。そして、カウンタ回路526eでのカウント値が“FF”となり、その後、当該カウント値がリセットされて“00”となると、その直後の外部クロック信号ECLKの立ち上がりでビジー信号BSYはHighレベルからLowレベルに変化する。そうすると、OR回路526aの出力信号がHighレベルからLowレベルに変化する。その後、新たにテストスタート信号TSTARTが入力されるとテスト用クロック生成回路526は同様の動作を行う。
このように、テスト用クロック生成回路526にテストスタート信号TSTARTが入力されると、当該テスト用クロック生成回路526からは、所定周波数のテスト用クロック信号TCLKが所定クロック数だけ出力される。ここで、「クロック数」とは、クロック信号の立ち上がり回数あるいは立ち下がり回数を意味している。なお、ビジー信号BSYは、本半導体回路の外部出力端子に出力して、本半導体回路の外部でモニタできるようにしても良い。
図14はセレクト信号生成回路527の動作を示す図である。図14に示されるように、セレクト信号生成回路527は、ビジー信号BSYがLowレベルのときにはLowレベルのセレクト信号SLTを出力し、Highレベルのときにはテスト用クロック信号TCLKが立ち上がるたびにセレクト信号SLTの信号レベルを変化させる。図14では、セレクト信号SLTは、テスト用クロック信号TCLKの立ち上がりと同時に変化しているが、実際には、素子の動作遅延のために、テスト用クロック信号TCLKの立ち上がりから若干遅れて変化する。
OR回路528,529がともにテスト用クロック信号TCLKを出力している場合には、セレクト信号SLTがHighレベルのときのテスト用クロック信号TCLKの立ち上がりで、データDOUT<0>が各単位回路のフリップフロップ回路にセットされる(図14の“セット”)。そして、セレクト信号SLTがLowレベルとなり、テスト用クロック信号TCLKの次の立ち上がりまでに、データDOUT<0>が入力された後段の組合せ回路の出力が確定し(図14の“ロード”)、次のテスト用クロック信号TCLKの立ち上がりで当該組合せ回路の出力データが後段のフリップフロップ回路に取り込まれる(図14の“キャプチャ”)。
本実施の形態2では、圧縮回路53が出力するデータDOUT<31:0>がテストデータとして機能し、当該テストデータに対する組合せ回路の出力信号がフリップフロップ回路を介して圧縮回路53に入力される。そして、圧縮回路53は入力されたデータに基づいて乱数データを生成し、当該乱数データを圧縮したデータをテストデータとして出力する。この動作が繰り返して実行されることによって、外部からテストデータを入力することなく本半導体回路のテストを実行することができる。
図15は圧縮回路53から出力されるデータDOUT<31:0>の変化の様子を示す図である。図15では、データDOUT<31:0>のうちの任意の1ビットのデータをデータDOUT<x>(0≦x≦31)として示している。図15に示されるように、圧縮回路53は、テストが開始し、テスト用クロック信号TCLKが入力されると、当該テスト用クロック信号TCLKの立ち上がりをカウントし、カウントしている間、データDOUT<31:0>をすべてLowレベルあるいはHighレベルに固定する(図15ではLowレベルに固定された場合を示している)。そして、圧縮回路53は、テスト用クロック信号TCLKの立ち上がりを所定数カウントすると、制御回路52の出力信号から乱数データを生成し、それを圧縮してデータDOUT<31:0>として出力する。
このように、圧縮回路53から出力されるデータDOUT<31:0>は、テストが開始すると、所定時間の間、信号レベルが固定されるため、テスト開始段階において制御回路52の各フリップフロップ回路は初期化される。よって、制御回路52のフリップフロップ回路として、リセット端子を有していないフリップフロップ回路を使用することができ、本半導体回路の回路規模を低減することができるとともに、フリップフロップ回路のリセットラインの故障検出を行う必要も無い。その結果、テスト時間が短縮し、テスト効率が向上する。
次に、本実施の形態2に係る半導体回路の通常動作及びテスト動作について説明する。まず通常動作について説明する。テストイネーブル信号TENがLowレベルに設定されると、本半導体回路は通常動作モードになる。このとき、テスト用クロック生成回路526からはテスト用クロック信号TCLKは出力されずに、OR回路528,529の一方の入力端子はLowレベルに固定される。また、制御信号CS0〜CS2はすべてHighレベルとなり、リング発振器16,26がともに発振し、OR回路528の他方の入力端子には所定周波数のリングクロック信号RCLKAが入力され、OR回路529の他方の入力端子には所定周波数のリングクロック信号RCLKA2が入力される。これにより、OR回路528,529からはそれぞれリングクロック信号RCLKA,RCLKA2が出力される。よって、フリップフロップ回路520はリングクロック信号RCLKAに同期して動作し、フリップフロップ回路521はリングクロック信号RCLKA2に同期して動作する。また、マスク回路530からはI/F回路51の出力信号が出力され、制御回路52の各組合せ回路に入力される。
次に、本半導体回路のテスト動作について説明する。図16は本半導体回路のテスト動作を示すフローチャートである。ステップs1において、テストイネーブル信号TENがHighレベルに設定されると、本半導体回路はテスト動作モードとなる。そして、ステップs2において、テストスタート信号TSTARTが入力されると、ステップs3において、テスト用クロック生成回路526のカウンタ回路526eは外部クロック信号ECLKの立ち下がりのカウントを開始する。そうすると、テスト用クロック生成回路526から、テスト用クロック信号TCLKが出力される。
ステップs1においてテストイネーブル信号TENがHighレベルに設定されると、制御信号CS0〜CS2は、圧縮回路53から出力されるデータDOUT<2:0>に応じて変化する。その結果、実施の形態1と同様に、リングクロック信号RCLKAは、フリップフロップ回路520にテスト用クロック信号TCLKを入力するかどうかを決定する条件信号として機能し、リングクロック信号RCLKA2は、フリップフロップ回路521にテスト用クロック信号TCLKを入力するかどうかを決定する条件信号として機能する。
ステップs3において、テスト用クロック生成回路526でのテスト用クロック信号TCLKの出力が開始すると、被テスト回路としての単位回路群に入力された、圧縮回路53からのテストデータは、セレクタ回路及びフリップフロップ回路を介して組合せ回路に入力される。そして、テストデータに対する組合せ回路の出力データが、後段のセレクタ回路及びフリップフロップ回路を介して圧縮回路53にテスト結果データとして入力される。
このように、被テスト回路にはテストデータが入力され、当該テストデータに対する被テスト回路の出力データがテスト結果データとして圧縮回路53に入力される。圧縮回路53は、入力されたテスト結果データに応じて変化するデータDOUT<31:0>を生成して出力し、当該データDOUT<31:0>はテスタに入力される。
その後、ステップs4において、テスタでは、データDOUT<31:0>と、予め記憶する期待値データとの比較が行われ、その比較結果に基づいて本半導体回路の製造の良否が判定される。上述のように、テスト動作モードでは、リングクロック信号RCLKA,RCLKA2によって制御回路52中のフリップフロップ回路へのテスト用クロック信号TCLKの入力が制御されるため、リング発振器16,26において縮退故障が発生し、当該リング発振器16,26の発振が停止している場合には、データDOUT<31:0>の値は変化しない。したがって、テスタにおいて、データDOUT<31:0>と、予め記憶する期待値データとの比較を行うことによって、リング発振器16,26での故障も検出することができる。
その後、ステップs5において、カウンタ回路526eのカウント動作が終了すると、テスト用クロック生成回路526からのテスト用クロック信号TCLKの出力が停止し、本半導体回路のセルフテストが終了する。その後、新たにテストスタート信号TSTARTが本半導体回路に入力されると、次のセルフテストが開始し、本半導体回路は同様の動作を行う。
以上のように、本実施の形態2に係る半導体回路ではセルフテストを行っているため、外部からテストデータを入力する必要はなく、テスト効率が向上する。
また、本実施の形態2では、所定クロック数だけテスト用クロック信号TCLKを被テスト回路に入力しているため、外部からテスト用クロック信号TCLKを入力し続ける場合と比較して、テスト結果データに対する期待値データを作成しやすい。したがって、テスト効率が向上する。
また、本実施の形態2に係る半導体回路では、所定クロック数のテスト用クロック信号TCLKを生成する回路を内蔵しているため、テスト用クロック信号TCLKを外部から直接操作することを防止できる。そのため、本半導体回路の動作の秘匿性が向上する。
また、本実施の形態2に係るテスト用クロック生成回路526では、カウンタ回路526eでのカウント値が所定値となると、当該カウンタ回路526eを構成するフリップフロップ回路をリセットし、それによって、テスト用クロック信号TCLKの出力を停止している。したがって、当該フリップフロップ回路のリセット機能に故障が発生していれば、テスト用クロック信号TCLKはテスト用クロック生成回路526から出力され続ける。よって、テスト開始から所定時間経過しても圧縮回路53が出力するデータDOUT<31:0>が変化し続ければ、カウンタ回路526eを構成するフリップフロップ回路のリセット機能が正常に動作していないと判定することができる。
なお、本実施の形態2に係るセレクト信号生成回路527から、セレクト信号SLTと相補的に変化するセレクト信号SLTBを出力しても良い。図17はこのセレクト信号SLTBの変化の様子を示す図である。図17では、セレクト信号SLTをセレクト信号SLTAとして示している。図17に示されるように、セレクト信号SLTBは、セレクト信号SLTAがLowレベルからHighレベルに変化すると、HighレベルからLowレベルに変化する。そして、セレクト信号SLTBは、セレクト信号SLTAがHighレベルからLowレベルに変化すると、LowレベルからHighレベルに変化する。
上述のように、本半導体回路の制御回路52には、データDOUT<0>が入力される単位回路群以外にも、データDOUT<31:0>におけるデータDOUT<0>以外のデータが入力される単位回路群が複数設けられている。それらの単位回路群の少なくとも一つの各セレクタ回路に対して、セレクト信号SLTAの替わりにセレクト信号SLTBを入力する。
図14に示されるように、1種類だけのセレクト信号SLTを使用する場合には、圧縮回路53が出力するテストデータに対する被テスト回路の出力信号、つまりテスト結果データは、テスト用クロック信号TCLKの立ち上がりの2回に1回の割合で圧縮回路53に入力される。
一方で、図17に示されるような2種類のセレクト信号SLTA,SLTBを使用する場合には、セレクト信号SLTAが入力される被テスト回路からのテスト結果データと、セレクト信号SLTBが入力された被テスト回路からのテスト結果データとは、テスト用クロック信号TCLKが立ち上がるたびに交互に圧縮回路53に入力される。そのため、一定時間内により多くのテスト結果データを得ることができる。よって、テスト時間が短縮し、テスト効率が向上する。
また、本実施の形態2では、テストが開始すると、所定時間の間、データDOUT<31:0>を固定値に設定することによって、制御回路52中のフリップフロップ回路を初期化するため、基本的には、フリップフロップ回路にはリセット端子は不要である。しかしながら、通常動作モードにおいてどうしてもリセットを行う必要のあるフリップフロップ回路も存在することから、制御回路52のすべてのフリップフロップ回路をリセット端子無しの回路にすることはできない。そこで、リセット端子を有するフリップフロップ回路に対しては、テスト期間中に、定期的にリセット信号を入力することによって、当該フリップフロップ回路が正常にリセットされるかどうかを確認する。
図18は、テスト期間中にリセット端子を有するフリップフロップ回路にリセット信号を出力するリセット信号生成回路の構成を示す図である。図18では、一例として、リセット端子を有するフリップフロップ回路として上述のフリップフロップ回路520を示している。
図18に示されるように、上述のカウンタ回路526eでのカウント値をデコード回路551に入力する。デコード回路551は入力されたカウント値をデコードして、テスト用リセット信号TSIGを生成する。テスト用リセット信号TSIGはAND回路550の一方の入力端子に入力され、AND回路550の他方の入力端子には、通常動作時に使用されるリセット信号RSTBが入力される。AND回路550は、2つの入力信号の論理積を演算してフリップフロップ回路520のリセット端子に出力する。
図19はテスト用リセット信号TSIGを示す図である。セルフテストが開始すると、図19に示されるように、テスト用クロック信号TCLKの立ち上がりから次の立ち上がりまでの間、Lowレベルを示すパルス状のテスト用リセット信号TSIGが、カウンタ回路526eでのカウント値に応じて所定間隔でデコード回路551から出力される。例えば、カウンタ回路526eでのカウント値が十進数表記で“10”増加するたびにデコード回路551からテスト用リセット信号TSIGが出力される。テスト期間中では、AND回路550の一方の入力端子にはリセット信号RSTBは入力されずに当該入力端子はHighレベルに固定されることから、AND回路550からはテスト用リセット信号TSIGが出力される。したがって、フリップフロップ回路520のリセット端子にはテスト期間中に定期的にテスト用リセット信号TSIGが入力される。フリップフロップ回路520がリセットされると、その出力信号はLowレベルとなり、それに応じてデータDOUT<31:0>が変化することから、データDOUT<31:0>を確認することによって、テスト期間中においてリセット端子付きのフリップフロップ回路520が正常にリセットされたかどうかを検出することができる。
このように、カウンタ回路526eでのカウント値に応じてテスト用リセット信号TSIGをフリップフロップ回路に出力することによって、本半導体回路の回路規模をそれほど大きくすることなく、フリップフロップ回路のリセット機能をテストすることができる。
なお、テスト用リセット信号TSIGは、テスト期間中に定期的にLowレベルとなることから、上述の第2テストイネーブル信号TEN2の代わりに使用することができる。
また、制御回路52だけではなく、I/F回路51についても、制御回路52と同様の回路構成にすることによって同様の方法でセルフテストすることができる。図20はI/F回路51及び制御回路52をともに被テスト回路とした場合の本半導体回路の構成の一例を示す図である。図20に示されるように、図10に示される構成において、イネーブル信号生成回路60及びマスク回路61をさらに設ける。
I/F回路51には、制御回路52と同様に、各フリップフロップ回路の前段にセレクタ回路を設けて、当該セレクタ回路によって、圧縮回路53の出力信号と組合せ回路の出力信号とのどちらか一方を当該フリップフロップ回路に入力できるようにする。そして、I/F回路51のテスト結果を圧縮回路53に入力するために、I/F回路51と制御回路52とを接続する信号ラインとは別の信号ラインを設けて、I/F回路51内の各フリップフロップ回路の出力信号を圧縮回路53に入力するようにする。圧縮回路53は、I/F回路51からの信号と、制御回路52からの信号とに基づいて乱数データを生成し、それを圧縮してデータDOUT<31:0>として出力する。また、I/F回路51には、制御回路52と同様のセレクト信号生成回路及びテスト用クロック生成回路を設ける。本例では、I/F回路51にはリング発振器が設けられていないため、テスト用クロック生成回路から出力されるテスト用クロック信号は各フリップフロップ回路のクロック端子に直接入力される。さらに、I/F回路51には、テスト期間中、本半導体回路の外部からの信号がI/F回路51に入力されないように、制御回路52のマスク回路530と同様の回路が設けられる。
イネーブル信号生成回路60は、制御回路52で生成されるテスト用クロック信号TCLKに基づいて、I/F回路51をテストする際に使用されるI/F用テストイネーブル信号TIFENを生成して出力する。I/F用テストイネーブル信号TIFENは、I/F回路51をテストする際にはHighレベルとなり、それ以外ではLowレベルとなる。I/F回路51では、テストイネーブル信号TENの替わりにI/F用テストイネーブル信号TIFENが使用される。
マスク回路61は、制御回路52をテストする際に圧縮回路53の出力信号がI/F回路51に入力されることを防止する。マスク回路61は、I/F用テストイネーブル信号TIFENがHighレベルのとき圧縮回路53の出力信号をI/F回路51に入力し、Lowレベルのときには自身の出力信号をLowレベルに固定して、圧縮回路53の出力信号がI/F回路51に入力されないようにする。
図21はI/F用テストイネーブル信号TIFENの変化の様子を示す図である。図21に示されるように、例えば、制御回路52で生成されるテスト用クロック信号TCLKが、512クロックの間、発振しているとすると、後半の256クロックの間だけI/F用テストイネーブル信号TIFENはHighレベルとなる。
次に、図20に示される半導体回路のテスト動作について説明する。本例では、半導体回路のテスト期間において、前半半分の期間では制御回路52だけがテストされ、後半半分の期間ではI/F回路51と制御回路52との両方がテストされる。
テストイネーブル信号TENがLowレベルからHighレベルに変化すると、まず制御回路52に対するセルフテストが実行される。このとき、I/F用テストイネーブル信号TIFENはLowレベルであるため、I/F回路51には圧縮回路53の出力信号が入力されない。また、I/F回路51内のフリップフロップ回路は初期化されているため、当該I/F回路51から圧縮回路53に入力される信号はすべてLowレベル、あるいはすべてHighレベルの固定値を示す。さらに、制御回路52にはマスク回路530の働きによってI/F回路51の出力信号が入力されない。したがって、テスト期間の前半の期間では、I/F回路51の動作の影響を受けずに、制御回路52だけのテストを行うことができる。
本半導体回路のテスト期間の後半半分になると、I/F用テストイネーブル信号TIFENがLowレベルからHighレベルとなり、I/F回路51に対するセルフテストが実行される。このとき、テストイネーブル信号TENも依然としてHighレベルであるため、制御回路52に対してもセルフテストが実行される。また、制御回路52のマスク回路530にはI/F用テストイネーブル信号TIFENも入力されており、当該I/F用テストイネーブル信号TIFENがHighレベルのときには、I/F回路51の出力信号が制御回路52に入力されるようにマスク回路530は動作する。したがって、テスト期間の後半半分においては、制御回路52の組合せ回路には、I/F回路51の出力信号と、圧縮回路53の出力信号との両方が入力される。よって、後半半分のテスト期間では、制御回路52がI/F回路51の出力信号に応じて正常に動作するかについてテストすることができるとともに、I/F回路51と制御回路52とを接続する信号ラインの縮退故障も検出することができる。
このように、I/F回路51及び制御回路52をともにテストする場合において、I/F回路51の出力信号が制御回路52に入力されないようにして、まず制御回路52をテストすることは、設計段階において回路修正を行う上で非常に有効である。
I/F回路51の出力信号が制御回路52に入力された状態で当該制御回路52をテストする場合には、I/F回路51の出力信号が制御回路52のテスト結果に影響を与えるため、制御回路52をテストした後にI/F回路51をテストし、その後、I/F回路51のテスト結果に基づいて当該I/F回路51を修正すると、制御回路52に対する故障検出率に変化が生じる可能性があるため、再度制御回路52に対するテストを実行して、そのテスト結果を確認しなくてはならない。そして、再度実行したテストの結果によっては、制御回路52を修正する必要がある。
一方で、I/F回路51の出力信号が制御回路52に入力されないようにして、当該制御回路52をテストする場合には、I/F回路51の修正が制御回路52のテスト結果には影響を与えないことから、一度、制御回路52の修正が完了すれば、その後に、I/F回路51を修正したとしても制御回路52に対して再びテストを実行する必要はなく、制御回路52を再度修正する必要もない。よって、本半導体回路の修正が容易となる。
なお、圧縮回路53についてはハードウェアで構成しても良いし、ソフトウェアで構成しても良い。圧縮回路53をソフトウェアで構成した場合には、本半導体回路の実装面積を低減することができる。
実施の形態3.
図22は本発明の実施の形態3に係る半導体回路の構成を示す図である。本実施の形態3に係る半導体回路は、故障検出に関してスキャンパステストを実行することができる。本実施の形態3に係る半導体回路は、基本的には、上述の実施の形態1に係る半導体回路において、フリップフロップ回路1〜4の前段にセレクタ回路70〜74をそれぞれ設けたものである。
図22は本発明の実施の形態3に係る半導体回路の構成を示す図である。本実施の形態3に係る半導体回路は、故障検出に関してスキャンパステストを実行することができる。本実施の形態3に係る半導体回路は、基本的には、上述の実施の形態1に係る半導体回路において、フリップフロップ回路1〜4の前段にセレクタ回路70〜74をそれぞれ設けたものである。
セレクタ回路70は、テスタから出力されるスキャンイネーブル信号SENに基づいて入力データDINとスキャン入力データSDINとのどちらか一方を選択して出力する。具体的には、セレクタ回路70は、スキャンイネーブル信号SENがHighレベルのときにはスキャン入力データSDINを出力し、Lowレベルのときには入力データDINを出力する。入力データDINは通常動作時に使用されるデータであって、スキャン入力データSDINはスキャンパステスト時に使用されるテストデータである。
フリップフロップ回路1は、クロック信号CLK1が立ち上がるたびにセレクタ回路70の出力信号を保持して組合せ回路6及びセレクタ回路71に出力する。セレクタ回路71は、スキャンイネーブル信号SENに基づいてフリップフロップ回路1の出力信号と組合せ回路6の出力信号とのどちらか一方を選択して出力する。具体的には、セレクタ回路71は、スキャンイネーブル信号SENがHighレベルのときにはフリップフロップ回路1の出力信号を出力し、Lowレベルのときには組合せ回路6の出力信号を出力する。
フリップフロップ回路2は、クロック信号CLK2が立ち上がるたびにセレクタ回路71の出力信号を保持して組合せ回路7及びセレクタ回路72〜74に出力する。セレクタ回路72〜74のそれぞれは、スキャンイネーブル信号SENに基づいてフリップフロップ回路2の出力信号と組合せ回路7の出力信号とのどちらか一方を選択して出力する。具体的には、セレクタ回路72〜74のそれぞれは、スキャンイネーブル信号SENがHighレベルのときにはフリップフロップ回路2の出力信号を出力し、Lowレベルのときには組合せ回路7の出力信号を出力する。
フリップフロップ回路3は、クロック信号CLK2が立ち上がるたびにセレクタ回路72の出力信号を保持してデータDOUT1として出力する。フリップフロップ回路4は、クロック信号CLK3が立ち上がるたびにセレクタ回路73の出力信号を保持してデータDOUT2として出力する。フリップフロップ回路5は、クロック信号CLK4が立ち上がるたびにセレクタ回路74の出力信号を保持してデータDOUT2として出力する。出力バッファ回路8〜10はデータDOUT0〜DOUT2をそれぞれ受けて出力する。その他の構成については実施の形態1に係る半導体回路と同様であるため、その説明は省略する。
次に、本実施の形態3に係る半導体回路の動作について説明する。テストイネーブル信号TENがLowレベルに設定されると、本半導体回路は通常動作モードとなる。このとき、スキャンイネーブル信号SENはLowレベルに設定される。また、テスト用クロック信号TCLKはOR回路11〜14には入力されず、テスト動作中においてテスト用クロック信号TCLKが入力されるOR回路11〜14の一方の入力端子はすべてLowレベルに固定される。実施の形態1と同様に、テストイネーブル信号TENがLowレベルに設定されると、リング発振器16が発振し、フリップフロップ回路1〜3はリングクロック信号RCLKAに同期して動作し、フリップフロップ回路4はリングクロック信号RCLKBに同期して動作し、フリップフロップ回路5はリングクロック信号RCLKCに同期して動作する。
一方で、テストイネーブル信号TENがHighレベルに設定されると、本半導体回路はテスト動作モードとなる。テスト動作モードでは、OR回路11〜14のそれぞれにはテスト用クロック信号TCLKが入力され、セレクタ回路70にはスキャン入力データSDINが入力される。
テスト動作モードでは、まず、スキャンイネーブル信号SENがHighレベルとなる。そうすると、フリップフロップ回路1〜3が直列接続されて「スキャンパス」と呼ばれるシフトレジスタを構成する。同様に、フリップフロップ回路1,2,4が直列接続されてスキャンパスを構成し、フリップフロップ回路1,2,5が直列接続されてスキャンパスを構成する。
OR回路11〜14からテスト用クロック信号TCLKが出力されている場合には、セレクタ回路70から出力されたスキャン入力データSDINは、テスト用クロック信号TCLKの立ち上がりに同期してフリップフロップ回路1に設定される。テスト用クロック信号TCLKが新たに立ち上がると、フリップフロップ回路1内のスキャン入力データSDINは後段のフリップフロップ回路2にシフトし、フリップフロップ回路1には新たなスキャン入力データSDINが設定される。そして、テスト用クロック信号TCLKが新たに立ち上がると、フリップフロップ回路2内のスキャン入力データSDINは後段のフリップフロップ回路3〜5にシフトし、フリップフロップ回路1内のスキャン入力データSDINはフリップフロップ回路2にシフトし、フリップフロップ回路1には新たなスキャン入力データSDINが設定される。
このようにして、フリップフロップ回路1〜5のすべてにスキャン入力データSDINが設定されると、今度はスキャンイネーブル信号SENはLowレベルに設定される。そうすると、次のテスト用クロック信号TCLKの立ち上がりで、フリップフロップ回路1が出力するスキャン入力データSDINに対する組合せ回路6の出力信号がフリップフロップ回路2に設定されるとともに、フリップフロップ回路2が出力するスキャン入力データSDINに対する組合せ回路7の出力信号がフリップフロップ回路3〜5に設定される。これにより、フリップフロップ回路2〜5にはスキャンパステストのテスト結果データが設定される。
次に、スキャンイネーブル信号SENを再びHighレベルに設定する。そうすると、フリップフロップ回路1〜5は再度スキャンパスを構成し、テスト用クロック信号TCLKの立ち上がりに同期して、フリップフロップ回路3〜5からテスト結果データがそれぞれデータDOUT0〜DOUT2として順次出力される。データDOUT0〜DOUT2は、出力バッファ回路8〜10を介してテスタに入力される。テスタにおいては、データDOUT0〜DOUT2と、予め記憶する期待値データとの比較が行われ、その比較結果に基づいて本半導体回路の製造の良否が判定される。
また、テストイネーブル信号TENがHighレベルに設定されると、制御信号CS0〜CS2は、データDOUT0〜DOUT2に応じて変化する。その結果、実施の形態1と同様に、OR回路11に入力されるリングクロック信号RCLKAは、フリップフロップ回路1にテスト用クロック信号TCLKを入力するかどうかを決定する条件信号として機能し、OR回路12に入力されるリングクロック信号RCLKAは、フリップフロップ回路2,3にテスト用クロック信号TCLKを入力するかどうかを決定する条件信号として機能し、リングクロック信号RCLKBは、フリップフロップ回路4にテスト用クロック信号TCLKを入力するかどうかを決定する条件信号として機能し、リングクロック信号RCLKCは、フリップフロップ回路5にテスト用クロック信号TCLKを入力するかどうかを決定する条件信号として機能する。
このように、テスト動作モードでは、リングクロック信号RCLKA〜RCLKCによってフリップフロップ回路1〜5へのテスト用クロック信号TCLKの入力が制御されるため、リング発振器16において縮退故障が発生し当該リング発振器16の発振が停止している場合には、データDOUT0〜DOUT2の値は変化しない。したがって、実施の形態1と同様に、テスタにおいて、データDOUT0〜DOUT2と、予め記憶する期待値データとの比較を行うことによって、リング発振器16での故障も検出することができる。
以上のように、スキャンパステストを実行することが可能な半導体回路においても、本発明を適用することができ、テスト効率を向上することができる。
1〜5,520,521 フリップフロップ回路、6,7,522,523 組合せ回路、11〜14,528,529 OR回路、15 発振防止回路、16,26 リング発振器、71〜74,524,525 セレクタ回路、526 テスト用クロック生成回路、530 マスク回路、551 デコード回路。
Claims (8)
- 通常動作モード及びテスト動作モードを有する半導体回路であって、
前記テスト動作モード時において、テストデータが入力され、当該テストデータに対するテスト結果データを第1クロック信号に同期して出力する被テスト回路と、
前記第1クロック信号を出力する第1の回路と、
第2クロック信号を出力する第2の回路と
を備え、
前記第2の回路は、
前記通常動作モード時では、前記テスト動作モード時に前記半導体回路に入力されるテスト用クロック信号とは非同期で前記第2クロック信号を所定周波数で発振させ、
前記テスト動作モード時では、前記第2クロック信号を前記テスト用クロック信号に同期させて変化させ、
前記第1の回路は、
前記通常動作モード時では、前記第2クロック信号を前記第1クロック信号として使用し、
前記テスト動作モード時では、前記テスト用クロック信号を前記第1クロック信号として出力するか否かを決定する条件信号として前記第2クロック信号を使用する、半導体回路。 - 請求項1に記載の半導体回路であって、
前記第2の回路は、制御信号によって発振が制御されるリング発振器であって、
前記リング発振器は、前記テスト動作モード時では、前記制御信号に応じて前記第2クロック信号を変化させるとともに、前記制御信号に応じてリング状の信号伝達経路における複数個所で個別に信号伝達を停止することが可能である、半導体回路。 - 請求項2に記載の半導体回路であって、
前記テスト動作モード時において前記制御信号が前記リング発振器を発振させる条件となることを防止する発振防止回路をさらに備える、半導体回路。 - 第1テストデータが入力され、当該第1テストデータに対する第1テスト結果データを所定間隔で出力する第1の被テスト回路と、
第2テストデータが入力され、当該第2テストデータに対する第2テスト結果データを前記所定間隔で出力する第2の被テスト回路と
を備え、
前記第1及び第2の被テスト回路からは、前記第1及び第2テスト結果データが交互に出力される、半導体回路。 - テストデータが入力され、当該テストデータに対するテスト結果データをテスト用クロック信号に同期して出力する被テスト回路と、
前記テスト用クロック信号を生成して出力するテスト用クロック生成回路と
を備え、
前記テスト用クロック生成回路は、テスト開始を通知する信号が入力されると、前記テスト用クロック信号を所定クロック数出力して停止する、半導体回路。 - 請求項5に記載の半導体回路であって、
前記被テスト回路は、リセット端子を有するフリップフロップ回路を有し、
前記テスト用クロック生成回路は、前記所定クロック数をカウントするカウンタ回路を有し、
前記フリップフロップ回路の前記リセット端子に対して、前記カウンタ回路でのカウント値に応じてリセット信号を出力するリセット信号生成回路をさらに備える、半導体回路。 - テストデータが入力され、当該テストデータに対するテスト結果データを出力する被テスト回路と、
前記テスト結果データに基づいて前記テストデータを生成して出力するテストデータ生成回路と
を備え、
前記被テスト回路は、前記テストデータが入力されるフリップフロップ回路を有し、
前記テストデータ生成回路は、テストが開始すると、所定時間の間、固定値の前記テストデータを出力する、半導体回路。 - 第1及び第2の被テスト回路と、
前記第2の被テスト回路をテストする際に前記第1の被テスト回路の出力信号が前記第2の被テスト回路に入力されることを防止するマスク回路と
を備える、半導体回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006175366A JP2008003047A (ja) | 2006-06-26 | 2006-06-26 | 半導体回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006175366A JP2008003047A (ja) | 2006-06-26 | 2006-06-26 | 半導体回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008003047A true JP2008003047A (ja) | 2008-01-10 |
Family
ID=39007547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006175366A Pending JP2008003047A (ja) | 2006-06-26 | 2006-06-26 | 半導体回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008003047A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012208108A (ja) * | 2011-03-11 | 2012-10-25 | Denso Corp | 半導体集積回路 |
EP3503391A1 (en) * | 2017-12-22 | 2019-06-26 | The Boeing Company | Synchronizable ring oscillators |
-
2006
- 2006-06-26 JP JP2006175366A patent/JP2008003047A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012208108A (ja) * | 2011-03-11 | 2012-10-25 | Denso Corp | 半導体集積回路 |
EP3503391A1 (en) * | 2017-12-22 | 2019-06-26 | The Boeing Company | Synchronizable ring oscillators |
US10469060B1 (en) | 2017-12-22 | 2019-11-05 | The Boeing Company | Synchronizable ring oscillators |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7613972B2 (en) | Semiconductor integrated circuit, and designing method and testing method thereof | |
JP4751216B2 (ja) | 半導体集積回路及びその設計装置 | |
US7408371B2 (en) | Apparatus for measuring on-chip characteristics in semiconductor circuits and related methods | |
KR102135073B1 (ko) | 에지 트리거 교정 | |
US20080094053A1 (en) | Test circuits having ring oscillators and test methods thereof | |
JP2008085592A (ja) | 半導体集積回路装置 | |
JP4342503B2 (ja) | 半導体装置および半導体装置の検査方法 | |
JP2014185981A (ja) | 半導体集積回路および半導体集積回路の自己テスト方法 | |
US8375265B1 (en) | Delay fault testing using distributed clock dividers | |
JP2011058847A (ja) | 半導体集積回路装置 | |
US20090240996A1 (en) | Semiconductor integrated circuit device | |
JP2005017207A (ja) | トランスペアレントラッチ回路 | |
JP2008003047A (ja) | 半導体回路 | |
JP5179861B2 (ja) | 半導体装置 | |
JP2005308500A (ja) | 半導体集積回路装置及びテスト方法 | |
US10261128B2 (en) | Test circuit capable of measuring PLL clock signal in ATPG mode | |
US7884635B2 (en) | Integrated circuit, system and method including a performance test mode | |
JP2007093476A (ja) | 半導体集積回路 | |
JP2001319494A (ja) | メモリ回路用の組込み自己試験装置 | |
JP5210226B2 (ja) | 信号状態報知装置、変化回路機能判定装置、信号状態報知方法、及び変化回路機能判定方法 | |
JP3570944B2 (ja) | 半導体集積回路 | |
JP3543399B2 (ja) | 検査機能付半導体装置およびその自己検査方式 | |
JP5175888B2 (ja) | 発振異常検出回路 | |
KR20110071254A (ko) | 시스템온칩 테스트 장치 및 이를 포함하는 시스템온칩 | |
JP2006004509A (ja) | 半導体集積回路およびハードマクロ回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080711 |