(57)【特許請求の範囲】
【請求項１】
メモリをテストする自己テスト回路が組み込まれた半導体集積回路において、
前記自己テスト回路は、
前記メモリのデータ入力へ与えられるデータパタンを生成するデータ生成器と、
前記データパタンが与えられるメモリのアドレス信号を生成するアドレス生成器と、
前記メモリの読み書きを制御する制御信号を生成する制御信号生成器と、
反転されるビット位置を順次変化させながら、１ビットの状態のみが他のビットの状態に対して反転された所定のビット幅分のワンホットデータを生成するワンホットデータ生成器と、
前記メモリから読み出されたデータと、出力期待値とを比較し、両者が一致しない場合に不一致を知らせる信号を出力する比較器とを備え、
前記自己テスト回路には第１のテストモードと第２のテストモードとが設けられ、
前記第１のテストモードでは、前記メモリのビットライトイネーブル入力へは全てのビットで書き込み可能状態を示す信号が入力された状態で、前記制御信号生成器が書き込み動作を行わせる制御信号を前記メモリの制御入力へ与え、前記データ生成器にて生成されたデータパタンが前記メモリのデータ入力へ与えられ、前記アドレス生成器が生成するアドレス信号が前記メモリのアドレス入力に与えられることにより、前記メモリへの第１の書き込み動作が行われ、次に前記制御信号生成器が書き込み動作を行わせる制御信号を前記メモリの制御入力へ与え、前記ワンホットデータ生成器にて生成されたワンホットデータが前記メモリのビットライトイネーブル入力へ与えられるとともに、前記第１の書き込み動作の時に前記メモリのデータ入力へ与えられたデータパタンとは逆の論理値のデータパタンが前記データ生成器にて生成されて前記メモリのデータ入力へ与えられ、前記アドレス生成器が生成する前記第１の書き込み動作と同一のアドレス信号が前記メモリのアドレス入力に与えられることにより、前記メモリへの第２の書き込み動作が行われ、その後、前記制御信号生成器が読み出し動作を行わせる制御信号を前記メモリの制御入力へ与え、前記第１及び第２の書き込み動作と同一のアドレスでの読み出し動作により出力されるデータを前記比較器に与えるとともに、前記第２の書き込み動作の時に前記メモリのデータ入力へ与えられたデータパタンと前記ワンホットデータとのビットごとの排他的論理和を行った結果のデータを前記出力期待値として前記比較器に与えて、前記比較器で比較動作を行い、前記読み出し動作によりメモリから出力されるデータに不良があるかどうかを判定する動作を、メモリのデータ幅の全ビット位置に対して行い、
前記第２のテストモードでは、前記制御信号生成器が書き込み動作を行わせる制御信号を前記メモリの制御入力へ与え、前記メモリのビットライトイネーブル入力へは全てのビットで書き込み可能状態を示す信号が入力され、前記ワンホットデータ生成器にて生成されたワンホットデータが前記メモリのデータ入力へ与えられるとともに、前記アドレス生成器が生成するアドレス信号が前記メモリのアドレス入力に与えられることにより、前記メモリへの書き込み動作が行われ、その後、前記制御信号生成器が読み出し動作を行わせる制御信号を前記メモリの制御入力へ与え、前記書き込み動作と同一のアドレスでの読み出し動作により出力されるデータを前記比較器に与えるとともに、前記ワンホットデータを前記出力期待値として前記比較器に与えて、前記比較器で比較動作を行い、前記読み出し動作によりメモリから出力されるデータに不良があるかどうかを判定する動作を、メモリのデータ幅の全ビット位置に対して行うことを特徴とする半導体集積回路。
【請求項２】
１つの自己テスト回路にてテストされる複数のメモリが設けられ、
前記第２のテストモードにおいて、前記メモリが１つずつ選択されながら、前記ワンホットデータが前記メモリのデータ入力へ与えられるとともに、前記データ生成器は、選択されていないメモリに対しては、前記ワンホットデータの１ビット分が反転されない、全ビットが同じ値のデータパタンを与えることを特徴とする、請求項１に記載の半導体集積回路。
【請求項３】
前記自己テスト回路が複数設けられ、
前記第２のテストモードにおいて、自己テスト回路の１つが順次選択され、前記選択された自己テスト回路がテストする前記複数メモリのうちの１つのメモリが順次選択され、前記ワンホットデータが前記選択されたメモリのデータ入力へ与えられるとともに、前記選択された自己テスト回路がテストする前記選択されたメモリ以外のメモリのデータ入力へは、前記ワンホットデータの１ビット分が反転されない、全ビットが同じ値のデータパタンを与え、前記選択された自己テスト回路以外の自己テスト回路が備える前記データ生成器は、テストを行うメモリのデータ入力へは、前記ワンホットデータの１ビット分が反転されない、全ビットが同じ値のデータパタンを与えることを特徴とする、請求項１あるいは２に記載の半導体集積回路。
【請求項４】
前記出力期待値を１サイクル以上分保持し、前記比較器に与えるタイミングレジスタをさらに備えることを特徴とする請求項１から３のいずれか１項に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路に関し、特に、自己テスト回路（ＢＩＳＴ（Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）回路）が組み込まれた半導体集積回路に適用して好適なものである。
【背景技術】
【０００２】
メモリ搭載された半導体集積回路に自己テスト回路を組み込み、この自己テスト回路を用いて半導体集積回路の検査を行うことで、半導体集積回路の良否判定を行う方法がある。この良否判定方法には、比較器型ＢＩＳＴや圧縮器型ＢＩＳＴなどがある。比較器型ＢＩＳＴでは、メモリデバイスの書き込みデータと読み出しデータの比較を半導体集積回路内で行い、書き込みデータと読み出しデータとが一致するかを調べることで、良否判定が行われる。一方、圧縮器型ＢＩＳＴでは、メモリデバイスから読み出された読み出しデータがメモリカラー内で圧縮され、その圧縮データがテスタに送られる。そして、その圧縮データをテスト結果として予め計算された期待値と比較することで、良否判定が行われる。なお、圧縮器の構造としては、非特許文献１に開示されているように、ＬＳＦＲ（Ｌｉｎｅａｒ  Ｆｅｅｄｂａｃｋ  Ｓｈｉｆｔ  Ｒｅｇｉｓｔｅｒ）の変形であるＭＩＳＲ（Ｍｕｌｔｉｐｌｅ  Ｉｎｐｕｔ  Ｓｉｇｎａｔｕｒｅ  Ｒｅｇｉｓｔｅｒ）が一般的に用いられている。
一般的には、メモリの製造テスト用のテストアルゴリズムは、マーチングテストのように、メモリデバイス内のセルアレイの他、アドレスデコーダや入出力回路などの基本的な周辺回路の故障もある程度検出できるように開発されている。
【０００３】
一方、このような基本的な周辺回路の他に、追加機能的な回路に関しては、その故障の検出が考慮されていない場合が多い。例えば、メモリへの書き込みをビットごとに制御するビットライトイネーブル回路については、マーチングテストなどでは通常全てこの機能をイネーブルとしてテストが実行される場合が多く、ビットライトイネーブル回路の機能自体は完全にはテストされない。
また、メモリの製造テスト用のテストアルゴリズムで用いられるデータパタンは、全ビットが０または１のパタンや、チェッカーボード（市松模様）パタンのように一般的に規則的である。このため、メモリデバイスの入力へ与えられるデータパタンは、回路規模を抑えるために、ＢＩＳＴ回路内の最小限のデータレジスタから生成される場合がある。
【０００４】
このような場合、メモリデバイスの例えば偶数ビット入力同士には、同じデータレジスタからデータパタンが供給されているので、信号値が同じ状態しか取ることができない。一方、半導体集積回路上では、メモリデバイスの入力端子同士は隣接していないが、このような入力端子に接続される物理的な配線同士は、半導体集積回路上で引き回されることで隣接することがあり、配線上では偶数ビット入力同士が隣接する場合がある。このため、テスト中に信号値が同じ状態しか取ることができない場合には、偶数ビット入力に接続される配線間でショートの不良が発生しても、偶数ビット入力同士のショート不良を検出することはできない。
このような問題に対し、特許文献１には、あるビットからのメモリデバイスの出力を隣のビットの入力に接続する切り替え回路を設け、テスト用のデータ入力は最初の１ビットにのみ与えられるようにテスト回路を構成する方法が開示されている。この方法では、メモリのデータはテスト中にビットごとに書き換えられるので、任意の２ビット間で必ず逆の信号値を取り、これらの配線間のショートを検出することができる。
【０００５】
しかしながら、特許文献１に開示された方法では、例えば、マーチングテスト実行時には、一般的なワード単位でなくビット単位のテストがアドレス数分だけ行われることから、テスト時間は最大ビット数倍だけ増大するという問題があった。
【０００６】
【非特許文献１】『Ｂｕｉｌｔ−Ｉｎ  Ｔｅｓｔ  ｆｏｒ  ＶＬＳＩ：  Ｐｓｅｕｄｏ  Ｒａｎｄｏｍ  Ｔｅｃｈｎｉｑｕｅｓ，  Ｐａｕｌ  Ｈ．  Ｂａｒｄｅｌｌ，  Ｗｉｌｌｉａｍ  Ｈ．  ＭｃＡｎｎｅｙ  ａｎｄ  Ｊａｃｏｂ  Ｓａｖｉｒ，  Ｊｏｈｎ  Ｗｉｌｅｙ  ＆  Ｓｏｎｓ，  １９８７』
【特許文献１】ＵＳＰ４９６９１４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、本発明の目的は、回路規模の増大を抑制しつつ、偶数ビット同士や奇数ビット同士のショート不良を検出するとともに、テスト時間の増大を抑制することが可能な半導体集積回路を提供することである。
【課題を解決するための手段】
【０００８】
上述した課題を解決するために、本発明の一態様によれば、メモリをテストする自己テスト回路が組み込まれた半導体集積回路において、前記自己テスト回路は、前記メモリのデータ入力へ与えられるデータパタンを生成するデータ生成器と、前記データパタンが与えられるメモリのアドレス信号を生成するアドレス生成器と、前記メモリの読み書きを制御する制御信号を生成する制御信号生成器と、反転されるビット位置を順次変化させながら、１ビットの状態のみが他のビットの状態に対して反転された所定のビット幅分のワンホットデータを生成するワンホットデータ生成器と、前記メモリから読み出されたデータと、出力期待値とを比較し、両者が一致しない場合に不一致を知らせる信号を出力する比較器とを備え、前記自己テスト回路には第１のテストモードと第２のテストモードとが設けられ、前記第１のテストモードでは、前記メモリのビットライトイネーブル入力へは全てのビットで書き込み可能状態を示す信号が入力された状態で、前記制御信号生成器が書き込み動作を行わせる制御信号を前記メモリの制御入力へ与え、前記データ生成器にて生成されたデータパタンが前記メモリのデータ入力へ与えられ、前記アドレス生成器が生成するアドレス信号が前記メモリのアドレス入力に与えられることにより、前記メモリへの第１の書き込み動作が行われ、次に前記制御信号生成器が書き込み動作を行わせる制御信号を前記メモリの制御入力へ与え、前記ワンホットデータ生成器にて生成されたワンホットデータが前記メモリのビットライトイネーブル入力へ与えられるとともに、前記第１の書き込み動作の時に前記メモリのデータ入力へ与えられたデータパタンとは逆の論理値のデータパタンが前記データ生成器にて生成されて前記メモリのデータ入力へ与えられ、前記アドレス生成器が生成する前記第１の書き込み動作と同一のアドレス信号が前記メモリのアドレス入力に与えられることにより、前記メモリへの第２の書き込み動作が行われ、その後、前記制御信号生成器が読み出し動作を行わせる制御信号を前記メモリの制御入力へ与え、前記第１及び第２の書き込み動作と同一のアドレスでの読み出し動作により出力されるデータを前記比較器に与えるとともに、前記第２の書き込み動作の時に前記メモリのデータ入力へ与えられたデータパタンと前記ワンホットデータとのビットごとの排他的論理和を行った結果のデータを前記出力期待値として前記比較器に与えて、前記比較器で比較動作を行い、前記読み出し動作によりメモリから出力されるデータに不良があるかどうかを判定する動作を、メモリのデータ幅の全ビット位置に対して行い、前記第２のテストモードでは、前記制御信号生成器が書き込み動作を行わせる制御信号を前記メモリの制御入力へ与え、前記メモリのビットライトイネーブル入力へは全てのビットで書き込み可能状態を示す信号が入力され、前記ワンホットデータ生成器にて生成されたワンホットデータが前記メモリのデータ入力へ与えられるとともに、前記アドレス生成器が生成するアドレス信号が前記メモリのアドレス入力に与えられることにより、前記メモリへの書き込み動作が行われ、その後、前記制御信号生成器が読み出し動作を行わせる制御信号を前記メモリの制御入力へ与え、前記書き込み動作と同一のアドレスでの読み出し動作により出力されるデータを前記比較器に与えるとともに、前記ワンホットデータを前記出力期待値として前記比較器に与えて、前記比較器で比較動作を行い、前記読み出し動作によりメモリから出力されるデータに不良があるかどうかを判定する動作を、メモリのデータ幅の全ビット位置に対して行うことを特徴とする半導体集積回路が提供される。
【発明の効果】
【０００９】
以上説明したように、本発明によれば、反転されるビット位置を順次変化させながら、１ビットの状態のみが他のビットの状態に対して反転されたワンホットデータをメモリのデータ入力へ順次与えることで、メモリに接続される各１ビット分の配線の状態のみを他のビットの配線の状態と順次異ならせることができる。このため、偶数ビット入力同士あるいは奇数ビット入力同士では、同じデータレジスタが共有されている場合においても、アドレスを固定したまま、偶数ビット入力同士あるいは奇数ビット入力同士の状態を異ならせることができ、偶数ビット入力同士あるいは奇数ビット入力同士のショート不良を検出することが可能となる。この結果、回路規模の増大を抑制しつつ、偶数ビット同士や奇数ビット同士のショート不良を検出することが可能となるとともに、このようなショート不良を検出するために、アドレス数分だけテストを行う必要がなくなることから、テスト時間の増大を抑制することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態に係る半導体集積回路について図面を参照しながら説明する。
（第１実施形態）
図１は、本発明の第１実施形態に係る半導体集積回路の概略構成を示すブロック図である。
図１において、半導体チップには半導体集積回路１０が形成され、この半導体集積回路１０には、テスト動作に必要な各論理要素とともにメモリ１１２が設けられたメモリカラー１１１が形成されるとともに、メモリ１１２をテストするＢＩＳＴ回路１００が組み込まれている。
ここで、ＢＩＳＴ回路１００には、ＢＩＳＴ回路１００の全体的な制御を行うＢＩＳＴ制御回路１０１、メモリ１１２のデータ入力へ与えられるデータパタン１０９を生成するデータ生成器１０２、データパタン１０９が与えられるメモリ１１２のアドレス１０８を生成するアドレス生成器１０３、メモリの読み書きを制御する制御信号１０７を生成する制御信号生成器１０４、フラグレジスタ１１５からのフラグ出力に基づいてＢＩＳＴ結果１０６を生成する結果解析器１０５およびメモリ１１２の入力へ与えられるワンホットデータ１２２を生成するワンホットデータ生成器１２１が設けられている。
【００１１】
なお、制御信号１０７には、リードイネーブル信号、ライトイネーブル信号、チップイネーブル信号などを含むことができる。また、ワンホットデータ１２２は、反転されるビット位置が順次変化されながら、１ビットの状態のみが他のビットの状態に対して反転された最大データビット幅分のデータとすることができる。例えば、最大データビット幅が８ビットであるとすると、ワンホットデータ１２２は、以下のビット系列から構成することができる。
（１０００００００）
（０１００００００）
（００１０００００）
（０００１００００）
（００００１０００）
（０００００１００）
（００００００１０）
（０００００００１）
【００１２】
また、メモリカラー１１１には、データを記憶するメモリ１１２、メモリ１１２からの読み出しデータを保持するメモリ出力取込みレジスタ１１３、メモリ１１２からの読み出しデータと、データ生成器１０２から出力された出力期待値１１０とを比較するメモリ出力比較器１１４およびメモリ出力比較器１１４による比較結果を保持するフラグレジスタ１１５が設けられている。
なお、出力期待値１１０は、メモリ１１２のデータ入力へ与えられるデータパタン１０９と同じデータとすることができる。
【００１３】
そして、メモリ１１２内のセルアレイ、アドレスデコーダや入出力回路などの故障の検出を行う場合、ＢＩＳＴ制御回路１０１は、データ生成器１０２、アドレス生成器１０３および制御信号生成器１０４を制御することで、メモリ１１２をテストするために必要な信号を順次生成させる。そして、データ生成器１０２にて生成されたデータパタン１０９はメモリ１１２のデータ入力に与えられ、アドレス生成器１０３にて生成されたアドレス１０８はメモリ１１２のアドレス入力に与えられ、制御信号生成器１０４にて生成された制御信号１０７はメモリ１１２の制御入力に与えられることで、アドレス１０８にて指定された領域にデータパタン１０９が書き込まれる。
【００１４】
そして、メモリ１１２にデータパタン１０９が書き込まれると、ＢＩＳＴ制御回路１０１は、アドレス生成器１０３および制御信号生成器１０４を制御することで、メモリ１１２に書き込まれたデータパタン１０９を読み出させるとともに、データ生成器１０２にて生成された出力期待値１１０をメモリ出力比較器１１４に出力させる。そして、メモリ１１２に書き込まれたデータパタン１０９が読み出されると、その読み出しデータは、メモリ出力取込みレジスタ１１３に一旦保持され、メモリ出力比較器１１４に出力される。そして、メモリ出力比較器１１４において、メモリ出力取込みレジスタ１１３からの出力と出力期待値１１０とが比較され、その比較結果がフラグレジスタ１１５に保持される。
【００１５】
そして、フラグレジスタ１１５からのフラグ出力は結果解析器１０５に入力され、結果解析器１０５にてフラグ出力が解析されることで、ＢＩＳＴ結果１０６が出力される。なお、ひとつのＢＩＳＴ回路１００で複数のメモリをテストする場合には、各メモリのフラグ出力が結果解析器１０５に入力され、全体的なテストの良否判定が行われた後、ＢＩＳＴ結果１０６が出力される。
【００１６】
一方、メモリ１１２に接続された配線間のショート不良を検出する場合、ＢＩＳＴ制御回路１０１は、アドレス生成器１０３、制御信号生成器１０４およびワンホットデータ生成器１２１を制御することで、配線間のショート不良を検出するために必要な信号を順次生成させる。そして、ワンホットデータ生成器１２１にて生成されたワンホットデータ１２２はメモリ１１２のデータ入力に与えられ、アドレス生成器１０３にて生成されたアドレス１０８はメモリ１１２のアドレス入力に与えられ、制御信号生成器１０４にて生成された制御信号１０７はメモリ１１２の制御入力に与えられることで、アドレス１０８にて指定された領域にワンホットデータ１２２が書き込まれる。
【００１７】
そして、メモリ１１２にワンホットデータ１２２が書き込まれると、ＢＩＳＴ制御回路１０１は、アドレス生成器１０３および制御信号生成器１０４を制御御することで、メモリ１１２に書き込まれたワンホットデータ１２２を読み出させるとともに、ワンホットデータ生成器１２１にて生成されたワンホットデータ１２２をメモリ出力比較器１１４に出力させる。そして、メモリ１１２に書き込まれたワンホットデータ１２２が読み出されると、その読み出しデータは、メモリ出力取込みレジスタ１１３に一旦保持され、メモリ出力比較器１１４に出力される。そして、メモリ出力比較器１１４において、メモリ出力取込みレジスタ１１３からの出力とワンホットデータ１２２とが比較され、その比較結果がフラグレジスタ１１５に保持される。
【００１８】
これにより、ワンホットデータ１２２をメモリ１１２のデータ入力へ順次与えることで、メモリ１１２に接続される各１ビット分の配線の状態のみを他のビットの配線の状態と順次異ならせることができる。このため、偶数ビット入力同士あるいは奇数ビット入力同士では、同じデータレジスタが共有されている場合においても、アドレス１０８を固定したまま、偶数ビット入力同士あるいは奇数ビット入力同士の状態を異ならせることができ、偶数ビット入力同士あるいは奇数ビット入力同士のショート不良を検出することが可能となる。この結果、回路規模の増大を抑制しつつ、偶数ビット同士や奇数ビット同士のショート不良を検出することが可能となるとともに、このようなショート不良を検出するために、アドレス数分だけテストを行う必要がなくなることから、テスト時間の増大を抑制することが可能となる。
【００１９】
さらに、メモリ１１２のビットライトイネーブル回路の機能自体をテストする場合、ＢＩＳＴ制御回路１０１は、データ生成器１０２、アドレス生成器１０３、制御信号生成器１０４およびワンホットデータ生成器１２１を制御することで、ビットライトイネーブル回路の不良を検出するために必要な信号を順次生成させる。そして、データ生成器１０２にて生成されたデータパタン１０９はメモリ１１２のデータ入力に与えられ、アドレス生成器１０３にて生成されたアドレス１０８はメモリ１１２のアドレス入力に与えられ、制御信号生成器１０４にて生成された制御信号１０７はメモリ１１２の制御入力に与えられることで、アドレス１０８にて指定された領域に全てのビットが０であるようなデータパタン１０９が書き込まれる。そして、更にデータ生成器１０２にて生成されたデータパタン１０９はメモリ１１２のデータ入力に与えられ、アドレス生成器１０３にて生成されたアドレス１０８はメモリ１１２のアドレス入力に与えられ、制御信号生成器１０４にて生成された制御信号１０７はメモリ１１２の制御入力に与えられ、ワンホットデータ生成器１２１にて生成されたワンホットデータ１２２はメモリ１１２のビットライトイネーブル入力に与えられることで、アドレス１０８にて指定された領域にデータパタン１０９が書き込まれる。なお、メモリ１１２のビットライトイネーブル回路の機能自体をテストする場合には、ワンホットデータ１２２は、ビットライトイネーブル信号の１ビット分のみが順次オフされるように構成することができる。また、この場合のデータパタン１０９は、全てのビットを１に設定することができる。
【００２０】
そして、メモリ１１２にデータパタン１０９が書き込まれると、ＢＩＳＴ制御回路１０１は、アドレス生成器１０３および制御信号生成器１０４を制御することで、メモリ１１２に書き込まれたデータパタン１０９を読み出させるとともに、データ生成器１０２にて生成された出力期待値１１０をメモリ出力比較器１１４に出力させる。そして、メモリ１１２に書き込まれたデータパタン１０９が読み出されると、その読み出しデータは、メモリ出力取込みレジスタ１１３に一旦保持され、メモリ出力比較器１１４に出力される。そして、メモリ出力比較器１１４において、メモリ出力取込みレジスタ１１３からの出力と出力期待値１１０とが比較され、その比較結果がフラグレジスタ１１５に保持される。
【００２１】
ここで、ビットライトイネーブル信号のｉビット目が正常である場合には、そのｉビット目についてはメモリ１１２にデータが書き込まれないことから、その前に動作で書き込まれた期待とは逆の値のデータが読み出される。一方、ビットライトイネーブル信号のｉビット目に異常があり、そのｉビット目について書き込みイネーブルがオフにされているにもかかわらず、値１のデータが書き込まれてしまった場合、読み出しデータは全ビット１となり、比較期待値との比較結果はフェイルとなる。
この結果、ビットライトイネーブル信号のｉビット目のみを順次オフさせながら、メモリ１１２に書き込まれたデータパタン１０９と出力期待値１１０とを順次比較することにより、マーチングテストなどでは完全にテストすることのできないビットライトイネーブル回路のテストをＢＩＳＴ回路１００に行わせることができ、回路規模の増大を抑制しつつ、メモリ１１２のテスト精度を向上させることができる。
【００２２】
（第２実施形態）
図２は、本発明の第２実施形態に係る半導体集積回路の概略構成を示すブロック図である。
図２において、半導体チップには半導体集積回路２０が形成され、この半導体集積回路２０には、テスト動作に必要な各論理要素とともにメモリ２１１が設けられたメモリカラー２１０が形成されるとともに、メモリ２１１をテストするＢＩＳＴ回路２００が組み込まれている。
ここで、ＢＩＳＴ回路２００には、ＢＩＳＴ回路２００の全体的な制御を行うＢＩＳＴ制御回路２０１、メモリ２１１のデータ入力へ与えられるデータパタン２０９を生成するデータ生成器２０２、データパタン２０９が与えられるメモリ２１１のアドレス２０８を生成するアドレス生成器２０３、メモリ２１１の読み書きを制御する制御信号２０７を生成する制御信号生成器２０４、ＢＩＳＴ結果２０６を生成する結果解析器２０５およびメモリ２１１の入力へ与えられるワンホットデータ２２２を生成するワンホットデータ生成器２２１が設けられている。なお、ワンホットデータ２２２は、反転されるビット位置が順次変化されながら、１ビットの状態のみが他のビットの状態に対して反転された最大データビット幅分のデータとすることができる。また、制御信号２０７は、リードイネーブル信号、ライトイネーブル信号、チップイネーブル信号などを含むことができる。
また、メモリカラー２１１には、データを記憶するメモリ２１１およびメモリ２１１から読み出された読み出しデータを圧縮する圧縮器２１２が設けられている。
【００２３】
そして、メモリ２１１内のセルアレイ、アドレスデコーダや入出力回路などの故障の検出を行う場合、ＢＩＳＴ制御回路２０１は、データ生成器２０２、アドレス生成器２０３および制御信号生成器２０４を制御することで、メモリ２１１をテストするために必要な信号を順次生成させる。そして、データ生成器２０２にて生成されたデータパタン２０９はメモリ２１１のデータ入力に与えられ、アドレス生成器２０３にて生成されたアドレス２０８はメモリ２１１のアドレス入力に与えられ、制御信号生成器２０４にて生成された制御信号２０７はメモリ２１１の制御入力に与えられることで、アドレス２０８にて指定された領域にデータパタン２０９が書き込まれる。
【００２４】
そして、メモリ２１１にデータパタン２０９が書き込まれると、ＢＩＳＴ制御回路２０１は、データ生成器２０２、アドレス生成器２０３および制御信号生成器２０４を制御することで、メモリ２１１に書き込まれたデータパタン２０９を読み出させる。そして、メモリ２１１に書き込まれたデータパタン２０９が読み出されると、その読み出しデータは圧縮器２１２に入力され、順次圧縮される。
ここで、テスト結果として予め計算された出力期待値が結果解析器２０５内に固定信号として保存されている場合、テスト完了時に結果解析器２０５において、圧縮器２１２に保存されている最終的なテスト結果の圧縮データが出力期待値と比較され、メモリ２１１の良否が判定された後、ＢＩＳＴ結果２０６がテスタに出力される。
【００２５】
一方、出力期待値が結果解析器２０５内に保存されていない場合、圧縮器２１２に保存されているデータは、テスト完了時にテスタに出力される。そして、そのテスタにおいて、圧縮器２１２に保存されている最終的なテスト結果の圧縮データが出力期待値と比較され、メモリ２１１の良否が判定される。なお、ひとつのＢＩＳＴ回路２００で複数のメモリをテストする場合には、それぞれの圧縮器２１２をシリアルに接続して、結果解析器２０５に圧縮データを転送することができる。
【００２６】
また、メモリ２１１に接続された配線間のショート不良を検出する場合、ＢＩＳＴ制御回路２０１は、アドレス生成器２０３、制御信号生成器２０４およびワンホットデータ生成器２２１を制御することで、配線間のショート不良を検出するために必要な信号を順次生成させる。そして、ワンホットデータ生成器２２１にて生成されたワンホットデータ２２２はメモリ２１１のデータ入力に与えられ、アドレス生成器２０３にて生成されたアドレス２０８はメモリ２１１のアドレス入力に与えられ、制御信号生成器２０４にて生成された制御信号２０７はメモリ２１１の制御入力に与えられることで、アドレス２０８にて指定された領域にワンホットデータ２２２が書き込まれる。
【００２７】
そして、メモリ２１１にワンホットデータ２２２が書き込まれると、ＢＩＳＴ制御回路２０１は、アドレス生成器２０３および制御信号生成器２０４を制御することで、メモリ２１１に書き込まれたワンホットデータ２２２を読み出させる。そして、メモリ２１１に書き込まれたワンホットデータ２２２が読み出されると、その読み出しデータは、圧縮器２１２にて順次圧縮保持されてゆく。そしてテスト完了時に、圧縮器２１２に保存されている最終的なテスト結果の圧縮データをテスタに出力し、圧縮器２１２に保存されているデータを圧縮値の期待値と比較させることで、メモリ２１１に接続された配線間のショート不良を検出することができる。
【００２８】
さらに、メモリ２１１のビットライトイネーブル回路の機能自体をテストする場合、ＢＩＳＴ制御回路２０１は、データ生成器２０２、アドレス生成器２０３、制御信号生成器２０４およびワンホットデータ生成器２２１を制御することで、ビットライトイネーブル回路の不良を検出するために必要な信号を順次生成させる。そして、データ生成器２０２にて生成されたデータパタン２０９はメモリ２１１のデータ入力に与えられ、アドレス生成器２０３にて生成されたアドレス２０８はメモリ２１１のアドレス入力に与えられ、制御信号生成器２０４にて生成された制御信号２０７はメモリ２１１の制御入力に与えられ、ワンホットデータ生成器２２１にて生成されたワンホットデータ２２２はメモリ２１１のビットライトイネーブル入力に与えられることで、アドレス２０８にて指定された領域にデータパタン２０９が書き込まれる。なお、メモリ２１１のビットライトイネーブル回路の機能自体をテストする場合には、ワンホットデータ２２２は、ビットライトイネーブル信号の１ビット分のみが順次オフされるように構成することができる。また、この場合のデータパタン２０９は、全てのビットを１に設定することができる。
【００２９】
そして、メモリ２１１にデータパタン２０９が書き込まれると、ＢＩＳＴ制御回路２０１は、データ生成器２０２、アドレス生成器２０３および制御信号生成器２０４を制御することで、メモリ２１１に書き込まれたデータパタン２０９を読み出させる。そして、メモリ２１１に書き込まれたワンホットデータ２２２が読み出されると、その読み出しデータは、圧縮器２１２にて順次圧縮保持される。そしてテスト完了時に、圧縮器２１２に保存されている最終的なテスト結果の圧縮データをテスタに出力し、圧縮値の期待値と比較させることで、メモリ２１１のビットライトイネーブル回路をテストすることができる。
【００３０】
（第３実施形態）
図３は、本発明の第３実施形態に係る半導体集積回路の概略構成を示すブロック図である。
図３において、半導体集積回路には、ＢＩＳＴ制御回路４０１およびメモリカラー４０４が設けられている。そして、ＢＩＳＴ制御回路４０１には、偶数ビットデータ４０２ａ、奇数ビットデータ４０２ｂおよび出力期待値４０９を生成するデータ生成回路４０２、ワンホットデータ４１７を生成するワンホットデータ生成器４０８が設けられている。なお、ワンホットデータ４１７は、反転されるビット位置が順次変化されながら、１ビットの状態のみが他のビットの状態に対して反転された最大データビット幅分のデータとすることができる。
ここで、データ生成回路４０２には、偶数ビットデータ４０２ａを保持する偶数ビットデータレジスタ４０３ａ、奇数ビットデータ４０２ｂを保持する奇数ビットデータレジスタ４０３ｂが設けられている。
【００３１】
また、メモリカラー４０４には、メモリ４０５、マルチプレクサ４０６、４０６−０、４０６−１、４０６−ｎ−２、４０６−ｎ−１、排他的論理和素子４１０、４１４およびタイミングレジスタ４１２が設けられている。
ここで、マルチプレクサ４０６の一方の入力端子は論理回路に接続され、マルチプレクサ４０６の他方の入力端子はワンホットデータ生成器４０８に接続され、マルチプレクサ４０６の出力端子はメモリ４０５のビットライトイネーブル入力端子ＢＷＥ［ｎ−１：０］に接続されている。また、マルチプレクサ４０６−０〜４０６−ｎ−２の一方の入力端子は論理回路に接続され、マルチプレクサ４０６−０〜４０６−ｎ−２の他方の入力端子は偶数ビットデータレジスタ４０３ａに接続され、マルチプレクサ４０６−０〜４０６−ｎ−２の出力端子はメモリ４０５の偶数ビットデータ入力端子ＤＩ０〜ＤＩｎ−２に接続されている。また、マルチプレクサ４０６−１〜４０６−ｎ−１の一方の入力端子は論理回路に接続され、マルチプレクサ４０６−１〜４０６−ｎ−１の他方の入力端子は奇数ビットデータレジスタ４０３ｂに接続され、マルチプレクサ４０６−１〜４０６−ｎ−１の出力端子はメモリ４０５の奇数ビットデータ入力端子ＤＩ１〜ＤＩｎ−１に接続されている。また、マルチプレクサ４０６−０〜４０６−ｎ−１の出力端子は、メモリ４０５をバイパスさせて論理回路のテストを行うためのバイパス経路４０７に接続されている。
【００３２】
また、排他的論理和素子４１０の一方の入力端子はワンホットデータ生成器４０８に接続され、排他的論理和素子４１０の他方の入力端子はデータ生成回路４０２に接続され、排他的論理和素子４１４の一方の入力端子はメモリ４０５の出力端子ＤＯ［ｎ−１：０］に接続され、排他的論理和素子４１０の出力端子はタイミングレジスタ４１２を介して排他的論理和素子４１４の他方の入力端子に接続されている。なお、タイミングレジスタ４１２は、排他的論理和素子４１４にてゲートされるメモリ４０５からの読み出しデータと、排他的論理和素子４１０の出力期待値４１１とのタイミングサイクルの違いを調整するためのものである。
【００３３】
そして、メモリ４０５内のセルアレイ、アドレスデコーダや入出力回路などの故障の検出を行う場合、マルチプレクサ４０６−０〜４０６−ｎ−１への入力は、データ生成回路４０２側に切り替えられる。そして、データ生成回路４０２は、メモリ４０５のテストに必要なデータパタンを生成し、メモリ４０５のデータ入力の偶数ビットおよび奇数ビットにそれぞれ同じ信号が入力されるように、偶数ビットデータレジスタ４０３ａおよび奇数ビットデータレジスタ４０３ｂにデータパタンを分配する。
そして、偶数ビットデータレジスタ４０３ａに分配された偶数ビットデータ４０２ａは、マルチプレクサ４０６−０〜４０６−ｎ−２を介してメモリ４０５の偶数ビットデータ入力端子ＤＩ０〜ＤＩｎ−２に入力され、奇数ビットデータレジスタ４０３ｂに分配された奇数ビットデータ４０２ｂは、マルチプレクサ４０６−１〜４０６−ｎ−１を介してメモリ４０５の奇数ビットデータ入力端子ＤＩ１〜ＤＩｎ−１に入力される。
【００３４】
なお、マルチプレクサ４０６−０〜４０６−ｎ−１への入力を論理回路側に切り替えることにより、スキャンテスト時にブラックボックスとして扱われるメモリ４０５を迂回させ、論理回路のみを通るバイパス経路４０７を構成することができる。これにより、システム論理とＢＩＳＴ回路の双方に対して、メモリ４０５を通らずにスキャンテストを行わせることができる。なお、メモリ４０５への分岐信号はスキャンテストの対象外になるが、ＢＩＳＴ実行時に活性化される信号なので、０・１の縮退故障は検出することができる。
【００３５】
一方、メモリ４０５のビットライトイネーブル回路の機能自体をテストする場合、マルチプレクサ４０６への入力は、ワンホットデータ生成器４０８側に切り替えられる。そして、ワンホットデータ生成器４０８は、ワンホットデータ４１７を生成し、マルチプレクサ４０６を介してメモリ４０５のビットライトイネーブル入力端子ＢＷＥ［ｎ−１：０］に入力する。
これ以降、ビットライトイネーブル信号は０でイネーブル、すなわちそのビットへの書き込みを許可する状態で、１でディセーブル、すなわち書き込みを許可しない状態であるとする。
また、データ生成回路４０２は、偶数ビットデータ４０２ａおよび奇数ビットデータ４０２ｂを１に設定し、マルチプレクサ４０６−０〜４０６−ｎ−１をそれぞれ介してメモリ４０５の偶数ビットデータ入力端子ＤＩ０〜ＤＩｎ−２および奇数ビットデータ入力端子ＤＩ１〜ＤＩｎ−１にそれぞれ入力する。そして、全てのビットが１のデータがメモリ４０５にデータ入力されると、ワンホットデータ４１７の１ビット分の反転位置に対応したｉビット目以外には１が書き込まれるとともに、ｉビット目では書き込みは行われず、前回書き込んだ逆の値０が保存される。
【００３６】
そして、メモリ４０５に書き込まれた書き込みデータは、出力端子ＤＯ［ｎ−１：０］を介して読み出され、メモリ４０５のデータビット幅数分の排他的論理和素子４１４の一方の入力端子に入力される。また、ワンホットデータ生成器４０８にて生成されたワンホットデータ４１７は排他的論理和素子４１０の一方の入力端子に入力されるとともに、データ生成回路４０２は、出力期待値４０９として全てのビットが１に設定されたデータを排他的論理和素子４１０の他方の入力端子に入力する。そして、iビット目のみが１のワンホットデータ４１７が排他的論理和素子４１０に入力されると、出力期待値４０９と排他的論理和がとられることで、出力期待値データのiビット目のみが反転され、タイミングレジスタ４１２に出力される。そして、タイミングレジスタ４１２において、排他的論理和素子４１０からの出力期待値４１１が１サイクル以上分保持されることで、メモリ４０５からのデータの読み出しとタイミングが合わせられた後、排他的論理和素子４１４の他方の入力端子に入力される。そして、メモリ４０５からの読み出しデータと排他的論理和素子４１０の出力期待値４１１との排他的論理和がとられることで、比較結果信号４１５が生成され、ワンホットデータ４１７の１ビット分の反転位置に対応したｉビット目で、データが書き込まれず保持された状態であるかどうかを判別することができる。
【００３７】
図４は、図３の半導体集積回路におけるビットライトイネーブルテスト時の遷移状態を示す図、図５は、図３の半導体集積回路におけるビットライトイネーブルテスト時の動作を示すフローチャートである。なお、ビットライトイネーブルテスト時では、図３のＢＩＳＴ制御回路４０１にて生成されるアドレスは固定することができ、例えば、０アドレスに設定することができる。
図４および図５において、ビットライトイネーブルテスト時には、図４の状態遷移に従って、以下のプログラムを実行することができる。
ｆｏｒ  （ｉ＝０；ｉ＜データ幅；ｉ＋＋）  ｛
Ｗｒｉｔｅ  ００００．．．．                      （ＷＲ１）
Ｒｅａｄ    ００００．．．．  ＆  ｃｏｍｐａｒｅ  （ＲＤ１，ＲＤ１＿ＣＯＭＰ）
Ｗｒｉｔｅ  １１１１．．．．    ＢｉｔＷｒｉｔｅＥｎ［ｉ］＝ＯＦＦ  （ＷＲ２）
Ｒｅａｄ    １１．．０ｉ．．１１＆ｃｏｍｐａｒｅ  （ＲＤ２，ＲＤ２＿ＣＯＭＰ）
｝
【００３８】
すなわち、データビット位置ｉを始めに定め（図５のステップＳ１）、図４のＷＲ１状態で全ビット０のデータパタン“００００．．．．”を図３のメモリ４０５に書き込む（図５のステップＳ３）。
次に、図４のＲＤ１状態でデータをメモリ４０５から読み出し、図４のＲＤ１＿ＣＯＭＰ状態で出力期待値４１１と比較する（図５のステップＳ４）。
次に、図４のＷＲ２状態でビットライトイネーブル信号のｉビット目のみをオフにし（図５のステップＳ５）、全ビット１のデータパタン“１１１１．．．．”を書き込む（図５のステップＳ６）。この場合、ビットライトイネーブル機能が正常に働いていれば、ｉビット目以外にデータ１がメモリ４０５に書き込まれ、iビット目では前回書き込んだ値0が保持される。一方、ビットライトイネーブル機能が異常があり、書き込みイネーブルがオフされない場合、全ビット１のデータパタン“１１１１．．．．”がメモリ４０５に書き込まれる。
【００３９】
次に、図４のＲＤ２状態でデータをメモリ４０５から読み出し、図４のＲＤ２＿ＣＯＭＰ状態で出力期待値４１１と比較し（図５のステップＳ７）、メモリ４０５からの読み出しデータと出力期待値４１１とが一致するかどうかを判断する（図５のステップＳ８）。ここで、データ生成回路４０２にて生成された出力期待値４０９は、図３の排他的論理和素子４１０でワンホットデータ生成器４０８からのワンホットデータ４１７とゲートされており、ｉビット目のみ反転された状態となる。さらに、メモリ４０５からの読み出しデータは排他的論理和素子４１４で出力期待値４１１とゲートされ、正常なデータがメモリ４０５から読み出されれば、メモリ４０５からの読み出しデータと出力期待値４１１とが一致することから、比較結果信号４１５は全ビット０となる。
一方、メモリ４０５から読み出されたデータが正常でないならば、メモリ４０５からの読み出しデータと出力期待値４１１とが一致しないため、比較結果信号４１５は全ビット０とはならず、不良品と判定する（図５のステップＳ１１）。
そして、上記の動作を全てのビット位置ｉに対して行い（図５のステップＳ２、Ｓ９）、これら全てのビット位置ｉに対して比較結果信号４１５が全ビット０ならば、ビットライトイネーブル回路について良品と判定することができる（図５のステップＳ１０）。書き込みデータを０から１に加えて逆の１から０に対しても行うこともできる。
【００４０】
これにより、マーチングテストなどでは完全にテストすることのできないビットライトイネーブル回路の機能を、同じＢＩＳＴ制御回路４０１を用いて完全にテストすることが可能となる。
なお、上述した実施形態では、ひとつのＢＩＳＴ制御回路４０１でひとつのメモリ４０５をテストする方法について説明したが、ひとつのＢＩＳＴ制御回路４０１で複数のメモリをテストするようにしてもよい。ここで、各メモリのビット幅が異なる場合、ワンホットデータ生成器４０８にて生成されるデータがメモリのビット幅を超える部分に対しては、書き込み、読み出し及び出力比較を行わないようにしてもよい。
また、図４の実施形態では、タイミングレジスタ４１２をメモリカラー４０４に設ける方法について説明したが、出力期待値４０９が出力されるタイミングサイクルをデータ生成回路４０２にて調整するようにしてもよい。
【００４１】
（第４実施形態）
図６は、本発明の第４実施形態に係る半導体集積回路の概略構成を示すブロック図である。
図６において、半導体集積回路には、ＢＩＳＴ制御回路６０１およびメモリカラー６０４が設けられている。そして、ＢＩＳＴ制御回路６０１には、偶数ビットデータ６０２ａ、奇数ビットデータ６０２ｂおよび出力期待値６０９を生成するデータ生成回路６０２、ワンホットモード選択信号６１６およびワンホットデータ６１７を生成するワンホットデータ生成器６０８が設けられている。なお、ワンホットモード選択信号６１６は、データ生成回路６０２にて生成されたデータパタンおよびワンホットデータ生成器６０８にて生成されたワンホットデータ６１７のどちらをメモリ６０５のデータ入力に与えるかを指示することができる。また、ワンホットデータ６１７は、反転されるビット位置が順次変化されながら、１ビットの状態のみが他のビットの状態に対して反転された最大データビット幅分のデータとすることができる。
ここで、データ生成回路６０２には、偶数ビットデータ６０２ａを保持する偶数ビットデータレジスタ６０３ａ、奇数ビットデータ６０２ｂを保持する奇数ビットデータレジスタ６０３ｂが設けられている。
【００４２】
また、メモリカラー６０４には、メモリ６０５、マルチプレクサ６０６−０、６０６−１、６０６−ｎ−２、６０６−ｎ−１、６２６−０、６２６−１、６２６−ｎ−２、６２６−ｎ−１、排他的論理和素子６１０、６１４およびタイミングレジスタ６１２が設けられている。
ここで、マルチプレクサ６２６−０〜６２６−ｎ−２の一方の入力端子は偶数ビットデータレジスタ６０３ａに接続され、マルチプレクサ６２６−０〜６２６−ｎ−２の他方の入力端子はワンホットデータ生成器６０８のワンホットデータ出力端子の対応するビット位置に接続されている。また、マルチプレクサ６２６−１〜６２６−ｎ−１の一方の入力端子は奇数ビットデータレジスタ６０３ｂに接続され、マルチプレクサ６２６−１〜６２６−ｎ−１の他方の入力端子はワンホットデータ生成器６０８のワンホットデータ出力端子の対応するビット位置に接続されている。また、マルチプレクサ６２６−０〜６２６−ｎ−１の切り替え制御端子は、ワンホットデータ生成器６０８のワンホットモード選択信号出力端子の対応するビット位置に接続されている。
【００４３】
また、マルチプレクサ６０６−０〜６０６−ｎ−２の一方の入力端子は論理回路に接続され、マルチプレクサ６０６−０〜６０６−ｎ−２の他方の入力端子はマルチプレクサ６２６−０〜６２６−ｎ−２の出力端子に接続され、マルチプレクサ６０６−０〜６０６−ｎ−２の出力端子はメモリ６０５の偶数ビットデータ入力端子ＤＩ０〜ＤＩｎ−２に接続されている。また、マルチプレクサ６０６−１〜６０６−ｎ−１の一方の入力端子は論理回路に接続され、マルチプレクサ６０６−１〜６０６−ｎ−１の他方の入力端子はマルチプレクサ６２６−１〜６２６−ｎ−１の出力端子に接続され、マルチプレクサ６０６−１〜６０６−ｎ−１の出力端子はメモリ６０５の奇数ビットデータ入力端子ＤＩ１〜ＤＩｎ−１に接続されている。また、マルチプレクサ６０６−０〜６０６−ｎ−１の出力端子は、メモリ６０５をバイパスさせて論理回路のテストを行うためのバイパス経路６０７に接続されている。
【００４４】
また、排他的論理和素子６１０の一方の入力端子はワンホットデータ生成器６０８のワンホットデータ出力端子の対応するビット位置に接続され、排他的論理和素子６１０の他方の入力端子はデータ生成回路６０２の対応するビット位置に接続され、排他的論理和素子６１４の一方の入力端子はメモリ６０５の出力端子ＤＯ［ｎ−１：０］に接続され、排他的論理和素子６１０の出力端子はタイミングレジスタ６１２を介して排他的論理和素子６１４の他方の入力端子に接続されている。
そして、メモリ６０５内のセルアレイ、アドレスデコーダや入出力回路などの故障の検出を行う場合、マルチプレクサ６２６−０〜６２６−ｎ−１への入力は、データ生成回路６０２側に切り替えられ、マルチプレクサ６０６−０〜６０６−ｎ−１への入力は、マルチプレクサ６２６−０〜６２６−ｎ−１側に切り替えられる。
【００４５】
そして、データ生成回路６０２は、メモリ６０５のテストに必要なデータパタンを生成し、メモリ６０５のデータ入力の偶数ビットおよび奇数ビットにそれぞれ同じ信号が入力されるように、偶数ビットデータレジスタ６０３ａおよび奇数ビットデータレジスタ６０３ｂにデータパタンを分配する。
そして、偶数ビットデータレジスタ６０３ａに分配された偶数ビットデータ６０２ａは、マルチプレクサ６２６−０〜６２６−ｎ−２およびマルチプレクサ６０６−０〜６０６−ｎ−２を介してメモリ６０５の偶数ビットデータ入力端子ＤＩ０〜ＤＩｎ−２に入力され、奇数ビットデータレジスタ６０３ｂに分配された奇数ビットデータ６０２ｂは、マルチプレクサ６２６−０〜６２６−ｎ−２およびマルチプレクサ６０６−１〜６０６−ｎ−１を介してメモリ６０５の奇数ビットデータ入力端子ＤＩ１〜ＤＩｎ−１に入力される。
【００４６】
一方、メモリ６０５に接続された配線間のショート不良を検出する場合、マルチプレクサ６２６−０〜６２６−ｎ−１への入力は、ワンホットデータ生成器６０８側に切り替えられ、マルチプレクサ６０６−０〜６０６−ｎ−１への入力は、マルチプレクサ６２６−０〜６２６−ｎ−１側に切り替えられる。そして、ワンホットデータ生成器６０８は、ワンホットデータ６１７を生成し、マルチプレクサ６２６−０〜６２６−ｎ−２およびマルチプレクサ６０６−０〜６０６−ｎ−１をそれぞれ介してメモリ６０５の偶数ビットデータ入力端子ＤＩ０〜ＤＩｎ−２および奇数ビットデータ入力端子ＤＩ１〜ＤＩｎ−１にそれぞれ入力する。そして、ワンホットデータ６１７がメモリ６０５にデータ入力されると、ワンホットデータ６１７がメモリ６０５に順次書き込まれる。
【００４７】
そして、メモリ６０５に書き込まれた書き込みデータは、出力端子ＤＯ［ｎ−１：０］を介して読み出され、排他的論理和素子６１４の一方の入力端子に入力される。また、ワンホットデータ生成器６０８にて生成されたワンホットデータ６１７は排他的論理和素子６１０の一方の入力端子に入力されるとともに、データ生成回路６０２は、出力期待値６０９として全てのビットが０に設定されたデータを排他的論理和素子６１０の他方の入力端子に入力する。そして、ワンホットデータ６１７が排他的論理和素子６１０に入力されると、出力期待値６０９と排他的論理和がとられることで、ワンホットデータ６１７がそのまま出力期待値６１１としてタイミングレジスタ６１２に出力される。そして、タイミングレジスタ６１２において、排他的論理和素子６１０からの出力期待値６１１が１サイクル以上分保持されることで、メモリ６０５からのデータの読み出しとタイミングが合わせられた後、排他的論理和素子６１４の他方の入力端子に入力される。そして、メモリ６０５からの読み出しデータと排他的論理和素子６１０の出力期待値６１１との排他的論理和がとられることで、比較結果信号６１５が生成され、正常なデータが書き込まれた場合には、比較結果信号６１５は全ビット０になる。
【００４８】
図７は、本発明の第４実施形態に係る半導体集積回路における配線間のショートによる読み出しデータの変化を示す図である。
図７において、ワンホットデータ６１７のｉビット目のみが反転されている場合、ｉビット目の入力側の配線がｉビット目以外の入力側のいずれの配線ともショートしていないと、ワンホットデータ６１７のｉビット目のデータがそのまま出力端子ＤＯｉから読み出され、これら入出力信号の各ビットごとに排他的論理和をとると、これら入出力信号間で各ビットごとにデータが一致することから、全ビット０になる。
一方、ｉビット目の入力側の配線がｉビット目以外の入力側のいずれかの配線とショートしていると、ワンホットデータ６１７のｉビット目は１であるにもかかわらず、ｉビット目の入力側の配線の状態が０になり、メモリ６０５のｉビット目に０が書き込まれるような不良が発生する場合がある。この場合、ｉビット目の出力端子ＤＯｉからは０が読み出され、これら入出力信号の各ビットごとに排他的論理和をとると、ｉビット目においては入出力信号間でデータが異なることから、全ビット０にならなくなり、ｉビット目の入力側の配線がショートしていると判定することができる。
【００４９】
なお、図６の実施形態では、ワンホットモード選択信号６１６は、ワンホットデータ生成器６０８内で生成する方法について説明したが、外部入力端子からワンホットモード選択信号６１６を入力するようにしてもよいし、ＢＩＳＴ制御回路６０１の設定から内部で自動的に生成するようにしてもよい。
【００５０】
図８は、図６の半導体集積回路におけるワンホットデータテスト時の遷移状態を示す図、図９は、図６の半導体集積回路におけるワンホットデータテスト時の動作を示すフローチャートである。なお、ワンホットデータテスト時では、図６のＢＩＳＴ制御回路６０１にて生成されるアドレスは固定することができ、例えば、０アドレスに設定することができる。
図８および図９において、ワンホットデータテスト時には、図８の状態遷移に従って、以下のプログラムを実行することができる。
ｆｏｒ  （ｉ＝０；ｉ＜データ幅；ｉ＋＋）  ｛
Ｗｒｉｔｅ  ００．．０１ｉ０．．．                （ＷＲ１）
Ｒｅａｄ    ００．．０１ｉ０．．．＆ｃｏｍｐａｒｅ（ＲＤ１，ＲＤ１＿ＣＯＭＰ）
｝
【００５１】
すなわち、データビット位置ｉを始めに定め（図９のステップＳ２１）、図８のＷＲ１状態でｉビット目のみが反転したワンホットデータ“００．．０１ｉ０．．．”を図６のメモリ６０５に書き込む（図９のステップＳ２３）。
次に、図８のＲＤ１状態でデータをメモリ６０５から読み出し、図８のＲＤ１＿ＣＯＭＰ状態で出力期待値６１１と比較し（図９のステップＳ２４）、メモリ６０５からの読み出しデータと出力期待値６１１とが一致するかどうかを判断する（図９のステップＳ２５）。ここで、図６のデータ生成回路６０２から出力される出力期待値６０９は全ビット０とすることで、排他的論理和素子６１０は、ワンホットデータ生成器６０８から出力されたワンホットデータ６１７をそのまま出力することができる。さらに、メモリ６０５からの読み出しデータは排他的論理和素子６１４で出力期待値６１１とゲートされ、正常なデータがメモリ６０５から読み出されれば、メモリ６０５からの読み出しデータと出力期待値６１１とが一致することから、比較結果信号６１５は全ビット０となる。
【００５２】
一方、メモリ６０５から読み出されたデータが正常でないならば、メモリ６０５からの読み出しデータと出力期待値６１１とが一致しないため、比較結果信号６１５は全ビット０とはならず、不良品と判定する（図９のステップＳ２８）。
そして、上記の動作を全てのビット位置ｉに対して行い（図９のステップＳ２２、Ｓ２６）、これら全てのビット位置ｉに対して比較結果信号６１５が全ビット０ならば、メモリ６０５のデータ入力に接続された配線について良品と判定することができる（図９のステップＳ２７）。書き込みデータを０から１に加えて逆の１から０に対しても行うこともできる。
【００５３】
これにより、従来のＢＩＳＴ制御回路ではテストできない偶数ビット同士や奇数ビット同士のショート不良のテストも行うことが可能となるとともに、テスト時間がメモリ６０５のビット幅のみに比例することから、データの書き込みをシリアルに行う手法と比べて、テスト時間の増加を抑制することができる。
なお、上述した実施形態では、ひとつのＢＩＳＴ制御回路６０１でひとつのメモリ６０５をテストする方法について説明したが、ひとつのＢＩＳＴ制御回路６０１で複数のメモリをテストするようにしてもよい。
【００５４】
（第５実施形態）
図１０は、本発明の第５実施形態に係る半導体集積回路の概略構成を示すブロック図である。
図１０において、半導体集積回路には、ＢＩＳＴ制御回路７０１およびメモリカラー７０４が設けられている。そして、ＢＩＳＴ制御回路７０１には、偶数ビットデータ７０２ａ、奇数ビットデータ７０２ｂおよび出力期待値７０９を生成するデータ生成回路７０２、ワンホットモード選択信号７１６およびワンホットデータ７１７を生成するワンホットデータ生成器７０８が設けられている。なお、ワンホットモード選択信号７１６は、データ生成回路７０２にて生成されたデータパタンおよびワンホットデータ生成器７０８にて生成されたワンホットデータ７１７のどちらをメモリ７０５のデータ入力に与えるかを指示することで、ビットライトイネーブル機能テストモードと、ワンホットデータテストモードとを切り替えることができる。また、ワンホットデータ７１７は、反転されるビット位置が順次変化されながら、１ビットの状態のみが他のビットの状態に対して反転された最大データビット幅分のデータとすることができる。
【００５５】
ここで、データ生成回路７０２には、偶数ビットデータ７０２ａを保持する偶数ビットデータレジスタ７０３ａ、奇数ビットデータ７０２ｂを保持する奇数ビットデータレジスタ７０３ｂが設けられている。また、ワンホットデータ生成器７０８には、ワンホットモード選択信号７１６に基づいて、ビットライトイネーブル入力端子ＢＷＥ［ｎ−１：０］に対するワンホットデータ７１７の入力を切り替える論理積素子７１８が設けられている。
また、メモリカラー７０４には、メモリ７０５、マルチプレクサ７０６、７０６−０、７０６−１、７０６−ｎ−２、７０６−ｎ−１、７２６−０、７２６−１、７２６−ｎ−２、７２６−ｎ−１、排他的論理和素子７１０、７１４およびタイミングレジスタ７１２が設けられている。
【００５６】
ここで、マルチプレクサ７０６の一方の入力端子は論理回路に接続され、マルチプレクサ７０６の他方の入力端子は論理積素子７１８の出力端子の対応するビット位置に接続され、マルチプレクサ７０６の出力端子はメモリ７０５のビットライトイネーブル入力端子ＢＷＥ［ｎ−１：０］に接続されている。また、マルチプレクサ７２６−０〜７２６−ｎ−２の一方の入力端子は偶数ビットデータレジスタ７０３ａに接続され、マルチプレクサ７２６−０〜７２６−ｎ−２の他方の入力端子はワンホットデータ生成器７０８のワンホットデータ出力端子の対応するビット位置に接続されている。また、マルチプレクサ７２６−１〜７２６−ｎ−１の一方の入力端子は奇数ビットデータレジスタ７０３ｂに接続され、マルチプレクサ７２６−１〜７２６−ｎ−１の他方の入力端子はワンホットデータ生成器７０８のワンホットデータ出力端子の対応するビット位置に接続されている。また、マルチプレクサ７２６−０〜７２６−ｎ−１の切替制御端子は、ワンホットデータ生成器７０８のワンホットモード選択信号出力端子に接続されている。
【００５７】
また、マルチプレクサ７０６−０〜７０６−ｎ−２の一方の入力端子は論理回路に接続され、マルチプレクサ７０６−０〜７０６−ｎ−２の他方の入力端子はマルチプレクサ７２６−０〜７２６−ｎ−２の出力端子に接続され、マルチプレクサ７０６−０〜７０６−ｎ−２の出力端子はメモリ７０５の偶数ビットデータ入力端子ＤＩ０〜ＤＩｎ−２に接続されている。また、マルチプレクサ７０６−１〜７０６−ｎ−１の一方の入力端子は論理回路に接続され、マルチプレクサ７０６−１〜７０６−ｎ−１の他方の入力端子はマルチプレクサ７２６−１〜７２６−ｎ−１の出力端子に接続され、マルチプレクサ７０６−１〜７０６−ｎ−１の出力端子はメモリ７０５の奇数ビットデータ入力端子ＤＩ１〜ＤＩｎ−１に接続されている。また、マルチプレクサ７０６−０〜７０６−ｎ−１の出力端子は、メモリ７０５をバイパスさせて論理回路のテストを行うためのバイパス経路７０７に接続されている。
【００５８】
また、排他的論理和素子７１０の一方の入力端子はワンホットデータ生成器７０８のワンホットデータ出力端子に接続され、排他的論理和素子７１０の他方の入力端子はデータ生成回路７０２に接続され、排他的論理和素子７１４の一方の入力端子はメモリ７０５の出力端子ＤＯ［ｎ−１：０］に接続され、排他的論理和素子７１０の出力端子はタイミングレジスタ７１２を介して排他的論理和素子７１４の他方の入力端子に接続されている。
そして、メモリ７０５のビットライトイネーブル回路の機能自体をテストする場合、ワンホットモード選択信号７１６を０にすることにより、ビットライトイネーブル機能テストモードに設定する。そして、ビットライトイネーブル機能テストモードに設定されると、マルチプレクサ６２６−０〜６２６−ｎ−１への入力は、データ生成回路７０２側に切り替えられ、マルチプレクサ７０６−０〜７０６−ｎ−１への入力は、マルチプレクサ７２６−０〜７２６−ｎ−１側に切り替えられる。そして、ワンホットデータ生成器７０８は、ワンホットデータ７１７を生成し、論理積素子７１８およびマルチプレクサ７０６を介してメモリ７０５のビットライトイネーブル入力端子ＢＷＥ［ｎ−１：０］に入力する。
【００５９】
ここで、ビットライトイネーブル機能テストモードでは、ワンホットモード選択信号７１６は０であるので、そのワンホットモード選択信号７１６が反転されて論理積素子７１８に入力されることで、ワンホットデータ７１７がそのままマルチプレクサ７０６に入力される。
また、データ生成回路７０２は、偶数ビットデータ７０２ａおよび奇数ビットデータ７０２ｂを１に設定し、マルチプレクサ７０６−０〜７０６−ｎ−１をそれぞれ介してメモリ７０５の偶数ビットデータ入力端子ＤＩ０〜ＤＩｎ−２および奇数ビットデータ入力端子ＤＩ１〜ＤＩｎ−１にそれぞれ入力する。そして、全てのビットが１のデータがメモリ７０５にデータ入力されると、ワンホットデータ７１７の１ビット分の反転位置に対応したｉビット目以外には１が書き込まれるとともに、ｉビット目では前回書き込んだ値０が保持される。
【００６０】
そして、メモリ７０５に書き込まれた書き込みデータは、出力端子ＤＯ［ｎ−１：０］を介して読み出され、排他的論理和素子７１４の一方の入力端子に入力される。また、ワンホットデータ生成器７０８にて生成されたワンホットデータ７１７は排他的論理和素子７１０の一方の入力端子に入力されるとともに、データ生成回路７０２は、出力期待値７０９として全てのビットが１に設定されたデータを排他的論理和素子７１０の他方の入力端子に入力する。そして、ワンホットデータ７１７が排他的論理和素子７１０に入力されると、出力期待値７０９と排他的論理和がとられることで、ワンホットデータ７１７が反転され、タイミングレジスタ７１２に出力される。そして、タイミングレジスタ７１２において、排他的論理和素子７１０からの出力期待値７１１が１サイクル以上分保持されることで、メモリ７０５からのデータの読み出しとタイミングが合わせられた後、排他的論理和素子７１４の他方の入力端子に入力される。そして、メモリ７０５からの読み出しデータと排他的論理和素子７１０の出力期待値７１１との排他的論理和がとられることで、比較結果信号７１５が生成され、ワンホットデータ７１７の１ビット分の反転位置に対応したｉビット目にデータが正常に書き込まれたかどうかを判別することができる。
【００６１】
一方、メモリ７０５に接続された配線間のショート不良を検出する場合、ワンホットモード選択信号７１６を１にすることにより、ワンホットデータテストモードに設定する。そして、ワンホットデータテストモードに設定されると、マルチプレクサ７２６−０〜７２６−ｎ−１への入力は、ワンホットデータ生成器７０８側に切り替えられ、マルチプレクサ７０６−０〜７０６−ｎ−１への入力は、マルチプレクサ７２６−０〜７２６−ｎ−１側に切り替えられる。そして、ワンホットデータ生成器７０８は、ワンホットデータ７１７を生成し、マルチプレクサ７２６−０〜７２６−ｎ−２およびマルチプレクサ７０６−０〜７０６−ｎ−１をそれぞれ介してメモリ７０５の偶数ビットデータ入力端子ＤＩ０〜ＤＩｎ−２および奇数ビットデータ入力端子ＤＩ１〜ＤＩｎ−１にそれぞれ入力する。
【００６２】
ここで、ワンホットデータテストモードでは、ワンホットモード選択信号７１６は１であるので、そのワンホットモード選択信号７１６が反転されて論理積素子７１８に入力されることで、論理積素子７１８から出力されるデータは０となる。このため、メモリ７０５のビットライトイネーブル入力端子ＢＷＥ［ｎ−１：０］には全ビット０のデータが入力され、メモリ７０５の全ビットが書き込みイネーブル状態となることから、ワンホットデータ７１７がメモリ７０５にデータ入力されると、ワンホットデータ７１７がメモリ７０５に順次書き込まれる。
【００６３】
そして、メモリ７０５に書き込まれた書き込みデータは、出力端子ＤＯ［ｎ−１：０］を介して読み出され、排他的論理和素子７１４の一方の入力端子に入力される。また、ワンホットデータ生成器７０８にて生成されたワンホットデータ７１７は排他的論理和素子７１０の一方の入力端子に入力されるとともに、データ生成回路７０２は、出力期待値７０９として全てのビットが０に設定されたデータを排他的論理和素子７１０の他方の入力端子に入力する。そして、ワンホットデータ７１７が排他的論理和素子７１０に入力されると、出力期待値７０９と排他的論理和がとられることで、ワンホットデータ７１７がそのまま出力期待値７１１としてタイミングレジスタ７１２に出力される。そして、タイミングレジスタ７１２において、排他的論理和素子７１０からの出力期待値７１１が１サイクル以上分保持されることで、メモリ７０５からのデータの読み出しとタイミングが合わせられた後、排他的論理和素子７１４の他方の入力端子に入力される。そして、メモリ７０５からの読み出しデータと排他的論理和素子７１０の出力期待値７１１との排他的論理和がとられることで、比較結果信号７１５が生成され、正常なデータが書き込まれた場合には、比較結果信号７１５は全ビット０になる。
【００６４】
一方、ｉビット目の入力側の配線がｉビット目以外の入力側のいずれかの配線とショートしていると、ワンホットデータ７１７のｉビット目は１であるにもかかわらず、ｉビット目の入力側の配線の状態が０になり、メモリ７０５のｉビット目に０が書き込まれるような不良が発生する場合がある。この場合、ｉビット目の出力端子ＤＯｉからは０が読み出され、これら入出力信号の各ビットごとに排他的論理和をとると、全ビット０にならなくなり、ｉビット目の入力側の配線がショートしていると判定することができる。書き込みデータを０から１に加えて逆の１から０に対しても行うこともできる。
【００６５】
これにより、メモリ７０５のビットライトイネーブル機能のテスト回路とワンホットデータテストの回路を共有させることができ、回路規模の増大を抑制しつつ、ビットライトイネーブル機能のテストに加え、偶数ビット同士や奇数ビット同士のショート不良のテストも行うことが可能となるとともに、テスト時間がメモリ７０５のビット幅のみに比例することから、データの書き込みをシリアルに行う手法と比べて、テスト時間の増加を少なく抑えることができる。
【００６６】
なお、上述した実施形態では、ひとつのＢＩＳＴ制御回路７０１でひとつのメモリ７０５をテストする方法について説明したが、ひとつのＢＩＳＴ制御回路７０１で複数のメモリをテストするようにしてもよい。
また、複数のメモリをひとつのＢＩＳＴ制御回路でテストする場合、ワンホットデータテストを全てのメモリに対して同時に行うと、異なるメモリでの同じビット位置のデータは常に同じ信号値を取ることになり、これらの配線間のショート不良を検出することができない。このため、ワンホットデータテストを一時に行うメモリはひとつとし、他のメモリには１ビット分のデータが反転しない全ビットが同じ値のデータを書き込むようにすることができる。これにより、複数のメモリをひとつのＢＩＳＴ制御回路でテストする場合においても、物理的な配線状況に依存することなく、隣接したデータビットは必ず逆の値をとるようにすることができ、これらの配線間のショート不良を検出することができる。
【００６７】
また、半導体集積回路上に複数のＢＩＳＴ制御回路が存在し、それぞれのＢＩＳＴ制御回路で複数のメモリをテストする場合、異なるＢＩＳＴ制御回路で同時にテストされるメモリの同一ビットは、常に同じ信号値を取る可能性がある。このため、ワンホットデータテストを一時に行うＢＩＳＴ制御回路をひとつだけ選択した上で、その選択されたひとつのＢＩＳＴ制御回路の中においても、テストが一時に行われるメモリはひとつとし、他のメモリには１ビット分のデータが反転しない全ビットが同じ値のデータを書き込むことができる。これにより、複数のメモリをテストする複数のＢＩＳＴ制御回路が存在する場合においても、物理的な配線状況に依存することなく、隣接したデータビットは必ず逆の値をとるようにすることができ、これらの配線間のショート不良を検出することができる。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１実施形態に係る半導体集積回路の概略構成を示すブロック図。
【図２】本発明の第２実施形態に係る半導体集積回路の概略構成を示すブロック図。
【図３】本発明の第３実施形態に係る半導体集積回路の概略構成を示すブロック図。
【図４】図３の半導体集積回路におけるビットライトイネーブルテスト時の遷移状態を示す図。
【図５】図３の半導体集積回路におけるビットライトイネーブルテスト時の動作を示すフローチャート。
【図６】本発明の第４実施形態に係る半導体集積回路の概略構成を示すブロック図。
【図７】本発明の第４実施形態に係る半導体集積回路における配線間のショートによる読み出しデータの変化を示す図。
【図８】図６の半導体集積回路におけるワンホットデータテスト時の遷移状態を示す図。
【図９】図６の半導体集積回路におけるワンホットデータテスト時の動作を示すフローチャート。
【図１０】本発明の第５実施形態に係る半導体集積回路の概略構成を示すブロック図。
【符号の説明】
【００６９】
１０、２０  半導体集積回路、１００、２００  ＢＩＳＴ回路、１０１、２０１  ＢＩＳＴ制御回路、１０２、２０２  データ生成器、１０３、２０３  アドレス生成器、１０４、２０４  制御信号生成器、１０５、２０５  結果解析器、１１１、２１０  メモリカラー、１１２、２１１  メモリ、１１３  メモリ出力取込みレジスタ、１１４  メモリ出力比較器  １１５  フラグレジスタ、１２１、２２１、４０８、６０８、７０８  ワンホットデータ生成器、２１２  圧縮器、４０１、６０１、７０１  ＢＩＳＴ制御回路、４０２、６０２、７０２  データ生成回路、４０３ａ、６０３ａ、７０３ａ  偶数ビットデータレジスタ、４０３ｂ、６０３ｂ、７０３ｂ  奇数ビットデータレジスタ、４０４、６０４、７０４  メモリカラー、４０５、６０５、７０５  メモリ、４０６、４０６−０、４０６−１、４０６−ｎ−２、４０６−ｎ−１、６０６−０、６０６−１、６０６−ｎ−２、６０６−ｎ−１、６２６−０、６２６−１、６２６−ｎ−２、６２６−ｎ−１、７０６、７０６−０、７０６−１、７０６−ｎ−２、７０６−ｎ−１、７２６−０、７２６−１、７２６−ｎ−２、７２６−ｎ−１  マルチプレクサ、４１０、４１４、６１０、６１４、７１０、７１４  排他的論理和素子、４１２、６１２、７１２  タイミングレジスタ、７１８  論理積素子
【図１】
0004799580.tif 000002
【図２】
0004799580.tif 000003
【図３】
0004799580.tif 000004
【図４】
0004799580.tif 000005
【図５】
0004799580.tif 000006
【図６】
0004799580.tif 000007
【図７】
0004799580.tif 000008
【図８】
0004799580.tif 000009
【図９】
0004799580.tif 000010
【図１０】
0004799580.tif 000011