JP4147005B2 - Semiconductor integrated circuit, test method and manufacturing method thereof - Google Patents
Semiconductor integrated circuit, test method and manufacturing method thereof Download PDFInfo
- Publication number
- JP4147005B2 JP4147005B2 JP2000611314A JP2000611314A JP4147005B2 JP 4147005 B2 JP4147005 B2 JP 4147005B2 JP 2000611314 A JP2000611314 A JP 2000611314A JP 2000611314 A JP2000611314 A JP 2000611314A JP 4147005 B2 JP4147005 B2 JP 4147005B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- logic
- test
- memory
- signal
- 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.)
- Expired - Fee Related
Links
- 239000004065 semiconductor Substances 0.000 title claims description 37
- 238000010998 test method Methods 0.000 title claims description 14
- 238000004519 manufacturing process Methods 0.000 title claims description 13
- 238000012360 testing method Methods 0.000 claims description 284
- 230000015654 memory Effects 0.000 claims description 206
- 238000000034 method Methods 0.000 claims description 52
- 230000002950 deficient Effects 0.000 claims description 49
- 238000012545 processing Methods 0.000 claims description 22
- 230000007547 defect Effects 0.000 claims description 21
- 238000007689 inspection Methods 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 17
- 230000002159 abnormal effect Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 10
- 230000000295 complement effect Effects 0.000 claims description 6
- 230000003068 static effect Effects 0.000 claims description 5
- 230000005856 abnormality Effects 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 7
- 230000008439 repair process Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered 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/318516—Test of programmable logic devices [PLDs]
- G01R31/318519—Test of field programmable gate arrays [FPGA]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
技術分野
本発明は、半導体集積回路(IC:Integrated Circuit)およびそのテスト技術並びに製造技術に関し、例えば故障を検出し故障個所を回避して論理を構成可能な論理LSI(Large Scale Integration)を提供するものである。
背景技術
ロジックICのテスト方式としては、テスタと呼ばれるテスト装置によりテストパターンデータを発生してICへ入力し、出力されたデータ信号と期待値とを比較して検出する方式が一般的であった。しかしながら、ロジックICはその論理の規模が大きくなるほどテストパターンのステップ数が長大になってしまい、テストパターンの作成およびそれを用いたテスト所要時間が非常に長くなってしまう。
そこで、テスタによるテストを容易にする方法として、ICの本来の機能を構成しているフリップフロップ等の順序回路を縦続接続してシフトレジスタを構成可能に設計しておいて、テスト時に前記シフトレジスタにテストパターンをシリアルに入力(スキャンイン)して取り込ませ(セット)、所望の組合せ論理回路にシフトレジスタに取り込んだテストデータを入力し、その後前記論理回路の出力データ信号をシフトレジスタに取り込んでシフトして外部へ取り出せる(スキャンアウト)ようにしたいわゆるスキャンパス方式と呼ばれるテスト容易化設計技術が開発され実用化されている。
外部からテストパターンを入力する方式では、論理回路が順序回路を含んでいると内部の状態によって出力が異なるので、ある論理回路を検査するにはその中に含まれる順序回路の状態をまずテストパターンで設定しなければならないためテストパターンが非常に長くなってしまうが、フリップフロップをシフトレジスタ構成にしてテストパターンを入力(スキャンイン)することでテストパターンを大幅に減らすことができる。
しかしながら、上記スキャンパス方式は、それまでのテスト方式に比べるとテストパターンの量が少なくなるもののテストパターンの生成が難しく不良検出率を上げにくいとともに、テストパターンをシリアルに入力(転送)することを繰り返し行なうためテスト時間が長くなると不具合もある。また、新たに開発する論理LSIがRAM(ランダム・アクセス・メモリ)、ROM(リード・オンリ・メモリ)のようなメモリ回路やCPU等の大型セル(マクロセルまたはIPコア:Intellectual Property Core)を備える場合、それらのセルについてもテストを行なおうとすると膨大なテストパターンの作成と入力が必要とされるため、事実上テストが行なえないという問題点がある。
一方、論理集積回路内に疑似乱数発生回路のようなランダムなテストパターンを発生するパターン発生回路を内蔵させたBIST(Built in self test)方式のテスト技術が提案されている。
しかしながら、BIST方式のテスト回路は、発生されたテストパターンが不良を検出するのに充分なテストパターンになるか保証されていない。そのため、テスト回路のテストパターンで充分な不良検出率が得られるかどうか別途検証する必要があるという課題があった。
さらに、従来のテスト回路を搭載したLSIはいずれも、そのテスト回路の自身の故障ないしは欠陥については何ら対策が施されていない。つまり、テスト回路そのものが故障した場合にはチップ本来の回路が正常であっても不良判定をしてしまうという欠点がある。そして、その対策としては、テスト回路の規模を最小にして故障や欠陥の発生を抑制するしかないが、このことはテストの充分性すなわち不良検出率の向上という目的と矛盾した結果を招いてしまう。
この発明の目的は、高機能の外部テスタを用いることなくLSI内部の回路のテストを行なうことが可能なテスト技術を提供することにある。
この発明の他の目的は、自分で故障個所を検出しかつ自己救済することができる歩留まりの高いLSIを提供することにある。
この発明の他の目的は、ハードウェアのオーバーヘッドの少ない自己テスト機能を有するLSIを提供することにある。
この発明の他の目的は、不良解析の容易なLSIを提供することにある。
この発明のさらに他の目的は、特に中央処理ユニットのような制御回路やメモリ回路、カスタム論理回路等を1つのチップ上に備えたいわゆるシステムLSIに適用して好適な製造技術を提供することにある。
この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
発明の開示
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
すなわち、本発明に係る半導体集積回路は、チップ上に複数の基本論理セル(セル論理ブロック)からなり基本論理セルごとに回路が正常か異常かを示す信号を出力可能でかつ任意の論理を構成可能なFPGA(Field Programmable Gate Array)のような可変論理回路を搭載するようにしたものである。これにより、外部テスタを使用することなく可変論理回路(FPGA)内に不良個所があることおよびその位置を知ることができる。また、不良個所を回避して論理を構成することにより歩留まりを向上させるとともに、この可変論理回路(FPGA)を用いてテスト回路を構築して他の内部回路をテストする場合にテスト回路自身の故障による誤ったテスト結果が出力されるのを回避することができる。
回路が正常か異常かを示す信号を出力可能な基本論理セルとしては、例えば相補出力を有する2線ラインロジック(論理積ゲート回路)とその出力を比較して異常の有無を判定する判定手段(排他的論理和ゲート)とからなる回路がある。基本論理セルをこのような構成とすることで、比較的小規模な回路で、回路が正常か異常かを示す信号を出力可能でかつ任意の論理を構成可能な可変論理回路(FPGA)を実現することができる。
また、本発明に係る半導体集積回路のテスト方法は、少なくとも複数の基本論理セル(セル論理ブロック)からなり基本論理セルごとに回路が正常か異常かを示す信号を出力可能でかつ任意の論理を構成可能な可変論理回路(FPGA)と読出し書込み可能なメモリ回路とを内蔵した半導体集積回路において、まず上記可変論理回路(FPGA)により自己テストを行なわせ、その結果得られた不良個所を示す情報を用いて不良個所を除いた基本論理セルのみで所定のアルゴリズムに従って所定のテスト信号および期待値信号を発生してテスト信号を上記メモリ回路に供給し、その結果メモリ回路から得られる出力信号(出力データ)と上記期待値信号(期待値データ)とを比較して一致しない場合に不良を示す信号を形成してチップ外部へ出力させるメモリテスト回路を構築するようにしたものである。
かかるメモリテスト回路は、所定のアルゴリズムに従ってメモリのテストパターンを生成するALPG(Algorithmic Memory Pattern Generator)と呼ばれるテストパターン生成器として構成することができる。さらに、このALPGは、命令コードを解読して演算器等を制御する公知のマイクロプログラム制御方式の制御部と、テストパターンを演算によって生成する演算器とにより構成する。そして、上記のようにFPGA内に構築されたALPGにテストパターン生成プログラムの命令コードを順次供給してテストパターンを発生させ、そのテストパターンを被テスト回路であるメモリ回路に供給して不良の有無を検査することができる。
さらに、上記テストパターン生成プログラムは、既存のテスタ言語乃至はテスト言語を用いて記述され、命令コードによって定義される上記所定のアルゴリズムに従って、テストパターン(アドレスとデータ)が生成される。上記テスタ言語は、アドレスとデータとを含むテストパターンを効率的に発生するための有効な命令言語と見なされる。上記テスタ言語は、テスタ業界で用いられているような言語とされ、たとえば、アドバンテスト社のテスタ言語と互換性のある言語が用いられる。これにより、既存のテストパターンのプログラムデータが利用できるからである。上記所定のアルゴリズムを記述する言語は、テスタ言語に限定されるものではなく、アドレスとデータとを含むテストパターンを発生することが可能な命令言語で有ればよい。
本発明に係る半導体集積回路の他のテスト方法は、半導体集積回路がメモリ回路と共にCPU(中央処理ユニット)やユーザが要求する論理機能を構成したユーザ論理回路のようなカスタム論理回路を含むような場合に、上記FPGAに所定のアルゴリズムに従ってCPUやカスタム論理回路のテスト信号および期待値信号を生成してテストを行なうテスト回路(ロジックテスタ)を構築するとともに、既に前記テストにより正常と判定されたメモリ回路を使用して、そのメモリ回路にテストパターンもしくはテストパターン生成プログラムを格納し、FPGAに構築されたテスト回路を起動してメモリ回路からテストパターンもしくはテストパターン生成プログラムを読み出しながらCPUやカスタム論理回路のテストを行なうものである。
これによって、高機能の外部テスタを用いることなくLSI内部の論理回路のテストを行なうことができる。
所定のアルゴリズムに従ってCPUやカスタム論理回路のテスト信号および期待値信号を生成してテストを行なうテスト回路は、命令コードを解読して制御信号を形成するマイクロ命令方式の制御部と、該制御部から出力される制御信号に基づいてCPUやカスタム論理回路のテスト信号および期待値信号を生成するとともにCPUやカスタム論理回路から出力される信号と期待値信号とを比較して一致しない場合に不良を示す信号を形成する信号形成・比較手段をFPGA内に構築することで実現される。この場合、基準クロック信号に基づいて互いに位相やデューティの異なる複数のクロック信号を形成するタイミング発生回路をFPGA内に構築して、上記制御部からの制御信号に従って各テスト信号ごとにタイミングを設定できるようにするとよい。
このように、テスト回路は、所定のアルゴリズムに従ってCPUやカスタム論理回路のテスト信号および期待値信号を生成するための制御信号を形成するマイクロプログラム制御方式の制御部と、該制御部から出力される制御信号に基づいた内部論理回路のテスト信号および期待値信号を生成するとともに内部論理回路から出力される信号と期待値信号とを比較して一致しない場合に不良を示す信号を形成する信号形成・比較手段とにより構成されるため、テストパターンをすべて内部のメモリに記憶する必要がないとともに、制御部の構成によって命令コード自身のデータ圧縮が可能となり、FPGA内に充分に構築することができる規模のものである。
発明を実施するための最良の形態
以下、本発明の好適な実施例を図面に基づいて説明する。
図1は、本発明を適用したシステムLSIの一実施例のブロック図で、公知の半導体集積回路の製造技術により単結晶シリコンのような1個の半導体チップ100上に構成される。
図1の符号110〜180は上記半導体チップ100上に構成された内部回路、190はこれらの内部回路と外部装置との間の信号の入出力を行なうインタフェース回路、200は上記内部回路110〜180相互間およびインタフェース回路190との間を接続する内部バスである。上記内部回路110〜180のうち、110および120はユーザが要求する論理機能を構成するユーザ論理回路のようなカスタム論理回路で、このうち120はユーザが任意に論理を構成可能なFPGAにより構成されている。このカスタム論理回路は、ユーザ論理を構成せずそのまま残しておくようにしてもよい。
また、130はプログラムの命令を解読して対応する処理や演算を実行するCPU(中央処理ユニット)、140はスタティックRAM(ランダム・アクセス・メモリ)、150〜180はダイナミックRAMである。さらに、この実施例のシステムLSIには、特に制限されるものでないが、内部回路のテスト時に外部のテスタ500との間の信号の入出力を行なうため、IEEE1149.1規格で規定されているTAP(Test Access Port)210がインタフェース回路として設けられている。テスタ500は、従来の論理LSIやメモリのテスタのような高機能のものでなくデータの書き込みと読み出しおよび簡単なデータ処理が行なえるものでよく、パーソナルコンピュータを用いることも可能である。
上記CPU130は、狭義のCPUの他に、プログラムROM、ワーキングRAM、シリアルコミュニケーションインタフェースやタイマー回路,デジタル・アナログ変換回路などのいわゆるマイコン周辺回路を含んでマイクロプロセッサとして構成されていてもよい。
上記スタティックRAM140およびダイナミックRAM150〜180は、内部バス200を介してアドレス信号が与えられたときに対応するメモリセルを選択するアドレスデコーダ等のメモリ周辺回路を含む。さらに、ダイナミックRAM150〜180は、非アクセス時間が長くなってもメモリセルの情報電荷が失われないように周期的に疑似選択するリフレッシュ制御回路を含む。また、特に制限されるものでないが、この実施例では、ダイナミックRAM150〜180には、メモリアレイ内に欠陥ビットがあった場合にその欠陥ビットを含むメモリ行もしくはメモリ列を予備のメモリ行もしくは予備のメモリ列と置きかえるいわゆる冗長回路がそれぞれ設けられている。
図2には、図1に示されている内部回路110〜180のうち、カスタム論理回路120を構成するFPGAの具体例を示す。
この実施例のFPGAは、マトリックス状に配置された複数個のセル論理ブロックCLBと、各セル論理ブロックCLB間に設けられてセル間を接続するための配線群121,122と、外部から配線間接続の状態を変更することが可能なクロスポイントスイッチCSWとにより構成されている。上記クロスポイントスイッチCSWは、図3に示すように、例えば横方向の配線Lxと縦方向の配線Lyにそれぞれソート,ドレインが接続されたスイッチMOSFET Qswと、このスイッチMOSFET Qswのゲートに印加される制御情報を記憶する配線接続情報記憶用メモリセルSMCとから構成されている。上記配線群121および122は、多層配線技術を利用してそれぞれ異なる配線層によって互いに絶縁された状態で形成するのが望ましい。図2には、各セル論理ブロック間にそれぞれ2本ずつ配線が示されているが、実際にはより多くの配線が形成される。配線の数はセル論理ブロックの数に比例して増加される。
特に制限されるものではないが、このFPGAブロックの周辺には、上記配線接続情報記憶用メモリセルSMCを選択してデータを書き込むためのXデコーダ回路やYデコーダ回路、書込み回路等を設けるようにしてもよい。また、上記配線接続情報記憶用メモリセルSMCは、スイッチMOSFET Qswと1対1で設ける代わりに、FPGAブロックの周辺にSRAMメモリアレイとして設けることも可能である。
セル論理ブロックCLBは、例えば図4(a)に示すように、AND論理とNAND論理のような相補出力を有する論理積ゲート回路(2線ラインロジック)LG1と、その相補出力を入力とする排他的論理和ゲート回路(比較手段)LG2とから構成することができる。このゲート回路LG2は、2つの入力信号が同一の論理レベルのときにロウレベルの出力信号を、また2つの入力信号の論理レベルが異なるときにハイレベルの出力信号を出力するので、論理積ゲート回路LG1に欠陥があって相補出力となるべきところが同相出力となると、ゲート回路LG2の出力はロウレベルとなりゲート回路LG1に欠陥があることを知らせる。
このゲート回路LG2の出力信号は、そのままFPGAブロックの外部へ出力させるようにしてもよいが、この実施例では、図3に示されているクロスポイントスイッチCSWを構成する配線接続情報記憶用メモリセルSMCのノードN2に入力させて記憶できるように構成されている。
従って、各セル論理ブロックCLBに電源電圧を与えてそのときのゲート回路LG2の出力状態を配線接続情報記憶用メモリセルSMCに記憶させてから、配線接続情報記憶用メモリセルSMCの記憶情報を外部へ読み出すことにより、セル論理ブロックCLBが正常に動作するか否かを知ることができる。また、各配線接続情報記憶用メモリセルSMCへチップ外部から順次データを書き込んで読み出すことでメモリセルが故障しているか否かも検出することができる。さらに、配線接続情報記憶用メモリセルSMCにデータを書き込んで所望のスイッチMOSFET Qswをオンさせて配線群121,122を使用して外部より信号を入力しチェックすることで、スイッチMOSFET Qswが故障しているか否かも検出することができる。
なお、ゲート回路LG2の出力状態が入力される配線接続情報記憶用メモリセルSMCを構成するMOSFET Q1のゲート構造あるいはメモリセル回路を工夫することにより、ゲート回路LG2の出力がロウレベルのときは外部からのデータ入力によってMOSFET Q1が反転すなわちオフしないように構成してもよい。これによって、セル論理ブロックCLBに故障があるか否かを効率良く検出することができる。
かかる機能を実現する具体的方法としては、メモリセルSMCを構成するMOSFET Q1を、例えば図4(b)に示すように、コントロールゲートとフローティングゲートを有する構造とし、ゲート回路LG2の出力(ロウレベル)をインバータINVで反転してMOSFET Q1のコントロールゲートCGに高レベルの電圧Vpを印加してフローティングゲートFGに電荷を注入させ、外部からのデータ入力によってはメモリセルの状態が変化しないようにする方法が考えられる。
また、図4(a)に示すAND論理とNAND論理のような相補出力を有する論理積ゲート回路LG1としては例えば図4(c)のような回路が考えられる。すなわち、論理積ゲート回路LG1は、電源電圧端子Vccと接地点との間に直列形態に接続されたMOSFET Q11〜Q13からなる第1MOSFET列と、直列形態のMOSFET Q21〜Q23からなる第2MOSFET列とからなり、Q12とQ21のゲートに第1の入力信号Xが供給されることにより、第2MOSFET列の出力ノードN12から入力信号X,Yの論理積出力Z(=X・Y)が、また第1MOSFET列の出力ノードN11から入力信号X,Yの論理積出力Zの反転出力/Z(=/X・Y)を出力するように動作する。なお、図に示されているMOSFET Q11およびQ23は、それぞれゲートとドレインが結合もしくはゲートに所定の電位が印加されることにより負荷として作用する。
図5(a)に上記セル論理ブロックCLBの他の構成例を示す。
この実施例のセル論理ブロックCLBは、BIST(Built in self test)内蔵型の論理ブロックであり、2つの入力信号X,Yをそれぞれラッチして各々正相と逆相の信号X,/X;Y,/Yを出力するフリップフロップFF1,FF2と、これら4つの出力信号を入力信号とし論理和や論理積、排他的論理和等複数の論理動作が可能な論理ユニットALUと、この論理ユニットの出力Zをラッチして正相と逆相の信号Z,/Zを出力するフリップフロップFF3と、上記論理ユニットの論理動作を指定する制御情報を記憶する読出し書き込み可能なメモリMEMと、テストパターンを乱数の形で発生する公知のLFSR(Linear Feedback Shift Register)と、コンパレータCMP等より構成されている。
上記論理ユニット制御情報を記憶するメモリMEMは外部から制御情報を書き込めるように構成されている。上記LFSRにはスイッチMOSFET G1〜G7を介して入力信号X,Yと論理ユニット制御情報およびFF3の出力信号Z,/Zの伝送信号線と接続可能に構成されて、クロックCLKに同期して動作する。
この実施例のセル論理ブロックCLBを自己検査動作させる場合、上記スイッチMOSFET G1〜G7のゲートに制御信号CHKを入力してオンさせる。すると、LFSRによりランダムなパターンが形成されてフリップフロップFF1,FF2および論理ユニットALUに供給されるとともに、発生されたパターンとフリップフロップFF3の出力とが論理合成、圧縮されてシグネチャ・パターンとしてコンパレータCMPに出力される。
コンパレータCMPは、例えば図5(b)に示されているように、期待シグネチャ・パターンが格納されたリード・オンリ・メモリROM、イクスクルーシブORゲートEOR、出力ラッチOLT、クロックCLKよりラッチタイミング信号を発生するタイミング発生回路TMG等から構成されている。LFSRよりシグネチャ・パターンが入力されると、コンパレータCMPはイクスクルーシブORゲートEORによってリード・オンリ・メモリROMに格納されている期待シグネチャ・パターンとLFSRの出力パターンとを比較して一致しているとロウレベルの信号を、また一致していないとハイレベルの信号を出力する。この出力がラッチOLTにラッチされて良/不良を示す信号ERRとして出力される。
なお、LFSRの動作原理は既に公知であり、種々の文献等に記載されているので詳しい説明は省略するが、その原理に従い被検査論理回路に合った最適化が可能である。LFSRを適用したBISTを内蔵した一般の論理LSIでは、論理回路毎にLFSRの最適化が必要であったため設計上煩わしさがあったが、本実施例のFPGAでは同一のセル論理ブロックCLBを使用しているので、その最適化は一律に行なうことができ、設計負担が軽減される。また、BISTを内蔵した従来のLSIは、1つのBISTがLSI内部回路全てを検査するグローバルなBISTであっため、生成されるテストパターンではテスト充分性が保証されないが、本実施例のBISTは各セル論理ブロックCLB内に設けられたローカルなBISTであるため、テスト充分性も保証される。
図6は、図1に示されているTAPを用いたインタフェース回路210の具体例を示す。
TAPは前述したように、IEEE1149.1規格で規定されているスキャンテストやBIST回路のためのインタフェースおよび制御回路で、入力ポートからのテストデータを出力ポートへシフトするときに使用するバイパスレジスタ211、回路へ特定の信号を伝える場合に使用するデータレジスタ212、チップ固有の製造識別番号を設定するためのデバイスIDレジスタ213、データレジスタの選択や内部のテスト方法を制御する場合に使用するインストラクションレジスタ214、TAP回路全体を制御するコントローラ215等により構成されている。
上記データレジスタ212はオプション扱いのレジスタである。また、インストラクションレジスタ214に設定される命令には、4つの必須命令と3つのオプション命令が用意されている。コントローラ215には、専用の3つの外部端子から、テストモードを指定するためのテストモードセレクト信号TMS、テストクロックTCK、リセット信号TRSTが入力されており、これらの信号に基づいて上記レジスタ211〜214やセレクタ回路216〜218に対する制御信号を形成する。
また、TAPにはテストデータTDIの入力端子とテスト結果データTDOの出力端子が設けられており、入力されたテストデータTDIは上記セレクタ回路216を介して各レジスタ211〜214または内部のスキャンパスIscan,Bscanへ供給される。また、レジスタ211〜214の内容および内部回路からのスキャンアウトデータは、セレクタ回路217、218を介してチップ外部へ出力される。さらに、TAPには、データレジスタ212とインストラクションレジスタ214の内容に従って内部のBIST回路に対する信号が形成されて供給されると共に、BIST回路から出力されたテスト結果を示す信号がセレクタ回路217、218を介してチップ外部へ出力可能に構成されている。
図1の実施例のシステムLSIでは、後に詳細に説明されるようにカスタム論理回路(FPGA)120やCPU130上に構築される自己テスト回路をBIST回路とみなして、上記TAPの有するBIST回路用の信号入出力機能を利用して、カスタム論理回路(FPGA)120やCPU130に対する自己テストのための設定信号やデータを入力したり、テスト結果およびFPGA120内のメモリセルやSRAM140に記憶されているデータを出力したりするように構成されている。TAPの有するスキャンテストのための機能は、図1の実施例のシステムLSIでは使用されない。
なお、図6において、“Iscan”は内部論理回路を構成するフリップフロップをチェーン状に結合したシフトレジスタをテストデータのスキャンパスとして使用して、内部論理回路の診断を行なうためのテストパスを意味する。また、“Bscan”は信号入出力部(図1のインタフェース回路190)内に設けられているフリップフロップをチェーン状に結合したシフトレジスタをスキャンパスとして使用して、他の半導体集積回路との間の接続状態の診断(バウンダリスキャンテスト)を行なうためのテストパスを意味する。
次に、図1に示されているシステムLSIに本発明に係るテスト方法を適用した場合のテスト手順の一例を、図7〜図11を用いて説明する。図7には、LSI全体のテスト手順の概略が、また図8〜図11にはLSIを構成する各ブロックのテスト手順の具体例が示されている。
本発明に係るテスト方法に従うと、図7に示されているように、先ずFPGA120が前述したセル論理ブロックの機能を利用して検査され、不良の有無が判定されて不良があるときは不良個所の回避が行なわれる(ステップS1〜S3)。次に、FPGA120内の上記不良個所を除いた部分にSRAM140をテストするためのテスト回路(ALPG)が構築され、SRAM140のテストが実行される(ステップS4,S5)。
SRAM140に不良個所が発見されなかった場合には、FPGA120内の上記不良個所を除いた部分にカスタム論理回路110およびCPU130をテストするためのテスト回路(ロジックテスタ)が構築され、カスタム論理回路110およびCPU130のテストが実行される(ステップS6〜S8)。このとき、既に検査が終了しているSRAMを利用してテストパターンもしくはテストパターン生成プログラムが格納される。
不良が発見されなかった場合には、FPGA120内の上記不良個所を除いた部分にDRAM150〜180をテストするためのテスト回路(ALPG)が構築され、DRAM150〜180のテストが順次実行される(ステップS9,S10)。そして、不良個所が発見された場合には、それがSRAM140あるいは外部の記憶装置に記憶されてから、DRAM150〜180に設けられている冗長回路を利用して不良ビットを救済するための救済プログラムがCPU130に読み込まれ、CPU130によってそのプログラムが実行されてビット救済が行なわれる(ステップS11,S12)。
その後、FPGA120内の上記不良個所を除いた部分にユーザ論理等のカスタム論理の一部が構成されて、システムLSIとして完成される(ステップS13)。このステップS13では、先ずTAP210をFPGA120内の接続情報記憶用メモリセルSMCのアクセスモードに設定してから、ステップS1で得られている不良個所を示す情報を利用してその不良個所を回避するようにユーザ論理を構成するデータをFPGA120内の正常なクロスポイントスイッチのメモリセルSMCに書き込むことによって所望の論理を構成する。
図8には、図7のフローチャートのステップS1〜S3におけるカスタム論理回路(FPGA)120の自己検証のより詳しい手順が示されている。
本実施例のデバイス(システムLSI)に電源電圧が投入されると、FPGA120を構成するセル論理ブロックCLBの論理ゲート回路LG1,LG2が能動化され、欠陥がある場合には論理ゲート回路LG1の出力がロウレベルになってその出力状態が接続情報記憶用メモリセルSMCに記憶される(ステップS111)。
次に、テスタ500を用いてテスト用インタフェース回路としてのTAP210にテストモードセレクト信号TMSやインストラクションレジスタ214に設定するコードを入力して、TAP210を、FPGA120内の接続情報記憶用メモリセルSMCのアクセスモードに設定する(ステップS112)。続いて、メモリセルSMCに対して正常を示すデータ(上記セル論理ブロックCLBの自己検証による欠陥状態を示す論理レベルと逆の論理レベル)を書き込む(ステップS113)。次に、上記メモリセルSMCのデータの読み出しを行なう(ステップS114)。
そして、読み出されたデータと書込みデータとを比較することでいずれのセル論理ブロックCLBに欠陥があるか判定する(ステップS115)。また、例えば上記書込みデータと逆のデータを書き込んで読み出すことによってメモリセルSMC自身に欠陥のあるクロスポイントスイッチCSWも検出することができる。
次に、テスタ500において、上記判定結果に基づいて正常なクロスポイントスイッチCSWおよびセル論理ブロックCLBのマップを作成する(ステップS116)。作成したマップすなわちクロスポイントスイッチCSWおよびセル論理ブロックCLBの正常/異常を示す情報は、テスタ500内の記憶装置等に格納しておく。それから、FPGA120上に構築するSRAMテスタ(ALPG)のHDL記述をデータベース等から読み出してテスタ500で論理合成等を行ない、上記マップに基づいて欠陥のあるクロスポイントスイッチCSWおよびセル論理ブロックCLBを回避してALPG(Algorithmic Memory Pattern Generator)を構築するデータを生成する(ステップS117)。そして、生成したデータをテスタ500内の記憶装置等に格納する(ステップS118)。このデータは、正常なクロスポイントスイッチCSWのスイッチMOSFET Qswを、構成したい論理に応じて選択的にオンさせるデータである。
図9には、図7のフローチャートのステップS4〜S5におけるSRAM部140の検査のより詳細な手順が示されている。
SRAM部140の検査では、先ずテスタ500からTAP210に制御信号を供給してFPGA120内のクロスポイントスイッチ制御情報を記憶するためのメモリセルSMCを選択状態にする(ステップS121)。それから、選択状態のメモリセルSMCに上記ステップS118で記憶装置に記憶されたALPGを構築するデータを転送する(ステップS122)。これによって、FPGA120内にSRAMを検査するためのテストパターンを発生可能なALPGを含むテスト回路が構築される。FPGA120内に構築されるALPGの構造およびALPGを構築する具体的な方法については、後に詳しく説明する。
次に、ALPGを動作させてテストパターンを発生させるためのプログラムをテスタ500によりTAP210を介してFPGA120内のメモリ回路に書き込む(ステップS123)。このメモリ回路は、ステップS122でのALPGの構築の際に、FPGA120を構成するセル論理ブロックCLBとクロスポイントスイッチCSWとによって構成されている。
続いて、テスタ500からTAP210に制御信号を供給してSRAM部140を選択状態にする(ステップS124)。そして、上記FPGA120内のALPGに起動をかけ、ステップS123で書き込んだテストパターン生成プログラムを実行させてテストパターンを発生させ、発生されたテストパターンをバス200等を介して選択状態のSRAM部140に供給してテストを行ない、そのテスト結果をTAP210を介して外部(テスタ500)へ出力する(ステップS125,S126)。
すると、テスタ500は出力されたテスト結果からSRAM部140内に不良があるか否かを判定し良品と不良品を選別する(ステップS127)。なお、FPGA120内に構築されたALPGにより形成された書込みデータを期待値として外部へ出力させるとともに、SRAMから読み出されたデータも外部へ出力させることで、外部のテスタで期待値と読み出しデータとを比較して不良の有無の判定を行なうように構成することも可能である。また、テストパターン生成プログラムをFPGA内に構成したメモリ回路に記憶される代わりに、外部からTAPを介して順次テストパターン生成プログラムを構成する命令コードを入力させるようにしてもよい。
図10には、図7のフローチャートのステップS6〜S8におけるロジック部すなわちカスタム論理部110およびCPU部130の検査のより詳細な手順が示されている。
論理部110および130の検査では、先ずテスタ500において、FPGA120内にロジックテスタを構築するためのデータを作成する(ステップS131)。このとき、図8のFPGA自己検証フローのステップS116で生成された正常なセル論理ブロックCLBとクロスポイントスイッチCSWのマップを用いて故障のある回路を回避してロジックテスタを構築するようなデータが作成される。
次に、テスタ500からTAP210に制御信号を供給してFPGA120内のクロスポイントスイッチ制御情報を記憶するメモリセルSMCを選択状態にする(ステップS132)。それから、選択状態のメモリセルSMCに上記ステップS131で記憶装置に記憶されたロジックテスタを構築するデータを転送する(ステップS133)。これによって、FPGA120内に論理部を検査するためのテストパターンを発生可能なテスト回路が構築される。このとき、FPGA内にプログラムメモリを構成し構成されたメモリにロジックテスタを動作させるためのプログラムも転送しておくようにしてもよい。FPGA120内に構築されるロジックテスタの構造およびロジックテスタを構築する具体的な手順については、後に詳しく説明する。
次に、テスタ500からTAP210に制御信号を供給して、図9のフローの検査が終了したSRAM部140を選択する(ステップS134)。そして、予めテスタ500内に用意されているカスタム論理部110を検査するためのテストパターンを発生するプログラムをテスタ500によりTAP210を介してSRAM140内に書き込む(ステップS135)。SRAMのテストパターンを生成するプログラムのように、FPGA内のメモリ回路に格納せずに検査が終了したSRMA内に格納するのは、一般にメモリのテストパターンよりも論理回路のテストパターンの方が長くより大きなメモリ領域を必要とするためである。
続いて、上記FPGA120内のロジックテスタに起動をかけ、ステップS135でSRAM140に書き込んだテストパターン生成プログラムを読み出してテストパターンを生成しながらカスタム論理部110に供給する(ステップS136)。そして、カスタム論理部110からの出力信号を期待値と比較してテスト結果をTAP210を介して外部(テスタ500)へ出力する(ステップS137)。
すると、テスタ500は出力されたテスト結果からカスタム論理部140内に不良があるか否かを判定し良品と不良品を選別する(ステップS138)。
次に、予めテスタ500内に用意されているCPU130を検査するためのテストパターン生成プログラムをSRAM140へ転送する(ステップS139)。続いて、上記FPGA120内のロジックテスタに起動をかけ、ステップS135でSRAM140に書き込んだテストパターン生成プログラムを読み出してテストパターンを生成しながらCPU130に供給する(ステップS140)。そして、CPU130からの出力信号を期待値と比較してテスト結果をTAP210を介して外部(テスタ500)へ出力する(ステップS141)。
すると、テスタ500は出力されたテスト結果からCPU130内に不良があるか否かを判定し良品と不良品を選別する(ステップS142)。
図11には、図7のフローチャートのステップS9〜S12におけるDRAM部150〜180の検査のより詳細な手順が示されている。
DRAM部150〜180の検査では、先ずテスタ500において、FPGA120内にDRAMを検査するためのテストパターンを発生可能なALPG(Algorithmic Memory Pattern Generator)を構築するためのデータを作成する(ステップS151)。このとき、図8のFPGA自己検証フローのステップS116で生成された正常なセル論理ブロックCLBとクロスポイントスイッチCSWのマップを用いて故障のある回路を回避してALPGを構築するようなデータが作成される。なお、DRAMを検査するALPGはSRAMを検査するALPGとほぼ同様であり、リフレッシュ動作の正常/異常を判定する処理が追加されている点が異なる。
次に、テスタ500からTAP210に制御信号を供給してFPGA120内のクロスポイントスイッチ制御情報を記憶するメモリセルSMCを選択状態にする(ステップS152)。それから、選択状態のメモリセルSMCに上記ステップS151で作成されたALPGを構築するデータを転送する(ステップS153)。これによって、FPGA120内にDRAMを検査するためのALPGを含むテスト回路が構築される。FPGA120内に構築されるALPGの構造およびALPGを構築する具体的な方法は、後に詳しく説明されるSRAMを検査するためのALPGとほぼ同様である。
次に、ALPGを動作させてテストパターンを発生させるためのプログラムをテスタ500によりTAP210を介してFPGA120内のメモリ回路に書き込む(ステップS154)。このメモリ回路は、ステップS153でのALPGの構築の際に、FPGA120を構成するセル論理ブロックCLBとクロスポイントスイッチCSWとによって構成されている。なお、テストパターン生成プログラムは、SRAM140内に記憶してもよいし、DRAM検査の際に外部から順次命令コードをFPGA内のALPGに入力するようにしてもよい。
続いて、テスタ500からTAP210に制御信号を供給してSRAM部140を選択状態にして(ステップS155)、SRAM内に後述のDRAMテスト(ステップS159)で検出される欠陥ビットの位置を記憶するためのフェールメモリを構成する(ステップS156)。次に、テスタ500からTAP210に制御信号を供給してCPU部130を選択状態にして(ステップS157)、DRAMの欠陥ビットを救済するための救済プログラムをCPU130内のメモリに転送する(ステップS158)。この救済プログラムはSRAM140内に入れておくようにしてもよい。
この救済プログラムは、所定の置換アルゴリズムに従って、上記DRAM150に付随して設けけられている冗長回路内のアドレス変換回路に置換アドレスを設定し、欠陥ビットを含むメモリ行またはメモリ列を予備行または予備列に置きかえるものである。テスト結果に基づいて、最も適切な予備メモリ行または予備メモリ列を選択して、欠陥ビットと置き換える冗長置換アルゴリズムそれ自身は公知であり、それを使用することで、本実施例のために新規な置換アルゴリズムを必要としない。
それから、テスタ500によりTAP210に制御信号を供給してDRAM150を選択状態にしてから上記FPGA120内のALPGに起動をかけ、ステップS154で書き込んだテストパターン生成プログラムを実行させてテストパターンを発生させ、発生されたテストパターンを選択状態のDRAM部150に供給してテストを行ない、その結果すなわち欠陥ビットの位置をSRAM140に構成されたフェールメモリに記憶させる(ステップS159)。なお、ステップS159でのDRAMテストでは、SRAMテストと同様のリード/ライトテストの他に、正常なリフレッシュ動作が行なわれるか否かのテストも行なわれる。
次に、CPU130に起動をかけて救済プログラムを実行させ、上記フェールメモリ(SRAM140)に記憶された欠陥ビットの情報に基づいて欠陥ビットを含むメモリ行またはメモリ列を予備行または予備列に置きかえるビット救済処理を行なう(ステップS160)。その後、正常に救済が行なわれたか否かのテストが救済プログラムの一連の動作として行なわれる(ステップS161)。そして、そのテスト結果がチップ外部のテスタ500に出力される。
すると、テスタ500は出力されたテスト結果からDRAM部150内に不良があるか否かを判定し良品と不良品を選別する(ステップS162)。DRAM部150のテストおよびビット救済が終了すると、再びステップS159へ戻って他のDRAM部160、170および180についても同様にしてテストおよびビット救済とテスト結果の判定が行なわれる。
次に、前記SRAM140の検査の際にFPGA120内に構築されるALPGの詳細について説明する。ALPGは、例えば図12に示されているように、所定のテストパターン生成アルゴリズムに従って記述された複数のマイクロ命令群からなるマイクロプログラムが格納される命令メモリ411と、該命令メモリ411から読み出されるべきマイクロ命令の命令アドレスを指定するプログラムカウンタ412と、上記命令メモリ411から読み出されたマイクロ命令内の命令コードを解読してメモリ回路部に対する制御信号やプログラムカウンタ412等テスト回路内の内部回路に対する制御信号を形成するシーケンス制御回路413と、命令メモリ411より読み出されたマイクロ命令に従ってテストアドレスを生成するアドレス演算回路414と、読み出されたマイクロ命令に従ってテストデータおよび期待値データを生成するテストデータ生成回路415と、上記テストアドレスによってSRAM部140から読み出されたデータと上記テストデータ生成回路415により生成された期待値データとを比較し、正常な書込みがなされた否か判定する比較判定回路416等により構成されている。
上記比較判定回路416における判定結果は、データの一致/不一致を示す判定信号FとしてTAP210を介してチップの外部へ出力されるように構成されている。テストパターン生成アルゴリズム自体は公知であり、それらを適用することで、特に本実施例のために新規なアルゴリズムを必要としない。
上記命令メモリ411に格納される複数のマイクロ命令は、既存のテスタ言語乃至はテスト言語を用いて記述することができる。上記複数の命令によって定義される上記所定のアルゴリズムに従って、テストパターン(アドレスとデータ)が生成される。上記テスタ言語は、アドレスとデータとを含むテストパターンを効率的に発生するための有効な命令言語と見なされる。上記テスタ言語は、テスタ業界で用いられているような言語とされ、例えば、アドバンテスト社のテスタ言語と互換性のある言語が用いられる。既存のテストパターンのプログラムデータが利用できるからである。上記所定のアルゴリズムを記述する言語は、テスタ言語に限定されるものではなく、アドレスとデータとを含むテストパターンを発生することが可能な命令言語で有ればよい。
上記命令メモリ411がSRAMメモリセルによって構成される場合には、テストの実施に先立って、上記命令メモリにプログラムをロードする必要がある。FPGA120が不揮発性メモリを含む場合には、この不揮発性メモリの一部のアドレス領域に上記プログラムを格納しておき、SRAMテストモードへの移行に応答して、上記プログラムを格納するアドレス領域から上記命令メモリ411へ上記プログラムをロードするのがよい。命令メモリ411を設ける代わりに連続した命令コードを外部のテスタから順次FPGA120内に構築されているALPGのシーケンス制御部414に入力してSRMAのテストパターンを発生させるように構成してもよい。
なお、本実施例が適用される図1のシステムLSIのようにメモリの他にCPU130やカスタム論理回路110を備えている場合には、図13に示すように、メモリ回路140(150〜180)とCPU130及びカスタム論理回路110と、テスト回路が構築されるFPGA120との間に専用バス220および切替えスイッチSW1〜SWnからなる信号切替え回路230を設けた可変バス構成としてもよい。
上記信号切替え回路230内の切替えスイッチSW1〜SWnを制御する信号CSは、メモリ回路のテストの際には、ALPGにおいて命令によって発生させ、それをスイッチSW1〜SWnへ与えるようにしてもよい。また、外部から供給されるテストモード指定信号に基づいて切替え制御信号CSを形成するように構成してもよい。
また、上記切替えスイッチSW1〜SWnは、メモリ回路140とCPU130及びカスタム論理回路110との間、またはメモリ回路140とALPGが構築されたFPGA120との間の接続切り替えのみならず、CPU130及びカスタム論理回路110とFPGA120との間を接続できるように構成するのがよい。
図14には、上記命令メモリ411に格納されるマイクロ命令の命令フォーマットの構成例が示されている。前述のように、このマイクロ命令のフォーマットは、テスタ言語に基づいている。
この実施例のマイクロ命令は、ジャンプ命令で使用する命令の飛び先番地を示すPCアドレスが格納されるアドレスフィールドMFaと、シーケンス制御コードが格納されるオペコードフィールドMFbと、命令の繰り返し数などが格納されるオペランドフィールドMFcと、アドレスやデータの出力およびリード/ライトを指示する制御コードが格納される制御フィールドMFdと、アドレス演算命令コードが格納されるアドレス演算コードフィールドMFeと、データ生成命令コードが格納されるデータ生成コードフィールドMFf等からなる。アドレスフィールドMFaは、次に実行されるべき命令のアドレスを規定するフィールドと見なされる。
この実施例に使用されるテスタ言語としてのマイクロ命令の特徴は、1つの命令でテスト用のアドレス演算とデータ演算とを指定して2つの演算を並列に実行する点にある。
図15には、シーケンス制御回路413の構成例が示されている。この実施例のシーケンス制御回路413は、オペコードフィールドMFbの制御コードを解読して制御信号を形成するデコーダなどからなる命令解読制御部430と、プログラムカウンタ412の値を「+1」するためのインクリメンタ431と、上記インクリメンタ431またはアドレスフィールドMFa内の飛び先番地のいずれかを選択してプログラムカウンタ412へ供給するマルチプレクサ432と、オペランドフィールドMFc内の繰り返し数を保持する複数のインデックスレジスタ433と、該インデックスレジスタ433の値を「−1」するためのデクリメンタ434と、「−1」された値を保持する複数のプレーンあるいはウェイから構成されるワーキングレジスタ435と、後述のjxd命令(表1参照)で用いるデータ反転の有無を示すフラグ436と、jindex命令で用いるオペランドのプログラムカウンタ412への転送の有無を示す複数のフラグ437と、レジスタ433,435の値を選択的に上記デクリメンタ434に供給する複数のマルチプレクサ438と、デクリメンタ434の値をワーキングレジスタ435のいずれかのプレーンに分配するデマルチプレクサ439から構成される。
表1には、上記マイクロ命令内のオペコードフィールドMFbに定義乃至記述格納されるところの上記シーケンス制御に用いられるオペコードの種類とその内容が示されている。
【表1】
表1において、「nop」で示される命令は、プログラムカウンタ412の値をインクリメンタ431で「+1」してプログラムカウンタ412へ戻すことを指示するノーオペレーション命令つまりプログラムカウンタの更新以外に何の操作を行なわずに次の命令に移ることを指令する命令である。
また、「jindex1」〜「jindex4」は、ジャンプによる命令のループを回すために用意された命令である。メモリのパターンテストにおいては、ジャンプ命令を用いて同じ命令を何回も繰り返して実行することで命令数、すなわち、プログラム長を減らすことができる場合(例えば、アドレスを最終番地までインクリメントすることで、全メモリセルに「1」を書き込んで読み出すような場合)がある。このループ(ジャンプ)の回数を設定できるようにするために、本実施例では、インデックスレジスタ433を設けている。しかも、複数種類の判定方式を実行できるようにするため、ジャンプ命令とインデックスレジスタ433およびワーキングレジスタ435をそれぞれ4つずつ設けている。
各ジャンプ命令は同じ制御内容であるので、以下「jindex1」による制御動作を説明し、他のジャンプ命令「jindex2」〜「jindex4」の説明は省略される。オペコードフィールドMFbからjindex1命令が読み出されると、それが最初のjindex1命令であるか判定されて、その判定結果がフラグ437に反映される。具体的には、最初のjindex1のときはフラグjf1=0とされ、2回目以降はjf1=1とされる。
フラグjf1=0のときにjindex1命令が読み出されると、そのマイクロ命令のアドレスフィールドMFa内のジャンプ先アドレスとしてのPCアドレスがプログラムカウンタ412へ設定されるように、マルチプレクサ432が制御される。それによって、マイクロ命令の実行シーケンスはその番地にジャンプされるとともに、フラグjf1は「1」にセットされる。これと同時に、オペランドフィールドMFc内で定義されるループ回数がインデックスレジスタ433のidxに読み込まれる。
フラグjf1=1のときにjindex1命令が読み出されると、そのマイクロ命令のアドレスフィールドMFa内のPCアドレスがプログラムカウンタ412へ設定される。そして、インデックスレジスタ433のidx1内のループ回数がマルチプレクサ438を介してデクリメンタ434に供給されデクリメント「−1」される。デクリメントされた値は、デマルチプレクサ439を介してワーキングレジスタ435のidxw1に格納される。そして、ワーキングレジスタ435のidxw1が「0」になると、マイクロ命令のアドレスフィールドMFa内のPCアドレスをプログラムカウンタ412へ設定しないで代わりに、プログラムカウンタ412のアドレスをインクリメンタ431で「+1」してプログラムカウンタ412へ戻すようにマルチプレクサ432が制御される。
従って、マイクロ命令のオペコードフィルードMFbにjindex命令が定義乃至記述され、そのアドレスフィールドMFa内に当該マイクロ命令のジャンプ先アドレスとしてのPCアドレスが定義乃至記述されていると、オペランドフィールドMFc内で指定されたループ回数だけ同一のjindex命令が繰り返し実行され、最後にプログラムカウンタ412がインクリメントされて、次のマイクロ命令へ進んでループから抜け出すような制御が行なわれる。
また、表1内の「jxd」命令は、フラグ436内のdflgを参照し、そのdflgフラグの値によってプログラムカウンタの値を操作する命令とされる。「jxd」命令は、フラグ436内のdflgフラグが「0」のような第1の値のときは、オペランドをプログラムカウンタへ転送し、プログラムをオペランドの示す飛び先番地の命令へジャンプさせ、かつ、dflgフラグを「1」のような第2の値にセットする。一方、「jxd」命令は、dflgフラグが「1」のような第2の値のときは、プログラムカウンタの値をインクリメントし、プログラムカウンタへ戻し、かつ、dflgフラグを「0」のような第1の値にリセットする。
「jmp」命令は、オペランドをプログラムカウンタへ転送して、プログラムをオペランドの示す飛び先番地の命令へジャンプさせることを指令する命令である。
「stop」命令は、シーケンス制御を終了させる事を指示する停止命令である。
図16には、上記アドレス演算回路414の構成例が示されている。
この実施例のアドレス演算回路414は、大きく分けてXアドレスの生成を行なうXアドレス演算部441と、Yアドレスの生成を行なうYアドレス演算部442とにより構成されている。Xアドレス演算部441とYアドレス演算部442は、ほぼ同一の構成であるので、以下、Xアドレス演算部441の構成を説明し、Yアドレス演算部442の構成の説明を省略する。また、必要に応じて不可的なZアドレス演算部を設けることにより、部分的なパターンの生成(パーシャルパターン)を行なわせるようにできる。
Xアドレス演算部441は、Xアドレスの初期値を格納する初期値レジスタXholdと、「0」を保持するゼロ設定手段443と、Xアドレスの初期値または「0」のいずれかを選択するマルチプレクサMUX1と、選択された初期値または「0」を保持するベースレジスタXbaseと、レジスタXbaseの値を加算する第1の演算器ALU1と、演算器ALU1の演算結果または「0」または帰還値のいずれかを選択する第2のマルチプレクサMUX2と、選択された値を保持するカレントレジスタXcurrentと、レジスタXcurrentの値を加算もしくは減算する第2の演算器ALU2と、この第2演算器ALU2または上記第1演算器ALU1の出力のいずれかを選択する第3のマルチプレクサMUX3と、選択された出力を反転可能なインバータINVとから構成されている。
このインバータINVは、メモリのパターンテストにおいて、アドレス信号の切り換えノイズによる誤動作を試験する場合があり、その際にアドレス信号の反転信号を出力する必要があるため設けられる。このインバータINVを使用することで、上記試験におけるアドレス信号の反転信号を容易に形成することができる。
特に制限されないが、この実施例では、上記Xアドレス演算部441の演算器ALU1,ALU2で生成されたXアドレスをYアドレス側へ、また、Yアドレス演算部442で生成されたYアドレスをXアドレス側へ出力できるように、それぞれの第3マルチプレクサMUX3が構成されている。
これにより、複数の種類のメモリ、例えば、アドレスマルチプレックス方式のメモリおよびアドレスノンマルチプレックス方式のメモリのいずれのテスト回路としても使用できるように構成されている。つまり、命令メモリ411に格納されるマイクロ命令を書き換えるだけで、すべてのメモリに対してそれに必要なテストパターンの発生乃至検査を行なうことができる。
なお、上記Xアドレス演算部441とYアドレス演算部442の異なる点は、Xアドレス演算部441の第1演算器ALU1がオーバーフローしたときにYアドレス演算部442の第1演算器ALU1に対してはボロー信号BRが供給されるようにされている点である。
表2には、上記マイクロ命令内の演算コードフィールドMFeに記述乃至定義格納されるところの上記Yアドレス演算部442の第1演算器ALU1でのYアドレス演算(ベース演算)に用いられる演算コードの種類とその内容が示されている。
【表2】
表2において、Ybase←0は、ベースレジスタYbaseの値を「0」にすることを指令する命令である。Ybase←Yholdは、初期値レジスタYholdの内容をベースレジスタYbaseに入れることを指令する命令である。Ybase←Ybase+1は、ベースレジスタYbaseの値をインクリメント(+1)してレジスタYbaseに戻すことを指令する命令である。Ybase←Ybase+1(BR)は、ベースレジスタXbaseの値が最大値でなければYbaseの値をそのままにし、かつ、Xbaseの値が最大値であればYbaseの値をインクリメントしてレジスタYbaseに戻すことを指令する命令である。このとき、第1演算器ALU1から第2演算器ALU2へボロー信号BRが供給される。
表3には、上記Xアドレス演算部441の第1演算器ALU1でのアドレス演算に用いられる演算コードの種類とその内容が示されている。
表4には、上記Yアドレス演算部442の第2演算器ALU2でのYアドレス演算(カレント演算)に用いられる演算コードの種類とその内容が示されている。
表5には、上記Xアドレス演算部441の第2演算器ALU2でのアドレス演算に用いられる演算コードの種類とその内容が示されている。
表4において、左側の欄はテスタ言語を用いて記述されたALPG記述で、右側の欄はそれに対応した機能動作レベル記述である。この記述をハードウェア記述言語(HDL記述)のルールに従い記述して機能を表現できる。
【表3】
【表4】
【表5】
図17には上記テストデータ生成回路415の構成例が示されている。
この実施例のテストデータ生成回路415は、ライトデータまたは期待値の初期値を格納する初期値レジスタTpholdと、当該初期値レジスタTpholdの値を反転可能なインバータINVERT1と、出力すべきテストデータまたは期待値の基準データを保持するベースデータレジスタTpと、ビットシフト機能を有する演算器ALUと、演算器ALUの出力を反転可能なインバータINVERT2とから構成されている。なお、上記実施例では、ビット幅を18ビットとしているが、必要に応じてテストデータ回路を拡大して、所望のビット幅に構成できる。
表6には、上記マイクロ命令内のデータ生成コードフィールドMFfに定義乃至は記述されるところの上記テストデータ生成回路415での動作制御に用いられる制御コードの種類とその内容が示されている。表6において、表3〜表5の命令と同一規則で表されている命令は、ほぼ同様の命令である。
Tp←Tp*2は、レジスタTpと演算器ALUを制御してレジスタTp内の18ビットのデータを演算器ALUで処理してビット列をMSB側もしくはLSB側へ1ビットシフトさせてレジスタTpに戻す命令である。この命令によって、メモリ部が1ワードあるいは1バイトのような単位でデータのリード・ライトが行なわれるタイプのメモリであっても、メモリセルに対して1ビットずつデータ「1」を書き込むためのテストデータを比較的容易に生成することができる。
【表6】
表7には、メモリの試験方法の1つであるところのマーチング試験に関するマイクロ命令のリストの一例が示される。
マーチング試験は、次のように行われる。メモリアレイ1内のメモリセルの全ビットにおいて、その中の1ビットが順番に選択される。選択されたメモリセルには、「0」のデータが書き込まれる。その後、書き込まれた「0」のデータの読み出しが行なわれる。続いて、全ビットにおいて、その中の1ビットが順番に選択される。選択されたメモリセルには「1」のデータが書き込まれる。その後、書き込まれた「1」のデータが読み出されて、それぞれ期待値と比較して欠陥の有無が判定される。
一例として、Xアドレスが4ビット、Yアドレスが4ビットで、256ビットの記憶容量を有するメモリアレイを想定したマーチング試験が説明される。
【表7】
表7において、記号WおよびRは、制御フィールドMFdに記述乃至定義されるところのメモリに対するリード/ライトを指示する制御コードである。この制御コードは、Wに対応したビットとRに対応したビット、つまり、2ビットで表すようにされている。「PCアドレス」の欄に記載されている数字は、飛び先番地を示すもので、当該マイクロ命令実行後にPCの欄に記述されている番号のマイクロ命令に移行してループもしくはジャンプすることを意味している。また、「制御命令等」の欄に記載されている記号X←Xbase,Y←Ybaseは、それぞれベースレジスタXbase,Ybaseの値をXアドレス,Yアドレスとして出力することを意味している。
図18および図19には、前記マイクロプログラム制御方式の制御部と演算部とからなるテスト回路(ALPG)によりSRAM140のマーチング試験を行なう場合の表7のマイクロ命令リストに従った処理フローの一例を示す。このうち図18はマイクロ命令内のオペコードとオペランドとによるシーケンス制御のフローを示す。また、図19は、図18に示されるシーケンス制御のフローと並行して実行されるところのアドレス演算コードとデータ生成コードによるテストアドレスおよびテストデータ(ライトデータ、期待値データ)の生成フローを示す。これらの処理は、前述の表1〜表6に記述されている命令コードを用いてシーケンス制御回路413およびアドレス演算回路414、データ生成回路415を動作させることにより実行することができる。
以下、図18と図19の各ステップを対応させながら、マーチング試験の手順を説明する。
外部からプログラムカウンタ412にスタートアドレスとして、表7のリストに示される最初の命令の番地がセットされると、図18および図19のフローが開始される。先ず、命令メモリ411から表7の最初のマイクロ命令が読み出されると、オペコードは「nop」であるため、シーケンス制御回路413は何もせずただプログラムカウンタ412を1つだけ進める(ステップS201)。一方、アドレス演算回路414およびデータ生成回路415は、初期値レジスタXhold,Yhold,Tholdに入っている初期値「0」をベースレジスタXbase,Ybase,Tpにそれぞれ設定する(ステップS221)。
次に、上記ステップS201でプログラムカウンタ412がインクリメントされているため、表7の2番目のマイクロ命令が読み出される。第2のマイクロ命令のオペコードは「jindex1」であるため、シーケンス制御回路413ではオペランドの繰り返し回数がインデックスレジスタidx1にセットされる(ステップS202)。
インデックスレジスタidx1の最初の設定値はメモリアレイ1の容量(バイト数もしくはワード数)に対応される。一方、アドレス演算回路414では、演算コードX←Xbase,Y←YbaseによってベースレジスタXbase,Ybaseの値をXアドレス,Yアドレスとしてそれぞれ出力する。データ生成回路415からはレジスタTpの値「0」が出力される。そして、このとき、制御信号W(書き込み)が出力される。これによって、メモリアレイ1ではアドレス演算回路414から出力されたX,Yアドレスに対応したメモリセルが選択されてデータ「0」が書き込まれる(ステップS222)。
シーケンス制御回路413はオペコード「jindex1」によってインデックスレジスタidx1の値をデクリメントしてワーキングレジスタidxwに入れ、それが「0」になるまで同一命令を繰り返す(ステップS203,S204)。
また、アドレス演算回路414では演算コードXbase←Xbase+1によってベースレジスタXbaseの値すなわちXアドレスをインクリメントし、Ybase←Ybase+1(BR)によってベースレジスタXbaseが最大値になるとYアドレスをインクリメントする。上記インデックスレジスタidx1の最初の設定値はメモリアレイ1の容量と同じであるので、上記動作の繰り返しによって、メモリアレイ1内のすべてのメモリセルに順番にデータ「0」が書き込まれる(ステップS223,S224)。
ワーキングレジスタidxwの値が「0」になると、シーケンス制御回路413はプログラムカウンタ412の値をインクリメントして、表7の3番目のマイクロ命令を読み出す。そのオペコードは「nop」であるため、シーケンス制御回路413は何もせずプログラムカウンタ412を1つだけ進める(ステップS205)。
一方、アドレス演算回路414は、3番目のマイクロ命令の演算コードに従って、X,YアドレスをインクリメントしてからベースレジスタXbase,Ybaseに入っている値をXアドレス,Yアドレスとしてそれぞれ出力する。このときベースレジスタXbase,Ybaseの値は「0」に戻っている。データ生成回路415はこのとき「0」を出力する。また、制御フィールドMFdの制御コードに従って、制御信号R(読み出し)が出力される。これによって、当該アドレスのデータが読み出され、期待値データ「0」と比較される(ステップS225,S226)。
次に、上記ステップS205でプログラムカウンタ412がインクリメントされているため、表7の4番目のマイクロ命令が読み出される。第4のマイクロ命令のオペコードは「jindex1」であるため、シーケンス制御回路413ではオペランドの繰り返し回数がインデックスレジスタidx1にセットされる(ステップS206)。インデックスレジスタidx1の最初の設定値はメモリアレイ1の容量(バイト数もしくはワード数)に対応される。ただし、第4命令のjindex1命令コードは第2命令のjindex1命令コードと異なるPCアドレス(飛び先番地)を有するため、実行後に第3の命令(オペコードが「nop」)に戻る。
一方、アドレス演算回路414では、演算コードX←Xbase,Y←YbaseによってベースレジスタXbase,Ybaseの値をXアドレス,Yアドレスとしてそれぞれ出力する。また、データ生成コードDinvertによって、データ生成回路415からはレジスタTpの値「0」を反転したデータ「1」が出力される。そして、このとき、制御信号W(書き込み)が出力される。これによって、メモリアレイ1では出力されたX,Yアドレスのメモリセルにデータ「1」が書き込まれる(ステップS227)。
シーケンス制御回路413はオペコード「jindex1」によってインデックスレジスタidx1の値をデクリメントしてワーキングレジスタidxwに入れ、それが「0」になるまで「nop」命令に戻って繰り返す(ステップS207,S208)。また、アドレス演算回路414では演算コードXbase←Xbase+1によってベースレジスタXbaseの値すなわちXアドレスをインクリメントし、Ybase←Ybase+1(BX)によってベースレジスタXbaseが最大値になるとYアドレスをインクリメントする。上記インデックスレジスタidx1の最初の設定値はメモリアレイ1の容量と同じであるので、上記手順によって、メモリアレイ1内のすべてのメモリセルに対して順番に読み出しが行なわれ期待値と比較されてから当該アドレスに「1」が書き込まれる動作を繰り返す(ステップS227,S228)。
次に、表7の5番目のマイクロ命令が読み出される。第5のマイクロ命令のオペコードは「jindex1」であるため、シーケンス制御回路413ではオペランドの繰り返し回数がインデックスレジスタidx1にセットされる(ステップS209)。インデックスレジスタidx1の最初の設定値はメモリアレイ1の容量(バイト数もしくはワード数)に対応される。この第5のjindex1命令コードは第2のjindex1命令コードと同じPCアドレスを有し、同一命令を繰り返す命令とされる。一方、アドレス演算回路414では、演算コードX←Xbase,Y←YbaseによってベースレジスタXbase,Ybaseの値をXアドレス,Yアドレスとしてそれぞれ出力する。また、データ生成コードDinvertによって、データ生成回路415からはレジスタTpの値「0」を反転したデータ「1」が出力される。そして、このとき、制御信号R(書き込み)が出力される。これによって、メモリアレイ1では出力されたX,Yアドレスによって指定されたメモリセルからデータの読み出しが行われる(ステップS229)。
シーケンス制御回路413はオペコード「jindex1」によってインデックスレジスタidx1の値をデクリメントしてワーキングレジスタidxwに入れ、それが「0」になるまで「jindex1」命令を繰り返す(ステップS210,S11)。また、アドレス演算回路414では演算コードXbase←Xbase+1によってベースレジスタXbaseの値すなわちXアドレスをインクリメントし、Ybase←Ybase+1(BR)によってベースレジスタXbaseが最大値になるとYアドレスをインクリメントする。上記インデックスレジスタidx1の最初の設定値はメモリアレイ1の容量と同じであるので、上記動作の繰り返しによって、メモリアレイ1内のすべてのメモリセルが順番に読み出しが行なわれて期待値「1」と比較される(ステップS230,S231)。
次に、表7の6番目のマイクロ命令が読み出される。第6のマイクロ命令のオペコードは「jxd」であるため、シーケンス制御回路413ではアドレスフィールドMFc内のPCアドレスの示す飛び先番地へジャンプする。この実施例では、表7の第2の命令「jindex1」へ戻るようにされている。そして、再びjindex1命令が読み出されたときにフラグdflgが「1」にセットされる。これにより、2巡目のシーケン処理においては、図18のステップS212で「YES」と判定して、マーチング試験を終了する。
一方、2巡目のマイクロ命令リストの実行に際しては、図19のステップS222〜S231において、データ生成回路414によりライトデータと期待値データを「1」として全ビットへ連続して書き込みを行なってから、書き込んだデータを1ビットずつ読み出してそこへ反転データ「0」を書き込み、その後、全ビットの連続した読み出しが行なわれるようにされている。図19のフローでは、ステップS232で、ステップS222〜S231による上記のような1巡目とは逆のデータの書き込み読み出しが終了したか否かの判定(裏データ終了判定)が行なわれるようにされている。なお、上記裏データによる検査を行なうための裏データ生成は図17のTholdのINVERTとdflgでコントロールして生成するようにされている。
上述したように、図18および図19のフローに従った制御は、表1〜表6に記述されている命令コードを用いて命令メモリ411内のマイクロ命令を次の表7の命令リストのように記述することで、僅か6つのマイクロ命令によりマーチング試験を実行することができる。
さらに、前記実施例のテスト回路(ALPG)においては、表1〜表6に記述されている命令コードを用いることにより上記マーチング試験の他に、すべてのメモリセルに「0」または「1」が書き込めるか検査するオール「0」判定試験またはオール「1」判定試験や、あるビットに「1」を書き込んでそれによって他のビットが誤書込みされていないかすべてのビットについて検査するいわゆるN2乗パターン試験(もしくはギャロッピング試験)等も実行することができる。
表8に、N2乗パターン試験のためのマイクロ命令リストを示す。なお、ixdは、初期値レジスタTpholdの下にあるフラグdflgでコントロールされるインバータINVERTをコントロールして裏テストパターンを生成する命令である。フラグdflgが0のときは初期値レジスタTpholdの値をそのままレジスタTpに格納し、フラグdflgが1のときはその逆のパターンがレジスタTpに設定される。
【表8】
上記実施例においては、プログラムカウンタ412に最初に設定する値を、表7や表8に示される最初のマイクロ命令の命令番地に変更することで、マーチング試験やN2乗パターン試験を開始させることができる。
次に、前記カスタム論理部110およびCPU130の検査の際にFPGA120内に構築されるロジックテスタの詳細について説明する。
ロジックテスタは、メモリのテストパターンを生成する図12に示されているALPGと類似の構成を有し、例えば図20に示されているように、所定のテストパターン生成アルゴリズムに従って記述された複数のマイクロ命令群からなるマイクロプログラムが格納された命令メモリ411と、該命令メモリ411から読み出すべきマイクロ命令を指定するプログラムカウンタ412、命令メモリ411から読み出されたマイクロ命令内の命令コードを解読して上記プログラムカウンタ412など制御部400内の回路に対する制御信号を形成する命令解読制御回路430、基準クロックφ0に基づいてタイミング制御信号を形成するタイミング発生部420、マイクロ命令内のタイミング設定ビットMFd(TSビット)に基づいてタイミング発生部420に対する制御データを出力するデータレジスタセット417、マイクロ命令内のタイミング設定ビットMFd(TSビット)をデコードしてデータレジスタセット417から制御データを読み出すデコーダ418などを備えている。
また、テスト対象となる論理回路の内、その機能が特定されている回路(例えば、ALU:Arithmetic Logic Unit)の場合には、すでに適切なテストパターン形成方式が確立されている場合が多いので、そのテストパターンの資産を利用することで、効率の良いテストパターンの生成が可能である。また、組合せ論理回路に関しては、故障仮定法および一つの回路には故障は一つであるという単一故障という考えに基づくDアルゴリズムと呼ばれる効率の良いテストパターンの生成方法が知られている。この手法を利用することによって、テストパターン生成のためのマイクロプログラムを短くすることができ、命令メモリ411の容量の増大を実現可能な程度まで抑えることができる。
この実施例では、特に制限されないが、デコーダ418でデコードされるタイミング設定ビットTSは2ビットで構成され、データレジスタセット417には7個の制御データが格納されている。これらの制御データのうち一つはテスト・サイクルを規定するデータ“RATE”、残りの6個の制御データは、テスタ専用バスの各信号線ごとにハイレベルもしくはロウレベルの信号の出力タイミングを与える2種類の制御データ“ACLK1”,“ACLK2”と、パルス信号の立上がりタイミングを与える2種類の制御データ“BCLK1”,“BCLK2”と、パルス信号の立下がりタイミングおよび期待値との比較出力タイミングを与える2種類の制御データ“CCLK1”,“CCLK2”である。
これらの各制御データが、タイミング発生部420に供給されると、制御データRATEに関しては予め規定されたタイミングの信号RATEがプログラムカウンタ412に供給されて命令メモリ411からのマイクロ命令コードの取り込みが行なうわれる。また制御データとして“ACLK1”〜“CCLK2”がタイミング発生部420に供給されると、タイミングクロックACLK1〜CCLK2の中からその制御コードに対応するクロックが信号形成・比較部300に出力される。各クロックの使用のための接続や選択は必要に応じて適宜実施される。
さらに、ロジックテスタには、上記プログラムカウンタ412の値を「+1」にインクリメントするためのインクリメンタ421や、上記インクリメンタ421またはアドレスフィールドMFa内の飛び先番地のいずれかを選択してプログラムカウンタ412へ供給するマルチプレクサ422、オペランドフィールドMFc内の繰り返し数を保持するインデックスレジスタ423、該インデックスレジスタ423の値を「−1」するためのデクリメンタ424、「−1」にディクリメントされた値を保持するワーキングレジスタ425、所定の命令で用いられるオペランドのプログラムカウンタ412への転送の有無を示すフラグ427、レジスタ423,425の値を選択的に上記デクリメンタ424に供給するマルチプレクサ428、デクリメンタ424の値をワーキングレジスタ425のいずれかのプレーンに分配するデマルチプレクサ429などが設けられている。
このロジックテスタでは、マイクロ命令コードに命令の繰り返し数を格納するオペランドフィールドMFcを設けるとともに、その繰り返し数を保持するインデックスレジスタ423を設けているので、同一テスト信号を繰り返し生成するような場合に、必要なマイクロ命令数を減らしマイクロプログラムを短くすることができる。また、この実施例では、インデックスレジスタ423やワーキングレジスタ425、フラグ427が複数プレーン(図では4個)設けられていることにより、あるループ処理内におけるサブループ処理、さらにそのサブループ処理内におけるサブループ処理といったことを容易に実行することができ、マイクロプログラムを短くすることができる。
図21には、上記信号形成・比較部300の実施例が示されている。なお、図21の回路は、テスタ専用バス220を構成する信号線のうちの1本に対応するドライバ/コンパレータ回路のみが代表的に示されているが、実際にはテスタ専用バス220を構成する信号線の数だけ図21に示す回路が設けられる。
図21に示すように、この実施例のドライバ/コンパレータ回路は、テスタ専用バスへ出力する信号を形成するドライバ回路(信号形成回路)340と、テスタ専用バス上の信号と期待値信号とを比較して一致/不一致を比較するコンパレータ回路(比較回路)350と、ドライバ回路340とコンパレータ回路350とを切り替える切替え回路360とから構成される。切替え回路360は、ドライバ回路340と入出力ノードNioとの間に設けられた伝送ゲートTG1と、入出力ノードNioとコンパレータ回路50と間に設けられた伝送ゲートTG2とから構成され、上記制御部400から供給される入出力制御ビットI/Oに応じていずれか一方が開かれ他方は遮断状態とされる。
ドライバ回路340は、タイミング発生部420から供給されるタイミングクロックACLKiによって入出力制御ビットTPを取り込んで保持するエッジトリガ型フリップフロップ341と、タイミング発生部420から供給されるタイミングクロックBCLKiとCCLKiとの論理和をとるORゲート342と、このORゲート342の出力と上記エッジトリガ型フリップフロップ341の出力を入力信号とするJ/Kフリップフロップ343と、このJ/Kフリップフロップ343の出力と制御部400から供給される入出力制御ビットCONTとを入力信号とするANDゲート344と、上記エッジトリガ型フリップフロップ341の出力と制御部400から供給される入出力制御ビットCONTとを入力信号とするANDゲート345と、これらのANDゲート344,345の出力によってテスタ専用バスを駆動するドライバ346とから構成されている。
一方、コンパレータ回路350は、タイミング発生部420から供給されるタイミングクロックCCLKiと制御部400から供給される入出力制御ビットCONTとを入力信号とするANDゲート351と、上記D型フリップフロップ341の出力(期待値)と伝送ゲートTG2を介して供給されるテスタ専用バス上の信号とを入力信号とするエクスクルーシブORゲート352と、このエクスクルーシブORゲート352と上記ANDゲート351との出力を入力信号とするANDゲート353と、このANDゲート353の出力をラッチするフリップフロップ354とから構成されており、すべてのコンパレータ回路350の出力の回路の論理和をとった信号がトータル・フェイル信号TFLとして出力される。上記入出力制御ビットI/O、TP、CONTは、上記制御信号に相当する。
図20に示されているように、本実施例のテスト回路におけるマイクロ命令は、ジャンプ命令で使用する命令の飛び先番地を示すPCアドレスが格納されるアドレスフィールドMFaと、シーケンス制御コードが格納されるオペコードフィールドMFbと、命令の繰り返し数などが格納されるオペランドフィールドMFcと、上記データレジスタセット14からタイミング発生部420に対する制御信号を読み出すためのタイミング設定ビットTSが格納されるタイミング設定フィールドMFdと、上記信号形成・比較部300の入出力制御ビットが格納される入出力制御フィールドMFeとからなる。
上記タイミング設定フィールドMFdに格納されるタイミング設定ビットTSは、前述したようにこの実施例では2ビットであるが、3ビット以上設けてもよい。また、上記入出力制御フィールドMFeに格納される入出力制御ビットは、テスタ専用バス220のn本の信号線に対応して、ドライバ・ビットTPとI/Oビットとコントロール・ビットCONTの3ビットを1セットとし、nセットだけ設けられている。これらのビットのうち、I/Oビットは入力か出力かを指定する制御ビットで“1”のときは伝送ゲートTG1を開きかつTG2を遮断してドライバの出力信号をテスタ専用バス220の対応する信号線上へ出力し、“0”のときは伝送ゲートTG1を遮断しかつTG2を開いてテスタ専用バス220の対応する信号線上の信号を比較用のゲート352へ入力させる。ドライバ・ビットTPおよびコントロール・ビットCONTは、その組合せに応じてハイ出力またはロウ出力か、正パルスもしくは負パルスの出力か、入力無効状態か、出力ハイインピーダンス状態かを指定する。
表9には、上記入出力制御ビットTP,I/O,CONTと信号形成・比較部300の動作状態との関係が示されている。
【表9】
表9に示されているように、入出力制御ビットTP,I/O,CONTが「111」のときはドライバ回路340がハイレベルの信号を出力し、「011」のときはドライバ回路340がロウレベルの信号を出力し、「110」のときはドライバ回路340が正のパルス信号を出力し、「110」のときはドライバ回路340が負のパルス信号を出力するように制御が行なわれる。また、入出力制御ビットTP,I/O,CONTが「101」のときはコンパレータ回路350がハイレベルの入力信号を期待し、「001」のときはコンパレータ回路350がロウレベルの入力信号を期待し、「100」のときは入力信号を無効とするように制御が行なわれる。
なお、この実施例の信号形成・比較部300では、制御ビットTP,I/O,CONTが「000」となる状態は何ら意味を持たないように構成されている。ただし、制御ビットTP,I/O,CONTが「000」のときは、例えば伝送ゲートTG1を閉じてTG2を開き、かつエクスクルーシブORゲート352を上記ハイレベルとロウレベルの間にある2つのレベルで動作するシュミット回路としてその2つのレベル間にテスタ専用バス220に接続された入出力ノードNioの電位が存在する状態(ハイインピーダンス状態)を比較できるように信号形成・比較部300を構成しておくことも可能である。
図22には上記実施例におけるタイミング発生部420より供給されるタイミングクロックACLK1〜CCLK2と信号形成・比較部300からテスタ専用バス220上に出力される信号の一例が示されている。図22において、(a)は外部から供給される基準クロックφ0を、(b)〜(g)はタイミングクロックACLK1〜CCLK2の波形を、(h)は表9の出力テスト信号として「1」が指定されかつクロックとしてACLK1が選択された端子の出力信号の波形を示す。また、(i)は表9の出力テスト信号として「0」が指定されかつクロックとしてACLK2が選択された端子の出力信号の波形を示す。また、(j)は表9の出力テスト信号として「P」が指定されかつクロックとしてBCLK1,CCLK1が選択された端子の出力信号の波形を示す。さらに、(k)は表9の出力テスト信号として「N」が指定されかつクロックとしてBCLK2,CCLK2が選択された端子の出力信号の波形を示す。
図22から分かるように、入出力制御ビットTP,I/O,CONTが「111」に設定されクロックACLK1が指定された端子からはクロックACLK1に従い図22(h)のようなハイレベルの信号が出力され、TP,I/O,CONTが「011」に設定されクロックACLK2が指定された端子からはクロックACLK2に従い図22(i)のようなロウレベルの信号が出力され、TP,I/O,CONTが「110」に設定されクロックACLK1,BCLK1,CCLK1が指定された端子からはクロックACLK1でセットされたデータに従いBCLK1,CCLK1をエッジとする図22(j)のような正パルスが出力され、TP,I/O,CONTが「010」に設定されクロックACLK2,BCLK2,CCLK2が指定された端子からはクロックACLK2でセットされたデータに従いBCLK2,CCLK2をエッジとする図22(k)のような負パルスが出力される。
また、図示しないが、入出力制御ビットTP,I/O,CONTが「101」に設定されクロックCCLK1が指定された端子では期待値をハイレベルとして図22(f)のクロックCCLK1をストローブ信号として比較が行なわれ、TP,I/O,CONTが「001」に設定されクロックCCLK2が指定された端子では期待値をロウレベルとし図22(g)のクロックCCLK2をストローブ信号として比較が行なわれる。なお、クロックの選択は上記に限定されず任意の組合せとすることができる。
以上説明したように上記実施例においては、半導体チップ上に複数の基本論理セル(セル論理ブロック)からなり基本論理セルごとに回路が正常か異常かを示す信号を出力可能でかつ任意の論理を構成可能なFPGA(Field Programmable Gate Array)のような可変論理回路を搭載するようにしたものである。これにより、外部テスタを使用することなく可変論理回路(FPGA)内に不良個所があることおよびその位置を知ることができる。また、不良個所を回避して論理を構成することにより歩留まりを向上させるとともに、この可変論理回路(FPGA)を用いてテスト回路を構築して他の内部回路をテストする場合にテスト回路自身の故障による誤ったテスト結果が出力されるのを回避することができるという効果がある。
また、本発明に係る半導体集積回路のテスト方法は、回路が正常か異常かを示す信号を出力可能でかつ任意の論理を構成可能な可変論理回路(FPGA)と読出し書込み可能なメモリ回路とを内蔵した半導体集積回路において、まず上記可変論理回路(FPGA)により自己テストを行なわせ、その結果得られた不良個所を示す情報を用いて不良個所を除いた基本論理セルのみで所定のアルゴリズムに従ってメモリ回路を検査するメモリテスト回路を構築して上記メモリ回路を検査するようにした。これによって、高機能の外部テスタを用いることなくLSI内部のメモリ回路のテストを行なうことができるという効果がある。
さらに、本発明に係る半導体集積回路の他のテスト方法は、半導体集積回路がメモリ回路と共にCPU(中央処理ユニット)やユーザが要求する論理機能を構成したユーザ論理回路のようなカスタム論理回路を含むような場合に、上記FPGAに所定のアルゴリズムに従ってCPUやカスタム論理回路のテスト信号および期待値信号を生成してテストを行なうテスト回路(ロジックテスタ)を構築するとともに、既に前記テストにより正常と判定されたメモリ回路を使用して、そのメモリ回路にテストパターンもしくはテストパターン生成プログラムを格納し、FPGAに構築されたテスト回路を起動してCPUやカスタム論理回路のテストを行なうようにした。これによって、高機能の外部テスタを用いることなくLSI内部のCPUや論理回路のテストを行なうことができるという効果がある。
さらに、本発明に係る半導体集積回路の製造方法は、まず上記可変論理回路により自己テストを行なわせ、その結果得られた不良個所を示す情報を用いて該可変論理回路内に、不良個所を除いた基本論理セルのみで所定のアルゴリズムに従って第1のメモリ回路を検査するメモリテスト回路を構築して、上記第1のメモリ回路を検査し、
次に、上記可変論理回路内に、不良個所を除いた基本論理セルのみで所定のアルゴリズムに従ってカスタム論理回路または中央処理ユニットを検査するロジックテスト回路を構築するとともに上記第1のメモリ回路内にテストパターンもしくはテストパターン生成プログラムを格納して、上記カスタム論理回路または中央処理ユニットを検査し、
しかる後、上記可変論理回路内に、不良個所を除いた基本論理セルのみで所定のアルゴリズムに従って第2のメモリ回路を検査するメモリテスト回路を構築して、上記第2のメモリ回路を検査し、
その後、上記第2のメモリ回路の検査結果に基づいて上記第2のメモリ回路に付随する冗長回路を用いて第2のメモリ回路内の欠陥ビットを予備のビットと置き替えるビット救済処理を行なうようにしたので、メモリ回路のビット救済を自動的に行なうことができ、半導体集積回路の歩留まりおよび生産性を向上させることができるという効果がある。
また、本発明に係る半導体集積回路の製造方法は、上記第2のメモリ回路のビット救済処理後に、上記可変論理回路内に所望の論理を構成するようにしたので、テスト終了後にLSIチップ内には無駄な回路が残らないので、テスト回路をLSI内部に設けることに伴うハードウェアのオーバーヘッドを減らすことができるという効果がある。
さらに、本発明に係る半導体集積回路の製造方法は、上記第2のメモリ回路の検査の際に欠陥ビットの位置を示す情報を上記第1のメモリ回路内に記憶するようにしたので、上記第1のメモリ回路内に記憶されている情報を読み出すことにより不良解析を容易に行なうことができるという効果がある。
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば上記実施例においては、セル論理ブロックCLB内の回路が正常か否か検出して出力する排他的論理和ゲート回路LG2の出力状態をクロスポイントスイッチ回路CSW内のメモリセルSMCに記憶させるようにしているが、LSIチップの外部へ出力させるように構成してもよい。
また、上記実施例においては、DRAM150〜180のテストの際に欠陥ビットの位置を記憶するフェールメモリをSRAM140内に構成するようにしているが、外部のテスタ内にフェールメモリを設けるようにしてもよい。さらに、上記実施例ではテスト用のインタフェース回路としてIEEEで規定されているTAPを利用しているが、それに限定されるものでなく、本実施例に適した専用のインタフェース回路を別途設計して設けるようにしても良い。
産業上の利用可能性
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるCPUとSRAM、DRAMおよびカスタム論理回路を備えたシステムLSIにおける自己検証方法を例にとって説明したが、この発明はそれに限定されず、CPUとSRAMおよびカスタム論理回路を備えた論理LSI、CPUとDRAMおよびカスタム論理回路を備えた論理LSI、CPUとカスタム論理回路を備えた論理LSI、SRAMとDRAMおよびカスタム論理回路を備えた論理LSIさらには上記のようなディジタル回路の他にアナログ回路が搭載された半導体集積回路にも利用することができる。
【図面の簡単な説明】
図1は、本発明を適用した論理LSIの一実施例の全体構成を示すブロック図である。
図2は、本発明を適用した論理LSI内に設けられる可変論理回路(FPGA)の一実施例を示す回路構成図である。
図3は、FPGAを構成するクロスポイントスイッチの具体例を示すブロック図である。
図4は、FPGAを構成するセル論理ブロックの具体例を示す論理回路図および概念図である。
図5は、FPGAを構成するセル論理ブロックの他の例を示す論理回路図である。
図6は、本発明を適用した論理LSI内に設けられるテスト用インタフェース回路の一構成例を示すブロック図である。
図7は、本発明を適用した論理LSIにおける内部回路の検査手順の一例を示すフローチャート図である。
図8は、図7のフローチャートのステップS1〜S3におけるFPGA部の検査手順の具体的内容を示すフローチャートである。
図9は、図7のフローチャートのステップS4〜S5におけるSRAM部の検査手順の具体的内容を示すフローチャートである。
図10は、図7のフローチャートのステップS6〜S8におけるカスタム論理回路およびCPU部の検査手順の具体的内容を示すフローチャートである。
図11は、図7のフローチャートのステップS9〜S12におけるDRAM部の検査手順の具体的内容を示すフローチャートである。
図12は、FPGA内に構築されるALPGの構成を示すブロック図である。
図13は、ALPGを使用してメモリ回路をテストする際のバスの構成例を示すブロック図である。
図14は、ALPGの命令メモリに格納されるマイクロ命令の命令フォーマットの構成例を示す説明図である。
図15は、ALPGのシーケンス制御部の構成例を示すブロック図である。
図16は、ALPGのアドレス演算部の構成例を示すブロック図である。
図17は、ALPGのテストデータ生成演算部の構成例を示すブロック図である。
図18は、ALPGによりメモリ回路の検査を行なう場合のマイクロ命令のオペコードおよびオペランドを用いたシーケンス制御手順の一例を示すフローチャートである。
図19は、ALPGによりメモリ回路の検査を行なう場合のマイクロ命令の演算コードおよびデータ生成コードを用いたテストアドレスおよびデータの生成、出力手順の一例を示すフローチャートである。
図20は、FPGA内に構築されるロジックテスタの構成例を示すブロック図である。
図21は、ロジックテスタ内の信号形成・比較手段の具体例を示す論理回路図である。
図22は、ロジックテスタにより形成されるテスト用信号波形の一例を示す波形図である。Technical field
The present invention relates to a semiconductor integrated circuit (IC: Integrated Circuit) and a test technique and a manufacturing technique thereof, and provides, for example, a logic LSI (Large Scale Integration) capable of configuring a logic by detecting a fault and avoiding a fault location. is there.
Background art
As a test method for a logic IC, a method in which test pattern data is generated by a test device called a tester, input to the IC, and an output data signal is compared with an expected value to detect it. However, as the logic scale of the logic IC increases, the number of test pattern steps becomes longer, and the time required for test pattern creation and test using the test pattern becomes very long.
Therefore, as a method for facilitating the test by the tester, a shift register can be configured by cascading sequential circuits such as flip-flops constituting the original function of the IC so that the shift register can be configured during the test. The test pattern is serially input (scanned in) to be captured (set), the test data captured in the shift register is input to a desired combinational logic circuit, and then the output data signal of the logic circuit is captured in the shift register. A testability design technology called a so-called scan path method that can be shifted out (scanned out) has been developed and put into practical use.
In the method of inputting a test pattern from the outside, if a logic circuit includes a sequential circuit, the output differs depending on the internal state. Therefore, in order to inspect a certain logic circuit, the state of the sequential circuit contained therein is first tested. However, the test pattern becomes very long because it has to be set in
However, the scan path method has a smaller amount of test patterns than the previous test methods, but it is difficult to generate test patterns, and it is difficult to increase the defect detection rate, and the test pattern can be input (transferred) serially. Since the test is repeated, there is a problem when the test time becomes long. In addition, a newly developed logic LSI includes a memory circuit such as a RAM (Random Access Memory) and a ROM (Read Only Memory) and a large cell such as a CPU (Macro Cell or IP Core: Intelligent Property Core). In order to test these cells, it is necessary to create and input an enormous amount of test patterns, so that there is a problem that the test cannot be performed in practice.
On the other hand, a BIST (Built in self test) type test technique in which a pattern generation circuit for generating a random test pattern such as a pseudo random number generation circuit is built in a logic integrated circuit has been proposed.
However, the test circuit of the BIST system is not guaranteed that the generated test pattern is a test pattern sufficient to detect a defect. For this reason, there is a problem that it is necessary to separately verify whether or not a sufficient defect detection rate can be obtained with the test pattern of the test circuit.
Further, any LSI on which a conventional test circuit is mounted does not take any measures against its own failure or defect. In other words, when the test circuit itself fails, there is a drawback that a failure is determined even if the original circuit of the chip is normal. And as a countermeasure, there is no choice but to minimize the scale of the test circuit and suppress the occurrence of failures and defects, but this leads to a result that contradicts the objective of improving the sufficiency of the test, that is, the defect detection rate. .
An object of the present invention is to provide a test technique capable of testing a circuit inside an LSI without using a high-function external tester.
Another object of the present invention is to provide a high-yield LSI capable of detecting a fault location by itself and repairing itself.
Another object of the present invention is to provide an LSI having a self-test function with less hardware overhead.
Another object of the present invention is to provide an LSI that can be easily analyzed for defects.
Still another object of the present invention is to provide a manufacturing technique suitable for application to a so-called system LSI having a control circuit such as a central processing unit, a memory circuit, a custom logic circuit, etc. on one chip. is there.
The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.
Disclosure of the invention
Outlines of representative ones of the inventions disclosed in the present application will be described as follows.
In other words, the semiconductor integrated circuit according to the present invention comprises a plurality of basic logic cells (cell logic blocks) on a chip and can output a signal indicating whether the circuit is normal or abnormal for each basic logic cell and constitutes arbitrary logic. A variable logic circuit such as a possible FPGA (Field Programmable Gate Array) is mounted. Thereby, it is possible to know that there is a defective part and its position in the variable logic circuit (FPGA) without using an external tester. In addition to improving the yield by avoiding defective parts and configuring the logic, a failure of the test circuit itself occurs when a test circuit is built using this variable logic circuit (FPGA) to test other internal circuits. It is possible to avoid outputting an erroneous test result by.
As a basic logic cell capable of outputting a signal indicating whether the circuit is normal or abnormal, for example, determination means for comparing the output with a two-line line logic (logical product gate circuit) having a complementary output and determining the presence or absence of abnormality ( And an exclusive OR gate). By configuring the basic logic cell in this way, a variable logic circuit (FPGA) capable of outputting a signal indicating whether the circuit is normal or abnormal and capable of configuring any logic with a relatively small circuit is realized. can do.
The semiconductor integrated circuit test method according to the present invention comprises at least a plurality of basic logic cells (cell logic blocks), and can output a signal indicating whether the circuit is normal or abnormal for each basic logic cell, In a semiconductor integrated circuit incorporating a configurable variable logic circuit (FPGA) and a readable / writable memory circuit, first, a self-test is performed by the variable logic circuit (FPGA), and information indicating a defective portion obtained as a result is obtained. Is used to generate a predetermined test signal and an expected value signal in accordance with a predetermined algorithm using only basic logic cells excluding defective portions, and supply the test signal to the memory circuit. As a result, an output signal (output) obtained from the memory circuit Data) and the expected value signal (expected value data) are compared, and if they do not match, a signal indicating a defect is formed to the outside of the chip It is obtained so as to build a memory test circuit for force.
Such a memory test circuit can be configured as a test pattern generator called an ALPG (Algoromic Memory Pattern Generator) that generates a test pattern of a memory according to a predetermined algorithm. Further, the ALPG includes a control unit of a known microprogram control system that decodes an instruction code to control an arithmetic unit and the like, and an arithmetic unit that generates a test pattern by calculation. Then, the test pattern generation program instruction code is sequentially supplied to the ALPG constructed in the FPGA as described above to generate a test pattern, and the test pattern is supplied to the memory circuit which is the circuit under test. Can be inspected.
Further, the test pattern generation program is described using an existing tester language or a test language, and a test pattern (address and data) is generated according to the predetermined algorithm defined by the instruction code. The tester language is regarded as an effective instruction language for efficiently generating a test pattern including an address and data. The tester language is a language used in the tester industry. For example, a language compatible with the tester language of Advantest is used. This is because the program data of the existing test pattern can be used. The language for describing the predetermined algorithm is not limited to the tester language, and may be any instruction language that can generate a test pattern including an address and data.
Another test method for a semiconductor integrated circuit according to the present invention is such that the semiconductor integrated circuit includes a custom logic circuit such as a CPU (Central Processing Unit) and a user logic circuit that constitutes a logic function requested by a user together with a memory circuit. In this case, a test circuit (logic tester) for generating a test signal and an expected value signal for the CPU and custom logic circuit according to a predetermined algorithm in the FPGA is constructed, and a memory that has already been determined to be normal by the test. A test pattern or test pattern generation program is stored in the memory circuit using the circuit, the test circuit built in the FPGA is activated, and the CPU or custom logic circuit is read while reading the test pattern or test pattern generation program from the memory circuit. Is to test
As a result, the logic circuit inside the LSI can be tested without using a high-function external tester.
A test circuit that generates a test signal and an expected value signal for a CPU or a custom logic circuit according to a predetermined algorithm and performs a test includes: a microinstruction type control unit that decodes an instruction code to form a control signal; A test signal and an expected value signal for the CPU or custom logic circuit are generated based on the output control signal, and a failure is indicated when the signal output from the CPU or custom logic circuit does not match the expected value signal. This is realized by constructing signal forming / comparing means for forming a signal in the FPGA. In this case, a timing generation circuit that forms a plurality of clock signals having different phases and duties based on the reference clock signal can be built in the FPGA, and the timing can be set for each test signal in accordance with the control signal from the control unit. It is good to do so.
As described above, the test circuit outputs a control signal for generating a test signal and an expected value signal for the CPU and the custom logic circuit according to a predetermined algorithm, and a control unit of a microprogram control system, which is output from the control unit. A signal generator that generates a test signal and an expected value signal of the internal logic circuit based on the control signal, and forms a signal indicating a failure when the signal output from the internal logic circuit and the expected value signal do not match Since it is constituted by the comparison means, it is not necessary to store all the test patterns in the internal memory, and the data of the instruction code itself can be compressed by the configuration of the control unit, and can be sufficiently constructed in the FPGA. belongs to.
BEST MODE FOR CARRYING OUT THE INVENTION
Preferred embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram of an embodiment of a system LSI to which the present invention is applied. The system LSI is configured on a
In FIG. 1,
The
The
FIG. 2 shows a specific example of an FPGA constituting the
The FPGA of this embodiment includes a plurality of cell logic blocks CLB arranged in a matrix, wiring
Although not particularly limited, an X decoder circuit, a Y decoder circuit, a write circuit, or the like for selecting the wiring connection information storage memory cell SMC and writing data is provided around the FPGA block. May be. The wiring connection information storage memory cell SMC can be provided as an SRAM memory array around the FPGA block instead of being provided one-to-one with the switch MOSFET Qsw.
For example, as shown in FIG. 4A, the cell logic block CLB includes an AND gate circuit (two-line line logic) LG1 having complementary outputs such as AND logic and NAND logic, and an exclusive input having the complementary output as an input. And a logical OR gate circuit (comparison means) LG2. This gate circuit LG2 outputs a low level output signal when the two input signals have the same logic level, and outputs a high level output signal when the two input signals have different logic levels. When the LG1 is defective and the output to be complementary is the in-phase output, the output of the gate circuit LG2 becomes low level to notify that the gate circuit LG1 is defective.
Although the output signal of the gate circuit LG2 may be output to the outside of the FPGA block as it is, in this embodiment, the memory cell for storing the wiring connection information constituting the crosspoint switch CSW shown in FIG. It is configured so that it can be input and stored in the node N2 of the SMC.
Therefore, the power supply voltage is applied to each cell logic block CLB, and the output state of the gate circuit LG2 at that time is stored in the wiring connection information storage memory cell SMC, and then the storage information of the wiring connection information storage memory cell SMC is stored in the external It is possible to know whether or not the cell logic block CLB operates normally. It is also possible to detect whether or not a memory cell has failed by sequentially writing and reading data from outside the chip to each wiring connection information storing memory cell SMC. Further, by writing data into the wiring connection information storage memory cell SMC, turning on the desired switch MOSFET Qsw and using the
Note that by devising the gate structure of the MOSFET Q1 or the memory cell circuit constituting the memory cell SMC for wiring connection information storage to which the output state of the gate circuit LG2 is inputted, when the output of the gate circuit LG2 is at a low level, the external circuit The MOSFET Q1 may be configured not to be inverted, that is, turned off by the data input. Thereby, it is possible to efficiently detect whether or not there is a failure in the cell logic block CLB.
As a specific method for realizing such a function, the MOSFET Q1 constituting the memory cell SMC has a structure having a control gate and a floating gate as shown in FIG. 4B, for example, and the output (low level) of the gate circuit LG2 Is inverted by the inverter INV and a high level voltage Vp is applied to the control gate CG of the MOSFET Q1 to inject charges into the floating gate FG so that the state of the memory cell does not change depending on external data input. Can be considered.
Further, as the AND gate circuit LG1 having complementary outputs such as AND logic and NAND logic shown in FIG. 4A, for example, a circuit as shown in FIG. 4C can be considered. In other words, the AND gate circuit LG1 includes a first MOSFET string composed of MOSFETs Q11 to Q13 connected in series between the power supply voltage terminal Vcc and the ground point, and a second MOSFET string composed of MOSFETs Q21 to Q23 in series. When the first input signal X is supplied to the gates of Q12 and Q21, the logical product output Z (= X · Y) of the input signals X and Y is output from the output node N12 of the second MOSFET array. It operates so as to output the inverted output / Z (= / X · Y) of the logical product output Z of the input signals X and Y from the output node N11 of the 1MOSFET series. The MOSFETs Q11 and Q23 shown in the drawing act as loads when the gate and drain are coupled or a predetermined potential is applied to the gate.
FIG. 5A shows another configuration example of the cell logic block CLB.
The cell logic block CLB of this embodiment is a BIST (Built in self test) built-in type logic block, which latches two input signals X and Y, respectively, and signals X, / X of the positive phase and the negative phase, respectively. Flip-flops FF1 and FF2 for outputting Y, / Y, a logical unit ALU capable of performing a plurality of logical operations such as logical sum, logical product, exclusive logical sum using these four output signals as input signals, A flip-flop FF3 that latches the output Z and outputs signals Z and / Z in the positive and negative phases, a read / writeable memory MEM that stores control information that specifies the logical operation of the logical unit, and a test pattern Consists of a well-known LFSR (Linear Feedback Shift Register) generated in the form of random numbers and a comparator CMP It has been.
The memory MEM for storing the logical unit control information is configured to be able to write control information from the outside. The LFSR is configured to be connectable to the input signals X and Y, the logic unit control information, and the transmission signal lines of the output signals Z and / Z of the
When the cell logic block CLB of this embodiment is subjected to a self-inspection operation, the control signal CHK is inputted to the gates of the switch MOSFETs G1 to G7 to be turned on. Then, a random pattern is formed by the LFSR and supplied to the flip-flops FF1 and FF2 and the logic unit ALU, and the generated pattern and the output of the flip-flop FF3 are logically synthesized and compressed to form a comparator pattern CMP as a signature pattern. Is output.
For example, as shown in FIG. 5B, the comparator CMP is a latch timing signal from a read-only memory ROM storing an expected signature pattern, an exclusive OR gate EOR, an output latch OLT, and a clock CLK. The timing generation circuit TMG etc. which generate | occur | produce. When the signature pattern is input from the LFSR, the comparator CMP compares the expected signature pattern stored in the read-only memory ROM with the output pattern of the LFSR by the exclusive OR gate EOR. And a low level signal, and if they do not match, a high level signal is output. This output is latched by the latch OLT and output as a signal ERR indicating good / bad.
Note that the operation principle of the LFSR is already known and described in various documents and the like, and detailed description thereof is omitted. However, optimization according to the logic circuit to be inspected can be performed according to the principle. In general logic LSIs incorporating a BIST to which LFSR is applied, optimization of LFSR is required for each logic circuit, which is troublesome in design, but the FPGA of this embodiment uses the same cell logic block CLB. Therefore, the optimization can be performed uniformly and the design burden is reduced. In addition, since a conventional LSI having a built-in BIST is a global BIST in which one BIST inspects all the LSI internal circuits, test sufficiency is not guaranteed with the generated test pattern. Since it is a local BIST provided in the cell logic block CLB, test sufficiency is also guaranteed.
FIG. 6 shows a specific example of the
As described above, the TAP is an interface and control circuit for the scan test and BIST circuit defined in the IEEE1149.1 standard, and is used to shift the test data from the input port to the output port. A data register 212 used for transmitting a specific signal to the circuit, a
The data register 212 is an optional register. In addition, as the instructions set in the
Further, the TAP is provided with an input terminal for test data TDI and an output terminal for test result data TDO. The input test data TDI is sent to the
In the system LSI of the embodiment of FIG. 1, the self-test circuit built on the custom logic circuit (FPGA) 120 or the
In FIG. 6, “Iscan” means a test path for diagnosing the internal logic circuit using a shift register in which flip-flops constituting the internal logic circuit are connected in a chain as a scan path for test data. To do. “Bscan” uses a shift register in which a flip-flop provided in the signal input / output unit (
Next, an example of a test procedure when the test method according to the present invention is applied to the system LSI shown in FIG. 1 will be described with reference to FIGS. FIG. 7 shows an outline of the test procedure for the entire LSI, and FIGS. 8 to 11 show specific examples of the test procedure for each block constituting the LSI.
According to the test method of the present invention, as shown in FIG. 7, first, the
If no defective part is found in the
If no defect is found, a test circuit (ALPG) for testing the
Thereafter, a part of the custom logic such as the user logic is formed in the part of the
FIG. 8 shows a more detailed procedure for self-verification of the custom logic circuit (FPGA) 120 in steps S1 to S3 in the flowchart of FIG.
When the power supply voltage is applied to the device (system LSI) of this embodiment, the logic gate circuits LG1 and LG2 of the cell logic block CLB constituting the
Next, a test mode select signal TMS and a code to be set in the
Then, it is determined which cell logic block CLB is defective by comparing the read data and the write data (step S115). Further, for example, by writing and reading data opposite to the write data, it is possible to detect a cross point switch CSW having a defect in the memory cell SMC itself.
Next, the
FIG. 9 shows a more detailed procedure of the inspection of the
In the inspection of the
Next, a program for operating the ALPG to generate a test pattern is written into the memory circuit in the
Subsequently, a control signal is supplied from the
Then, the
FIG. 10 shows a more detailed procedure for checking the logic unit, that is, the
In the inspection of the
Next, a control signal is supplied from the
Next, a control signal is supplied from the
Subsequently, the logic tester in the
Then, the
Next, a test pattern generation program for inspecting the
Then, the
FIG. 11 shows a more detailed procedure of the inspection of the
In the inspection of the
Next, a control signal is supplied from the
Next, a program for operating the ALPG to generate a test pattern is written by the
Subsequently, a control signal is supplied from the
This relief program sets a replacement address in an address conversion circuit in a redundant circuit provided in association with the
Then, the control signal is supplied to the
Next, a bit that replaces a memory row or memory column including a defective bit with a spare row or spare column based on the information of the defective bit stored in the fail memory (SRAM 140) by activating the
Then, the
Next, the details of the ALPG built in the
The determination result in the comparison /
The plurality of microinstructions stored in the
When the
If the
The signal CS for controlling the change-over switches SW1 to SWn in the signal change-over
The change-over switches SW1 to SWn are not only used for switching the connection between the
FIG. 14 shows a configuration example of the instruction format of the microinstruction stored in the
The microinstruction of this embodiment stores an address field MFa for storing a PC address indicating a jump address of an instruction used in the jump instruction, an operation code field MFb for storing a sequence control code, and the number of instruction repetitions. Operand field MFc, control field MFd for storing a control code for instructing output and reading / writing of an address and data, an address operation code field MFe for storing an address operation instruction code, and a data generation instruction code It consists of a data generation code field MFf and the like to be stored. The address field MFa is regarded as a field that defines the address of the instruction to be executed next.
A feature of the microinstruction as the tester language used in this embodiment is that two instructions are executed in parallel by specifying a test address operation and a data operation by one instruction.
FIG. 15 shows a configuration example of the
Table 1 shows the types and contents of the opcodes used for the sequence control defined or described in the opcode field MFb in the microinstruction.
[Table 1]
In Table 1, the instruction indicated by “nop” is a no-operation instruction instructing to return the value of the
In addition, “jindex1” to “jindex4” are instructions prepared for turning a loop of instructions by jump. In the memory pattern test, the number of instructions, that is, the program length can be reduced by repeatedly executing the same instruction using the jump instruction (for example, by incrementing the address to the final address, There is a case where “1” is written to and read from all memory cells. In this embodiment, an
Since each jump instruction has the same control content, the control operation by “jindex1” will be described below, and description of the other jump instructions “jindex2” to “jindex4” will be omitted. When the jindex1 instruction is read from the opcode field MFb, it is determined whether it is the first jindex1 instruction, and the determination result is reflected in the
When the jindex1 instruction is read when the flag jf1 = 0, the
When the jindex1 instruction is read when the flag jf1 = 1, the PC address in the address field MFa of the microinstruction is set in the
Therefore, if the jindex instruction is defined or described in the opcode field MFb of the microinstruction and the PC address as the jump destination address of the microinstruction is defined or described in the address field MFa, it is specified in the operand field MFc. The same index instruction is repeatedly executed as many times as the number of loops. Finally, the
The “jxd” instruction in Table 1 refers to the dflg in the
The “jmp” instruction is an instruction that transfers an operand to the program counter and instructs the program to jump to the instruction at the jump address indicated by the operand.
The “stop” instruction is a stop instruction for instructing to end the sequence control.
FIG. 16 shows a configuration example of the
The
The X
The inverter INV is provided because a malfunction due to address signal switching noise may be tested in a memory pattern test, and an inverted signal of the address signal needs to be output at that time. By using this inverter INV, an inverted signal of the address signal in the test can be easily formed.
Although not particularly limited, in this embodiment, the X address generated by the arithmetic units ALU1 and ALU2 of the X address
Thereby, it can be used as a test circuit for any of a plurality of types of memories, for example, an address multiplex type memory and an address non-multiplex type memory. That is, by simply rewriting the microinstruction stored in the
The difference between the X
Table 2 shows the operation codes used for the Y address operation (base operation) in the first operation unit ALU1 of the Y
[Table 2]
In Table 2, Ybase ← 0 is an instruction for instructing the value of the base register Ybase to be “0”. Ybase ← Yhold is an instruction for instructing to put the contents of the initial value register Yhold into the base register Ybase. Ybase ← Ybase + 1 is an instruction for instructing to increment (+1) the value of the base register Ybase and return to the register Ybase. Ybase ← Ybase + 1 (BR) means that if the value of the base register Xbase is not the maximum value, the value of Ybase is left as it is, and if the value of Xbase is the maximum value, the value of Ybase is incremented and returned to the register Ybase. It is a command to command. At this time, the borrow signal BR is supplied from the first arithmetic unit ALU1 to the second arithmetic unit ALU2.
Table 3 shows types of operation codes used for address calculation in the first arithmetic unit ALU1 of the X
Table 4 shows types of operation codes used for Y address calculation (current calculation) in the second arithmetic unit ALU2 of the Y
Table 5 shows types of operation codes used for address calculation in the second arithmetic unit ALU2 of the X
In Table 4, the left column is an ALPG description written using a tester language, and the right column is a functional operation level description corresponding to the ALPG description. Functions can be expressed by describing this description according to the rules of the hardware description language (HDL description).
[Table 3]
[Table 4]
[Table 5]
FIG. 17 shows a configuration example of the test
The test
Table 6 shows the types and contents of control codes used for operation control in the test
Tp ← Tp * 2 controls the register Tp and the arithmetic unit ALU, processes the 18-bit data in the register Tp by the arithmetic unit ALU, shifts the bit string by one bit to the MSB side or the LSB side, and returns it to the register Tp. It is an instruction. A test for writing data “1” to a memory cell bit by bit even if the memory unit is a type of memory in which data is read / written in units of 1 word or 1 byte by this instruction. Data can be generated relatively easily.
[Table 6]
Table 7 shows an example of a list of microinstructions related to a marching test, which is one of memory testing methods.
The marching test is performed as follows. Among all the bits of the memory cells in the
As an example, a marching test assuming a memory array having an X address of 4 bits and a Y address of 4 bits and a storage capacity of 256 bits will be described.
[Table 7]
In Table 7, symbols W and R are control codes that indicate read / write with respect to the memory described or defined in the control field MFd. This control code is represented by a bit corresponding to W and a bit corresponding to R, that is, 2 bits. The number described in the “PC address” column indicates the jump address, and means that after executing the microinstruction, the program jumps to the microinstruction of the number described in the PC column and loops or jumps. is doing. Further, the symbols X ← Xbase and Y ← Ybase described in the column “control instruction etc.” mean that the values of the base registers Xbase and Ybase are output as the X address and the Y address, respectively.
FIG. 18 and FIG. 19 show an example of a processing flow according to the microinstruction list in Table 7 when a marching test of the
Hereinafter, the marching test procedure will be described with the steps of FIGS. 18 and 19 corresponding to each other.
When the address of the first instruction shown in the list of Table 7 is set to the
Next, since the
The first set value of the index register idx1 corresponds to the capacity (number of bytes or number of words) of the
The
Further, the
When the value of the working register idxw becomes “0”, the
On the other hand, the
Next, since the
On the other hand, the
The
Next, the fifth microinstruction in Table 7 is read. Since the operation code of the fifth microinstruction is “index1”, the
The
Next, the sixth microinstruction in Table 7 is read. Since the operation code of the sixth microinstruction is “jxd”, the
On the other hand, when the microinstruction list for the second round is executed, in steps S222 to S231 in FIG. 19, the
As described above, the control according to the flow of FIG. 18 and FIG. 19 uses the instruction codes described in Tables 1 to 6 to change the microinstructions in the
Further, in the test circuit (ALPG) of the embodiment, by using the instruction codes described in Tables 1 to 6, “0” or “1” is set in all the memory cells in addition to the marching test. An all “0” determination test or an all “1” determination test for checking whether writing is possible, or so-called N for writing “1” in a certain bit and checking all other bits for erroneous writing. 2 A square pattern test (or galloping test) or the like can also be performed.
Table 8 shows N 2 A microinstruction list for a power pattern test is shown. Note that ixd is a command for generating a back test pattern by controlling the inverter INVERT controlled by the flag dflg under the initial value register Thold. When the flag dflg is 0, the value of the initial value register Thold is directly stored in the register Tp. When the flag dflg is 1, the opposite pattern is set in the register Tp.
[Table 8]
In the above embodiment, the value initially set in the
Next, details of a logic tester built in the
The logic tester has a configuration similar to the ALPG shown in FIG. 12 that generates the test pattern of the memory. For example, as shown in FIG. 20, a plurality of logic testers described according to a predetermined test pattern generation algorithm are used. An
In addition, in the case of a circuit whose function is specified among the logic circuits to be tested (for example, ALU: Arithmetic Logic Unit), an appropriate test pattern forming method is often already established. By using the test pattern assets, it is possible to generate an efficient test pattern. As for the combinational logic circuit, an efficient test pattern generation method called a D-algorithm based on the fault assumption method and the idea of a single fault that one circuit has one fault is known. By using this method, a microprogram for generating a test pattern can be shortened, and an increase in the capacity of the
In this embodiment, although not particularly limited, the timing setting bit TS decoded by the
When each of these control data is supplied to the
Further, the
In this logic tester, an operand field MFc for storing the number of instruction repetitions is provided in the microinstruction code, and an
FIG. 21 shows an embodiment of the signal forming / comparing
As shown in FIG. 21, the driver / comparator circuit of this embodiment compares a driver circuit (signal forming circuit) 340 that forms a signal to be output to a tester dedicated bus with a signal on the tester dedicated bus and an expected value signal. Thus, the comparator circuit (comparing circuit) 350 for comparing the coincidence / non-coincidence and the
The
On the other hand, the
As shown in FIG. 20, the microinstruction in the test circuit of this embodiment stores an address field MFa in which a PC address indicating a jump address of an instruction used in the jump instruction is stored, and a sequence control code. An operation code field MFb, an operand field MFc in which the number of instruction repetitions and the like are stored, and a timing setting field MFd in which a timing setting bit TS for reading a control signal for the
The timing setting bit TS stored in the timing setting field MFd is 2 bits in this embodiment as described above, but 3 or more bits may be provided. The input / output control bits stored in the input / output control field MFe correspond to the three signal lines of the tester dedicated
Table 9 shows the relationship between the input / output control bits TP, I / O, CONT and the operation state of the signal forming / comparing
[Table 9]
As shown in Table 9, when the input / output control bits TP, I / O, and CONT are “111”, the
In the signal forming / comparing
FIG. 22 shows an example of the timing clocks ACLK1 to CCLK2 supplied from the
As can be seen from FIG. 22, a high-level signal as shown in FIG. 22 (h) is output from the terminal where the input / output control bits TP, I / O, CONT are set to “111” and the clock ACLK1 is designated according to the clock ACLK1. 22 is output from a terminal to which TP, I / O, CONT are set to “011” and the clock ACLK2 is designated in accordance with the clock ACLK2, and TP, I / O, From the terminal where CONT is set to “110” and the clocks ACLK1, BCLK1, and CCLK1 are designated, a positive pulse as shown in FIG. 22 (j) having BCLK1 and CCLK1 as an edge is output according to the data set by the clock ACLK1. TP, I / O, CONT are set to “010” and clocks ACLK2, BCLK2, CCLK2 Negative pulse as shown in FIG. 22, the edge of BCLK2, CCLK2 accordance with the data which is set by the clock ACLK2 from the designated terminal (k) is output.
Further, although not shown in the figure, at the terminal where the input / output control bits TP, I / O, CONT are set to “101” and the clock CCLK1 is designated, the expected value is set to the high level and the clock CCLK1 in FIG. Comparison is performed, and at the terminals where TP, I / O, and CONT are set to “001” and the clock CCLK2 is designated, the expected value is the low level, and the comparison is performed using the clock CCLK2 of FIG. Note that the selection of the clock is not limited to the above, and can be any combination.
As described above, in the above-described embodiment, a signal indicating whether the circuit is normal or abnormal can be output for each basic logic cell consisting of a plurality of basic logic cells (cell logic blocks) on the semiconductor chip, and any logic can be output. A variable logic circuit such as a configurable FPGA (Field Programmable Gate Array) is mounted. Thereby, it is possible to know that there is a defective part and its position in the variable logic circuit (FPGA) without using an external tester. In addition to improving the yield by avoiding defective parts and configuring the logic, a failure of the test circuit itself occurs when a test circuit is built using this variable logic circuit (FPGA) to test other internal circuits. It is possible to avoid outputting an erroneous test result due to.
The semiconductor integrated circuit testing method according to the present invention includes a variable logic circuit (FPGA) capable of outputting a signal indicating whether the circuit is normal or abnormal and capable of configuring any logic, and a memory circuit capable of reading and writing. In a built-in semiconductor integrated circuit, first, a self-test is performed by the above-described variable logic circuit (FPGA), and only a basic logic cell excluding the defective portion is obtained according to a predetermined algorithm using information indicating the defective portion obtained as a result. A memory test circuit for inspecting the circuit was constructed to inspect the memory circuit. As a result, it is possible to test the memory circuit inside the LSI without using a high-function external tester.
Further, another test method for a semiconductor integrated circuit according to the present invention includes a custom logic circuit such as a user logic circuit in which the semiconductor integrated circuit constitutes a CPU (Central Processing Unit) and a logic function requested by a user together with a memory circuit. In such a case, a test circuit (logic tester) for generating a test signal and an expected value signal for the CPU and custom logic circuit in accordance with a predetermined algorithm is constructed in the FPGA, and the test is already determined to be normal by the test. The test circuit or test pattern generation program is stored in the memory circuit, and the test circuit built in the FPGA is activated to test the CPU and custom logic circuit. As a result, it is possible to test the CPU and logic circuit in the LSI without using a high-function external tester.
Furthermore, in the method of manufacturing a semiconductor integrated circuit according to the present invention, first, a self-test is performed by the variable logic circuit, and the defective portion is removed from the variable logic circuit by using information obtained as a result of the self-test. Constructing a memory test circuit for inspecting the first memory circuit according to a predetermined algorithm using only the basic logic cell, inspecting the first memory circuit,
Next, in the variable logic circuit, a logic test circuit for inspecting a custom logic circuit or a central processing unit according to a predetermined algorithm with only basic logic cells excluding defective portions is constructed and tested in the first memory circuit. Store the pattern or test pattern generation program, inspect the custom logic circuit or central processing unit,
After that, in the variable logic circuit, a memory test circuit for inspecting the second memory circuit according to a predetermined algorithm with only basic logic cells excluding defective portions is constructed, and the second memory circuit is inspected,
Thereafter, based on the inspection result of the second memory circuit, a bit relief process is performed in which a defective bit in the second memory circuit is replaced with a spare bit using a redundant circuit associated with the second memory circuit. Thus, the bit repair of the memory circuit can be automatically performed, and the yield and productivity of the semiconductor integrated circuit can be improved.
In the method of manufacturing a semiconductor integrated circuit according to the present invention, a desired logic is configured in the variable logic circuit after the bit relief process of the second memory circuit. Since no useless circuit remains, there is an effect that the hardware overhead associated with providing the test circuit inside the LSI can be reduced.
In the semiconductor integrated circuit manufacturing method according to the present invention, the information indicating the position of the defective bit is stored in the first memory circuit when the second memory circuit is inspected. There is an effect that failure analysis can be easily performed by reading information stored in one memory circuit.
The invention made by the present inventor has been specifically described based on the embodiments. However, the present invention is not limited to the above embodiments, and various modifications can be made without departing from the scope of the invention. Nor. For example, in the above embodiment, the output state of the exclusive OR gate circuit LG2 that detects and outputs whether or not the circuit in the cell logic block CLB is normal is stored in the memory cell SMC in the crosspoint switch circuit CSW. However, it may be configured to output to the outside of the LSI chip.
In the above embodiment, the fail memory for storing the position of the defective bit when the
Industrial applicability
In the above description, the self-verification method in a system LSI having a CPU, SRAM, DRAM, and custom logic circuit, which is a field of use that is based on the invention made by the present inventor, has been described as an example. However, the present invention is not limited thereto, and a logic LSI including a CPU and SRAM and a custom logic circuit, a logic LSI including a CPU and a DRAM and a custom logic circuit, a logic LSI including a CPU and a custom logic circuit, an SRAM and a DRAM, and a custom logic circuit The present invention can also be used in a logic integrated circuit or a semiconductor integrated circuit in which an analog circuit is mounted in addition to the digital circuit as described above.
[Brief description of the drawings]
FIG. 1 is a block diagram showing the overall configuration of an embodiment of a logic LSI to which the present invention is applied.
FIG. 2 is a circuit configuration diagram showing one embodiment of a variable logic circuit (FPGA) provided in a logic LSI to which the present invention is applied.
FIG. 3 is a block diagram showing a specific example of the crosspoint switch constituting the FPGA.
FIG. 4 is a logic circuit diagram and a conceptual diagram showing a specific example of a cell logic block constituting the FPGA.
FIG. 5 is a logic circuit diagram showing another example of the cell logic block constituting the FPGA.
FIG. 6 is a block diagram showing a configuration example of a test interface circuit provided in a logic LSI to which the present invention is applied.
FIG. 7 is a flowchart showing an example of an internal circuit inspection procedure in the logic LSI to which the present invention is applied.
FIG. 8 is a flowchart showing specific contents of the inspection procedure of the FPGA unit in steps S1 to S3 of the flowchart of FIG.
FIG. 9 is a flowchart showing specific contents of the inspection procedure of the SRAM unit in steps S4 to S5 of the flowchart of FIG.
FIG. 10 is a flowchart showing specific contents of the inspection procedure of the custom logic circuit and the CPU unit in steps S6 to S8 of the flowchart of FIG.
FIG. 11 is a flowchart showing specific contents of the inspection procedure of the DRAM unit in steps S9 to S12 of the flowchart of FIG.
FIG. 12 is a block diagram showing the configuration of the ALPG built in the FPGA.
FIG. 13 is a block diagram illustrating a configuration example of a bus when testing a memory circuit using ALPG.
FIG. 14 is an explanatory diagram showing a configuration example of an instruction format of a microinstruction stored in the instruction memory of the ALPG.
FIG. 15 is a block diagram illustrating a configuration example of an ALPG sequence control unit.
FIG. 16 is a block diagram illustrating a configuration example of an ALPG address calculation unit.
FIG. 17 is a block diagram illustrating a configuration example of an ALPG test data generation calculation unit.
FIG. 18 is a flowchart showing an example of a sequence control procedure using an opcode and operand of a microinstruction when the memory circuit is inspected by ALPG.
FIG. 19 is a flowchart showing an example of a procedure for generating and outputting a test address and data using an operation code and data generation code of a microinstruction when the memory circuit is inspected by ALPG.
FIG. 20 is a block diagram illustrating a configuration example of a logic tester built in the FPGA.
FIG. 21 is a logic circuit diagram showing a specific example of signal forming / comparing means in the logic tester.
FIG. 22 is a waveform diagram showing an example of a test signal waveform formed by a logic tester.
Claims (11)
上記可変論理回路は、相補的な信号を出力可能な2線ラインロジック回路と該2線ラインロジック回路の出力信号を比較して異常の有無を判定する判定手段とからなる基本論理セルと、これら基本論理セル間の信号線の接続を切り替え可能な複数の可変スイッチ回路とを備え、上記可変スイッチ回路による接続を切り替えることにより任意の論理を構成可能であって、上記2線ラインロジック回路から出力される信号が他の基本論理セル内の2線ラインロジック回路に供給され、上記判定手段の出力信号が、回路が正常か異常かを示す信号として各基本論理セルから出力されるように構成され、
上記可変スイッチ回路は、互いに交差する信号線間を接続遮断可能なスイッチ素子と、該スイッチ素子の状態を制御する情報を記憶する書込み読出し可能な記憶素子とからなり、上記判定手段から出力される回路が正常か異常かを示す信号が上記記憶素子に記憶されるように構成されていることを特徴とする半導体集積回路。A plurality of basic logics which can output a signal indicating whether each basic logic cell is normal or abnormal and each output a normal signal on the semiconductor chip. A semiconductor integrated circuit in which a variable logic circuit capable of configuring arbitrary logic in a cell is mounted,
The variable logic circuit includes a basic logic cell comprising a two-line line logic circuit capable of outputting a complementary signal and a determination means for comparing the output signals of the two-line line logic circuit to determine the presence or absence of an abnormality, and A plurality of variable switch circuits capable of switching the connection of signal lines between basic logic cells, and arbitrary logic can be configured by switching the connection by the variable switch circuit, and output from the two-line line logic circuit Is supplied to a two-line line logic circuit in another basic logic cell, and the output signal of the determination means is output from each basic logic cell as a signal indicating whether the circuit is normal or abnormal. ,
The variable switch circuit includes a switch element capable of disconnecting and connecting signal lines intersecting each other, and a readable / writable storage element for storing information for controlling the state of the switch element, and is output from the determination means. A semiconductor integrated circuit characterized in that a signal indicating whether the circuit is normal or abnormal is stored in the memory element.
上記可変論理回路により自己テストを行なわせ、その結果得られた不良個所を示す情報を用いて該可変論理回路内に、正常な論理セルで所定のアルゴリズムに従って所定のテスト信号および期待値信号を発生してテスト信号を上記メモリ回路に供給し、その結果メモリ回路から得られる出力信号と期待値信号とを比較して一致しない場合に不良を示す信号を形成してチップ外部へ出力させるメモリテスト回路を構成して、上記メモリ回路を検査するようにしたことを特徴とする半導体集積回路の検査方法。A semiconductor integrated circuit comprising at least a plurality of logic cells and capable of outputting a signal indicating whether the circuit is normal or abnormal for each logic cell and including a variable logic circuit capable of configuring arbitrary logic and a readable / writable memory circuit An inspection method,
A self-test is performed by the variable logic circuit, and a predetermined test signal and an expected value signal are generated in a normal logic cell according to a predetermined algorithm in the variable logic circuit by using information indicating a defective portion obtained as a result. to the test signal is supplied to the memory circuit, the memory test to output the result notes to form a signal indicating the failure when the output signals obtained does not match by comparing the expected value signal from Li circuit outside the chip A method for inspecting a semiconductor integrated circuit, wherein a circuit is configured to inspect the memory circuit.
上記可変論理回路により自己テストを行なわせ、その結果得られた不良個所を示す情報を用いて該可変論理回路内に、正常な論理セルで所定のアルゴリズムに従って所定のテスト信号および期待値を発生してテスト信号を上記メモリ回路に供給しその結果メモリ回路から得られる出力信号と期待値信号とを比較して一致しない場合に不良を示す信号を形成してチップ外部へ出力させるメモリテスト回路を構築して、該メモリテスト回路により上記メモリ回路を検査し、
次に、上記可変論理回路内に、正常な論理セルで所定のアルゴリズムに従って所定のテスト信号および期待値信号を発生してテスト信号を上記カスタム論理回路または中央処理ユニットに供給しその結果カスタム論理回路または中央処理ユニットから得られる出力信号と期待値信号とを比較して一致しない場合に不良を示す信号を形成してチップ外部へ出力させるロジックテスト回路を構築し、上記メモリ回路内にテストパターンもしくはテストパターン生成プログラムを格納して、上記ロジックテスト回路を起動させて上記カスタム論理回路または中央処理ユニットを検査するようにしたことを特徴とする半導体集積回検査方法。A variable logic circuit that can output a signal indicating whether the circuit is normal or abnormal for each logic cell and that can configure any logic, a read / write memory circuit, a custom logic circuit, or a central circuit A method for inspecting a semiconductor integrated circuit including a processing unit,
A self-test is performed by the variable logic circuit, and a predetermined test signal and an expected value are generated in a normal logic cell in accordance with a predetermined algorithm in the variable logic circuit using information indicating a defective portion obtained as a result. Te a memory test circuit that outputs a test signal to form a signal indicating the failure when they do not match by comparing the expected value signal and the output signal obtained from the supply to the memory circuit the result memory circuit outside the chip And inspecting the memory circuit with the memory test circuit,
Next, in the variable logic circuit, a predetermined test signal and an expected value signal are generated in accordance with a predetermined algorithm in a normal logic cell, and the test signal is supplied to the custom logic circuit or the central processing unit. As a result, the custom logic circuit Or, if the output signal obtained from the central processing unit and the expected value signal are not matched, a logic test circuit is formed that forms a signal indicating a failure and outputs the signal to the outside of the chip. A semiconductor integrated circuit inspection method characterized by storing a test pattern generation program and activating the logic test circuit to inspect the custom logic circuit or the central processing unit.
上記可変論理回路により自己テストを行なわせ、その結果得られた不良個所を示す情報を用いて該可変論理回路内に、正常な論理セルで所定のアルゴリズムに従って所定のテスト信号及び期待値信号を発生してテスト信号を上記第1のメモリ回路に供給しその結果第1のメモリ回路から得られる出力信号と期待値とを比較して一致しない場合に不良を示す信号を形成してチップ外部へ出力させるメモリテスト回路を構築して、該メモリテスト回路により上記第1のメモリ回路を検査し、
次に、上記可変論理回路内に、正常な論理セルで所定のアルゴリズムに従って所定のテスト信号および期待値信号を発生してテスト信号を上記カスタム論理回路または中央処理ユニットに供給しその結果カスタム論理回路または中央処理ユニットから得られる出力信号と期待値信号とを比較して一致しない場合に不良を示す信号を形成してチップ外部へ出力させるロジックテスト回路を構築するとともに上記第1のメモリ回路内にテストパターンもしくはテストパターン生成プログラムを格納して、上記ロジックテスト回路を起動させて上記カスタム論理回路または中央処理ユニットを検査し、
しかる後、上記可変論理回路内に、正常な論理セルで所定のアルゴリズムに従って所定のテスト信号及び期待値信号を発生してテスト信号を上記第2のメモリ回路に供給しその結果第2のメモリ回路から得られる出力信号と期待値信号とを比較して一致しない場合に不良を示す信号を形成してチップ外部に出力させるメモリテスト回路を構築して、上記第2メモリ回路を検査し、
その後、上記第2のメモリ回路の検査結果に基づいて上記第2のメモリ回路に付随する冗長回路を用いて第2のメモリ回路内の欠陥ビットを予備のビットと置き替えるビット救済処理を行なうようにしたことを特徴とする半導体集積回路の製造方法。A variable logic circuit capable of outputting a signal indicating whether the circuit is normal or abnormal for each logic cell and comprising any logic; a first memory circuit not including a redundant circuit; A method of manufacturing a semiconductor integrated circuit including a second memory circuit having a redundant circuit and a custom logic circuit or a central processing unit,
A self-test is performed by the variable logic circuit, and a predetermined test signal and an expected value signal are generated in a normal logic cell according to a predetermined algorithm in the variable logic circuit by using information indicating a defective portion obtained as a result. Then, a test signal is supplied to the first memory circuit, and as a result, an output signal obtained from the first memory circuit is compared with an expected value, and a signal indicating a defect is formed and output to the outside of the chip. A memory test circuit for inspecting the first memory circuit by the memory test circuit,
Next, in the variable logic circuit, a predetermined test signal and an expected value signal are generated in accordance with a predetermined algorithm in a normal logic cell, and the test signal is supplied to the custom logic circuit or the central processing unit. As a result, the custom logic circuit Alternatively, when the output signal obtained from the central processing unit and the expected value signal are not matched, a logic test circuit for forming a signal indicating a defect and outputting the signal to the outside of the chip is constructed, and the first memory circuit is provided. Store the test pattern or test pattern generation program, start the logic test circuit and inspect the custom logic circuit or central processing unit,
Thereafter, a predetermined test signal and an expected value signal are generated in a normal logic cell in the variable logic circuit according to a predetermined algorithm, and the test signal is supplied to the second memory circuit. As a result, the second memory circuit is generated. When the output signal obtained from the above and the expected value signal are not matched, a memory test circuit for forming a signal indicating a failure and outputting the signal to the outside of the chip is constructed, and the second memory circuit is inspected,
Thereafter, based on the inspection result of the second memory circuit, a bit relief process is performed in which a defective bit in the second memory circuit is replaced with a spare bit using a redundant circuit associated with the second memory circuit. A method of manufacturing a semiconductor integrated circuit, wherein
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP1999/001974 WO2000062339A1 (en) | 1999-04-14 | 1999-04-14 | Semiconductor integrated circuit, method for testing the same, and method for manufacturing the same |
Publications (1)
Publication Number | Publication Date |
---|---|
JP4147005B2 true JP4147005B2 (en) | 2008-09-10 |
Family
ID=14235462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000611314A Expired - Fee Related JP4147005B2 (en) | 1999-04-14 | 1999-04-14 | Semiconductor integrated circuit, test method and manufacturing method thereof |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4147005B2 (en) |
WO (1) | WO2000062339A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930052A (en) * | 2010-07-21 | 2010-12-29 | 电子科技大学 | Online detection fault-tolerance system of FPGA (Field programmable Gate Array) digital sequential circuit of SRAM (Static Random Access Memory) type and method |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3980827B2 (en) | 2000-03-10 | 2007-09-26 | 株式会社ルネサステクノロジ | Semiconductor integrated circuit device and manufacturing method |
JP2002184948A (en) | 2000-12-12 | 2002-06-28 | Hitachi Ltd | Method for manufacturing semiconductor integrated circuit device |
JP2006252702A (en) * | 2005-03-11 | 2006-09-21 | Nec Electronics Corp | Semiconductor integrated circuit apparatus and its inspection method |
WO2007108400A1 (en) * | 2006-03-22 | 2007-09-27 | Advantest Corporation | Testing apparatus, memory device and testing method |
US8433950B2 (en) * | 2009-03-17 | 2013-04-30 | International Business Machines Corporation | System to determine fault tolerance in an integrated circuit and associated methods |
WO2012070669A1 (en) * | 2010-11-24 | 2012-05-31 | 日本電気株式会社 | Method and system for generating circuit information for programmable logic device, circuit testing device and computer program therefor, device and computer program for creating circuit data, and computer readable storage medium |
JP2011082566A (en) * | 2011-01-07 | 2011-04-21 | Renesas Electronics Corp | Semiconductor apparatus and electronic equipment |
JP5912844B2 (en) * | 2011-05-31 | 2016-04-27 | 株式会社半導体エネルギー研究所 | Programmable logic device |
US9515656B2 (en) | 2013-11-01 | 2016-12-06 | Semiconductor Energy Laboratory Co., Ltd. | Reconfigurable circuit, storage device, and electronic device including storage device |
JP6478562B2 (en) | 2013-11-07 | 2019-03-06 | 株式会社半導体エネルギー研究所 | Semiconductor device |
US9385054B2 (en) * | 2013-11-08 | 2016-07-05 | Semiconductor Energy Laboratory Co., Ltd. | Data processing device and manufacturing method thereof |
JP6444723B2 (en) * | 2014-01-09 | 2018-12-26 | 株式会社半導体エネルギー研究所 | apparatus |
US9379713B2 (en) | 2014-01-17 | 2016-06-28 | Semiconductor Energy Laboratory Co., Ltd. | Data processing device and driving method thereof |
KR102253204B1 (en) * | 2014-02-07 | 2021-05-20 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | Device |
CN112255534B (en) * | 2020-10-14 | 2023-03-24 | 天津津航计算技术研究所 | IP core module debugging system based on FPGA |
CN116400200B (en) * | 2023-06-05 | 2023-09-01 | 中国汽车技术研究中心有限公司 | Cross verification method for electromagnetic side channel information of vehicle-gauge security chip |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5961653A (en) * | 1997-02-19 | 1999-10-05 | International Business Machines Corporation | Processor based BIST for an embedded memory |
JPH10242288A (en) * | 1997-02-25 | 1998-09-11 | Hitachi Ltd | Semiconductor device and system |
JP3447512B2 (en) * | 1997-04-24 | 2003-09-16 | シャープ株式会社 | Test method for semiconductor integrated circuit with built-in memory |
-
1999
- 1999-04-14 JP JP2000611314A patent/JP4147005B2/en not_active Expired - Fee Related
- 1999-04-14 WO PCT/JP1999/001974 patent/WO2000062339A1/en active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930052A (en) * | 2010-07-21 | 2010-12-29 | 电子科技大学 | Online detection fault-tolerance system of FPGA (Field programmable Gate Array) digital sequential circuit of SRAM (Static Random Access Memory) type and method |
CN101930052B (en) * | 2010-07-21 | 2012-07-25 | 电子科技大学 | Online detection fault-tolerance system of FPGA (Field programmable Gate Array) digital sequential circuit of SRAM (Static Random Access Memory) type and method |
Also Published As
Publication number | Publication date |
---|---|
WO2000062339A1 (en) | 2000-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3867862B2 (en) | Semiconductor integrated circuit and memory inspection method | |
JP4147005B2 (en) | Semiconductor integrated circuit, test method and manufacturing method thereof | |
JP3980827B2 (en) | Semiconductor integrated circuit device and manufacturing method | |
US7225379B2 (en) | Circuit and method for testing semiconductor device | |
EP1377981B1 (en) | Method and system to optimize test cost and disable defects for scan and bist memories | |
KR100714240B1 (en) | Semiconductor integrated circuit and recording medium | |
US6768694B2 (en) | Method of electrically blowing fuses under control of an on-chip tester interface apparatus | |
KR100858382B1 (en) | Tester Architecture Construction Data Generating Method, Tester Architecture Constructing Method and Test Circuit | |
US7437645B2 (en) | Test circuit for semiconductor device | |
US20030212940A1 (en) | Interface architecture for embedded field programmable gate array cores | |
KR20060087430A (en) | A semiconductor integlated circuit having test function and manufacturing method | |
JP2009059434A (en) | Semiconductor integrated circuit | |
JP2001210685A (en) | Test system and method of manufacturing semiconductor integrated circuit device | |
EP0817057A2 (en) | Method and apparatus for efficient self testing of on-chip memory | |
Manasa et al. | Implementation of BIST technology using March-LR algorithm | |
US20050172188A1 (en) | Diagnostic method for detection of multiple defects in a Level Sensitive Scan Design (LSSD) | |
JP2005332555A (en) | Test circuit, test method and semiconductor integrated circuit device | |
JP2001085622A (en) | Semiconductor integrated circuit, inspecting method thereof and manufacture thereof | |
JP2003224468A (en) | Semiconductor integrated circuit, its manufacturing method, and testing method | |
JP4176944B2 (en) | Semiconductor integrated circuit and recording medium | |
US20060069974A1 (en) | One-hot encoded instruction register for boundary scan test compliant devices | |
Singh | Performance Analysis of March M & B Algorithms for Memory Built-In Self-Test (BIST) | |
JP2003156542A (en) | Testing method and semiconductor device | |
JPH06102327A (en) | Memory built-in type semiconductor integrated circuit and logical design method therefor | |
Durga et al. | Design of High Efficient Built in Self Repair Architecture using March Algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040227 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071211 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080311 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080512 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080617 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080623 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110627 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110627 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110627 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120627 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120627 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130627 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |