(57)【要約】【課題】回路の規模を大きくすることなく、冗長回路の数よりもエラーの回数が多い場合でも、エラーのあったメモリセルの位置をすべて特定したテストを行なう半導体集積回路を提供する。【解決手段】テストモード時に、比較器１１ａ，ｂは、活性化されたワード線に接続されている各メモリセルから読み出されたデータの値と、各メモリから読出されるべき期待値とを、カラムごとに比較する。エラーレジスタ１２ａ，ｂは、比較器１１ａ，ｂによる比較結果に基づくエラーデータを保持する。エラーデータの各ビットは、対応するカラムについての比較器による比較結果を示す。この各ビットは、対応するカラムについての比較結果がどのワード線を活性化したときでも常に等しいときには、「０」となり、対応するカラムについての比較結果が一度でも異なるときには、「１」となる。【選択図】        図１
2004280997.tif 000002
【特許請求の範囲】
【請求項１】
テストモード時に、活性化されたワード線に接続されている各メモリセルから読出されたデータの値と、前記各メモリから読出されるべき期待値とを、カラムごとに比較する比較器と、
前記比較器による比較結果に基づくエラーデータを累積保持するエラーレジスタとを備え、
前記エラーデータの各ビットは、対応するカラムについての前記比較器による比較結果を示し、
前記各ビットは、前記対応するカラムについての比較結果がどのワード線を活性化したときでも常に等しいときには、第１の論理値をとり、前記対応するカラムについての比較結果が一度でも異なるときには、第２の論理値をとる、半導体集積回路。
【請求項２】
前記半導体集積回路は、共通の内部データバスに接続され、テストモード時には、メモリセルからの読出し動作が同時に行なわれる複数個のモジュールを有し、
前記各モジュールは、
テストモード時には、メモリセルから読出されたデータを内部データバスへ出力させないスイッチ回路を備えた、請求項１記載の半導体集積回路。
【請求項３】
前記半導体集積回路は、それぞれのチップセレクト信号によって動作が制御される複数個のモジュールを有し、
前記各モジュールは、
テストモード時には、前記チップセレクト信号の値の如何に係らず、メモリセルからのデータの読出し処理または書込処理の制御を行なう制御回路を備える、請求項１記載の半導体集積回路。
【請求項４】
前記複数のモジュールは、共通の内部アドレスバスを通じて送られる共通のアドレス信号が入力され、前記複数個のモジュールのワード線の数が異なるときに、
前記ワード線の数が最大ではないモジュールにおける前記制御回路は、
アドレス信号を構成する１個以上の所定のビットの値が所定の値のときのみ、前記チップセレクト信号の値の如何に係らず、メモリセルからのデータの読出し処理または書込処理の制御を行ない、
前記所定のビットは、テストモード時に、前記ワード線数が最大のモジュール内のワード線の特定に用いられ、かつ自己のモジュールのワード線の特定には用いられないビットである、請求項３記載の半導体集積回路。
【請求項５】
前記半導体集積回路は、共通のアドレス信号が入力され、前記アドレス信号を構成する１個以上のビットによって動作が制御される複数個のバンクを有し、
前記各バンクは、
テストモード時には、前記動作の制御を行なうアドレス信号を構成する１個以上のビットの値の如何に係らず、メモリセルからのデータの読出し処理または書込処理の制御を行なう制御回路を備える、請求項１記載の半導体集積回路。
【請求項６】
前記半導体集積回路は、カラム単位の冗長回路を有する、請求項１記載の半導体集積回路。
【請求項７】
前記エラーレジスタは、アドレス信号が所定の値を示すときに、保持しているエラーデータを出力し、
前記エラーデータを受けて、前記冗長回路を用いて欠陥のあるメモリセルを救済するための救済コードを生成する救済コード生成回路とを備えた請求項６記載の半導体集積回路。
【請求項８】
前記半導体集積回路は、
少なくとも１つのヒューズ素子を含み、前記ヒューズ素子の状態に応じた救済コードを出力するプログラム回路と、
救済コードを保持するレジスタと、
前記プログラム回路から出力される救済コード、および前記レジスタから出力される救済コードのいずれかを選択して出力するセレクタと、
前記セレクタから出力される救済コードに応じて、欠陥のあるメモリセルの救済の制御を行なう救済制御回路とを備えた請求項７記載の半導体集積回路。
【請求項９】
前記半導体集積回路は、
少なくとも１つのヒューズ素子を含み、前記ヒューズ素子の状態に応じた救済コードを出力するプログラム回路と、
救済コードを保持するレジスタと、
前記プログラム回路から出力される救済コード、および前記レジスタから出力される救済コードのいずれかを選択して出力するセレクタと、
前記セレクタから出力される救済コードに応じて、欠陥のあるメモリセルの救済の制御を行なう救済制御回路と、
２段階のテストの実行を制御するプロセッサとを備え、
前記プロセッサは、第１段階のテストにおいて、前記救済制御回路により救済を行なわせることなく、メモリセルへのテストデータの書込み、およびメモリセルからのテストデータの読出しを制御し、
前記第１段階のテストによって前記エラーレジスタに格納されたエラーデータに応じた救済コードを生成して前記レジスタに格納させ、
第２段階のテストにおいて、前記セレクタに、前記レジスタからの救済コードを出力させて前記救済制御回路による救済を行なわせつつ、メモリセルへのテストデータの書込み、およびメモリセルからのテストデータの読出しを制御する、請求項６記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路に関し、特に、テスト機能を有する半導体集積回路に関する。
【０００２】
【従来の技術】
従来から、冗長回路（スペアメモリ）を内蔵した半導体集積回路が知られている。
【０００３】
たとえば、特許文献１では、テコーダを有するメモリアレイと、外部制御ピンによりテストモードを設定した際にアドレス、読出し／書込み制御信号、書込みデータ、読出し期待値データを制御クロックに応じて生成する第１の制御回路と、前記メモリアレイの読出し結果と前記読出し期待値データを比較する第１の比較器と、この第１の比較器の出力に応じて不一致時に該当アドレスを記憶するアドレスレジスタと、通常動作時に該アドレスレジスタ内アドレスと外部アドレスの比較を行う第２の比較器と、この第２の比較器の出力結果に対応して前記メモリアレイとスペアメモリを切替えてアクセスする第２の制御回路とを具備した半導体集積回路が開示されている。
【０００４】
【特許文献１】
特開平１−２２４９９８号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上述の特許文献１では、次のような問題がある。
【０００６】
まず、冗長回路の数だけのアドレスレジスタが必要となる。そのため半導体集積回路の規模が大きくなる。
【０００７】
また、冗長回路の数よりもエラーの回数、つまり読出し結果と読出し期待値が異なる回数が多いときには、超過分のエラーが発生したアドレスは、アドレスレジスタに記憶できないので、エラーが発生したメモリセルの位置をすべて特定することができない。
【０００８】
それゆえに、本発明の目的は、回路の規模を大きくすることなく、冗長回路の数よりもエラーの回数が多い場合でも、エラーのあったメモリセルの位置を特定することができるテストを行なう半導体集積回路を提供することである。
【０００９】
【課題を解決するための手段】
上記課題を解決するために、この発明に係わる半導体集積回路は、テストモード時に、活性化されたワード線に接続されている各メモリセルから読出されたデータの値と、各メモリから読出されるべき期待値とを、カラムごとに比較する比較器と、比較器による比較結果に基づくエラーデータを累積保持するエラーレジスタとを備える。エラーデータの各ビットは、対応するカラムについての比較器による比較結果を示す。各ビットは、対応するカラムについての比較結果がどのワード線を活性化したときでも常に等しいときには、第１の論理値をとり、対応するカラムについての比較結果が一度でも異なるときには、第２の論理値をとる。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を用いて説明する。
【００１１】
＜第１の実施形態＞
本実施の形態は、２つのモジュールを含む半導体集積回路におけるメモリテストに関する。
【００１２】
（構成）
図１は、第１の実施形態に係る半導体集積回路の構成を示す。同図を参照して、この半導体集積回路１００は、２つのモジュールＡ，Ｂと、外部バスＩ／Ｆ８と、救済コード生成回路４とを含む。２つのモジュールＡ，Ｂとは、共通の内部アドレスバスおよび共通の内部データバスに接続され、通常時には、それぞれのチップセレクト信号によって動作が制御される。
【００１３】
（モジュールＡ）
モジュールＡは、ＳＲＡＭセルアレイ５１ａと、ゲート回路４１ａと、ワードドライバ５ａと、アドレスデコータ６ａと、制御回路７ａと、比較器（ＣＭＰ）１１ａと、エラーレジスタ１２ａと、アドレスデコーダ１３ａと、トライステートバッファ１４ａと、ＮＯＲ回路２０と、ＡＮＤ回路２１と、ＯＲ回路２２と、プログラム回路３０ａとを含む。
【００１４】
ＳＲＡＭセルアレイ５１ａは、行列状に配列され、行方向に４Ｋ個、列方向に３３個のメモリセルを含む。このうちの１列は、冗長回路である。ＳＲＡＭセルアレイ５１ａ内のメモリセルの選択のため、ワード線が４Ｋ個、ビット線対が３３個備えられている。
【００１５】
アドレスデコータ６ａは、ロウコーダおよびカラムデコーダからなる。
ロウデコーダは、内部アドレスバスを通じて送られる３２ビットのアドレス信号の所定の複数ビットで構成されるロウアドレスにしたがって、活性化するワード線を特定する。
【００１６】
カラムデコーダは、内部アドレスバスを通じて送られる３２ビットのアドレス信号の所定の複数ビットで構成されるカラムアドレスにしたがって、カラムを選択する。カラムデコータは、メモリテストモード時には、カラムアドレスの値に係りなく、すべてのカラムを選択する。
【００１７】
外部から与えられるアドレス信号は、２つのモジュールのＳＲＡＭセルアレイのうち、行方向のサイズが大きなＳＲＡＭセルアレイ５１ｂを選択できるように与えられる。すなわち、後述するモジュールＢのＳＲＡＭセルアレイ５１ｂの４Ｋ個のワード線が指定できるように、３２ビットのアドレスのうち１８〜２９ビット目が使用される。すなわち、アドレス信号は、３２’ｂ００００  ００００００００  ００００  ００００  ００００  ００００  ００００〜３２’ｂ００００  ００００  ００００  ００００  ００１１  １１１１  １１１１  １１００まで変化する（この表記では、最下位ビット（ＬＳＢ）を左側に、最上位ビット（ＭＳＢ）を右側に記している。）。しかしながら、モジュールＡでは、ＳＲＡＭセルアレイ５１ａのワード線の数が１Ｋなので、アドレス信号の１８ビット目と１９ビット目は、使用されない。
【００１８】
ワードドライバ５ａは、アドレスデコータ６ａで特定されたロウアドレスに対応するワード線を活性化させる。
【００１９】
アドレスデコーダ１３ａは、アドレス信号が所定の値のときに「１」（アサート）となる信号を出力する。
【００２０】
トライステートバッファ１４ａは、アドレスデコーダ１３ａから出力される信号が「１」（アサート）のときに、エラーレジスタ１２ａに保持されているエラーデータを内部データバスを通じて外部バスＩ／Ｆ８および救済コード生成回路４へ出力する。
【００２１】
ゲート回路４１ａは、カラムごとに、つまり各ビット線対ごとに、入出力回路９ａとトライステートバッファ１０ａとを含む。
【００２２】
入出力回路９ａは、書込み時には、内部アドレスバスを介して送られる書込みデータをビット線対へ送り、読出し時には、ビット線対のデータを増幅して、読出しデータとしてトライステートバッファ１０ａおよび比較器１１ａへ出力する。
【００２３】
トライステートバッファ１０ａは、一種のスイッチ回路であり、メモリテストモード信号が「１」（アサート）のときに、入出力回路９ａから出力される読出しデータを内部データバスへ出力せず、メモリテストモード信号が「０」（ネゲート）のときに、入出力回路９ａから出力される読出しデータを内部データバスへ出力する。これによって、メモリテストモード時には、メモリセルから読出された読出しデータは、内部データバスへ出力されない。これは、メモリテストモード時には、他のモジュールＢにおいても、同時にメモリセルからデータが読出されるので、内部データバスにおいて双方の読出しデータが衝突することを防止ためである。
【００２４】
メモリテストモード時には、外部制御信号にしたがって、メモリテストモード信号が「１」（アサート）となる。また、通常時には、外部制御信号にしたがって、モジュールＡを選択するときには、チップセレクト信号ＣＳ１が「１」（アサート）となる。
【００２５】
ＮＯＲ回路２０、ＡＮＤ回路２１、およびＯＲ回路２２によって、メモリテストモード信号が「１」（アサート）で、かつアドレス信号の１８ビット目と１９ビット目がいずれも「０」のとき、またはチップセレクト信号ＣＳ１が「１」（アサート）のときに、ＯＲ回路２２からアサートの信号が制御回路７ａに送られる。
【００２６】
制御回路７ａは、ＳＲＡＭセルアレイ５１ａへのデータの書込み、およびＳＲＡＭセルアレイ５１ａへのデータの読出しの制御を行なう。制御回路７ａは、ＯＲ回路２２からの信号がアサートのときにのみ、ＳＲＡＭセルアレイ５１ａへのデータの書込みまたは読出し処理を行なわせる。これによって、メモリテストモード時には、チップセレクト信号ＣＳ１の値の如何に係らず、ＳＲＡＭセルアレイ５１ａへのデータの書込みまたは読出しが行なわれる。
【００２７】
これにより、モジュールＡでは、メモリテストモード信号が「１」（アサート）のときには、アドレス信号の１８ビット目と１９ビット目が「００」のときのみ、読出しまたは書込み処理が行なわれ、アドレス信号の１８ビット目と１９ビット目が「０１」のとき、「１０」のとき、または「１１」のときには、読出しまたは書込み処理が行なわれない。これにより、メモリテスト時に、同一のワード線が複数回活性化されるのを防止できる。
【００２８】
比較器１１ａは、一方で、外部から内部データバスを通じて３２ビットの期待値が入力される。入力される期待値の各ビットの値は、その各ビットに対応するカラムから正しくデータが読出されるときの値である。比較器１１ａは、他方で、ＳＲＡＭセルアレイ５１ａの３２個のカラムからの読出しデータが入力される。比較器１１ａは、期待値と読出しデータをカラムごとに、つまり１ビットずつ、比較を行なう。
【００２９】
エラーレジスタ１２ａは、比較結果に基づく３２ビットのエラーデータを保持する。エラーデータの各ビットは、対応するカラムについての比較結果を示す。この各ビットは、どのワード線を活性化したときでも、比較結果が等しいときには、「０」となり、どれか１つのワード線を活性化したときに、比較結果が異なるときがあったときには、「１」となる。
【００３０】
（モジュールＢ）
モジュールＢの構成は、モジュールＡの構成と概ね共通する。ただし、モジュールＢのＳＲＭＡセルアレイ５１ｂは、行方向に４Ｋ個、列方向に３３個のメモリセルを含む。このうちの１列は、冗長回路である。ＳＲＡＭセルアレイ５１ｂ内のメモリセルの選択のため、ワード線が４Ｋ個、ビット線対が３３個備えられている。
【００３１】
また、モジュールＢは、ＮＯＲ回路２０、ＡＮＤ回路２１、およびＯＲ回路２２は含まず、ＯＲ回路２３を含む。。
【００３２】
メモリテストモード時には、外部制御信号にしたがって、メモリテストモード信号が「１」（アサート）となる。また、通常時には、外部制御信号にしたがって、モジュールＢを選択するときには、チップセレクト信号ＣＳ２が「１」（アサート）となる。ＯＲ回路２３は、メモリテストモード信号が「１」（アサート）のとき、または、チップセレクト信号ＣＳ２が「１」（アサート）のときにアサートとなる信号を制御回路７ｂに出力する。
【００３３】
制御回路７ｂは、ＳＲＡＭセルアレイ５１ｂへのデータの書込み、およびＳＲＡＭセルアレイ５１ｂへのデータの読出しの制御を行なう。制御回路７ｂは、ＯＲ回路２３から出力される信号がアサートのときにのみ、ＳＲＡＭセルアレイ５１ｂへのデータの書込みまたは読出し処理を行なわせる。これによって、メモリテストモード時には、チップセレクト信号ＣＳ２の値の如何に係らず、ＳＲＡＭセルアレイ５１ｂへのデータの書込みまたは読出しが行なわれる。
【００３４】
外部バスＩ／Ｆ８は、外部からのアドレス信号を内部アドレスバスへ出力し、外部からのデータを内部データバスへ出力するとともに、内部データバスを通じて送られるデータを外部へ出力し、外部からの制御信号をその制御信号に関連する構成要素へ出力する。
【００３５】
救済コード生成回路４は、エラーレジスタ１２ａ，ｂからデータバスを介して送られてくる３２ビットのエラーデータに基づいて１つの不良カラムを特定し、６ビットの救済コードを生成する。６ビットの救済コードの各ビットは、下位ビットから順に、Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、およびＣ５とする。救済コード生成回路４は、複数の不良カラムがあるときには、１つの不良カラムを選択して、救済コードを生成する。図２は、不良のあるカラムと救済コードとの対応を示す。これによって、エラーレジスタ１２ａ，ｂに保持されているメモリテスト結果であるエラーデータを用いて、欠陥救済を行なうことができる。
【００３６】
（欠陥救済に関連する構成）
図３は、欠陥救済に関連する半導体集積回路内の構成要素を示す。
【００３７】
同図では、モジュールＡに関しての欠陥救済のための回路を示すが、モジュールＢについても同様である。ＳＲＡＭセルアレイ５１ａは、カラムリダンダンシ付きＳＲＡＭセルアレイであり、１つのスペアカラムを有する。
【００３８】
プログラム回路３０ａは、６個のヒューズ素子Ｆ０、Ｆ１、Ｆ２、Ｆ３、Ｆ４、およびＦ５を含み、各ヒューズ素子の設定状態に応じた６ビットの救済コードを出力する。図４は、各ヒューズ素子の状態と救済コードのビットとの対応を示す図である。たとえば、ヒューズ素子Ｆ０の状態が非切断のときに、救済コードのビットＣ０が「０」に設定され、ヒューズ素子Ｆ０の状態が切断のときに、救済コードのビットＣ０が「１」に設定される。
【００３９】
デコーダ３１ａおよび３２個のセレクタ３５は、救済制御回路８１ａを構成する。この救済制御回路８１ａにより、欠陥のあるメモリセルの救済の制御が行なわれる。
【００４０】
デコーダ３１ａは、プログラム回路３０ａから出力される６ビットの救済コードより、３２ビットのスペアセレクタ制御信号を出力する。
【００４１】
図５は、プログラム回路３０ａの各ヒューズ素子の状態とスペアセレクタ制御信号との対応を示す。たとえば、第３０カラムが不良の場合には、プログラム回路３０に設定されるヒューズ素子Ｆ０、Ｆ１、Ｆ２、Ｆ３、Ｆ４、Ｆ５の状態は、それぞれ１、１、１、１、０、１となる。ここで、状態が「０」は、非切断を示し、状態が「１」は、切断を示す。プログラム回路３０ａは、この各ヒューズ素子の状態によって、救済コード６’ｂ１１１１０１を出力する。デコータ３１は、図５に示す対応表に基づいて、このヒューズ素子の状態に対応して、３２’ｂ００００  ００００  ００００  ００００  ００００  ００００  ００００  ００１１のスペアセレクタ制御信号を生成する。
【００４２】
セレクタ３５は、各カラムに対応して設けられており、スペアセレクタ制御信号が入力される。セレクタ３５は、スペアセレクタ制御信号の対応するビットが「０」の場合には、対応するカラムのビット線対を、対応する入出力回路９ａと接続し、対応するビットが「１」の場合には、右隣のカラムのビット線対を、対応する入出力回路９ａと接続する。
【００４３】
図５の対応表より、第Ｋ番目のカラムが不良になった場合には、Ｋ番目〜３１番目のカラムに対応する各セレクタは、それぞれ、（Ｋ＋１）番目〜３１番目、およびスペアカラムを選択する。たとえば、３２’ｂ００００  ００００  ００００  ００００  ００００  ００００  ００００  ００１１のスペアセレクタ制御信号が入力されたときには、第ｎ番目（ｎ＝０〜２９）のカラムに対応するセレクタは、それぞれ第ｎ番目（ｎ＝０〜２９）のカラムを選択する。第３０番目のカラムに対応するセレクタは、第３１番目のカラムを選択する。第３１番目のカラムに対応するセレクタは、スペアカラムを選択する。これにより、不良のある第３０番目のカラムへのデータの書込みおよび読出しは、行なわれない。
【００４４】
（動作）
次に、テスト動作に係る各種信号の時間変化を示す図６を参照して、この半導体集積回路１００のテスト時の動作について説明する。
【００４５】
まず、１サイクルごとに、書込み／読出し制御信号Ｒ／Ｗが変化して、書込みと読出しが交互に行なわれる。
【００４６】
書込みサイクルにおいて、内部アドレスバスを介してロウアドレス信号が入力されると、そのロウアドレスに対応するワード線が活性化する。
【００４７】
そして、活性化されたワード線に接続している各メモリセルに、内部データバスを介して入力される３２ビットのテストデータ３２’ｈ０１０１  ０１０１の対応するビットの値が書込まれる。
【００４８】
次に、読出しサイクルにおいて、１サイクル前の書込みサイクルで与えられたロウアドレスと同一のロウアドレスが与えられ、そのロウアドレスに対応するワード線が活性化する。
【００４９】
そして、活性化されたワード線に接続している３２個すべてのメモリセルからのデータが３２ビットの読出しデータとして出力される。
【００５０】
ここで、モジュールＡでは、書込んだテストデータと同一のデータが読出しデータとして、常に出力されるとする。すなわち、読出しデータは、常に、３２’ｈ０１０１  ０１０１とする。
【００５１】
モジュールＡの比較器１１ａは、期待値、つまり書込みを行なったテストデータと、読出しデータとの比較を行なう。モジュールＡでは、書込んだテストデータと同一のデータが読出しデータとして出力されるので、比較結果は等しくなる。
【００５２】
モジュールＡの比較器１１ａは、エラーが発生したビット線対がなかったことを示す３２ビットデータ、３２’ｈ００００  ００００をエラーデータとしてモジュールＡのエラーレジスタ１２ａに出力する。
【００５３】
一方、モジュールＢでは、ロウアドレスが３２’ｈ００００  ０００２のときに、書込んだテストデータと異なるデータが読出しデータとして出力されるものとする（図６中の（１）に示す）。
【００５４】
モジュールＢの比較器１１ｂは、期待値、つまり書込みを行なったテストデータと、読出しデータとの比較を行なう。モジュールＢでは、書込んだテストデータと異なるデータが読出しデータとして出力されるので、比較結果は、異なる。
【００５５】
モジュールＢの比較器１１ｂは、エラーがあったビット線対を特定する３２ビットデータ、すなわち３２’ｈ００００  ００１０をエラーデータとして出力する（図６中の（２）に示す）。
【００５６】
モジュールＢのエラーレジスタ１２ｂは、一度でもビット値が「１」となったビットは、この値を保持する（図６中の（３）に示す）。
【００５７】
上述の終了がすべてのロウアドレスについて行なわれた後、内部アドレスバスを介して、モジュールＡのエラーレジスタ１２ａに保持されているエラーデータの読出しを指示するアドレス信号３２’ｈ１０００  ００００が入力されると、モジュールＡのアドレスデコータ１３ａおよびトライステートバッファ１４ａによって、モジュールＡのエラーレジスタ１２ａに保持されているエラーデータが内部データバス、および外部バスＩ／Ｆを介して外部へ出力される（図６中の（４）に示す）。
【００５８】
また、内部アドレスバスを介して、モジュールＢのエラーレジスタ１２ｂに保持されているエラーデータの読出しを指示するアドレス信号３２’ｈ１０００  ０００１が入力されると、モジュールＢのアドレスデコータ１３ｂおよびトライステートバッファ１４ｂによって、モジュールＢのエラーレジスタ１２ｂに保持されているエラーデータが内部データバス、および外部バスＩ／Ｆを介して外部へ出力される（図６中の（５）に示す）。
【００５９】
以上のように本実施の形態に係る半導体集積回路によれば、複数のモジュールを含む場合において、３２個のカラムのエラーの有無を示す３２ビットのエラーデータがエラーレジスタ１２ａ，ｂに保持されるので、回路の規模を大きくすることなく、冗長回路の数よりもエラーの回数が多い場合でも、エラーのあったメモリセルが含まれるカラムをすべて特定したテストを行なうことができる。
【００６０】
＜第２の実施形態＞
本実施の形態は、２つのバンクを含む半導体集積回路におけるメモリテストに関する。
【００６１】
（構成）
図７は、第２の実施形態に係る半導体集積回路の構成を示す。同図を参照して、この半導体集積回路２００は、２つのバンクＡ，Ｂを有し、バンクＡは、ＳＲＡＭセルアレイ５３ａで構成され、バンクＢは、ＳＲＡＭセルアレイ５３ｂで構成される。２つのバンクＡ，Ｂは、共通の内部アドレスバスおよび共通の内部データバスに接続される。２つのバンクＡ，Ｂは、通常時には、アドレス信号の１７ビット目によって動作が制御される。
【００６２】
また、この半導体集積回路２００は、２つのバンクに共通のアドレスデコータ８７およびＯＲ回路９０と、ゲート回路４３ａ，ｂと、アドレスデコーダ１３ａ，ｂと、比較器１１ａ，ｂと、エラーレジスタ１２ａ，ｂと、トライステートバッファ１４ａ，ｂと、制御回路８８ａ，ｂと、ワードドライバ８５ａ，ｂと、ＯＲ回路９１，９３と、インバータ９２とを含む。
【００６３】
アドレスデコータ８７は、ロウコーダおよびカラムデコーダからなる。
ロウデコーダは、内部アドレスバスを通じて送られるアドレス信号の所定の複数ビットで構成されるロウアドレスにしたがって、活性化するバンクＡおよびバンクＢのワード線を特定する。
【００６４】
カラムデコーダは、内部アドレスバスを通じて送られるアドレス信号の所定の複数ビットで構成されるカラムアドレスにしたがって、バンクＡおよびバンクＢのカラムを選択する。カラムデコータは、メモリテストモード時には、すべてのカラムを選択する。
【００６５】
メモリテストモード時には、外部制御信号にしたがって、メモリテストモード信号が「１」（アサート）となる。また、通常時には、外部制御信号にしたがって、チップセレクト信号ＣＳ３が「１」（アサート）となるとともに、バンクＡを選択するときには、アドレス信号の１７ビット目が「１」となり、バンクＢを選択するときには、３２ビットのアドレス信号の１７ビット目が「０」となる。
【００６６】
ＯＲ回路９０は、メモリテストモード信号が「１」（アサート）、またはチップセレクト信号ＣＳ３が「１」（アサート）のときに、アサートとなる信号を制御回路８８ａ，ｂに出力する。
【００６７】
ＯＲ回路９１は、メモリテストモード信号が「１」（アサート）、またはアドレス信号の１７ビット目が「１」のときに、アサートとなる信号を制御回路８８ａおよびワードドライバ８５ａへ出力する。
【００６８】
ＯＲ回路９２は、メモリテストモード信号が「１」（アサート）、またはアドレス信号の１７ビット目が「０」のときに、アサートとなる信号を制御回路８８ｂおよびワードドライバ８５ｂへ出力する。
【００６９】
制御回路８８ａは、ＳＲＡＭセルアレイ５３ａへのデータの書込み、およびＳＲＡＭセルアレイ５３ａへのデータの読出しの制御を行なう。制御回路８８ａは、ＯＲ回路９０からの信号がアサートで、かつＯＲ回路９１からの信号がアサートのとき、つまり、メモリテストモード時、または通常時でチップおよびバンクＡが選択されたときにのみ、バンクＡ（ＳＲＡＭセルアレイ５３ａ）へのデータの書込みまたは読出し処理を行なわせる。これによって、メモリテストモード時には、アドレス信号の１７ビット目の値の如何に係らず、バンクＡ（ＳＲＡＭセルアレイ５３ａ）へのデータの書込みまたは読出しが行なわれる。
【００７０】
ワードドライバ８５ａは、ＯＲ回路９１からの信号がアサートのとき、つまり、メモリテストモード時、または通常時でバンクＡが選択されたときに、バンクＡのワード線を活性化する。
【００７１】
制御回路８８ｂは、ＳＲＡＭセルアレイ５３ｂへのデータの書込み、およびＳＲＡＭセルアレイ５３ｂへのデータの読出しの制御を行なう。制御回路８８ｂは、ＯＲ回路９０からの信号がアサートで、かつＯＲ回路９３からの信号がアサートのとき、つまり、メモリテストモード時、または通常時でチップおよびバンクＢが選択されたときにのみ、バンクＢ（ＳＲＡＭセルアレイ５３ｂ）へのデータの書込みまたは読出し処理を行なわせる。これによって、メモリテストモード時には、アドレス信号の１７ビット目の値の如何に係らず、バンクＢ（ＳＲＡＭセルアレイ５３ｂ）へのデータの書込みまたは読出しが行なわれる。
【００７２】
ワードドライバ８５ｂは、ＯＲ回路９３からの信号がアサートのとき、つまり、メモリテストモード時、または通常時でバンクＢが選択されたときに、バンクＢのワード線を活性化する。
【００７３】
再び、図７を参照して、ゲート回路４３ａ，ｂと、アドレスデコーダ１３ａ，ｂと、比較器１１ａ，ｂと、エラーレジスタ１２ａ，ｂと、トライステートバッファ１４ａ，ｂとは、第１の実施形態と同様である。したがって、２つのバンクＡ，Ｂを含む半導体集積回路でも、メモリテストモード時には、２つのバンクに対して、同時にテストデータの書込みおよび読出しを行なうことができる。
【００７４】
以上のように、本実施の形態に係る半導体集積回路によれば、複数のバンクを含むときでも、３２個のカラムのエラーの有無を示す３２ビットのエラーデータがエラーレジスタ１２ａ，ｂに保持されるので、回路の規模を大きくすることなく、冗長回路の数よりもエラーの回数が多い場合でも、エラーのあったメモリセルが含まれるカラムをすべて特定することができるテストを行なうことができる。
【００７５】
＜第３の実施形態＞
本実施の形態は、２段階のテストを行なうメモリテストモード機能を有する半導体集積回路に関する。
【００７６】
（構成）
図８は、第３の実施形態に係る半導体集積回路の構成の概略を示す。同図を参照して、この半導体集積回路３００は、ＣＰＵ３６と、プログラム回路３０ａ，ｂと、ソフトヒューズレジスタ３９ａ，ｂと、セレクタ３８ａ，ｂと、救済制御回路８１ａ，ｂとを含む。
【００７７】
プログラム回路３０ａ，ｂは、第１の実施形態で説明したものと同様であり、各ヒューズの設定状態に応じた救済コードを出力する。
【００７８】
ソフトヒューズレジスタ３９ａ，ｂは、ＣＰＵ３６で生成された６ビットの救済コードが格納される。ソフトヒューズレジスタ３０ａ，ｂには、初期値として６’ｂ００００００が保持されている。
【００７９】
セレクタ３８ａ，ｂは、プログラム回路３０ａ，ｂから出力された救済コード、およびソフトヒューズレジスタ３９ａ，ｂから出力された救済コードのいずれかを選択して、救済制御回路８１ａ，ｂに出力する。
【００８０】
ＣＰＵ（プロセッサ）３６は、専用のテストプログラムにより、２段階のテストを行なう。つまり、ＣＰＵ３６は、外部からのアドレス信号や制御信号に依拠することなく、専用のテストプログラムに従って、自らアドレス信号および制御信号を順次生成して、半導体集積回路３００内の構成要素を制御することにより２段階のテストを行なう。
【００８１】
各段階のテストにおいて、ＣＰＵ３６は、モジュールＡおよびＢ内のすべてのワード線を順次立ち上げて、テストデータの書込みを行なわせた後、モジュールＡおよびＢ内のすべてのワード線を順次立ち上げて、テストデータの読出しを行なわせる。つまり、ＣＰＵ３６は、このようなテストデータの書込みおよび読出しに必要なすべての制御信号、およびアドレス信号を生成して、関連する構成要素に与える。
【００８２】
第１段階のテストでは、ＣＰＵ３６は、救済制御回路８１ａ，ｂでの救済処理は行なわせない。第１段階のテストの結果、エラーがなかったときには、ＣＰＵ３６は、救済を行なう必要がない旨を外部へ通知し、エラーがあったときには、ＣＰＵ３６は、その救済コードをソフトヒューズレジスタ３９ａ，ｂに格納させる。
【００８３】
第２段階のテストでは、ＣＰＵ３６は、セレクタ３８ａ，ｂにソフトヒューズレジスタ３９ａ，ｂから出力される救済コードを選択して救済制御回路８１ａ，ｂに出力させて、救済制御回路８１ａ，ｂにおいて、この救済コードに応じたスペアセレクタ制御信号を出力することにより、救済処理を行なわせる。第２段階のテストの結果、エラーがあったときには、ＣＰＵ３６は、救済は十分に行なわれなかった旨を外部へ通知し、エラーがなかったときには、その救済コードにより救済が十分に行なわれたことが確認されたので、ＣＰＵ３６は、救済コードを外部へ出力する。
【００８４】
ＣＰＵ３６は、プログラム回路３０ａ，ｂの各ヒューズ素子が、救済が十分に行なえると確認された救済コードを出力するように設定処理が行なわれた後は、モジュールＡ，Ｂへのデータの書込みおよび読出し時には、セレクタ３８ａ，ｂにプログラム回路３０ａ，ｂから出力される救済コードを選択して救済制御回路８１ａ，ｂに出力させ、救済制御回路８１ａ，ｂにおいて、この救済コードに応じたスペアセレクタ制御信号を出力させることにより、救済処理を行なわせる。
【００８５】
（動作）
次に、図９に示すフローチャートを参照して、この半導体集積回路３００の動作について説明する。
【００８６】
まず、ＣＰＵ３６は、半導体集積回路３００に第１段階のテストを行なわせる。すなわち、モジュールＡ，Ｂへテストデータを書込ませ、モジュールＡ，Ｂからテストデータを読出させる。この第１段階のテストでは、救済制御回路８１ａ，ｂでの救済処理は行なわせない（ステップＳ２００）。
【００８７】
第１段階のテストの結果、エラーレジスタ１２ａ，ｂで保持されたエラーデータがＣＰＵ３６に送られ、ＣＰＵ３６は、救済コードを生成する。生成された救済コードが６’ｂ００００００のとき、つまりエラーがなかったときには、ＣＰＵ３６は、救済を行なう必要がない旨を外部へ通知する（ステップＳ２０１、Ｓ２０７）。
【００８８】
一方、生成された救済コードが６’ｂ００００００以外のとき、つまりエラーがあったときには、ＣＰＵ３６は、その救済コードを対応するモジュールのソフトヒューズレジスタ３９ａまたは３９ｂに格納させる（ステップＳ２０１、Ｓ２０２）。
【００８９】
次に、ＣＰＵ３６は、半導体集積回路３００に第２段階のテストを行なわせる。すなわち、モジュールＡ，Ｂへテストデータを書込ませ、モジュールＡ，Ｂからテストデータを読出させる。この第２段階のテストでは、ＣＰＵ３６は、セレクタ３８ａ，ｂにソフトヒューズレジスタ３９ａ，ｂから出力される救済コードを選択して救済制御回路８１ａ，ｂに出力させる。救済制御回路８１ａ，ｂでは、この救済コードに応じたスペアセレクタ制御信号を出力することにより、救済処理が行なわれる（ステップＳ２０３）。
【００９０】
次に、第２段階のテストの結果、エラーレジスタ１２ａ，ｂで保持されたエラーデータがＣＰＵ３６に送られ、ＣＰＵ３６は、救済コードを生成する。生成された救済コードが６’ｂ００００００以外のとき、つまりエラーがあったときには、ＣＰＵ３６は、救済は十分に行なわれなかった旨を外部へ通知する（ステップＳ２０４、Ｓ２０７）。
【００９１】
一方、生成された救済コードが６’ｂ００００００のとき、つまりエラーがなかったときには、その救済コードにより救済が十分に行なわれたことが確認されたので、ＣＰＵ３６は、救済コードを外部へ出力する（ステップＳ２０５）。
【００９２】
そして、プログラム回路３０ａ，ｂの各ヒューズ素子が、この救済コードを出力するように設定処理が行なわれる。そして、これ以降のモジュールＡ，Ｂへのデータの書込みおよび読出し時には、ＣＰＵ３６は、セレクタ３８ａ，ｂにプログラム回路３０ａ，ｂから出力される救済コードを選択して救済制御回路８１ａ，ｂに出力させる。救済制御回路８１ａ，ｂでは、この救済コードに応じたスペアセレクタ制御信号を出力することにより、救済処理が行なわれる（ステップＳ２０６）。
【００９３】
以上のように本実施の形態に係る半導体集積回路によれば、第１段階のテストの結果生成された救済コードをソフトヒューズレジスタ３９ａ，ｂに格納させて、第２段階のテストで、このソフトヒューズレジスタ３９ａ，ｂ内の救済コードで救済が可能かどうかの確認を行ない、救済が可能と確認されてはじめて、プログラム回路３０ａ，ｂ内のヒューズ素子の設定処理を行なうので、ヒューズ素子を誤って切断するのを防止することができる。
【００９４】
＜変形例＞
本発明は、上記の実施形態に限定されるものではなく、たとえば以下の変形例も含まれる。
【００９５】
第１の実施形態では、２つのモジュール内のＳＲＡＭセルアレイのサイズが異なる場合について説明したが、２つのモジュール内のＳＲＡＭセルアレイのサイズが同一であってもよい。
【００９６】
また、第２の実施形態では、２つのバンク（ＳＲＡＭセルアレイ）のサイズが同一である例について説明したが、これに限定するものではなく、２つのバンク（ＳＲＡＭセルアレイ）のサイズが異なってもよい。異なる場合には、たとえば、第１の実施形態のように、サイズの小さいバンクの方に、アドレス信号の１８ビット目と１９ビット目が「００」のときのみ、読出しまたは書込み処理が行なわれ、アドレス信号の１８ビット目と１９ビット目が「０１」のとき、「１０」のとき、または「１１」のときには、読出しまたは書込み処理が行なわれないようにするような回路が必要となる。
【００９７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００９８】
【発明の効果】
この発明に係わる半導体集積回路によれば、テストモード時に、活性化されたワード線に接続されている各メモリセルから読出されたデータの値と、各メモリから読出されるべき期待値とを、カラムごとに比較する比較器と、比較器による比較結果に基づくエラーデータを累積保持するエラーレジスタとを備え、エラーデータの各ビットは、対応するカラムについての比較器による比較結果を示し、各ビットは、前記対応するカラムについての比較結果がどのワード線を活性化したときでも常に等しいときには、第１の論理値をとり、対応するカラムについての比較結果が一度でも異なるときには、第２の論理値をとるので、回路の規模を大きくすることなく、冗長回路の数よりもエラーの回数が多い場合でも、エラーのあったメモリセルの位置（つまりどのカラムに含まれるか）をすべて特定したテストを行なうことができる。
【図面の簡単な説明】
【図１】第１の実施形態に係る半導体集積回路の構成を示す図である。
【図２】不良カラムと救済コードとの対応を示す図である。
【図３】欠陥救済に関連する構成を示す図である。
【図４】各ヒューズ素子の状態と救済コードのビットとの対応を示す図である。
【図５】ヒューズ素子の状態とスペアセレクタ制御信号との対応を示す図である。
【図６】テスト動作に係る各種信号の時間変化を示す図である。
【図７】第２の実施形態に係る半導体集積回路の構成を示す図である。
【図８】第３の実施形態に係る半導体集積回路の構成の概略を示す図である。
【図９】第３の実施形態におけるテスト処理の動作手順を示すフローチャートである。
【符号の説明】
４  救済コード生成回路、５ａ，５ｂ，８５ａ，８５ｂ  ワードドライバ、６ａ，６ｂ、１３ａ，１３ｂ，８７  アドレスデコータ、７ａ，７ｂ，８８ａ，８８ｂ  制御回路、８  外部バスＩ／Ｆ、９ａ，９ｂ  入出力回路、１０ａ，１０ｂ，１４ａ，１４ｂ  トライステートバッファ、１１ａ，１１ｂ  比較器、１２ａ，１２ｂ  エラーレジスタ、２０  ＮＯＲ回路、２１  ＡＮＤ回路、２２，２３，９０，９１，９３  ＯＲ回路、９２  インバータ、３０ａ，３０ｂ  プログラム回路、３１ａ，３１ｂ  デコーダ、３６  ＣＰＵ、３５，３８ａ，３８ｂ  セレクタ、３９ａ，３９ｂ  ソフトヒューズレジスタ、４１ａ，４１ｂ，４３ａ，４３ｂ  ゲート回路、５１ａ，５１ｂ，５３ａ，５３ｂ  ＳＲＡＭセルアレイ、８１ａ，８１ｂ  救済制御回路、１００，２００，３００  半導体集積回路。
【図１】
2004280997.tif 000003
【図２】
2004280997.tif 000004
【図３】
2004280997.tif 000005
【図４】
2004280997.tif 000006
【図５】
2004280997.tif 000007
【図６】
2004280997.tif 000008
【図７】
2004280997.tif 000009
【図８】
2004280997.tif 000010
【図９】
2004280997.tif 000011