(57)【要約】【課題】  メモリのインタフェースの検査を実動作経路を用いて行う。【解決手段】  検査前にメモリ１０１の値を初期化する工程ＳＴ２０１を設けて、メモリ１０１の値を確定させた後に、メモリ１０１をアクセスする論理回路１０２，１０３に対して、擬似ランダムパタン発生回路１０５からランダムパタンを印加する。印加されたランダムパタンに応じて論理回路１０２，１０３が動作し、その結果メモリ１０１へのアクセスが行われ、メモリ１０１から出力された値を通常動作と同じ経路で論理回路１０３に取り込む。ランダムパタンのテスト入力と、メモリ１０１からの出力を論理回路１０３のテスト入力とし、その出力応答を圧縮回路１０６に取り込んで期待値と比較することで、不良があったかどうかを判断する。【選択図】  図１
2005235368.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶素子と第２の記憶素子との間に設けられたメモリ回路を有する半導体集積回路を検査する方法であって、
前記メモリ回路を初期化するステップ（ａ）と、
前記第１の記憶素子にテストパタンを与えるステップ（ｂ）と、
前記第１の記憶素子に与えられたテストパタンに応じたメモリアクセス信号を通常動作で使用する経路を使って前記メモリ回路に与えるステップ（ｃ）と、
前記メモリアクセス信号に応答して前記メモリ回路から出力された値を通常動作で使用する経路を使って前記第２の記憶素子に取り込むステップ（ｄ）と、
前記第２の記憶素子に取り込まれた値と期待値とを比較するステップ（ｅ）とを備える、
ことを特徴とする検査方法。
【請求項２】
請求項１において、
前記半導体集積回路は、擬似ランダムパタン発生回路と圧縮回路とをさらに備え、
前記ステップ（ｂ）では、
前記擬似ランダムパタン発生回路からのランダムパタンを前記テストパタンとして前記第１の記憶素子に与え、
前記ステップ（ｅ）では、
前記第２の記憶素子に取り込まれた値を前記圧縮回路で圧縮し、当該圧縮の結果得られた信号と前記期待値とを比較する、
ことを特徴とする検査方法。
【請求項３】
請求項１において、
前記第１および第２の記憶素子はスキャン可能な記憶素子であり、
前記ステップ（ｂ）では、
前記第１の記憶素子にテストパタンをシフト動作により与え、
前記ステップ（ｅ）では、
前記第２の記憶素子に取り込まれた値をシフト動作により読み出し、読み出した値と前記期待値と比較する、
ことを特徴とする検査方法。
【請求項４】
請求項２において、
前記メモリ回路は、
書き込みポートと読み出しポートを個別に持つマルチポートメモリであり、
前記半導体集積回路は、
前記第１の記憶素子と前記メモリ回路との間に設けられ、テスト時に、前記メモリ回路の書き込みポートと読み出しポートの同一のアドレスに同時に書き込みおよび読み出しを行わないようにするアドレス変換回路をさらに備える、
ことを特徴とする検査方法。
【請求項５】
請求項１において、
前記半導体集積回路は、
前記第１の記憶素子と前記メモリ回路との間に設けられ、前記ステップ（ｃ）〜（ｄ）において行われる前記メモリ回路へのアクセスを所定の領域に限定するアドレス変換回路をさらに備え、
前記ステップ（ａ）では、
前記メモリ回路の領域のうち前記アドレス変換回路によって限定された領域を初期化する、
ことを特徴とする検査方法。
【請求項６】
請求項１において、
前記ステップ（ｂ）において、
前記メモリ回路への書き込みを行うパタンを前記テストパタンとして前記第１の記憶素子に与える、
ことを特徴とする検査方法。
【請求項７】
請求項１において、
前記半導体集積回路は、
前記第１の記憶素子と前記メモリ回路との間に設けられ、前記ステップ（ｂ）〜（ｅ）において前記メモリ回路への書き込みを禁止する書き込み禁止回路をさらに備える、
ことを特徴とする検査方法。
【請求項８】
請求項１において、
前記ステップ（ａ）における前記メモリ回路の初期化をメモリテストにおいて行う、
ことを特徴とする検査方法。
【請求項９】
請求項１において、
前記ステップ（ａ）は、
メモリテストを行うステップ（ａ１）と、
前記メモリ回路の一部の領域の値を設定するステップ（ａ２）とを含む、
ことを特徴とする検査方法。
【請求項１０】
請求項８または９において、
前記半導体集積回路は、前記メモリ回路を検査するためのメモリＢＩＳＴ回路をさらに備え、
前記メモリテストは、前記メモリＢＩＳＴ回路を用いて行われる、
ことを特徴とする検査方法。
【請求項１１】
請求項１において、
前記メモリ回路は不揮発性領域を有しており、
前記ステップ（ａ）では、
前記不揮発性領域に初期値を格納する、
ことを特徴とする検査方法。
【請求項１２】
請求項１において、
前記ステップ（ａ）では、
前記メモリ回路を初期化する値として、
前記メモリ回路のデータ出力端子を始点に含み、前記メモリ回路のデータ出力端子から出力される信号が到達可能な記憶素子を終点とする組合せ回路に対して作成した検査系列の前記データ出力端子に割り当てられた検査系列を用いる、
ことを特徴とする検査方法。
【請求項１３】
請求項１において、
前記ステップ（ｂ）〜（ｅ）において行われる行程を前記半導体集積回路の実動作速度で行う、
ことを特徴とする検査方法。
【請求項１４】
請求項７において、
前記メモリ回路を組合せ順序回路にモデル化するステップ（ｆ）と、
前記モデル化されたメモリ回路を用いてテストパタンを生成するステップ（ｇ）とをさらに備え、
前記ステップ（ｂ）では、
前記ステップ（ｇ）において生成されたテストパタンを前記第１の記憶素子に与える、
ことを特徴とする検査方法。
【請求項１５】
請求項１において、
前記メモリ回路を組合せ順序回路にモデル化するステップ（ｆ）と、
前記メモリ回路への書き込みを含まないテストパタンを前記モデル化されたメモリ回路を用いて生成するステップ（ｇ）とをさらに備え、
前記ステップ（ｂ）では、
前記ステップ（ｇ）において生成されたテストパタンを前記第１の記憶素子に与える、
ことを特徴とする検査方法。
【請求項１６】
請求項１４または１５において、
前記ステップ（ｆ）では、
前記メモリ回路は組合せ回路にモデル化される、
ことを特徴とする検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリのインタフェース（入力端子・出力端子）の実動作検査を行う方法に関する。
【背景技術】
【０００２】
メモリと論理回路を含む半導体集積回路の動作検査は、通常、論理回路に対する検査とメモリの検査との２つから構成される。論理回路に対する検査としては論理BISTやスキャンテストが代表的なものであり、メモリに対する検査としてはメモリBISTやテスタによるメモリテストが代表的なものである。論理回路に対する検査では配線やトランジスタの故障を検証するのに対して、メモリに対する検査では、論理回路と同様のテストに加え、隣り合うメモリセル同士の保持値の関係や読み出し／書き込みの順序に関するテストが行われる。
【０００３】
＜メモリBISTを用いたメモリのインタフェース検査＞
メモリの実速度検査を行う方法の１つとしてメモリBISTがある（メモリBISTを用いた手法については、非特許文献１,Figure12.3に記載）。
【０００４】
図１２（ａ）は、メモリ、メモリにアクセスする論理回路およびこれらのメモリをテストするための組み込み自己テスト回路から構成される半導体集積回路例である。図１２（ａ）において、論理回路１２０２は、通常動作モードにおいてメモリ１２０１へデータの書き込みを行う。また、論理回路１２０３は、通常動作モードにおいてメモリ１２０１からの出力データを取り込む。組み込み自己テスト回路(メモリBIST)１２０７は、メモリ１２０１に対して特定のパタンを発生し、メモリ１２０１からの読み出しデータと期待値を比較してメモリ１２０１の良否判定を行う。セレクタ１２０９は、論理回路１２０２からの信号１２１１またはメモリBIST１２０７からの信号１２１５を選択的にメモリ１２０１に入力する。メモリ１２０１のテストを行う際には、メモリBIST１２０７からの信号１２１５がセレクタ１２０９によって選択され、メモリBIST１２０７からメモリ１２０１に対して特定のパタンが印加される。印加されたパタンに対するメモリ１２０１の出力応答１２１３は、論理回路１２０３へ取り込まれるとともに、出力応答１２１３が分岐した信号線１２１４を通ってメモリBIST１２０７に取り込まれ、メモリBIST１２０７内で期待値と比較することで、メモリ１２０１に不良があったかどうかを判定する。
【０００５】
このように、メモリBIST１２０７を用いたメモリ１２０１のテストにおいては、メモリ１２０１へのテストパタン入力に際しては、通常動作でメモリ１２０１をアクセスする経路に対してセレクタ１２０９を挿入することによりメモリBIST１２０７からの別経路を設けてメモリ１２０１へパタンが印加されている。また、メモリ１２０１からの出力は、通常動作でメモリ１２０１の出力を取り込む論理回路１２０３への経路と、該経路とは別に、メモリ１２０１の出力を分岐してメモリBIST１２０７内に取り込まれる経路が存在し、通常動作状態での経路とは別の経路を用いて期待値の比較が行われている。
【０００６】
図１２（ｂ）は、メモリを含む半導体集積回路に対して擬似ランダムパタン発生回路(PRPG)および圧縮回路(MISR)を用いて組み込み自己テストを行う回路例である（メモリをバイパスする手法については、非特許文献１,Figure12.6に記載）。
【０００７】
圧縮回路を用いたテストでは、印加されたテストパタンに対する出力応答を圧縮回路に取り込み、圧縮回路に最終的に残った値と予め算出した値とを比較することで、テスト対象回路の故障の有無を判断する。圧縮回路へ不定値（Ｘ）が入力されると圧縮回路内の値が壊されてしまうため、テスト対象回路から圧縮回路へ不定値が伝播しないようにテスト回路設計をしなければならない。
【０００８】
図１２（ｂ）では、擬似ランダムパタン発生回路１２０５からのランダムパタンが信号線１２２６を介して論理回路１２０２に印加される。論理回路１２０２はランダムパタンに対する応答として、信号線１２２１を介して、メモリ１２０１へ書き込みまたは読み出し動作を行うとともに、信号線１２２８を介して圧縮回路１２０６に出力値が取り込まれる。また、論理回路１２０２に入力されたランダムパタンに対する出力応答によってメモリ１２０１からデータが出力されるが、テスト時にはメモリ１２０１の出力値が確定していないので不定値が出力される。圧縮回路１２０６へ不定値が取り込まれないようにするために、メモリ１２０１の出力側にセレクタ１２１０を配置し、モード信号によって、メモリ１２０１への入力信号１２２１をバイパスした信号を選択し、論理回路１２０３に確定した値を入力させる。また、バイパスした信号線１２２５にフリップフロップ１２０８を挿入することで、バイパスした信号の可観測性および論理回路１２０３に対する可制御性を高めて、故障検出率を向上させる。論理回路１２０３は、擬似ランダムパタン発生回路１２０５からの入力と、メモリ１２０１をバイパスした信号１２２３を入力として、その出力応答が信号線１２２９を通って圧縮回路１２０６に取り込まれる。
【０００９】
このようにメモリ１２０１を含む半導体集積回路に対して圧縮回路１２０６を用いてテストを行う場合には、メモリ１２０１から出力される不定値が圧縮回路１２０６に取り込まれないようにするために、メモリ１２０１の出力側にセレクタ１２１０を配置して、メモリ１２０１への入力をバイパスした値が選択されるようにして、テストを行っている。
【００１０】
＜スキャンテストを用いたメモリのインタフェース検査＞
メモリのインタフェースの実速度検査を行うもう一つの方法として、論理回路に対するテストであるスキャンテストによる検査手法がある（スキャンテストを用いた手法については、非特許文献２に記載）。
【００１１】
図１３は、メモリ、メモリにアクセスする論理回路から構成される半導体集積回路である。図１３において、記憶素子１３０１は、通常動作モードにおいて組合せ回路１３０２を介してメモリ１３０３へ書き込みを行う。また、記憶素子１３０４は、通常動作モードにおいて、組合せ回路１３０５を介して、メモリ１３０３の出力データを取り込む。記憶素子１３０１および記憶素子１３０４は、クロックCKのエッジ毎に、端子SEの値が「０」の時には端子Dの値を取り込むと同時に端子Qへ取り込んだ値を出力し、端子SEの値が「１」の時には端子SIの値を取り込むと同時に端子SOへ取り込んだ値を出力する。テスタは端子SEの値を「１」にすると共に、端子SIからクロック毎に値を順次送り込むスキャンシフト動作によって、記憶素子１３０１および記憶素子１３０４に値を設定するとともに、記憶素子１３０１および記憶素子１３０４の値を端子SOから順次読み出し期待値と比較することによって、メモリインタフェースの検査を行う。
【００１２】
メモリの様なシフト動作が出来ない記憶素子を含む場合、メモリの値はシフト動作によって直接値を設定することが出来ないため、シフト動作可能な記憶素子に対してシフト動作で値を設定した後、通常動作によってメモリに取り込ませるという様に、間接的に値を設定する必要がある。これには、全てスキャン記憶素子で構成された回路に対するフルスキャンテスト技術より高度なパーシャルスキャンテスト技術が必要であり、テストパタンが増加する傾向がある。
【非特許文献１】「A Designer's Guide to Built-in Self-Test」by Chrles E.Stroud,        Kluwer Academic Publishers, ISBN 1-4020-7050-0      12.2 章 RAM BIST Architectures, Figure 12.3      12.4 章 Bypassing Regular Structures During BIST, Figure 12.6
【非特許文献２】「FASTSCAN AND THE ATPG PROCUCT FAMILY DATASHEET」by MentorGraphics,      http://www.mentor.com/dft/fastscan#ds.pdf
【発明の開示】
【発明が解決しようとする課題】
【００１３】
メモリの入力および出力の実動作検査に関して、メモリBISTを用いた場合には、通常経路とは異なるメモリBIST用の経路からテストパタンがメモリに印加される。また、メモリの出力信号は、メモリの出力信号を使用する論理回路への入力が分岐されて、メモリBIST回路中の期待値比較回路でメモリ内に不良があったかどうか判断する。そのため、メモリBIST実施時には、メモリへのテストパタンの印加およびメモリからの出力信号の取り込みが、通常動作時とは異なる経路を通って行われ、実動作と同じ経路を用いてメモリの入力および出力の実動作検査ができない。
【００１４】
これを解決するために、メモリBIST等のメモリテストによるメモリデバイスの動作検証に加えて、通常動作でのテストパタンを作成することによって実動作経路の検証を行う場合があるが、この場合、通常動作テストパタンの作成は人手で行うため半導体集積回路の設計工数が増加してしまうという課題がある。更にはメモリと記憶素子の間に存在する組合せ回路が複雑になると現実的には通常動作テストパタン設計が困難になってくる。また、論理BISTやスキャンテストによる検証と通常動作テストパタンによる検証は別EDAツールで行うため、検査完成度の指標である故障検出率を算出する作業が煩雑になってしまうという問題もある。
【００１５】
また、圧縮回路を用いて、メモリを含む半導体集積回路をテストする場合には、圧縮回路に不定値が取り込まれないようにするために、メモリの出力側にセレクタを配置して、テスト時にはメモリをバイパスした値の確定した信号が選択されるようにしている。そのため、テスト時には、メモリからの出力信号が使用されず、また、通常論理からメモリへ書き込まれた信号もメモリ出力から読み出されない。従って、メモリへの書き込み動作およびメモリからの読み出し動作が正しく行われているかどうかをテストできない。
【００１６】
一方、スキャンテストによるメモリインタフェースの検査手法では、実動作検査ができない問題、実動作テストパタン作成の問題、故障検出率算出の煩雑さの問題は解決できるが、実動作ならば１サイクルで設定できるメモリの値の設定が、シフト動作によって論理回路内のメモリへのアドレスや書き込み信号に対応する記憶素子を設定してから初めて行うパーシャルスキャンテスト手法を取るため、例えば256Kbyte/32bitワードのメモリのもつアドレス信号は16bitであるから、シフト動作だけでも１６サイクル以上が必要となり、１６倍以上の長い検査時間が必要になるという課題がある。論理BIST時にはバイパス回路を用意しない場合には全てのメモリ領域を初期化する必要があり、現実的には使えないという問題もある。
【００１７】
本発明の目的は、メモリの入力および出力信号の実動作検査を可能とする検査方法を提供することである。
【課題を解決するための手段】
【００１８】
本発明による検査方法は、第１の記憶素子と第２の記憶素子との間に設けられたメモリ回路を有する半導体集積回路を検査する方法であって、前記メモリ回路を初期化するステップ（ａ）と、前記第１の記憶素子にテストパタンを与えるステップ（ｂ）と、前記第１の記憶素子に与えられたテストパタンに応じたメモリアクセス信号を通常動作で使用する経路を使って前記メモリ回路に与えるステップ（ｃ）と、前記メモリアクセス信号に応答して前記メモリ回路から出力された値を通常動作で使用する経路を使って前記第２の記憶素子に取り込むステップ（ｄ）と、前記第２の記憶素子に取り込まれた値と期待値とを比較するステップ（ｅ）とを備える、ことを特徴とする。
【００１９】
上記検査方法において、前記半導体集積回路は、擬似ランダムパタン発生回路と圧縮回路とをさらに備え、前記ステップ（ｂ）では、前記擬似ランダムパタン発生回路からのランダムパタンを前記テストパタンとして前記第１の記憶素子に与え、前記ステップ（ｅ）では、前記第２の記憶素子に取り込まれた値を前記圧縮回路で圧縮し、当該圧縮の結果得られた信号と前記期待値とを比較する、ことが好ましい。
【００２０】
上記検査方法において、前記第１および第２の記憶素子はスキャン可能な記憶素子であり、前記ステップ（ｂ）では、前記第１の記憶素子にテストパタンをシフト動作により与え、前記ステップ（ｅ）では、前記第２の記憶素子に取り込まれた値をシフト動作により読み出し、読み出した値と前記期待値と比較する、ことが好ましい。
【００２１】
上記検査方法において、前記メモリ回路は、書き込みポートと読み出しポートを個別に持つマルチポートメモリであり、前記半導体集積回路は、前記第１の記憶素子と前記メモリ回路との間に設けられ、テスト時に、前記メモリ回路の書き込みポートと読み出しポートの同一のアドレスに同時に書き込みおよび読み出しを行わないようにするアドレス変換回路をさらに備える、ことが好ましい。
【００２２】
上記検査方法において、前記半導体集積回路は、前記第１の記憶素子と前記メモリ回路との間に設けられ、前記ステップ（ｃ）〜（ｄ）において行われる前記メモリ回路へのアクセスを所定の領域に限定するアドレス変換回路をさらに備え、前記ステップ（ａ）では、前記メモリ回路の領域のうち前記アドレス変換回路によって限定された領域を初期化する、ことが好ましい。
【００２３】
上記検査方法において、前記ステップ（ｂ）において、前記メモリ回路への書き込みを行うパタンを前記テストパタンとして前記第１の記憶素子に与える、ことが好ましい。
【００２４】
上記検査方法において、前記半導体集積回路は、前記第１の記憶素子と前記メモリ回路との間に設けられ、前記ステップ（ｂ）〜（ｅ）において前記メモリ回路への書き込みを禁止する書き込み禁止回路をさらに備える、ことが好ましい。
【００２５】
上記検査方法において、前記ステップ（ａ）における前記メモリ回路の初期化をメモリテストにおいて行う、ことが好ましい。
【００２６】
上記検査方法において、前記ステップ（ａ）は、メモリテストを行うステップ（ａ１）と、前記メモリ回路の一部の領域の値を設定するステップ（ａ２）とを含む、ことが好ましい。
【００２７】
上記検査方法において、前記半導体集積回路は、前記メモリ回路を検査するためのメモリＢＩＳＴ回路をさらに備え、前記メモリテストは、前記メモリＢＩＳＴ回路を用いて行われる、ことが好ましい。
【００２８】
上記検査方法において、前記メモリ回路は不揮発性領域を有しており、前記ステップ（ａ）では、前記不揮発性領域に初期値を格納する、ことが好ましい。
【００２９】
上記検査方法において、前記ステップ（ａ）では、前記メモリ回路を初期化する値として、前記メモリ回路のデータ出力端子を始点に含み、前記メモリ回路のデータ出力端子から出力される信号が到達可能な記憶素子を終点とする組合せ回路に対して作成した検査系列の前記データ出力端子に割り当てられた検査系列を用いる、ことが好ましい。
【００３０】
上記検査方法において、前記ステップ（ｂ）〜（ｅ）において行われる行程を前記半導体集積回路の実動作速度で行う、ことが好ましい。
【００３１】
上記検査方法において、前記メモリ回路を組合せ順序回路にモデル化するステップ（ｆ）と、前記モデル化されたメモリ回路を用いてテストパタンを生成するステップ（ｇ）とをさらに備え、前記ステップ（ｂ）では、前記ステップ（ｇ）において生成されたテストパタンを前記第１の記憶素子に与える、ことが好ましい。
【００３２】
上記検査方法において、前記メモリ回路を組合せ順序回路にモデル化するステップ（ｆ）と、前記メモリ回路への書き込みを含まないテストパタンを前記モデル化されたメモリ回路を用いて生成するステップ（ｇ）とをさらに備え、前記ステップ（ｂ）では、前記ステップ（ｇ）において生成されたテストパタンを前記第１の記憶素子に与える、ことが好ましい。
【００３３】
上記検査方法において、前記ステップ（ｆ）では、前記メモリ回路は組合せ回路にモデル化される、ことが好ましい。
【発明の効果】
【００３４】
本発明の検査方法では、メモリ回路を初期化する工程を設けてメモリ回路を初期化しておくため、その後のテスト行程においてメモリ回路からの読み出し動作で不定値が出力されないようになる。これにより、メモリ回路の出力値を通常動作で使用する経路を使って取り込み、取り込んだ値と期待値とを比較することにより、メモリ回路の出力とその値を受け取る通常論理（第２の記憶素子を含む）間の実動作速度テストを行うことが可能となる。メモリ回路への書き込みを行わない状態でもメモリ回路の読み出しによって、メモリ回路前後の論理回路（第１の記憶素子および／または第２の記憶素子を含む）の検査が可能となる。
【００３５】
また、マルチポートメモリに対しても、テスト時に、マルチポートメモリの書き込みポートと読み出しポートの同一のアドレスに同時に書き込みおよび読み出しを行わないようにするアドレス変換回路を追加することによって、同様な効果が期待できる。
【００３６】
また、ランダムパタンによって論理回路（第１の記憶素子を含む）に入力されたテストパタンに応じて、論理回路（第１の記憶素子を含む）からメモリ回路に値を書き込み、書き込まれた値を読み出して、メモリ回路から読み出された値を論理回路（第２の記憶素子を含む）で取り込むことで、通常動作で使用する経路を使ってメモリ回路への書き込みおよびメモリ回路からの読み出しを実動作速度でテストを行うことが可能となる。
【００３７】
また、メモリ回路の初期化工程を設けてメモリ回路を初期化しておくことで、メモリ回路の前後に接続した論理回路（第１の記憶素子および／または第２の記憶素子を含む）を検査する値をスキャンテストによってメモリ回路に設定する必要が無くなり、検査時間の短縮を図ることが可能になる。
【００３８】
また、メモリ回路を初期化する範囲を限定することで、メモリ回路の設定を省略することができ、検査時間の短縮を図ることが可能になると同時に、ＢＩＳＴテストやスキャンテスト時におけるアクセスを初期化した領域のみに限定する回路を追加することにより、検査系列の生成時の制限がなくなり、検査系列の生成が容易になる。
【００３９】
また、ＢＩＳＴテストやスキャンテスト時にメモリへの書き込みを行うパタンを印加することにより、ＢＩＳＴテストやスキャンテスト前にメモリ回路に設定した値にかかわらず、メモリ回路の前後に接続した論理回路（第１の記憶素子および／または第２の記憶素子を含む）を検査する値をメモリ回路に設定し、検査を行うことが可能となる。
【００４０】
また、メモリ回路の初期化をメモリテストで行うことにより、メモリ回路の設定を省略することができ、検査時間の短縮を図ることが可能になる。
【００４１】
また、メモリテストで設定したメモリ回路の値に加えて、メモリ回路の前後に接続した論理回路の検査ができる量だけ適切にメモリ回路を初期化することにより、メモリ回路の設定による検査時間の短縮が可能になると同時に、メモリ回路の前後に接続した論理回路の検査を、メモリ回路への書き込みなしに行うことが可能になる。
【００４２】
また、ＲＡＭやＲＯＭなどの不揮発領域にメモリ回路の初期値を格納することにより、メモリ設定の為の検査時間が不要となり、同時に、ＲＯＭなどの不揮発性メモリにおいてもメモリ回路の前後に接続した論理回路の検査が可能になる。
【００４３】
また、テストパタン生成ツールでメモリ回路の初期値を決定することにより、メモリ回路の前後に接続した論理回路が複雑になった場合でも容易に縮退故障や遅延故障などの検査の目的に合わせたメモリ回路の設定値を決定することが可能になる。
【００４４】
また、テストを実動作周波数で実行することにより、メモリインタフェースの実動作速度でのテストが可能になる。
【００４５】
本発明の検査方法では、ＢＩＳＴテストあるいはスキャンテスト前にメモリ回路が初期化されており、ＢＩＳＴテストあるいはスキャンテスト時に書き込みを行わない半導体集積回路に対して、メモリ回路を組合せ順序回路にモデル化することにより、メモリ回路の論理が単純化され、テストパタン生成に必要な時間を短縮することが可能になる。
【００４６】
また、テストパタン生成において書き込み動作パタンの生成を禁止することにより、ＢＩＳＴテストあるいはスキャンテスト時にメモリの書き込みを禁止する書込み禁止回路を実装する必要がなくなり、半導体集積回路のコストダウンを図ることが可能となる。
【００４７】
また、メモリ回路の前後の論理回路に印加するクロックに対して、メモリ回路に印加するクロックが遅延クロックである場合には、メモリ回路は、組み合わせ回路にモデル化することが可能となり、従来のフルスキャンテスト技術でテストパタンを生成することが可能となり、また、最新のスキャンテストツールにおいても、テストパタン生成に必要な時間を短縮することが可能になる。
【発明を実施するための最良の形態】
【００４８】
以下、本発明の実施の形態を図面を参照して詳しく説明する。なお、図面において同一の部分または相当する部分には同じ参照符号を付してその説明は繰り返さない。
【００４９】
（第１の実施形態）
図１は本発明の第１の実施の形態における半導体集積回路例である。第１の実施形態では、図１に示した半導体集積回路に含まれているメモリ１０１のインタフェース（入力および出力）の実速度検査について説明する。メモリ１０１は、論理回路１０２から制御され、メモリ１０１の出力が論理回路１０３に取り込まれる。論理回路１０２および１０３はスキャンテスト設計が行われていて、内部にスキャンフリップフロップと組合せ回路部を有し、スキャンフリップフロップはスキャンチェーンを形成し、スキャンイン端子ＳＩ、スキャンアウト端子ＳＯ、Scan Enable端子ＳＥを持つ。擬似ランダムパタン発生回路１０５は、論理回路１０２および論理回路１０３のSI端子に擬似ランダムパタンを印加する。圧縮回路１０６は、擬似ランダムパタンに対する論理回路１０２および論理回路１０３の出力応答をSO端子から取り込み、その値を圧縮してシグネチャを生成する。制御回路１０４は論理回路１０２および論理回路１０３を制御する。
【００５０】
クロック信号ＣＫは、メモリ１０１およびその他のブロックのクロック信号である。Scan Enable信号ＳＥは、制御回路１０４から論理回路１０２および１０３に印加され、Scan Enable信号ＳＥの値が「１」の時にシフト動作が行われ、「０」の時にキャプチャ動作が行われる。
【００５１】
メモリ１０１のアドレス信号ＡＤ、Write Enable信号ＷＥ、データ入力信号ＤＩは、擬似ランダムパタン発生回路１０５で生成されたパタンが論理回路１０２に入力され、その結果として論理回路１０２からメモリ１０１に対して印加される信号である。Write Enable信号ＷＥが「０」の時にはメモリ１０１にデータの書き込みが行われ、「１」の時にはメモリ１０１からデータの読み出しが行われる。メモリ１０１のデータ出力信号ＤＯは、メモリ１０１に対して印加された信号に応じて読み出される値であり、読み出された値はキャプチャ動作時に論理回路１０３に取り込まれる。
【００５２】
擬似ランダムパタン発生回路１０５で生成された擬似ランダムパタンが論理回路１０２に印加され、擬似ランダムパタンに応答して論理回路１０２からメモリ１０１にアクセスされた結果としてメモリ１０１のデータ出力値が論理回路１０３に印加される。これらの入力に対する論理回路１０２，１０３の出力応答を圧縮回路１０６で圧縮して取り込みシグネチャを生成する。圧縮回路１０６に格納された値を、あらかじめ求められた期待値と比較することで、論理回路１０２、１０３およびメモリ１０１に故障があったかどうかを判断することができる。
【００５３】
図２は本発明の第１の実施の形態におけるメモリインタフェースの実動作検査方法のフローチャートである。
【００５４】
ステップＳＴ２０１では、図１のメモリ１０１を初期化する。この初期化は、論理回路１０２を動作させてメモリ１０１への書き込み動作を行うことで実現する。メモリ１０１の初期化が完了すると、ステップＳＴ２０２において、メモリ１０１を動作させながら論理ブロックのテストを行う。ステップＳＴ２０２での動作について、図３の波形図を例として説明する。
【００５５】
＜メモリ出力から通常論理への経路の実動作テスト＞
時刻ｔ０のクロックＣＫの立ち上がりで、擬似ランダムパタン発生回路１０５からのテストパタンに応じて論理回路１０２からメモリ１０１に対するアドレス信号ＡＤが生成される（図２のＡＤの斜線部）。時刻ｔ０で生成されたアドレス信号ＡＤは、時刻ｔ１のクロックＣＫの立ち上がりで、メモリ１０１に取り込まれる。この時のWrite Enable信号ＷＥの値が１なので、メモリ１０１からデータが読み出される（図２のＤＯの斜線部）。メモリ１０１はステップＳＴ２０１で既に初期化されているため、メモリ１０１のデータ出力信号ＤＯとして不定値が出力されることはなく、初期化によってメモリ１０１に書き込まれた確定した値がデータ出力信号ＤＯとして出力される。
【００５６】
時刻ｔ２におけるクロックＣＫの立ち上がりでは、Scan Enable信号ＳＥが０になっているため、メモリ１０１から読み出された値（図２のＤＯの斜線部）が、通常動作と同じ経路を通って、論理回路１０３に取り込まれる。取り込まれた値は、時刻ｔ３以降、Scan Enable信号ＳＥが１のシフト状態で、論理回路１０３のＳＯ端子を通して圧縮回路１０６に取り込まれる。
【００５７】
＜通常論理からメモリ入力への経路の実動作テスト＞
時刻ｔ３におけるクロックＣＫの立ち上がりで、擬似ランダムパタン発生回路１０５からのテストパタンに応じて論理回路１０２からメモリ１０１に対して信号が印加される。図３の例では、アドレス値「２Ｅ」、データ入力値「ＦＦＦＦ」およびWrite Enable信号値「０」が論理回路１０２からメモリ１０１に印加される。時刻ｔ４のクロックＣＫの立ち上がりで、Write Enable信号が「０」、アドレス値「２Ｅ」、データ入力値「ＦＦＦＦ」がメモリ１０１に取り込まれ、論理回路１０２からメモリ１０１に対して、通常動作と同じ経路を通って、アドレス「２Ｅ」に対して、データ値「ＦＦＦＦ」が書き込まれる。
【００５８】
それ以降も同様に、擬似ランダムパタン発生回路１０５からのテストパタンに応じて論理回路１０２からメモリ１０１に信号が印加され、メモリ１０１に印加される信号値に応じて、メモリ１０１へのデータの書き込み／メモリ１０１からのデータの読み出しが行われる。
【００５９】
擬似ランダムパタン発生回路１０５からのテストパタンに応じて論理回路１０２からメモリ１０１に時刻ｔ４で書き込みが行われたアドレス値「２Ｅ」が時刻ｔｎ−１において再び生成され、さらに時刻ｔｎでWrite Enable信号ＷＥが１の状態になることで、時刻ｔｎにおいて、時刻ｔ４でメモリ１０１に書き込まれた値「ＦＦＦＦ」が該当アドレスから出力される。この時Scan Enable信号ＳＥが１から０になると、次の時刻ｔｎ＋１で論理回路がキャプチャ動作となり、メモリ１０１から読み出された値「ＦＦＦＦ」が、通常動作と同じ経路を通って、論理回路１０３に取り込まれる。取り込まれた値は、時刻ｔｎ＋１以降、Scan Enable信号ＳＥが１のシフト状態で、論理回路１０３のＳＯ端子を通して圧縮回路１０６に取り込まれる。
【００６０】
＜論理回路部のテスト＞
また、論理回路１０２に対しては、擬似ランダムパタン発生回路１０５で生成されたランダムパタンがテスト入力として印加される。論理回路１０３に対しては、論理回路１０２に印加されたランダムパタンに対する応答として論理回路１０２からメモリ１０１へアクセスし、その結果メモリ１０１から読み出されて論理回路１０３に入力される信号と、擬似ランダムパタン発生回路１０５で生成されたランダムパタンとがテスト入力として印加される。これらのテスト入力に対する論理回路１０２，１０３の出力応答が圧縮回路１０６に取り込まれ圧縮される。この圧縮された値とあらかじめ求められた期待値とを比較することで論理回路１０２、１０３のテストも実施できる。
【００６１】
メモリ１０１を動作させて論理ブロックのテストが終了すると、ステップＳＴ２０３に移り、圧縮回路１０６の値を期待値と比較する。
【００６２】
上述のように第１の実施の形態では、メモリの初期化工程ＳＴ２０１を設けてメモリ１０１を初期化しておくため、メモリ１０１からの読み出し動作で不定値が出力されないようになる。これにより、メモリ１０１の出力値ＤＯを通常動作で使用する経路を使って取り込み、圧縮回路１０６を用いて、メモリ１０１の出力ＤＯとその値を受け取る通常論理間の実動作速度テストを行うことが可能となる。また、ランダムパタンによって論理回路１０２、１０３に入力されたテストパタンに応じて論理回路１０２からメモリ１０１に値を書き込み、書き込んだ値をメモリ１０１から読み出し、読み出した値を論理回路１０３で取り込むことで、通常動作で使用する経路を使ってメモリ１０１への書き込みおよびメモリ１０１からの読み出しを実動作速度でテストを行うことが可能となる。
【００６３】
なお、第１の実施の形態では、テストパタン発生に関して、擬似ランダムパタン生成回路１０５を用いたが、擬似ランダムパタン生成回路１０５を用いずに外部端子からのテストパタン入力であっても第１の実施の形態と同様の効果を得られる。
【００６４】
なお、第１の実施の形態では、ステップＳＴ２０１で、論理回路１０２を動作させてメモリ１０１への書き込みを行ってメモリ１０１を初期化したが、図４（ａ）に示すように、メモリ１０１をテストするためのメモリＢＩＳＴ部１０７が組み込まれた回路構成の場合には、ステップＳＴ２０１でメモリＢＩＳＴ部１０７を起動して、メモリBIST部１０７からセレクタ４１１、４１２、４１３を介してメモリ１０１に特定のパタンが入力され、その結果としてメモリ１０１を初期化した場合であっても第１の実施の形態と同様の効果を得られる。
【００６５】
また、メモリの初期化工程ＳＴ２０１を図４（ｂ）のように、メモリ１０１をIsolationし、外部端子４３１、４３２、４３３からセレクタ４１１、４１２、４１３を介してメモリ１０１に直接パタン入力をすることで、メモリ１０１の初期化を実施しても第１の実施の形態と同様の効果を得られる。
【００６６】
また、図５のようにデュアルポートメモリ５０１を含む半導体集積回路に対する場合には、テスト時に同一アドレスに対してＷｒｉｔｅ動作とＲｅａｄ動作が同時に起こらないように、Write AddressであるＡＤＷとRead AddressであるＡＤＲとが同一の値にならないようにアドレスを変換するアドレス変換回路５１０を設ける。これにより、デュアルポートメモリ５０１にアクセスする論理回路５０２からの信号に応答してデュアルポートメモリ５０１から不定値が出力されてしまうことを防ぎ、値が確定した出力ＤＯが論理回路５０３に取り込まれるため、第１の実施の形態と同様の効果を得られる。
【００６７】
（第２の実施形態）
図６は本発明の第２の実施の形態における半導体集積回路例である。第２の実施形態では、図６に示した半導体集積回路に含まれているメモリ１０１のインタフェース（入力および出力）の実速度検査について説明する。
【００６８】
図６においてメモリ１０１は、論理回路１０２から制御され、メモリ１０１の出力が組合せ回路６０１を介して論理回路１０３に取り込まれる。
【００６９】
クロック信号ＣＫは、メモリ１０１のクロック信号およびその他のブロックのクロック信号である。メモリ１０１のクロックは、論理回路１０２、１０３のクロックに対して遅延回路６０２により遅延されたクロックが注入されている。
【００７０】
ＳＥ端子６０３には外部からScan Enable信号ＳＥが印加される。ＳＥ端子６０３に印加されたScan Enable信号ＳＥは論理回路１０２，１０３に与えられる。Scan Enable信号ＳＥの値が「１」の時にはシフト動作により、シフトイン端子６０４およびシフトイン端子６０５に外部から論理回路１０２および論理回路１０３の設定値が注入されるとともにシフトアウト端子６０６およびシフトアウト端子６０７から論理回路１０２および論理回路１０３に格納された値が出力され、出力された値と期待値とが比較される。Scan Enable信号ＳＥの値が「０」の時にはキャプチャ動作により、論理回路１０２の値に従ってメモリ１０１が動作するとともに、読み込み時にはメモリ１０１の出力が組合せ回路６０１を介して論理回路１０３に取り込まれる。
【００７１】
スキャンテストモード端子６０８にはスキャンテストモード示す信号が印加される。書き込み禁止回路６０９はスキャンテストモード時に書き込みを禁止する回路である。スキャンテストモード端子６０８は通常動作時には「０」となりメモリ１０１への書き込みを許可し、スキャンテストモード時には「１」となりメモリ１０１への書き込みを禁止する。
【００７２】
メモリテストモード端子６１０にはメモリテストモードを示す信号が外部から印加される。メモリテストモード端子６１０に印加された信号はセレクタ４１１，４１２，４１３に与えられる。メモリテスト時やメモリ初期化時には、外部端子４３１，４３２，４３３からセレクタ４１１，４１２，４１３を介してメモリ１０１にメモリアクセス信号ＡＤ，ＷＥ，ＤＩを印加し、書き込み時にはメモリ１０１の値を設定すると共に、読み出し時には外部端子６１１から出力されるメモリ１０１の出力データを期待値と比較する。
【００７３】
メモリアクセス信号ＡＤ、ＷＥ、ＤＩは、それぞれメモリ１０１のアドレス信号ＡＤ、Write Enable信号ＷＥおよびデータ入力信号ＤＩである。Write Enable信号ＷＥが「１」の時にはメモリ１０１にデータの書き込みが行われ、Write Enable信号ＷＥが「０」の時にはメモリ１０１からデータの読み出しが行われる。本実施例ではアドレス信号ＡＤの幅は３ビットであり８ワードＸ32ビットのメモリとしている。
【００７４】
メモリ１０１のデータ出力信号ＤＯは、メモリ１０１に対して印加された信号に応じて読み出される値であり、読み出された値は、組合せ回路６０１を介して論理回路１０３にキャプチャ動作時に取り込まれる。
【００７５】
組合せ回路６０１は、ＤＩ端子に入力されたデータをＳＥＬ端子への入力６１２に従って修飾してＤＯ端子に出力する。具体的には、ＳＥＬ端子に入力される信号６１２の値が2'b00（２ビット幅の値で、２進数表記で００であることを示す）の時にはDI[31:0]を、2'b01の時には[DI[23:0],DI[31,24]]を、2'b10の時には[DI[15:0],DI[31,16]]を、2'b11の時には[DI[7:0],DI[31,8]]をＤＯ端子から出力するローテーター機能を有する。
【００７６】
図７は本発明の第２の実施の形態におけるメモリインタフェースの実動作検査方法のフローチャートである。
【００７７】
ＳＴ７０１はメモリのモデル化時に格納されているメモリの初期値を決めるステップである。ＳＴ７０２はメモリのモデル化を行うステップであり、図６のメモリ１０１を組合せ回路にモデル化する。ＳＴ７０３はモデル化したメモリと論理回路に対してスキャンテストパタンを生成するステップである。ＳＴ７０４はメモリテストを行うステップであり、メモリ１０１のメモリセルのテスト等を行う。ＳＴ７０５はメモリ初期化を行うステップであり、ＳＴ７０４とあわせて、ＳＴ７０１のメモリの初期値に対応する値の設定を行う。ＳＴ７０６はスキャンテストを行うステップであり、ＳＴ７０３で生成したスキャンテストパタンを実行しメモリインタフェースの検査を行う。
【００７８】
＜メモリの初期値を決めるステップＳＴ７０１＞
このステップＳＴ７０１は、ステップＳＴ７０４で行われるメモリテスト実行後のメモリ１０１の初期値を決定するステップと、ステップＳＴ７０５で行われるメモリ１０１に接続された組合せ回路６０１の検査が最適に行われるための設定値を決めるステップとで構成される。
【００７９】
通常のメモリテストでは、メモリテスト完了時には全領域が同じ値に設定されていることが多い。ここでは図８（a）に示すように、全領域が３２‘ｈ００００００００（３２ビット幅の値で、１６進数表記で００００００００であることを示す）に初期化されている。これをメモリテスト実行後のメモリ１０１の初期値とする。
【００８０】
次に、半導体集積回路の、メモリ１０１のデータ出力端子ＤＯから出力される信号が到達可能な論理回路１０３を終点とし、メモリ１０１のデータ出力端子ＤＯと組合せ回路６１０のセレクト信号ＳＥＬを始点とする、仮想的な組み合わせ回路６１３を定義し、組合せ回路６０１と論理回路１０３の検査が最適に行われるテストパタンを決定する。ここでは組合せ回路６０１をローテーター回路とし、バイト単位のデータの選択、全ビットの０／１の変化が検査できることを目的として、図８（ｂ）の４パタンをテストパタンとした。次に、メモリ１０１への入力信号の１/０の変化が検査できること、具体的にはアドレス信号ＡＤの各ビットの０／１の変化が検査できることを目的として、図８(ｃ)の様に、初期値のメモリ上の配置を決定する。これらのステップによって、検査の観点からのメモリの初期値は図８（ｃ）となる。なお、図中のデータ値が"-"の領域は、検査の観点からはどの値でも構わないことを示しており、この領域はメモリテストの初期値を流用することでメモリ初期化に要する時間を削減することができる。特に大容量メモリの場合には、検査の観点からのメモリの初期化領域はメモリ容量より少ないため効果が大きい。
【００８１】
最終的にステップＳＴ７０１により、メモリの初期値は図８（ｄ）となる。
【００８２】
＜メモリのモデル化を行うステップＳＴ７０２＞
図６の半導体集積回路の例においては、メモリ１０１へ印加されるクロックは、論理回路１０２や論理回路１０３へ印加されるクロックに対して、遅延回路６０２によって遅延しているため、クロックのエッジで考えた場合、メモリ１０１はクロック端子が動作に影響しないとしてモデル化することができる。また、スキャンテスト時にメモリ１０１に対して書き込みを行わない場合には、端子ＷＥ，端子ＤＩも動作に影響しないとしてモデル化することができる。最終的に、メモリ１０１は、図９に示すように、端子ＡＤに対して端子ＤＯからデータを出力する組合せ回路にモデル化することができる。
【００８３】
＜モデル化したメモリを用いスキャンテストパタンを生成するステップＳＴ７０３＞
図６の半導体集積回路に対して、図６のメモリ１０１を図９のメモリ１０１に置き換えてスキャンテストパタンを生成する。この時、メモリ１０１以外の回路がフルスキャンテスト設計であれば、モデル化した半導体集積回路もフルスキャンテスト設計となり、従来のスキャンテストツールでパタン生成が可能であり、パーシャルスキャンテスト対応ツールを使った場合においてもテストパタン生成時間を短縮することができる。
【００８４】
＜メモリをテストするステップＳＴ７０４＞
メモリテスト時、メモリテストモード端子６１０は「１」に設定され、外部端子４３１，４３２，４３３からセレクタ４１１，４１２，４１３を介してメモリアクセス信号ＡＤ，ＷＥ，ＤＩを印加したり、外部端子６１１の値を取り込んだりすることで、書き込みや読み込みを行い、配線やトランジスタの故障の検証に加え、隣り合うメモリセル同士の保持値の関係や読み込みや書き込みの順序に関するテストが行われる。このステップによってメモリ１０１は図８(ａ)に示す値に設定される。
【００８５】
なお、一般的に、メモリの出力遅延は、クロックのエッジと、クロックのエッジからメモリ内部で生成するタイミングでメモリセルの出力を取り込むセンスアンプの関係で規定されており、メモリテストでは個々のメモリセルの出力がセンスアンプの取り込みタイミングに間に合うことを検証するため、読み出しアドレスによって出力遅延が変化しない。よって後述するステップＳＴ７０６のスキャンテストにおいて、実速度検査を行う場合においても全てのアドレスへのアクセスを検証する必要はない。
【００８６】
＜メモリを初期化するステップＳＴ７０５＞
メモリテストと同様、メモリテストモード端子６１０を「１」に設定し、外部端子４３１，４３２，４３３からセレクタ４１１，４１２，４１３を介してメモリアクセス信号ＡＤ，ＷＥ，ＤＩを印加し、図８（ｃ）に示す値の書き込みを行う。このステップによってメモリ１０１は図８（ｄ）に示す値に設定される。
【００８７】
＜スキャンテストを実施するステップＳＴ７０６＞
スキャンテスト時には、メモリテストモード端子６１０は「０」となり、論理回路１０２からの信号がセレクタ４１１，４１２，４１３により選択され、同時に、スキャンモード信号６０８は「１」となり、メモリ１０１への書き込みが禁止される。
【００８８】
ＳＥ端子６０３を「１」にし、シフトイン端子６０４およびシフトイン端子６０５に外部から論理回路１０２および論理回路１０３の設定値が入力されるとともにシフトアウト端子６０６およびシフトアウト端子６０７から論理回路１０２および論理回路１０３に格納された値が出力され、期待値と比較される。ＳＥ端子６０３が「０」の時にはキャプチャ動作により、論理回路１０２の値に従ってメモリ１０１が動作するとともに、読み込み時にはメモリ１０１の出力が組合せ回路６０１を介して論理回路１０３に取り込まれる。これらの動作の繰り返しにより、メモリインタフェースの検証が行われる。
【００８９】
上述のように第２の実施形態では、第１の実施形態に加え、メモリの初期化を、メモリテストで設定した値を流用したり、スキャンテストでなく直接設定したりすることにより、大容量メモリにおいても初期化のためのテスト時間を短縮することができ、直接設定する初期値を最低量だけ適切に設定することにより、メモリインタフェースの検査中にメモリへの書き込みを行なわずに、メモリに接続された組合せ回路のメモリインタエースの実動作検査が最適に可能となる。さらに、実速度で動作させることにより実動作速度テストを行うことも可能となる。
【００９０】
また、書き込みを禁止し、メモリを組合せ回路にモデル化することによって、従来のフルスキャンテスト技術でメモリの出力とその値を受け取る通常論理間の検査パタンを生成することができ、既存のテストツールでもメモリインタフェースの実動作検証が可能となり、また、最新ツールでも書き込みを考慮しないことで、パタン作成時間を短縮することが可能となる。
【００９１】
特に、マイクロプロセッサのパイプラインでは、パイプライン伸張の要因でメモリの動作とは別にメモリへのアドレス保持回路が必要であるためメモリの直前にメモリへ印加する制御信号を保持する記憶素子が必要となるが、無駄なサイクルを削減するために、メモリへ印加するクロックを遅延クロックとすることが多く、また、サイクルに余裕がある場合には、同一サイクル中に、メモリと組合せ回路を特にメモリの出力側に挿入する設計をする場合が多く、本実施の形態の効果が高い。
【００９２】
なお、スキャンテスト時に検証しない端子ＷＥや端子ＤＩの検証は、単純な通常動作テストパタン（全ビット０データの書き込み、および、全ビット１データの書き込み）を実行することで確認できるため、大きな問題にはならない。また、メモリテストのための信号のセレクタ４１１，４１２，４１３と、メモリ１０１の間に、記憶素子を挿入し、挿入した記憶素子とメモリ１０１の間は通常動作時やメモリテストで回路を共有することによってメモリテストによる書き込みテストで行うこともできる。
【００９３】
なお、第２の実施形態の半導体集積回路では、スキャンテスト中にメモリ１０１への書き込みを禁止する書き込み禁止回路６０９を用いているが、特にこれは必須の回路ではなく、スキャンテストパタン生成ツール側で書き込み動作を行わないスキャンテストパタンを生成すれば同等の効果を得られる。また、書き込み動作を行わないスキャンテストパタンを実施した後に書き込み動作を行うスキャンパタンを追加することで、スキャンテストパタンの後に書き込み動作を確認する通常動作テストパタンを省略することが可能になる。
【００９４】
また、第２の実施形態の半導体集積回路では、メモリ１０１に印加するクロックは遅延回路６０２を経由した遅延クロックであったが、論理回路１０２や論理回路１０３と同じクロックを注入する図１０（a）に示すような半導体集積回路においては、メモリ１０１は、図１０（ｂ）に示すようにモデル化できる。この時、モデル化されたメモリ内部に存在する記憶素子１００１は非スキャンテスト対応であるため、パーシャルスキャンテスト技術が必要になる。ただし、メモリ１０１が記憶する値を変更する訳ではなく、メモリ１０１への制御信号をラッチするだけであり、組合せ回路６０１を検査するためのパタンはあらかじめメモリ１０１に格納されているため、スキャンテストパタン生成に必要な時間が短縮できる。
【００９５】
また、メモリテストを行うがスキャンテストの後に実施する場合、あるいは、メモリテストを行うがメモリテスト完了後のメモリの保持する値が不明な場合には、ステップＳＴ７０４を省略し、メモリの初期化はステップＳＴ７０５のみになる。この時、初期化しない領域へのアクセスが発生した時の不定値の取り込みを抑制するために、図１１（a）に示すようにアドレス変換回路１１０１を挿入すれば本実施の形態と同じ効果を得られる。アドレス変換回路１１０１の実現例を図１１（ｂ）に示す。
【００９６】
また、第２の実施形態で示した様に、組合せ回路を検査するために必要なメモリの初期値が少ない場合、ＲＯＭの一部の領域や、ＲＡＭにテストＲＯＭ領域など、特定の不揮発領域にあらかじめ初期値を格納したメモリを用いることによって本実施の形態と同じ効果を得られる。
【００９７】
また、ステップＳＴ７０１では、バイト単位のデータの選択、全ビットの０／１の変化が検査できることを目的としてメモリに格納するパタンを作成したが、縮退故障の観点から各ビットの０／１の変化を検証したり、速度故障の観点からクリティカルパスの検証を行ったりすることが可能である。さらに、パタン生成は、仮想ブロック６１３に対して、ＡＴＰＧツールで生成させることも可能である。
【００９８】
また、第２の実施形態で示した半導体集積回路は、スキャンテスト時に書き込みを禁止する書込み禁止回路６０９を持つが、書込み禁止回路６０９ではなく、検査系列生成ツールに書込み禁止指示を与えることにより、ＢＩＳＴテストやスキャンテスト時にメモリに対して書き込みを行わない検査系列生成方法で作成したスキャンテストパタンを使用することによっても、同様にメモリをモデル化することは可能である。
【００９９】
なお、メモリBISTとメモリテスト、および、論理BISTとスキャンテストを区別して説明したが、BISTはメモリテストやスキャンテスト技術を基本に自己診断機能を追加したものであり、自己診断に必要なパタン発生回路や圧縮回路のハードウェアの相違や、パタン生成回路が生成するテストパタンの制約や、圧縮回路の取り込み値が不定値を取り込めないという制約を除けば、両者の技術や効果は共通である。
【産業上の利用可能性】
【０１００】
本発明にかかる検査方法は、メモリ回路の初期化工程を設けて、テスト開始前にメモリ回路の値を確定させておくことで、テスト時にメモリ回路から不定値が出力されなくなり、メモリ回路の出力をそのまま取り込んでテストを行うことができ、圧縮回路を用いた組み込み自己検査等として有用であり、特にメモリ回路のインタフェース(入力端子・出力端子)の実動作検査に適している。スキャンテストによる検査方法においても、メモリ回路の初期化工程を設けて、テスト開始前にメモリ回路の領域のうち必要最小限の領域の値を確定させておくことで、メモリ値の設定時間の短縮を図ることができ、結果として半導体集積回路のテストコストの削減が可能になる。
【図面の簡単な説明】
【０１０１】
【図１】本発明の第１の実施の形態による半導体集積回路例を示すブロック図である。
【図２】本発明の第１の実施の形態によるメモリインタフェースの実動作検査方法のフローチャートである。
【図３】図１に示した半導体集積回路の動作波形図である。
【図４】メモリアクセス回路を含む半導体集積回路例を示すブロック図である。
【図５】デュアルポートメモリを含む半導体集積回路例を示すブロック図である。
【図６】本発明の第２の実施形態による半導体集積回路例を示すブロック図である。
【図７】本発明の第２の実施の形態によるメモリインタフェースの実動作検査方法のフローチャートである。
【図８】本発明の第２の実施の形態における、メモリの初期値の決定フローを示す図である。
【図９】本発明の第２の実施の形態における、組合せ回路にモデル化されたメモリの論理を示す図である。
【図１０】本発明の第２の実施の形態における、半導体集積回路例を示すブロック図及び組合せ順序回路にモデル化されたメモリの論理を示す図である。
【図１１】特定領域のみ初期化されたメモリをもつ半導体集積回路例を示すブロック図である。
【図１２】従来の半導体集積回路例を示すブロック図である。
【図１３】従来のスキャンテストによるメモリインタフェース検査を行う半導体集積回路例を示すブロック図である。
【符号の説明】
【０１０２】
１０１  メモリ
１０２  メモリにアクセスする論理回路
１０３  メモリの出力を取り込む論理回路
１０４  制御回路
１０５  擬似ランダムパタン発生回路
１０６  圧縮回路
１０７  メモリBIST部
ＣＫ    クロック信号
ＡＤ    アドレス信号
ＷＥ    ライトイネーブル信号
ＤＩ    データ入力信号
ＤＯ    データ出力信号
ＳＥ    スキャンイネーブル信号
【図１】
2005235368.tif 000003
【図２】
2005235368.tif 000004
【図３】
2005235368.tif 000005
【図４】
2005235368.tif 000006
【図５】
2005235368.tif 000007
【図６】
2005235368.tif 000008
【図７】
2005235368.tif 000009
【図８】
2005235368.tif 000010
【図９】
2005235368.tif 000011
【図１０】
2005235368.tif 000012
【図１１】
2005235368.tif 000013
【図１２】
2005235368.tif 000014
【図１３】
2005235368.tif 000015