集積回路および試験方法
【課題】実際の動作速度でのFMB取得が可能な集積回路および試験方法の実現。
【解決手段】メモリ18と、メモリを試験するメモリ試験回路20,22-24,41と、入出力ポート11E,11Fと、を備え、メモリ試験回路の収集したメモリの出力を入出力ポートを介して出力する集積回路であって、メモリ試験回路は、メモリの出力をラッチするラッチ回路20を備え、第1クロックPLLに応じて全アドレスをアクセスするように変化させた時のメモリの出力を、第1クロックの整数倍の周期を有するラッチ信号に応じてラッチするスキャン・ラッチ動作を行い、ラッチ信号の1周期中にラッチしたデータを入出力ポートを介して出力する転送動作を行い、ラッチ回路がラッチするメモリセルのアドレス位置を変化させて、スキャン・ラッチ動作および転送動作を繰り返し、全メモリセルの出力を外部に出力する。
【解決手段】メモリ18と、メモリを試験するメモリ試験回路20,22-24,41と、入出力ポート11E,11Fと、を備え、メモリ試験回路の収集したメモリの出力を入出力ポートを介して出力する集積回路であって、メモリ試験回路は、メモリの出力をラッチするラッチ回路20を備え、第1クロックPLLに応じて全アドレスをアクセスするように変化させた時のメモリの出力を、第1クロックの整数倍の周期を有するラッチ信号に応じてラッチするスキャン・ラッチ動作を行い、ラッチ信号の1周期中にラッチしたデータを入出力ポートを介して出力する転送動作を行い、ラッチ回路がラッチするメモリセルのアドレス位置を変化させて、スキャン・ラッチ動作および転送動作を繰り返し、全メモリセルの出力を外部に出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路およびその試験方法に関し、特にSoc(System on Chip)のような内部に組み込まれ外部からは直接アクセスできないメモリを有する集積回路およびそのメモリを試験する試験方法に関する。
【背景技術】
【0002】
近年、集積回路は微細化・高集積化しており、コンピュータシステムの機能を1個のチップに搭載することが可能となっている。このような集積回路は、一般にSoC(System on Chip)と呼ばれる。SoCには、プロセッサ、DSPなどと共に、かならずメモリ素子(SRAM,DRAMなど)が組み込まれる。SoCの高機能化に伴って、組込メモリの容量が増大しており、組込メモリの良否がSoCの歩留まりを支配するようになってきた。そのため、組込メモリの試験が重要になってきており、SoC内に組み込みメモリの試験を自動で行う試験回路を組み込むことが行われている。
【0003】
図1は、SoC10の構成例を示す図である。図1に示すようにウエハ1上に複数のSoC10がチップとして形成される。各SoC10は、I/Oポート11A−11Dと、CPU12と、論理回路(Logic)13と、DSP14と、ROM15と、SRAM16と、メモリ17と、を有する。メモリ17は、CPU12、論理回路13またはDSP14からアクセスされ、外部からは直接アクセスできない。図示の例では、メモリ17はSRAMであるが、これに限定されるものではない。以下の説明では、メモリ17はSRAMを有する場合を例として説明する。
【0004】
メモリ17は、SRAM18を含むSRAMユニット21と、SRAM18の試験を行うためのRAM−BIST(RAM Built-In Self Test)回路と、を有する。SRAMユニット21は、試験時のRAM−BIST回路からのSRAM18へのアクセスと、通常時におけるSoC10内のRAM−BIST回路以外の部分(CPU12、論理回路13またはDSP14)からのアクセスを切り替えるマルチプレクサMux19と、試験時にSRAM18の出力をラッチして保持するフリップフロップよりなるラッチ回路(FF)20と、を有する。FF20は、2個のフリップフロップを有する。2個のフリップフロップの一方は”0”にリセットされた後、”1”が書き込まれると、”0”が書き込まれても”1”を維持する。言い換えれば、一度”1”が書き込まれると、リセットしない限り”0”には戻らない。2個のフリップフロップの他方は”1”にリセットされた後、”0”が書き込まれると、”1”が書き込まれても”0”を維持する。言い換えれば、一度”0”が書き込まれると、リセットしない限り”1”には戻らない。なお、書き込んだデータを記憶しておき、読み出したデータと比較した結果を記憶する場合には、1個のフリップフロップを設ければよい。
【0005】
RAM−BIST回路は、試験時のメモリ17に供給されるテストクロックから通常動作時のクロックに近い高速の第1クロックを発生するPLL回路22と、メモリテストコントローラ(MTC)23と、テストパターン発生回路(TPG)24と、を有する。なお、PLL回路22を設けずに、テストクロックとして高速の第1クロックを供給する場合もある。
【0006】
図2は、SRAM18の構成と、SRAMセルの不良セルの発生例を示す図である。図2に示すように、SRAM18は、セルアレイ31と、ロウデコーダ32と、コラムデコーダ33と、センスアンプ34と、クロックジェネレータ35と、を有する。SRAMの構成については広く知られているので説明は省略する。
【0007】
組込メモリの試験には、不良チップを選別するための良否判定試験と、不良原因を特定するための診断を行う試験と、がある。良否判定試験は、SoCが正常に動作するかを試験し、メモリ17についてはデータの書き込みおよび読み出しが正常に行えるかを試験する。代表的な試験パターンがマーチパターンであり、以下マーチパターンを例として説明を行うが、開示の技術はこれに限定されるものではない。マーチパターンによる試験は、具体的は、図3の(A)に示すように、FF20の2個のフリップフロップをリセットした後、アドレスを順に変化させながらメモリに”0”を書き込む第1ステップを行う。次にアドレスを順に変化させながらメモリから記憶しているデータを読み出して2個のフリップフロップの一方に記憶すると共に”1”を書き込む第2ステップを行う。次に、アドレスを順方向または逆方向に変化させながらメモリから記憶しているデータを読み出して2個のフリップフロップの他方に記憶すると共に”0”を書き込む第3ステップを行う。最後にFF20の2個のフリップフロップに記憶されたデータを読み出すスキャンアウト動作を行う。不良セルが無ければ、FF20の2個のフリップフロップの一方から”0”が読み出され、他方から”1”が読み出される。もし、2個のフリップフロップの一方から”1”が読み出されるか、または他方から”0”が読み出された場合には、SRAM18に何らかの不良セルがあることになる。しかし、良否判定試験では、どのアドレスのセルが不良であるかは分からない。
【0008】
スキャンアウト動作は、FF20に保持されたデータをSoC10の外部に出力する動作であり、外部テスタとのインターフェース信号のため、SoC10の内部でSRAM18をアクセスする速度より遅く、長い時間が必要である。例えば、SRAM18の出力がNビットの場合、I/OポートにNビット分の端子を設けると端子数が多くなるので、Nビットのデータをシリアルデータに変換して1個の端子から出力する。この場合、FF20の出力サイクルがSRAMの動作サイクルと同じであっても、スキャンアウト動作はSRAMの動作サイクルのN倍以上の長さが必要である。もし、FF20の出力周期がSRAMの動作周期のK倍であれば、スキャンアウト動作はSRAMの動作サイクルのKN倍以上の長さとなる。2組のフリップフロップのデータを出力する場合には、さらにこの2倍の長さになる。
【0009】
なお、SRAMでは複数行または複数列分の冗長セルを設け、不良セルを含む行または列を置き換えることが行われる。この場合も、行または列毎に上記のようなラッチ回路を設けて、不良セルを有する行または列を検出する試験が行われる。しかし、検出された行または列に何個の不良セルがあるか、さらに不良セルのアドレスは検出できない。
【0010】
これに対して、不良原因を特定するための診断を行う試験では、メモリの不良箇所を特定するために、フェール・ビット・マップ(Fail Bit Map:FBM)取得試験が行われる。FBM取得試験では、不良セルのアドレスをマップ形式で取得する。図2の下側に、FBMの例を示す。×印が不良セルを示す。
【0011】
FBM取得試験は、良否判定試験のためにSoCに組み込まれたRAM−BIST回路を使用して行う。FF20は、1個のセルの出力を保持するだけなので、図3の(B)に示すように、第2および第3ステップで、SRAM18の各セルにアクセスするたびに、FF20から出力を読み出すスキャンアウト動作を行う。上記のように、スキャンアウト動作はSRAM18のアクセス動作に比べて長い時間を必要とするので、読み出し、書き込みおよびスキャンアウトを含む1個のセルへのアクセス動作は、長時間を要する。
【0012】
近年、良否判定試験では、試験時間の短縮のため、および実動作状態でのシステム動作保証のために、実際の動作速度で試験を行う実時間動作試験が行われるようになってきた。実際の動作速度での動作をat-speed動作と呼ぶ。また、テクノロジーの進歩に伴い、タイミング的に厳しい設計が行われ、動作速度も高速化しているために、プロセスマージンが少なくなっている。上記のようなSRAM18の良否判定試験は、最後にスキャンアウト動作を行うだけなので、第1から第3ステップは、実際の動作速度と同じ高速で行える。これに対して、FBM取得試験は、低速で行うため、良否判定試験とFBM取得試験の試験結果が異なる場合が生じるという問題が発生した。これは、FBM取得試験は1セルごとにスキャンアウト動作を行うため、読み出しと書き込みの動作は、実際の動作に比べて低速の動作であり、セル間での書き込みと読み出しが連続して高速に行われた時に発生するが、低速時には発生しない不良を検出できないためである。
【0013】
【特許文献1】特開2002−298598号公報
【特許文献2】特開2000−222899号公報
【特許文献3】特開2003−132696号公報
【特許文献4】特開平10−207695号公報
【発明の開示】
【発明が解決しようとする課題】
【0014】
実施形態の集積回路および試験方法は、実際の動作速度での動作、すなわちat-speed動作でのFBM(Fail Bit Map)取得を行えるようにする。
【課題を解決するための手段】
【0015】
実施形態の集積回路は、メモリと、前記メモリを試験するメモリ試験回路と、入出力ポートと、を備え、前記メモリ試験回路の収集した前記メモリの出力を前記入出力ポートを介して出力する集積回路であって、前記メモリ試験回路は、前記メモリの出力をラッチするラッチ回路を備え、アクセスする前記メモリのアドレスを第1クロックに応じて全アドレスをアクセスするように変化させた時の前記メモリの出力を、前記第1クロックの整数倍の周期を有するラッチ信号に応じてラッチするように前記ラッチ回路を動作させるスキャン・ラッチ動作を行い、前記ラッチ信号の1周期中に、前記ラッチ回路のラッチしたデータを、前記入出力ポートを介して出力する転送動作を行い、前記ラッチ回路がラッチする前記メモリの出力に対応するメモリセルのアドレス位置を変化させて、前記スキャン・ラッチ動作および前記転送動作を繰り返し、全メモリセルの出力を外部に出力する。
【0016】
また、実施形態の試験方法は、外部から直接アクセスできないメモリを有する集積回路の前記メモリを試験する試験方法であって、アクセスする前記メモリのアドレスを第1クロックに応じて全アドレスをアクセスするように変化させ、アクセスした前記メモリの出力を、前記第1クロックの整数倍の周期を有するラッチ信号に応じてラッチするスキャン・ラッチ動作を行い、前記ラッチ信号の1周期中に、前記ラッチしたデータを、入出力ポートを介して出力する転送動作を行い、ラッチする前記メモリの出力に対応するメモリセルのアドレス位置を変化させて、前記スキャン・ラッチ動作および前記転送動作を繰り返し、全メモリセルの出力を外部に出力する。
【発明の効果】
【0017】
実施形態の集積回路および試験方法は、実際の動作速度で動作した時の、すなわちat-speed動作した時の不良セルのアドレスを示すFBM(Fail Bit Map)を取得できる。しかも、実施形態の集積回路および試験方法は、従来例の低速動作時のFBM取得に要する時間とほぼ同じ時間で、通常動作時のFBMを取得できる。
【発明を実施するための最良の形態】
【0018】
図4は、第1実施形態の集積回路10の構成および、集積回路10のFBM(Fail Bit Map)取得試験を行うテスタ51を集積回路10に接続した試験システムの構成を示す図である。図示のように、集積回路10は、コンピュータシステムを搭載したSoCであり、メモリ17と、I/Oポート11Eおよび11Fと、を有する。メモリ17は、SRAM18を含むSRAMユニット21と、SRAM18の試験を行うためのRAM−BIST(RAM Built-In Self Test)回路と、を有する。I/Oポート11Eは、テスタ51からメモリ17へ入力するテスタクロックを外部から受けるI/Oポートである。I/Oポート11Fは、メモリ17のテスト出力を受けて外部に出力するI/Oポートである。外部に出力されたテスト出力は、Scan Out信号としてテスタ51に入力される。なお、ここでは、SRAM18はNビット出力で、FF20でラッチしたNビットのデータをシリアルデータに変換してI/Oポート11Fから出力するものとする。図1と同様に、実施形態のSoC10は、CPU、論理回路、DSPなどを有するが、図示を省略している。メモリ17、すなわちSRAM18は、図示していないCPU、論理回路またはDSPからアクセスされ、外部からは直接アクセスできない。
【0019】
メモリ17は、SRAM18を含むSRAMユニット21と、SRAM18の試験を行うためのRAM−BIST(RAM Built-In Self Test)回路と、を有する。SRAMユニット21は、SRAM18と、試験時のRAM−BIST回路からのSRAM18へのアクセスと、通常時におけるSoC10内のRAM−BIST回路以外の部分(CPU、論理回路またはDSPなど)からのアクセスを切り替えるマルチプレクサMux19と、試験時にSRAM18の出力をラッチして保持するフリップフロップよりなるラッチ回路(FF)20と、を有する。図示の例では、メモリ17は、SRAM18を有するが、これに限定されるものではなく、DRAMなどでもよい。以下の説明では、メモリ17がSRAM18を有する場合を例として説明する。
【0020】
FF20は、SRAM18の各出力ビットに対して2個ずつのフリップフロップを有する。上記のように、SRAM18はNビット出力であるから、FF20は、合計で2N個のフリップフロップを有する。各組のN個のフリップフロップのデータはシリアル変換されて出力される。2組のフリップフロップの一方は”0”にリセットされた後、”1”が書き込まれると、”0”が書き込まれても”1”を維持する。言い換えれば、一度”1”が書き込まれると、リセットしない限り”0”には戻らない。2組のフリップフロップの他方は”1”にリセットされた後、”0”が書き込まれると、”1”が書き込まれても”0”を維持する。言い換えれば、一度”0”が書き込まれると、リセットしない限り”1”には戻らない。このようなFF20を使用することにより、前述の良否判定試験が行える。ここでは、2組のフリップフロップの一方に保持されたデータをR0で、他方に保持されたデータをR1で表す。R0とR1のデータはそれぞれNビットであるが、シリアル変換されて出力される。また、R0とR1のデータを同時に読み出す必要はないので、I/Oポート11Fの端子は1個でよい。いずれにしろ、ここでは、良否判定試験に使用するFF20を利用する。
【0021】
RAM−BIST回路は、試験時のメモリ17に供給されるテストクロックから通常動作時のクロックに近い高速の第1クロックを発生するPLL回路22と、メモリテストコントローラ(MTC)23と、テストパターン発生回路(TPG)24と、ラッチ制御回路41と、を有する。ここでは、テストクロックの周期はPLLクロックの周期の4倍であるとする。
【0022】
ラッチ制御回路41は、SRAM18に対して図3(A)に示すような良否判定試験と同様の書き込みおよび読み出し処理を行っている時に、FF20がSRAM18の出力をラッチするタイミングを示すラッチ信号と、FF20がラッチしたデータを読み出すためにシフトさせるFFクロックと、を発生する。図示のように、ラッチ制御回路41は、MTC23の制御の下でPLLクロックをカウントしてカウント値に応じた信号を発生するカウンタ42と、TPG24の信号からラッチのための制御信号を発生する制御回路43と、カウンタ42および制御回路43からの信号に応じてFFクロックを発生するMask回路44と、を有する。ラッチ信号は、カウンタ42が発生する。
【0023】
テスタ51は、試験のためにSoC10に供給するテスタクロックのパターンを記憶した入力パターンメモリ52と、入力パターンメモリ52からの指示に応じてテスタクロックを発生するクロック発生回路53と、SoC10の動作に応じてSRAM18が出力すると期待されるデータを記憶した出力期待値レジスタ54と、SoC10から出力されるScan Out信号と出力期待値レジスタ54から出力される期待値を比較する出力比較回路55と、を有する。Scan Out信号と出力期待値が一致すれば正常セルであり、不一致であれば不良セルであると判定される。なお、テスタ51は、入力パターンメモリ52にSoC10における試験シーケンスを記憶しており、入力されるScan Out信号がどのセルの出力であるかを認識できるようになっている。
【0024】
図5は、第1実施形態におけるFBM取得試験シーケンスを説明するタイムチャートである。上記のように、テスタクロックの周期はPLLクロックの周期の4倍であり、FF20からのデータの読み出しはテスタクロックに同期して行われる。PLL回路22は、テスタクロックの1/4周期のPLLクロックを発生し、SRAMユニット21、すなわちSRAM18に印加する。これにより、SRAM18はPLLクロックで動作し、図3(A)に示した動作を行う。すなわち、第1ステップでは”0”を書き込み、第2ステップでは書き込んだデータを読み出すと共に”1”を書き込む。第3ステップでは、書き込んだデータを読み出すと共に”0”を書き込む。スキャンアウト動作は行わない。これで第1サイクルが終了する。以下第2および第3ステップを実行するサイクルを、後述する回数だけ繰り返す。第2および第3ステップでは、2PLLクロックで、1アドレス、すなわち1セルに対して読み出しと書き込みが行われる。
【0025】
カウンタ42は、テスタクロックの1/2周期でカウント値を変化させ、0からM−1までの値をカウントする動作を繰り返す。
【0026】
図5では、SRAM18の読み出しおよび書き込みは、PLLクロックが立ち下りに同期して行われる。
【0027】
第1サイクルの第2ステップでは、MTC23は、カウンタ42のカウンタ値を、SRAM18の開始アドレスAddress0のセルからデータが読み出された時に0で、データが読み出された後1/2PLLクロックで、すなわちPLLクロックの立ち上がりに同期してカウント値が1に変化するように設定する。カウント値が1に変化した後、カウンタ42は、PLLクロックが立ち下りに同期してラッチ信号を発生する。ラッチ信号に応じて、SRAM18から読み出されているNビットのデータがFF20にラッチされる。
【0028】
Mask回路44は、ラッチ信号が発生された後、FFクロックを出力する。FFクロックは、テスタクロックに同期した信号で、Nパルス発生される。FF20は、R0のデータのフリップフロップを使用して、FFクロックの立ち上がりに同期してラッチしたNビットのデータをシフトしてI/Oポート11Fに出力する。これに応じて、テスタ51の出力比較回路55は、出力されたScan Outをストローブして出力期待値と比較する。具体的には、FF20はカウント値が1,3,5の時にシフトし、出力比較回路55はカウント値が1,3,5の時にストローブする。したがって、カウンタ42の最大カウント値M−1は、2N+1以上であることが必要である。
【0029】
Mask回路44は、カウント値がM−1から0に変化する時にFF20をリセットする。
【0030】
以下、上記の動作を、第2ステップの間繰り返す。これにより、アドレスAddress0のセルからアドレスをMずつ増加させたアドレスAddress0+M, Address0+2M,…のセルから、第1ステップで書き込んだ0に対応するデータが読み出される。データが0であれば正常であり、1であれば不良である。テスタ51は、読み出されたデータのアドレスを認識しているので、そのアドレスのセルが正常か不良かを判定して記憶する。
【0031】
第2ステップが終了し、最終アドレスのセルのデータの読み出しおよび1の書き込みが終了すると、第3ステップを開始する。この時、カウント値がM−1から0になり、FF20がリセットされる。MTC23は、カウンタ42のカウンタ値を、SRAM18の最終アドレスのセルからデータが読み出された時に0で、データが読み出された後1/2PLLクロックで、すなわちPLLクロックの立ち上がりに同期してカウント値が1に変化するように設定する。なお、第3ステップでは、FF20のR1に対応するフリップフロップが使用される。
【0032】
以下、アドレスの値を逆に変化しながら、第2ステップと同じ動作を行う。これにより、最大アドレスのセルからアドレスをMずつ減少させたアドレスのセルから、第2ステップで書き込んだ1に対応するデータが読み出される。データが1であれば正常であり、0であれば不良である。テスタ51は、読み出されたデータのアドレスを認識しているので、そのアドレスのセルが正常か不良かを判定して記憶する。
【0033】
第3ステップが終了し、開始アドレスのセルのデータの読み出しおよび0の書き込みが終了すると、第1サイクルが終了し、第2サイクルを開始する。第2サイクルでは、再び第2ステップを開始する。この時、カウント値がM−1から0になり、ラッチ20がリセットされる。MTC23は、カウンタ42のカウンタ値を、SRAM18の開始アドレスの次のアドレスAddress1のセルからデータが読み出された時に0で、データが読み出された後1/2PLLクロックで、すなわちPLLクロックの立ち上がりに同期してカウント値が1に変化するように設定する。以下同様に第2ステップを行う。そして、第2ステップが終了すると、第3ステップを開始する。この時、MTC23は、カウンタ42のカウンタ値を、SRAM18の最終アドレスより1少ないアドレスのセルからデータが読み出された時に0で、データが読み出された後1/2PLLクロックで、すなわちPLLクロックの立ち上がりに同期してカウント値が1に変化するように設定する。以下同様に第3ステップを行う。
【0034】
以上のサイクルを、第2ステップでは、最初にFF20がラッチするセルのアドレスが1ずつ増加し、第3ステップでは、最初にFF20がラッチするセルのアドレスが1ずつ減少するように設定して、全体でMサイクル繰り返す。これにより、SRAM18をPLLクロック、すなわち通常使用時と同じ高速のクロックで動作させた時の全セルの試験結果が取得できる。
【0035】
図6は、第1実施形態の集積回路10のメモリ17のラッチ制御回路41の具体的な回路例を示す図である。また、図7は、図6の回路の動作を示すタイムチャートである。ここでは、SRAM18の出力は4ビット(N=4)であり、テストクロックの周期はPLLクロックの周期の2倍であり、カウンタ42の最大カウント値(M−1)は17とする。
【0036】
図6に示すように、ラッチ制御回路41は、0から17のカウントを繰り返すカウンタ42と、NANDゲート61と、セレクタ62と、フリップフロップ(ff)63と、インバータ64と、4入力ORゲート65と、インバータ66、67と、を有する。
【0037】
カウンタ42は、MTC23の制御信号Initにより、あるタイミングでカウンタの値が設定される。カウンタ42は、PLLクロックの立ち上がりに同期してカウント値を変化させ、カウント値の下位2ビットがbit0およびbit1である。また、カウンタ42は、カウント値に基づいて制御信号cnt0およびcnt1を出力する。cnt0はカウント値が0の時のみ1になりそれ以外で0になり、cnt1はカウント値が1の時のみ1になりそれ以外で0になる。セレクタ62は、TPG24からの読み取り信号readとcnt0の両方が1の時に、cnt0を選択してff62を1に設定する。それ以後は、ff63の出力を選択し、次にカウント値が0になるまでff63の出力が1である状態を維持する。ff63の出力は、1アドレスのセルに対して読み出しおよび書き込みを行い、読み出したデータを外部に出力する期間を示す。
【0038】
ORゲート64は、ff63の出力が1である期間中に、反転したbit0、およびbit1とPLLクロックがすべて0の時に0になり、それ以外の時には1になるFFクロックを発生する。FFクロックはカウンタ値が0,4,8…の時に0になるパルスである。ラッチ信号はcnt1の反転信号である。
【0039】
FF20は、ラッチ信号の立ち下がりに応じて、その時にFF18から出力されているセルのデータをラッチする。この4ビットデータは、FFクロックの立ち上がりに応じてシフトされてScan Outとして外部に出力される。テスタは、出力されたScan Outをストローブする。
【0040】
図8は、第1実施形態において、マーチパターンでFBM取得試験を行う場合の動作を説明する図である。ここでは、説明を簡単にするため、SRAM18はAddress0からAddress7の8セルを有するとして説明する。
【0041】
第1ステップですべてのセルに0を書き込む。
【0042】
第1サイクルの第2ステップでは、Address0からAddress7の順にセルにアクセスしてデータを読み出すと共に1を書き込む。この間に、Address0とAddress4のセルから読み出したデータを外部にScan Outとして出力する。この時、Address0のセルから読み出したデータはAddress4のデータの読み出しを開始するまでに、Address4のセルから読み出したデータは第3ステップでAddress7のデータの読み出しを開始するまでに外部に出力する。第1サイクルの第3ステップでは、Address7からAddress0の順にセルにアクセスしてデータを読み出すと共に0を書き込む。この間に、Address7とAddress3のセルから読み出したデータを外部にScan Outとして出力する。この時、Address7のセルから読み出したデータをAddress3のデータの読み出しを開始するまでに、Address3のセルから読み出したデータを第2サイクルの第2ステップでAddress1のデータの読み出しを開始するまでに外部に出力する。
【0043】
第2サイクルから第4サイクルでは、外部に読み出すセルのアドレスをずらして、ダイ1サイクルと同様の動作を行う。具体的には、第2サイクルの第2ステップでは、Address1とAddress5のセルのデータを、第2サイクルの第3ステップでは、Address6とAddress2のセルのデータを、第3サイクルの第2ステップでは、Address2とAddress6のセルのデータを、第3サイクルの第3ステップでは、Address5とAddress1のセルのデータを、第4サイクルの第2ステップでは、Address3とAddress7のセルのデータを、第4サイクルの第3ステップでは、Address4とAddress0のセルのデータを、外部に読み出す。
【0044】
以上のように、4サイクルを行うことにより、全セルからの読み出しデータを取得できる。なお、ここでは、各サイクルを連続して行ったが、各サイクルの間に第1ステップ、すなわちすべてのセルに0を書き込むステップを設けてもよい。
【0045】
図9は、第2実施形態の集積回路内の設けられるメモリ17の構成を示す図である。第2実施形態の集積回路は、コンピュータシステムを搭載したSoCである。第1実施形態の集積回路と同様に、メモリ17は、SoC内のCPU、論理回路またはDSPからアクセスされ、外部からは直接アクセスできない。
【0046】
図9に示すように、第2実施形態の集積回路は、メモリ17のRAM−BIST回路にPLL回路が設けられていないことが第1実施形態と異なる。すなわち、第2実施形態の集積回路は、メモリ17は、SRAM18を含むSRAMユニット21と、SRAM18の試験を行うためのRAM−BIST回路と、を有する。SRAMユニット21は、SRAM18と、マルチプレクサMux19と、ラッチ回路(FF)20と、を有する。RAM−BIST回路は、メモリテストコントローラ(MTC)23と、テストパターン発生回路(TPG)24と、ラッチ制御回路41と、を有する。ラッチ制御回路41の構成も、第1実施形態と同じである。
【0047】
第2実施形態では、外部から高速のテスタクロックが供給され、テスタクロックがそのままSRAMユニット21、MTC23、TPG24などに供給される。従って、SRAM18は、テスタクロックに同期して動作する。言い換えれば、第1実施形態ではPLLクロックで動作していたのに対して、第2実施形態ではテスタクロックで動作することが異なる。
【0048】
図10は、図9の回路の動作を示すタイムチャートである。図7と比較して明らかなように、図10では、図7のPLLクロックの代わりにテスタクロックが使用されていることが異なる。ほかの部分は同じである。
【0049】
図11は、第3実施形態の集積回路内の設けられるメモリ17の構成を示す図である。第3実施形態の集積回路は、コンピュータシステムを搭載したSoCである。第2実施形態の集積回路と同様に、メモリ17は、SoC内のCPU、論理回路またはDSPからアクセスされ、外部からは直接アクセスできない。
【0050】
図11に示すように、第3実施形態の集積回路は、RAM−BIST回路のラッチ制御回路のカウンタが、リニアフィードバックシフトレジスタ(LFSR)70であることが第2実施形態と異なり、ほかの部分は第2実施例と同じである。
【0051】
リニアフィードバックシフトレジスタは、比較的長周期の乱数列を発生する回路で、例えば特許文献4などに記載されている。
【0052】
第3実施形態は、リニアフィードバックシフトレジスタを使用する以外が第2実施形態と同じなので説明は省略する。
【0053】
以上実施形態を説明したが、開示した実施形態は説明のために例示したに過ぎず、開示の技術はこれに限定されるものではない。
【0054】
例えば、マーチパターンを使用してFBM取得試験を行う例を説明したが、ほかのパターンを使用することも可能である。
【0055】
また、良否判定試験で使用するR0とR1のデータ保持するFFを利用する例を説明したが、前述のように、良否判定試験は1個のフリップフロップを有するFFで行なうことも可能であり、FBM取得試験でも、FF20は通常のフリップフロップを1個有するだけでもよい。
【0056】
また、開示の技術は、SRAMを使用する例を説明したが、ほかの書き換え可能なメモリを有する集積回路に適用できる。
【0057】
また、ここではSoCを例として説明したが、外部から直接アクセスできないメモリを有する集積回路であれば、開示の技術を適用できる。
【図面の簡単な説明】
【0058】
【図1】図1は、外部から直接アクセスできないメモリおよびメモリの組み込み試験(BIST)回路を有する集積回路(SoC)の構成例を示す図である。
【図2】図2は、SRAMの構成と、不良セルの発生例を示す図である。
【図3】図3は、BIST回路を使用した従来の良否判定試験とFBM取得試験を説明する図である。
【図4】図4は、第1実施形態の集積回路の構成と、試験システムの構成を示す図である。
【図5】図5は、第1実施形態におけるFBM取得試験シーケンスを説明するタイムチャートである。
【図6】図6は、第1実施形態のメモリのBIST回路の具体的構成を示す図である。
【図7】図7は、図6のBIST回路の動作を示すタイムチャートである。
【図8】図8は、第1実施形態におけるFBM取得試験シーケンスを説明する図である。
【図9】図9は、第2実施形態のBIST回路を有するメモリの構成を示す図である。
【図10】図10は、図9のBIST回路の動作を示すタイムチャートである。
【図11】図11は、第3実施形態のBIST回路を有するメモリの構成を示す図である。
【符号の説明】
【0059】
10 集積回路(SoC)
11E,11F I/Oポート
17 BIST回路を有するメモリ
18 SRAM
20 フリップフロップ(FF)
22 PLL回路
23 メモリテストコントローラ(MTC)
24 テストパターン発生回路(TPG)
41 ラッチ制御回路
【技術分野】
【0001】
本発明は、集積回路およびその試験方法に関し、特にSoc(System on Chip)のような内部に組み込まれ外部からは直接アクセスできないメモリを有する集積回路およびそのメモリを試験する試験方法に関する。
【背景技術】
【0002】
近年、集積回路は微細化・高集積化しており、コンピュータシステムの機能を1個のチップに搭載することが可能となっている。このような集積回路は、一般にSoC(System on Chip)と呼ばれる。SoCには、プロセッサ、DSPなどと共に、かならずメモリ素子(SRAM,DRAMなど)が組み込まれる。SoCの高機能化に伴って、組込メモリの容量が増大しており、組込メモリの良否がSoCの歩留まりを支配するようになってきた。そのため、組込メモリの試験が重要になってきており、SoC内に組み込みメモリの試験を自動で行う試験回路を組み込むことが行われている。
【0003】
図1は、SoC10の構成例を示す図である。図1に示すようにウエハ1上に複数のSoC10がチップとして形成される。各SoC10は、I/Oポート11A−11Dと、CPU12と、論理回路(Logic)13と、DSP14と、ROM15と、SRAM16と、メモリ17と、を有する。メモリ17は、CPU12、論理回路13またはDSP14からアクセスされ、外部からは直接アクセスできない。図示の例では、メモリ17はSRAMであるが、これに限定されるものではない。以下の説明では、メモリ17はSRAMを有する場合を例として説明する。
【0004】
メモリ17は、SRAM18を含むSRAMユニット21と、SRAM18の試験を行うためのRAM−BIST(RAM Built-In Self Test)回路と、を有する。SRAMユニット21は、試験時のRAM−BIST回路からのSRAM18へのアクセスと、通常時におけるSoC10内のRAM−BIST回路以外の部分(CPU12、論理回路13またはDSP14)からのアクセスを切り替えるマルチプレクサMux19と、試験時にSRAM18の出力をラッチして保持するフリップフロップよりなるラッチ回路(FF)20と、を有する。FF20は、2個のフリップフロップを有する。2個のフリップフロップの一方は”0”にリセットされた後、”1”が書き込まれると、”0”が書き込まれても”1”を維持する。言い換えれば、一度”1”が書き込まれると、リセットしない限り”0”には戻らない。2個のフリップフロップの他方は”1”にリセットされた後、”0”が書き込まれると、”1”が書き込まれても”0”を維持する。言い換えれば、一度”0”が書き込まれると、リセットしない限り”1”には戻らない。なお、書き込んだデータを記憶しておき、読み出したデータと比較した結果を記憶する場合には、1個のフリップフロップを設ければよい。
【0005】
RAM−BIST回路は、試験時のメモリ17に供給されるテストクロックから通常動作時のクロックに近い高速の第1クロックを発生するPLL回路22と、メモリテストコントローラ(MTC)23と、テストパターン発生回路(TPG)24と、を有する。なお、PLL回路22を設けずに、テストクロックとして高速の第1クロックを供給する場合もある。
【0006】
図2は、SRAM18の構成と、SRAMセルの不良セルの発生例を示す図である。図2に示すように、SRAM18は、セルアレイ31と、ロウデコーダ32と、コラムデコーダ33と、センスアンプ34と、クロックジェネレータ35と、を有する。SRAMの構成については広く知られているので説明は省略する。
【0007】
組込メモリの試験には、不良チップを選別するための良否判定試験と、不良原因を特定するための診断を行う試験と、がある。良否判定試験は、SoCが正常に動作するかを試験し、メモリ17についてはデータの書き込みおよび読み出しが正常に行えるかを試験する。代表的な試験パターンがマーチパターンであり、以下マーチパターンを例として説明を行うが、開示の技術はこれに限定されるものではない。マーチパターンによる試験は、具体的は、図3の(A)に示すように、FF20の2個のフリップフロップをリセットした後、アドレスを順に変化させながらメモリに”0”を書き込む第1ステップを行う。次にアドレスを順に変化させながらメモリから記憶しているデータを読み出して2個のフリップフロップの一方に記憶すると共に”1”を書き込む第2ステップを行う。次に、アドレスを順方向または逆方向に変化させながらメモリから記憶しているデータを読み出して2個のフリップフロップの他方に記憶すると共に”0”を書き込む第3ステップを行う。最後にFF20の2個のフリップフロップに記憶されたデータを読み出すスキャンアウト動作を行う。不良セルが無ければ、FF20の2個のフリップフロップの一方から”0”が読み出され、他方から”1”が読み出される。もし、2個のフリップフロップの一方から”1”が読み出されるか、または他方から”0”が読み出された場合には、SRAM18に何らかの不良セルがあることになる。しかし、良否判定試験では、どのアドレスのセルが不良であるかは分からない。
【0008】
スキャンアウト動作は、FF20に保持されたデータをSoC10の外部に出力する動作であり、外部テスタとのインターフェース信号のため、SoC10の内部でSRAM18をアクセスする速度より遅く、長い時間が必要である。例えば、SRAM18の出力がNビットの場合、I/OポートにNビット分の端子を設けると端子数が多くなるので、Nビットのデータをシリアルデータに変換して1個の端子から出力する。この場合、FF20の出力サイクルがSRAMの動作サイクルと同じであっても、スキャンアウト動作はSRAMの動作サイクルのN倍以上の長さが必要である。もし、FF20の出力周期がSRAMの動作周期のK倍であれば、スキャンアウト動作はSRAMの動作サイクルのKN倍以上の長さとなる。2組のフリップフロップのデータを出力する場合には、さらにこの2倍の長さになる。
【0009】
なお、SRAMでは複数行または複数列分の冗長セルを設け、不良セルを含む行または列を置き換えることが行われる。この場合も、行または列毎に上記のようなラッチ回路を設けて、不良セルを有する行または列を検出する試験が行われる。しかし、検出された行または列に何個の不良セルがあるか、さらに不良セルのアドレスは検出できない。
【0010】
これに対して、不良原因を特定するための診断を行う試験では、メモリの不良箇所を特定するために、フェール・ビット・マップ(Fail Bit Map:FBM)取得試験が行われる。FBM取得試験では、不良セルのアドレスをマップ形式で取得する。図2の下側に、FBMの例を示す。×印が不良セルを示す。
【0011】
FBM取得試験は、良否判定試験のためにSoCに組み込まれたRAM−BIST回路を使用して行う。FF20は、1個のセルの出力を保持するだけなので、図3の(B)に示すように、第2および第3ステップで、SRAM18の各セルにアクセスするたびに、FF20から出力を読み出すスキャンアウト動作を行う。上記のように、スキャンアウト動作はSRAM18のアクセス動作に比べて長い時間を必要とするので、読み出し、書き込みおよびスキャンアウトを含む1個のセルへのアクセス動作は、長時間を要する。
【0012】
近年、良否判定試験では、試験時間の短縮のため、および実動作状態でのシステム動作保証のために、実際の動作速度で試験を行う実時間動作試験が行われるようになってきた。実際の動作速度での動作をat-speed動作と呼ぶ。また、テクノロジーの進歩に伴い、タイミング的に厳しい設計が行われ、動作速度も高速化しているために、プロセスマージンが少なくなっている。上記のようなSRAM18の良否判定試験は、最後にスキャンアウト動作を行うだけなので、第1から第3ステップは、実際の動作速度と同じ高速で行える。これに対して、FBM取得試験は、低速で行うため、良否判定試験とFBM取得試験の試験結果が異なる場合が生じるという問題が発生した。これは、FBM取得試験は1セルごとにスキャンアウト動作を行うため、読み出しと書き込みの動作は、実際の動作に比べて低速の動作であり、セル間での書き込みと読み出しが連続して高速に行われた時に発生するが、低速時には発生しない不良を検出できないためである。
【0013】
【特許文献1】特開2002−298598号公報
【特許文献2】特開2000−222899号公報
【特許文献3】特開2003−132696号公報
【特許文献4】特開平10−207695号公報
【発明の開示】
【発明が解決しようとする課題】
【0014】
実施形態の集積回路および試験方法は、実際の動作速度での動作、すなわちat-speed動作でのFBM(Fail Bit Map)取得を行えるようにする。
【課題を解決するための手段】
【0015】
実施形態の集積回路は、メモリと、前記メモリを試験するメモリ試験回路と、入出力ポートと、を備え、前記メモリ試験回路の収集した前記メモリの出力を前記入出力ポートを介して出力する集積回路であって、前記メモリ試験回路は、前記メモリの出力をラッチするラッチ回路を備え、アクセスする前記メモリのアドレスを第1クロックに応じて全アドレスをアクセスするように変化させた時の前記メモリの出力を、前記第1クロックの整数倍の周期を有するラッチ信号に応じてラッチするように前記ラッチ回路を動作させるスキャン・ラッチ動作を行い、前記ラッチ信号の1周期中に、前記ラッチ回路のラッチしたデータを、前記入出力ポートを介して出力する転送動作を行い、前記ラッチ回路がラッチする前記メモリの出力に対応するメモリセルのアドレス位置を変化させて、前記スキャン・ラッチ動作および前記転送動作を繰り返し、全メモリセルの出力を外部に出力する。
【0016】
また、実施形態の試験方法は、外部から直接アクセスできないメモリを有する集積回路の前記メモリを試験する試験方法であって、アクセスする前記メモリのアドレスを第1クロックに応じて全アドレスをアクセスするように変化させ、アクセスした前記メモリの出力を、前記第1クロックの整数倍の周期を有するラッチ信号に応じてラッチするスキャン・ラッチ動作を行い、前記ラッチ信号の1周期中に、前記ラッチしたデータを、入出力ポートを介して出力する転送動作を行い、ラッチする前記メモリの出力に対応するメモリセルのアドレス位置を変化させて、前記スキャン・ラッチ動作および前記転送動作を繰り返し、全メモリセルの出力を外部に出力する。
【発明の効果】
【0017】
実施形態の集積回路および試験方法は、実際の動作速度で動作した時の、すなわちat-speed動作した時の不良セルのアドレスを示すFBM(Fail Bit Map)を取得できる。しかも、実施形態の集積回路および試験方法は、従来例の低速動作時のFBM取得に要する時間とほぼ同じ時間で、通常動作時のFBMを取得できる。
【発明を実施するための最良の形態】
【0018】
図4は、第1実施形態の集積回路10の構成および、集積回路10のFBM(Fail Bit Map)取得試験を行うテスタ51を集積回路10に接続した試験システムの構成を示す図である。図示のように、集積回路10は、コンピュータシステムを搭載したSoCであり、メモリ17と、I/Oポート11Eおよび11Fと、を有する。メモリ17は、SRAM18を含むSRAMユニット21と、SRAM18の試験を行うためのRAM−BIST(RAM Built-In Self Test)回路と、を有する。I/Oポート11Eは、テスタ51からメモリ17へ入力するテスタクロックを外部から受けるI/Oポートである。I/Oポート11Fは、メモリ17のテスト出力を受けて外部に出力するI/Oポートである。外部に出力されたテスト出力は、Scan Out信号としてテスタ51に入力される。なお、ここでは、SRAM18はNビット出力で、FF20でラッチしたNビットのデータをシリアルデータに変換してI/Oポート11Fから出力するものとする。図1と同様に、実施形態のSoC10は、CPU、論理回路、DSPなどを有するが、図示を省略している。メモリ17、すなわちSRAM18は、図示していないCPU、論理回路またはDSPからアクセスされ、外部からは直接アクセスできない。
【0019】
メモリ17は、SRAM18を含むSRAMユニット21と、SRAM18の試験を行うためのRAM−BIST(RAM Built-In Self Test)回路と、を有する。SRAMユニット21は、SRAM18と、試験時のRAM−BIST回路からのSRAM18へのアクセスと、通常時におけるSoC10内のRAM−BIST回路以外の部分(CPU、論理回路またはDSPなど)からのアクセスを切り替えるマルチプレクサMux19と、試験時にSRAM18の出力をラッチして保持するフリップフロップよりなるラッチ回路(FF)20と、を有する。図示の例では、メモリ17は、SRAM18を有するが、これに限定されるものではなく、DRAMなどでもよい。以下の説明では、メモリ17がSRAM18を有する場合を例として説明する。
【0020】
FF20は、SRAM18の各出力ビットに対して2個ずつのフリップフロップを有する。上記のように、SRAM18はNビット出力であるから、FF20は、合計で2N個のフリップフロップを有する。各組のN個のフリップフロップのデータはシリアル変換されて出力される。2組のフリップフロップの一方は”0”にリセットされた後、”1”が書き込まれると、”0”が書き込まれても”1”を維持する。言い換えれば、一度”1”が書き込まれると、リセットしない限り”0”には戻らない。2組のフリップフロップの他方は”1”にリセットされた後、”0”が書き込まれると、”1”が書き込まれても”0”を維持する。言い換えれば、一度”0”が書き込まれると、リセットしない限り”1”には戻らない。このようなFF20を使用することにより、前述の良否判定試験が行える。ここでは、2組のフリップフロップの一方に保持されたデータをR0で、他方に保持されたデータをR1で表す。R0とR1のデータはそれぞれNビットであるが、シリアル変換されて出力される。また、R0とR1のデータを同時に読み出す必要はないので、I/Oポート11Fの端子は1個でよい。いずれにしろ、ここでは、良否判定試験に使用するFF20を利用する。
【0021】
RAM−BIST回路は、試験時のメモリ17に供給されるテストクロックから通常動作時のクロックに近い高速の第1クロックを発生するPLL回路22と、メモリテストコントローラ(MTC)23と、テストパターン発生回路(TPG)24と、ラッチ制御回路41と、を有する。ここでは、テストクロックの周期はPLLクロックの周期の4倍であるとする。
【0022】
ラッチ制御回路41は、SRAM18に対して図3(A)に示すような良否判定試験と同様の書き込みおよび読み出し処理を行っている時に、FF20がSRAM18の出力をラッチするタイミングを示すラッチ信号と、FF20がラッチしたデータを読み出すためにシフトさせるFFクロックと、を発生する。図示のように、ラッチ制御回路41は、MTC23の制御の下でPLLクロックをカウントしてカウント値に応じた信号を発生するカウンタ42と、TPG24の信号からラッチのための制御信号を発生する制御回路43と、カウンタ42および制御回路43からの信号に応じてFFクロックを発生するMask回路44と、を有する。ラッチ信号は、カウンタ42が発生する。
【0023】
テスタ51は、試験のためにSoC10に供給するテスタクロックのパターンを記憶した入力パターンメモリ52と、入力パターンメモリ52からの指示に応じてテスタクロックを発生するクロック発生回路53と、SoC10の動作に応じてSRAM18が出力すると期待されるデータを記憶した出力期待値レジスタ54と、SoC10から出力されるScan Out信号と出力期待値レジスタ54から出力される期待値を比較する出力比較回路55と、を有する。Scan Out信号と出力期待値が一致すれば正常セルであり、不一致であれば不良セルであると判定される。なお、テスタ51は、入力パターンメモリ52にSoC10における試験シーケンスを記憶しており、入力されるScan Out信号がどのセルの出力であるかを認識できるようになっている。
【0024】
図5は、第1実施形態におけるFBM取得試験シーケンスを説明するタイムチャートである。上記のように、テスタクロックの周期はPLLクロックの周期の4倍であり、FF20からのデータの読み出しはテスタクロックに同期して行われる。PLL回路22は、テスタクロックの1/4周期のPLLクロックを発生し、SRAMユニット21、すなわちSRAM18に印加する。これにより、SRAM18はPLLクロックで動作し、図3(A)に示した動作を行う。すなわち、第1ステップでは”0”を書き込み、第2ステップでは書き込んだデータを読み出すと共に”1”を書き込む。第3ステップでは、書き込んだデータを読み出すと共に”0”を書き込む。スキャンアウト動作は行わない。これで第1サイクルが終了する。以下第2および第3ステップを実行するサイクルを、後述する回数だけ繰り返す。第2および第3ステップでは、2PLLクロックで、1アドレス、すなわち1セルに対して読み出しと書き込みが行われる。
【0025】
カウンタ42は、テスタクロックの1/2周期でカウント値を変化させ、0からM−1までの値をカウントする動作を繰り返す。
【0026】
図5では、SRAM18の読み出しおよび書き込みは、PLLクロックが立ち下りに同期して行われる。
【0027】
第1サイクルの第2ステップでは、MTC23は、カウンタ42のカウンタ値を、SRAM18の開始アドレスAddress0のセルからデータが読み出された時に0で、データが読み出された後1/2PLLクロックで、すなわちPLLクロックの立ち上がりに同期してカウント値が1に変化するように設定する。カウント値が1に変化した後、カウンタ42は、PLLクロックが立ち下りに同期してラッチ信号を発生する。ラッチ信号に応じて、SRAM18から読み出されているNビットのデータがFF20にラッチされる。
【0028】
Mask回路44は、ラッチ信号が発生された後、FFクロックを出力する。FFクロックは、テスタクロックに同期した信号で、Nパルス発生される。FF20は、R0のデータのフリップフロップを使用して、FFクロックの立ち上がりに同期してラッチしたNビットのデータをシフトしてI/Oポート11Fに出力する。これに応じて、テスタ51の出力比較回路55は、出力されたScan Outをストローブして出力期待値と比較する。具体的には、FF20はカウント値が1,3,5の時にシフトし、出力比較回路55はカウント値が1,3,5の時にストローブする。したがって、カウンタ42の最大カウント値M−1は、2N+1以上であることが必要である。
【0029】
Mask回路44は、カウント値がM−1から0に変化する時にFF20をリセットする。
【0030】
以下、上記の動作を、第2ステップの間繰り返す。これにより、アドレスAddress0のセルからアドレスをMずつ増加させたアドレスAddress0+M, Address0+2M,…のセルから、第1ステップで書き込んだ0に対応するデータが読み出される。データが0であれば正常であり、1であれば不良である。テスタ51は、読み出されたデータのアドレスを認識しているので、そのアドレスのセルが正常か不良かを判定して記憶する。
【0031】
第2ステップが終了し、最終アドレスのセルのデータの読み出しおよび1の書き込みが終了すると、第3ステップを開始する。この時、カウント値がM−1から0になり、FF20がリセットされる。MTC23は、カウンタ42のカウンタ値を、SRAM18の最終アドレスのセルからデータが読み出された時に0で、データが読み出された後1/2PLLクロックで、すなわちPLLクロックの立ち上がりに同期してカウント値が1に変化するように設定する。なお、第3ステップでは、FF20のR1に対応するフリップフロップが使用される。
【0032】
以下、アドレスの値を逆に変化しながら、第2ステップと同じ動作を行う。これにより、最大アドレスのセルからアドレスをMずつ減少させたアドレスのセルから、第2ステップで書き込んだ1に対応するデータが読み出される。データが1であれば正常であり、0であれば不良である。テスタ51は、読み出されたデータのアドレスを認識しているので、そのアドレスのセルが正常か不良かを判定して記憶する。
【0033】
第3ステップが終了し、開始アドレスのセルのデータの読み出しおよび0の書き込みが終了すると、第1サイクルが終了し、第2サイクルを開始する。第2サイクルでは、再び第2ステップを開始する。この時、カウント値がM−1から0になり、ラッチ20がリセットされる。MTC23は、カウンタ42のカウンタ値を、SRAM18の開始アドレスの次のアドレスAddress1のセルからデータが読み出された時に0で、データが読み出された後1/2PLLクロックで、すなわちPLLクロックの立ち上がりに同期してカウント値が1に変化するように設定する。以下同様に第2ステップを行う。そして、第2ステップが終了すると、第3ステップを開始する。この時、MTC23は、カウンタ42のカウンタ値を、SRAM18の最終アドレスより1少ないアドレスのセルからデータが読み出された時に0で、データが読み出された後1/2PLLクロックで、すなわちPLLクロックの立ち上がりに同期してカウント値が1に変化するように設定する。以下同様に第3ステップを行う。
【0034】
以上のサイクルを、第2ステップでは、最初にFF20がラッチするセルのアドレスが1ずつ増加し、第3ステップでは、最初にFF20がラッチするセルのアドレスが1ずつ減少するように設定して、全体でMサイクル繰り返す。これにより、SRAM18をPLLクロック、すなわち通常使用時と同じ高速のクロックで動作させた時の全セルの試験結果が取得できる。
【0035】
図6は、第1実施形態の集積回路10のメモリ17のラッチ制御回路41の具体的な回路例を示す図である。また、図7は、図6の回路の動作を示すタイムチャートである。ここでは、SRAM18の出力は4ビット(N=4)であり、テストクロックの周期はPLLクロックの周期の2倍であり、カウンタ42の最大カウント値(M−1)は17とする。
【0036】
図6に示すように、ラッチ制御回路41は、0から17のカウントを繰り返すカウンタ42と、NANDゲート61と、セレクタ62と、フリップフロップ(ff)63と、インバータ64と、4入力ORゲート65と、インバータ66、67と、を有する。
【0037】
カウンタ42は、MTC23の制御信号Initにより、あるタイミングでカウンタの値が設定される。カウンタ42は、PLLクロックの立ち上がりに同期してカウント値を変化させ、カウント値の下位2ビットがbit0およびbit1である。また、カウンタ42は、カウント値に基づいて制御信号cnt0およびcnt1を出力する。cnt0はカウント値が0の時のみ1になりそれ以外で0になり、cnt1はカウント値が1の時のみ1になりそれ以外で0になる。セレクタ62は、TPG24からの読み取り信号readとcnt0の両方が1の時に、cnt0を選択してff62を1に設定する。それ以後は、ff63の出力を選択し、次にカウント値が0になるまでff63の出力が1である状態を維持する。ff63の出力は、1アドレスのセルに対して読み出しおよび書き込みを行い、読み出したデータを外部に出力する期間を示す。
【0038】
ORゲート64は、ff63の出力が1である期間中に、反転したbit0、およびbit1とPLLクロックがすべて0の時に0になり、それ以外の時には1になるFFクロックを発生する。FFクロックはカウンタ値が0,4,8…の時に0になるパルスである。ラッチ信号はcnt1の反転信号である。
【0039】
FF20は、ラッチ信号の立ち下がりに応じて、その時にFF18から出力されているセルのデータをラッチする。この4ビットデータは、FFクロックの立ち上がりに応じてシフトされてScan Outとして外部に出力される。テスタは、出力されたScan Outをストローブする。
【0040】
図8は、第1実施形態において、マーチパターンでFBM取得試験を行う場合の動作を説明する図である。ここでは、説明を簡単にするため、SRAM18はAddress0からAddress7の8セルを有するとして説明する。
【0041】
第1ステップですべてのセルに0を書き込む。
【0042】
第1サイクルの第2ステップでは、Address0からAddress7の順にセルにアクセスしてデータを読み出すと共に1を書き込む。この間に、Address0とAddress4のセルから読み出したデータを外部にScan Outとして出力する。この時、Address0のセルから読み出したデータはAddress4のデータの読み出しを開始するまでに、Address4のセルから読み出したデータは第3ステップでAddress7のデータの読み出しを開始するまでに外部に出力する。第1サイクルの第3ステップでは、Address7からAddress0の順にセルにアクセスしてデータを読み出すと共に0を書き込む。この間に、Address7とAddress3のセルから読み出したデータを外部にScan Outとして出力する。この時、Address7のセルから読み出したデータをAddress3のデータの読み出しを開始するまでに、Address3のセルから読み出したデータを第2サイクルの第2ステップでAddress1のデータの読み出しを開始するまでに外部に出力する。
【0043】
第2サイクルから第4サイクルでは、外部に読み出すセルのアドレスをずらして、ダイ1サイクルと同様の動作を行う。具体的には、第2サイクルの第2ステップでは、Address1とAddress5のセルのデータを、第2サイクルの第3ステップでは、Address6とAddress2のセルのデータを、第3サイクルの第2ステップでは、Address2とAddress6のセルのデータを、第3サイクルの第3ステップでは、Address5とAddress1のセルのデータを、第4サイクルの第2ステップでは、Address3とAddress7のセルのデータを、第4サイクルの第3ステップでは、Address4とAddress0のセルのデータを、外部に読み出す。
【0044】
以上のように、4サイクルを行うことにより、全セルからの読み出しデータを取得できる。なお、ここでは、各サイクルを連続して行ったが、各サイクルの間に第1ステップ、すなわちすべてのセルに0を書き込むステップを設けてもよい。
【0045】
図9は、第2実施形態の集積回路内の設けられるメモリ17の構成を示す図である。第2実施形態の集積回路は、コンピュータシステムを搭載したSoCである。第1実施形態の集積回路と同様に、メモリ17は、SoC内のCPU、論理回路またはDSPからアクセスされ、外部からは直接アクセスできない。
【0046】
図9に示すように、第2実施形態の集積回路は、メモリ17のRAM−BIST回路にPLL回路が設けられていないことが第1実施形態と異なる。すなわち、第2実施形態の集積回路は、メモリ17は、SRAM18を含むSRAMユニット21と、SRAM18の試験を行うためのRAM−BIST回路と、を有する。SRAMユニット21は、SRAM18と、マルチプレクサMux19と、ラッチ回路(FF)20と、を有する。RAM−BIST回路は、メモリテストコントローラ(MTC)23と、テストパターン発生回路(TPG)24と、ラッチ制御回路41と、を有する。ラッチ制御回路41の構成も、第1実施形態と同じである。
【0047】
第2実施形態では、外部から高速のテスタクロックが供給され、テスタクロックがそのままSRAMユニット21、MTC23、TPG24などに供給される。従って、SRAM18は、テスタクロックに同期して動作する。言い換えれば、第1実施形態ではPLLクロックで動作していたのに対して、第2実施形態ではテスタクロックで動作することが異なる。
【0048】
図10は、図9の回路の動作を示すタイムチャートである。図7と比較して明らかなように、図10では、図7のPLLクロックの代わりにテスタクロックが使用されていることが異なる。ほかの部分は同じである。
【0049】
図11は、第3実施形態の集積回路内の設けられるメモリ17の構成を示す図である。第3実施形態の集積回路は、コンピュータシステムを搭載したSoCである。第2実施形態の集積回路と同様に、メモリ17は、SoC内のCPU、論理回路またはDSPからアクセスされ、外部からは直接アクセスできない。
【0050】
図11に示すように、第3実施形態の集積回路は、RAM−BIST回路のラッチ制御回路のカウンタが、リニアフィードバックシフトレジスタ(LFSR)70であることが第2実施形態と異なり、ほかの部分は第2実施例と同じである。
【0051】
リニアフィードバックシフトレジスタは、比較的長周期の乱数列を発生する回路で、例えば特許文献4などに記載されている。
【0052】
第3実施形態は、リニアフィードバックシフトレジスタを使用する以外が第2実施形態と同じなので説明は省略する。
【0053】
以上実施形態を説明したが、開示した実施形態は説明のために例示したに過ぎず、開示の技術はこれに限定されるものではない。
【0054】
例えば、マーチパターンを使用してFBM取得試験を行う例を説明したが、ほかのパターンを使用することも可能である。
【0055】
また、良否判定試験で使用するR0とR1のデータ保持するFFを利用する例を説明したが、前述のように、良否判定試験は1個のフリップフロップを有するFFで行なうことも可能であり、FBM取得試験でも、FF20は通常のフリップフロップを1個有するだけでもよい。
【0056】
また、開示の技術は、SRAMを使用する例を説明したが、ほかの書き換え可能なメモリを有する集積回路に適用できる。
【0057】
また、ここではSoCを例として説明したが、外部から直接アクセスできないメモリを有する集積回路であれば、開示の技術を適用できる。
【図面の簡単な説明】
【0058】
【図1】図1は、外部から直接アクセスできないメモリおよびメモリの組み込み試験(BIST)回路を有する集積回路(SoC)の構成例を示す図である。
【図2】図2は、SRAMの構成と、不良セルの発生例を示す図である。
【図3】図3は、BIST回路を使用した従来の良否判定試験とFBM取得試験を説明する図である。
【図4】図4は、第1実施形態の集積回路の構成と、試験システムの構成を示す図である。
【図5】図5は、第1実施形態におけるFBM取得試験シーケンスを説明するタイムチャートである。
【図6】図6は、第1実施形態のメモリのBIST回路の具体的構成を示す図である。
【図7】図7は、図6のBIST回路の動作を示すタイムチャートである。
【図8】図8は、第1実施形態におけるFBM取得試験シーケンスを説明する図である。
【図9】図9は、第2実施形態のBIST回路を有するメモリの構成を示す図である。
【図10】図10は、図9のBIST回路の動作を示すタイムチャートである。
【図11】図11は、第3実施形態のBIST回路を有するメモリの構成を示す図である。
【符号の説明】
【0059】
10 集積回路(SoC)
11E,11F I/Oポート
17 BIST回路を有するメモリ
18 SRAM
20 フリップフロップ(FF)
22 PLL回路
23 メモリテストコントローラ(MTC)
24 テストパターン発生回路(TPG)
41 ラッチ制御回路
【特許請求の範囲】
【請求項1】
メモリと、
前記メモリを試験するメモリ試験回路と、
入出力ポートと
を備え、
前記メモリ試験回路は、
前記メモリの出力をラッチするラッチ回路を備え、
アクセスする前記メモリのアドレスを、第1クロックに応じて全アドレスをアクセスするように変化させた時の前記メモリの出力を、前記第1クロックの整数倍の周期を有するラッチ信号に応じてラッチするように前記ラッチ回路を動作させるスキャン・ラッチ動作を行い、
前記ラッチ信号の1周期中に、前記ラッチ回路のラッチしたデータを、前記入出力ポートを介して出力する転送動作を行い、
前記ラッチ回路がラッチする前記メモリの出力に対応するメモリセルのアドレス位置を変化させて、前記スキャン・ラッチ動作および前記転送動作を繰り返し、全メモリセルの出力を外部に出力することを特徴とする集積回路。
【請求項2】
前記集積回路は、前記入出力ポートを介して外部と通信すると共に前記メモリにアクセスする他の回路を備え、前記メモリは前記他の回路を介してのみアクセス可能であることを特徴とする請求項1に記載の集積回路。
【請求項3】
前記メモリ試験回路は、前記第1クロックから前記ラッチ信号を発生するカウンタを備えることを特徴とする請求項1または2に記載の集積回路。
【請求項4】
前記カウンタは、リニアフィードバックシフトレジスタであることを特徴とする請求項3に記載の集積回路。
【請求項5】
前記メモリ試験回路は、前記第1クロックより低速のテストクロックから前記第1クロックを発生するPLL回路をさらに備えることを特徴とする請求項1または2に記載の集積回路。
【請求項6】
外部から直接アクセスできないメモリを有する集積回路の前記メモリを試験する試験方法であって、
アクセスする前記メモリのアドレスを第1クロックに応じて全アドレスをアクセスするように変化させ、
アクセスした前記メモリの出力を、前記第1クロックの整数倍の周期を有するラッチ信号に応じてラッチするスキャン・ラッチ動作を行い、
前記ラッチ信号の1周期中に、前記ラッチしたデータを、入出力ポートを介して出力する転送動作を行い、
ラッチする前記メモリの出力に対応するメモリセルのアドレス位置を変化させて、前記スキャン・ラッチ動作および前記転送動作を繰り返し、全メモリセルの出力を外部に出力することを特徴とする試験方法。
【請求項7】
前記集積回路は、前記メモリのほかに、前記入出力ポートを介して外部と通信すると共に前記メモリにアクセスする他の回路を備え、前記メモリは前記他の回路を介してのみアクセス可能であることを特徴とする請求項6に記載の試験方法。
【請求項8】
前記ラッチ信号は、前記第1クロックを分周して発生することを特徴とする請求項6または7に記載の試験方法。
【請求項9】
前記第1クロックより低速のテストクロックが外部から供給され、前記テストクロックから前記第1クロックを発生することを特徴とする請求項6または7に記載の試験方法。
【請求項10】
前記メモリに書き込んだ書込データと、前記書込データに対応する前記メモリの出力を比較することを特徴とする請求項6乃至9のいずれか1項に記載の試験方法。
【請求項1】
メモリと、
前記メモリを試験するメモリ試験回路と、
入出力ポートと
を備え、
前記メモリ試験回路は、
前記メモリの出力をラッチするラッチ回路を備え、
アクセスする前記メモリのアドレスを、第1クロックに応じて全アドレスをアクセスするように変化させた時の前記メモリの出力を、前記第1クロックの整数倍の周期を有するラッチ信号に応じてラッチするように前記ラッチ回路を動作させるスキャン・ラッチ動作を行い、
前記ラッチ信号の1周期中に、前記ラッチ回路のラッチしたデータを、前記入出力ポートを介して出力する転送動作を行い、
前記ラッチ回路がラッチする前記メモリの出力に対応するメモリセルのアドレス位置を変化させて、前記スキャン・ラッチ動作および前記転送動作を繰り返し、全メモリセルの出力を外部に出力することを特徴とする集積回路。
【請求項2】
前記集積回路は、前記入出力ポートを介して外部と通信すると共に前記メモリにアクセスする他の回路を備え、前記メモリは前記他の回路を介してのみアクセス可能であることを特徴とする請求項1に記載の集積回路。
【請求項3】
前記メモリ試験回路は、前記第1クロックから前記ラッチ信号を発生するカウンタを備えることを特徴とする請求項1または2に記載の集積回路。
【請求項4】
前記カウンタは、リニアフィードバックシフトレジスタであることを特徴とする請求項3に記載の集積回路。
【請求項5】
前記メモリ試験回路は、前記第1クロックより低速のテストクロックから前記第1クロックを発生するPLL回路をさらに備えることを特徴とする請求項1または2に記載の集積回路。
【請求項6】
外部から直接アクセスできないメモリを有する集積回路の前記メモリを試験する試験方法であって、
アクセスする前記メモリのアドレスを第1クロックに応じて全アドレスをアクセスするように変化させ、
アクセスした前記メモリの出力を、前記第1クロックの整数倍の周期を有するラッチ信号に応じてラッチするスキャン・ラッチ動作を行い、
前記ラッチ信号の1周期中に、前記ラッチしたデータを、入出力ポートを介して出力する転送動作を行い、
ラッチする前記メモリの出力に対応するメモリセルのアドレス位置を変化させて、前記スキャン・ラッチ動作および前記転送動作を繰り返し、全メモリセルの出力を外部に出力することを特徴とする試験方法。
【請求項7】
前記集積回路は、前記メモリのほかに、前記入出力ポートを介して外部と通信すると共に前記メモリにアクセスする他の回路を備え、前記メモリは前記他の回路を介してのみアクセス可能であることを特徴とする請求項6に記載の試験方法。
【請求項8】
前記ラッチ信号は、前記第1クロックを分周して発生することを特徴とする請求項6または7に記載の試験方法。
【請求項9】
前記第1クロックより低速のテストクロックが外部から供給され、前記テストクロックから前記第1クロックを発生することを特徴とする請求項6または7に記載の試験方法。
【請求項10】
前記メモリに書き込んだ書込データと、前記書込データに対応する前記メモリの出力を比較することを特徴とする請求項6乃至9のいずれか1項に記載の試験方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−40085(P2010−40085A)
【公開日】平成22年2月18日(2010.2.18)
【国際特許分類】
【出願番号】特願2008−200094(P2008−200094)
【出願日】平成20年8月1日(2008.8.1)
【出願人】(308014341)富士通マイクロエレクトロニクス株式会社 (2,507)
【Fターム(参考)】
【公開日】平成22年2月18日(2010.2.18)
【国際特許分類】
【出願日】平成20年8月1日(2008.8.1)
【出願人】(308014341)富士通マイクロエレクトロニクス株式会社 (2,507)
【Fターム(参考)】
[ Back to top ]