JP2009042017A - スキャンパス回路及び半導体集積回路 - Google Patents
スキャンパス回路及び半導体集積回路 Download PDFInfo
- Publication number
- JP2009042017A JP2009042017A JP2007206124A JP2007206124A JP2009042017A JP 2009042017 A JP2009042017 A JP 2009042017A JP 2007206124 A JP2007206124 A JP 2007206124A JP 2007206124 A JP2007206124 A JP 2007206124A JP 2009042017 A JP2009042017 A JP 2009042017A
- Authority
- JP
- Japan
- Prior art keywords
- scan
- signal
- group
- input
- circuit
- 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
- 239000004065 semiconductor Substances 0.000 title claims abstract description 48
- 238000012360 testing method Methods 0.000 claims abstract description 291
- 230000007704 transition Effects 0.000 claims description 6
- 238000004904 shortening Methods 0.000 abstract description 4
- 230000000630 rising effect Effects 0.000 description 55
- 238000010586 diagram Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 230000036962 time dependent Effects 0.000 description 2
- NCGICGYLBXGBGN-UHFFFAOYSA-N 3-morpholin-4-yl-1-oxa-3-azonia-2-azanidacyclopent-3-en-5-imine;hydrochloride Chemical compound Cl.[N-]1OC(=N)C=[N+]1N1CCOCC1 NCGICGYLBXGBGN-UHFFFAOYSA-N 0.000 description 1
- 101100421912 Arabidopsis thaliana SOT1 gene Proteins 0.000 description 1
- 101100421913 Arabidopsis thaliana SOT2 gene Proteins 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318536—Scan chain arrangements, e.g. connections, test bus, analog signals
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318544—Scanning methods, algorithms and patterns
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】シフト動作に要する時間を短縮することができるスキャンパス回路及び半導体集積回路を提供する。
【解決手段】シリアル接続された3個のスキャンFF21を有し、テスト入力端子3と接続される第1のスキャンFF群7と、第1のスキャンFF21群の出力信号が与えられる3個のスキャンFF21を有する第2のスキャンFF群8と、シリアル接続された3個のスキャンFF21を有し、テスト出力端子6と接続される第3のスキャンFF群9と、スキャンFF21のシフト動作モードにおいて、第1のスキャンFF21群の出力信号を第2のスキャンFF群8に入力するとともに、第3のスキャンFF群9に入力するスキップ回路22と、を備えた。
【選択図】図1
【解決手段】シリアル接続された3個のスキャンFF21を有し、テスト入力端子3と接続される第1のスキャンFF群7と、第1のスキャンFF21群の出力信号が与えられる3個のスキャンFF21を有する第2のスキャンFF群8と、シリアル接続された3個のスキャンFF21を有し、テスト出力端子6と接続される第3のスキャンFF群9と、スキャンFF21のシフト動作モードにおいて、第1のスキャンFF21群の出力信号を第2のスキャンFF群8に入力するとともに、第3のスキャンFF群9に入力するスキップ回路22と、を備えた。
【選択図】図1
Description
本発明は、スキャンパス回路及び半導体集積回路に関し、特に、半導体集積回路に搭載された回路をテストする方法論としてスキャンパスを用いたスキャンパス回路及び当該スキャンパス回路を有する半導体集積回路に関する。
近年、半導体集積回路の回路規模が増大している。このような半導体集積回路に搭載された回路をテストする回路として、スキャンパスを用いたスキャンパス回路が知られている。スキャンパス回路には、通常、スキャンチェーンが設けられている。
図14に、従来の半導体集積回路の一例を示す。従来技術に係る半導体集積回路は、図14に示すように、対象回路301、スキャンチェーン302、対象回路301の入力端子303(図14のIN1、IN2、IN3、IN4)、対象回路301の出力端子304(図14のOUT1、OUT2、OUT3、OUT4)、テスト入力端子305(図14のSIN)、クロック入力端子306(図14のCKL)、制御信号入力端子307(図14のSCAN_EN)、テスト出力端子308(図14のSOT)を備えている。
テスト信号は、テスト入力端子305からスキャンチェーン302に入力される。また、スキャンチェーン302の出力信号は、テスト出力端子308から出力される。
テスト信号は、テスト入力端子305からスキャンチェーン302に入力される。また、スキャンチェーン302の出力信号は、テスト出力端子308から出力される。
また、スキャンチェーン302は、対象回路301にテスト信号を入力する複数のフリップフロップ(以下、スキャンFFと称する。)309を備えている。また、当該複数のスキャンFF309はシリアル接続されている。
また、スキャンチェーン302の一端側のスキャンFF309にテスト入力端子305が接続されている。また、スキャンチェーン302の他端側のスキャンFF309にテスト出力端子308が接続されている。そして、当該複数のスキャンFF309はシフトレジスタとして機能する。
また、スキャンチェーン302の一端側のスキャンFF309にテスト入力端子305が接続されている。また、スキャンチェーン302の他端側のスキャンFF309にテスト出力端子308が接続されている。そして、当該複数のスキャンFF309はシフトレジスタとして機能する。
そして、各スキャンFF309は、テスト入力端子305から入力されたテスト信号をシフト入力する。その後、各スキャンFF309は、対象回路301にテスト信号を入力する。また、各スキャンFF309は、対象回路301から出力される出力信号を保持する。その後、各スキャンFF309は保持した信号をシフトさせて、テスト出力端子308から出力する。また、各スキャンFF309は、制御信号入力端子307及びクロック入力端子306と接続される。そして、制御信号入力端子307から入力される制御信号と、クロック入力端子306から入力されるクロック信号とに基づいて、各スキャンFF309は、テスト信号のシフト入力、テスト信号の各回路への入力、各回路から出力された出力信号の保持、出力信号のシフト出力を行う。
しかし、半導体集積回路に搭載される回路が増大すると、その分、スキャンFFの数が多くなりスキャンチェーンの長さが長くなる。また、半導体集積回路に搭載される回路が増大すると、通常、テスト信号のパタン数も多くなる。そして、テスト所要時間は、テスト信号のパタン数及びスキャンチェーンの長さに比例する。そのため、スキャンチェーンを用いてテストすると、半導体集積回路に搭載される回路の増大に従って、テスト所要時間が長くなってしまうという問題がある。そして、テスト所要時間の多くを占めるのがシフトにかかる時間であるため、シフトにかかる時間を削減する技術が求められている。
また、近年、半導体集積回路の設計の微細化が進んでいる。そして、ディープサブミクロンの設計ルールにより製造された半導体集積回路をテストする場合には、単一縮退故障をテストするだけでは不良を除去しきれず、遅延故障やブリッジ故障をテストする必要がある。そのため、半導体集積回路の設計の微細化によりテスト信号のパタン数が増加する。テスト信号はテスタのメモリに格納される。そして、テスタのメモリに占めるテスト信号のデータ量は、テスト信号のパタン数及びスキャンチェーンの長さに比例して増える。そのため、テスタのメモリ量によっては、テスト信号のパタンをテスタのメモリにロードする作業を複数回行うこととなり、さらにテスト所要時間が長くなってしまうという問題がある。
そこで、スキャンFFの数を減らすことにより長さを短くしたスキャンチェーンを複数設けるものが知られている(例えば、特許文献1)。特許文献1では、1本当たりのスキャンFFの数を少なくすることによるスキャンFFの減少分を、スキャンチェーンの本数を多くすることにより相殺している。特許文献1に記載の半導体集積回路を図15、図16に示す。
特許文献1に記載の半導体集積回路は、図15、図16に示すように、スキャンチェーン401、402、403、404、第1のテスト入力端子405(図15のSIN1)、第2のテスト入力端子406(図15のSIN2)、入力選択回路407、クロック入力端子408(図15のCKL)、制御信号入力端子409(図15のSCAN_EN)、第1のテスト出力端子410(図15のSOT1)、第2のテスト出力端子411(図15のSOT2)、出力選択回路412、コマンド解析部413、サイクル判定部414を備えている。
また、スキャンチェーン401、402、403、404は、対象回路に含まれる複数の回路にテスト信号を入力する複数のスキャンFF415を備えている。スキャンFF415は、各スキャンチェーン401、402、403、404毎に、シリアル接続されている。
特許文献1に記載の半導体集積回路は、図15、図16に示すように、スキャンチェーン401、402、403、404、第1のテスト入力端子405(図15のSIN1)、第2のテスト入力端子406(図15のSIN2)、入力選択回路407、クロック入力端子408(図15のCKL)、制御信号入力端子409(図15のSCAN_EN)、第1のテスト出力端子410(図15のSOT1)、第2のテスト出力端子411(図15のSOT2)、出力選択回路412、コマンド解析部413、サイクル判定部414を備えている。
また、スキャンチェーン401、402、403、404は、対象回路に含まれる複数の回路にテスト信号を入力する複数のスキャンFF415を備えている。スキャンFF415は、各スキャンチェーン401、402、403、404毎に、シリアル接続されている。
また、図17に、スキャンFF415の一例を示す。スキャンFF415は、図17に示すように、SI端子、SO端子、D端子、Q端子、CL端子、SMC端子等を備えている。
スキャンチェーン401、402、403、404の入力側のスキャンFF415のSI端子は、入力選択回路407を介して第1のテスト入力端子405又は第2のテスト入力端子406と接続されている。また、スキャンチェーン401、402、403、404の入力側のスキャンFF415以外のスキャンFF415のSI端子は、入力側に隣接するスキャンFF415のSO端子と接続されている。これにより、各スキャンFF415がシリアル接続される。
また、スキャンチェーン401、402、403、404の出力側のスキャンFF415のSO端子は、出力選択回路412を介して第1のテスト出力端子410又は第2のテスト出力端子411と接続されている。
また、スキャンチェーン401、402、403、404のスキャンFF415のD端子及びQ端子は、対象回路(図示省略)に含まれる各回路に接続されている。そして、各スキャンFF415のQ端子から当該各回路にテスト信号が入力され、当該各回路の出力信号が各スキャンFF415のD端子に入力される。
また、スキャンチェーン401、402、403、404のCL端子は、クロック入力端子408と接続されている。また、スキャンチェーン401、402、403、404のSMC端子は、制御信号入力端子409と接続されている。そして、制御信号入力端子409から入力される制御信号と、クロック入力端子408から入力されるクロック信号とに基づいて、各スキャンFF415は、テスト信号のシフト入力、テスト信号の各回路への入力、各回路から出力された出力信号の保持、出力信号のシフト出力を行う。
スキャンチェーン401、402、403、404の入力側のスキャンFF415のSI端子は、入力選択回路407を介して第1のテスト入力端子405又は第2のテスト入力端子406と接続されている。また、スキャンチェーン401、402、403、404の入力側のスキャンFF415以外のスキャンFF415のSI端子は、入力側に隣接するスキャンFF415のSO端子と接続されている。これにより、各スキャンFF415がシリアル接続される。
また、スキャンチェーン401、402、403、404の出力側のスキャンFF415のSO端子は、出力選択回路412を介して第1のテスト出力端子410又は第2のテスト出力端子411と接続されている。
また、スキャンチェーン401、402、403、404のスキャンFF415のD端子及びQ端子は、対象回路(図示省略)に含まれる各回路に接続されている。そして、各スキャンFF415のQ端子から当該各回路にテスト信号が入力され、当該各回路の出力信号が各スキャンFF415のD端子に入力される。
また、スキャンチェーン401、402、403、404のCL端子は、クロック入力端子408と接続されている。また、スキャンチェーン401、402、403、404のSMC端子は、制御信号入力端子409と接続されている。そして、制御信号入力端子409から入力される制御信号と、クロック入力端子408から入力されるクロック信号とに基づいて、各スキャンFF415は、テスト信号のシフト入力、テスト信号の各回路への入力、各回路から出力された出力信号の保持、出力信号のシフト出力を行う。
入力選択回路407は、第1のテスト入力端子405及び第2のテスト入力端子406と接続されている。
また、出力選択回路412は、第1のテスト出力端子410及び第2のテスト出力端子411と接続されている。
また、出力選択回路412は、第1のテスト出力端子410及び第2のテスト出力端子411と接続されている。
コマンド解析部413は、第1のテスト入力端子405及び第2のテスト入力端子406と接続されている。また、コマンド解析部413は、クロック入力端子408、入力選択回路407、出力選択回路412と接続されている。そして、コマンド解析部413は、第1のテスト入力端子405及び第2のテスト入力端子406から入力されるテスト信号を解析する。また、コマンド解析部413は、第1のテスト入力端子405及び第2のテスト入力端子406から入力されるテスト信号を解析した解析結果信号を入力選択回路407及び出力選択回路412に入力する。そして、入力選択回路407は、解析結果信号に基づいて、スキャンチェーン401、402、403、404の何れか2つを選択して、第1のテスト入力端子405及び第2のテスト入力端子406と接続する。また、出力選択回路412は、解析結果信号に基づいて、入力選択回路407が選択したスキャンチェーン401、402、403、404を選択し、第1のテスト出力端子410及び第2のテスト出力端子411と接続する。
サイクル判定部414は、クロック入力端子408、制御信号入力端子409、コマンド解析部413と接続されている。そして、サイクル判定部414は、予め設定された特定のサイクルにおいて、コマンド解析部413に解析指示信号を入力する。そして、コマンド解析部413は、解析指示信号が入力されると、第1のテスト入力端子405及び第2のテスト入力端子406のテスト信号を解析し、解析結果信号を入力選択回路407及び出力選択回路412に出力する。
次に、特許文献1に記載の半導体集積回路の動作について説明する。
まず、制御信号入力端子409から制御信号として「1」が入力されると、各スキャンFF415及びサイクル判定部414がシフトモードに設定される。
また、コマンド解析部413が第1のテスト入力端子405及び第2のテスト入力端子406から入力されるテスト信号を解析する。例えば、第1のテスト入力端子405から入力されたテスト信号が「01101100」であり、第2のテスト入力端子406から入力されたテスト信号が「10001100」であった場合、コマンド解析部413が第1のテスト入力端子405のテスト信号の第1の信号及び第2のテスト入力端子406のテスト信号の第1信号を解析すると、それぞれ、「0」、「1」となる。この解析結果信号が入力選択回路407及び出力選択回路412に入力される。そして、例えば、図15に示すように、第1のテスト入力端子405、第1のテスト出力端子410は、スキャンチェーン401に接続され、第2のテスト入力端子406、第2のテスト出力端子411は、スキャンチェーン404に接続される。
そして、第1のテスト入力端子405及び第2のテスト入力端子406から、それぞれ、スキャンチェーン401、404にテスト信号が入力される。スキャンチェーン401、404の各スキャンFF415は、クロック入力端子408から入力されるクロック信号に基づいて、テスト信号をシフト入力する。
まず、制御信号入力端子409から制御信号として「1」が入力されると、各スキャンFF415及びサイクル判定部414がシフトモードに設定される。
また、コマンド解析部413が第1のテスト入力端子405及び第2のテスト入力端子406から入力されるテスト信号を解析する。例えば、第1のテスト入力端子405から入力されたテスト信号が「01101100」であり、第2のテスト入力端子406から入力されたテスト信号が「10001100」であった場合、コマンド解析部413が第1のテスト入力端子405のテスト信号の第1の信号及び第2のテスト入力端子406のテスト信号の第1信号を解析すると、それぞれ、「0」、「1」となる。この解析結果信号が入力選択回路407及び出力選択回路412に入力される。そして、例えば、図15に示すように、第1のテスト入力端子405、第1のテスト出力端子410は、スキャンチェーン401に接続され、第2のテスト入力端子406、第2のテスト出力端子411は、スキャンチェーン404に接続される。
そして、第1のテスト入力端子405及び第2のテスト入力端子406から、それぞれ、スキャンチェーン401、404にテスト信号が入力される。スキャンチェーン401、404の各スキャンFF415は、クロック入力端子408から入力されるクロック信号に基づいて、テスト信号をシフト入力する。
また、サイクル判定部414は、予め決められた特定のサイクルにおいて、コマンド解析部413に解析指示信号を入力する。そして、コマンド解析部413による解析結果に基づいて、入力選択回路407は、第1のテスト入力端子405とスキャンチェーン401、402の接続を切り替える。また、解析結果に基づいて、入力選択回路407は、第2のテスト入力端子406とスキャンチェーン403、404の接続を切り替える(図15、図16参照)。同様に、解析結果に基づいて、出力選択回路412は、第1のテスト出力端子410とスキャンチェーン401、402の接続を切り替える。また、解析結果に基づいて、出力選択回路412は、第2のテスト出力端子411とスキャンチェーン403、404の接続を切り替える。
次に、制御信号入力端子409から制御信号として「0」が入力されると、各スキャンFF415がキャプチャモードに設定される。そして、各スキャンFF415は、シフトモードで保持したテスト信号をQ端子から対象回路へ出力する。また、対象回路の出力信号がD端子から各スキャンFF415に入力される。そして、各スキャンFF415は、当該出力信号を保持する。
次に、制御信号入力端子409から制御信号として「1」が入力されると、各スキャンFF415がシフトモードに設定される。そして、各スキャンFF415は、キャプチャモードにおいて保持した出力信号をSO端子から出力することによりシフトする。その結果、当該出力信号が第1のテスト出力端子410又は第2のテスト出力端子411から出力される。そして、当該出力信号は、テスタにより期待値と比較されて、対象回路に含まれる各回路の良否が判定される。
上述した特許文献1では、スキャンチェーンの本数を多くすることにより、スキャンチェーンの長さを従来よりも短くしている。そして、第1のテスト入力端子405及び第1のテスト出力端子410、第2のテスト入力端子406及び第2のテスト出力端子411を接続するスキャンチェーンを切り替える。これにより、テスト所要時間の短縮を図っている。
また、テスト信号を入力するテスト入力端子に2本のスキャンチェーンを並列接続し、各スキャンチェーンの出力信号をXOR演算して出力するものも知られている(例えば、特許文献2)。
特開2004−226291号公報
特開2003−194886号公報
しかしながら、特許文献1では、スキャンチェーンの本数が多いほど、テスト信号のパタン数が多くなる。その分、スキャンチェーンの長さを短くしたことによるテスト所要時間の短縮効果が低くなってしまう。また、テスタが接続できるスキャンチェーンの本数はテスタにより制限されるため、スキャンチェーンの本数を多くするほど1回のテストによりテストできる範囲は制限されることとなる。そのため、全ての範囲をテストする場合には、テスト所要時間の短縮効果はさらに低くなる。そして、半導体集積回路が大規模になるほど、スキャンチェーンの本数は多くなるため、テスト所要時間の短縮効果はさらに低くなる。
また、特許文献2では、スキャンチェーンを2本に分けているが、それだけでは、スキャンチェーンの長さを十分に短くすることができない。そのため、テスト所要時間を十分に短縮することができない。
また、特許文献2では、スキャンチェーンを2本に分けているが、それだけでは、スキャンチェーンの長さを十分に短くすることができない。そのため、テスト所要時間を十分に短縮することができない。
本発明の第1の態様にかかるスキャンパス回路は、シリアル接続されたK個(Kは、K≧1を満たす整数)のスキャンFFを有し、入力端子と接続される第1のスキャンFF群と、前記第1のスキャンFF群とシリアル接続されるS個(Sは、S≧1を満たす整数)のスキャンFFを有する第2のスキャンFF群と、シリアル接続されたN個(Nは、N≧1を満たす整数)のスキャンFFを有し、出力端子と接続される第3のスキャンFF群と、前記スキャンFFのシフト動作モードにおいて、前記第1のスキャンFF群の出力信号を前記第3のスキャンFF群に入力するスキップ回路と、を備える。
本発明においては、シフト動作モードにおいて、第1のスキャンFF群から第2のスキャンFF群へと信号がシフト入力されるとともに、第1のスキャンFF群から、スキップ回路を介して第3のスキャンFF群へも信号がシフト入力される。即ち、同時に、第2のスキャンFF群と第3のスキャンFF群に信号がシフト入力される。そのため、シフト動作モードにおいて、全てのスキャンFFへ信号をシフトするのに要する時間が、全てのスキャンFFを1本にシリアル接続しているスキャンチェーンを用いる場合に比べて、短縮できる。
本発明においては、シフト動作モードにおいて、第1のスキャンFF群から第2のスキャンFF群へと信号がシフト入力されるとともに、第1のスキャンFF群から、スキップ回路を介して第3のスキャンFF群へも信号がシフト入力される。即ち、同時に、第2のスキャンFF群と第3のスキャンFF群に信号がシフト入力される。そのため、シフト動作モードにおいて、全てのスキャンFFへ信号をシフトするのに要する時間が、全てのスキャンFFを1本にシリアル接続しているスキャンチェーンを用いる場合に比べて、短縮できる。
本発明により、スキャンパス回路のシフト動作に要する時間を短縮することができる。
以下に、本発明を適用可能な実施の形態を説明する。なお、本発明は、以下の実施の形態に限定されるものではない。
発明の実施の形態1.
本発明の実施の形態1にかかるにかかるスキャンパス回路200及びスキャンパス回路200を有する半導体集積回路100について図1〜図4を用いて説明する。図1は、本発明にかかる半導体集積回路100の概略構成を示す回路図である。
半導体集積回路100は、図1に示すように、対象回路1、スキャンパス回路200、テスト入力端子3(入力端子;図1のSIN)、クロック入力端子4(図1のCLK)、制御信号入力端子5(図1のSCAN_EN)、テスト出力端子6(出力端子;図1のSOT)等を備えている。
なお、対象回路1には、対象回路1に信号を入力する通常入力端子(図示省略)、対象回路1の信号を出力する通常出力端子(図示省略)が備えられている。
本発明の実施の形態1にかかるにかかるスキャンパス回路200及びスキャンパス回路200を有する半導体集積回路100について図1〜図4を用いて説明する。図1は、本発明にかかる半導体集積回路100の概略構成を示す回路図である。
半導体集積回路100は、図1に示すように、対象回路1、スキャンパス回路200、テスト入力端子3(入力端子;図1のSIN)、クロック入力端子4(図1のCLK)、制御信号入力端子5(図1のSCAN_EN)、テスト出力端子6(出力端子;図1のSOT)等を備えている。
なお、対象回路1には、対象回路1に信号を入力する通常入力端子(図示省略)、対象回路1の信号を出力する通常出力端子(図示省略)が備えられている。
テスト信号は、テスト入力端子3からスキャンパス回路200に入力される。また、スキャンパス回路200から出力される出力信号は、テスト出力端子6から出力される。
スキャンパス回路200は、図1に示すように、複数のスキャンフリップフロップ(以下、スキャンFFと称する。)21、スキップ回路22を備えている。
スキップ回路22は、一のスキャンFF21と他のスキャンFF21との間に接続されている。また、スキップ回路22の前段側の各スキャンFF21は、シリアル接続されている。また、スキップ回路22の後段側の各スキャンFF21は、シリアル接続されている。また、最前段のスキャンFF21は、テスト入力端子3と接続され、最後段のスキャンFF21はテスト出力端子6と接続されている。
スキップ回路22は、一のスキャンFF21と他のスキャンFF21との間に接続されている。また、スキップ回路22の前段側の各スキャンFF21は、シリアル接続されている。また、スキップ回路22の後段側の各スキャンFF21は、シリアル接続されている。また、最前段のスキャンFF21は、テスト入力端子3と接続され、最後段のスキャンFF21はテスト出力端子6と接続されている。
また、スキャンパス回路200は、スキップ回路22に接続され、スキップ回路22の前段のスキャンFF21の出力信号が与えられる複数のスキップスキャンFF23を備えている。そして、テスト入力端子3から入力されたテスト信号は、スキップ回路22の前段側の各スキャンFF21においてシフト入力される。次いで、テスト信号は、スキップ回路22の前段側の最後段のスキャンFF21から、スキップ回路22を介して、スキップ回路22の後段側の最前段のスキャンFF21に入力される。同時に、テスト信号は、スキップ回路22の前段側の最後段のスキャンFF21から、スキップ回路22を介して、各スキップスキャンFF23に入力される。また、テスト信号は、スキップ回路22の後段側の各スキャンFF21においてシフト入力される。
また、スキャンFF21及びスキップスキャンFF23として用いられるフリップフロップの一例を図2(a)に示す。
スキャンFF21及びスキップスキャンFF23は、図2(a)に示すように、SI端子、SO端子、D端子、Q端子、CL端子、SMC端子等を備えている。そして、最前段に設けられるスキャンFF21のSI端子は、テスト入力端子3に接続されている。また、最後段に設けられるスキャンFF21のSO端子は、テスト出力端子6と接続されている。また、シリアル接続されたスキャンFF21では、前段のスキャンFF21のSO端子と後段のスキャンFF21のSI端子とが接続されている。そして、テスト入力端子3から入力されたテスト信号は、各スキャンFF21及び各スキップスキャンFF23において、SI端子から入力され、SO端子から出力される。これにより、テスト信号が各スキャンFF21及び各スキップスキャンFF23にシフト入力される。
スキャンFF21及びスキップスキャンFF23は、図2(a)に示すように、SI端子、SO端子、D端子、Q端子、CL端子、SMC端子等を備えている。そして、最前段に設けられるスキャンFF21のSI端子は、テスト入力端子3に接続されている。また、最後段に設けられるスキャンFF21のSO端子は、テスト出力端子6と接続されている。また、シリアル接続されたスキャンFF21では、前段のスキャンFF21のSO端子と後段のスキャンFF21のSI端子とが接続されている。そして、テスト入力端子3から入力されたテスト信号は、各スキャンFF21及び各スキップスキャンFF23において、SI端子から入力され、SO端子から出力される。これにより、テスト信号が各スキャンFF21及び各スキップスキャンFF23にシフト入力される。
また、各スキャンFF21及び各スキップスキャンFF23のD端子及びQ端子は対象回路1と接続されている。そして、各スキャンFF21及び各スキップスキャンFF23のQ端子からテスト信号が対象回路1に入力される。また、対象回路1から出力される結果信号が各スキャンFF21及び各スキップスキャンFF23のD端子に入力される。
また、各スキャンFF21及びスキップスキャンFF23のSMC端子は制御信号入力端子5と接続されている。そして、制御信号入力端子5からシフト動作モードを指示する制御信号(例えば、「1」の信号)が入力された場合に、各スキャンFF21及びスキップスキャンFF23は、テスト信号又は結果信号のシフトを行う。また、制御信号入力端子5からキャプチャ動作モード(通常動作モード)を指示する制御信号(例えば、「0」の信号)が入力された場合に、各スキャンFF21及びスキップスキャンFF23は、Q端子からテスト信号を対象回路1に入力するとともに、対象回路1から出力された結果信号を保持する。
また、各スキャンFF21及び各スキップスキャンFF23のCL端子はクロック入力端子4と接続されている。そして、各スキャンFF21及びスキップスキャンFF23は、クロック入力端子4から入力されるクロック信号に同期して、シフト入力、対象回路1へのテスト信号の入力及び対象回路1から出力された出力信号の保持の各処理を行う。
従って、各スキャンFF21及び各スキップスキャンFF23は、シフトレジスタとして機能する。以下の説明において、各スキャンFF21と各スキップスキャンFF23とを、特に区別しない場合には、単に、スキャンFF21と記載する。なお、スキャンFF21は、論理値を保持する機能を有する回路であればよい。スキャンFF21の代わりに、例えば、RAM(Random )Access Memory)などが用いられてもよい。
従って、各スキャンFF21及び各スキップスキャンFF23は、シフトレジスタとして機能する。以下の説明において、各スキャンFF21と各スキップスキャンFF23とを、特に区別しない場合には、単に、スキャンFF21と記載する。なお、スキャンFF21は、論理値を保持する機能を有する回路であればよい。スキャンFF21の代わりに、例えば、RAM(Random )Access Memory)などが用いられてもよい。
ここで、スキップ回路22の前段側に設けられた複数のスキャンFF21を第1のスキャンFF群7とし、スキップ回路22に接続された複数のスキップスキャンFF23を第2のスキャンFF群8とし、スキップ回路22の後段側に設けられた複数のスキャンFF21を第3のスキャンFF群9とする。
即ち、スキャンパス回路200は、図1に示すように、第1のスキャンFF群7、第2のスキャンFF群8、第3のスキャンFF群9、スキップ回路22等を備えている。
第1のスキャンFF群7は、シリアル接続されたK個(Kは、K≧1を満たす整数)のスキャンFF21を有し、テスト入力端子3と接続されている。
第2のスキャンFF群8は、第1のスキャンFF21群の出力信号が与えられるS個(Sは、S≧1を満たす整数)のスキャンFF21を備えている。
第3のスキャンFF群9は、シリアル接続されたN個(Nは、N≧1を満たす整数)のスキャンFF21を有し、テスト出力端子6と接続されている。
第1のスキャンFF群7は、シリアル接続されたK個(Kは、K≧1を満たす整数)のスキャンFF21を有し、テスト入力端子3と接続されている。
第2のスキャンFF群8は、第1のスキャンFF21群の出力信号が与えられるS個(Sは、S≧1を満たす整数)のスキャンFF21を備えている。
第3のスキャンFF群9は、シリアル接続されたN個(Nは、N≧1を満たす整数)のスキャンFF21を有し、テスト出力端子6と接続されている。
本実施形態では、説明の簡単のため、K=3、S=3、N=3の場合を例示して説明する。即ち、図1に示すように、第1のスキャンFF群7は、スキャンFF_A21、スキャンFF_B21、スキャンFF_C21を備えている。また、第2のスキャンFF群8は、スキャンFF_X21、スキャンFF_Y21、スキャンFF_Z21を備えている。また、第3のスキャンFF群9は、スキャンFF_D21、スキャンFF_E21、スキャンFF_F21を備えている。以下の説明において、特に、スキャンFF_A、B、C、D、E、F、X、Y、Z21を特に区別しない場合、単に、スキャンFF21と称する。
半導体集積回路100の詳細な構成を図3に示す。
スキップ回路22は、図3に示すように、XOR回路221(論理回路)、制御フリップフロップ(以下、制御FFと称する)222、セレクタ223等を備えている。
また、スキップ回路22は、第1のスキャンFF群7の最後段のスキャンFF_C21のSO端子と、第2のスキャンFF群8のスキャンFF_X21、スキャンFF_Y21、スキャンFF_Z21のSI端子とをそれぞれ接続する。
スキップ回路22は、図3に示すように、XOR回路221(論理回路)、制御フリップフロップ(以下、制御FFと称する)222、セレクタ223等を備えている。
また、スキップ回路22は、第1のスキャンFF群7の最後段のスキャンFF_C21のSO端子と、第2のスキャンFF群8のスキャンFF_X21、スキャンFF_Y21、スキャンFF_Z21のSI端子とをそれぞれ接続する。
XOR回路221は、スキャンFF_C21、スキャンFF_X21、スキャンFF_Y21、スキャンFF_Z21の出力信号の排他的論理和を演算する。
制御FF222として用いられるフリップフロップの一例を図2(b)に示す。制御FF222は、図2(b)に示すように、D端子、Q端子、CL端子を備えている。
D端子は、制御信号入力端子5と接続されている。また、Q端子は、セレクタ223の制御端(後述)に接続されている。また、CL端子は、クロック入力端子4に接続されている。そして、制御FF222は、クロック入力端子4から入力されるクロック信号の立ち上がり時に、制御信号入力端子5から入力される制御信号を保持する。また、制御FF222は、クロック入力端子4から入力されるクロック信号の立ち上がり時に、保持していた制御信号をQ端子からセレクタ223の制御端に入力する。
D端子は、制御信号入力端子5と接続されている。また、Q端子は、セレクタ223の制御端(後述)に接続されている。また、CL端子は、クロック入力端子4に接続されている。そして、制御FF222は、クロック入力端子4から入力されるクロック信号の立ち上がり時に、制御信号入力端子5から入力される制御信号を保持する。また、制御FF222は、クロック入力端子4から入力されるクロック信号の立ち上がり時に、保持していた制御信号をQ端子からセレクタ223の制御端に入力する。
セレクタ223は、第1の入力端、第2の入力端、制御端、出力端を備えている。
第1の入力端(図3の「1」)は、第1のスキャンFF群7の最後段のスキャンFF_C21のSO端子と接続されている。また、第2の入力端(図3の「0」)は、XOR回路221と接続されている。また、出力端は、第3のスキャンFF群9の最前段のスキャンFF_D21のSI端子に接続されている。
そして、セレクタ223は、制御端に入力される制御信号に基づいて、第1の入力端に入力される信号又は第2の入力端に入力される信号の何れかを選択して、スキャンFF_D21に入力する。
具体的には、セレクタ223は、制御端に「1」の制御信号が入力された場合に、第1の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ223は、「1」の制御信号が入力された場合に、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。
また、セレクタ223は、制御端に「0」の制御信号が入力された場合に、第2の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ223は、「0」の制御信号が入力された場合に、XOR回路221の出力信号を選択してスキャンFF_D21に入力する。
第1の入力端(図3の「1」)は、第1のスキャンFF群7の最後段のスキャンFF_C21のSO端子と接続されている。また、第2の入力端(図3の「0」)は、XOR回路221と接続されている。また、出力端は、第3のスキャンFF群9の最前段のスキャンFF_D21のSI端子に接続されている。
そして、セレクタ223は、制御端に入力される制御信号に基づいて、第1の入力端に入力される信号又は第2の入力端に入力される信号の何れかを選択して、スキャンFF_D21に入力する。
具体的には、セレクタ223は、制御端に「1」の制御信号が入力された場合に、第1の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ223は、「1」の制御信号が入力された場合に、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。
また、セレクタ223は、制御端に「0」の制御信号が入力された場合に、第2の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ223は、「0」の制御信号が入力された場合に、XOR回路221の出力信号を選択してスキャンFF_D21に入力する。
次に、本発明にかかるスキャンパス回路200を用いたテスト方法について図4に示すフローチャートを参照しながら説明する。
まず、制御信号入力端子5、クロック入力端子4、テスト入力端子3、テスト出力端子6等の各端子がテスト可能な状態に初期設定される(ステップS1)。具体的には、各端子にテスタの対応する端子が接続され、各端子に入力される信号が設定される。
まず、制御信号入力端子5、クロック入力端子4、テスト入力端子3、テスト出力端子6等の各端子がテスト可能な状態に初期設定される(ステップS1)。具体的には、各端子にテスタの対応する端子が接続され、各端子に入力される信号が設定される。
次に、制御信号入力端子5に、シフト動作モードを指示する「1」の制御信号が入力されると(ステップS2)、クロック入力端子4に入力されるクロック信号の立ち上がりに同期して、各スキャンFF21のSMC端子に「1」の制御信号が入力される。これにより、各スキャンFF21はシフト動作モードに設定される。そして、各スキャンFF21は、テスト入力端子3又は前段のスキャンFF21から入力されるテスト信号を保持する。同時に、各スキャンFF21は、保持していたテスト信号を後段のスキャンFF21に入力する(ステップS3)。
次に、シフト動作が完了したか否か、即ち、各スキャンFF21にテスト信号が入力されたか否かが判断される(ステップS4)。当該判断は、例えば、テスタが、各スキャンFF21にテスト信号を入力するのに要するクロック信号を出力したか否かに基づいて自動で判断してもよいし、スキャンパス回路200のテスト出力端子6から出力される信号に基づいて、テストを行っている作業者が判断してもよい。また、他の方法により判断が行われてもよい。
ステップS4において、シフト動作が完了していないと判断された場合には(ステップS4;No)、ステップS3の処理に戻る。
ステップS4において、シフト動作が完了したと判断された場合には(ステップS4;Yes)、制御信号入力端子5に、キャプチャ動作モードを指示する「0」の制御信号が入力される(ステップS5)。次いで、クロック入力端子4に入力されるクロック信号の立ち上がりに同期して、各スキャンFF21のSMC端子に「0」の制御信号が入力され、各スキャンFF21はキャプチャモードに設定される。そして、各スキャンFF21は、対象回路1にテスト信号を出力するとともに、対象回路1から出力される結果信号を保持する(ステップS6)。
ステップS4において、シフト動作が完了したと判断された場合には(ステップS4;Yes)、制御信号入力端子5に、キャプチャ動作モードを指示する「0」の制御信号が入力される(ステップS5)。次いで、クロック入力端子4に入力されるクロック信号の立ち上がりに同期して、各スキャンFF21のSMC端子に「0」の制御信号が入力され、各スキャンFF21はキャプチャモードに設定される。そして、各スキャンFF21は、対象回路1にテスト信号を出力するとともに、対象回路1から出力される結果信号を保持する(ステップS6)。
次に、制御信号入力端子5に、シフト動作モードを指示する「1」の制御信号が入力されると(ステップS7)、クロック入力端子4に入力されるクロック信号の立ち上がりに同期して、各スキャンFF21のSMC端子に「1」の制御信号が入力され、各スキャンFF21はシフト動作モードに設定される。そして、各スキャンFF21は、各スキャンFF21は、保持していた結果信号を後段のスキャンFF21に入力する。同時に、各スキャンFF21は、テスト入力端子3又は前段のスキャンFF21から入力されるテスト信号を保持する(ステップS8)。
次に、シフト動作が完了したか否か、即ち、各スキャンFF21の結果信号が出力されたか否かが判断される(ステップS9)。当該判断は、例えば、テスタが、各スキャンFF21の結果信号を出力するのに要するクロック信号を出力したか否かに基づいて自動で判断してもよいし、スキャンパス回路200のテスト出力端子6から出力される信号に基づいて、テストを行っている作業者が判断してもよい。また、他の方法により判断が行われてもよい。
ステップS9において、シフト動作が完了していないと判断された場合には(ステップS9;No)、ステップS8の処理に戻る。
ステップS9において、シフト動作が完了したと判断された場合には(ステップS9;Yes)、テストが行われていないテスト信号のパタンが残っているか否かが判断される(ステップS10)。当該判断は、例えば、テスタが、全てのテスト信号のパタンについてテストを行うのに要するクロック信号を出力したか否かに基づいて自動で判断してもよいし、スキャンパス回路200のテスト出力端子6から出力される信号に基づいて、テストを行っている作業者が判断してもよい。また、他の方法により判断が行われてもよい。
ステップS9において、シフト動作が完了したと判断された場合には(ステップS9;Yes)、テストが行われていないテスト信号のパタンが残っているか否かが判断される(ステップS10)。当該判断は、例えば、テスタが、全てのテスト信号のパタンについてテストを行うのに要するクロック信号を出力したか否かに基づいて自動で判断してもよいし、スキャンパス回路200のテスト出力端子6から出力される信号に基づいて、テストを行っている作業者が判断してもよい。また、他の方法により判断が行われてもよい。
ステップS10において、テストが行われていないテスト信号のパタンが残っていると判断した場合には(ステップS10;No)、ステップS5に戻る。
ステップS10において、テストが行われていないテスト信号のパタンが残っていないと判断した場合には、本処理を終了する。
ステップS10において、テストが行われていないテスト信号のパタンが残っていないと判断した場合には、本処理を終了する。
次に、本発明の実施の形態1にかかるスキャンパス回路200におけるシフト動作について、図5に示すフローチャートを参照しながら説明する。
まず、テスト入力端子3からテスト信号が入力されると(ステップS101)、クロック入力端子4から入力されるクロック信号の1個目の立ち上がりに同期して、1ビット目のテスト信号がスキャンFF_A21に保持される。また、クロック信号の2個目の立ち上がりに同期して、スキャンFF_A21に保持されていた1ビット目のテスト信号がスキャンFF_B21に保持される。同時に、スキャンFF_A21は、テスト入力端子3から入力される2ビット目のテスト信号を保持する。また、クロック信号の3個目の立ち上がりに同期して、スキャンFF_B21に保持されていた1ビット目のテスト信号がスキャンFF_C21に保持される。同時に、スキャンFF_B21は、スキャンFF_A21に保持されていた2ビット目のテスト信号を保持する。また、同時に、スキャンFF_A21は、テスト入力端子3から入力される3ビット目のテスト信号を保持する(ステップS102)。
まず、テスト入力端子3からテスト信号が入力されると(ステップS101)、クロック入力端子4から入力されるクロック信号の1個目の立ち上がりに同期して、1ビット目のテスト信号がスキャンFF_A21に保持される。また、クロック信号の2個目の立ち上がりに同期して、スキャンFF_A21に保持されていた1ビット目のテスト信号がスキャンFF_B21に保持される。同時に、スキャンFF_A21は、テスト入力端子3から入力される2ビット目のテスト信号を保持する。また、クロック信号の3個目の立ち上がりに同期して、スキャンFF_B21に保持されていた1ビット目のテスト信号がスキャンFF_C21に保持される。同時に、スキャンFF_B21は、スキャンFF_A21に保持されていた2ビット目のテスト信号を保持する。また、同時に、スキャンFF_A21は、テスト入力端子3から入力される3ビット目のテスト信号を保持する(ステップS102)。
次に、クロック入力端子4から入力されるクロック信号の4個目の立ち上がりに同期して、スキャンFF_C21に保持されていた1ビット目のテスト信号がスキャンFF_X21、スキャンFF_Y21、スキャンFF_Z21に保持される(ステップS103)。
また、この時、セレクタ223は、制御FF222から制御端に入力された信号が「1」か否かを判断する(ステップS104)。
ステップS104において、セレクタ223が、制御端に入力された信号が「0」であると判断した場合には(ステップS104;No)、セレクタ223は、第2の入力端に入力される信号を選択してスキャンFF_D21に入力する。換言すれば、セレクタ223は、XOR回路221から出力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ223は、スキャンFF_C21、スキャンFF_X21、スキャンFF_Y21、スキャンFF_Z21の出力信号を排他的論理和した信号をスキャンFF_D21に入力する。
また、スキャンFF_D21は、セレクタ223から入力される信号を保持する(ステップS105)。
また、スキャンFF_D21は、セレクタ223から入力される信号を保持する(ステップS105)。
ステップS104において、セレクタ223が、制御端に入力された信号が「1」であると判断した場合には(ステップS104;Yes)、セレクタ223は、第1の入力端に入力される信号を選択してスキャンFF_D21に入力する。換言すれば、セレクタ223は、スキャンFF_C21から出力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ223は、1ビット目のテスト信号をスキャンFF_D21に入力する。
また、スキャンFF_D21は、セレクタ223から入力される信号を保持する(ステップS106)。
また、スキャンFF_D21は、セレクタ223から入力される信号を保持する(ステップS106)。
次に、クロック入力端子4から入力されるクロック信号の5個目の立ち上がりに同期して、スキャンFF_D21に保持されていた信号がスキャンFF_E21に保持される。具体的には、スキャンFF_E21は、スキャンFF_C21、スキャンFF_X21、スキャンFF_Y21、スキャンFF_Z21の出力信号を排他的論理和した信号、又は、1ビット目のテスト信号を保持する。また、クロック信号の6個目の立ち上がりに同期して、スキャンFF_E21に保持されていた信号がスキャンFF_F21に保持される。また、クロック信号の7個目の立ち上がりに同期して、スキャンFF_F21に保持されていた信号がテスト出力端子6から出力される(ステップS107)。
即ち、本実施形態にかかるスキャンパス回路200では、9つのスキャンFF21に信号をシフト入力するのに6クロック分の時間を要する。
次に、本発明の実施の形態1にかかるスキャンパス回路200における各端子の出力信号、各スキャンFF21の保持信号、制御FF222の保持信号、及びセレクタ223の出力信号の経時変化について、図6に示すタイミングチャートを参照しながら説明する。
ここで、初期状態において、各スキャンFF21は、不定値を保持していることとし、制御FF222は「0」を保持していることとする。
ここで、初期状態において、各スキャンFF21は、不定値を保持していることとし、制御FF222は「0」を保持していることとする。
まず、制御信号入力端子5からシフト動作モードを指示する「1」の制御信号が入力されるとともに、テスト入力端子3から「I11」のテスト信号が入力される。そして、スキャンFF21は、クロック信号の1個目の立ち上がりに同期して、シフト動作モードに設定される。これにより、スキャンFF_A21が「I11」のテスト信号を保持する。また、スキャンFF_B、C、X、Y、Z、E、F21は前段のスキャンFF21の信号を保持する。また、図6に示すように、クロック入力端子4から入力されるクロック信号の1個目の立ち上がりに同期して、制御FF222が「1」の信号を保持する。同時に、制御FF222は、「0」の信号をセレクタ223の制御端に入力する。そのため、セレクタ222は、XOR回路221の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、XOR回路221の出力信号を保持する。即ち、スキャンFF_B〜F、X〜Zは不定値を保持する。
次に、クロック信号の2個目の立ち上がりに同期して、スキャンFF_A21は、テスト入力端子3から入力される「I12」のテスト信号を保持する。同時に、スキャンFF_A21は、「I11」のテスト信号をスキャンFF_B21に入力する。また、スキャンFF_B21は、スキャンFF_A21から入力された「I11」のテスト信号を保持する。また、制御FF222は、クロック信号の2個目の立ち上がりに同期して、「1」の信号をセレクタ223の制御端に入力する。そのため、セレクタ223は、スキャンFF_C21の出力信号をスキャンFF_D21に入力する。従って、スキャンFF_D21は、スキャンFF_C21の出力信号を保持する。その他のスキャンFF21は、前段のスキャンFF21の信号を保持する。即ち、スキャンFF_C〜F、X〜Z21は不定値を保持する。
同様にして、クロック信号の3個目の立ち上がりに同期して、スキャンFF_A21は「I13」のテスト信号を保持し、スキャンFF_B21は「I12」のテスト信号を保持し、スキャンFF_C21は「I11」のテスト信号を保持する。その他のスキャンFF21は不定値を保持する。
そして、クロック信号の4個目の立ち上がりに同期して、スキャンFF_A21は「I14」のテスト信号を保持し、スキャンFF_B21は「I13」のテスト信号を保持し、スキャンFF_C21は「I12」のテスト信号を保持する。
また、同時に、スキャンFF_X、Y、Z21は、スキャンFF_C21に保持されていた「I11」のテスト信号を保持する。
また、同時に、スキャンFF_D21は、セレクタ223の出力信号を保持する。このとき、制御FF222は「1」の制御信号を入力する。そのため、セレクタ223は、第1の入力端に入力される信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、スキャンFF_C21に保持されていた「I11」のテスト信号を保持する。即ち、スキャンFF_X、Y、Z、Dは、同じ信号を保持する。
その他のスキャンFF21は不定値を保持する。
また、同時に、スキャンFF_X、Y、Z21は、スキャンFF_C21に保持されていた「I11」のテスト信号を保持する。
また、同時に、スキャンFF_D21は、セレクタ223の出力信号を保持する。このとき、制御FF222は「1」の制御信号を入力する。そのため、セレクタ223は、第1の入力端に入力される信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、スキャンFF_C21に保持されていた「I11」のテスト信号を保持する。即ち、スキャンFF_X、Y、Z、Dは、同じ信号を保持する。
その他のスキャンFF21は不定値を保持する。
同様にして、クロック信号の5個目の立ち上がりに同期して、スキャンFF_A、B、C、X、Y、Z、D21は、それぞれ、「I15」、「I14」、「I13」、「I12」、「I12」、「I12」、「I12」を保持する。また、スキャンFF_E21は、スキャンFF_D21に保持されていた「I11」のテスト信号を保持する。また、スキャンFF_F21は不定値を保持する。
また、同様にして、クロック信号の6個目の立ち上がりに同期して、スキャンFF_A、B、C、X、Y、Z、D、E、F21は、それぞれ、「I16」、「I15」、「I14」、「I13」、「I13」、「I13」、「I13」、「I12」、「I11」を保持する。
次に、クロック信号の6個目の立ち下がり時に、制御信号入力端子5からキャプチャ動作モードを指示する「0」の制御信号が入力される。そして、図6に示すように、クロック入力端子4から入力されるクロック信号の7個目の立ち上がりに同期して、制御FF222が「0」の信号を保持する。また、スキャンFF21は、クロック信号の1個目の立ち上がりに同期して、キャプチャ動作モードに設定される。これにより、各スキャンFF21は保持していたテスト信号を対象回路1に入力する。また、各スキャンFF21は、対象回路1から出力される結果信号を保持する。具体的には、スキャンFF_A、B、C、X、Y、Z、D、E、F21は、それぞれ、「a1」、「b1」、「c1」、「x1」、「y1」、「z1」、「d1」、「e1」、「f1」の結果信号を保持する。
次に、クロック信号の7個目の立ち下がり時に、制御信号入力端子5からシフト動作モードを指示する「1」の制御信号が入力される。そして、スキャンFF21は、クロック信号の8個目の立ち上がりに同期して、シフト動作モードに設定される。これにより、スキャンFF_A21が「I18」のテスト信号を保持する。また、スキャンFF_B、C、X、Y、Z、E、F21は前段のスキャンFF21の信号を保持する。即ち、スキャンFF_B、C、X、Y、Z、E、F21は、それぞれ、「a1」、「b1」、「c1」、「c1」、「c1」、「d1」、「e1」の結果信号を保持する。
また、図6に示すように、クロック入力端子4から入力されるクロック信号の8個目の立ち上がりに同期して、制御FF222は「1」の信号を保持する。同時に、制御FF222は、「0」の信号をセレクタ223の制御端に入力する。そのため、セレクタ223は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ223は、XOR回路221の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、スキャンFF_C、X、Y、Z21の信号の排他的論理和の信号を保持する。具体的には、スキャンFF_D21は、「c1」、「x1」、「y1」、「z1」の排他的論理和「xor1」の信号を保持する。
また、テスト出力端子6から「f1」の信号が出力される。
また、図6に示すように、クロック入力端子4から入力されるクロック信号の8個目の立ち上がりに同期して、制御FF222は「1」の信号を保持する。同時に、制御FF222は、「0」の信号をセレクタ223の制御端に入力する。そのため、セレクタ223は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ223は、XOR回路221の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、スキャンFF_C、X、Y、Z21の信号の排他的論理和の信号を保持する。具体的には、スキャンFF_D21は、「c1」、「x1」、「y1」、「z1」の排他的論理和「xor1」の信号を保持する。
また、テスト出力端子6から「f1」の信号が出力される。
次に、クロック信号の9個目の立ち上がりに同期して、スキャンFF_A21が「I19」のテスト信号を保持するとともに、「I18」のテスト信号をスキャンFF_B21に入力する。また、スキャンFF_B、C、X、Y、Z、E、F21は、それぞれ、「I18」、「a1」、「b1」、「b1」、「b1」、「xor1」、「d1」の信号を保持する。
また、制御FF222は、「1」の信号をセレクタ223の制御端に入力する。そのため、セレクタ223は、第1の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ223は、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「b1」の信号を保持する。
また、テスト出力端子6から「e1」の信号が出力される。
また、制御FF222は、「1」の信号をセレクタ223の制御端に入力する。そのため、セレクタ223は、第1の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ223は、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「b1」の信号を保持する。
また、テスト出力端子6から「e1」の信号が出力される。
同様にして、クロック信号の立ち上がりに同期して、スキャンFF_A21は、テスト入力端子3から入力されるテスト信号を保持する。また、スキャンFF_B、C、X、Y、Z、E、F21は前段のスキャンFF21の信号を保持する。また、スキャンFF_D21は、スキャンFF_C21の出力信号を保持する。そして、クロック信号の立ち上がりに同期して、テスト出力端子6から、順次、「d1」、「xor1」、「b1」、「a1」の結果信号が出力される。また、同時に、スキャンFF_A、B、C、X、Y、Z、D、E、F21に、それぞれ、「I23」、「I22」、「I21」、「I20」、「I20」、「I20」、「I20」、「I19」、「I18」のテスト信号が保持される。
即ち、セレクタ223は、スキャンFF21がキャプチャ動作モードからシフト動作モードに遷移してから、1クロック分の時間(第1の時間)、XOR回路221の出力信号を選択して、スキャンFF_D21に入力する。また、セレクタ223は、シフト動作モードにおける当該1クロック以外の時間(第2の時間)において、スキャンFF_C21の出力信号を選択して、スキャンFF_D21に入力する。これにより、テスト出力端子6から、「f1」、「e1」、「d1」、「xor1」、「b1」、「a1」の結果信号が出力される。そして、「xor1」は、「c1」、「x1」、「y1」、「z1」の排他的論理和であるので、テスト出力端子6から、スキャンFF_C、X、Y、Z21が保持した結果信号を反映させた信号が出力されることとなる。
以上、説明したように、本発明の実施の形態1にかかるスキャンパス回路200及び半導体集積回路100によれば、シリアル接続された3個のスキャンFF21を有し、テスト入力端子3と接続される第1のスキャンFF群7と、第1のスキャンFF群7とシリアル接続される3個のスキャンFF21を有する第2のスキャンFF群8と、シリアル接続された3個のスキャンFF21を有し、テスト出力端子6と接続される第3のスキャンFF群9と、スキャンFF21のシフト動作モードにおいて、第1のスキャンFF群7の出力信号を第3のスキャンFF群9に入力するスキップ回路22と、を備える。
これにより、シフト動作モードにおいて、第1のスキャンFF群7から第2のスキャンFF群8へと信号がシフト入力されるとともに、第1のスキャンFF群7から、スキップ回路22を介して第3のスキャンFF群9へも信号がシフト入力される。即ち、同時に、第2のスキャンFF群8と第3のスキャンFF群9に信号がシフト入力される。そのため、シフト動作モードにおいて、全てのスキャンFF21へ信号をシフトするのに要する時間が、全てのスキャンFF21を1本にシリアル接続しているスキャンチェーンを用いる場合に比べて、短縮できる。本実施形態に示す例では、6クロック分の時間で、9つのスキャンFF21に信号をシフト入力するため、3クロック分の時間を短縮することができる。
これにより、シフト動作モードにおいて、第1のスキャンFF群7から第2のスキャンFF群8へと信号がシフト入力されるとともに、第1のスキャンFF群7から、スキップ回路22を介して第3のスキャンFF群9へも信号がシフト入力される。即ち、同時に、第2のスキャンFF群8と第3のスキャンFF群9に信号がシフト入力される。そのため、シフト動作モードにおいて、全てのスキャンFF21へ信号をシフトするのに要する時間が、全てのスキャンFF21を1本にシリアル接続しているスキャンチェーンを用いる場合に比べて、短縮できる。本実施形態に示す例では、6クロック分の時間で、9つのスキャンFF21に信号をシフト入力するため、3クロック分の時間を短縮することができる。
また、各スキャンFF21は、キャプチャ動作モードにおいて、テスト信号を対象回路1に入力するとともに、対象回路1から出力される結果信号を保持し、スキップ回路22のセレクタ223は、キャプチャ動作モードからシフト動作モードに遷移してから1クロック分の時間において、第1のスキャンFF群7のスキャンFF_C21の出力信号と第2のスキャンFF群8のスキャンFF_X、Y、Zの出力信号とを排他的論理和演算した信号を第3のスキャンFF群9のスキャンFF_D21に入力し、シフト動作モードにおける当該1クロック以外の時間において、第1のスキャンFF群7のスキャンFF_C21の出力信号を第3のスキャンFF群9のスキャンFF_D21に入力する。
これにより、テスト出力端子6から、スキャンFF_A、B、D〜F21の結果信号が出力されるとともに、スキャンFF_C、X、Y、Zの結果信号の排他的論理和した信号が出力される。そのため、テスト出力端子6から出力される信号を期待される信号と比較することによって、対象回路1をテストすることができる。
これにより、テスト出力端子6から、スキャンFF_A、B、D〜F21の結果信号が出力されるとともに、スキャンFF_C、X、Y、Zの結果信号の排他的論理和した信号が出力される。そのため、テスト出力端子6から出力される信号を期待される信号と比較することによって、対象回路1をテストすることができる。
発明の実施の形態2.
本発明の実施の形態2にかかる半導体集積回路101及びスキャンパス回路201は、図7に示すように、第2のスキャンFF群81及びスキップ回路24の構成が実施の形態1にかかる半導体集積回路100及びスキャンパス回路200と異なり、その他の構成については、図3と同様であるため、同一の符号を付すとともに、その説明を省略する。
本発明の実施の形態2にかかる半導体集積回路101及びスキャンパス回路201は、図7に示すように、第2のスキャンFF群81及びスキップ回路24の構成が実施の形態1にかかる半導体集積回路100及びスキャンパス回路200と異なり、その他の構成については、図3と同様であるため、同一の符号を付すとともに、その説明を省略する。
第2のスキャンFF群81は、シリアル接続されたS個(Sは、S≧1を満たす整数)のスキャンFF21を備えている。ここでは、説明の簡単のため、S=3の場合を例示して説明する。即ち、第2のスキャンFF群81は、3個のスキャンFF_X、Y、Z21を備えている。
また、第2のスキャンFF群81の最前段のスキャンFF_X21は、第1のスキャンFF群7の最後段のスキャンFF_C21とスキップ回路24を介して接続されている。
また、第2のスキャンFF群81の最後段のスキャンFF_Z21は、第3のスキャンFF21の最前段のスキャンFF_D21とスキップ回路24を介して接続されている。
なお、第2のスキャンFF群81に備えられるスキャンFF21の数は本実施形態に限られるものではない。
また、第2のスキャンFF群81の最前段のスキャンFF_X21は、第1のスキャンFF群7の最後段のスキャンFF_C21とスキップ回路24を介して接続されている。
また、第2のスキャンFF群81の最後段のスキャンFF_Z21は、第3のスキャンFF21の最前段のスキャンFF_D21とスキップ回路24を介して接続されている。
なお、第2のスキャンFF群81に備えられるスキャンFF21の数は本実施形態に限られるものではない。
スキップ回路24は、図7に示すように、XOR回路241(論理回路)、3つの制御FF242、セレクタ243等を備えている。なお、スキップ回路24に備えられる制御FF242の数は本実施形態に限られるものではなく、第2のスキャンFF群81に備えられるスキャンFF21と同数設けられればよい。
XOR回路241は、スキャンFF_C21とスキャンFF_Z21との出力信号の排他的論理和を演算する。
3つの制御FF242はシリアル接続されている。
制御FF242として用いられるフリップフロップの一例を図2(c)に示す。制御FF242は、図2(c)に示すように、D端子、Q端子、CL端子、RB端子を備えている。
最前段の制御FF242のD端子は、固定値「1」が入力されるようになっている。また、最後段の制御FF242のQ端子は、セレクタ243の制御端に接続されている。また、CL端子は、クロック入力端子4に接続されている。また、RB端子は、制御信号入力端子5と接続されている。
制御FF242として用いられるフリップフロップの一例を図2(c)に示す。制御FF242は、図2(c)に示すように、D端子、Q端子、CL端子、RB端子を備えている。
最前段の制御FF242のD端子は、固定値「1」が入力されるようになっている。また、最後段の制御FF242のQ端子は、セレクタ243の制御端に接続されている。また、CL端子は、クロック入力端子4に接続されている。また、RB端子は、制御信号入力端子5と接続されている。
そして、3つの制御FF242は、制御信号入力端子5から「0」の制御信号が入力されると、クロック入力端子4から入力されるクロック信号の立ち上がり時に、リセットされて「0」固定される。また、3つの制御FF242は、制御信号入力端子5から入力される制御信号が「1」となってから、クロック信号の1個目の立ち上がり時に、リセット解除される。同時に、最前段の制御FF242は、D端子から入力される固定値「1」を保持する。また、クロック信号の2個目の立ち上がり時に、最前段の制御FF242は、保持していた「1」の信号を2段目の制御FF242に入力するとともに、D端子から入力される固定値「1」の信号を保持する。また、2段目の制御FF242は、最前段の制御FF242が保持していた「1」の信号を保持する。同様にして、クロック信号の3個目の立ち上がり時に、最後段の制御FF242は、「1」の信号を保持する。そして、クロック信号の4個目の立ち上がり時に、最後段の制御FF242は、「1」の信号をセレクタ243の制御端に入力する。
従って、最後段の制御FF242は、制御信号入力端子5から「1」の制御信号が入力されてから、3クロック分の間、セレクタ243の制御端に「0」の信号を入力する。
従って、最後段の制御FF242は、制御信号入力端子5から「1」の制御信号が入力されてから、3クロック分の間、セレクタ243の制御端に「0」の信号を入力する。
セレクタ243は、第1の入力端、第2の入力端、制御端、出力端を備えている。
第1の入力端(図7の「1」)は、第1のスキャンFF群7の最後段のスキャンFF_C21のSO端子と接続されている。また、第2の入力端(図7の「0」)は、XOR回路241と接続されている。また、出力端は、第3のスキャンFF群9の最前段のスキャンFF_D21のSI端子に接続されている。
そして、セレクタ243は、制御端に入力される制御信号に基づいて、第1の入力端に入力される信号又は第2の入力端に入力される信号の何れかを選択して、スキャンFF_D21に入力する。
具体的には、セレクタ243は、制御端に「1」の制御信号が入力された場合に、第1の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ243は、「1」の制御信号が入力された場合に、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。
また、セレクタ243は、制御端に「0」の制御信号が入力された場合に、第2の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ243は、「0」の制御信号が入力された場合に、XOR回路241の出力信号を選択してスキャンFF_D21に入力する。
第1の入力端(図7の「1」)は、第1のスキャンFF群7の最後段のスキャンFF_C21のSO端子と接続されている。また、第2の入力端(図7の「0」)は、XOR回路241と接続されている。また、出力端は、第3のスキャンFF群9の最前段のスキャンFF_D21のSI端子に接続されている。
そして、セレクタ243は、制御端に入力される制御信号に基づいて、第1の入力端に入力される信号又は第2の入力端に入力される信号の何れかを選択して、スキャンFF_D21に入力する。
具体的には、セレクタ243は、制御端に「1」の制御信号が入力された場合に、第1の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ243は、「1」の制御信号が入力された場合に、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。
また、セレクタ243は、制御端に「0」の制御信号が入力された場合に、第2の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ243は、「0」の制御信号が入力された場合に、XOR回路241の出力信号を選択してスキャンFF_D21に入力する。
次に、本発明の実施の形態2にかかるスキャンパス回路201におけるシフト動作について、図8に示すフローチャートを参照しながら説明する。なお、ステップS201、S202、S208の処理は、図5に示すステップS101、S102、S107と同様であるため、その説明を省略する。
次に、クロック入力端子4から入力されるクロック信号の4個目の立ち上がりに同期して、スキャンFF_C21に保持されていた1ビット目のテスト信号とスキャンFF_Z21に保持されていた信号との排他的論理和がスキャンFF_X21に保持される(ステップS203)。
また、この時、セレクタ243は、最後段の制御FF242から制御端に入力された信号が「1」か否かを判断する(ステップS204)。
ステップS204において、セレクタ243が、制御端に入力された信号が「0」であると判断した場合には(ステップS204;No)、セレクタ243は、第2の入力端に入力される信号を選択してスキャンFF_D21に入力する。換言すれば、セレクタ243は、XOR回路241から出力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ243は、スキャンFF_C21とスキャンFF_Z21の出力信号を排他的論理和した信号をスキャンFF_D21に入力する。
また、スキャンFF_D21は、セレクタ243から入力される信号を保持する(ステップS205)。
また、スキャンFF_D21は、セレクタ243から入力される信号を保持する(ステップS205)。
ステップS204において、セレクタ243が、制御端に入力された信号が「1」であると判断した場合には(ステップS204;Yes)、セレクタ243は、第1の入力端に入力される信号を選択してスキャンFF_D21に入力する。換言すれば、セレクタ243は、スキャンFF_C21から出力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ243は、1ビット目のテスト信号をスキャンFF_D21に入力する。
また、スキャンFF_D21は、セレクタ243から入力される信号を保持する(ステップS206)。
また、スキャンFF_D21は、セレクタ243から入力される信号を保持する(ステップS206)。
次に、クロック入力端子4から入力されるクロック信号の5個目の立ち上がりに同期して、スキャンFF_X21に保持されていた信号がスキャンFF_Y21に保持される。また、クロック信号の6個目の立ち上がりに同期して、スキャンFF_Y21に保持されていた信号がスキャンFF_Z21に保持される(ステップS207)。
即ち、本実施形態にかかるスキャンパス回路201では、9つのスキャンFF21に信号をシフト入力するのに6クロック分の時間を要する。
次に、本発明の実施の形態2にかかるスキャンパス回路201における各端子の出力信号、各スキャンFF21の保持信号、最後段の制御FF242の保持信号、及びセレクタ243の出力信号の経時変化について、図9に示すタイミングチャートを参照しながら説明する。
ここで、初期状態において、各スキャンFF21は、不定値を保持していることとし、最後段の制御FF242は「0」を保持していることとする。
ここで、初期状態において、各スキャンFF21は、不定値を保持していることとし、最後段の制御FF242は「0」を保持していることとする。
まず、制御信号入力端子5からシフト動作モードを指示する「1」の制御信号が入力されるとともに、テスト入力端子3から「I11」のテスト信号が入力される。また、スキャンFF21は、クロック信号の1個目の立ち上がりに同期して、シフト動作モードに設定される。これにより、スキャンFF_A21が「I11」のテスト信号を保持する。また、スキャンFF_B、C、Y、Z、E、F21は前段のスキャンFF21の信号を保持する。
また、図9に示すように、クロック入力端子4から入力されるクロック信号の1個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「0」を保持する。同時に、最後段の制御FF242は、セレクタ243の制御端に「0」の信号を出力する。そのため、セレクタ243は、第2の入力端に入力される信号をスキャンFF_D21に入力する。そして、スキャンFF_D21は、XOR回路241の出力信号を保持する。また、スキャンFF_X21は、スキャンFF_C21の出力信号とスキャンFF_Z21の出力信号との排他的論理和の信号を保持する。即ち、スキャンFF_B〜F、X〜Zは不定値を保持する。
また、図9に示すように、クロック入力端子4から入力されるクロック信号の1個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「0」を保持する。同時に、最後段の制御FF242は、セレクタ243の制御端に「0」の信号を出力する。そのため、セレクタ243は、第2の入力端に入力される信号をスキャンFF_D21に入力する。そして、スキャンFF_D21は、XOR回路241の出力信号を保持する。また、スキャンFF_X21は、スキャンFF_C21の出力信号とスキャンFF_Z21の出力信号との排他的論理和の信号を保持する。即ち、スキャンFF_B〜F、X〜Zは不定値を保持する。
同様にして、クロック信号の2個目の立ち上がりに同期して、スキャンFF_A21は、テスト入力端子3から入力される「I12」のテスト信号を保持する。同時に、スキャンFF_A21は、「I11」のテスト信号をスキャンFF_B21に入力する。また、スキャンFF_B21は、スキャンFF_A21から入力された「I11」のテスト信号を保持する。
また、クロック信号の2個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「0」を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第2の入力端に入力される信号をスキャンFF_D21に入力する。そして、スキャンFF_D21は、XOR回路241の出力信号を保持する。
スキャンFF_X21は、スキャンFF_C21の出力信号とスキャンFF_Z21の出力信号との排他的論理和の信号を保持する。その他のスキャンFF21は、前段のスキャンFF21の信号を保持する。即ち、スキャンFF_C〜F、X〜Z21は不定値を保持する。
また、クロック信号の2個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「0」を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第2の入力端に入力される信号をスキャンFF_D21に入力する。そして、スキャンFF_D21は、XOR回路241の出力信号を保持する。
スキャンFF_X21は、スキャンFF_C21の出力信号とスキャンFF_Z21の出力信号との排他的論理和の信号を保持する。その他のスキャンFF21は、前段のスキャンFF21の信号を保持する。即ち、スキャンFF_C〜F、X〜Z21は不定値を保持する。
次に、クロック信号の3個目の立ち上がりに同期して、スキャンFF_A21は「I13」のテスト信号を保持し、スキャンFF_B21は「I12」のテスト信号を保持し、スキャンFF_C21は「I11」のテスト信号を保持する。
また、クロック信号の3個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「1」を保持する。同時に、最後段の制御FF242は、セレクタ243の制御端に「0」の信号を入力する。そのため、スキャンFF_D21は、XOR回路241の出力信号を保持する。
スキャンFF_X21は、スキャンFF_C21の出力信号とスキャンFF_Z21の出力信号との排他的論理和の信号を保持する。その他のスキャンFF21は不定値を保持する。
また、クロック信号の3個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「1」を保持する。同時に、最後段の制御FF242は、セレクタ243の制御端に「0」の信号を入力する。そのため、スキャンFF_D21は、XOR回路241の出力信号を保持する。
スキャンFF_X21は、スキャンFF_C21の出力信号とスキャンFF_Z21の出力信号との排他的論理和の信号を保持する。その他のスキャンFF21は不定値を保持する。
そして、クロック信号の4個目の立ち上がりに同期して、スキャンFF_A21は「I14」のテスト信号を保持し、スキャンFF_B21は「I13」のテスト信号を保持し、スキャンFF_C21は「I12」のテスト信号を保持する。
また、同時に、スキャンFF_D21は、セレクタ243の出力信号を保持する。このとき、最後段の制御FF242は、「1」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第1の入力端に入力される信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、スキャンFF_C21に保持されていた「I11」のテスト信号を保持する。
また、同時に、スキャンFF_X21は、スキャンFF_C21に保持されていた「I11」の信号とスキャンFF_Z21に保持されていた不定値との排他的論理和「xor10」を保持する。
その他のスキャンFF21は不定値を保持する。
また、同時に、スキャンFF_D21は、セレクタ243の出力信号を保持する。このとき、最後段の制御FF242は、「1」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第1の入力端に入力される信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、スキャンFF_C21に保持されていた「I11」のテスト信号を保持する。
また、同時に、スキャンFF_X21は、スキャンFF_C21に保持されていた「I11」の信号とスキャンFF_Z21に保持されていた不定値との排他的論理和「xor10」を保持する。
その他のスキャンFF21は不定値を保持する。
同様にして、クロック信号の5個目の立ち上がりに同期して、スキャンFF_A、B、C、X、Y、D21は、それぞれ、「I15」、「I14」、「I13」、「xor11」、「xor10」、「I12」を保持する。また、スキャンFF_E21は、スキャンFF_D21に保持されていた「I11」のテスト信号を保持する。また、その他のスキャンFF21は不定値を保持する。なお、「xor11」は、スキャンFF_C21に保持されていた「I12」とスキャンFF_Z21に保持されていた不定値との排他的論理和である。
また、同様にして、クロック信号の6個目の立ち上がりに同期して、スキャンFF_A、B、C、X、Y、Z、D、E、F21は、それぞれ、「I16」、「I15」、「I14」、「xor12」、「xor11」、「xor10」、「I13」、「I12」、「I11」を保持する。なお、「xor11」は、スキャンFF_C21に保持されていた「I13」とスキャンFF_Z21に保持されていた不定値との排他的論理和である。
次に、クロック信号の6個目の立ち下がり時に、制御信号入力端子5からキャプチャ動作モードを指示する「0」の制御信号が入力される。そして、図9に示すように、クロック入力端子4から入力されるクロック信号の7個目の立ち上がりに同期して、最後段の制御FF242が「0」の信号を保持する(「0」固定)。また、スキャンFF21は、クロック信号の1個目の立ち上がりに同期して、キャプチャ動作モードに設定される。これにより、各スキャンFF21は保持していたテスト信号を対象回路1に入力する。また、各スキャンFF21は、対象回路1から出力される結果信号を保持する。具体的には、スキャンFF_A、B、C、X、Y、Z、D、E、F21は、それぞれ、「a1」、「b1」、「c1」、「x1」、「y1」、「z1」、「d1」、「e1」、「f1」の結果信号を保持する。
次に、クロック信号の7個目の立ち下がり時に、制御信号入力端子5からシフト動作モードを指示する「1」の制御信号が入力される。そして、スキャンFF21は、クロック信号の8個目の立ち上がりに同期して、シフト動作モードに設定される。これにより、スキャンFF_A21が「I18」のテスト信号を保持する。また、スキャンFF_B、C、Y、Z、E、F21は前段のスキャンFF21の信号を保持する。即ち、スキャンFF_B、C、Y、Z、E、F21は、それぞれ、「a1」、「b1」、「x1」、「y1」、「d1」、「e1」の結果信号を保持する。
また、クロック入力端子4から入力されるクロック信号の8個目の立ち上がりに同期して、3つの制御FF242は、リセット解除される。そして、最前段の制御FF242は固定値「1」の信号を保持する。この時点で、最後段の制御FF242は、前段の制御FF242の保持信号である「0」を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ243は、XOR回路241の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、スキャンFF_C、Z21の信号の排他的論理和の信号を保持する。具体的には、スキャンFF_D21は、「c1」、「z1」の排他的論理和「xor20」の信号を保持する。
また、スキャンFF_X21は、スキャンFF_C21の出力信号とスキャンFF_Z21の出力信号の排他的論理和の信号を保持する。即ち、スキャンFF_X21は、「c1」と「z1」の排他的論理和「xor13」を保持する。また、テスト出力端子6から「f1」の信号が出力される。
また、クロック入力端子4から入力されるクロック信号の8個目の立ち上がりに同期して、3つの制御FF242は、リセット解除される。そして、最前段の制御FF242は固定値「1」の信号を保持する。この時点で、最後段の制御FF242は、前段の制御FF242の保持信号である「0」を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ243は、XOR回路241の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、スキャンFF_C、Z21の信号の排他的論理和の信号を保持する。具体的には、スキャンFF_D21は、「c1」、「z1」の排他的論理和「xor20」の信号を保持する。
また、スキャンFF_X21は、スキャンFF_C21の出力信号とスキャンFF_Z21の出力信号の排他的論理和の信号を保持する。即ち、スキャンFF_X21は、「c1」と「z1」の排他的論理和「xor13」を保持する。また、テスト出力端子6から「f1」の信号が出力される。
次に、クロック信号の9個目の立ち上がりに同期して、スキャンFF_A21が「I19」のテスト信号を保持するとともに、「I18」のテスト信号をスキャンFF_B21に入力する。スキャンFF_B、C、Y、Z、E、F21は、それぞれ、「I18」、「a1」、「xor13」、「x1」、「xor20」、「d1」の信号を保持する。また、スキャンFF_X21は、「b1」と「y1」の排他的論理和「xor14」を保持する。また、テスト出力端子6から「e1」の信号が出力される。
また、クロック信号の9個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「0」の信号を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ243は、スキャンFF_C、Z21の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「b1」、「y1」の排他的論理和「xor21」の信号を保持する。
また、クロック信号の9個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「0」の信号を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ243は、スキャンFF_C、Z21の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「b1」、「y1」の排他的論理和「xor21」の信号を保持する。
次に、クロック信号の10個目の立ち上がりに同期して、スキャンFF_A21が「I20」のテスト信号を保持するとともに、「I19」のテスト信号をスキャンFF_B21に入力する。また、スキャンFF_B、C、Y、Z、E、F21は、それぞれ、「I19」、「I18」、「xor14」、「xor13」、「xor21」、「xor20」の信号を保持する。また、スキャンFF_X21は、「a1」と「x1」の排他的論理和「xor15」を保持する。また、テスト出力端子6から「d1」の信号が出力される。
また、クロック信号の10個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「1」の信号を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ243は、スキャンFF_C、Z21の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「a1」、「x1」の排他的論理和「xor22」の信号を保持する。
また、クロック信号の10個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「1」の信号を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ243は、スキャンFF_C、Z21の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「a1」、「x1」の排他的論理和「xor22」の信号を保持する。
次に、クロック信号の11個目の立ち上がりに同期して、スキャンFF_A21が「I21」のテスト信号を保持するとともに、「I20」のテスト信号をスキャンFF_B21に入力する。また、スキャンFF_B、C、Y、Z、E、F21は、それぞれ、「I20」、「I19」、「xor15」、「xor14」、「xor22」、「xor21」の信号を保持する。また、スキャンFF_X21は、「I18」と「xor13」の排他的論理和「xor16」を保持する。また、テスト出力端子6から「xor20」の信号が出力される。
また、クロック信号の11個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「1」の信号を保持する。同時に、最後段の制御FF242は、「1」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第1の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ243は、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「I18」の信号を保持する。
また、クロック信号の11個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「1」の信号を保持する。同時に、最後段の制御FF242は、「1」の信号をセレクタ243の制御端に入力する。そのため、セレクタ243は、第1の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ243は、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「I18」の信号を保持する。
同様にして、クロック信号の立ち上がりに同期して、スキャンFF_A21は、テスト入力端子3から入力されるテスト信号を保持する。また、スキャンFF_B、C、Y、Z、E、F21は前段のスキャンFF21の信号を保持する。また、スキャンFF_X21は、スキャンFF_C21の出力信号とスキャンFF_Z21の出力信号の排他的論理和の信号を保持する。また、スキャンFF_D21は、スキャンFF_C21の出力信号を保持する。そして、クロック信号の立ち上がりに同期して、テスト出力端子6から、順次、「xor21」、「xor22」、「I18」の信号が出力される。また、同時に、スキャンFF_A、B、C、X、Y、Z、D、E、F21に、それぞれ、「I23」、「I22」、「I21」、「xor18」、「xor17」、「xor16」、「I20」、「I19」、「I18」のテスト信号が保持される。なお、「xor17」は、「I19」と「xor14」の排他的論理和である。また、「xor18」は「I20」と「xor15」の排他的論理和である。
即ち、セレクタ243は、スキャンFF21がキャプチャ動作モードからシフト動作モードに遷移してから、3クロック分の時間(第1の時間)、XOR回路241の出力信号を選択して、スキャンFF_D21に入力する。また、セレクタ243は、シフト動作モードにおける当該3クロック以外の時間(第2の時間)において、スキャンFF_C21の出力信号を選択して、スキャンFF_D21に入力する。これにより、テスト出力端子6から、「f1」、「e1」、「d1」、「xor20」、「xor21」、「xor22」の結果信号が出力される。そして、「xor20」は、「c1」、「z1」の排他的論理和であり、「xor21」は、「b1」、「y1」の排他的論理和であり、「xor22」は、「a1」、「x1」の排他的論理和であるので、テスト出力端子6から、スキャンFF_C、X、Y、Z21が保持した結果信号を反映させた信号が出力されることとなる。
以上、説明したように、本発明の実施の形態2にかかるスキャンパス回路201及び半導体集積回路101によれば、実施の形態1と同様の効果が得られることは勿論のこと、特に、テスト出力端子6から、「c1」、「z1」の排他的論理和である「xor20」と、「b1」、「y1」の排他的論理和である「xor21」と、「a1」、「x1」の排他的論理和である「xor22」とが順次出力される。
これにより、「c1」、「x1」、「y1」、「z1」の全ての排他的論理和である「xor1」と期待値とを比較する場合に比べて、テスト信号のパタンをより容易に設計することができる。
これにより、「c1」、「x1」、「y1」、「z1」の全ての排他的論理和である「xor1」と期待値とを比較する場合に比べて、テスト信号のパタンをより容易に設計することができる。
変形例1.
本発明の実施の形態2の変形例1にかかる半導体集積回路102及びスキャンパス回路202について、図10を参照しながら説明する。変形例1にかかる半導体集積回路102は、図10に示すように、スキップ回路25の構成が実施の形態2にかかる半導体集積回路101及びスキャンパス回路201と異なり、その他の構成については、図7と同様であるため、同一の符号を付すとともに、その説明を省略する。
本発明の実施の形態2の変形例1にかかる半導体集積回路102及びスキャンパス回路202について、図10を参照しながら説明する。変形例1にかかる半導体集積回路102は、図10に示すように、スキップ回路25の構成が実施の形態2にかかる半導体集積回路101及びスキャンパス回路201と異なり、その他の構成については、図7と同様であるため、同一の符号を付すとともに、その説明を省略する。
スキップ回路25は、図10に示すように、OR回路251、XOR回路252(論理回路)、3つの制御FF242、セレクタ243、論理制御端子253(図10のXCTL)等を備えている。なお、スキップ回路25に備えられる制御FF242の数は本実施形態に限られるものではなく、第2のスキャンFF群81に備えられるスキャンFF21と同数設けられればよい。
OR回路251は、論理制御端子253及びスキャンFF_Z21のSO端子と接続されている。そして、OR回路251は、論理制御端子253から入力される制御信号と、スキャンFF_Z21から出力される出力信号との論理和をXOR回路252に出力する。
XOR回路252は、スキャンFF_C21のSO端子とOR回路251の出力信号の排他的論理和を演算する。
そして、図9に示すように、スキャンFF21がキャプチャ動作モードからシフト動作モードに遷移してから3クロック分の時間(第1の時間)において、クロック信号の立ち上がりに同期して、スキャンFF_D21には、「xor20」、「xor21」、「xor22」の信号が順次保持される。ここで、例えば、論理制御端子253から「1」の信号を入力された場合、信号「xor20」、「xor21」、「xor22」には、それぞれ、「z1」、「y1」、「x1」の信号が反映されなくなる。即ち、信号「xor20」、「xor21」、「xor22」は、それぞれ、「c1」、「b1」、「a1」のみを反映する値となる。
従って、論理制御端子253から「1」の信号を入力することにより、テスト出力端子6から出力される「xor20」、「xor21」、「xor22」の値を、それぞれ、「c1」、「b1」、「a1」のみを反映する値とすることができる。
これにより、テスト出力端子6から出力された「xor20」、「xor21」、「xor22」の信号が期待値と異なった場合に、第1のスキャンFF群7のスキャンFF21と、第2のスキャンFF群81のスキャンFF21の何れの結果信号が期待値と異なるのかを容易に判別することが可能となる。そして、さらに容易に対象回路1の故障を検出することができる。
従って、論理制御端子253から「1」の信号を入力することにより、テスト出力端子6から出力される「xor20」、「xor21」、「xor22」の値を、それぞれ、「c1」、「b1」、「a1」のみを反映する値とすることができる。
これにより、テスト出力端子6から出力された「xor20」、「xor21」、「xor22」の信号が期待値と異なった場合に、第1のスキャンFF群7のスキャンFF21と、第2のスキャンFF群81のスキャンFF21の何れの結果信号が期待値と異なるのかを容易に判別することが可能となる。そして、さらに容易に対象回路1の故障を検出することができる。
発明の実施の形態3.
本発明の実施の形態3にかかる半導体集積回路103及びスキャンパス回路203は、図11に示すように、第1のスキャンFF群71、第2のスキャンFF群82及びスキップ回路26の構成が実施の形態2にかかる半導体集積回路101及びスキャンパス回路201と異なり、その他の構成については、図7と同様であるため、同一の符号を付すとともに、その説明を省略する。
本発明の実施の形態3にかかる半導体集積回路103及びスキャンパス回路203は、図11に示すように、第1のスキャンFF群71、第2のスキャンFF群82及びスキップ回路26の構成が実施の形態2にかかる半導体集積回路101及びスキャンパス回路201と異なり、その他の構成については、図7と同様であるため、同一の符号を付すとともに、その説明を省略する。
第1のスキャンFF群71は、シリアル接続されたK個(Kは、K≧1を満たす整数)のスキャンFF21を備えている。ここでは、説明の簡単のため、K=3の場合を例示して説明する。即ち、第1のスキャンFF群71は、3個のスキャンFF_A、B、C21を備えている。
また、第1のスキャンFF群71の最前段のスキャンFF_A21は、テスト入力端子3と接続されている。
また、第1のスキャンFF群71のスキャンFF21のSO端子は後段のスキャンFF21のSI端子に接続されるとともに、スキップ回路26と接続されている。
また、第1のスキャンFF群71の最後段のスキャンFF_C21のSO端子はスキップ回路26に接続されている。
なお、第1のスキャンFF群71に備えられるスキャンFF21の数は本実施形態に限られるものではない。
また、第1のスキャンFF群71の最前段のスキャンFF_A21は、テスト入力端子3と接続されている。
また、第1のスキャンFF群71のスキャンFF21のSO端子は後段のスキャンFF21のSI端子に接続されるとともに、スキップ回路26と接続されている。
また、第1のスキャンFF群71の最後段のスキャンFF_C21のSO端子はスキップ回路26に接続されている。
なお、第1のスキャンFF群71に備えられるスキャンFF21の数は本実施形態に限られるものではない。
第2のスキャンFF群82は、S個(Sは、S≧1を満たす整数)のスキャンFF21を備えている。ここでは、説明の簡単のため、S=3の場合を例示して説明する。即ち、第2のスキャンFF群82は、3個のスキャンFF_X、Y、Z21を備えている。
また、第2のスキャンFF群82のスキャンFF21のSI端子は、スキップ回路26を介して、第1のスキャンFF群71と接続されている。また、第2のスキャンFF群82の最後段のスキャンFF_Z21のSO端子はスキップ回路26のセレクタ262の第2の入力端(後述)に接続されるとともに、スキップ回路26に接続されている。また、第2のスキャンFF群82のその他のスキャンFF21のSO端子は、スキップ回路26に接続されている。
なお、第2のスキャンFF群82に備えられるスキャンFF21の数は本実施形態に限られるものではない。
また、第2のスキャンFF群82のスキャンFF21のSI端子は、スキップ回路26を介して、第1のスキャンFF群71と接続されている。また、第2のスキャンFF群82の最後段のスキャンFF_Z21のSO端子はスキップ回路26のセレクタ262の第2の入力端(後述)に接続されるとともに、スキップ回路26に接続されている。また、第2のスキャンFF群82のその他のスキャンFF21のSO端子は、スキップ回路26に接続されている。
なお、第2のスキャンFF群82に備えられるスキャンFF21の数は本実施形態に限られるものではない。
スキップ回路26は、図11に示すように、多入力シグネチャレジスタ(MISR(Multi Input Signature Regisuter))261、3つの制御FF242、セレクタ262等を備えている。なお、スキップ回路26に備えられる制御FF242の数は本実施形態に限られるものではなく、第2のスキャンFF群82に備えられるスキャンFF21と同数設けられればよい。
多入力シグネチャレジスタ261は、第1のスキャンFF群71のk段目(kは、1≦k≦K)のスキャンFF21の出力信号と、第2のスキャンFF群82のs段目(kは、1≦s≦S)のスキャンFF21の出力信号との排他的論理和を演算する複数のXOR回路を備えている。
具体的には、多入力シグネチャレジスタ261は、第1のXOR回路263、第2のXOR回路264、第3のXOR回路265、第4のXOR回路266を備えている。
第1のXOR回路263は、スキャンFF_Y21の出力信号とスキャンFF_Z21の出力信号との排他的論理和を演算し、第2のXOR回路264に入力する。
第2のXOR回路264は、スキャンFF_A21の出力信号と第1のXOR回路263の出力信号との排他的論理和を演算し、スキャンFF_X21に入力する。
第3のXOR回路265は、スキャンFF_B21の出力信号とスキャンFF_X21の出力信号との排他的論理和を演算し、スキャンFF_Y21に入力する。
第4のXOR回路266は、スキャンFF_C21の出力信号とスキャンFF_Y21の出力信号との排他的論理和を演算し、スキャンFF_Z21に入力する。
第1のXOR回路263は、スキャンFF_Y21の出力信号とスキャンFF_Z21の出力信号との排他的論理和を演算し、第2のXOR回路264に入力する。
第2のXOR回路264は、スキャンFF_A21の出力信号と第1のXOR回路263の出力信号との排他的論理和を演算し、スキャンFF_X21に入力する。
第3のXOR回路265は、スキャンFF_B21の出力信号とスキャンFF_X21の出力信号との排他的論理和を演算し、スキャンFF_Y21に入力する。
第4のXOR回路266は、スキャンFF_C21の出力信号とスキャンFF_Y21の出力信号との排他的論理和を演算し、スキャンFF_Z21に入力する。
セレクタ262は、第1の入力端、第2の入力端、制御端、出力端を備えている。
第1の入力端(図11の「1」)は、第1のスキャンFF群71の最後段のスキャンFF_C21のSO端子と接続されている。また、第2の入力端(図11の「0」)は、第2のスキャンFF群82の最後段のスキャンFF_Z21のSO端子と接続されている。また、出力端は、第3のスキャンFF群9の最前段のスキャンFF_D21のSI端子に接続されている。
そして、セレクタ262は、制御端に入力される制御信号に基づいて、第1の入力端に入力される信号又は第2の入力端に入力される信号の何れかを選択して、スキャンFF_D21に入力する。
具体的には、セレクタ262は、制御端に「1」の制御信号が入力された場合に、第1の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ262は、「1」の制御信号が入力された場合に、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。
また、セレクタ262は、制御端に「0」の制御信号が入力された場合に、第2の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ262は、「0」の制御信号が入力された場合に、スキャンFF_Z21の出力信号を選択してスキャンFF_D21に入力する。
第1の入力端(図11の「1」)は、第1のスキャンFF群71の最後段のスキャンFF_C21のSO端子と接続されている。また、第2の入力端(図11の「0」)は、第2のスキャンFF群82の最後段のスキャンFF_Z21のSO端子と接続されている。また、出力端は、第3のスキャンFF群9の最前段のスキャンFF_D21のSI端子に接続されている。
そして、セレクタ262は、制御端に入力される制御信号に基づいて、第1の入力端に入力される信号又は第2の入力端に入力される信号の何れかを選択して、スキャンFF_D21に入力する。
具体的には、セレクタ262は、制御端に「1」の制御信号が入力された場合に、第1の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ262は、「1」の制御信号が入力された場合に、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。
また、セレクタ262は、制御端に「0」の制御信号が入力された場合に、第2の入力端に入力された信号を選択してスキャンFF_D21に入力する。即ち、セレクタ262は、「0」の制御信号が入力された場合に、スキャンFF_Z21の出力信号を選択してスキャンFF_D21に入力する。
次に、本発明の実施の形態3にかかるスキャンパス回路203におけるシフト動作について、図12に示すフローチャートを参照しながら説明する。なお、ステップS301、S302、S308の処理は、図8に示すステップS201、S202、S208と同様であるため、その説明を省略する。
次に、クロック入力端子4から入力されるクロック信号の4個目の立ち上がりに同期して、スキャンFF_Y21及びスキャンFF_Z21の排他的論理和と、スキャンFF_A21に保持されていた3ビット目のテスト信号との排他的論理和がスキャンFF_X21に保持される(ステップS303)。
また、この時、セレクタ262は、最後段の制御FF242から制御端に入力された信号が「1」か否かを判断する(ステップS304)。
ステップS304において、セレクタ262が、制御端に入力された信号が「0」であると判断した場合には(ステップS304;No)、セレクタ262は、第2の入力端に入力される信号を選択してスキャンFF_D21に入力する。換言すれば、セレクタ262は、スキャンFF_Z21の出力信号を選択して、スキャンFF_D21に入力する。
また、スキャンFF_D21は、セレクタ262から入力される信号を保持する(ステップS305)。
また、スキャンFF_D21は、セレクタ262から入力される信号を保持する(ステップS305)。
ステップS304において、セレクタ262が、制御端に入力された信号が「1」であると判断した場合には(ステップS304;Yes)、セレクタ262は、第1の入力端に入力される信号を選択してスキャンFF_D21に入力する。換言すれば、セレクタ262は、スキャンFF_C21から出力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ262は、1ビット目のテスト信号をスキャンFF_D21に入力する。
また、スキャンFF_D21は、セレクタ262から入力される信号を保持する(ステップS306)。
また、スキャンFF_D21は、セレクタ262から入力される信号を保持する(ステップS306)。
次に、クロック入力端子4から入力されるクロック信号の5個目の立ち上がりに同期して、スキャンFF_B21の出力信号とスキャンFF_X21の出力信号との排他的論理和の信号がスキャンFF_Y21に保持される。また、クロック信号の6個目の立ち上がりに同期して、スキャンFF_C21の出力信号とスキャンFF_Y21に保持されていた信号がスキャンFF_Z21に保持される(ステップS307)。
即ち、本実施形態にかかるスキャンパス回路203では、9つのスキャンFF21に信号をシフト入力するのに6クロック分の時間を要する。
次に、本発明の実施の形態3にかかるスキャンパス回路203における各端子の出力信号、各スキャンFF21の保持信号、最後段の制御FF242の保持信号、及びセレクタ262の出力信号の経時変化について、図13に示すタイミングチャートを参照しながら説明する。
ここで、初期状態において、各スキャンFF21は、不定値を保持していることとし、最後段の制御FF242は「0」を保持していることとする。
ここで、初期状態において、各スキャンFF21は、不定値を保持していることとし、最後段の制御FF242は「0」を保持していることとする。
まず、制御信号入力端子5からシフト動作モードを指示する「1」の制御信号が入力されるとともに、テスト入力端子3から「I11」のテスト信号が入力される。また、スキャンFF21は、クロック信号の1個目の立ち上がりに同期して、シフト動作モードに設定される。これにより、スキャンFF_A21が「I11」のテスト信号を保持する。また、スキャンFF_B、C、E、F21は前段のスキャンFF21の信号を保持する。
また、図13に示すように、クロック入力端子4から入力されるクロック信号の1個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「1」を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第2の入力端に入力される信号をスキャンFF_D21に入力する。そして、スキャンFF_D21は、スキャンFF_Z21の出力信号を保持する。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号及びスキャンFF_Z21の出力信号の排他的論理和とスキャンFF_A21の出力信号との排他的論理和の信号を保持する。スキャンFF_Y21は、スキャンFF_B21の出力信号とスキャンFF_X21の出力信号との排他的論理和の信号を保持する。スキャンFF_Z21は、スキャンFF_C21の出力信号とスキャンFF_Y21の出力信号との排他的論理和の信号を保持する。即ち、スキャンFF_B〜F、X〜Zは不定値を保持する。
また、図13に示すように、クロック入力端子4から入力されるクロック信号の1個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「1」を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第2の入力端に入力される信号をスキャンFF_D21に入力する。そして、スキャンFF_D21は、スキャンFF_Z21の出力信号を保持する。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号及びスキャンFF_Z21の出力信号の排他的論理和とスキャンFF_A21の出力信号との排他的論理和の信号を保持する。スキャンFF_Y21は、スキャンFF_B21の出力信号とスキャンFF_X21の出力信号との排他的論理和の信号を保持する。スキャンFF_Z21は、スキャンFF_C21の出力信号とスキャンFF_Y21の出力信号との排他的論理和の信号を保持する。即ち、スキャンFF_B〜F、X〜Zは不定値を保持する。
同様にして、クロック信号の2個目の立ち上がりに同期して、スキャンFF_A21は、テスト入力端子3から入力される「I12」のテスト信号を保持する。同時に、スキャンFF_A21は、「I11」のテスト信号をスキャンFF_B21に入力する。また、スキャンFF_B21は、スキャンFF_A21から入力された「I11」のテスト信号を保持する。
また、クロック信号の2個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「0」を保持する。同時に、最後段の制御FF242は、セレクタ262の制御端に「0」の信号を入力する。そのため、スキャンFF_D21は、スキャンFF_Z21の出力信号を保持する。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号及びスキャンFF_Z21の出力信号の排他的論理和とスキャンFF_A21の出力信号との排他的論理和の信号を保持する。スキャンFF_Y21は、スキャンFF_B21の出力信号とスキャンFF_X21の出力信号との排他的論理和の信号を保持する。スキャンFF_Z21は、スキャンFF_C21の出力信号とスキャンFF_Y21の出力信号との排他的論理和の信号を保持する。その他のスキャンFF21も前段のスキャンFF21の信号を保持する。即ち、スキャンFF_C〜F、X〜Z21は不定値を保持する。
また、クロック信号の2個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「0」を保持する。同時に、最後段の制御FF242は、セレクタ262の制御端に「0」の信号を入力する。そのため、スキャンFF_D21は、スキャンFF_Z21の出力信号を保持する。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号及びスキャンFF_Z21の出力信号の排他的論理和とスキャンFF_A21の出力信号との排他的論理和の信号を保持する。スキャンFF_Y21は、スキャンFF_B21の出力信号とスキャンFF_X21の出力信号との排他的論理和の信号を保持する。スキャンFF_Z21は、スキャンFF_C21の出力信号とスキャンFF_Y21の出力信号との排他的論理和の信号を保持する。その他のスキャンFF21も前段のスキャンFF21の信号を保持する。即ち、スキャンFF_C〜F、X〜Z21は不定値を保持する。
次に、クロック信号の3個目の立ち上がりに同期して、スキャンFF_A21は「I13」のテスト信号を保持し、スキャンFF_B21は「I12」のテスト信号を保持し、スキャンFF_C21は「I11」のテスト信号を保持する。
また、クロック信号の3個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「1」を保持する。同時に、最後段の制御FF242は、セレクタ262の制御端に「0」の信号を入力する。そのため、スキャンFF_D21は、スキャンFF_Z21の出力信号を保持する。また、その他のスキャンFF21は不定値を保持する。
また、クロック信号の3個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の保持信号「1」を保持する。同時に、最後段の制御FF242は、セレクタ262の制御端に「0」の信号を入力する。そのため、スキャンFF_D21は、スキャンFF_Z21の出力信号を保持する。また、その他のスキャンFF21は不定値を保持する。
そして、クロック信号の4個目の立ち上がりに同期して、スキャンFF_A21は「I14」のテスト信号を保持し、スキャンFF_B21は「I13」のテスト信号を保持し、スキャンFF_C21は「I12」のテスト信号を保持する。
また、同時に、スキャンFF_D21は、セレクタ262の出力信号を保持する。このとき、最後段の制御FF242は、「1」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第1の入力端に入力される信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、スキャンFF_C21に保持されていた「I11」のテスト信号を保持する。
また、同時に、スキャンFF_X21は、スキャンFF_Y21及びスキャンFF_Z21の排他的論理和である不定値と、スキャンFF_A21に保持されていた「I13」との排他的論理和「xor30」を保持する。
その他のスキャンFF21は不定値を保持する。
また、同時に、スキャンFF_D21は、セレクタ262の出力信号を保持する。このとき、最後段の制御FF242は、「1」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第1の入力端に入力される信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、スキャンFF_C21に保持されていた「I11」のテスト信号を保持する。
また、同時に、スキャンFF_X21は、スキャンFF_Y21及びスキャンFF_Z21の排他的論理和である不定値と、スキャンFF_A21に保持されていた「I13」との排他的論理和「xor30」を保持する。
その他のスキャンFF21は不定値を保持する。
同様にして、クロック信号の5個目の立ち上がりに同期して、スキャンFF_A、B、C、X、D21は、それぞれ、「I15」、「I14」、「I13」、「xor31」、「I12」を保持する。また、スキャンFF_E21は、スキャンFF_D21に保持されていた「I11」のテスト信号を保持する。また、スキャンFF_Y21は、スキャンFF_B21に保持されていた「I13」とスキャンFF_X21に保持されていた「xor30」との排他的論理和「xor40」を保持する。また、その他のスキャンFF21は不定値を保持する。なお、「xor31」は、スキャンFF_X21は、スキャンFF_Y21及びスキャンFF_Z21の排他的論理和である不定値と、スキャンFF_A21に保持されていた「I14」との排他的論理和である。
また、同様にして、クロック信号の6個目の立ち上がりに同期して、スキャンFF_A、B、C、X、Y、Z、D、E、F21は、それぞれ、「I16」、「I15」、「I14」、「xor32」、「xor41」、「xor50」、「I13」、「I12」、「I11」を保持する。なお、「xor32」は、スキャンFF_Y21の出力信号「xor40」及びスキャンFF_Z21の不定値の排他的論理和とスキャンFF_A21に保持されていた「I15」との排他的論理和である。「xor41」は、スキャンFF_B21の出力信号「I14」とスキャンFF_X21に保持されていた「xor31」との排他的論理和である。「xor50」は、スキャンFF_C21の出力信号「I13」とスキャンFF_Y21に保持されていた「xor40」との排他的論理和である。
次に、クロック信号の6個目の立ち下がり時に、制御信号入力端子5からキャプチャ動作モードを指示する「0」の制御信号が入力される。そして、図13に示すように、クロック入力端子4から入力されるクロック信号の7個目の立ち上がりに同期して、最後段の制御FF242が「0」の信号を保持する(「0」固定)。また、スキャンFF21は、クロック信号の1個目の立ち上がりに同期して、キャプチャ動作モードに設定される。これにより、各スキャンFF21は保持していたテスト信号を対象回路1に入力する。また、各スキャンFF21は、対象回路1から出力される結果信号を保持する。具体的には、スキャンFF_A、B、C、X、Y、Z、D、E、F21は、それぞれ、「a1」、「b1」、「c1」、「x1」、「y1」、「z1」、「d1」、「e1」、「f1」の結果信号を保持する。
次に、クロック信号の7個目の立ち下がり時に、制御信号入力端子5からシフト動作モードを指示する「1」の制御信号が入力される。そして、スキャンFF21は、クロック信号の8個目の立ち上がりに同期して、シフト動作モードに設定される。これにより、スキャンFF_A21が「I18」のテスト信号を保持する。また、スキャンFF_B、C、E、F21は前段のスキャンFF21の信号を保持する。即ち、スキャンFF_B、C、E、F21は、それぞれ、「a1」、「b1」、「d1」、「e1」の結果信号を保持する。
また、クロック入力端子4から入力されるクロック信号の8個目の立ち上がりに同期して、3つの制御FF242は、リセット解除される。そして、最前段の制御FF242は固定値「1」の信号を保持する。この時点で、最後段の制御FF242は、前段の制御FF242の保持信号である「0」を保持し、「0」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ262は、スキャンFF_Z21の出力信号「z1」を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「z1」の信号を保持する。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号「y1」及びスキャンFF_Z21の出力信号「z1」の排他的論理和とスキャンFF_A21に保持されていた「a1」との排他的論理和「xor33」の信号を保持する。また、スキャンFF_Y21は、スキャンFF_B21の出力信号「b1」とスキャンFF_X21の出力信号「x1」の排他的論理和「xor42」の信号を保持する。また、スキャンFF_Z21は、スキャンFF_C21の出力信号「c1」とスキャンFF_Y21の出力信号「y1」の排他的論理和「xor51」の信号を保持する。また、テスト出力端子6から「f1」の信号が出力される。
また、クロック入力端子4から入力されるクロック信号の8個目の立ち上がりに同期して、3つの制御FF242は、リセット解除される。そして、最前段の制御FF242は固定値「1」の信号を保持する。この時点で、最後段の制御FF242は、前段の制御FF242の保持信号である「0」を保持し、「0」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ262は、スキャンFF_Z21の出力信号「z1」を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「z1」の信号を保持する。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号「y1」及びスキャンFF_Z21の出力信号「z1」の排他的論理和とスキャンFF_A21に保持されていた「a1」との排他的論理和「xor33」の信号を保持する。また、スキャンFF_Y21は、スキャンFF_B21の出力信号「b1」とスキャンFF_X21の出力信号「x1」の排他的論理和「xor42」の信号を保持する。また、スキャンFF_Z21は、スキャンFF_C21の出力信号「c1」とスキャンFF_Y21の出力信号「y1」の排他的論理和「xor51」の信号を保持する。また、テスト出力端子6から「f1」の信号が出力される。
次に、クロック信号の9個目の立ち上がりに同期して、スキャンFF_A21が「I19」のテスト信号を保持するとともに、「I18」のテスト信号をスキャンFF_B21に入力する。そして、スキャンFF_B、C、E、F21は、それぞれ、「I18」、「a1」、「z1」、「d1」の信号を保持する。
また、クロック信号の9個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「0」の信号を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ262は、スキャンFF_Z21の出力信号「xor51」を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「c1」、「y1」の排他的論理和「xor51」の信号を保持する。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号「xor42」及びスキャンFF_Z21の出力信号「xor51」の排他的論理和とスキャンFF_A21に保持されていた「I18」との排他的論理和「xor34」の信号を保持する。また、スキャンFF_Y21は、スキャンFF_B21の出力信号「a1」とスキャンFF_X21の出力信号「xor33」の排他的論理和「xor43」の信号を保持する。また、スキャンFF_Z21は、スキャンFF_C21の出力信号「b1」とスキャンFF_Y21の出力信号「xor42」の排他的論理和「xor52」の信号を保持する。また、テスト出力端子6から「e1」の信号が出力される。
また、クロック信号の9個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「0」の信号を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ262は、スキャンFF_Z21の出力信号「xor51」を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「c1」、「y1」の排他的論理和「xor51」の信号を保持する。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号「xor42」及びスキャンFF_Z21の出力信号「xor51」の排他的論理和とスキャンFF_A21に保持されていた「I18」との排他的論理和「xor34」の信号を保持する。また、スキャンFF_Y21は、スキャンFF_B21の出力信号「a1」とスキャンFF_X21の出力信号「xor33」の排他的論理和「xor43」の信号を保持する。また、スキャンFF_Z21は、スキャンFF_C21の出力信号「b1」とスキャンFF_Y21の出力信号「xor42」の排他的論理和「xor52」の信号を保持する。また、テスト出力端子6から「e1」の信号が出力される。
次に、クロック信号の10個目の立ち上がりに同期して、スキャンFF_A21が「I20」のテスト信号を保持するとともに、「I19」のテスト信号をスキャンFF_B21に入力する。また、スキャンFF_B、C、E、F21は、それぞれ、「I19」、「I18」、「xor51」、「z1」の信号を保持する。
また、クロック信号の10個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「1」の信号を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ262は、スキャンFF_Z21の出力信号「xor52」を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「b1」と「xor42」の排他的論理和「xor52」の信号を保持する。ここで、「xor42」は、「b1」と「x1」の排他的論理和である。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号「xor43」及びスキャンFF_Z21の出力信号「xor52」の排他的論理和とスキャンFF_A21に保持されていた「I19」との排他的論理和「xor35」の信号を保持する。また、スキャンFF_Y21は、スキャンFF_B21の出力信号「I18」とスキャンFF_X21の出力信号「xor34」の排他的論理和「xor44」の信号を保持する。また、スキャンFF_Z21は、スキャンFF_C21の出力信号「a1」とスキャンFF_Y21の出力信号「xor43」の排他的論理和「xor53」の信号を保持する。また、テスト出力端子6から「d1」の信号が出力される。
また、クロック信号の10個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「1」の信号を保持する。同時に、最後段の制御FF242は、「0」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第2の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ262は、スキャンFF_Z21の出力信号「xor52」を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「b1」と「xor42」の排他的論理和「xor52」の信号を保持する。ここで、「xor42」は、「b1」と「x1」の排他的論理和である。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号「xor43」及びスキャンFF_Z21の出力信号「xor52」の排他的論理和とスキャンFF_A21に保持されていた「I19」との排他的論理和「xor35」の信号を保持する。また、スキャンFF_Y21は、スキャンFF_B21の出力信号「I18」とスキャンFF_X21の出力信号「xor34」の排他的論理和「xor44」の信号を保持する。また、スキャンFF_Z21は、スキャンFF_C21の出力信号「a1」とスキャンFF_Y21の出力信号「xor43」の排他的論理和「xor53」の信号を保持する。また、テスト出力端子6から「d1」の信号が出力される。
次に、クロック信号の11個目の立ち上がりに同期して、スキャンFF_A21が「I21」のテスト信号を保持するとともに、「I20」のテスト信号をスキャンFF_B21に入力する。また、スキャンFF_B、C、E、F21は、それぞれ、「I20」、「I19」、「xor52」、「xor51」の信号を保持する。
また、クロック信号の11個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「1」の信号を保持する。同時に、最後段の制御FF242は、「1」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第1の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ262は、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「I18」の信号を保持する。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号「xor44」及びスキャンFF_Z21の出力信号「xor53」の排他的論理和とスキャンFF_A21に保持されていた「I20」との排他的論理和「xor36」の信号を保持する。また、スキャンFF_Y21は、スキャンFF_B21の出力信号「I19」とスキャンFF_X21の出力信号「xor35」の排他的論理和「xor45」の信号を保持する。また、スキャンFF_Z21は、スキャンFF_C21の出力信号「I18」とスキャンFF_Y21の出力信号「xor44」の排他的論理和「xor54」の信号を保持する。また、テスト出力端子6から「z1」の信号が出力される。
また、クロック信号の11個目の立ち上がりに同期して、最後段の制御FF242は、前段の制御FF242の「1」の信号を保持する。同時に、最後段の制御FF242は、「1」の信号をセレクタ262の制御端に入力する。そのため、セレクタ262は、第1の入力端に入力される信号を選択して、スキャンFF_D21に入力する。即ち、セレクタ262は、スキャンFF_C21の出力信号を選択してスキャンFF_D21に入力する。従って、スキャンFF_D21は、「I18」の信号を保持する。
また、スキャンFF_X21は、スキャンFF_Y21の出力信号「xor44」及びスキャンFF_Z21の出力信号「xor53」の排他的論理和とスキャンFF_A21に保持されていた「I20」との排他的論理和「xor36」の信号を保持する。また、スキャンFF_Y21は、スキャンFF_B21の出力信号「I19」とスキャンFF_X21の出力信号「xor35」の排他的論理和「xor45」の信号を保持する。また、スキャンFF_Z21は、スキャンFF_C21の出力信号「I18」とスキャンFF_Y21の出力信号「xor44」の排他的論理和「xor54」の信号を保持する。また、テスト出力端子6から「z1」の信号が出力される。
同様にして、クロック信号の立ち上がりに同期して、スキャンFF_A21は、テスト入力端子3から入力されるテスト信号を保持する。また、スキャンFF_B、C、E、F21は前段のスキャンFF21の信号を保持する。また、スキャンFF_X21は、スキャンFF_Y21の出力信号及びスキャンFF_Z21の出力信号の排他的論理和とスキャンFF_A21の出力信号との排他的論理和の信号を保持する。また、スキャンFF_Y21は、スキャンFF_B21の出力信号とスキャンFF_X21の出力信号との排他的論理和を保持する。また、スキャンFF_Z21は、スキャンFF_C21の出力信号とスキャンFF_Y21の出力信号との排他的論理和を保持する。また、スキャンFF_D21は、スキャンFF_C21の出力信号を保持する。そして、クロック信号の立ち上がりに同期して、テスト出力端子6から、順次、「xor51」、「xor52」、「I18」の信号が出力される。また、同時に、スキャンFF_A、B、C、X、Y、Z、D、E、F21に、それぞれ、「I23」、「I22」、「I21」、「xor38」、「xor47」、「xor56」、「I20」、「I19」、「I18」のテスト信号が保持される。
即ち、セレクタ262は、スキャンFF21がキャプチャ動作モードからシフト動作モードに遷移してから、3クロック分の時間(第1の時間)、スキャンFF_Z21の出力信号を選択して、スキャンFF_D21に入力する。また、セレクタ262は、シフト動作モードにおける当該3クロック以外の時間(第2の時間)において、スキャンFF_C21の出力信号を選択して、スキャンFF_D21に入力する。これにより、テスト出力端子6から、「f1」、「e1」、「d1」、「z1」、「xor51」、「xor52」の結果信号が出力される。そして、「xor51」は、「c1」、「y1」の排他的論理和であり、「xor52」は、「b1」、「xor42」の排他的論理和であり、「xor42」は、「b1」、「x1」の排他的論理和であるので、テスト出力端子6から、スキャンFF_B、C、X、Y、Z21が保持した結果信号を反映させた信号が出力されることとなる。
以上、説明したように、本発明の実施の形態3にかかるスキャンパス回路203及び半導体集積回路103によれば、実施の形態2と同様の効果が得られることは勿論のこと、特に、テスト出力端子6から、スキャンFF_B、C、X、Y、Z21が保持した結果信号を反映させた信号が出力される。
そして、テスト出力端子6から出力される信号と期待信号とを比較することにより、各スキャンFF21が接続された回路の故障について検出することができる。
そして、テスト出力端子6から出力される信号と期待信号とを比較することにより、各スキャンFF21が接続された回路の故障について検出することができる。
なお、第1のスキャンFF群7(71)、第2のスキャンFF群8(81、82)、第3のスキャンFF群9のセットが複数接続されてスキャンパス回路200(201、202、203)が構成されてもよい。その場合に、実施の形態1、2、変形例1においては、前段の第3のスキャンFF群9が後段の第1のスキャンFF群7として機能し、後段の第1のスキャンFF群7が省略されて、各セットが接続されてもよい。
以上、説明したように、本発明においては、スキャンFF21のシフト動作モードに要する時間が短縮される。そして、テスト所要時間の多くを占めるのがシフトにかかる時間である。本発明では、シフト動作モードに要する時間を短縮できるため、テスト所要時間を短縮することができる。
例えば、10,000個のスキャンFFがシリアル接続されたスキャンチェーンにおいて、パタン数5,000個のテスト信号をシフト入力する場合に、シフト動作モードにかかるテスト所要時間が200nsとする。ここで、スキャンチェーン長はスキャンチェーン1本に設けられるスキャンFFの数で表される。また、テスト所要時間は、おおよそ(テスト信号のパタン数)×(スキャンチェーン長)に比例する。
まず、従来技術のように、1本のスキャンチェーンを4本に分割した場合のテスト所要時間を算出する。1本のスキャンチェーンを4本に分割したことにより、テスト信号のパタン数は増加する。そして、テスト信号のパタン数が、5,000パタンのうちの2割の1、000パタンが1、300パタンに増加したとすると、テスト所要時間は、(10,000×4,000+(10,000÷4)×1,300)×200(ns)=8.65(sec)となる。
次に、本発明のようにスキャンFF21をスキップする場合のテスト所要時間を算出する。ここで、スキップするスキャンFF21の割合を全体の3割とする。また、スキャンFF21をスキップすることによるテスト信号の増加を全体の1割とすると、テスト所要時間は、((10,000×0.7)×5,500×200(ns)=7.70(sec)となる。従って、本発明により、従来技術のテスト所要時間を約11%短縮することができる。実際には、半導体集積回路には多数のスキャンパス回路が搭載されるため、スキャンパス回路1つあたりでは僅かなテスト時間の削減であっても、半導体集積回路のテスト所要時間の削減効果は大きい。
例えば、10,000個のスキャンFFがシリアル接続されたスキャンチェーンにおいて、パタン数5,000個のテスト信号をシフト入力する場合に、シフト動作モードにかかるテスト所要時間が200nsとする。ここで、スキャンチェーン長はスキャンチェーン1本に設けられるスキャンFFの数で表される。また、テスト所要時間は、おおよそ(テスト信号のパタン数)×(スキャンチェーン長)に比例する。
まず、従来技術のように、1本のスキャンチェーンを4本に分割した場合のテスト所要時間を算出する。1本のスキャンチェーンを4本に分割したことにより、テスト信号のパタン数は増加する。そして、テスト信号のパタン数が、5,000パタンのうちの2割の1、000パタンが1、300パタンに増加したとすると、テスト所要時間は、(10,000×4,000+(10,000÷4)×1,300)×200(ns)=8.65(sec)となる。
次に、本発明のようにスキャンFF21をスキップする場合のテスト所要時間を算出する。ここで、スキップするスキャンFF21の割合を全体の3割とする。また、スキャンFF21をスキップすることによるテスト信号の増加を全体の1割とすると、テスト所要時間は、((10,000×0.7)×5,500×200(ns)=7.70(sec)となる。従って、本発明により、従来技術のテスト所要時間を約11%短縮することができる。実際には、半導体集積回路には多数のスキャンパス回路が搭載されるため、スキャンパス回路1つあたりでは僅かなテスト時間の削減であっても、半導体集積回路のテスト所要時間の削減効果は大きい。
なお、分割されたスキャンチェーンに本発明にかかるスキップ回路22(24、25、26)を有するスキャンパス回路200(201、202、203)を適用してもよい。
1 対象回路
21 スキャンFF
22、24、25、26 スキップ回路
221、241、252 XOR回路(論理回路)
223、243、262 セレクタ
261 多入力シグネチャレジスタ
23 スキップスキャンFF
3 テスト入力端子(入力端子)
6 テスト出力端子(出力端子)
7、71 第1のスキャンFF群
8、81、82 第2のスキャンFF群
9 第3のスキャンFF群
100、101、102、103 半導体集積回路
200、201、202、203 スキャンパス回路
21 スキャンFF
22、24、25、26 スキップ回路
221、241、252 XOR回路(論理回路)
223、243、262 セレクタ
261 多入力シグネチャレジスタ
23 スキップスキャンFF
3 テスト入力端子(入力端子)
6 テスト出力端子(出力端子)
7、71 第1のスキャンFF群
8、81、82 第2のスキャンFF群
9 第3のスキャンFF群
100、101、102、103 半導体集積回路
200、201、202、203 スキャンパス回路
Claims (8)
- シリアル接続されたK個(Kは、K≧1を満たす整数)のスキャンFFを有し、入力端子と接続される第1のスキャンFF群と、
前記第1のスキャンFF群の出力信号が与えられるS個(Sは、S≧1を満たす整数)のスキャンFFを有する第2のスキャンFF群と、
シリアル接続されたN個(Nは、N≧1を満たす整数)のスキャンFFを有し、出力端子と接続される第3のスキャンFF群と、
前記スキャンFFのシフト動作モードにおいて、前記第1のスキャンFF群の出力信号を前記第2のスキャンFF群に入力するとともに、前記第3のスキャンFF群に入力するスキップ回路と、
を備えるスキャンパス回路。 - 前記スキップ回路は、前記第2のスキャンFF群と前記第3のスキャンFF群とを接続し、
前記シフト動作モードにおける第1の時間において、前記第1のスキャンFF群の出力信号と前記第2のスキャンFF群の出力信号とを論理演算した信号を前記第3のスキャンFF群に入力し、
前記シフト動作モードにおける前記第1の時間以外の第2の時間において、前記第1のスキャンFF群の出力信号を前記第3のスキャンFF群に入力する請求項1に記載のスキャンパス回路。 - 対象回路のテストを行うスキャンパス回路であって、
シリアル接続されたK個(Kは、K≧1を満たす整数)のスキャンFFを有し、テスト信号が入力される入力端子と接続される第1のスキャンFF群と、
前記第1のスキャンFF群の出力信号が与えられるS個(Sは、S≧1を満たす整数)のスキャンFFを有する第2のスキャンFF群と、
シリアル接続されたN個(Nは、N≧1を満たす整数)スキャンFFを有し、出力信号が出力される出力端子と接続される第3のスキャンFF群と、
前記スキャンFFのシフト動作モードにおいて、前記第1のスキャンFF群の出力信号を前記第2のスキャンFF群に入力するとともに、前記第3のスキャンFF群に入力するスキップ回路と、
を備え、
前記スキャンFFは、通常動作モードにおいて、テスト信号を前記対象回路に入力するとともに、前記対象回路から出力される結果信号を保持し、
前記スキップ回路は、前記通常動作モードから前記シフト動作モードに遷移してから第1の時間において、前記第1のスキャンFF群の出力信号と前記第2のスキャンFF群の出力信号とを論理演算した信号を前記第3のスキャンFF群に入力し、前記シフト動作モードにおける前記第1の時間以外の第2の時間において、前記第1のスキャンFF群の出力信号を前記第3のスキャンFF群に入力するスキャンパス回路。 - 前記スキップ回路は、
前記第1のスキャンFF群の最後段の前記スキャンFFの出力信号と、前記第2のスキャンFF群のS個の前記スキャンFFの出力信号とを論理演算する論理回路と、
前記第1のスキャンFF群の最後段の前記スキャンFFと前記論理回路とに接続され、前記第1の時間において前記論理回路の出力信号を前記第3のスキャンFF群に入力し、前記第2の時間において前記最後段の前記スキャンFFの出力信号を前記第3のスキャンFF群に入力するセレクタと、
を備える請求項1乃至3の何れか一項に記載のスキャンパス回路。 - 前記スキップ回路は、
前記第1のスキャンFF群の最後段の前記スキャンFFの出力信号と、前記第2のスキャンFF群の最後段の前記スキャンFFの出力信号とを論理演算する論理回路と、
前記第1のスキャンFF群の最後段の前記スキャンFFと前記論理回路とに接続され、前記第1の時間において前記論理回路の出力信号を前記第3のスキャンFF群に入力し、前記第2の時間において前記第1のスキャンFF群の最後段の前記スキャンFFの出力信号を前記第3のスキャンFF群に入力するセレクタと、
を備える請求項1乃至3の何れか一項に記載のスキャンパス回路。 - 前記スキップ回路は、
前記第1のスキャンFF群のk段目(kは、1≦k≦Kを満たす整数)の前記スキャンFFの出力信号と、前記第2のスキャンFF群のs段目(sは、1≦s≦Sを満たす整数)の前記スキャンFFの出力信号とを論理演算する複数の論理回路を備える多入力シグネチャレジスタと、
前記第1のスキャンFF群の最後段の前記スキャンFFと前記第2のスキャンFF群の最後段の前記スキャンFFとに接続され、前記第1の時間において前記第2のスキャンFF群の最後段の前記スキャンFFの出力信号を前記第3のスキャンFF群に入力し、前記第2の時間において前記第1のスキャンFF群の最後段の前記スキャンFFの出力信号を前記第3のスキャンFF群に入力するセレクタと、
を備え、
前記多入力シグネチャレジスタの出力信号が前記第2のスキャンFF群に入力される請求項1乃至3の何れか一項に記載のスキャンパス回路。 - シフト動作モードにおいてシフト動作を行い、通常動作モードにおいて通常動作を行う複数のスキャンFFと、
一の前記スキャンFFと、他の前記スキャンFFとの間に接続されるスキップ回路と、
前記スキップ回路と接続され、前記スキップ回路を介して、前記スキップ回路の前段の前記スキャンFFの出力信号が与えられる複数のスキップスキャンFFと、
を備え、
前記スキップ回路は、当該スキップ回路の前段の前記スキャンFFの出力信号を前記スキップスキャンFFに入力するとともに、前記スキップ回路の後段の前記スキャンFFに入力するスキャンパス回路。 - 請求項1乃至7の何れか一項に記載のスキャンパス回路を有する半導体集積回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007206124A JP2009042017A (ja) | 2007-08-08 | 2007-08-08 | スキャンパス回路及び半導体集積回路 |
US12/222,288 US20090044064A1 (en) | 2007-08-08 | 2008-08-06 | Scan path circuit and semiconductor integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007206124A JP2009042017A (ja) | 2007-08-08 | 2007-08-08 | スキャンパス回路及び半導体集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009042017A true JP2009042017A (ja) | 2009-02-26 |
Family
ID=40347606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007206124A Pending JP2009042017A (ja) | 2007-08-08 | 2007-08-08 | スキャンパス回路及び半導体集積回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090044064A1 (ja) |
JP (1) | JP2009042017A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI739640B (zh) * | 2020-10-27 | 2021-09-11 | 瑞昱半導體股份有限公司 | 電路和相關晶片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0772217A (ja) * | 1993-09-02 | 1995-03-17 | Nec Corp | 半導体集積回路、その設計方法およびそのテスト方法 |
JPH11352188A (ja) * | 1998-06-11 | 1999-12-24 | Mitsubishi Electric Corp | 半導体装置 |
JP2000258500A (ja) * | 1999-03-09 | 2000-09-22 | Hitachi Ltd | 半導体集積回路及び記憶媒体 |
JP2002267719A (ja) * | 2001-03-07 | 2002-09-18 | Toshiba Corp | 半導体集積回路及びそのテスト方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000258506A (ja) * | 1999-03-12 | 2000-09-22 | Mitsubishi Electric Corp | 半導体集積回路およびそのテストパターン生成方法 |
US7539915B1 (en) * | 2003-01-07 | 2009-05-26 | Marvell Israel (Misl) Ltd. | Integrated circuit testing using segmented scan chains |
US6961886B2 (en) * | 2003-04-16 | 2005-11-01 | International Business Machines Corporation | Diagnostic method for structural scan chain designs |
JP2007205933A (ja) * | 2006-02-02 | 2007-08-16 | Nec Electronics Corp | 半導体集積回路 |
US7895491B2 (en) * | 2006-05-04 | 2011-02-22 | Broadcom Corp. | Integrated circuit with low-power built-in self-test logic |
US7954022B2 (en) * | 2008-01-30 | 2011-05-31 | Alcatel-Lucent Usa Inc. | Apparatus and method for controlling dynamic modification of a scan path |
-
2007
- 2007-08-08 JP JP2007206124A patent/JP2009042017A/ja active Pending
-
2008
- 2008-08-06 US US12/222,288 patent/US20090044064A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0772217A (ja) * | 1993-09-02 | 1995-03-17 | Nec Corp | 半導体集積回路、その設計方法およびそのテスト方法 |
JPH11352188A (ja) * | 1998-06-11 | 1999-12-24 | Mitsubishi Electric Corp | 半導体装置 |
JP2000258500A (ja) * | 1999-03-09 | 2000-09-22 | Hitachi Ltd | 半導体集積回路及び記憶媒体 |
JP2002267719A (ja) * | 2001-03-07 | 2002-09-18 | Toshiba Corp | 半導体集積回路及びそのテスト方法 |
Also Published As
Publication number | Publication date |
---|---|
US20090044064A1 (en) | 2009-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8438439B2 (en) | Integrated circuit having a scan chain and testing method for a chip | |
JP4802139B2 (ja) | 半導体集積回路モジュール | |
US7539915B1 (en) | Integrated circuit testing using segmented scan chains | |
US11293980B2 (en) | Customer-transparent logic redundancy for improved yield | |
US10496771B2 (en) | Semiconductor apparatus and design apparatus | |
JP2010223672A (ja) | スキャンテスト回路 | |
US20060156132A1 (en) | Semiconductor device with built-in scan test circuit | |
JP2011149775A (ja) | 半導体集積回路及びコアテスト回路 | |
JP4549701B2 (ja) | 半導体回路装置及び半導体回路に関するスキャンテスト方法 | |
JP2009042017A (ja) | スキャンパス回路及び半導体集積回路 | |
JP2006058273A (ja) | 半導体集積回路 | |
JP2009122009A (ja) | テスト回路 | |
JP2003121497A (ja) | 論理回路テスト用スキャンパス回路及びこれを備えた集積回路装置 | |
JP5761819B2 (ja) | スキャン非同期記憶素子およびそれを備えた半導体集積回路ならびにその設計方法およびテストパターン生成方法 | |
JP4610919B2 (ja) | 半導体集積回路装置 | |
US9383408B2 (en) | Fault detection system, generation circuit, and program | |
JP2005147749A (ja) | スキャン回路を備える半導体集積回路、スキャン回路システムおよびスキャンテストシステム | |
JP5453981B2 (ja) | Lsi、及びそのテストデータ設定方法 | |
JP2006162490A (ja) | スキャンテスト回路 | |
JP4272898B2 (ja) | 半導体テスト回路及びそのテスト方法 | |
JP2005043259A (ja) | スキャンパステスト回路及びその設計方法 | |
JP2006170678A (ja) | スキャンテスト回路 | |
JP2006003317A (ja) | スキャンテスト回路 | |
JP2011179860A (ja) | テスト回路 | |
JP2006023225A (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100512 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120117 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120515 |