(57)【要約】【課題】ＬＳＩに搭載されるメモリＢＩＳＴにおいて、サイズの異なる複数のメモリに対して並列に補数アドレステストを実行する。【解決手段】サイズの異なる複数のメモリに対して同じアドレスを供給する１つのメモリＢＩＳＴ回路において、複数のメモリすべてのアドレス空間を包含するテストアドレス空間を規定する。複数のメモリそれぞれのアドレス空間を４分割し、テストアドレス空間の４隅に平行移動して割り付ける。テストアドレス空間全体に対して補数アドレステストを実行すると、包含されるサイズの異なる複数のメモリすべてに対して並列に補数アドレステストを実行することができる。【選択図】図１
2013182654.tif 000002
【特許請求の範囲】
【請求項１】
Ｎｘビットを含むＮビットのアドレスを持つ第１メモリと、前記Ｎｘビットより多いＭｘビットを含み前記Ｎビットより多いＭビットのアドレスを持つ第２メモリと、前記Ｍビットのアドレスを発生し、前記アドレスに基づいて前記第１メモリと前記第２メモリにアクセスするメモリテスト回路とを備え、
前記メモリテスト回路は、前記Ｍｘビットが前記Ｍｘビットで表されるアドレス空間を２分割したＭｘ下位側テストアドレスとＭｘ上位側テストアドレスとの間で交互に変化する、前記Ｍビットのアドレスを出力し、
前記メモリテスト回路は、前記Ｍビットのアドレスに基づいて、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割したときの下位側メモリアドレスと上位側メモリアドレスとを交互にアクセスし、前記第２メモリの前記Ｍｘビットで表されるアドレス空間を２分割したときの下位側メモリアドレスと上位側メモリアドレスとを交互にアクセスする、半導体装置。
【請求項２】
請求項１において、前記Ｍビットのアドレスは前記Ｍｘビットより下位のＭｙビットのアドレスをさらに含み、前記Ｎビットのアドレスは、前記Ｎｘビットより下位のＮｙビットのアドレスをさらに含み、
前記メモリテスト回路は、前記Ｍｘビットが前記Ｍｘビットで表されるアドレス空間を２分割したＭｘ下位側テストアドレスとＭｘ上位側テストアドレスとの間で交互に変化し、前記Ｍｙビットが前記Ｍｙビットで表されるアドレス空間を２分割したＭｙ下位側テストアドレスとＭｙ上位側テストアドレスとの間で交互に変化する、前記Ｍビットのアドレスを出力し、
前記Ｍｘ下位側テストアドレスと前記Ｍｙ下位側テストアドレスとを出力したときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割した下位側であり前記Ｎｙビットで表されるアドレス空間を２分割した下位側であるメモリアドレスをアクセスし、
前記Ｍｘ下位側テストアドレスと前記Ｍｙ上位側テストアドレスとを出力したときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割した下位側であり前記Ｎｙビットで表されるアドレス空間を２分割した上位側であるメモリアドレスをアクセスし、
前記Ｍｘ上位側テストアドレスと前記Ｍｙ下位側テストアドレスとを出力したときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割した上位側であり前記Ｎｙビットで表されるアドレス空間を２分割した下位側であるメモリアドレスをアクセスし、
前記Ｍｘ上位側テストアドレスと前記Ｍｙ上位側テストアドレスとを出力したときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割した上位側であり前記Ｎｙビットで表されるアドレス空間を２分割した上位側であるメモリアドレスをアクセスする、半導体装置。
【請求項３】
請求項１において、前記Ｍビットのアドレスは前記Ｍｘビットより下位のＭｙビットのアドレスをさらに含み、前記Ｎビットのアドレスは、前記Ｎｘビットより下位のＮｙビットのアドレスをさらに含み、
前記メモリテスト回路は、前記Ｍｙビットが前記Ｍｙビットで表されるアドレス空間を２分割したＭｙ下位側テストアドレスとＭｙ上位側テストアドレスとの間で交互に変化する、前記Ｍビットのアドレスを出力し、
前記Ｍｙ下位側テストアドレスを出力したときに、前記第１メモリの前記Ｎｙビットで表されるアドレス空間を２分割したときの下位側であるメモリアドレスをアクセスし、
前記Ｍｙ上位側テストアドレスを出力したときに、前記第１メモリの前記Ｎｙビットで表されるアドレス空間を２分割したときの上位側であるメモリアドレスをアクセスする、半導体装置。
【請求項４】
請求項２において、前記Ｎｘビットのアドレスは前記第１メモリのロウアドレスであり、前記Ｎｙビットのアドレスは前記第１メモリのカラムアドレスである、半導体装置。
【請求項５】
請求項１において、前記メモリテスト回路はパターン発生回路と第１イネーブル制御回路とを含み、
前記パターン発生回路は、前記Ｍｘ下位側テストアドレスを含むＭビットのアドレスと前記Ｍｘ上位側テストアドレスを含むＭビットのアドレスとを交互に出力し、
前記第１イネーブル制御回路は、前記パターン発生回路が発生した前記Ｍビットのアドレスが入力され、入力された前記Ｍビットのアドレスに基づいて前記第１メモリへのアクセス許可を制御する第１イネーブル信号を出力し、
前記Ｍｘビットのアドレスが前記Ｍｘ下位側テストアドレスであるときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割したときの下位側メモリアドレスへのアクセスを許可する値を前記第１イネーブル信号に出力し、前記Ｍｘビットのアドレスが前記Ｍｘ上位側テストアドレスであるときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割した上位側メモリアドレスへのアクセスを許可する値を前記第１イネーブル信号に出力する、半導体装置。
【請求項６】
請求項５において、前記半導体装置は前記第１メモリを含み１個以上のメモリよりなる第１メモリグループを備え、前記第１メモリグループに含まれるメモリのそれぞれに接続される複数のテスト対象選択回路をさらに備え、
前記テスト対象選択回路のそれぞれは、接続されるメモリに対して前記イネーブル信号を通過または無効化して供給する、半導体装置。
【請求項７】
請求項５において、前記半導体装置は前記第１メモリを含み１個以上のメモリよりなる第１メモリグループと、前記第２メモリを含み１個以上のメモリよりなる第２メモリグループとを備え、
前記メモリテスト回路は第２イネーブル回路をさらに含み、
前記第１イネーブル制御回路は、前記パターン発生回路が発生した前記Ｍビットのアドレスのうちの前記Ｍｘビットのアドレスに基づいて、前記第１メモリグループに含まれるメモリに第１イネーブル信号を供給し、
前記第２イネーブル制御回路は、前記パターン発生回路が発生した前記Ｍビットのアドレスに基づいて前記第２メモリグループに含まれるメモリへのアクセス許可を制御する第２イネーブル信号を出力する、半導体装置。
【請求項８】
請求項５において、
前記パターン発生回路は、前記Ｍｘビットで表されるアドレス空間の最大値を出力し、
前記第１イネーブル制御回路は、前記アドレス空間の最大値と前記Ｍビットのアドレスに基づいて前記第１イネーブル信号を出力する、半導体装置。
【請求項９】
請求項８において、前記パターン発生回路は、前記Ｍｘビットで表されるアドレス空間の最大値を符号化して出力し、前記第１イネーブル制御回路は前記符号化されたアドレス空間の最大値を復号する、半導体装置。
【請求項１０】
請求項５において、前記第１イネーブル制御回路は、入力された前記Ｍビットのアドレスが前記第１メモリにおいてメモリセルを備えないアドレスであるとき、アクセスを禁止する値を前記第１イネーブル信号に出力する、半導体装置。
【請求項１１】
半導体装置上のＮｘビットを含むＮビットのアドレスを持つメモリを含むメモリ群をテストするために前記半導体装置の設計情報に含まれるセルフテスト回路情報を生成する半導体装置の設計装置であって、
前記メモリ群のアドレス構成情報に基づいて前記Ｎｘビットより多いＭｘビットを含み前記Ｎビットより多いＭビットのテストアドレス空間を求め、
前記テストアドレス空間のうちＭｘビットのアドレス空間を２分割したＭｘ下位側テストアドレスとＭｘ上位側テストアドレスを交互に含むＭビットのアドレスを出力するアドレス生成回路と、前記Ｍビットのアドレスに基づいて、前記メモリのアドレス空間のうちＮｘビットのアドレス空間を２分割した下位側アドレスと上位側アドレスへのアクセスを交互に許可するイネーブル制御回路とを含むセルフテスト回路情報を生成する、半導体装置の設計装置。
【請求項１２】
請求項１１において、前記Ｍビットのアドレスは前記Ｍｘビットより下位のＭｙビットのアドレスをさらに含み、前記Ｎビットのアドレスは、前記Ｎｘビットより下位のＮｙビットのアドレスをさらに含み、
前記アドレス生成回路は、前記Ｍｘビットが前記Ｍｘビットで表されるアドレス空間を２分割したＭｘ下位側テストアドレスとＭｘ上位側テストアドレスとの間で交互に変化し、前記Ｍｙビットが前記Ｍｙビットで表されるアドレス空間を２分割したＭｙ下位側テストアドレスとＭｙ上位側テストアドレスとの間で交互に変化する、前記Ｍビットのアドレスを出力し、
前記イネーブル制御回路は、
前記Ｍｘビットが前記Ｍｘ下位側テストアドレスで前記Ｍｙビットが前記Ｍｙ下位側テストアドレスであるとき、前記メモリの前記Ｎｘビットで表されるアドレス空間を２分割した下位側であり前記Ｎｙビットで表されるアドレス空間を２分割した下位側アドレスへのアクセスを許可し、
前記Ｍｘビットが前記Ｍｘ下位側テストアドレスで前記Ｍｙビットが前記Ｍｙ上位側テストアドレスであるとき、前記メモリの前記Ｎｘビットで表されるアドレス空間を２分割した下位側であり前記Ｎｙビットで表されるアドレス空間を２分割した上位側アドレスへのアクセスを許可し、
前記Ｍｘビットが前記Ｍｘ上位側テストアドレスで前記Ｍｙビットが前記Ｍｙ下位側テストアドレスであるとき、前記メモリの前記Ｎｘビットで表されるアドレス空間を２分割した上位側であり前記Ｎｙビットで表されるアドレス空間を２分割した下位側アドレスへのアクセスを許可し、
前記Ｍｘビットが前記Ｍｘ上位側テストアドレスで前記Ｍｙビットが前記Ｍｙ上位側テストアドレスであるとき、前記メモリの前記Ｎｘビットで表されるアドレス空間を２分割した上位側であり前記Ｎｙビットで表されるアドレス空間を２分割した上位側アドレスへのアクセスを許可する、半導体装置の設計装置。
【請求項１３】
請求項１１において、前記メモリ群を同時にテストされる複数のメモリグループに分けたメモリグループ情報をさらに入力し、
前記メモリグループ情報に規定されたメモリグループ毎に前記テストアドレス空間を求め、
前記メモリグループ毎に前記メモリグループに含まれるメモリへのアクセス許可を制御するイネーブル信号を出力する前記イネーブル制御回路を備えるセルフテスト回路情報を生成する、半導体装置の設計装置。
【請求項１４】
請求項１３において、前記セルフテスト回路情報は、前記メモリグループに含まれるメモリの一部または全部のメモリごとに前記イネーブル信号を通過または無効化して供給するテスト対象選択回路が接続されている回路情報を含む、半導体装置の設計装置。
【請求項１５】
請求項１３において、前記メモリグループ毎に求めた前記テストアドレス空間の最大範囲をさらに求め、
前記セルフテスト回路情報は、前記テストアドレス空間の最大範囲のアドレスを生成するアドレス生成回路と、前記アドレス生成回路に前記メモリグループ毎の前記イネーブル制御回路が接続された回路情報を含む、半導体装置の設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置および半導体装置の設計装置のメモリＢＩＳＴに関し、特にサイズの異なる複数のメモリを効率的にテストする回路に好適に利用できるものである。
【背景技術】
【０００２】
半導体装置に内蔵されるメモリ（RAMやROM）をテストする為に、メモリテスト用セルフテスト（ＢＩＳＴ；  Built in Self-Test）回路が半導体装置に内蔵されることが一般的になっている。メモリＢＩＳＴ回路は、メモリに対してアドレスや入力データ、制御信号を発生し、メモリから出力される出力データを判定する。様々なテストアルゴリズムが存在するが、その一つとしてアドレスの順序に補数アドレスを用いる補数アドレステストがある。これは、例えば特許文献１の第２図および第３ページ左下欄から右下欄に記載されているように、アドレスを構成する信号線ができる限り全て反転するようなアドレスを与えるテストアルゴリズムであり、メモリのアクセスタイムテスト等に用いられる。
【０００３】
一方、テスト時間を短縮する為に、複数のメモリを同時にテストできるメモリＢＩＳＴ回路が提案されている。例えば特許文献２には、多数のメモリを同時にテストするためのＢＩＳＴが開示されており、図１に複数メモリ同時テスト時における１つのメモリに対するアサート制御（書き込みおよび結果ロード）を行うための回路が示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭５９−７９４９７号公報
【特許文献２】特開平８−２６２１１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本願の発明者は、複数のメモリを同時にテストできるメモリＢＩＳＴ回路において、補数アドレステストを適用しようとしたときに、サイズの異なるメモリが混在すると、補数アドレステストが適切に行われないという問題点を見出した。複数のメモリを同時にテストできるメモリＢＩＳＴ回路では、１つのアドレス発生回路が、並列にテストする全てのメモリに同じアドレス信号を供給する。ここで、補数アドレステストのために、サイズの異なるメモリのうち例えば最大サイズのメモリに対して、全ビット反転するアドレスを印加したとき、それよりサイズの小さいメモリには、全ビットが反転するアドレスが適切に供給されない。
【０００６】
最大サイズのメモリが８ビットのアドレスを備えた２５６ワードのメモリであり、これと並列に４ビットのアドレスを備えた１６ワードのメモリを１つのＢＩＳＴに接続して同時にテストする例について考察する。最大サイズのメモリに対して補数アドレステストを実行するアドレス信号は、２進で00000000, 11111111, 00000001, 11111110, 00000010, 11111101の順に変化する。このとき、並列接続された１６ワードのメモリには、下位４ビットのアドレスが供給され、２進で0000、1111、0001、1110、0010、1101の順に変化している。一見、適切な補数アドレスが供給されているように見える。しかし、実際には１６ワードのメモリのアドレス空間は、８ビット（２５６ワード）のアドレス空間で表現すれば、２進で00000000から00001111までの１６ワードであるから、0000、0001と0010はアクセスされるが、1111、1110と1101はアクセスされない。アドレスが２進で00000000, 11111111, 00000001, 11111110, 00000010, 11111101の順に変化するとき、11111111、11111110と11111101はテスト対象の１６ワードのメモリのアドレス空間である00000000から00001111までの領域外であるからである。その結果、最大サイズのメモリに対しては補数アドレステストが適切に実行されるが、１６ワードのメモリには、0000、0001、0010のように順次アクセスのテストが実行されているに過ぎず、補数アドレステストが適切に実行されない。例えば、実施形態１の比較例として引用する、図６のタイミングチャートの通りである。上記の説明は、Ｘアドレス、Ｙアドレスを区別することなく説明したが、図６は、８ビットのアドレスの上位４ビットをＸアドレス、下位４ビットをＹアドレスとしたものである。いずれの場合であっても、同じ課題が存在する。
【０００７】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、下記の通りである。
【０００９】
すなわち、サイズの異なる複数のメモリに対して同じアドレスを供給する１つのメモリテスト回路において、全てのメモリのアドレス空間を包含するテストアドレス空間を規定し、テストアドレス空間と個々のメモリのアドレス空間をそれぞれ２分割し、テストアドレス空間の下位側と上位側にメモリのアドレス空間の上位側と下位側を割り付ける。メモリテスト回路は、テストアドレス空間を２分割した下位側と上位側のアドレスを交互に供給する。
【発明の効果】
【００１０】
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
【００１１】
すなわち、サイズの異なる複数のメモリに対して並列に補数アドレステストを実行することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施形態１に係るメモリのアドレス空間とテストアドレス空間との関係を示す説明図である。
【図２】図２は、実施形態１に係るメモリＢＩＳＴ回路の一例である。
【図３】図３は、実施形態１におけるメモリアドレスのテストアドレス空間への割り付けの例である。
【図４】図４は、実施形態１の補数アドレステストを実行したときの波形を表すタイミングチャートである。
【図５】図５は、従来のメモリＢＩＳＴ回路におけるメモリアドレスのテストアドレス空間への割り付けの例である。
【図６】図６は、従来のメモリＢＩＳＴ回路に補数アドレステストを実行した場合の波形を表すタイミングチャートである。
【図７】図７は、実施形態２に係るメモリＢＩＳＴ回路の一例である。
【図８】図８は、実施形態２におけるテストアドレス空間内のＲＡＭ１のアドレス割り付けを示す説明図である。
【図９】図９は、実施形態３に係るメモリＢＩＳＴ回路の一例である。
【図１０】図１０は、実施形態３および実施形態４におけるテストアドレス空間内のＲＡＭ１Ｂのアドレス割り付けを示す説明図である。
【図１１】図１１は、実施形態４に係るメモリＢＩＳＴ回路の一例である。
【図１２】図１２は、実施形態５に係るメモリＢＩＳＴ回路の一例である。
【図１３】図１３は、実施形態５に係るエンコーダ、デコーダの変換機能を表す真理値表である。
【図１４】図１４は、実施形態６に係るメモリＢＩＳＴ回路の一例である。
【図１５】図１５は、実施形態７に係る半導体装置の設計装置の一例である。
【発明を実施するための形態】
【００１３】
１．実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１４】
〔１〕＜サイズの異なる複数のメモリに対して並列に行う補数アドレステスト＞
Ｎｘビットを含むＮビットのアドレスを持つ第１メモリ（３１）と、前記Ｎｘビットより多いＭｘビットを含み前記Ｎビットより多いＭビットのアドレスを持つ第２メモリ（４１）と、前記Ｍビットのアドレス（Ａ）を発生し、前記アドレスに基づいて前記第１メモリと前記第２メモリにアクセスするメモリテスト回路（１０）とを備える半導体装置であって、以下のように動作する。
【００１５】
前記メモリテスト回路は、前記Ｍｘビットが前記Ｍｘビットで表されるアドレス空間（６０）を２分割したＭｘ下位側テストアドレス（６１）とＭｘ上位側テストアドレス（６２）との間で交互に変化する、前記Ｍビットのアドレス（Ａ）を出力する。
【００１６】
前記メモリテスト回路は、前記Ｍビットのアドレスに基づいて、前記第１メモリの前記Ｎｘビットで表されるアドレス空間（７０）を２分割したときの下位側メモリアドレス（７１）と上位側メモリアドレス（７２）とを交互にアクセスし、前記第２メモリの前記Ｍｘビットで表されるアドレス空間を２分割したときの下位側メモリアドレスと上位側メモリアドレスとを交互にアクセスする。
【００１７】
これにより、サイズの異なる複数のメモリに対して並列に補数アドレステストを実行することができる。
【００１８】
〔２〕＜Ｘ／Ｙ２次元アレイのＸとＹの両方同時に補数アドレステスト＞
項１において、前記Ｍビットのアドレスは前記Ｍｘビットより下位のＭｙビットのアドレスをさらに含み、前記Ｎビットのアドレスは、前記Ｎｘビットより下位のＮｙビットのアドレスをさらに含み、以下のように動作する。
【００１９】
前記メモリテスト回路は、前記Ｍｘビットがアドレス空間を２分割したＭｘ下位側テストアドレス（６１）とＭｘ上位側テストアドレス（６２）との間で交互に変化し、前記Ｍｙビットがアドレス空間を２分割したＭｙ下位側テストアドレス（６３）とＭｙ上位側テストアドレス（６４）との間で交互に変化する、前記Ｍビットのアドレスを出力する。
【００２０】
前記Ｍｘ下位側テストアドレス（６１）と前記Ｍｙ下位側テストアドレス（６３）とを出力したときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割した下位側（７１）であり前記Ｎｙビットで表されるアドレス空間を２分割した下位側（７３）であるメモリアドレスをアクセスする。
【００２１】
前記Ｍｘ下位側テストアドレス（６１）と前記Ｍｙ上位側テストアドレス（６４）とを出力したときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割した下位側（７１）であり前記Ｎｙビットで表されるアドレス空間を２分割した上位側（７４）であるメモリアドレスをアクセスする。
【００２２】
前記Ｍｘ上位側テストアドレス（６２）と前記Ｍｙ下位側テストアドレス（６３）とを出力したときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割した上位側（７２）であり前記Ｎｙビットで表されるアドレス空間を２分割した下位側（７３）であるメモリアドレスをアクセスする。
【００２３】
前記Ｍｘ上位側テストアドレス（６２）と前記Ｍｙ上位側テストアドレス（６４）とを出力したときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割した上位側（７２）であり前記Ｎｙビットで表されるアドレス空間を２分割した上位側（７４）であるメモリアドレスをアクセスする。
【００２４】
これにより、２次元アレイにより構成される、サイズの異なる複数のメモリに対して並列に補数アドレステストを実行することができる。
【００２５】
〔３〕＜Ｘ／Ｙ２次元アレイのＹ側の補数アドレステスト＞
項１において、前記Ｍビットのアドレスは前記Ｍｘビットより下位のＭｙビットのアドレスをさらに含み、前記Ｎビットのアドレスは、前記Ｎｘビットより下位のＮｙビットのアドレスをさらに含み、以下のように動作する。
【００２６】
前記メモリテスト回路は、前記Ｍｙビットが前記Ｍｙビットで表されるアドレス空間を２分割したＭｙ下位側テストアドレス（６３）とＭｙ上位側テストアドレス（６４）との間で交互に変化する、前記Ｍビットのアドレスを出力する。
【００２７】
前記Ｍｙ下位側テストアドレス（６３）を出力したときに、前記第１メモリの前記Ｎｙビットで表されるアドレス空間を２分割したときの下位側（７３）であるメモリアドレスをアクセスし、前記Ｍｙ上位側テストアドレス（６４）を出力したときに、前記第１メモリの前記Ｎｙビットで表されるアドレス空間を２分割したときの上位側（７４）であるメモリアドレスをアクセスする。
【００２８】
これにより、２次元アレイにより構成される、サイズの異なる複数のメモリに対して並列に、Ｙアドレス側の補数アドレステストを実行することができる。
【００２９】
〔４〕＜Ｘはロウデコーダ側、Ｙはカラムデコーダ側のテスト＞
項２または３において、前記Ｎｘビットのアドレスは前記第１メモリのロウアドレスであり、前記Ｎｙビットのアドレスは前記第１メモリのカラムアドレスである。
【００３０】
これにより、ロウアドレスデコーダを含むメモリ回路と、カラムアドレスデコーダを含むメモリ回路のそれぞれに、効率よく補数アドレステストを実施することができる。
【００３１】
〔５〕＜パターン発生回路（ＡＰＧ）とイネーブル制御回路（ＥｎＣｔｒｌ）＞
項１乃至４のうちの１項において、前記メモリテスト回路（１０）はパターン発生回路（１１）と第１イネーブル制御回路（１４）とを含み、以下のように構成される。
【００３２】
前記パターン発生回路は、前記Ｍｘ下位側テストアドレスを含むＭビットのアドレスと前記Ｍｘ上位側テストアドレスを含むＭビットのアドレスとを交互に出力する。
【００３３】
前記第１イネーブル制御回路には、前記パターン発生回路が発生した前記Ｍビットのアドレスが入力され、入力された前記Ｍビットのアドレスに基づいて前記第１メモリへのアクセス許可を制御する第１イネーブル信号（ＣＥ１）を出力する。前記Ｍｘビットのアドレスが前記Ｍｘ下位側テストアドレスであるときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割したときの下位側メモリアドレスへのアクセスを許可する値を前記第１イネーブル信号に出力する。前記Ｍｘビットのアドレスが前記Ｍｘ上位側テストアドレスであるときに、前記第１メモリの前記Ｎｘビットで表されるアドレス空間を２分割した上位側メモリアドレスへのアクセスを許可する値を前記第１イネーブル信号に出力する。
【００３４】
これにより、サイズの異なる複数のメモリに対して並列に補数アドレステストを実行することができる、メモリＢＩＳＴ回路を簡単な回路構成で提供することができる。
【００３５】
〔６〕＜被テストメモリ選択レジスタ＞
項５において、前記半導体装置は前記第１メモリ（３１）を含み１個以上のメモリよりなる第１メモリグループ（３０）を備え、前記第１メモリグループに含まれるメモリのそれぞれに接続される複数のテスト対象選択回路（２１、２２）をさらに備える。前記テスト対象選択回路のそれぞれは、接続されるメモリに対して前記イネーブル信号を通過または無効化して供給する。
【００３６】
これにより、サイズの異なる複数のメモリのうち、同時にテストするメモリを選択して、並列に補数アドレステストを実行することができる、メモリＢＩＳＴ回路を簡単な回路構成で提供することができる。
【００３７】
〔７〕＜グルーピング＞
項５または６において、前記半導体装置は前記第１メモリ（３１）を含み１個以上のメモリよりなる第１メモリグループ（３０）と、前記第２メモリ（４１）を含み１個以上のメモリよりなる第２メモリグループ（４０）とを備え、以下のように構成される。
【００３８】
前記メモリテスト回路は第２イネーブル回路（１５）をさらに含む。前記第１イネーブル制御回路は、前記パターン発生回路が発生した前記Ｍビットのアドレスのうちの前記Ｍｘビットのアドレスに基づいて、前記第１メモリグループに含まれるメモリに第１イネーブル信号（ＣＥ１）を供給する。前記第２イネーブル制御回路は、前記パターン発生回路が発生した前記Ｍビットのアドレスに基づいて前記第２メモリグループに含まれるメモリへのアクセス許可を制御する第２イネーブル信号（ＣＥ２）を出力する。
【００３９】
これにより、サイズの異なる複数のメモリのうち、同じイネーブル信号を必要とするメモリを並列に構成し、全体としてサイズの異なる複数のメモリグループに対して、並列に補数アドレステストを実行することができる。
【００４０】
〔８〕＜テストアドレス空間の可変＞
項５乃至７のうちの１項において、前記パターン発生回路は、前記Ｍｘビットで表されるアドレス空間の最大値（ＭａｘＸ）を出力し、前記第１イネーブル制御回路は、前記アドレス空間の最大値と前記Ｍビットのアドレスに基づいて前記第１イネーブル信号（ＣＥ１）を出力する。
【００４１】
これにより、サイズの異なる複数のメモリのアドレス空間の大きさを変化させることができる、メモリＢＩＳＴを、簡単な回路で提供することができる。
【００４２】
〔９〕＜テストアドレス空間の最大値の符号化＞
項８において、前記パターン発生回路は、前記Ｍｘビットで表されるアドレス空間の最大値（ＭａｘＸ）を符号化（２８）して出力し（ｅｎｃＭａｘＸ）、前記第１イネーブル制御回路は前記符号化されたアドレス空間の最大値を復号（２９）する。
【００４３】
これにより、アドレス空間の最大値を示す信号線数を抑え、チップ面積を低減することができる。
【００４４】
〔１０〕＜２のべき乗数以外のワード数のメモリ＞
項５乃至９のうちの１項において、前記第１イネーブル制御回路は、入力された前記Ｍビットのアドレスが前記第１メモリにおいてメモリセルを備えないアドレスであるとき、アクセスを禁止する値を前記第１イネーブル信号に出力する。
【００４５】
これにより、２のべき乗数以外のワード数であり、メモリセルを備えない領域へのアクセスを禁止しているメモリを前記複数のメモリに含む場合であっても信頼性を低下させることなく、サイズの異なる複数のメモリに対して並列に補数アドレステストを実行することができる。
【００４６】
〔１１〕＜補数アドレステストのためのＭＢＩＳＴ回路を生成する設計装置＞
半導体装置上のＮｘビットを含むＮビットのアドレスを持つメモリ（３１）を含むメモリ群をテストするために前記半導体装置の設計情報に含まれるセルフテスト回路情報（８７）を生成する半導体装置の設計装置（８０）であって、以下のように構成される。
【００４７】
前記メモリ群のアドレス構成情報に基づいて前記Ｎｘビットより多いＭｘビットを含み前記Ｎビットより多いＭビットのテストアドレス空間を求める（８２）。
【００４８】
アドレス生成回路（１１、１２、１３）とイネーブル制御回路（１４、１５、１６、１７、１８、１９）とを含むセルフテスト回路情報を生成する。
【００４９】
アドレス生成回路（１１、１２、１３）は、前記テストアドレス空間のうちＭｘビットのアドレス空間（６０）を２分割したＭｘ下位側テストアドレス（６１）とＭｘ上位側テストアドレス（６２）を交互に含むＭビットのアドレス（Ａ）を出力する。イネーブル制御回路（１４、１５、１６、１７、１８、１９）は、前記Ｍビットのアドレスに基づいて、前記メモリのアドレス空間（７０）のうちＮｘビットのアドレス空間を２分割した下位側アドレス（７１）と上位側アドレス（７２）へのアクセスを交互に許可する。
【００５０】
これにより、半導体装置に、サイズの異なる複数のメモリに対して並列に補数アドレステストを実行することができるメモリＢＩＳＴ回路を自動的に組み込むことができる、設計装置を提供することができる。
【００５１】
〔１２〕＜Ｘ／Ｙ２次元アレイのＸとＹの両方同時に補数アドレステスト＞
項１１において、前記Ｍビットのアドレスは前記Ｍｘビットより下位のＭｙビットのアドレス（Ａｙ）をさらに含み、前記Ｎビットのアドレスは、前記Ｎｘビットより下位のＮｙビットのアドレスをさらに含み、以下のように構成される。
【００５２】
前記アドレス生成回路は、前記Ｍｘビットがアドレス空間を２分割したＭｘ下位側テストアドレス（６１）とＭｘ上位側テストアドレス（６２）との間で交互に変化し、前記Ｍｙビットがアドレス空間を２分割したＭｙ下位側テストアドレス（６３）とＭｙ上位側テストアドレス（６４）との間で交互に変化する、前記Ｍビットのアドレスを出力する。
【００５３】
前記イネーブル制御回路は、以下のように動作する。
【００５４】
前記Ｍｘビットが前記Ｍｘ下位側テストアドレス（６１）で前記Ｍｙビットが前記Ｍｙ下位側テストアドレス（６３）であるとき、前記メモリの前記Ｎｘビットで表されるアドレス空間を２分割した下位側（７１）であり前記Ｎｙビットで表されるアドレス空間を２分割した下位側アドレス（７３）へのアクセスを許可する。
【００５５】
前記Ｍｘビットが前記Ｍｘ下位側テストアドレス（６１）で前記Ｍｙビットが前記Ｍｙ上位側テストアドレス（６４）であるとき、前記メモリの前記Ｎｘビットで表されるアドレス空間を２分割した下位側（７１）であり前記Ｎｙビットで表されるアドレス空間を２分割した上位側アドレス（７４）へのアクセスを許可する。
【００５６】
前記Ｍｘビットが前記Ｍｘ上位側テストアドレス（６２）で前記Ｍｙビットが前記Ｍｙ下位側テストアドレス（６３）であるとき、前記メモリの前記Ｎｘビットで表されるアドレス空間を２分割した上位側（７２）であり前記Ｎｙビットで表されるアドレス空間を２分割した下位側アドレス（７３）へのアクセスを許可する。
【００５７】
前記Ｍｘビットが前記Ｍｘ上位側テストアドレス（６２）で前記Ｍｙビットが前記Ｍｙ上位側テストアドレス（６４）であるとき、前記メモリの前記Ｎｘビットで表されるアドレス空間を２分割した上位側（７２）であり前記Ｎｙビットで表されるアドレス空間を２分割した上位側アドレス（７４）へのアクセスを許可する。
【００５８】
これにより、半導体装置に、サイズの異なるＸ／Ｙ２次元アレイを備える複数のメモリに対しても、並列に補数アドレステストを実行することができるメモリＢＩＳＴ回路を自動的に組み込むことができる、設計装置を提供することができる。
【００５９】
〔１３〕＜メモリグループ情報＞
項１１または１２において、前記メモリ群を同時にテストされる複数のメモリグループ（３０、４０）に分けたメモリグループ情報（８１）をさらに入力し、前記メモリグループ情報に規定されたメモリグループ毎に前記テストアドレス空間（８３）を求める。前記メモリグループ毎に前記メモリグループに含まれるメモリへのアクセス許可を制御するイネーブル信号を出力する前記イネーブル制御回路（１４、１５、１６、１７、１８、１９）を備えるセルフテスト回路情報を生成する（８６）。
【００６０】
これにより、半導体装置に、サイズの異なる複数のメモリによって構成される複数のメモリグループに対しても、並列に補数アドレステストを実行することができるメモリＢＩＳＴ回路を自動的に組み込むことができる、設計装置を提供することができる。
【００６１】
〔１４〕＜被テストメモリ選択レジスタを含むセルフテスト回路情報＞
項１３において、前記セルフテスト回路情報（８７）は、前記メモリグループに含まれるメモリの一部または全部のメモリごとに前記イネーブル信号を通過または無効化して供給するテスト対象選択回路（２１、２２、２３、２４）が接続されている回路情報を含む。
【００６２】
これにより、同時にテストされるメモリを選択することができるレジスタを備えたセルフテスト回路情報を、メモリＢＩＳＴ回路に自動的に組み込むことができる。
【００６３】
〔１５〕＜ＡＰＧとグループ毎のＥｎＣｔｒｌを含むセルフテスト回路情報＞
項１３において、前記メモリグループ毎に求めた前記テストアドレス空間の最大範囲をさらに求め（８３）、前記セルフテスト回路情報は、前記テストアドレス空間の最大範囲のアドレスを生成するアドレス生成回路（１２、１３）と、前記アドレス生成回路に前記メモリグループ毎の前記イネーブル制御回路が接続された回路情報を含む。
【００６４】
これにより、同時にテストされるメモリのアドレス空間の大きさを調整可能なセルフテスト回路情報を、メモリＢＩＳＴ回路に自動的に組み込むことができる。
【００６５】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００６６】
〔実施形態１〕
図１は、実施形態１に係るメモリのアドレス空間とテストアドレス空間との関係を示す説明図であり、図２は、実施形態１に係るメモリＢＩＳＴ回路の一例であり、図３は、図２の回路図におけるメモリアドレスのテストアドレス空間への割り付けの例である。
【００６７】
図２に示す実施形態１に係るメモリＢＩＳＴ回路の一例は、サイズの異なる複数のメモリである、４×４ワードのＲＡＭ１（３１）と８×８ワードのＲＡＭ２（４１）とを並列にテストするためのメモリテスト回路（１０）である。テスト対象のメモリは、ＲＡＭに限られず、読み出し専用あるいは電気的に書き換え可能なＲＯＭであってもよい。メモリＢＩＳＴ回路は、所要の機能を備えるように設計された通常回路に追加されて、同一半導体装置上に構成されテスト時に動作する。メモリに対してテストパターンであるデータを書き込み、メモリから書き込まれたデータを読み出して、あるいは単にアドレスを指定して予め書き込まれているデータを読み出して、期待値と比較することにより、故障の有無をテストする。メモリテスト回路（１０）は、パターン発生回路１１とイネーブル制御回路１４、１５を含んで構成される。パターン発生回路１１は、上記のテストパターンとアドレスと、各種制御信号を発生する。図２では、アドレスとチップイネーブル信号ＣＥについてのみ図示してあり、テストパターン、読み出しデータ、および期待値などのデータとその他の制御信号、および、メモリのデータ側の回路は図示していない。
【００６８】
パターン発生回路１１は、アドレスＡとイネーブル信号ＣＥ０を出力する。アドレスA[7:0]は、上位側４ビットのＸアドレスAx[3:0]と下位側４ビットのＹアドレスAy[3:0]を含む８ビットとして示してある。テスト対象のメモリ３１は、ロウデコーダ側のＸアドレス２ビットとカラムデコーダ側のＹアドレス２ビットで構成される４×４ワードのＲＡＭである。メモリ３１のＸアドレスAx[1:0]には、パターン発生回路１１が生成する８ビットのアドレスのうちA[5:4]が接続され、ＹアドレスAy[1:0]にはA[1:0]が接続されている。もう１つのテスト対象のメモリ４１は、ロウデコーダ側のＸアドレス３ビットとカラムデコーダ側のＹアドレス３ビットで構成される８×８ワードのＲＡＭである。メモリ４１のＸアドレスAx[2:0]には、パターン発生回路１１が生成する８ビットのアドレスのうちA[6:4]が接続され、ＹアドレスAy[2:0]にはA[2:0]が接続されている。
【００６９】
イネーブル制御回路１４と１５は、アドレスA[7:0]が所定の値になったときに、イネーブル信号ＣＥ０をＲＡＭ１（３１）とＲＡＭ２（４１）にそれぞれ通過および抑制する制御を行う。イネーブル制御回路１４は、A[3:0]=Ay[3:0]が０、１、６、又は７で、且つ、A[7:4]=Ax[3:0]が０、１、６、又は７のときに、ＣＥ０の値をＣＥ１に伝えて、ＲＡＭ１（３１）へのアクセスを許可する。イネーブル制御回路１５は、A[3:0]=Ay[3:0]が７以下で、且つ、A[7:4]=Ax[3:0]が７以下のときに、ＣＥ０の値をＣＥ２に伝えて、ＲＡＭ２（４１）へのアクセスを許可する。イネーブル制御回路１４と１５は、例えば比較回路５１、５２、５１−２、５２−２とＡＮＤゲート５３、５３−２で構成することができる。なお、チップイネーブルＣＥ信号だけでなく、ライトイネーブル制御信号や出力データ比較制御信号など、その他の制御信号もパターン発生回路１１が発生するアドレスに依存して、通過および抑制を制御することができる。
【００７０】
図２に示したメモリＢＩＳＴ回路の、本実施形態１における動作を説明する。
【００７１】
本実施形態１では、サイズの異なる複数のメモリである、４×４ワードのＲＡＭ１（３１）と８×８ワードのＲＡＭ２（４１）に対して並列に補数アドレステストを実行する。
【００７２】
図３は、実施形態１におけるテストアドレス空間内のＲＡＭ１（３１）とＲＡＭ２（４１）のアドレス割り付けを示す説明図である。テストアドレスのアドレス空間は、メモリテスト回路１０が並列にテストする対象としている複数のメモリの全てのアドレス空間を包含するように定める。複数メモリ同時テストでは、テスト対象メモリの内の最大のＸアドレスを持つものと、最大のＹアドレスを持つものそれぞれを包含してテストする必要がある。従って、同時テストでは、この最大のＸアドレスと最大のＹアドレスを備えたテストアドレス空間に対してアドレスを発生する。図２に示した例では、並列にテストする対象は、ＲＡＭ１（３１）とＲＡＭ２（４１）のみであるので、大きい方のＲＡＭ２（４１）のアドレス空間をそのままテストアドレス空間とすればよい。一方、ＲＡＭ１（３１）は、上述のイネーブル制御回路１４の構成により、アドレス空間を４分割され、テストアドレス空間の４隅に割り付けられている。この場合、ＲＡＭ１（３１）内のメモリセルは、テストアドレスのアドレス空間の番地の０、１、６、７、８、９、１４、１５、４８、４９、５４、５５、５６、５７、６２、６３（１０進）に割り付けられている。
【００７３】
図４は、実施形態１の補数アドレステストを実行したときの波形を表すタイミングチャートである。パターン発生回路（ＡＰＧ）１１は、ＲＡＭ２（４１）に対して、補数アドレステストを実行するために、アドレスA[7:0]として00000000, 01110111, 00000001, 01110110, 00000010, 01110010を順に出力する。ＲＡＭ２（４１）には、ＸアドレスAx[2:0]にA[6:4]が、ＹアドレスAy[2:0]にA[2:0]が接続されているので、入力されるアドレスは、000000, 111111, 000001, 111110, 000010, 111101となる。000000と111111、000001と111110、000010と111101の間でアドレスが互いに１の補数となる（アドレスの全ビットが反転）、補数アドレステストが実行されている。このとき、ＲＡＭ１（３１）には、ＸアドレスAx[1:0]にA[5:4]が、ＹアドレスAy[1:0]にA[1:0]が接続されているので、入力されるアドレスは、0000, 1111, 0001, 1110, 0010, 1101となる。イネーブル制御回路１４は、A[3:0]が０、１、６、又は７で、且つ、A[7:4]が０、１、６、又は７のときに、ＣＥ０の値をＣＥ１に伝えて、ＲＡＭ１（３１）へのアクセスを許可する。パターン発生回路（ＡＰＧ）１１が上記のようにアドレスA[7:0]を出力すると、上記６サイクルすべてにおいてイネーブル条件は満たされ、ＲＡＭ１（３１）へのアクセスが許可される。入力されたアドレス、0000, 1111, 0001, 1110, 0010, 1101のままアクセスされるので、ＲＡＭ１（３１）に対しても、適切に補数アドレステストが実行される。
【００７４】
比較のために、図５に従来のメモリＢＩＳＴ回路におけるアドレス空間の割り付けを示し、図６にＲＡＭ２に補数アドレステストを実行した場合の波形を表すタイミングチャートを示す。ＲＡＭ１のアドレス空間は、分割などされずにそのままＲＡＭ２のアドレス空間の一部に割り付けられている。図５に示すように、Ａｘ下位側とＡｙ下位側に割り付けられているものとする。このアドレス割り付けを実現するため、従来のイネーブル制御回路は、Ａｘが３以下であり、且つＡｙが３以下である場合に、ＣＥ０をＣＥ１に伝える制御を行う。
【００７５】
パターン発生回路（ＡＰＧ）１１は、ＲＡＭ２（４１）に対して、補数アドレステストを実行する。アドレスA[7:0]と、ＲＡＭ２（４１）に入力されるアドレスおよびイネーブル信号ＣＥ２は、図４と同様であり、ＲＡＭ２（４１）に対して補数アドレステストが実行されていることがわかる。一方、ＲＡＭ１（３１）に対しては、アドレスは図４の場合と同じ値が入力されるが、アドレスが２進で、111111、111110および111101のときに、イネーブル制御回路がＣＥ０をＣＥ１に伝えるための条件が満たされないので、ＣＥ１が０となり、アクセスは許可されない。イネーブル制御回路がＣＥ０をＣＥ１に伝えるための条件は、Ａｘが３以下であり、且つＡｙが３以下であるが、アドレスが、111111、111110および111101（２進）のときにはＡｘが７で、その条件が満たされないからである。その結果、ＲＡＭ１（３１）は、0000、0001、0010（２進）の順にアクセスされる。アドレスは補数ではなく、１ずつ順次増加するインクリメンタルである。
【００７６】
一方、本実施形態１では、ＲＡＭ１（３１）のアドレス空間を４分割してテストアドレス空間の４隅に割り付け、そのアドレス割り付けを実現するためにイネーブル制御回路１４の構成を従来のものから変更した。その結果、ＲＡＭ２（４１）に対して補数アドレステストを実行すれば、同時にＲＡＭ１（３１）に対しても補数アドレステストを適切に実施することができる。
【００７７】
このように、本実施形態１によれば、サイズが異なる複数のメモリに対して、同時に補数アドレステストを行なうことができ、サイズの異なるメモリに対して個別にテストを実行する場合に比べ、テストパターンやテスト時間を短縮でき、半導体装置の製造コストを低減できるという効果がある。
【００７８】
本実施形態では、メモリＢＩＳＴの回路を一例として、サイズの異なる複数のメモリである、４×４ワードのＲＡＭ１（３１）と８×８ワードのＲＡＭ２（４１）とを並列にテストするためのメモリテスト回路（１０）を示した。メモリはＲＡＭに限定されるものではなく、他のメモリにも適用することができ、並列テストの対象メモリは２個よりも多い場合にも適用することができることは、言うまでもない。
【００７９】
本実施形態では、２次元マットで構成されたＲＡＭを例に採った。Ｘアドレスをロウデコーダに、Ｙアドレスをカラムデコーダにそれぞれ対応させ、それぞれのアドレスに補数アドレステストを実施することにより、ロウデコーダとカラムデコーダの実際の回路に対する最も厳しいテストとなり、メモリの限界性能試験や信頼性試験として好適だからである。本実施形態では、２次元マットを１個だけ備えるメモリについてのみ説明したが、例えばページやブロックごとに２次元マットを複数備えるメモリに対しても、それぞれのデコーダに入力されるアドレスが補数アドレスとなるように、アドレス空間を分割して隅に割り付けることにより、同様に適用することができる。
【００８０】
一方、メモリの物理的回路構成を意識しないで、サイズの異なる複数のメモリに対して、同時に補数アドレステストを行なうこともできる。サイズの異なる複数のメモリに対して同じアドレスを供給する１つのメモリテスト回路において、全てのメモリのアドレス空間を包含するテストアドレス空間を決め、テストアドレス空間と個々のメモリのアドレス空間をそれぞれ２分割し、テストアドレス空間の下位側と上位側に個々のメモリのアドレス空間の上位側と下位側を割り付ける。メモリテスト回路は、テストアドレス空間を２分割した下位側と上位側のアドレスを交互に供給する。個々のメモリのアドレス空間が２のべき乗であれば、それを２分割した下位側をテストアドレス空間の下位側の下隅（下端）に、２分割した上位側をテストアドレス空間の上位側の上隅（上端）に、それぞれ割り付け、テストアドレス空間の大きさのメモリを想定して補数アドレステストを実行すれば、割り付けられた個々のメモリにも同時に補数アドレステストを実行することができる。個々のメモリのアドレス空間が２のべき乗でなければ、２のべき乗まで拡張した領域を２分割した下位側をテストアドレス空間の下位側の下隅（下端）に、２分割した上位側をテストアドレス空間の上位側の上隅（上端）に、それぞれ割り付ければよい。
【００８１】
図１は、上記テストアドレス空間と、個々のメモリの１つのアドレス空間を示し、その分割方法と割り付け方法を図示したものである。テストアドレス空間６０において補数アドレステストを実施すべきＭｘビットのアドレスをＭｘ下位側６１とＭｘ上位側６２に分割する。メモリのアドレス空間７０も補数アドレステストを実施すべきＮｘビットのアドレスをＮｘ下位側７１とＮｘ上位側７２に分割する。Ｎｘ下位側７１をＭｘ下位側６１の下隅（下端）に、Ｎｘ上位側７２をＭｘ上位側６２の上隅（上端）に割り付ける。下隅（下端）、上隅（上端）には限定されない。Ｍｘの下位ビットのＮｘと共通するアドレス部分があるので、Ｍｘの全面について補数アドレステストを実行すれば、その一部でＮｘの補数アドレステストを同時に実行することができるからである。ただし、上記のように下隅（下端）、上隅（上端）とすれば、Ｎｘについて全ビットが１から０に反転するサイクルと、Ｍｘについて全ビットが１から０に反転するサイクルが同じサイクルとなる。全ビット反転が最悪条件である場合が多いので、Ｍｘ全面に補数アドレステストを実行しなくても、複数のメモリに同時に最悪条件のテストパターンを与えることができる。
【００８２】
実施形態１は、一般に最も多用されている、２次元マットのメモリのテストに対応させるために、アドレスをＸとＹの２次元に拡張して実施した形態である。Ｘ方向に２分割しさらにＹ方向に２分割したため、テストアドレス空間と、ＲＡＭ１（３１）のアドレス空間は、４分割して４隅に割り付けている。図３に示すように、ＲＡＭ１（３１）のアドレス空間７０は、Ｎｘ下位側７１とＮｘ上位側７２とに２分割し、さらに、Ｎｙ下位側７３とＮｙ上位側７４に２分割して、全体として４分割している。テストアドレス空間６０も同様に、Ｍｘ下位側６１とＭｘ上位側６２とに２分割し、さらに、Ｍｙ下位側６３とＭｙ上位側６４に２分割して、全体として４分割している。ＲＡＭ１のＮｘ下位側７１且つＮｙ下位側７３の領域は、テストアドレス空間６０のＭｘ下位側６１且つＭｙ下位側６３の領域の左下隅に、割り付けている。他の３領域についても同様に、テストアドレス空間６０の４分割した領域の各隅に割り付けている。
【００８３】
Ｘアドレス側もしくはＹアドレス側の一方のみを、補数アドレステストの対象とする場合は２分割でよく、また、最悪条件となると予想される全ビット反転を同一サイクルに実行する必要がなければ、４隅である必要はない。４分割してさらに４隅に割り付けることにより、Ｘアドレス側の全ビット反転とＹアドレス側の全ビット反転パターンを同一サイクルに実行することができる。これにより、全てのアドレスパターンを網羅しなくても、最悪条件のパターンのみ入力してテストすることが可能となり、他のアドレスパターンを省略することができる場合には、テスト時間を短縮することができる。
【００８４】
〔実施形態２〕＜テストアドレス空間の最大値可変＞
図７は、実施形態２に係るメモリＢＩＳＴ回路の一例である。
【００８５】
実施形態１では、ＲＡＭ１（３１）とＲＡＭ２（４１）に対して同時に補数アドレステストを行なうものとして、イネーブル制御回路１４、１５を構成していた。これは、予め同時にテストを実行されるメモリの組合せを決めておく必要があることを意味する。しかし、この組み合わせは適宜変更できるように設計しておくことが望ましい。
【００８６】
図７に示すメモリＢＩＳＴ回路では、テスト対象のテストアドレス空間の最大アドレス情報MaxX[3:0]とMaxY[3:0]をパターン発生回路内に含まれ図示を省略したレジスタに設定し、この設定値に応じて補数アドレステストに適したイネーブル制御が行なえるようにイネーブル制御回路１６を構成している。
【００８７】
具体的には、パターン発生回路１２のＸアドレスA[7:4]のうちＲＡＭ１（３１）のＸアドレスAx[1:0]の最上位ビット番号A[5]以上のビット番号であるA[7:5]と最大Ｘアドレス情報MaxX[3:1]を比較器５４で比較し、一致すれば、Ｘ上位側のイネーブル状態として判定する（X_Upper=1となる）。同様に、パターン発生回路１２のＹアドレスA[3:0]のうちＲＡＭ１（３１）のＹアドレスAy[1:0]の最上位ビット番号A[1]以上のビット番であるA[3:1]と最大Ｙアドレス情報MaxY[3:1]を比較器５７で比較し、一致すれば、Ｙ上位側のイネーブル状態として判定する（Y_Upper=1となる）。
【００８８】
また、パターン発生回路１２のＸアドレスA[7:4]のうちＲＡＭ１（３１）のＸアドレスAx[1:0]の最上位ビット番号A[5]以上のビット番号であるA[7:5]が全て０となった状態をＮＯＲゲート５５で検出し、Ｘ下位側のイネーブル状態として判定する（X_Lower=1となる）。同様に、パターン発生回路１２のＹアドレスA[3:0]のうちＲＡＭ１（３１）のＹアドレスAy[1:0]の最上位ビット番号A[1]以上のビット番であるA[3:1]が全て０となった状態をＮＯＲゲート５８で検出し、Ｙ下位側のイネーブル状態として判定する（Y_Lower=1となる）。
【００８９】
パターン発生回路１２から入力されるイネーブル制御信号ＣＥ０は、ＯＲゲート５６、ＯＲゲート５９、およびＡＮＤゲート５３を用いて、（X_Upper=1又はX_Lower=1）且つ（Y_Upper=1又はY_Lower=1）の条件が成立する場合に、イネーブル制御回路１６を通過し、ＣＥ１としてＲＡＭ１（３１）へ出力する。
【００９０】
図８に、本実施形態２におけるテストアドレス空間６０内のＲＡＭ１（３１）のアドレス割り付けを示す。図７では、MaxX[3:0]＝1111（10進数で15）、MaxY[3:0]＝1111（10進数で15）の場合を示している。テストアドレス空間としては、Ｘ×Ｙ＝１６×１６の構成で、０番地から２５５番地（10進）が存在する。この例では、ＲＡＭ１（３１）は１６ワードのメモリセルで構成され、これらは４ワードごとの４つのグループに分割されて、テストアドレス空間６０の４隅に割り当てられている。これにより、テストアドレス空間６０に対する補数アドレステストを行えば、同時にＲＡＭ１（３１）にも適切な補数アドレステストを行うことができる。
【００９１】
テストアドレス空間６０がＸ×Ｙ＝８×８の構成で、０番地から６３番地（10進）が存在する場合、最大アドレスにMaxX[3:0]＝0111（10進数で7）、MaxY[3:0]＝0111（10進数で7）を設定することにより、テストアドレス空間６０内のＲＡＭ１（３１）のアドレス割り付けは、図３と同様となる。これにより、テストアドレス空間６０の最大値を変更しても、テストアドレス空間６０に対する補数アドレステストを行えば、同時にＲＡＭ１（３１）にも適切な補数アドレステストを行うことができる。
【００９２】
以上のように図７のような構成にすれば、テストアドレス空間のサイズを任意に変更できる。
【００９３】
〔実施形態３〕＜２のべき乗数以外のワード数のメモリ＞
図９は、図７と同様の回路を想定し、テスト対象に２のべき乗でないワード数のメモリＲＡＭ１Ｂ（３３）が含まれる場合を示している。なお、ＲＡＭ１Ｂ（３３）は、一例としてＸ×Ｙ＝６×４の構成であるものとして説明する。実施形態２と同様に、テストアドレス空間６０の最大値MaxX, MaxYを設定することができるパターン発生回路１２を備える。実施形態１と同様の、テストアドレス空間の最大値を設定することができないパターン発生回路１１であってもよい。図１０は、実施形態３におけるテストアドレス空間内のＲＡＭ１Ｂのアドレス割り付けを示す説明図である。ＲＡＭ１Ｂ（３３）が仮に２のべき乗のワード数であるＸ×Ｙ＝８×４の構成であるものと仮定して、メモリセルが存在しない部分に関してもテストアドレス空間の４隅に割り付けるように構成している。
【００９４】
パターン発生回路１２はテストアドレス空間の最大値として、MaxX[3:0]=1111, MaxY[3:0]=0111（２進）を出力している。イネーブル制御回路１７は、A[7:0]の上位側であるＸアドレスが、０、１、２、３、１２、１３、１４、１５のときに、ＣＥ０をＣＥ１として通過させる制御を行う。A[7:6]がMaxX[3:2]と一致するとき、即ち、A[7:0]の上位側であるＸアドレスが、１２、１３、１４、１５であるとき、X_Upper=1になり、A[7:6]が００のとき、即ち、Ｘアドレスが、０、１、２、３であるとき、X_Lower=1になる。Ｙアドレス側の制御は、図７と同様である。A[7:0]の上位側であるＸアドレスが、０、１、２、３、１２、１３、１４または１５で且つＹアドレスが０、１、１４または１５の場合にＡＮＤゲート５３によりＣＥ０をＣＥ１に通過させる。
【００９５】
パターン発生回路１２は、テストアドレス空間に対する補数アドレステストのためのアドレスA[7:0]を０、２５５、１、２５４、２、２５３の順で出力する。このとき、上記条件でＲＡＭ１Ｂ（３３）に対するイネーブル制御が行われるので、２５５と２５４に平行移動されたＲＡＭ１Ｂ（３３）のアドレス３１と３０に対しても、ＣＥ１がアクセス許可を与える。ＲＡＭ１Ｂ（３３）はＸ×Ｙ＝６×４の構成であってこの領域にはメモリセルを備えていないが、ＣＥ１によりアドレスデコーダ回路が活性化されるので、デコーダ回路の仕様によっては、テストの不良検出率を高める効果が得られる場合がある。
【００９６】
パターン発生回路１２は、さらに、アドレスA[7:0]を３２、２２３、３３、２２２、３４、２２１、（中略）４６、２０９、４７、２０８の順で出力する。このとき、ＲＡＭ１Ｂ（３３）がメモリセルを備えているアドレス８、２３、９、２２、１０、２１、１１、２０が順にアクセスされる。２進数で表すと、01000, 10111, 01001, 10110, 01010, 10101, 01010であり、ＲＡＭ１Ｂ（３３）に対しても適切に補数アドレステストが実行されている。
【００９７】
〔実施形態４〕＜メモリセルの存在しない領域へのアクセスの抑制＞
図１１は、実施形態４に係るメモリＢＩＳＴ回路の一例である。
【００９８】
図１１は、図９の回路の変形例である。ＲＡＭには、破壊や信頼性低下などを避ける為などにより、メモリセルが存在しないアドレスへのアクセスが禁止されているものがある。ＲＡＭ１Ｂ（３３）が、このようなＲＡＭである場合に、図９のイネーブル制御回路１７に代えて、メモリセルの存在しないアドレス領域へのアクセスを抑制するイネーブル制御回路１８を備える。この例では、ＲＡＭ１Ｂ（３３）に入力されているアドレス信号A[6:4]の値が５以下であるか否かを比較回路２７で判定し、メモリセルが存在しないアドレスである場合は、イネーブル制御信号ＣＥ１を抑制する。
【００９９】
これにより、メモリセルが存在しないアドレスへのアクセスが禁止されているＲＡＭに対しても、安全にテストすることができる。なお、図１１では、制御信号として、チップイネーブルＣＥ信号のみを示しているが、ライトイネーブルや出力データ比較制御にも適用することができる。
【０１００】
また、制御信号毎に、図１１や図９を組み合わせても良い。その場合は、共有できる回路を共有し回路規模を小さくできるのは言うまでもない。例えば、チップイネーブルＣＥ信号に図９を適用し、ライトイネーブルや出力データ比較制御に図１１を適用してもよい。
【０１０１】
〔実施形態５〕＜テストアドレス空間の最大値の符号化＞
図１２は、実施形態５に係るメモリＢＩＳＴ回路の一例である。
【０１０２】
図１２は、図７に示したメモリＢＩＳＴ回路を例として最大アドレス情報の配線本数を減らす為の回路変更を加えたものである。具体的には、エンコーダ２８とデコーダ２９を追加している。図１３は、実施形態５に係るエンコーダ、デコーダの変換機能を表す真理値表である。
【０１０３】
補数アドレステストでは、テストアドレス空間のXおよびYの構成は２のべき乗に限定される為、最大アドレス情報(MaxX,MaxY)は、限られた数値しかとり得ない。これをエンコードすることにより必要な配線本数を削減することができる。
【０１０４】
図１２に適用するエンコーダ２８とデコーダ２９は例えば、図１３に示すような変換機能を持つものを用いればよい。補数アドレステストの場合は、MaxXやMaxYに１、３、７、１５といった、２のｎ乗−１の限られた値を設定するので、図１３の例ではエンコード値（encMaxXやencMaxY）として、ｎ−１を用いている。つまり、例えば、MaxX[3:0]=1111(２進)=15(10進)=24-1 なので、n=4であり、encMaxX=4-1=3(10進)=11(2進)となる。このように、４ビットの最大アドレス情報を２ビットに圧縮できる。同様に、８ビットの最大アドレス情報を３ビットに圧縮することもできるし、１６ビットの最大アドレス情報を４ビットに圧縮することもできる。
【０１０５】
このようにエンコードされた信号（encMaxX、encMaxY）を用いることで、パターン発生回路１３とイネーブル制御回路１７の間の信号本数が削減できる。多様なＸ／Ｙ構成のＲＡＭが多数搭載される半導体装置では、多数のイネーブル制御回路が半導体装置内に分散して配置されることがあり、これらとパターン発生回路の配線を削減することで、半導体装置をより小さく構成できる。
【０１０６】
なお、ここで示したエンコーダとデコーダは、図９や図１１に示したメモリＢＩＳＴ回路にも適用できることは言うまでもない。
【０１０７】
〔実施形態６〕＜グルーピング＞
図１４は、実施形態６に係るメモリＢＩＳＴ回路の一例である。
【０１０８】
実施形態１および実施形態２によれば、サイズの異なる複数のメモリに対して並列に補数アドレステストを実行することができる。図１４は、同じＸ／Ｙ構成のメモリをグルーピングして並列にテストを実行できるように構成したものである。
【０１０９】
本実施形態では、４×４ワードのＲＡＭ１−１（３１）とＲＡＭ１−２（３２）を第１メモリグループ３０とし、８×８ワードのＲＡＭ２−１（４１）とＲＡＭ２−２（４２）を第２メモリグループ４０として、これらを並列にテストする。メモリはＲＡＭに限定されるものではなく、他のメモリにも適用することができ、並列テストの対象メモリグループが２個よりも多い場合、およびメモリグループが２個以上のメモリで構成される場合にも適用することができることは、言うまでもない。パターン発生回路１１は、実施形態１と同様に、アドレスＡとイネーブル信号ＣＥ０、および図示されていないテストパターン、その他の制御信号などを出力する。イネーブル制御回路１４と１５は、第１メモリグループ３０と第２メモリグループ４０のそれぞれに共通に設けられており、アドレスA[7:0]が所定の値になったときに、イネーブル信号ＣＥ０を第１メモリグループ３０と第２メモリグループ４０にそれぞれ通過および抑制する制御を行う。メモリグループを構成するメモリには、それぞれ、被テスト選択回路２１、２２、２３、２４が設けられている。被テスト選択回路２１、２２、２３、２４はそれぞれ、被テストメモリ選択レジスタ２５とＡＮＤゲート２６を含み、被テストメモリ選択レジスタ２５に設定されている値により、イネーブル制御信号ＣＥ１、ＣＥ２を通過および抑制する制御を行う。
【０１１０】
全ての被テストメモリ選択レジスタ２５に設定されている値が、イネーブル制御信号ＣＥ１、ＣＥ２を通過させる値である時は、実施形態１と同様に、第２メモリグループに属する全てのメモリに対する補数アドレステストが実行され、同時に、第１メモリグループに属する全てのメモリに対しても補数アドレステスト
が実行される。
【０１１１】
同時にテストするメモリの数が多いほどテスト時間を短縮できるが、テスト装置などのテスト環境（電源電圧安定度など）により、同時にテストできるメモリの数が制限される場合がある。このような場合に備えて、このメモリグループを変更できるように設計しておくことが望ましい。
【０１１２】
本実施形態においては、被テストメモリ選択レジスタ２５を用いて、同時にテストされるメモリを選択することができる。
【０１１３】
同時にテストされるメモリグループを変更した場合には、テストアドレス空間の最大値が変わる場合がある。その場合には、図９に示したパターン発生回路１１とイネーブル制御回路１４、１５に代えて、実施形態２で示した、テスト対象のテストアドレス空間の最大アドレス情報を設定することができるパターン発生回路１２と、この設定値に応じて補数アドレステストに適したイネーブル制御を行うことができるイネーブル制御回路１６を備えれば良い。
【０１１４】
これにより、テスト対象のメモリＲＡＭ１とその他のＸ／Ｙ構成のメモリを任意にグルーピングした場合でも適切にＲＡＭ１の補数アドレステストが行なえる。他のメモリに対してもメモリグループ毎に同様のイネーブル制御回路を適用すれば、各メモリグループ内のメモリに対して補数アドレステストが適切に行なえる。同時にテストされるメモリグループは、２のべき乗以外のＸ／Ｙ構成のメモリで構成されていてもよい。２のべき乗以外のＸ／Ｙ構成のメモリのメモリグループについては、図９、図１１に示したようなイネーブル制御回路１７、１８を備えればよい。これにより、２のべき乗のＸ／Ｙ構成のメモリと２のべき乗以外のＸ／Ｙ構成のメモリとが混在していていても、補数アドレステストを並列に実行することができる。つまり、任意のメモリグルーピングに対しても同時に全てのメモリの補数アドレステストを実施することができる。
【０１１５】
〔実施形態７〕＜半導体装置の設計装置＞
図１５は、以上述べてきた種々の実施形態に係るメモリＢＩＳＴ回路を含む半導体装置を設計する設計装置８０の一例であり、コンピュータとソフトウェアにより実現される。セルフテスト回路用回路ライブラリ８４を備え、半導体装置に搭載されているＲＡＭの情報と半導体装置内での信号接続情報などを含む、搭載メモリ情報８５に基づいてセルフテスト回路情報８７を生成（８６）して出力する。セルフテスト回路情報８７は、ゲートレベルで記述されていても良いし、高位論理言語で記述されていてもよい。
【０１１６】
本実施形態の設計装置は、さらに、補数アドレステスト時用のメモリグループ情報８１を入力されるように構成することができる。補数アドレステスト時用のメモリグループ情報は、同時にテストするＲＡＭ等のグループを指定する情報であり、前述のように電源電圧の安定度等に配慮して決定される。人が決定してもよいし、コンピュータで計算して決定してもよい。
【０１１７】
グループ毎テストアドレス空間計算処理８２は、入力されたメモリグループ情報に基づいて、グループ毎テストアドレス空間情報を計算し、グループ毎にテストアドレス空間の最大値情報（MaxX, MaxY）８３を求める。
【０１１８】
セルフテスト回路情報生成処理８６は、グループ毎テストアドレス空間最大値情報８３、セルフテスト回路用回路ライブラリ８４、搭載ＲＡＭ情報８５を入力として、セルフテスト回路情報８７を生成する。
【０１１９】
これにより、以上述べてきた種々の実施形態に係る同時補数アドレステスト対応のセルフテスト回路を自動で作成でき、設計時間や費用を削減できる。
【０１２０】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１２１】
例えば、メモリのサイズやテストアドレス空間のサイズは、Ｘ／Ｙの比を含めて適宜変更することができ、イネーブル制御回路の回路構成も、それに合わせて適宜変更することが可能である。また、本明細書で開示した種々の実施形態に係るメモリＢＩＳＴ回路は、従来のメモリＢＩＳＴ回路と機能を統合して実施することができる。例えば、種々の実施形態で例示したアドレス割り付けは、他のアドレス割り付け、例えば、従来のインクリメンタルなアドレス割り付けとの切り替えを可能とすることができる。メモリＢＩＳＴ回路は、従来のインクリメンタルなアドレッシングと本実施形態に係る補数アドレステストを切り替えて、いずれのテストも実行することができるように構成することができる。
【符号の説明】
【０１２２】
１０  メモリテスト回路
１１  パターン発生回路
１４、１５、１６、１７、１８、１９  イネーブル制御回路
２８  エンコーダ
２９  デコーダ
３１、３２、３３、４１、４２  メモリ
６０  テストアドレス空間
６１  Ｍｘ下位側テストアドレス
６２  Ｍｘ上位側テストアドレス
６３  Ｍｙ下位側テストアドレス
６４  Ｍｙ上位側テストアドレス
７０  メモリのアドレス空間
７１  Ｎｘ下位側メモリアドレス
７２  Ｎｘ上位側メモリアドレス
７３  Ｎｙ下位側メモリアドレス
７４  Ｎｙ上位側メモリアドレス
８０  半導体装置の設計装置
８１  メモリグループ情報
８２  グループ毎テストアドレス空間計算処理
８４  セルフテスト回路用回路ライブラリ
８５  搭載メモリ情報
８６  セルフテスト回路情報生成処理
【図１】
2013182654.tif 000003
【図２】
2013182654.tif 000004
【図３】
2013182654.tif 000005
【図４】
2013182654.tif 000006
【図５】
2013182654.tif 000007
【図６】
2013182654.tif 000008
【図７】
2013182654.tif 000009
【図８】
2013182654.tif 000010
【図９】
2013182654.tif 000011
【図１０】
2013182654.tif 000012
【図１１】
2013182654.tif 000013
【図１２】
2013182654.tif 000014
【図１３】
2013182654.tif 000015
【図１４】
2013182654.tif 000016
【図１５】
2013182654.tif 000017