(57)【要約】【課題】外部メモリとして搭載された揮発性半導体メモリ、および不揮発性半導体メモリをメモリＢＩＳＴにより効率よくテストする。【解決手段】外部メモリである不揮発性半導体メモリをテストする外部メモリＢＩＳＴ２１には、不揮発性半導体メモリ４のテストにおいて、ブロックアドレスの監視、バッドブロックアドレスの格納、ならびにテスト制御などの機能を有するバッドブロックアドレス管理テーブルが設けられている。この管理テーブル３５は、バッドブロック総数許容値設定レジスタに任意に設定されたバッドブロック総数の許容値とバッドブロック総数カウンタによりカウントされるテストのバッドブロックの総数とを比較し、カウンタ値が許容値に達した際にバッドブロック数上限フラグを立てテストフェイルとする。【選択図】  図１
2007287292.tif 000002
【特許請求の範囲】
【請求項１】
チップ内に内蔵された内蔵半導体メモリとメモリテストを行うメモリ用テスト部とを含んだ半導体チップと、前記半導体チップとは別の半導体チップに設けられた揮発性半導体メモリ、および不揮発性半導体メモリからなる外部半導体メモリとを有した半導体集積回路装置であって、
前記メモリ用テスト部は、
前記内蔵メモリをテストする内蔵メモリ用テスト回路部と、
前記外部メモリをテストする外部メモリ用テスト回路部とを備え、
前記外部メモリ用テスト回路部は、
前記不揮発性半導体メモリのテストにおいて、ブロックアドレスの監視、バッドブロックアドレスの格納、ならびにテスト制御を行うバッドブロックアドレス管理テーブルを備え、
前記バッドブロックアドレス管理テーブルは、
前記不揮発性半導体メモリのテストにおいて、前記不揮発性半導体メモリをフェイルとするバッドブロック総数の割合を可変にするバッドブロック総数可変判定部を備えたことを特徴とする半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置において、
前記バッドブロック総数可変判定部は、
バッドブロック総数の任意の許容値が設定されるバッドブロック総数許容値設定レジスタと、
前記不揮発性半導体メモリのテストにおいてバッドブロックとなったブロック数をカウントするバッドブロック総数カウンタと、
前記バッドブロック総数許容値設定レジスタに設定されている許容値と前記バッドブロック総数カウンタのカウント値とを比較し、カウント値が許容値よりも大きくなるとテストフェイルの信号を出力する判定部とを備えたことを特徴とする半導体集積回路装置。
【請求項３】
チップ内に内蔵された内蔵半導体メモリとメモリテストを行うメモリ用テスト部とを含んだ半導体チップと、前記半導体チップとは別の半導体チップに設けられた揮発性半導体メモリ、および不揮発性半導体メモリからなる外部半導体メモリとを有した半導体集積回路装置であって、
前記メモリ用テスト部は、
前記内蔵メモリをテストする内蔵メモリ用テスト回路部と、
前記外部メモリをテストする外部メモリ用テスト回路部とを備え、
前記外部メモリ用テスト回路部は、
前記不揮発性半導体メモリのテストにおいて、ブロックアドレスの監視、バッドブロックアドレスの格納、ならびにテスト制御を行うバッドブロックアドレス管理テーブルを備え、
前記バッドブロックアドレス管理テーブルは、
前記不揮発性半導体メモリのテストにおいて、前記不揮発性半導体メモリをフェイルとするバッドブロックの増加割合を可変にするバッドブロック増加数可変判定部を備えたことを特徴とする半導体集積回路装置。
【請求項４】
請求項１記載の半導体集積回路装置において、
前記バッドブロック増加数可変判定部は、
バッドブロック増加数の任意の許容値が設定されるバッドブロック増加数許容値設定レジスタと、
前記不揮発性半導体メモリのテストにおいてバッドブロックとなったブロック増加数をカウントするバッドブロック増加数カウンタと、
前記バッドブロック増加数許容値設定レジスタに設定されている許容値と前記バッドブロック増加数カウンタのカウント値とを比較し、カウント値が許容値よりも大きくなるとテストフェイルの信号を出力する判定部とを備えたことを特徴とする半導体集積回路装置。
【請求項５】
請求項１〜４のいずれか１項に記載の半導体集積回路装置において、
前記外部メモリ用テスト回路部は、
格納されているバッドブロックアドレスとアクセスするブロックアドレスとを比較し、メモリテストにおいて前記バッドブロックをスキップするバッドブロックスキップ部を備えたことを特徴とする半導体集積回路装置。
【請求項６】
請求項５記載の半導体集積回路装置において、
前記バッドブロックスキップ部は、
前記揮発性半導体メモリをテストの際に、前記バッドブロックをスキップするスキップ出力を無効にすること特徴とする半導体集積回路装置。
【請求項７】
請求項１〜６のいずれか１項に記載の半導体集積回路装置において、
前記バッドブロックのマーキング中は前記バッドブロック以外をスキップするブロックスキップ部を備えたことを特徴とする半導体集積回路装置。
【請求項８】
請求項７記載の半導体集積回路装置において、
前記ブロックスキップ部は、
前記揮発性半導体メモリのテストの際に、バッドブロック以外をスキップするスキップ出力を無効とすることを特徴とする半導体集積回路装置。
【請求項９】
請求項１〜８のいずれか１項に記載の半導体集積回路装置において、
前記外部メモリ用テスト回路部は、
前記外部メモリ用テスト回路部の出力信号を取り込んで圧縮して保持し、メモリテストの終了後にその圧縮信号と期待値とを比較し、前記外部メモリ用テスト回路部の誤動作を検出する信号圧縮・比較・判定部を備え、
前記信号圧縮・比較・判定部は、
信号圧縮回路マスク信号が入力された際に、圧縮する信号の対象から外したいシーケンスに対して圧縮信号をホールドすることを特徴とする半導体集積回路装置。
【請求項１０】
請求項９記載の半導体集積回路装置において、
前記信号圧縮・比較・判定部は、
前記バッドブロックアドレス管理テーブルからバス要求の代用信号であるスキップ信号が出力されても、圧縮信号を変化させないことを特徴とする半導体集積回路装置。
【請求項１１】
請求項１〜１０のいずれか１項に記載の半導体集積回路装置において、
前記外部メモリ用テスト回路部は、
前記不揮発性半導体メモリのバッドブロックを検出するデータ比較・判定部を備え、
前記データ比較・判定部は、
ビット比較結果に基づいて、エラービットの累積数をカウントするエラービットカウンタと、
エラービットの任意の許容値を格納するエラービット許容値設定レジスタと、
前記エラービットカウンタのカウント値が許容値よりも大きくなるとエラービットオーバを出力してテストフェイルとするエラービットカウント判定部とを備えたことを特徴とする半導体集積回路装置。
【請求項１２】
請求項１１記載の半導体集積回路装置において、
前記エラービットカウンタは、
任意のタイミングで活性、またはリセット可能であることを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置のテスト技術に関し、特に、外部メモリが設けられた半導体集積回路装置によるメモリテストに有効な技術に関する。
【背景技術】
【０００２】
近年、システムオンチップなどの半導体集積回路装置に搭載される半導体メモリの数、およびメモリ容量などは、増加の一途をたどり、該半導体集積回路装置におけるテストコストを左右する要因となっている。
【０００３】
この種の半導体メモリのテストは、半導体集積回路装置に搭載されたメモリＢＩＳＴ（Ｂｕｉｌｔ  Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）を用いて行うことが広く知られている。メモリＢＩＳＴは、搭載された半導体メモリを効率よく試験するためのテスト機能が組み込まれたテスト用回路からなる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、上記のような半導体集積回路装置に搭載された半導体メモリのテスト技術では、次のような問題点があることが本発明者により見い出された。
【０００５】
携帯電話端末やＰＡＤなどの電子システムにおいては、小型軽量化の要求が非常に強くなっており、これに伴い、不揮発性半導体メモリとＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの揮発性半導体メモリとを１つのパッケージ搭載された半導体集積回路装置が広く用いられている。
【０００６】
しかしながら、前述したメモリＢＩＳＴは、ＳＤＲＡＭなどの揮発性半導体メモリをテストするものであり、不揮発性半導体メモリをテストする際には、メモリＢＩＳＴによる不揮発性半導体メモリのテストとは別工程においてメモリテストが行われることになる。
【０００７】
それにより、半導体集積回路装置のテスト効率が低下し、製造コストなども大きくなってしまうという問題がある。
【０００８】
本発明の目的は、外部メモリとして搭載された揮発性半導体メモリ、および不揮発性半導体メモリをメモリＢＩＳＴにより効率よくテストする技術を提供することにある。
【０００９】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１１】
本発明は、チップ内に内蔵された内蔵半導体メモリとメモリテストを行うメモリ用テスト部とを含んだ半導体チップと、該半導体チップとは別の半導体チップに設けられた揮発性半導体メモリ、および不揮発性半導体メモリからなる外部半導体メモリとを有した半導体集積回路装置であって、該メモリ用テスト部は、内蔵メモリをテストする内蔵メモリ用テスト回路部と、外部メモリをテストする外部メモリ用テスト回路部とを備え、該外部メモリ用テスト回路部は、不揮発性半導体メモリのテストにおいて、ブロックアドレスの監視、バッドブロックアドレスの格納、ならびにテスト制御を行うバッドブロックアドレス管理テーブルを備え、該バッドブロックアドレス管理テーブルは、不揮発性半導体メモリのテストにおいて、不揮発性半導体メモリをフェイルとするバッドブロック総数の割合を可変にするバッドブロック総数可変判定部を備えたものである。
【００１２】
また、本発明は、チップ内に内蔵された内蔵半導体メモリとメモリテストを行うメモリ用テスト部とを含んだ半導体チップと、該半導体チップとは別の半導体チップに設けられた揮発性半導体メモリ、および不揮発性半導体メモリからなる外部半導体メモリとを有した半導体集積回路装置であって、該メモリ用テスト部は、内蔵メモリをテストする内蔵メモリ用テスト回路部と、外部メモリをテストする外部メモリ用テスト回路部とを備え、該外部メモリ用テスト回路部は、不揮発性半導体メモリのテストにおいて、ブロックアドレスの監視、バッドブロックアドレスの格納、ならびにテスト制御を行うバッドブロックアドレス管理テーブルを備え、該バッドブロックアドレス管理テーブルは、不揮発性半導体メモリのテストにおいて、不揮発性半導体メモリをフェイル判定するバッドブロックの増加割合を可変にするバッドブロック増加数可変判定部を備えたものである。
【００１３】
さらに、本願のその他の発明の概要を簡単に示す。
【００１４】
本発明は、前記バッドブロック総数可変判定部が、バッドブロック総数の任意の許容値が設定されるバッドブロック総数許容値設定レジスタと、不揮発性半導体メモリのテストにおいてバッドブロックとなったブロック数をカウントするバッドブロック総数カウンタと、バッドブロック総数許容値設定レジスタに設定されている許容値とバッドブロック総数カウンタのカウント値とを比較し、カウント値が許容値よりも大きくなるとテストフェイルの信号を出力する判定部とを備えたものである。
【００１５】
また、本発明は、前記バッドブロック増加数可変判定部が、バッドブロック増加数の任意の許容値が設定されるバッドブロック増加数許容値設定レジスタと、不揮発性半導体メモリのテストにおいてバッドブロックとなったブロック増加数をカウントするバッドブロック増加数カウンタと、バッドブロック増加数許容値設定レジスタに設定されている許容値とバッドブロック増加数カウンタのカウント値とを比較し、カウント値が許容値よりも大きくなるとテストフェイルの信号を出力する判定部とを備えたものである。
【００１６】
さらに、本発明は、前記外部メモリ用テスト回路部が、格納されているバッドブロックアドレスとアクセスするブロックアドレスとを比較し、メモリテストにおいてバッドブロックをスキップするバッドブロックスキップ部を備えたものである。
【００１７】
また、本発明は、前記バッドブロックスキップ部が、揮発性半導体メモリをテストの際にバッドブロックをスキップするスキップ出力を無効にするものである。
【００１８】
さらに、本発明は、前記バッドブロックのマーキング中においてバッドブロック以外をスキップするブロックスキップ部を備えたものである。
【００１９】
また、本発明は、前記ブロックスキップ部が、揮発性半導体メモリのテストの際に、バッドブロック以外をスキップするスキップ出力を無効とするものである。
【００２０】
さらに、本発明は、前記外部メモリ用テスト回路部が、外部メモリ用テスト回路部の出力信号を取り込んで圧縮して保持し、メモリテストの終了後にその圧縮信号と期待値とを比較し、外部メモリ用テスト回路部の誤動作を検出する信号圧縮・比較・判定部を備え、該信号圧縮・比較・判定部は、信号圧縮回路マスク信号が入力された際に、圧縮する信号の対象から外したいシーケンスに対して圧縮信号をホールドするものである。
【００２１】
さらに、本発明は、前記信号圧縮・比較・判定部が、バッドブロックアドレス管理テーブルからバス要求の代用信号であるスキップ信号が出力されても圧縮信号を変化させないものである。
【００２２】
また、本発明は、前記外部メモリ用テスト回路部が、不揮発性半導体メモリのバッドブロックを検出するデータ比較・判定部を備え、該データ比較・判定部が、ビット比較結果に基づいて、エラービットの累積数をカウントするエラービットカウンタと、エラービットの任意の許容値を格納するエラービット許容値設定レジスタと、エラービットカウンタのカウント値が許容値よりも大きくなるとエラービットオーバを出力してテストフェイルとするエラービットカウント判定部とを備えたものである。
【００２３】
さらに、本発明は、前記エラービットカウンタが、任意のタイミングで活性、またはリセットを可能とするものである。
【発明の効果】
【００２４】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２５】
（１）外部メモリである不揮発性メモリのメモリテストにおいて、バッドブロックの総数、またはバッドブロックの増加数を任意に可変することが可能となる。
【００２６】
（２）上記（１）により、不揮発性半導体メモリの品質に合わせて、該不揮発性半導体メモリのメモリテストを最適化することができるので、メモリテストコストを大幅に削減することができる。
【００２７】
（３）さらに、上記（２）により、半導体集積回路装置の歩留まりを向上させることができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２９】
図１は、本発明の一実施の形態による半導体集積回路装置のブロック図、図２は、図１の半導体集積回路装置に設けられたＢＩＳＴ部の外部メモリＢＩＳＴにおけるインタフェースの構成例を示した説明図、図３は、図１の半導体集積回路装置の内部バスにおけるライトおよびリード動作のタイミングチャート、図４は、図１の半導体集積回路装置に設けられた外部メモリＢＩＳＴの構成例を示すブロック図、図５は、図４の外部メモリＢＩＳＴのメモリテスト用テストパタン発生器に設けられたアルゴリズムパタン発生器の構成例を示すブロック図、図６は、図４の外部メモリＢＩＳＴのメモリテスト用テストパタン発生器に設けられたプログラマブルスクランブラの構成例を示すブロック図、図７は、図４の外部メモリＢＩＳＴに設けられた揮発性半導体メモリ用インタフェースの構成例を示すブロック図、図８は、図４の外部メモリＢＩＳＴに設けられた不揮発性半導体メモリ用インタフェースの構成例を示すブロック図、図９は、図４の外部メモリＢＩＳＴに設けられたデータ比較・判定回路の構成例を示すブロック図、図１０は、図４の外部メモリＢＩＳＴに設けられたバッドブロックアドレス管理テーブルの構成例を示すブロック図、図１１は、図４の外部メモリＢＩＳＴに設けられた信号圧縮・比較・判定回路の構成例を示すブロック図、図１２は、図１の半導体集積回路装置におけるテストの処理例を示すフローチャート、図１３は、図１の半導体集積回路装置に設けられた揮発性半導体メモリ、不揮発性半導体メモリ、および内蔵メモリのテスト処理例を示すフローチャート、図１４は、図４の外部メモリＢＩＳＴを使用した際のテストアルゴリズム例を示す説明図、図１５は、図１３におけるステップＳ２０９の処理を具体的に示したテストの一例を示すフローチャート、図１６は、図１３におけるステップＳ２０９の処理を具体的に示したテストの他の例を示すフローチャート、図１７は、図１５のステップＳ３０２の処理、および図１６のステップＳ４０２の処理における詳細な例を示すフローチャート、図１８は、図１３におけるステップＳ２０９の処理を具体的に示した他のテスト例を示すフローチャート、図１９は、図１の半導体集積回路装置に設けられた揮発性半導体メモリのテスト処理例を示すフローチャートである。
【００３０】
本実施の形態において、半導体集積回路装置１は、１つのパッケージに複数の半導体チップを搭載したシステムインパッケージから構成されている。半導体集積回路装置１は、図１に示すように、システムオンチップ２、揮発性半導体メモリ３、および不揮発性半導体メモリ４から構成されている。
【００３１】
システムオンチップ２は、マイコンコア５、ユーザモジュール６，７、Ｉ／Ｏバッファ８、該システムオンチップ２内に内蔵された内蔵メモリ（内蔵半導体メモリ）９、およびＢＩＳＴ部（メモリテスト部）１０などから構成されている。マイコンコア５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）１２、オプショナルバスマスタインタフェース１３、周辺回路インタフェース１４、外部メモリコントローラ１５、内蔵メモリコントローラ１６からなり、これらは、内部バスＢを介して相互に接続されている。
【００３２】
ＣＰＵ１１は、半導体集積回路装置１におけるすべての制御を司る。ＤＭＡＣ１２は、ユーザモジュール６，７、内蔵メモリ９、ならびにシステムオンチップ２とは別チップとして設けられた外部メモリである揮発性半導体メモリ３や不揮発性半導体メモリ４などの間のデータ転送を行う。
【００３３】
オプショナルバスマスタインタフェース１３は、ユーザモジュール６を接続するためのオプションのバスマスタインタフェースである。このオプショナルバスマスタインタフェース１３に接続されたモジュールは、外部メモリコントローラ１５を介して外部メモリである揮発性半導体メモリ３、および不揮発性半導体メモリ４にアクセスできる。
【００３４】
周辺回路インタフェース１４は、複数の周辺回路からなるユーザモジュール７のインタフェースである。外部メモリコントローラ１５は、Ｉ／Ｏバッファ８、およびデータバスＤＢ、制御バスＣＤ、アドレスバスＡＢを介して、外部メモリである揮発性半導体メモリ３のアクセス制御を行うとともに、Ｉ／Ｏバッファ８、およびデータバスＤＢ、制御バスＣＤを介して、同じく外部メモリであるおよび不揮発性半導体メモリ４のアクセス制御を行う。なお、図１では、データバスＤＢは揮発性半導体メモリ３と不揮発性半導体メモリ４との間で共用した例を示している。
【００３５】
内蔵メモリコントローラ１６は、内蔵メモリ９の制御を行う。内蔵メモリ９は、揮発性メモリ、または不揮発メモリのいずれかから構成されている。揮発性半導体メモリ３は、たとえば、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ｍｅｍｏｒｙ）からなり、不揮発性半導体メモリ４は、フラッシュメモリに例示される不揮発性メモリからなる。
【００３６】
ＢＩＳＴ部１０は、モード制御部１７、クロック発生器１８、クロックセレクタ１９、ＢＩＳＴ制御回路２０、外部メモリＢＩＳＴ（外部メモリ用テスト回路部）２１、ＢＩＳＴ切り替え用マルチプレクサ２２、内蔵メモリＢＩＳＴ（内蔵メモリ用テスト回路部）２３、およびマルチプレクサ２４から構成されている。モード制御部１７は、ユーザモードやテストモードなどのモードの切り替えを制御する。
【００３７】
クロック発生器１８は、外部供給されるクロック信号から、高周波の内部クロック信号を生成する。クロックセレクタ１９は、内部クロックのソースを切り替えるためのセレクタであり、ａｔ−ｓｐｅｅｄテストのために用意されている。
【００３８】
このクロックセレクタ１９は、プログラム中には、外部から供給されるシフト用クロックを選択し、外部メモリＢＩＳＴ２１、または内蔵メモリＢＩＳＴ２３の実行中にはクロック発生器１８が生成した内部クロック信号を選択する。
【００３９】
ＢＩＳＴ制御回路２０は、  外部メモリＢＩＳＴ２１、および内蔵メモリＢＩＳＴ２３の制御を司る。外部メモリＢＩＳＴ２１は、揮発性半導体メモリ３、ならびに不揮発性半導体メモリ４のテストを行う。
【００４０】
この外部メモリＢＩＳＴ２１は、ＣＰＵ１１のアドレス空間にアクセスすることができ、外部メモリコントローラ１５を介して揮発性半導体メモリ３、および不揮発性半導体メモリ４にアクセスできるだけでなく、外部メモリコントローラ１５やクロック発生器１８を制御するレジスタを初期化することができる。
【００４１】
いずれの場合においても、外部メモリＢＩＳＴ２１が内部バスＢにアクセスする際はハンドシェイクプロトコルに従う。なお、外部メモリＢＩＳＴ２１実行中は、ＣＰＵ１１が内部バスＢにアクセスしないようにプログラムでＣＰＵ１１をアイドルにする必要がある。
【００４２】
内蔵メモリＢＩＳＴ２３は、内蔵メモリ９をテストする。この内蔵メモリＢＩＳＴ２３は、内蔵メモリコントローラ１６を介すことなく内蔵メモリ９をテストすることができる。
【００４３】
これら外部メモリＢＩＳＴ２１、および内蔵メモリＢＩＳＴ２３のプログラムや制御などは、前述したようにＢＩＳＴ制御回路２０を経由して行われる。
【００４４】
ＢＩＳＴ切り替え用マルチプレクサ２２は、オプショナルバスマスタインタフェース１３の接続先をユーザモードではユーザモジュール６に、そしてテストモードでは外部メモリＢＩＳＴ２１にそれぞれ切り替える。
【００４５】
マルチプレクサ２４は、内蔵メモリ９の接続先をユーザモードの際には内蔵メモリコントローラ１６に切り替え、テストモードの際には内蔵メモリＢＩＳＴ２３に切り替える。
【００４６】
図２は、ＢＩＳＴ部１０の外部メモリＢＩＳＴ２１におけるインタフェースの構成例を示した図である。
【００４７】
内部バスＢとのハンドシェイク信号には、バス要求、バス承認、リード/ライト、バスアドレス、バスライトデータ、バスリードデータ、ならびにバス終了の信号がそれぞれがある。これらの信号は、内部クロック信号に同期している。
【００４８】
バス要求は、内部バスＢにアクセスするための要求信号であり、バス承認は、バス要求に対する承認信号である。リード/ライトは、リードとライトの選択信号であり、Ｌｏ信号の時はライト動作、Ｈｉ信号の時はリード動作をそれぞれ示している。
【００４９】
バスアドレスは、内部バスＢにアクセスするためのアドレスであり、バスライトデータは、外部メモリＢＩＳＴ２１から出力されるライトデータである。バスリードデータは、外部メモリＢＩＳＴＷＱへ入力されるリードデータである。バス終了は、バスライトデータやバスリードデータの転送が終了したことを示す信号である。
【００５０】
また、ＢＩＳＴ制御回路２０からは、起動信号、シフト制御、シフト入力、シフト出力、テスト終了、およびフェイルなどの信号が入出力される。起動信号は、外部メモリＢＩＳＴ２１を起動させる起動信号である。
【００５１】
シフト制御、シフト入力、ならびにシフト出力は、外部メモリＢＩＳＴ２１に設けられたレジスタを初期化する制御信号である。テスト終了は、テスト終了時に出力される信号であり、フェイルは、テストがＮＧの際に出力される信号である。
【００５２】
図３は、ライトおよびリード動作における内部バスＢにおけるタイミングチャート例である。
【００５３】
まず、ライト動作の場合には、バスアドレス、バスライトデータを準備した後、リード／ライトをＬｏ信号，バス要求をＨｉ信号にそれぞれ切り替える。そして、バス要求が承認されると、バス承認はＨｉ信号に切り替わり、次のサイクルにおいて、バスアドレスとバスライトデータは、内部クロックの立ち上がりエッジでそれぞれ取り込まれる。
【００５４】
バスライトデータが、レジスタ、もしくはメモリに転送されると、バス終了はＨｉ信号に切り替わる。
【００５５】
リード動作の場合には、バスアドレスを準備した後、リード/ライトをＨｉ信号、バス要求をＨｉ信号に切り替える。バス承認がＨｉ信号に切り替わった後のサイクルでバスアドレスは取り込まれる。
【００５６】
バスリードデータが、レジスタもしくはメモリから転送されると、バス終了はＨｉ信号に切り替わる。したがって、外部メモリＢＩＳＴ２１は、バス承認に従って動作し、バス終了に従いバスリードデータを取り込む。
【００５７】
図４は、外部メモリＢＩＳＴ２１の構成例を示すブロック図である。この図４において、実線矢印は、メモリテスト中の信号フローを示しており、波線の矢印は初期化中の信号フローを示している。
【００５８】
外部メモリＢＩＳＴ２１は、メモリテスト用テストパタン発生器２５、レジスタアクセス用パタン発生器２６、パタン発生器用マルチプレクサ２７、テスト終了検出回路２８、揮発性半導体メモリ用インタフェース２９、不揮発性半導体メモリ用インタフェース３０、インタフェース用マルチプレクサ３１、デバッグ用タイマ３２、信号圧縮・比較・判定回路３３、データ比較・判定回路３４、バッドブロックアドレス管理テーブル３５から構成されている。
【００５９】
メモリテスト用テストパタン発生器２５は、アルゴリズムパタン発生器２５ａとプログラマブルスクランブラ２５ｂとから構成されている。アルゴリズムパタン発生器２５ａは、マイクロコードをベースとしたプログラマブルのパタン発生器であり、外部メモリを制御するためのアドレス、データ、およびコマンドを発生する。
【００６０】
プログラマブルスクランブラ２５ｂは、テスト対象となる外部メモリのアドレス／データスクランブル仕様に応じて、アドレス、およびデータを変換する回路である。
【００６１】
レジスタアクセス用パタン発生器２６は、有限ステートマシンをベースとしたパタン発生器であり、外部メモリコントローラ１５やクロック発生器１８の内部に設けられているレジスタを初期化する。
【００６２】
これらメモリテスト用テストパタン発生器２５、およびレジスタアクセス用パタン発生器２６には、ＢＩＳＴ制御回路２０から出力された起動の信号が入力されるように接続されている。
【００６３】
パタン発生器用マルチプレクサ２７は、メモリテスト用テストパタン発生器２５、またはレジスタアクセス用パタン発生器２６のいずれか一方を選択する。テスト終了検出回路２８は、メモリテスト用テストパタン発生器２５、および内部バスＢの両ステートからテストが終了したことを検出する回路である。
【００６４】
揮発性半導体メモリ用インタフェース２９は、揮発性半導体メモリ３のテスト時に使用するブロックであり、メモリテスト用テストパタン発生器２５が発生するコマンドを内部バス用ハンドシェイク信号、外部メモリＢＩＳＴ２１内部の制御信号に変換するコマンドデコーダから構成されている。
【００６５】
不揮発性半導体メモリ用インタフェース３０は、不揮発性半導体メモリ４のテスト時に使用するブロックであり、揮発性半導体メモリ用インタフェース２９と同様のコマンドデコーダを有する。
【００６６】
ここで、不揮発性半導体メモリ４がマルチプレクストＩ／Ｏを備えるＮＡＮＤ型フラッシュメモリの場合、不揮発性半導体メモリ用インタフェース３０は、アドレス、データ、フラッシュメモリ用コマンドを入力とするバスライトデータ用マルチプレクサを備える。
【００６７】
さらに、ＮＯＲ型フラッシュメモリに対応させる場合は、アドレス、フラッシュメモリ用コマンドを入力とするバスアドレス用マルチプレクサを備える。
【００６８】
インタフェース用マルチプレクサ３１は、揮発性半導体メモリ用インタフェース２９、または不揮発性半導体メモリ用インタフェース３０のいずれかを選択する。デバッグ用タイマ３２は、テスト中の任意のタイミングにおいてのテスト中断、アクセス情報の取得、ならびにロジックアナライザ用トリガを外部に発生するなどの機能を有する。
【００６９】
信号圧縮・比較・判定回路３３は、テスト中の外部メモリＢＩＳＴ２１の出力を取り込んで圧縮し保持する回路であり、外部メモリＢＩＳＴ２１の誤動作を検出する。データ比較・判定回路３４は、データ比較回路、パス/フェイル判定回路、および不揮発性半導体メモリテスト向けのエラービットカウンタなどから構成される。
【００７０】
バッドブロックアドレス管理テーブル３５は、不揮発性半導体メモリ４のテストにおいて、ブロックアドレスの監視、バッドブロックアドレスの格納、ならびにテスト制御などの機能を有する。
【００７１】
また、外部メモリＢＩＳＴ２１に接続されたＢＩＳＴ制御回路２０は、各ブロック内のレジスタをシフト動作により初期化する、メモリテスト用テストパタン発生器２５、またはレジスタアクセス用パタン発生器２６を起動する、テスト結果を回収後外部に出力するなどの機能を有する。
【００７２】
図５は、外部メモリＢＩＳＴ２１のメモリテスト用テストパタン発生器２５に設けられたアルゴリズムパタン発生器２５ａの構成例を示すブロック図である。
【００７３】
アルゴリズムパタン発生器２５ａは、メインコントローラ３６、アドレス／データ発生器３７、マルチコマンドシーケンス発生器３８、ならびにループカウンタ３９から構成されている。
【００７４】
メインコントローラ３６は、内蔵されている命令レジスタに格納されているメインプログラムに従ってアルゴリズムパタン発生器２５ａの制御を行う。メインコントローラ３６には、ＢＩＳＴ制御回路２０から出力された起動の信号が入力される。この起動の信号は、アルゴリズムパタン発生器２５ａに起動を指示する。
【００７５】
また、メインコントローラ３６は、テスト終了検出回路２８にステータスを出力する。このステータスは、アルゴリズムパタン発生器２５ａがスタンバイ、実行中、もしくは終了のいずれの状態にあるかを示す信号である。
【００７６】
また、メインコントローラ３６には、内部バスＢからバス承認の信号が入力される。バス承認は、アルゴリズムパタン発生器２５ａ内の全レジスタの状態遷移を制御することができる。バス承認がＬｏ信号の際に、アルゴリズムパタン発生器２５ａは状態を保持する。
【００７７】
アドレス／データ発生器３７は、アドレス発生器とデータ発生器とから構成されており、ギャロップのような複雑なテストアルゴリズムに対応させるため各々の発生器を２組備えることもある。
【００７８】
この図５では、アドレス発生器が各々１６ビット長のＸアドレス、Ｙアドレス、Ｚアドレスを発生する例を示しており、揮発性半導体メモリ３（ＳＤＲＡＭ）の通常のテストでは、Ｘ、Ｙ、Ｚはそれぞれロウ、カラム、バンクに割り当てられる。
【００７９】
ディスターブのような特別のテストでＳＤＲＡＭをバンク数より多く分割する必要がある場合は、Ｚアドレスをロウアドレスの上位ビットにも割り当てる。データ発生器は、３２ビット長のデータを出力する例を示している。
【００８０】
マルチコマンドシーケンス発生器３８は、プログラム可能なコマンドテーブルを有する。メインコントローラ３６がテーブルのアドレス、ステップ数を指示すると、マルチコマンドシーケンス発生器３８は、コマンドテーブルから順番にコマンドを発生する。不揮発性半導体メモリ４を動作させるマルチコマンドシーケンス発生に用いる。
【００８１】
ループカウンタ３９は、多数のループカウンタから構成されており、アドレスカウンタ、繰り返し動作、ポーズなどの制御に用いられる。
【００８２】
図６は、外部メモリＢＩＳＴ２１のメモリテスト用テストパタン発生器２５に設けられたプログラマブルスクランブラ２５ｂの構成例を示すブロック図である。
【００８３】
プログラマブルスクランブラ２５ｂは、図示するように、Ｘアドレススクランブラ４０、Ｙアドレススクランブラ４１、Ｚアドレススクランブラ４２、およびデータスクランブラ４３から構成されており、Ｚアドレススクランブラ４２は、不揮発性半導体メモリ４のブロックアドレススクランブル用であり、その他は揮発性半導体メモリ３、および不揮発性半導体メモリ４の共用である。
【００８４】
図７は、外部メモリＢＩＳＴ２１に設けられた揮発性半導体メモリ用インタフェース２９の構成例を示すブロック図である。
【００８５】
揮発性半導体メモリ用インタフェース２９は、図示するように、アドレス整列回路４４、データ整列回路４５、ならびにコマンドデコーダ４６から構成されている。
【００８６】
アドレス整列回路４４は、パタン発生器用マルチプレクサ２７を介して入力されたＸアドレス、Ｙアドレス、Ｚアドレスを整列し、内部バスＢ向けのバスアドレス、およびメモリアドレスを出力する。バスアドレスでは、ＣＰＵアドレス空間内の揮発性半導体メモリ３のベースアドレス、揮発性半導体メモリ３内部のアドレスを指示する。
【００８７】
データ整列回路４５は、アルゴリズムパタン発生器２５ａを介して入力されたデータを整列し、バスライトデータを出力する。バスアドレスは、ＣＰＵアドレス空間内の揮発性半導体メモリ３のベースアドレス、揮発性半導体メモリ３内部のアドレスを指示する。
【００８８】
また、バスライトデータは、内部バス幅に合わせて３２ビット、６４ビットなどに拡張する。コマンドデコーダ４６は、内部バスＢ向けにバス要求とリード/ライトとを、データ比較・判定回路３４向けに比較信号と上位データ比較マスク、下位データ比較マスク、および信号圧縮回路マスクをそれぞれ出力する。
【００８９】
図８は、外部メモリＢＩＳＴ２１に設けられた不揮発性半導体メモリ用インタフェース３０の構成例を示すブロック図である。
【００９０】
不揮発性半導体メモリ用インタフェース３０は、図示するように、コマンドデコーダ４７、およびアドレス／データ／コマンド用マルチプレクサ４８から構成されている。この図８では、不揮発性半導体メモリ用インタフェース３０がＮＡＮＤ型フラッシュメモリ向けのインタフェースの例を示している。
【００９１】
不揮発性半導体メモリ用インタフェース３０は、内部バスＢ向けのバスアドレス、およびバスライトデータを出力する。
【００９２】
アドレス／データ／コマンド用マルチプレクサ４８は、アドレス、データ、コマンドをそれぞれ入力とする３入力マルチプレクサからなる。３入力マルチプレクサが必要な理由は，ＮＡＮＤ型フラッシュメモリにはアドレスピンがなく、データピンと制御ピンしかなく、アドレスやコマンドもデータピンを介して入力されるためである。
【００９３】
したがって，バスアドレスでは，フラッシュメモリ内部のアドレスは指示せず、ＣＰＵアドレス空間内のＮＡＮＤ型フラッシュメモリのベースアドレスを指示する。コマンドデコーダ４７は、コマンド、アドレス／データ／コマンド用マルチプレクサ４８の制御信号を発生する以外に、オプショナルバスマスタインタフェース１３向けのバス要求、リード／ライト、バスアドレス、データ比較・判定回路３４向けの比較信号、上位データ比較マスク、下位データ比較マスク、メモリアドレス、エラービットカウンタ活性／リセット、バッドブロックアドレス管理テーブル向けのスキップ制御、バッドブロック増加数カウンタ活性、信号圧縮・比較・判定回路３３向けの信号圧縮回路マスクをそれぞれ発生する。
【００９４】
なお、スキップを受け取っている間は、バス要求を取り下げ、内部バスＢへのアクセスをスキップする。
【００９５】
図９は、外部メモリＢＩＳＴ２１に設けられたデータ比較・判定回路３４の構成例を示すブロック図である。
【００９６】
データ比較・判定回路３４は、データ比較回路４９、エラービットカウント判定回路５０、フェイル情報制御回路５１、およびテストフェイル判定回路５２から構成されている。
【００９７】
データ比較回路４９は、比較信号を受け取るとバス終了のタイミングに基づいて、バスリードデータを期待値であるバスライトデータと比較し、各データビットに対するビット比較結果を出力する。内部バスＢから入力されるバス承認は、期待値の更新に用いられる。なお、１６ビット、３２ビットのいずれのＩ／Ｏ幅を有するメモリもテストできるように、データ比較回路４９には、データの上位、ならびに下位ビットに対するマスク機能がある。
【００９８】
エラービットカウント判定回路５０は、エラービットカウンタ５０ａとエラービット許容値設定レジスタ５０ｂとから構成される。エラービットカウンタ５０ａは、ビット比較結果に基づいて、エラービットの累積数をカウントする。エラービット許容値設定レジスタ５０ｂは、エラービット許容値を格納する。
【００９９】
エラービットカウンタ５０ａのカウント値がエラービット許容値より大きくなると、エラービットオーバを出力する。なお、エラービットカウンタ５０ａは、活性、リセットが可能である。揮発性半導体メモリ３のテストにおいては，エラービット許容値は通常’０’を設定する。
【０１００】
フェイル情報制御回路５１は、エラービットオーバを受け取ると、テスト中のバッドブロックアドレス、ストア要求を出力する。また、テストフェイル時のコマンド、アドレス、バスライトデータ、バスリードデータを取り込む。
【０１０１】
テストフェイル判定回路５２は、バッドブロック数上限フラグが立っている場合に、エラービットオーバを受け取ると、テストフェイルを出力する。
【０１０２】
図１０は、外部メモリＢＩＳＴ２１におけるバッドブロックアドレス管理テーブル３５の構成例を示すブロック図である。
【０１０３】
バッドブロックアドレス管理テーブル３５は、バッドブロックアドレス格納レジスタ（バッドブロック総数可変判定部、バッドブロック増加数可変判定部）５３、バッドブロックアドレス比較回路５４、ならびにバッドブロックカウント判定回路（バッドブロック総数可変判定部、バッドブロック増加数可変判定部、判定部）５５から構成される。
【０１０４】
バッドブロックアドレス格納レジスタ５３は、ｎ組のブロックアドレス５３ａ、有効ビット用レジスタ５３ｂ、バッドブロック総数カウンタ５３ｃ、バッドブロック増加数カウンタ５３ｄから構成されている。
【０１０５】
バッドブロックアドレス格納レジスタ５３は、ストア要求のあったブロックアドレスを重複することなく格納し、バッドブロック総数、活性以降のバッドブロック増加数をカウントする。
【０１０６】
バッドブロックアドレス比較回路５４は、格納されているバッドブロックアドレスとアクセスするブロックアドレスとを比較し，テスト中はバッドブロックをスキップし、バッドマーキング中はバッドブロック以外をスキップする。揮発性半導体メモリ３のテストにおいては、スキップ出力を無効にする。
【０１０７】
バッドブロックカウント判定回路５５は、バッドブロック総数許容値設定レジスタ５５ａとバッドブロック増加数許容値設定レジスタ５５ｂとを備える。バッドブロック総数許容値設定レジスタ５５ａには、バッドブロック総数の許容値が設定され、バッドブロック増加数許容値設定レジスタ５５ｂには、バッドブロック増加数の許容値が設定される。
【０１０８】
そして、バッドブロックカウント判定回路５５は、バッドブロック総数カウンタ５３ｃ、またはバッドブロック増加数カウンタ５３ｄが、バッドブロック総数許容値設定レジスタ５５ａ、あるいはバッドブロック増加数許容値設定レジスタ５５ｂに設定された許容値との比較を行い、それぞれの許容値に達したら、バッドブロック数上限フラグを立てる。揮発性半導体メモリ３のテストにおいては、各許容値を通常’０’に設定し、バッドブロック数上限フラグが常時立つようにする。
【０１０９】
図１１は、外部メモリＢＩＳＴ２１に設けられた信号圧縮・比較・判定回路３３の構成例を示すブロック図である。
【０１１０】
信号圧縮・比較・判定回路３３は、信号圧縮回路５６と圧縮信号比較・判定回路５７とから構成されている。信号圧縮回路５６は、インタフェース用マルチプレクサ３１、およびバッドブロックアドレス管理テーブル３５から入力される各種信号を圧縮格納する。
【０１１１】
インタフェース用マルチプレクサ３１から入力される信号は、内部バスＢ向け信号の一部であるバス要求、リード/ライト、バスアドレス、バスライトデータなど、データ比較・判定回路３４向け信号の一部である上位データ比較マスク、下位データ比較マスク、比較、および信号圧縮回路マスクなどである。バッドブロックアドレス管理テーブル３５からは、スキップの信号が入力される。
【０１１２】
信号圧縮回路マスクは、信号圧縮回路５６を一時的にホールドするための制御信号であり、圧縮対象から外したいシーケンスなどがある場合に活性にする。
【０１１３】
たとえば、不揮発性半導体メモリ４（ＮＡＮＤ型フラッシュメモリ）のテストにおいては、ステータスリードシーケンスが該当する。このステータスリードシーケンスは、イレース、プログラムなどの処理が完了したかを確認するため、Ｒｅａｄｙに遷移するまで繰り返し用いられるが、その繰り返し回数はデバイス特性や動作条件などに依存し不定になるためである。
【０１１４】
スキップは、信号圧縮回路５６においてはバス要求の代用信号であり、スキップ中にバス要求が取り下げられても圧縮信号がスキップの有無で変化しないようにする。たとえば、不揮発性半導体メモリ４のテストにおいては、バッドブロックへのアクセスをスキップさせるが、バッドブロックのアドレスはデバイス毎に異なるためである。
【０１１５】
図１２は、半導体集積回路装置１におけるテストの処理例を示すフローチャートである。
【０１１６】
システムオンチップ２に搭載されるロジックや内蔵メモリは、それぞれウエハレベルでテスト（ウエハテスト）される（ステップＳ１０１，Ｓ１０２）。
【０１１７】
また、半導体集積回路装置１に搭載される外部メモリとなる揮発性半導体メモリ３、および不揮発性半導体メモリ４は、メモリベンダにおいてテストされたＫＧＤ（Ｋｎｏｗｎ  Ｇｏｏｄ  Ｄｉｅ）品を半導体ウエハ単位で入手する（ステップＳ１０１、Ｓ１０２）。
【０１１８】
各半導体ウエハを裏面研磨、およびダイシングして得られたＫＧＤチップを積層、ならびに結線してシステムインパッケージを組み立てた後（ステップＳ１０３）、揮発性半導体メモリ３、および不揮発性半導体メモリ４を外部メモリＢＩＳＴ２１によりテストし（ステップＳ１０４）、システムオンチップ２のＡＣ機能テストを順に実施する（ステップＳ１０５）。
【０１１９】
続いて、半導体集積回路装置１の外観検査を行い（ステップＳ１０６）、良品となった半導体集積回路装置１が出荷される（ステップＳ１０７）。
【０１２０】
ここで、ステップＳ１０３におけるメモリテスト項目は下記の通りである。
【０１２１】
（１）システムオンチップ２と外部メモリ（揮発性半導体メモリ３、不揮発性半導体メモリ４）との間における配線のオープン／ショート不良を検出するＤＣ接続テスト
（２）初期不良を取り除くためのストレススクリーニング
（３）半導体ウエハの裏面研磨の機械的ダメージによって生じた機能不良を検出するＡＣ機能テスト
（４）パッケージの内部応力によって生じた特性劣化を検出するデータリテンションテスト
（５）半導体集積回路装置１のＡＣ特性を保証するａｔ−ｓｐｅｅｄの接続テスト。
【０１２２】
図１３は、半導体集積回路装置１における外部メモリ（揮発性半導体メモリ３、不揮発性半導体メモリ４）、および内蔵メモリ９のテスト処理例を示すフローチャートである。
【０１２３】
まず、半導体集積回路装置１に電源が投入された後（ステップＳ２０１）、モード制御部１７に入力されたモード設定信号に基づいてテストモードの設定が行われる（ステップＳ２０２）。
【０１２４】
この設定が外部メモリのテストでない場合には、内蔵メモリ９のテスト設定を行い、その後、テスタにより、内蔵メモリコントローラ１６やクロック発生器１８を制御するレジスタの設定が行われる（ステップＳ２０３）。
【０１２５】
続いて、内蔵メモリＢＩＳＴ２３による内蔵メモリ９のテストが実行され（ステップＳ２０４）、その判定結果を行った後（ステップＳ２０５）、電源遮断を行う（ステップＳ２０６）。
【０１２６】
また、ステップＳ２０２の処理において、外部メモリのテストの場合には、揮発性半導体メモリ３、または不揮発性半導体メモリ４のいずれのテストが行われるかを判定する（ステップＳ２０７）。
【０１２７】
不揮発性半導体メモリ４のテストの場合、外部メモリＢＩＳＴ２１によって、不揮発性半導体メモリ４のテストを行うために外部メモリコントローラ１５やクロック発生器１８を制御するレジスタの設定が実行される（ステップＳ２０８）。
【０１２８】
そして、外部メモリＢＩＳＴ２１による不揮発性半導体メモリ４のメモリテストが行われ（ステップＳ２０９）、その判定結果を行った後（ステップＳ２１０）、電源遮断を行う（ステップＳ２１１）。
【０１２９】
ステップＳ２０７の処理において、揮発性半導体メモリ３のテストの場合には、外部メモリＢＩＳＴ２１が、揮発性半導体メモリ３をテストするために外部メモリコントローラ１５やクロック発生器１８を制御するレジスタの設定を行う（ステップＳ２１２）。
【０１３０】
その後、外部メモリＢＩＳＴ２１による揮発性半導体メモリ３のメモリテストが行われ（ステップＳ２１３）、その判定結果を行った後（ステップＳ２１４）、電源を遮断する（ステップＳ２１５）。
【０１３１】
図１４は、外部メモリＢＩＳＴ２１を使用した際のテストアルゴリズム例を示す説明図である。
【０１３２】
不揮発性半導体メモリ４には、３つの一般的なアルゴリズムを挙げている。ＩＤコードリードは、製造者コード、デバイスコードを確認することにより、ＤＣ接続テストとして使われる。
【０１３３】
ＡＣファンクションテストに用いたマーチは、セクタ毎に消去、プログラム、およびリードを実施するアルゴリズムである。チェッカーボードは、データリテンションテストにも用いており、消去、チェッカーボードのプログラム、ならびにリードを実施する。
【０１３４】
揮発性半導体メモリ３には、８つの一般的なアルゴリムを挙げている。たとえば、ダイナミックデータリテンションは全セルをライトし、リフレッシュ周期ｔＲＥＦの間に奇数、または偶数のロウを繰り返しライトし，全セルをリードする。
【０１３５】
図１５は、図１３におけるステップＳ２０９の処理を具体的に示したテストの一例を示すフローチャートである。この図１５では、バッドブロック総数（ＭＧＭ率：Ｍｏｓｔｌｙ  Ｇｏｏｄ  Ｍｅｍｏｒｙ）でフェイル判定する場合について説明している。
【０１３６】
まず、ＢＩＳＴ内レジスタ設定ＢＩＳＴ起動処理において、テストフェイルの判定条件を決定する（ステップＳ３０１）。具体的には、エラービット許容値設定レジスタ５０ｂ（図９）、バッドブロック総数許容値設定レジスタ５５ａなどを設定する。
【０１３７】
そして、バッドブロックチェックを行った後（ステップＳ３０２）、プログラムを行う（ステップＳ３０３）。
【０１３８】
その後、プログラムされたデータをリードし（ステップＳ３０４）、イレース（ステップＳ３０５）した後に、イレースされたかを確認するリードを行う（ステップＳ３０６）。これらの処理によって新規に検出したバッドブロックを、バッドブロック総数カウンタ５３ｃでカウントし、フェイルとなったバッドブロックのマークを行う（ステップＳ３０７）。そして、バッドブロック総数許容値を超えた時点でフェイルと判定する。
【０１３９】
図１６は、図１３におけるステップＳ２０９の処理を具体的に示したテストの他の例を示すフローチャートである。図１６では、バッドブロック増加数でフェイル判定する場合を示している。
【０１４０】
まず、ＢＩＳＴ内レジスタ設定ＢＩＳＴ起動処理において、エラービット許容値設定レジスタ５０ｂ、およびバッドブロック総数許容値設定レジスタ５５ａなどの設定を行い、テストフェイルの判定条件を決定する（ステップＳ４０１）。
【０１４１】
続いて、バッドブロックチェックを行った後（ステップＳ４０２）、バッドブロック増加数カウンタ５３ｄを活性化し（ステップＳ４０３）、プログラムを行う（ステップＳ４０４）。
【０１４２】
その後、プログラムされたデータをリードし（ステップＳ４０５）、イレース（ステップＳ４０６）した後、イレースされたかを確認するリードを行う（ステップＳ４０７）。これらの処理によって新規に検出したバッドブロックをバッドブロック増加数カウンタ５３ｄによってカウントし、フェイルとなったバッドブロックのマークを行う（ステップＳ４０８）。そして、バッドブロック増加許容値を超えた時点でフェイルと判定する。
【０１４３】
図１７は、図１５のステップＳ３０２の処理、および図１６のステップＳ４０２の処理における詳細な例を示すフローチャートである。
【０１４４】
図１７では、バッドブロックチェックにおける不揮発性半導体メモリ４のフェイル判定アルゴリズム例を示している。プログラム、リード、およびイレースなどについても同様なアルゴリズムで実現できる。
【０１４５】
まず、フェイル判定は、先頭ブロックから開始され（ステップＳ５０１）、バッドブロックチェックにおいてブロック内の特定アドレスをリードし、バッドブロックマークの有無を確認する（ステップＳ５０２）。
【０１４６】
バッドブロックマークがない場合には（Ｐ：Ｐａｓｓ）には、最終ブロックか否かを確認し（ステップＳ５０３）、最終ブロックの場合には、処理が終了となる。また、最終ブロックでない場合には、ブロックアドレスをインクリメントし（ステップＳ５０４）、ステップＳ５０２の処理に戻る。
【０１４７】
ステップＳ５０２の処理において、バッドブロックマークがある場合には（Ｆ：Ｆａｉｌ）、新規のバッドブロックか否かを確認し（ステップＳ５０５）、新規のバッドブロックでない場合には、ステップＳ５０３の処理を実行する。
【０１４８】
また、ステップＳ５０５の処理において、新規のバッドブロックの場合には、バッドブロック総数をインクリメントし（ステップＳ５０６）、そのバッドブロック総数がバッドブロック総数許容値設定レジスタ５５ａに設定された許容値をオーバしていないか否かを確認する（ステップＳ５０７）。
【０１４９】
バッドブロック総数が許容値をオーバしている場合には、テストフェイルのフラグをたてて（ステップＳ５０８）、ステップＳ５０３の処理を実行する。
【０１５０】
また、バッドブロック総数が許容値をオーバしていない場合には、バッドブロック増加数カウンタ５３ｄが活性しているか否かを確認し（ステップＳ５０９）、活性している場合には、バッドブロック増加数カウンタ５３ｄのバッドブロック増加数をインクリメントする（ステップＳ５１０）。
【０１５１】
続いて、バッドブロック増加数が、バッドブロック増加数許容値設定レジスタ５５ｂに設定された許容値よりも大きいかを判断し（ステップＳ５１１）、許容値よりも大きい場合には、ステップＳ５０８の処理を行う。
【０１５２】
また、ステップＳ５０９の処理において、バッドブロック増加数カウンタ５３ｄが活性していない場合、またはステップＳ５１１の処理においてバッドブロック増加数が許容値よりも小さい場合には、ステップＳ５０３の処理を実行する。
【０１５３】
図１８は、図１３におけるステップＳ２０９の処理を具体的に示した他のテスト例を示すフローチャートである。
【０１５４】
図１８では、ステップＳ６０１〜ステップＳ６０７の処理おいては、図１５のステップＳ３０１〜ステップＳ３０７の処理と同様であり、ステップＳ６０８の処理が追加されている点が図１５と異なるところである。
【０１５５】
このステップＳ６０８の処理は、バッドブロックのアドレスを、不揮発性半導体メモリ４におけるメモリ領域の指定領域に書き込みする。これにより、メモリテスト終了後に指定領域にアクセスすることにより、全バッドブロックアドレスを容易に取得することができるので不良解析などを容易化することができる。
【０１５６】
また、図１９は、揮発性半導体メモリ３のテスト処理例を示すフローチャートである。
【０１５７】
まず、ＢＩＳＴ内レジスタ設定ＢＩＳＴ起動処理において、テストフェイルの判定条件を決定する（ステップＳ７０１）。揮発性半導体メモリ３の場合には、不揮発性半導体メモリ４と異なり、ライト後のリードで１ビットでもフェイルするとフェイル判定とする。
【０１５８】
したがって、ステップＳ７０１の処理では，エラービット許容値設定レジスタ５０ｂ、バッドブロック総数許容値設定レジスタ５５ａ、およびバッドブロック増加数許容値設定レジスタ５５ｂなどは全て無効にする。
【０１５９】
続いて、データのライト（ステップＳ７０２）、ライトされたデータのリードを行い、すべてのデータがリードされたか否かを判定する（ステップＳ７０３）。すべてのテストがリードされた場合には、データをライトし（ステップＳ７０４）、ライトされたデータのリードを行い、すべてのデータがリードされたか否かを判定する（ステップＳ７０５）。そして、すべてのデータがリードされている場合には、メモリテストが終了となる。
【０１６０】
また、ステップＳ７０３の処理、またはステップＳ７０５の処理において、すべてのデータがリードされなかった場合には、テストフェイルと判定する（ステップＳ７０６，Ｓ７０７）。
【０１６１】
それにより、本実施の形態によれば、外部メモリＢＩＳＴ２１により、メモリテスト時のバッドブロックの総数、またはバッドブロックの増加数を任意に可変することが可能となり、不揮発性半導体メモリ４の製造歩留まりなどの品質に合わせて該メモリテストを最適化することができ、メモリテストコストを大幅に削減することができる。
【０１６２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１６３】
本発明の半導体集積回路装置は、該半導体集積回路装置に設けられた外部メモリである不揮発性半導体メモリの最適なテスト条件の設定技術に適している。
【図面の簡単な説明】
【０１６４】
【図１】本発明の一実施の形態による半導体集積回路装置のブロック図である。
【図２】図１の半導体集積回路装置に設けられたＢＩＳＴ部の外部メモリＢＩＳＴにおけるインタフェースの構成例を示した説明図である。
【図３】図１の半導体集積回路装置の内部バスにおけるライトおよびリード動作のタイミングチャートである。
【図４】図１の半導体集積回路装置に設けられた外部メモリＢＩＳＴの構成例を示すブロック図である。
【図５】図４の外部メモリＢＩＳＴのメモリテスト用テストパタン発生器に設けられたアルゴリズムパタン発生器の構成例を示すブロック図である。
【図６】図４の外部メモリＢＩＳＴのメモリテスト用テストパタン発生器に設けられたプログラマブルスクランブラの構成例を示すブロック図である。
【図７】図４の外部メモリＢＩＳＴに設けられた揮発性半導体メモリ用インタフェースの構成例を示すブロック図である。
【図８】図４の外部メモリＢＩＳＴに設けられた不揮発性半導体メモリ用インタフェースの構成例を示すブロック図である。
【図９】図４の外部メモリＢＩＳＴに設けられたデータ比較・判定回路の構成例を示すブロック図である。
【図１０】図４の外部メモリＢＩＳＴに設けられたバッドブロックアドレス管理テーブルの構成例を示すブロック図である。
【図１１】図４の外部メモリＢＩＳＴに設けられた信号圧縮・比較・判定回路の構成例を示すブロック図である。
【図１２】図１の半導体集積回路装置におけるテストの処理例を示すフローチャートである。
【図１３】図１の半導体集積回路装置に設けられた揮発性半導体メモリ、不揮発性半導体メモリ、および内蔵メモリのテスト処理例を示すフローチャートである。
【図１４】図４の外部メモリＢＩＳＴを使用した際のテストアルゴリズム例を示す説明図である。
【図１５】図１３におけるステップＳ２０９の処理を具体的に示したテストの一例を示すフローチャートである。
【図１６】図１３におけるステップＳ２０９の処理を具体的に示したテストの他の例を示すフローチャートである。
【図１７】図１５のステップＳ３０２の処理、および図１６のステップＳ４０２の処理における詳細な例を示すフローチャートである。
【図１８】図１３におけるステップＳ２０９の処理を具体的に示した他のテスト例を示すフローチャートである。
【図１９】図１の半導体集積回路装置に設けられた揮発性半導体メモリのテスト処理例を示すフローチャートである。
【符号の説明】
【０１６５】
１  半導体集積回路装置
２  システムオンチップ
３  揮発性半導体メモリ
４  不揮発性半導体メモリ
５  マイコンコア
６，７  ユーザモジュール
８  Ｉ／Ｏバッファ
９  内蔵メモリ（内蔵半導体メモリ）
１０  ＢＩＳＴ部（メモリテスト部）
１１  ＣＰＵ
１２  ＤＭＡＣ
１３  オプショナルバスマスタインタフェース
１４  周辺回路インタフェース
１５  外部メモリコントローラ
１６  内蔵メモリコントローラ
１７  モード制御部
１８  クロック発生器
１９  クロックセレクタ
２０  ＢＩＳＴ制御回路
２１  外部メモリＢＩＳＴ（外部メモリ用テスト回路部）
２２  ＢＩＳＴ切り替え用マルチプレクサ
２３  内蔵メモリＢＩＳＴ（内蔵メモリ用テスト回路部）
２４  マルチプレクサ
２５  メモリテスト用テストパタン発生器
２５ａ  アルゴリズムパタン発生器
２５ｂ  プログラマブルスクランブラ
２６  レジスタアクセス用パタン発生器
２７  パタン発生器用マルチプレクサ
２８  テスト終了検出回路
２９  揮発性半導体メモリ用インタフェース
３０  不揮発性半導体メモリ用インタフェース
３１  インタフェース用マルチプレクサ
３２  デバッグ用タイマ
３３  信号圧縮・比較・判定回路
３４  データ比較・判定回路
３５  バッドブロックアドレス管理テーブル
３６  メインコントローラ
３７  アドレス／データ発生器
３８  マルチコマンドシーケンス発生器
３９  ループカウンタ
４０  Ｘアドレススクランブラ
４１  Ｙアドレススクランブラ
４２  Ｚアドレススクランブラ
４３  データスクランブラ
４４  アドレス整列回路
４５  データ整列回路
４６  コマンドデコーダ
４７  コマンドデコーダ
４８  アドレス／データ／コマンド用マルチプレクサ
４９  データ比較回路
５０  エラービットカウント判定回路
５０ａ  エラービットカウンタ
５０ｂ  エラービット許容値設定レジスタ
５１  フェイル情報制御回路
５２  テストフェイル判定回路
５３  バッドブロックアドレス格納レジスタ（バッドブロック総数可変判定部、バッドブロック増加数可変判定部）
５３ａ  ブロックアドレス
５３ｂ  有効ビット用レジスタ
５３ｃ  バッドブロック総数カウンタ
５３ｄ  バッドブロック増加数カウンタ
５４  バッドブロックアドレス比較回路
５５  バッドブロックカウント判定回路（バッドブロック総数可変判定部、バッドブロック増加数可変判定部、判定部）
５５ａ  バッドブロック総数許容値設定レジスタ
５５ｂ  バッドブロック増加数許容値設定レジスタ
５６  信号圧縮回路
５７  圧縮信号比較・判定回路
Ｂ  内部バス
ＡＢ  アドレスバス
ＣＢ  制御バス
ＤＢ  データバス
【図１】
2007287292.tif 000003
【図２】
2007287292.tif 000004
【図３】
2007287292.tif 000005
【図４】
2007287292.tif 000006
【図５】
2007287292.tif 000007
【図６】
2007287292.tif 000008
【図７】
2007287292.tif 000009
【図８】
2007287292.tif 000010
【図９】
2007287292.tif 000011
【図１０】
2007287292.tif 000012
【図１１】
2007287292.tif 000013
【図１２】
2007287292.tif 000014
【図１３】
2007287292.tif 000015
【図１４】
2007287292.tif 000016
【図１５】
2007287292.tif 000017
【図１６】
2007287292.tif 000018
【図１７】
2007287292.tif 000019
【図１８】
2007287292.tif 000020
【図１９】
2007287292.tif 000021