(57)【要約】観察度が高く高確度でコアおよびコア間の接続の障害を検出してその位置決定ができる、コアをベースとするシステム・オン・チップ（ＳＯＣ）の検証方法。本評価方法は、全てのＩ／Ｏパッドと電源パッドを各コアのパッドフレームの最上部金属層表面に有するコアＩ／Ｏパッドを形成するために２層以上の金属層を形成するステップと、チップＩ／Ｏパッドを介してＳＯＣにテストベクタを供給して、ＳＯＣからの応答出力信号を評価することで、ＳＯＣを全体としてテストするステップと、コアの最上部金属層上のコアＩ／Ｏパッドを介してコアにコア固有テストベクタを供給して、そのコアからの応答出力を評価することで、ＳＯＣの各コアをテストするステップと、ＳＯＣチップ全体と各コアのテストにおいて、障害を検出したときにその障害の位置を検出するステップを有する。
2005536884.tif 000002
【特許請求の範囲】
【請求項１】
システム・オン・チップ（ＳＯＣ）を評価する方法は：
ＳＯＣ内の各コアに２以上の金属層のパッドフレームを構成し、下部の金属層に有するＩ／Ｏ（入力出力）パッドを最上部の金属層に接続し、これにより、各コアのパッドフレームの最上部の金属層の表面に全てのＩ／Ｏパッドと電源パッド有するコアＩ／Ｏパッドを形成するステップと、
テストベクタをチップＩ／Ｏを介してＳＯＣに印加して、チップＩ／Ｏパッドを介して受信したＳＯＣの応答出力を評価することにより、ＳＯＣを全体としてテストするステップと、
コア固有テストベクタをその最上部金属層のＩ／Ｏパッドを介してコアに印加して、そのコアからの応答出力をＩ／Ｏパッドを介して受信し評価することにより、各コアをテストするステップと、
ＳＯＣチップ全体をテストする際あるいは各コアをテストする際に障害を発見したときは、その障害の位置を検出するステップ、
とにより構成されるシステム・オン・チップ評価方法。
【請求項２】
上記障害の位置を検出するステップは、障害がＳＯＣチップ全体と各コアの双方に発見され場合と、ＳＯＣチップの全体としてのテストにのみ発見された場合とを区別するステップを含む、請求項１に記載のシステム・オン・チップ評価方法。
【請求項３】
上記障害の位置を検出するステップは、障害がＳＯＣチップの全体としてのテストに発見されたが各コアには発見されなかった場合、２つのコア間に障害のある接続を発見するステップを含む、請求項２に記載のシステム・オン・チップ評価方法。
【請求項４】
上記接続を検出するステップは、障害を検出するまで、１つのコアのコアＩ／Ｏパッドにテスト信号を印加して、テスト信号の結果の信号を他のコアのコアＩ／Ｏパッドで評価するステップを含む、請求項３に記載のシステム・オン・チップ評価方法。
【請求項５】
上記障害の位置を検出するステップは、障害が全体としてのＳＯＣチップのテストと各コアのテストの双方に発見されたとき、そのコア内においてその障害の原因となっている障害ワイヤーのプロバブリスティック（確率的）位置を発見するステップを含む、請求項２に記載のシステム・オン・チップ評価方法。
【請求項６】
上記コアにある障害ワイヤーのプロバブリスティック位置を発見するステップは：
テストベクタに応答して得られるコアの出力における障害を検出するために、コアＩ／Ｏパッドを介してそのコアにテストベクタを印加するステップと、
テストベクタの印加により得られた結果に基づいて、障害に関わるワイヤーの障害リストと、障害のないワイヤーの良品リストを生成するステップと、
良品ワイヤーリストと障害ワイヤーリストのエントリを比較し、良品ワイヤーリストから合致しなりエントリを取り除き、その頻度数によって残りのエントリを分類するステップと、を含み、
障害ワイヤーの最大数は、各コアのテストにより検出した障害の原因のワイヤーである最大の可能性を示す、請求項５に記載のシステム・オン・チップ評価方法。
【請求項７】
上記コアにある障害ワイヤーのプロバブリスティック位置を発見するステップは：
障害が検出された際にそのコアに印加した全てのテストベクタのテストベクタリストと、そのテストベクタによりセンシタイズされたアクティブワイヤーのパスリストを生成するステップと、
テストベクタに応答して得られるコアの出力における障害を検出するために、コアＩ／Ｏパッドを介してそのコアにテストベクタを印加するステップと、
コアの出力における障害に対応したテストベクタである障害テストベクタリストと、障害なしのテストベクタである良品テストベクタリストを生成するステップと、
パスリストと障害テストベクタリストを用いて、障害に関連するワイヤーである障害ワイヤーリストを生成するステップと、
パスリストと良品テストベクタリストを用いて、障害の無いワイヤーである良品ワイヤーリストを生成するステップと、
良品ワイヤーリストと障害ワイヤーリストを比較して、良品ワイヤーリストから一致しないエントリを取り除くステップと、
その頻度数に基づいて良品ワイヤーリストに残ったエントリを分類するステップと、を含み、
障害ワイヤーの最大数は、各のコアのテストにより検出した障害の原因のワイヤーである最大の可能性を示す、請求項５に記載のシステム・オン・チップ評価方法。
【請求項８】
上記コアの金属層を構成する上記ステップは、上記コア内の内部回路ノードを最上部金属層に接続し、コンタクトプローブにより内部回路ノードとＩ／Ｏパッドをアクセス可能にするステップを含む、請求項１に記載のシステム・オン・チップ評価方法。
【請求項９】
上記Ｉ／Ｏパッドを最上部金属層に接続する上記ステップは、上記Ｉ／Ｏパッドを最上部金属層に再現するように金属バイアをパッドフレームの下部金属層と上部金属層間に用いるステップを含む、請求項１に記載のシステム・オン・チップ評価方法。
【請求項１０】
システム・オン・チップ（ＳＯＣ）を評価する方法は：
ＳＯＣ内の各コアに２以上の金属層のパッドフレームを構成し、下部の金属層に有するＩ／Ｏパッドを最上部の金属層に接続し、これにより、各コアのパッドフレームの最上部の金属層の表面に全てのＩ／Ｏパッドと電源パッドを有するコアＩ／Ｏを形成するステップと、
テストベクタをチップＩ／Ｏフレーム上のコンタクトパッドを介してＳＯＣに供給し、そのＳＯＣの応答出力をコンタクトパッドを介して受信し評価することにより、ＳＯＣを全体としてテストするステップと、
コア固有テストベクタをコアの最上部金属層のＩ／Ｏパッドを介してコアに供給して、コアＩ／Ｏパッドを介して受信したコアの応答出力を評価することにより、ＳＯＣの個々のコアをテストするステップと、
障害が全体としてのＳＯＣチップのテストに検出されたが個々のコアのテストには検出されていないとき、２以上のコアの間における障害の原因となっている接続を検出するステップと、
障害が全体としてのＳＯＣチップと個々のコアのテストの双方に検出されたとき、その障害の原因であるコア内の障害ワイヤーのプロバブリスティック（確率的）位置を検出するステップと、
により構成されるシステム・オン・チップ評価方法。
【請求項１１】
上記接続を検出する上記ステップは、１のコアのコアＩ／Ｏパッドにテスト信号を供給して、障害を検出するまで各接続について他のコアのコアＩ／Ｏパッドを介して、テスト信号の結果としての信号を評価するステップを含む、請求項１０に記載のシステム・オン・チップ評価方法。
【請求項１２】
上記コアにある障害ワイヤーのプロバブリスティック位置を検出するステップは：
テストベクタに応答して得られるコアの出力における障害を検出するために、コアＩ／Ｏパッドを介してそのコアにテストベクタを印加するステップと、
テストベクタの印加により得られた結果に基づいて、障害に関わるワイヤーの障害リストと、障害のないワイヤーの良品リストを生成するステップと、
良品ワイヤーリストと障害ワイヤーリストのエントリを比較し、良品ワイヤーリストから合致しなりエントリを取り除き、その頻度数によって残りのエントリを分類するステップと、を含み、
障害ワイヤーの最大数は、各コアのテストにより検出した障害の原因のワイヤーである最大の可能性を示す、請求項１０に記載のシステム・オン・チップ評価方法。
【請求項１３】
上記コアにある障害ワイヤーのプロバブリスティック位置を検出するステップは：
障害が検出された際にそのコアに印加した全てのテストベクタのテストベクタリストと、そのテストベクタによりセンシタイズされたアクティブワイヤーのパスリストを生成するステップと、
テストベクタに応答して得られるコアの出力における障害を検出するために、コアＩ／Ｏパッドを介してそのコアにテストベクタを印加するステップと、
コアの出力における障害に対応したテストベクタである障害テストベクタリストと、障害なしのテストベクタである良品テストベクタリストを生成するステップと、
パスリストと障害テストベクタリストを用いて、障害に関連するワイヤーである障害ワイヤーリストを生成するステップと、
パスリストと良品テストベクタリストを用いて、障害の無いワイヤーである良品ワイヤーリストを生成するステップと、
良品ワイヤーリストと障害ワイヤーリストを比較して、良品ワイヤーリストから一致しないエントリを取り除くステップと、
その頻度数に基づいて良品ワイヤーリストに残ったエントリを分類するステップと、を含み、
障害ワイヤーの最大数は、各のコアのテストにより検出した障害の原因のワイヤーである最大の可能性を示す、請求項１０に記載のシステム・オン・チップ評価方法。
【請求項１４】
上記コアの金属層を形成するステップは、最上部金属層にコア内の内部回路ノードを複製するステップを含み、よってコンタクトプローブにより内部回路ノードとＩ／Ｏパッドのアクセスを可能にする、請求項１０に記載のシステム・オン・チップ評価方法。
【請求項１５】
上記Ｉ／Ｏパッドを最上部金属層に接続するステップは、金属バイアをパッドフレームの下部金属層と上部金属層の間に用いて、それによりＩ／Ｏパッドを最上部金属層に向けて複製する、請求項１０に記載のシステム・オン・チップ評価方法。
【発明の詳細な説明】
【発明の分野】
【０００１】
この発明は、半導体デバイスをテストする方法に関し、特に、埋込みコアをベースとするシステム・オン・チップ（ＳＯＣ）ＩＣにおける設計が完全であるかを、シリコンの形態（シリコンデバッグ）で、高確度で且つ高観察度によりデバッグする方法に関する。
【発明の背景】
【０００２】
最近のＡＳＩＣ（アプリケーション・スペシフィック集積回路）技術は、チップセットの思想から埋込みコアをベースとしたシステム・オン・チップ（ＳｏＣ）に移行している。ＳＯＣとは、意図したアプリケーションの機能全体を実現するにように、複数の単独形式のＶＳＬＩ（コア）を継ぎ合わせたＩＣである。すなわち、ＳＯＣは、各種のアプリケーションを実現するために、予め設計された複雑な機能を有するコア（または知的財産、ＩＰともいう）を用いて構成されている。これらのコアは、一般に、ＶｅｒｉｌｏｇやＶＨＤＬのような高級記述言語（ＨＤＬ）で記述された形態で提供されるか（ソフトコアとも言う）、またはＧＤＳＩＩのようなトランジスタレベルのレイアウトとして（ハードコアとも言う）提供される。ＳＯＣは、マイクロプロセッサ、大規模メモリアレイ、音声やビデオコントローラ、モデム、インターネットチューナー、２次元や３次元のグラフィックコントローラ、ＤＳＰ等として、チップ上で機能を実現するために、ハードコアとソフトコアの組み合わせとなることが多い。
【０００３】
ＳＯＣは、ＥＤＡ（電子設計自動化）環境下による設計段階において設計を完了した後に、シリコンチップの形態として実現される。本発明は、シリコンの形態で（設計データ上ではなく）、ＳＯＣの各コアの設計を評価する方法（シリコンデバッグ）に関するものである。このようなシステム・オン・チップは、幅広いアプリケーションに寄与するが、これらチップがあまりにも複雑であるために、従来方法でテストすることは困難となっている（"Testing  embedded  cores"  A  D&T  Roundtable，IEEE  Design  and  Test，pp．81-89, April-June  1997，"Challenge  of  the  90's  testing  coreware  based  ASICs"  Panel  on  "DFT  for  embedded  cores"，R．Rajsuman，International  Test  Conference，pp．940，1996）。
【０００４】
これらＳＯＣは、本格的な生産段階でのテストの困難性に加え、シリコン試作品を作成した際におけるその試作品の機能の正しさを決定する際にも多くの困難をともなう。この困難の第１の原因は、それぞれのコアに対する観察度（observability）と制御性（controllability）が限られているからである。一般に、テストベクタを印加するためにアクセスが可能なのは、チップのＩ／Ｏ（ＳＯＣチップ全体としての入力・出力）のみであり、またテストベクタに対する応答出力を観察すためのアクセスもチップのＩ／Ｏのみである。各埋込みコアのＩ／Ｏを個別にアクセスすることは不可能である。従って、複雑なＳＯＣでは、多くの内部欠陥が、チップのＩ／Ｏには現れてこない。
【０００５】
図１は、ＳＯＣの一般的な構成例を概念的に示している。この例では、ＳＯＣ１０は、埋込みメモリ１２、マイクロプロセッサコア１４、３個の機能固有コア１６、１８、２０、ＰＬＬ（位相同期回路）２２、及びＴＡＰ（テストアクセスポート）２４を有している。ＳＯＣ全体についてのテストは、チップレベルのＩ／Ｏでしか行うことができない。図１の例において、これらチップレベルＩ／Ｏは、ＳＯＣ１０の外周におけるＩ／Ｏパッドフレーム２６上に形成されたチップＩ／Ｏパッド２８として形成されている。各機能コア１２、１４、１６、１８、２０は、各コア周辺に多層のＩ／Ｏパッドを形成したパッドフレーム２９を有している。一般に、ＩＣ設計において、最上部の金属層は、電源（電源パッド３２）としてのみ用いられており、その中間部における金属層は、他のコアやマイクロプロセッサコア、あるいは埋込みメモリとのインターフェイスをするＩ／Ｏパッドまたは信号パッドとして用いられている。
【０００６】
フェイル（不良）が生じた場合は、そのフェイルの原因、例えばマイクロプロセッサコア１４、機能固有コア１６、１８、２０のいずれよるのか、またはコア間インターフェイスのような他の原因なのかを調べることが極めて重要である。フェイルの原因を究明しなければならない理由は、ＳＯＣ設計が本格的生産に移行する前にそのフェイルを修正しなければならないからである。
【０００７】
従来技術の障害診断の一つは、障害辞書に基づいたものである（R．Rajsuman，M．Saad  and  B．Gupta，"On  the  fault  location  in  combinational  logic  circuits"，IEEE  Asilomar  Conference，pp．1245-1250，1991，A．K．Sonami，V．k．Agarwal  and  D．Avis，"A  generalized  theory  for  system  level  diagnosis"，IEEE  Trans，"A  generalized  theory  for  system  level  diagnosis"，IEEE  Trans．Computer，pp．538-546，May  1987）。自動テストパターン生成（ＡＴＰＧ）ツールは、各スタックアトフォルトの検出の為に多数のベクタを生成し、各障害を１度だけカバーするようにこれらのベクタをコラスプさせる。それらのツールの例は、Synopsys  Teramaxの商業ツールや、Socretesのようなアカデミック環境で開発したツールがある。
【０００８】
ＡＴＰＧツールにおけるこのようなテストベクタの減少により、テスト機器を小型にできる。しかし、テストベクタ圧縮時に、障害診断に必要となる多大な情報が失われてしまう。そのような情報の損失を克服するために、障害辞書が用いられる。これは、基本的にはデータベースであり、すべてのベクタ、その対応する障害、また場合によっては、障害センシタイゼーションまたは障害影響伝搬の間において対応するアクティブな障害伝搬コーンをリストしたものである。従来技術において、障害辞書から、障害のある領域（アクティブコーン）を確認できる。
【０００９】
この方法の重大な制限は、障害部分を確認するために障害辞書からの追加のテストベクタを印加できるように、コアの内部I/Oへの直接アクセスを必要とすることである。エレクトロンビームテスタを用いる試みや（N．Kuji，T．Tamara  and  M．Nagatani，"FINDER：A  CAD  system  based  electron  beam  tester  for  fault  diagnosis  of  VLSI  circuits"，IEEE  Trans．CAD，pp．313-319，April  1986）、フルスキャン回路を用いる試み（K．De  and  A．Gunda，"Failure  analysis  for  full-scan  circuits"，EDDD  Int．Test  Conference，pp．636-645，1995）が行われている。
【００１０】
現在では、IEEE  P1500ワーキンググループが、コアI/Oにアクセスできる解決法を開発している。この解決法は、追加のロジックの使用に基づいており、これはコアI/Oにおけるシフトレジスタ型ラッパーと、チップI/OからコアI/Oへのデータ運搬バスを含む（IEEE  P1500  web-site，http://grouper.ieee.org/groups/1500/，"Preliminary  outline  of  the  IEEE  P1500  scalable  architecture  for  testing  embedded  cores"，IEEE  VLSI  Test  Symposium，1999）。この構成は、図２Ａ−図２Ｃに示されており、図２Ａは、コア外周に有するラッパー（wrapper）の全体構成を、図２Ｂ、図２Ｃは、図２Ａのラッパー内に有する入力セル４２と出力セル４４の構成をそれぞれ示している。
【００１１】
このようなコアラッパーとデータ転送ロジックによる解決法に類似した他の解決法が、ＶＳＩアライアンス（Virtual  Socket  Interface  Alliance（VSIA））や他の研究者グループから提案されている（"Manufacturing  related  test  development  specification  1"，version  1，VSI  Alliance，1998，"Test  access  architecture"，VSI  Alliance，2000，R．Rajsuman及び"System-on-a-Chip：Design  and  Test"，Artech  House  Publishers  Inc.，ISBN  1-58053-107-5，2000，D．Bhattacharya，"Hierarchial  test  access  architecture  for  embedded  core  in  an  integrated  circuit"，D．Bhattacharya，IEEE  VLSI  Test  Symposium，pp．8-14，1998）。
【００１２】
これらの方法における重大な欠点は、追加のロジックを必要とすることによりチップサイズが大きくなり、コストを増加させてしまうこと、コアのＩ／Ｏにラッパーを有するため、ＳＯＣ特性の劣化（performance  penalty）が発生してしまうことである。このような特性劣化の１例としては、追加の回路素子や信号路を有することによる信号伝搬遅延が発生することである。また、上記の全ての解決法において、テストベクタはラッパーレジスタにシフト・インされ、テストベクタに対するＳＯＣの応答信号は、マルチクロックサイクルを用いてシフト・アウトされる。以前のベクタの応答信号が完全にシフト・アウトされるまでは、次のテストベクタを印加することはできない。従って、これら全ての解決法では、現実動作スピードでのテスト（アットスピードテスト）を実行することができず、したがって、タイミングに関する診断が出来ない。更に、テスト時間が長くなりすぎ、したがって、多大なコストの増加となる。
【００１３】
また別の従来方法として、米国特許番号４７４９９４７および４９３７８２６に開示された「ベッドオブネイル」型の方法がある。この方法では、格子状の導線をベッド状に形成し、その上に被試験機能的回路を配置する。この構成においては、機能的回路内のそれぞれのノードを、そのノードから格子状導線に接続する垂直トランジスタによってアクセスすることが可能である。原理上、この方法は１００％の観察性を実現することができる。しかし、この方法は、ＳＯＣの現在の生産工程に、追加の工程（レイアウトマスク）を加えたり、工程変更を必要とするため、極めて高コストとなる。また、格子状導線を用いるため、回路の寄生容量が増加し、ＳＯＣの特性劣化が生じる結果となる。
【００１４】
上記のように、従来の技術では、ＳＯＣ内のそれぞれのコアや接続を、サイズやコストの増加または特性劣化のような欠点なしで、完全にデバッグすることや、障害位置を確認することができない。
【発明の概要】
【００１５】
従って、本発明の目的は、従来の方法における欠点を有さず、簡単にシステム・オン・チップ（ＳＯＣ）内の各コアをデバッグする方法を提供することにある。
また、本発明の他の目的は、コア内に余分なロジックを必要とせず、その結果として特性劣化が生じないで、システム・オン・チップ（ＳＯＣ）内の各コアをデバッグする方法を提供することにある。
また、本発明のさらに他の目的は、システム・オン・チップ（ＳＯＣ）内の各コアをデバッグして、比較的単純なプロセスによりコア間の内部接続での障害あるいはコア内での障害の位置を検出する方法を提供することにある。
【００１６】
本発明では、各コアのＩ／Ｏパッドフレームを、試作品作成の際に最上部金属層までに次々に複製する。その結果、各コアの全てのＩ／Ｏインターフェイスが、最上部金属層に形成されるので、この最上部金属層を、テスト信号の印加やそれに対する応答信号の検証のために用いることができる。従って、本発明により、コアのテストパターンを、ＳＯＣチップ全体のみではなく、特定のコアについても直接に供給することができる。そしてコア間の接続又はコア内の配線の障害の位置を検出できる。
【００１７】
本評価方法は、すべてのＩ／Ｏパッドと電源パッドを各コアのパッドフレームの最上部金属層表面に有するコアＩ／Ｏパッドを形成するために２層以上の金属層を形成するステップと、チップＩ／Ｏパッドを介してＳＯＣにテストベクタを供給してそのＳＯＣからの応答出力信号を評価することにより、ＳＯＣを全体としてテストするステップと、コアの最上部金属層上のコアＩ／Ｏパッドを介して、コアにコア特定テストベクタを供給して、そのコアからの応答出力を評価することにより、ＳＯＣの各コアをテストするステップと、ＳＯＣチップ全体をテストする際または各コアをテストする際に障害を検出したときは、その障害の位置を検出するステップと、により構成される。
【００１８】
障害の位置を検出する上記のステップにおいて、本発明の評価方法は、ＳＯＣチップ全体としてのテストと各コアのテストの両方に障害が見つかるか、それともＳＯＣチップ全体としてのテストにのみ障害が見つかるかを区別する。そして、ＳＯＣチップ全体としてのテストに障害が見つかるが各コアには見つからないときには、本評価方法は、２以上のコア間の接続について、障害を生じている接続を検出する工程に移行する。この工程では、１のコアのコアＩ／Ｏパッドにテスト信号を供給して、他のコアのコアＩ／Ｏパッドにおいてテスト信号の結果としての信号を評価し、これを接続の障害が検出されるまで各接続に対して行うことで実施される。
【００１９】
障害の位置を検出する工程では、本発明は、ＳＯＣチップ全体としてのテストと各のコアのテストの両方に障害が見つかるときは、障害を生じるコア内の障害のあるワイヤー（配線）のプロバブリスティック（確率的）位置を検出する。この工程は、テストベクタの応答であるコアの出力に障害を検出するステップと、テストベクタの実施に基づいて、障害に関するワイヤー（配線）の障害リストと、障害のないワイヤーの良品リストを生成するステップと、良品ワイヤーリストと障害ワイヤーリストのエントリ（項目）を比較し、良品ワイヤーリストから合致しないエントリを取り除き、発生頻度数に応じて残りのエントリを分類するステップと、を含む。障害ワイヤーの頻度数が最大のものは、そのワイヤーがその個別コアのテストにおいて検出された障害の原因となっている可能性が最大である。
【００２０】
本発明によれば、コア内の障害コア、障害のある内部接続、そして障害ワイヤー（通路と配線）は、ヒューリスティック（発見的）アルゴリズムを用いることで決定できる。本発明の方法は、通常のコンタクトプローブを有したＩＣテスタやロジックアナライザーのような通常のツールを用いて実施できる。本発明は、例えばラッパーのような追加のロジックや、エレクトロンビームテスタのような特殊装置を必要としない。コア間の接続に障害があるときには、本発明はその原因である配線（ワイヤー）を決定できる。また他の場合には、本発明の方法は、各コアのスタックアトフォルトラインのプロバブリスティック（確立的）位置を決定する。
【発明の詳細な説明】
【００２１】
本発明を、添付した図を参照して詳細に説明する。図３−図８は埋め込みコア型システムオンアチップ（ＳＯＣ）ＩＣの、デザインインテグレティ（設計完全性）評価と障害診断を行うための本発明の方法を示したものである。図３−図５は、本発明に基づいて、シリコン形態（シリコンデバグ）により、ＳＯＣとその埋め込みコアをテストするためのＳＯＣの特殊なテスト構造を示している。図６−図８は、本発明によるＳＯＣと埋め込みコアのテストプロセスとテストシステム構造を示している。本発明の方法は、図３−図５に示した特殊構造を有して設計されたＳＯＣにのみ適用できる。
【００２２】
本発明の方法を実施するためのＳＯＣの基本的な構造を、図３−図５に示している。この構造では、従来のコンタクトプローブによって直接アクセス可能なように、各コアにＩ／Ｏインターフェイス（Ｉ／Ｏパッド）を形成している。個々のコアのＩ／Ｏインターフェイスは、テスト信号印加や応答信号の観察に用いることができる。従って、コアテストパターン（チップテストパターンではなく）を、直接に特定のコアに印加できる。つまり、テストシステムは、ＳＯＣチップの全体のみではなく、ＳＯＣの各コアについても、コアのＩ／Ｏインターフェイスを介して直接にアクセスできる。
【００２３】
より具体的には、図３および図４に示すように、各コアのＩ／Ｏパッドフレームは、試作品形成時に最上部金属層まで次々に複製される。従来技術を参照して上述したように、Ｉ／Ｏパッドフレームの最上部金属層は、一般に電源線を配線するためにのみ用いられ、下部の金属層は、Ｉ／Ｏや信号の配線のために用いられている。従って、コアのＩ／Ｏパッドフレームを介してそれぞれのコアをアクセスすることは従来は不可能であった。
【００２４】
図４Ａおよび図４Ｂは、Ｉ／Ｏフレームを形成するために５層の金属層を用いる場合を示している。図４Ａは、従来のＩ／Ｏフレーム構造を示し、図４Ｂは、本発明のＩ／Ｏフレーム構造を示している。図４Ａの従来技術では、電源パッド３２のみがバイア３９を介して最上部金属層に接続されている。信号や制御用パッド３３−３６は、下部金属層に隠れている。本発明を示す図４Ｂでは、各層におけるパッド３２−３６の全てがバイア３９を介して最上部金属層に接続されている。従って、下部金属層における全てのパッド３２−３６は、図４Ｂに示すように、最上部金属層（第５層）に再現されている。実際のコアのＩ／Ｏと、この再現された金属パッドフレームとの接続は、他の層に有するバイア３９を介して形成されている。
【００２５】
各コアのＩ／Ｏパッドは、ロジックや複雑な検出構成を用いることなくＳＯＣの最上部金属層に再現さるので、この最上部金属層は、実際のコアのＩ／Ｏパッドとの単純な接続点を形成する。図１に示す従来のＳＯＣ１０の最上部金属層は電源パッドしか有していないが、図５に示す本発明のＳＯＣの最上部金属層は全てのＩ／Ｏパッドと電源パッドを有している。図５には示されていないが、ＰＬＬコア２２とＴＡＰコア２４も、他のコアと同様に、最上部金属層に全てのＩ／Ｏパッドと電源パッドを有するように、その各Ｉ／Ｏパッドフレームを構成している。
【００２６】
コアのＩ／Ｏパッドをアクセスする本発明の方法は、コア内のキーとなるノードをアクセスするために用いることもできる。図５に示すように、マイクロプロセサーコアの内部ノード４２と４３と、機能限定コア１８の内部ノード４４を、上と同様に最上部メタルへ組み上げている。これらのノード４２，４３，４４に対し、テスト信号の供給と、応答出力の受信のために、プローブを接触させることができる。
【００２７】
図３−図５に示す構造により、ＳＯＣの各コアへの完全なアクセスが可能になる。例えば、プロトタイプＳＯＣのテスト時において、もし障害に遭遇した場合、各コアを個々にも、また他のコアと共に、プローブカートを用いて、最上部メタルＩ／Ｏパッドフレームを介してアクセスできる。コアのＩ／Ｏを全てプローブ接続できるので、特定のコアに障害がないかを調べるために、コア固有のテストベクタを印加することができる。
【００２８】
図６を参照して、ＳＯＣ全体とＳＯＣ内の各コアを評価するための、本発明の基本的な流れを説明する。上述のように、この方法は、図３−図５を参照して上述した特定の構造を有するように設計されたＳＯＣにのみ適用できる。この特定の構造は、埋め込みコアのＩ／Ｏを、Ｉ／Ｏフレームの最上部メタル層に組み上げて形成している。これは、それらのＩ／Ｏを現存するコンタクトメカニズムでアクセス可能かつ観察可能にするためである。図７は、本発明のＳＯＣとテストシステムの構造例を示している。
【００２９】
本発明の方法は、コンタクトプローブを用いて、ＩＣテスタまたはロジックアナライザー（包括的にＩＣテスタと称する）のような従来の装置により実施できる。基本的に、最初に全体としてのＳＯＣチップを、チップＩ／Ｏパッド２８を介してテストベクタをＳＯＣに印加してＳＯＣからの応答を評価することによりテストする。次に、各コアに固有のテストベクタをコアに印加して、各コアからの応答を評価することにより、各コアをテストする。もし障害を検出すれば、障害のインターコネクト（接続、相互接続）の厳密な位置が測定される。もし障害（フォールト）が検出されると、その障害のある接続の絶対的位置が決定される。もし、その障害がコア内部である場合には、その障害の確率的位置が決定される。
【００３０】
図６のテストプロセスにおいて、第１ステップ１０１において、ＳＯＣチップ１０が、図３−図５を参照して説明した埋め込みコアのパッドフレームの特定構造を有するようにデザイン（設計）されている。ステップ１０２では、ＳＯＣチップ１０全体としての障害を検出するために、図５に示すようなチップＩ／Ｏフレーム２６上のチップＩ／Ｏパッド２８を介して、テストベクタがＳＯＣ１０に印加される。一般に、テストベクタは、図７に示すＩＣテスタ７８のような、半導体テストシステムによって生成される。テストベクタをプローブカード８２を介してＳＯＣチップ１０に印加するために、テストヘッド８０がＩＣテスタ７８に接続される。
【００３１】
プローブカード８２は、多数のコンタクトプローブ８６を有しており、これらはテストベクタをＳＯＣに送信し且つＳＯＣからの出力を受信するためにＩ／Ｏパッド２８に接触する。印加されたテストベクタに応答して生成されたＳＯＣ１０の出力信号は、ＩＣテスタ７８によって評価され、ステップ１０３において、障害（フォールト）が無いかが検証される。障害が無ければ、テスト過程はステップ１０４で停止し、それ以上の作業は不要である。
【００３２】
もし障害が検出された場合には、その障害がコアにあるのかコア間の接続にあるのかが決定されていないので、更なるテストが必要になる。したがって、ステップ１０５において、各埋め込みコアが、図５に示すコアパワーパッド３２とＩ／Ｏパッド３３−３６を介して、ＩＣテスタ７８によりアクセスされる。本発明では、上述のように、各埋め込みコアのフレーム２９は、最上部層にパワーパッド３２とＩ／Ｏパッド３３−３６を有しているので、テスター７８は、コンタクトプローブ８６をパワーパッド３２とＩ／Ｏパッド３３−３６に接触させることで、各埋込みコアと直接コミュニケーションができる。従って、図７において、プローブカード８２は、コア１２，１４，１８，１０に、コンタクトプローブ８６等を介して接触する。すなわち、各コアは１ずつアクセスされ、特定されたコアに、そのコア固有のテストベクタがそれらに印加される。従って、ステップ１０６において、埋め込みコアは、コア固有のテストベクタをＩＣテスタ７８から受信して、その結果の出力信号を形成する。
【００３３】
ＩＣテスターは、ステップ１０７において、どこに障害があるのかを検出するために、コアからの応答を検証する。ある特定のコアに障害が見つかれば、そのコアをさらに検査するために、本発明のプロセスは、ステップ１０９のサブプロセスに移行する。本発明において、ステップ１０９のプロセスは、障害ローカリゼーションヒューリスティック（位置発見的）過程と呼ばれ、図８のフローチャートに詳細を示している。障害ローカリゼーション（位置）の検出工程を行った結果、障害がステップ１１０で位置決め（ローカライズ）できたときには、プロセスが終了する。したがって、障害の特定位置とその原因が、高確率で検出でき、障害の原因を修正できる。
【００３４】
ステップ１０７において障害が見つからなければ、ステップ１０８において、その障害はコア間の相互接続にあるものと仮定される。従って、ステップ１１１において、２つのコアのＩ／Ｏパッド３３−３６がアクセスされ、２つのコア間の相互接続が検証される。たとえば、ステップ１１２において、ＩＣテスター７８は、１つのコアのＩ／Ｏパッド３３−３６に”１”と”０”のテスト信号を印加する。そして、他のコアのＩ／Ｏパッド３３−３６での信号の値を観測する。ＩＣテスタ７８は、ステップ１１３で、Ｉ／Ｏパッドでこれらの値に障害が発見されるか検査する。
【００３５】
このプロセスにより、障害のある接続を検出できる。もし障害が特定の接続に見つからなければ、２つのコアのＩ／Ｏパッド３３−３６をアクセスして、他の接続に対してこの工程を繰り返すことにより、各相互接続を検査する。この工程は、相互接続に関してステップ１１３で障害が検出されるまで繰り返される。障害がある特定の接続に発見されると、ステップ１１４において、障害の厳密な場所、すなわち相互接続位置、が検出され（ローカライズ）この工程が終了する。
【００３６】
図８は、埋め込みコアにおける障害の特定の（確率的）位置を検出するための、図６の障害ローカリゼーションヒューリスティック（位置発見的）ステップ１０９の詳細なプロセスを示している。図８に点線で示すように、ローカリゼーションヒューリスティック工程は、３つの主な段階がある。すなわち、（１）プリプロセシング１３０、（２）コア固有テストベクタの分類１４０、そして（３）障害１５０のプロバブリスティック（確率的）位置の検出（ローカリゼーション）という段階である。
【００３７】
プリプロセシング１３０において、ステップ２０１において、図６を参照して説明したプロセス（ステップ１０７）に基づいて、障害（フォールトのある）コアが検出される。ステップ２０２において、ステップ２０１において検出された障害コアについて、そのコアに固有のテストベクタを、テストベクタリストにリストする。更に、ステップ２０３において、それらのテストベクタに対応する全てのアクティブワイヤー（信号と電源のラインやパス）が、パスリストにリストされる。上述したプロセスは、エンジニアリングワークステーションのような、ＩＣテスタ７８のホストコンピュータ（図示せず）を介して実行できる。
【００３８】
コア固有テストベクタを分類するための段階１４０において、ステップ２０４により、ＩＣテスタ７８とコンタクトプローブ８６を介して、コア固有の全てのテストベクタが障害のあるコアに印加され、その応答出力が観測される。これらのテストベクタは、Ｉ／Ｏフレーム上の最上部メタルにあるコアＩ／Ｏパッドをプローブすることで、該当コアに印加される。ＩＣテスタ７８は、ステップ２０５において、応答出力に障害があるかどうかを検証する。もし応答出力に障害があれば、その障害に対応するテストベクタはステップ２０６において障害パスリスト（リストＡ）にリストされる。もし応答出力に障害が無ければ、障害に対応するテストベクタはステップ２０７において良品パスリスト（リストＢ）にリストされる。従って、２つのリストが生成され、そのリストによりテストベクタが障害のある出力を生じたか否かに基づいて、テストベクタが分類される。この２つのリストはテストベクタに対応するワイヤー（パス）の情報を有している。応答出力に基づいてテストベクタを分類するこの工程は、ステップ２０８において繰り返され、これはプリプロセシング１３０において生成されたパスリストのエントリが終了するまで繰り返される。
【００３９】
障害のプロバブリスティック位置を確認するための段階１５０において、ステップ２０８は、上記のパスリストのエントリの終了により開始する。そして、ステップ２０９において、リストＡとプリプロセシング段階１３０で形成したパスリストに基づいて、リストＡの各障害パス用のセグメントリスト（リストＤ）が生成される。ステップ２１０において、リストＢとプリプロセシング段階１３０で形成したパスリストに基づいて、すべての良品パスのセグメントのリスト（リストＣ）が形成される。リストＤのエントリは、ステップ２１１においてリストＣのエントリと比較される。リストＤのエントリがリストＣのエントリと合致しなければ、リストＣのそのエントリは、ステップ２１２において取り除かれる。このプロセスは、リストＣの全てのエントリが比較されるまで繰り返される。実質的に、ステップ２１２は、リストＣから全ての良品セグメントを取り除く結果となる。つまりリストＣに残ったセグメントだけがリストＤに存在するセグメントとなる。
【００４０】
従って、上述の過程が終了したとき、リストＣにエントリが残れば、ステップ２１３においてリストＣに残ったセグメント（ワイヤー）に障害があると想定される。ステップ２１４において、リストＣの全てのセグメントがマージ（併合）されて、ステップ２１５において、その頻度順によりセグメントが分類整理される。従って、特定のワイヤーに７つの残りのエントリがあり、他のワイヤーに３つのエントリがあれば、７つのエントリがあるワイヤーが先の順位となる。多数のエントリがあるセグメント（ワイヤー）は、障害の原因である可能性が高いことを示している。
【００４１】
上述のように、本発明では、障害コア、障害接続、コアにおける障害ワイヤー（パス又はライン）の位置を、ヒューリスティック過程によって決定できる。コアの障害位置を検出する際に、ラインスタックアトフォルトのプロバブリスティック位置が検出される。一方で、相互接続の障害の厳密な位置を評価することも可能である。本発明は、ラッパーのような追加ロジックを必要とせず、また電子ビームテスタのような特殊装置を必要としない。追加ロジックを必要としないので、デバイスの特性が損なわれることもない。機能とタイミングに関する障害のデバグをするためにアトスピード（実速度）でコアＩ／Ｏパッドを介して、コアテストパターンをコアに印加出来る。
【００４２】
好ましい実施例しか明記していないが、上述した開示に基づき、添付した請求の範囲で、本発明の精神と範囲を離れることなく、本発明の様々な形態や変形が可能である。
【図面の簡単な説明】
【００４３】
【図１】図１は、メモリ、マイクロプロセッサ、および機能固有コア等を有する埋込みコアをベースとするシステム・オン・チップ（ＳＯＣ）の構成例を示す概念ブロック図である。
【図２Ａ】図２Ａは、ＳＯＣ内の各コアをアクセスするためにＩＥＥＥのＰ１５００ワーキンググループが提案するラッパーの全体構成例である。
【図２Ｂ】図２Ｂは、図２Ａのラッパー内の入力セルの構成例である。
【図２Ｃ】図２Ｃは、図２Ａのラッパー内の出力セルの構成例である。
【図３】図３は、本発明を実施するために、ＳＯＣ内の各コアに多層の入力・出力（Ｉ／Ｏ）フレームを形成した構成例を示した概念ブロック図である。
【図４Ａ】図４Ａは、従来のコアＩ／Ｏパッドフレームの構成を示している。
【図４Ｂ】図４Ｂは、本発明を実施するコアＩ／Ｏパッドフレームの構成例を示している。
【図５】図５は、本発明を実施するために、コアの最上部金属層にＩ／Ｏパッドフレームを有するＳＯＣ構成例を示す概念ブロック図である。
【図６】図６は、本発明により、埋め込みコア型システム・オン・チップ（ＳＯＣ）をテストするための基本プロセスを示したフローチャートである。
【図７】図７は、本発明におけるＩＣテスタ、特別のＩ／Ｏパッドフレームを設けた埋め込みコアを有するＳＯＣ、およびコンタクトプローブとの間の構造関係を示した概要図である。
【図８】図８は、本発明の埋め込みコア型ＳＯＣ評価方法における、障害ローカリゼーション（位置）ヒューリスティック（発見的）過程を示したフローチャートである。
【図１】
2005536884.tif 000003
【図２Ａ】
2005536884.tif 000004
【図２Ｂ】
2005536884.tif 000005
【図２Ｃ】
2005536884.tif 000006
【図３】
2005536884.tif 000007
【図４Ａ】
2005536884.tif 000008
【図４Ｂ】
2005536884.tif 000009
【図５】
2005536884.tif 000010
【図６】
2005536884.tif 000011
【図７】
2005536884.tif 000012
【図８】
2005536884.tif 000013
【国際調査報告】
2005536884.tif 000014