(57)【特許請求の範囲】
【請求項１】
ワンチップ内に配置され、半導体メモリの機能を有するｍ個(ｍ=2,3,… 以下、同じ）のメモリマクロと、前記ｍ個のメモリマクロに対応して設けられるｍ個のインターフェイス部と、前記ｍ個のメモリマクロに対応して設けられるｍ個のテスト制御ブロックと、前記ｍ個のメモリマクロの外部の前記ワンチップ内に配置される出力合成回路とを具備し、
前記ｍ個のメモリマクロの各々は、ｋ(ｋ=1,2,3,… ）個のブロックを有し、前記ｋ個のブロックの各々からn0（n0=1,2,3,… ）ビットのデータを出力し、
前記ｍ個のインターフェイス部の各々は、前記ｋ個のブロックの間で前記n0ビットのデータを比較し、それらの一致／不一致を示すＰＡＳＳ／ＦＡＩＬビットを出力すると共に、前記ｋ個のブロックの各々から出力される前記n0ビットのデータ（合計n0×kビットのデータ）をn0ビットのデータに圧縮し、
前記ｍ個のテスト制御ブロックの各々は、それに対応するメモリマクロを選択するための制御信号を生成するマクロ選択回路を有し、選択されたメモリマクロに対応するテスト制御ブロックから前記圧縮されたn0ビットのデータを出力し、
前記ｍ個のメモリマクロの全てが選択され、
前記出力合成回路は、前記選択された全てのメモリマクロの間で前記圧縮されたn0ビットのデータ（合計n0×ｍビットのデータ）をn0ビットのデータに合成すると共に、前記選択された全てのメモリマクロの間で前記圧縮されたn0ビットのデータを比較し、それらが一致し、かつ、前記選択された全てのメモリマクロに対応する前記ｍ個のインターフェイス部の各々から出力される前記ＰＡＳＳ／ＦＡＩＬビットの全てが前記一致を示しているときに、前記一致を示す前記ＰＡＳＳ／ＦＡＩＬビットを出力する
ことを特徴とするメモリ混載ロジックＬＳＩ。
【請求項２】
前記ＰＡＳＳ／ＦＡＩＬビットが一致を示しているときに、前記出力合成回路から出力される前記合成されたn0ビットのデータを期待値と比較することを特徴とする請求項１に記載のメモリ混載ロジックＬＳＩ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリ混載ロジックＬＳＩのメモリマクロのテスト手法に関し、特に、１チップ内に複数のメモリマクロが配置されるメモリ混載ロジックＬＳＩに適用される。
【０００２】
【従来の技術】
近年、半導体メモリの機能（メモリマクロ）を含む複数の機能をワンチップに集積し、ワンチップ内に特定のシステムを形成したいわゆるメモリ混載ロジックＬＳＩ（システムＬＳＩ）が注目されている。メモリ混載ロジックＬＳＩでは、いままで別々のチップに形成されていた半導体メモリの機能とロジックの機能をワンチップに形成するため、システムの高性能化、低消費電力化、小型化（部品数の削減）に貢献する。
【０００３】
ところで、メモリマクロは、半導体メモリとして動作するのに必要な全ての回路を含んでいるため、その内部において、読み出し、書き込みなどの一連の動作を完結できるようになっている。また、メモリマクロ内には、メモリマクロとロジック部の接点となるインターフェイス部が設けられ、メモリマクロとロジック部との間で、直接、データのやりとりが行われる。
【０００４】
【発明が解決しようとする課題】
メモリ混載ロジックＬＳＩのメモリマクロ内には、メモリマクロの機能を確認するため、テスト制御ブロックが設けられる。そして、テスト時に、このテスト制御ブロックを機能させてメモリマクロのテストを行っている。しかし、複数のメモリマクロを有するメモリ混載ロジックＬＳＩの場合には、複数のメモリマクロを１つずつ順番にテストすることになるため、テスト時間が増大する欠点がある。また、複数のメモリマクロを別々にテストする場合には、各メモリマクロを識別する回路が必要となるため、各メモリマクロ内のテスト制御ブロックの構成（レイアウト）が異なってくる。従って、メモリマクロごとにテスト制御ブロックを設計しなければならないため、メモリマクロの設計時間が増大する欠点がある。
【０００５】
本発明は、上記欠点を解決すべくなされたもので、その目的は、複数のメモリマクロを有するメモリ混載ロジックＬＳＩにおいて、短時間、かつ、簡易に、メモリマクロのテストを行うことができ、さらに、メモリマクロの設計も短時間で行うことができるメモリ混載ロジックＬＳＩを提供することにある。
【０００６】
【課題を解決するための手段】
本発明の例に係わるメモリ混載ロジックＬＳＩは、ワンチップ内に配置され、半導体メモリの機能を有するｍ個(ｍ=2,3,… 以下、同じ）のメモリマクロと、前記ｍ個のメモリマクロに対応して設けられるｍ個のインターフェイス部と、前記ｍ個のメモリマクロに対応して設けられるｍ個のテスト制御ブロックと、前記ｍ個のメモリマクロの外部の前記ワンチップ内に配置される出力合成回路とを備え、前記ｍ個のメモリマクロの各々は、ｋ(ｋ=1,2,3,… ）個のブロックを有し、前記ｋ個のブロックの各々からn0（n0=1,2,3,… ）ビットのデータを出力し、前記ｍ個のインターフェイス部の各々は、前記ｋ個のブロックの間で前記n0ビットのデータを比較し、それらの一致／不一致を示すＰＡＳＳ／ＦＡＩＬビットを出力すると共に、前記ｋ個のブロックの各々から出力される前記n0ビットのデータ（合計n0×kビットのデータ）をn0ビットのデータに圧縮し、前記ｍ個のテスト制御ブロックの各々は、それに対応するメモリマクロを選択するための制御信号を生成するマクロ選択回路を有し、選択されたメモリマクロに対応するテスト制御ブロックから前記圧縮されたn0ビットのデータを出力し、前記ｍ個のメモリマクロの全てが選択され、前記出力合成回路は、前記選択された全てのメモリマクロの間で前記圧縮されたn0ビットのデータ（合計n0×ｍビットのデータ）をn0ビットのデータに合成すると共に、前記選択された全てのメモリマクロの間で前記圧縮されたn0ビットのデータを比較し、それらが一致し、かつ、前記選択された全てのメモリマクロに対応する前記ｍ個のインターフェイス部の各々から出力される前記ＰＡＳＳ／ＦＡＩＬビットの全てが前記一致を示しているときに、前記一致を示す前記ＰＡＳＳ／ＦＡＩＬビットを出力する。
【００２８】
【発明の実施の形態】
以下、図面を参照しながら、本発明のメモリ混載ロジックＬＳＩについて詳細に説明する。
【００２９】
図１は、メモリ混載ロジックＬＳＩのフロアプランの一例を示している。
【００３０】
半導体チップ１０内には、ロジック部１１、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ及びパッド部１３が配置される。ロジック部１１には、半導体メモリ以外の機能を有する回路ブロックが形成される。メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、例えば、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）の機能を有し、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ内で、データの書き込み、読み出しなどの完結した一連の動作が可能となっている。
【００３１】
メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ内には、ロジック部１１との接点となるインターフェイス部１４Ａ，１４Ｂ，１４Ｃ，１４Ｄが設けられている。インターフェイス部１４Ａ，１４Ｂ，１４Ｃ，１４Ｄは、例えば、入出力（Ｉ／Ｏ）レジスタを備えている。また、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ内には、メモリマクロのテストを制御するためのテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄが配置されている。
【００３２】
パッド部１３は、半導体チップ１０の縁部に沿って配置され、制御信号の入力やデータの入出力を行うためのパッド１６を備えている。
【００３３】
このようなメモリ混載ロジックＬＳＩの特徴は、ロジック部１１とメモリマクロ１２の間で、直接、データのやりとりを行っている点にある。つまり、ロジックの機能と半導体メモリの機能をワンチップ内に混載することで、これら２つの機能を繋ぐために、Ｉ／Ｏパッドや長い配線は必要なくなる。よって、メモリマクロにおいては、大きなサイズのＩ／Ｏバッファが必要なく、低消費電力化に貢献できる。また、半導体チップ１０内に形成される配線の幅は１μｍ以下で形成できるので、同時にメモリマクロに入出力するデータ数を極端に増やすことができる。このため、一度に大量のデータを転送でき、メモリの高性能化に貢献できる。
【００３４】
図２は、図１のメモリ混載ロジックＬＳＩのメモリマクロのテスト回路の第１例を示している。
【００３５】
まず、本例におけるテスト回路の構成について説明する。
【００３６】
半導体チップ１０内には、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄが配置されている。メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、それぞれデータの入出力が行われるインターフェイス部１４Ａ，１４Ｂ，１４Ｃ，１４Ｄとメモリマクロのテストを制御するテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄを備えている。
【００３７】
テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄは、メモリマクロを識別するためのマクロＩＤを生成するマクロＩＤ生成回路と、半導体チップ１０の外部からメモリマクロに入力されるマクロ選択信号（入力ＩＤ）とマクロＩＤを比較してメモリマクロを選択するためのマクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄを備えている。
【００３８】
マクロＩＤ生成回路については、メモリマクロ（テスト制御ブロック）内に設けてもよいし、また、メモリマクロの外部に設けてもよい。
【００３９】
メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄには、互いに異なるマクロＩＤが割り当てられている。例えば、本例では、半導体チップ１０内に４つのメモリマクロが配置されるため、マクロＩＤは、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに対して、それぞれ“００”，“０１”，“１０”，“１１”が割り当てられる。
【００４０】
ロジック部１１には、例えば、ｎＩビットのデータを転送可能な入力信号線２１、ｎＯビットのデータを転送可能な第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ、ｎＯビットのデータを転送可能な第２の出力信号線２３、制御信号線４６及びマルチプレクサ１９が形成される。
【００４１】
入力信号線２１の一端は、パッド１６ＴＩに接続され、他端は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに共通に接続される。第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄの一端は、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに接続され、他端は、出力選択回路１９に接続される。第２の出力信号線２３の一端は、出力選択回路１９に接続され、他端は、パッド１６ＴＯに接続される。
【００４２】
また、制御信号線４６の一端は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに接続され、他端は、マルチプレクサ１９に接続される。マルチプレクサ１９は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから制御信号線４６に出力される制御信号に基づいて、第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄのうちの１本と第２の出力信号線２３を電気的に接続する。
【００４３】
パッド１６ＴＩ，１６ＴＯは、通常、パッド部に設けるパッド数の制限により、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのテスト用として用いられると共に、ロジック部１１の回路に対するデータ又は制御信号の入出力用としても用いられる。
【００４４】
次に、図２のメモリマクロのテスト手法について説明する。
【００４５】
まず、テスタ２４により、マクロ選択信号（入力ＩＤ）がパッド１６ＴＩを経由して各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに供給されると共に、電源ＶＤＤ，ＶＳＳも各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに供給される。テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄ内のマクロＩＤ生成回路では、マクロＩＤが生成され、マクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄにおいて、マクロＩＤと入力ＩＤの比較が行われる。
【００４６】
そして、マクロＩＤと入力ＩＤの比較の結果、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのうちの１つが選択される。即ち、選択された１つのメモリマクロでは、マクロ選択回路の出力信号ＭＥｎが“０”となり、残りの３つの非選択のメモリマクロでは、マクロ選択回路の出力信号ＭＥｎが“１”となる。
【００４７】
また、選択されたメモリマクロ、即ち、マクロ選択回路の出力信号ＭＥｎが“０”のメモリマクロでは、この後、コマンドを取り込むことができるようになる。よって、選択されたメモリマクロでは、テスト動作（データの書き込み、読み出し）が可能になり、非選択のメモリマクロ、即ち、マクロ選択回路の出力信号ＭＥｎが“１”のメモリマクロでは、テスト動作が行われない。
【００４８】
選択されたメモリマクロでは、まず、メモリセルに対するデータの書き込みが行われ、この後、メモリセルからデータが読み出される。例えば、２５６個のＩ／Ｏを持つメモリマクロでは、同時に、２５６のデータが読み出されるが、本例では、この２５６のデータを８ビット（ｎＯビット）ずつ３２回にわけて半導体チップ１０の外部のテスタ２４に読み出す。
【００４９】
この時、マルチプレクサ１９は、選択されたメモリマクロに接続される第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄを第２の出力信号線２３に電気的に接続する。即ち、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのマクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄの出力信号ＭＥｎは、制御信号線４６を経由して、直接、マルチプレクサ１９に入力される。よって、マルチプレクサ１９は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのマクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄの出力信号ＭＥｎに基づいて、選択されたメモリマクロに接続される第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄを第２の出力信号線２３に電気的に接続することができる。
【００５０】
半導体チップ１０の外部に読み出されたデータは、テスタ２４において期待値と比較され、その比較結果に基づいて、メモリセルの良、不良が判断される。
【００５１】
なお、選択される１つのメモリマクロを、順次、切り替えていくことで、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄについて機能テストを行うことが可能である。
【００５２】
以上の構成を有するメモリマクロのテスト回路によれば、マルチプレクサ１９により、選択されたメモリマクロの読み出しデータを出力するようにしている。よって、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄを順次選択していくことにより全てのメモリマクロのテストを行うことができる。
【００５３】
図３は、図１のメモリ混載ロジックＬＳＩのメモリマクロのテスト回路の第２例を示している。
【００５４】
本例のテスト回路は、図２のテスト回路と比較すると、出力選択回路にマルチプレクサを用いることなく、ロジック的な手法により、選択された１つのメモリマクロのデータを半導体チップ１０の外部に出力するようにしている点に特徴を有する。よって、本例のテスト回路では、図２の制御信号線４６が不要であり、設計時にこの制御信号線に要していた労力を回避できると共に配線ミスも減らすことができる。また、ロジック的に出力の選択を行うため、消費電力の削減にも貢献できる。
【００５５】
まず、本例におけるテスト回路の構成について説明する。
【００５６】
半導体チップ１０内には、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄが配置されている。メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、それぞれデータの入出力が行われるインターフェイス部１４Ａ，１４Ｂ，１４Ｃ，１４Ｄとメモリマクロのテストを制御するテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄを備えている。
【００５７】
テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄは、メモリマクロを識別するためのマクロＩＤを生成するマクロＩＤ生成回路と、半導体チップ１０の外部からメモリマクロに入力されるマクロ選択信号（入力ＩＤ）とマクロＩＤを比較してメモリマクロを選択するためのマクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄを備えている。
【００５８】
マクロＩＤ生成回路については、メモリマクロ（テスト制御ブロック）内に設けてもよいし、また、メモリマクロの外部に設けてもよい。
【００５９】
メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄには、互いに異なるマクロＩＤが割り当てられている。例えば、本例では、半導体チップ１０内に４つのメモリマクロが配置されるため、マクロＩＤは、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに対して、それぞれ“００”，“０１”，“１０”，“１１”が割り当てられる。
【００６０】
ロジック部１１には、例えば、ｎＩビットのデータを転送可能な入力信号線２１、ｎＯビットのデータを転送可能な第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ、ｎＯビットのデータを転送可能な第２の出力信号線２３及びアンド（ＡＮＤ）回路４７が形成される。
【００６１】
入力信号線２１の一端は、パッド１６ＴＩに接続され、他端は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに共通に接続される。第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄの一端は、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに接続され、他端は、アンド回路４７に接続される。第２の出力信号線２３の一端は、アンド回路４７の出力端に接続され、他端は、パッド１６ＴＯに接続される。
【００６２】
パッド１６ＴＩ，１６ＴＯは、通常、パッド部に設けるパッド数の制限により、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのテスト用として用いられると共に、ロジック部１１の回路に対するデータ又は制御信号の入出力用としても用いられる。
【００６３】
図４は、図３のメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのインターフェイス部１４Ａの一例を示している。
【００６４】
メモリマクロ内には、｛ｋ（例えば、３１）＋１｝個のＩ／Ｏレジスタブロック２５−０，…２５−ｋが配置される。Ｉ／Ｏレジスタブロック２５−０，…２５−ｋの各々は、例えば、８個の入力レジスタ９０−０，…９０−７と、８個の出力レジスタ２６−０，…２６−７と、選択スイッチ２７とを有している。入力レジスタ９０−ｉ（ｉ＝０，…７）及び出力レジスタ２６−ｉ（ｉ＝０，…７）のメモリマクロ側の端子は、データ線対ＤＱｋｉ，／ＤＱｋｉ（ｉ＝０，…７）に接続される。
【００６５】
また、例えば、Ｉ／Ｏレジスタブロック２５−ｋにおいて、入力レジスタ９０−ｉ（ｉ＝０，…７）のロジック側の端子は、入力信号線９１−ｉ（ｉ＝８ｋ，…８ｋ＋７）に接続されると共に、選択スイッチ２７を介してテスト信号線に接続される。出力レジスタ２６−ｉ（ｉ＝０，…７）のロジック部側の端子は、出力信号線７０−ｉ（ｉ＝８ｋ，…８ｋ＋７）に接続されると共に、選択スイッチ２７を介して、テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄ内のマクロ出力制御回路４８に接続される。
【００６６】
テスト時、テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄにおいてレジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋが生成される。このレジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋは、ｋ個のＩ／Ｏレジスタブロック２５−０，…２５−ｋのうちの１つを選択する。選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオン状態となり、非選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオフ状態となる。
【００６７】
よって、テスト時、選択状態のＩ／Ｏレジスタブロックでは、８ビット（１バイト）のデータＴＤ・０，…ＴＤ・７がテスト信号線を経由して入力され、メモリセルに書き込まれる。また、メモリセルから読み出された８ビットのデータＴＤＯ・０，…ＴＤＯ・７が、選択状態のＩ／Ｏレジスタブロックからマクロ出力制御回路４８に出力される。
【００６８】
なお、（ｋ＋１）個のＩ／Ｏレジスタブロック２５−０，…２５−ｋが１つずつ順次選択されることにより、（ｋ＋１）×８ビットの全てのデータがメモリマクロから半導体チップの外部に読み出される。
【００６９】
マクロ出力制御回路４８は、出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７の値を強制的に“１”に固定する機能を有する。よって、メモリマクロが非選択の場合には、出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７の値を強制的に“１”に固定する。また、メモリマクロが選択されている場合には、出力信号ＴＤＯ・０，…ＴＤＯ・７を出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７としてそのまま出力する。
【００７０】
図５（ａ）は、図４のマクロ出力制御回路４８の一例を示している。
【００７１】
本例では、マクロ出力制御回路４８がオア回路から構成される。そして、マクロ選択回路の出力信号ＭＥｎ及び出力レジスタの出力信号（読み出しデータ）ＴＤＯ・０，…ＴＤＯ・７がそれぞれオア回路に入力される。
【００７２】
選択されたメモリマクロでは、マクロ選択回路の出力信号ＭＥｎは、“０”になるため、マクロ出力制御回路４８の出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７は、出力レジスタの出力信号ＴＤＯ・０，…ＴＤＯ・７と同じになる。
【００７３】
一方、非選択のメモリマクロでは、マクロ選択回路の出力信号ＭＥｎは、“１”になるため、マクロ出力制御回路４８の出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７は、入出力レジスタの出力信号ＴＤＯ・０，…ＴＤＯ・７にかかわらず、“１”に固定される。
【００７４】
なお、図３乃至図５に示す例では、非選択のメモリマクロの出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７を“１”に固定するマクロ出力制御回路４８を設けたが、例えば、マクロ出力制御回路４８を図５（ｂ）の回路から構成することにより、非選択のメモリマクロの出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７を“０”に固定することもできる。この場合、ロジック部１１に設ける論理回路としては、アンド回路４７に変えて、オア回路を用いる。
【００７５】
次に、図３乃至図５のメモリマクロのテスト手法について説明する。
【００７６】
まず、テスタ２４により、マクロ選択信号（入力ＩＤ）がパッド１６ＴＩを経由して各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに供給されると共に、電源ＶＤＤ，ＶＳＳも各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに供給される。テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄ内のマクロＩＤ生成回路では、マクロＩＤが生成され、マクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄにおいて、マクロＩＤと入力ＩＤの比較が行われる。
【００７７】
そして、マクロＩＤと入力ＩＤの比較の結果、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのうちの１つが選択される。即ち、選択された１つのメモリマクロでは、マクロ選択回路の出力信号ＭＥｎが“０”となり、残りの３つの非選択のメモリマクロでは、マクロ選択回路の出力信号ＭＥｎが“１”となる。
【００７８】
また、選択されたメモリマクロ、即ち、マクロ選択回路の出力信号ＭＥｎが“０”のメモリマクロでは、この後、コマンドを取り込むことができるようになる。よって、選択されたメモリマクロでは、テスト動作（データの書き込み、読み出し）が可能になり、非選択のメモリマクロ、即ち、マクロ選択回路の出力信号ＭＥｎが“１”のメモリマクロでは、テスト動作が行われない。
【００７９】
選択されたメモリマクロでは、まず、メモリセルに対するデータの書き込みが行われ、この後、メモリセルからデータが読み出される。例えば、２５６個のＩ／Ｏを持つメモリマクロでは、同時に、２５６のデータが読み出されるが、本例では、この２５６のデータを、８ビット（ｎＯビット）ずつ、３２回にわけて読み出す。
【００８０】
この時、選択されたメモリマクロでは、マクロ出力制御回路４８にＭＥｎ＝“０”が入力されるため、８ビットの出力信号（読み出しデータ）ＴＤＯ・０，…ＴＤＯ・７が、そのまま選択されたメモリマクロの出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７として出力される。
【００８１】
非選択のメモリマクロでは、マクロ出力制御回路４８にＭＥｎ＝“１”が入力されるため、８ビットの出力信号（読み出しデータ）ＴＤＯ・０，…ＴＤＯ・７にかかわらず、非選択のメモリマクロの出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７は、“１”に固定される。
【００８２】
そして、ロジック部１１のアンド回路４７には、選択されたメモリマクロから“１”又は“０”の出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７が入力され、非選択のメモリマクロから“１”に固定された出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７が入力される。
【００８３】
よって、アンド回路４７は、結果として、選択されたメモリマクロの出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７をそのまま出力することになる。
【００８４】
なお、半導体チップ１０の外部に読み出されたデータは、テスタ２４において期待値と比較され、その比較結果に基づいて、メモリセルの良、不良が判断される。また、選択されるメモリマクロを、順次、切り替えていくことで、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄについて機能テストが行われる。
【００８５】
以上の構成を有するメモリマクロのテスト回路によれば、出力選択回路にマルチプレクサを用いることなく、ロジック的な手法により、選択された１つのメモリマクロのデータを半導体チップ１０の外部に出力している。よって、メモリ混載ロジックＬＳＩの設計時に、図２の制御信号線４６のレイアウトに時間を要したり、図２の制御信号線４６のためのスペースを確保したりする必要がなくなる。また、配線ミスが減り、設計効率を上げることができる。さらに、ロジック的な手法により出力の選択を行っているため、低消費電力化に貢献できる。
【００８６】
本例のテスト回路は、メモリセルアレイ内に不良セルを発見し、不良セルを冗長セルに置き換えるためのウェハ状態におけるテストや、パッケージングした後に良品と不良品に分けるファイナルテストなどに使用することができる。
【００８７】
図６は、図１のメモリ混載ロジックＬＳＩのメモリマクロのテスト回路の第３例を示している。
【００８８】
まず、本例におけるテスト回路の構成について説明する。
【００８９】
半導体チップ１０内には、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄが配置されている。メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、それぞれデータの入出力が行われるインターフェイス部１４Ａ，１４Ｂ，１４Ｃ，１４Ｄとメモリマクロのテストを制御するテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄを備えている。
【００９０】
テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄは、メモリマクロを識別するためのマクロＩＤを生成するマクロＩＤ生成回路２０Ａ，２０Ｂ，２０Ｃ，２０Ｄと、半導体チップ１０の外部からメモリマクロに入力されるマクロ選択信号（入力ＩＤ）とマクロＩＤを比較してメモリマクロを選択するためのマクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄを備えている。
【００９１】
メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄには、互いに異なるマクロＩＤが割り当てられている。例えば、本例では、半導体チップ１０内に４つのメモリマクロが配置されるため、マクロＩＤは、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに対して、それぞれ“００”，“０１”，“１０”，“１１”が割り当てられる。
【００９２】
ロジック部１１には、例えば、ｎＩビットのデータを転送可能な入力信号線２１、ｎＯビットのデータを転送可能な第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ、ｎＯビットのデータを転送可能な第２の出力信号線２３及び出力選択回路１８が形成される。
【００９３】
入力信号線２１の一端は、パッド１６ＴＩに接続され、他端は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに共通に接続される。第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄの一端は、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに接続され、他端は、出力選択回路１８に接続される。第２の出力信号線２３の一端は、出力選択回路１８に接続され、他端は、パッド１６ＴＯに接続される。
【００９４】
出力選択回路１８は、第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄのうちの１本と第２の出力信号線２３を電気的に接続する機能を有する。
【００９５】
パッド１６ＴＩ，１６ＴＯは、通常、パッド部に設けるパッド数の制限により、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのテスト用として用いられると共に、ロジック部１１の回路に対するデータ又は制御信号の入出力用としても用いられる。この場合、入力信号線２１及び第２の出力信号線２３の途中には、それぞれマルチプレクサが設けられ、パッド１６ＴＩ，１６ＴＯの機能の切り替えが行われる。なお、半導体チップ１０上に設けるパッド数に余裕があれば、パッド１６ＴＩ，１６ＴＯをテスト専用としてもよい。
【００９６】
また、パッド１６ＴＩの数は、例えば、入力信号線２１の数に対応させてｎＩ本とし、パッド１６ＴＯの数も、例えば、第２の出力信号線２３の数に対応させてｎＯ本とする。但し、パッド１６ＴＩ，１６ＴＯの数を、ｎＩ又はｎＯ本よりも少ない数としてもよい。
【００９７】
図７は、図６のメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのインターフェイス部１４Ａの一例を示している。
【００９８】
１つのメモリマクロ内には、｛ｋ（例えば、３１）＋１｝個のＩ／Ｏレジスタブロック２５−０，…２５−ｋが配置される。Ｉ／Ｏレジスタブロック２５−０，…２５−ｋの各々は、例えば、８個の入力レジスタ９０−０，…９０−７と、８個の出力レジスタ２６−０，…２６−７と、選択スイッチ２７とを有している。入力レジスタ９０−ｉ（ｉ＝０，…７）及び出力レジスタ２６−ｉ（ｉ＝０，…７）のメモリマクロ側の端子は、データ線対ＤＱｋｉ，／ＤＱｋｉ（ｉ＝０，…７）に接続される。
【００９９】
また、例えば、Ｉ／Ｏレジスタブロック２５−ｋにおいて、入力レジスタ９０−ｉ（ｉ＝０，…７）のロジック部側の端子は、入力信号線９１−ｉ（ｉ＝８ｋ，…８ｋ＋７）に接続されると共に、選択スイッチ２７を介してテスト信号線に接続される。出力レジスタ２６−ｉ（ｉ＝０，…７）のロジック部側の端子は、出力信号線７０−ｉ（ｉ＝８ｋ，…８ｋ＋７）に接続されると共に、選択スイッチ２７を介して、テスト用の第１の出力信号線２１Ａ，２１Ｂ，２１Ｃ，２１Ｄに接続される。
【０１００】
本例では、メモリマクロの通常時の入力データＱＩ０，…ＱＩ（８ｋ＋７）及び出力データＱ０，…Ｑ（８ｋ＋７）は、それぞれ（ｋ＋１）×８ビット存在する。入力データＱＩ０，…ＱＩ（８ｋ＋７）は、ロジック部から入力信号線９１−０，…９１−（８ｋ＋７）を経由してメモリマクロ内に入力され、出力データＱ０，…Ｑ（８ｋ＋７）は、メモリマクロから出力信号線７０−０，…７０−（８ｋ＋７）を経由してロジック部に出力される。
【０１０１】
また、テスト時、テスト制御ブロックにおいて、レジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋが生成される。レジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋは、ｋ個のＩ／Ｏレジスタブロック２５−０，…２５−ｋのうちの１つを選択する。選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオン状態となり、非選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオフ状態となる。
【０１０２】
よって、テスト時、８ビットのデータＴＤ・０，…ＴＤ・７がテスト信号線から選択状態のＩ／Ｏレジスタブロック内の入力レジスタ９０−０，…９０−７に入力される。また、８ビットのデータＤＴＤＯ・０，…ＤＴＤＯ・７が、選択状態のＩ／Ｏレジスタブロックから第１の出力信号線２１Ａ，２１Ｂ，２１Ｃ，２１Ｄに出力される。
【０１０３】
また、（ｋ＋１）×８ビットの全てのデータを、メモリマクロから半導体チップの外部に読み出すには、（ｋ＋１）個のＩ／Ｏレジスタブロック２５−０，…２５−ｋを１つずつ順次選択していけばよい。
【０１０４】
なお、テスト時の出力データ数を通常時の入出力データ数よりも大幅に減らしているのは、テスト時の出力データを半導体チップの外部に出力するパッド数に制限があるためである。
【０１０５】
図８は、図７の入力レジスタ９０−０，…９０−７及び出力レジスタ２６−０，…２６−７の一例を示している。
【０１０６】
入力レジスタは、入力用バッファ２９から構成され、出力レジスタは、出力用バッファ２８から構成される。入力用バッファ２９は、書き込み制御信号ＷＴＥＮにより制御され、データＱＩ又はテストデータＴＤ・ｉを相補データとしてデータ線対ＤＱｉ，／ＤＱｉに出力する。出力用バッファ２８は、読み出し制御信号ＲＤＥＮにより制御され、データ線対ＤＱｉ，／ＤＱｉの相補データをデータＱＩ又はテストデータＤＴＤＯ・ｉとして出力する。
【０１０７】
次に、図６のメモリマクロのテスト手法について説明する。
【０１０８】
まず、テスタ２４により、マクロ選択信号（入力ＩＤ）がパッド１６ＴＩを経由して各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに供給されると共に、電源ＶＤＤ，ＶＳＳも各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに供給される。テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄ内のマクロＩＤ生成回路２０Ａ，２０Ｂ，２０Ｃ，２０Ｄでは、マクロＩＤが生成され、マクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄでは、マクロＩＤと入力ＩＤの比較が行われる。そして、マクロＩＤと入力ＩＤの比較の結果、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのうちの１つが選択される。
【０１０９】
例えば、メモリマクロ１２ＡでマクロＩＤ“００”が生成され、メモリマクロ１２ＢでマクロＩＤ“０１”が生成され、メモリマクロ１２ＣでマクロＩＤ“１０”が生成され、メモリマクロ１２ＤでマクロＩＤ“１１”が生成され、また、例えば、入力ＩＤが“００”であると、メモリマクロ１２Ａが選択状態となり、その他のメモリマクロ１２Ｂ，１２Ｃ，１２Ｄが非選択状態となる。
【０１１０】
選択状態のメモリマクロ１２Ａでは、この後、コマンドを取り込むことができるようになる。よって、選択状態のメモリマクロ１２Ａでは、テスト動作（データの書き込み、読み出し）が可能になり、非選択状態のメモリマクロ１２Ｂ，１２Ｃ，１２Ｄでは、テスト動作が行われない。
【０１１１】
選択状態のメモリマクロ１２Ａでは、まず、メモリセルに対するデータの書き込みが行われ、この後、メモリセルからデータが読み出される。例えば、２５６個のＩ／Ｏを持つメモリマクロでは、同時に、２５６のデータが読み出されるが、本例では、この２５６のデータを８ビット（ｎＯビット）ずつ３２回にわけて半導体チップ１０の外部のテスタ２４に読み出す。この時、出力選択回路１８は、選択状態のメモリマクロ１２Ａに接続される第１の出力信号線２２Ａを第２の出力信号線２３に電気的に接続している。
【０１１２】
半導体チップ１０の外部に読み出されたデータは、テスタ２４において期待値と比較され、その比較結果に基づいて、メモリセルの良、不良が判断される。
【０１１３】
なお、メモリマクロ１２Ａのテストが終了した後、順次、メモリマクロ１２Ｂ，１２Ｃ，１２Ｄのテストを行い、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄについて機能テストを行う。
【０１１４】
以上の構成を有するメモリマクロのテスト回路によれば、半導体チップ１０に内蔵されたメモリマクロのテストを、例えば、半導体チップ１０の外部に存在するテスタを用いてダイレクトに行うことができる（ダイレクト・メモリ・アクセス・モード）。
【０１１５】
本例のテスト回路は、メモリセルアレイ内に不良セルを発見し、不良セルを冗長セルに置き換えるためのウェハ状態におけるテストや、パッケージングした後に良品と不良品に分けるファイナルテストなどに使用することができる。
【０１１６】
ところで、複数のメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄを１つずつ順番にテストする場合、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ内には、メモリマクロを識別するマクロＩＤを生成するためのマクロＩＤ生成回路２０Ａ，２０Ｂ，２０Ｃ，２０Ｄが設けられる。このマクロＩＤ生成回路２０Ａ，２０Ｂ，２０Ｃ，２０Ｄは、メモリマクロごとに異なったマクロＩＤを生成する必要があるため、当然に、メモリマクロごとに回路構成が異なっている。
【０１１７】
一方、メモリ混載ロジックＬＳＩでは、設計時間の短縮のため、予め、機能、特性が確認された回路ブロックを作成しておき、この回路ブロックを、各ユーザの要求に合致したメモリマクロを設計するに当たって使用するという設計手法が採用される。
【０１１８】
よって、マクロＩＤ生成回路２０Ａ，２０Ｂ，２０Ｃ，２０Ｄがメモリマクロごとに異なると、メモリ混載ロジックＬＳＩを設計する度に、メモリマクロごとにメモリマクロの数に応じたテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄを設計しなければならず、設計に多大な時間を要し、回路ブロックを用いる設計手法の利点を引き出せない。
【０１１９】
図９は、図１のメモリ混載ロジックＬＳＩのメモリマクロのテスト回路の第４例を示している。
【０１２０】
本例のテスト回路の特徴は、マクロＩＤ生成回路３０Ａ，３０Ｂ，３０Ｃ，３０Ｄが、テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄ外部、即ち、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの外部に存在し、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ内のテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄが同じ回路構成（パターン）を有している点にある。よって、メモリ混載ロジックＬＳＩを設計する際に、メモリマクロの数によらず、同一の構成のテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄを用いることができ、設計時間の短縮に貢献できる。
【０１２１】
まず、本例におけるテスト回路の構成について説明する。
【０１２２】
半導体チップ１０内には、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄが配置されている。メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、それぞれデータの入出力が行われるインターフェイス部１４Ａ，１４Ｂ，１４Ｃ，１４Ｄとメモリマクロのテストを制御するテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄを備えている。
【０１２３】
インターフェイス部１４Ａ，１４Ｂ，１４Ｃ，１４Ｄは、上述の図６の例と同様に、例えば、図７及び図８に示すような回路から構成される。
【０１２４】
テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄは、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄにおいて同一の回路構成（レイアウト）を有している。よって、メモリ混載ロジックＬＳＩを設定するに当たって、テスト制御ブロックを再設計する必要がなく、設計時間の短縮及び製造コストの低減を達成することができる。
【０１２５】
メモリマクロを識別するためのマクロＩＤを生成するマクロＩＤ生成回路３０Ａ，３０Ｂ，３０Ｃ，３０Ｄは、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの外部のロジック部１１に配置される。マクロＩＤ生成回路３０Ａ，３０Ｂ，３０Ｃ，３０Ｄは、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに対応して設けられる。マクロＩＤ生成回路３０Ａ，３０Ｂ，３０Ｃ，３０Ｄは、メモリマクロを識別するために、互いに異なったマクロＩＤを生成するため、その回路構成は、当然に、互いに異なったものとなる。
【０１２６】
テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄは、半導体チップ１０の外部からメモリマクロに入力されるマクロ選択信号（入力ＩＤ）とマクロＩＤを比較してメモリマクロを選択するためのマクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄを備えている。
【０１２７】
ロジック部１１には、例えば、ｎＩビットのデータを転送可能な入力信号線２１、ｎＯビットのデータを転送可能な第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ、ｎＯビットのデータを転送可能な第２の出力信号線２３及び出力選択回路１８が形成される。
【０１２８】
入力信号線２１の一端は、パッド１６ＴＩに接続され、他端は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに共通に接続される。第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄの一端は、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに接続され、他端は、出力選択回路１８に接続される。第２の出力信号線２３の一端は、出力選択回路１８に接続され、他端は、パッド１６ＴＯに接続される。
【０１２９】
出力選択回路１８は、第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄのうちの１本と第２の出力信号線２３を電気的に接続する機能を有する。
【０１３０】
パッド１６ＴＩ，１６ＴＯは、パッド部に設けるパッド数に制限があるため、図６の例の場合と同様に、テスト用として用いられると共にロジック部１１の回路に対するデータ又は制御信号の入出力用としても用いられる。なお、半導体チップ１０上に設けるパッド数に余裕があれば、パッド１６ＴＩ，１６ＴＯをテスト専用としてもよい。
【０１３１】
また、パッド１６ＴＩの数は、例えば、入力信号線２１の数に対応させてｎＩ本とし、パッド１６ＴＯの数も、例えば、第２の出力信号線２３の数に対応させてｎＯ本とする。但し、パッド１６ＴＩ，１６ＴＯの数を、ｎＩ又はｎＯ本よりも少ない数としてもよい。
【０１３２】
次に、図９のメモリマクロのテスト手法について説明する。
【０１３３】
まず、テスタ２４により、マクロ選択信号（入力ＩＤ）がパッド１６ＴＩを経由して各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに供給されると共に、電源ＶＤＤ，ＶＳＳも各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに供給される。マクロ選択信号などのメモリマクロに入力される信号は、パッド数が制限されていることから、コード化されており、通常、テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄでマクロ選択信号をデコードして用いている。しかし、パッド数に余裕があれば、コード化されてない信号を、直接、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに供給してもよい。
【０１３４】
マクロＩＤ生成回路３０Ａ，３０Ｂ，３０Ｃ，３０Ｄでは、マクロＩＤが生成され、このマクロＩＤは、テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄ内に入力される。マクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄでは、マクロＩＤと入力ＩＤの比較が行われ、マクロＩＤと入力ＩＤの比較の結果、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのうちの１つが選択される。
【０１３５】
例えば、メモリマクロ１２ＡにマクロＩＤ“００”が入力され、メモリマクロ１２ＢにマクロＩＤ“０１”が入力され、メモリマクロ１２ＣにマクロＩＤ“１０”が入力され、メモリマクロ１２ＤにマクロＩＤ“１１”が入力され、また、例えば、入力ＩＤが“０１”であると、メモリマクロ１２Ｂが選択状態となり、その他のメモリマクロ１２Ａ，１２Ｃ，１２Ｄが非選択状態となる。
【０１３６】
選択状態のメモリマクロ１２Ｂでは、この後、コマンドを取り込むことができるようになる。よって、選択状態のメモリマクロ１２Ｂでは、テスト動作（データの書き込み、読み出し）が可能になり、非選択状態のメモリマクロ１２Ａ，１２Ｃ，１２Ｄでは、テスト動作が行われない。
【０１３７】
選択状態のメモリマクロ１２Ｂでは、まず、メモリセルに対するデータの書き込みが行われ、この後、メモリセルからデータが読み出される。例えば、２５６個のＩ／Ｏを持つメモリマクロでは、同時に、２５６のデータが読み出されるが、本例では、この２５６のデータを８ビット（ｎＯビット）ずつ３２回にわけて半導体チップ１０の外部のテスタ２４に読み出す。この時、出力選択回路１８は、選択状態のメモリマクロ１２Ｂに接続される第１の出力信号線２２Ｂを第２の出力信号線２３に電気的に接続している。
【０１３８】
半導体チップ１０の外部に読み出されたデータは、テスタ２４において期待値と比較され、その比較結果に基づいて、メモリセルの良、不良が判断される。
【０１３９】
なお、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄについて、順次、機能テストを行うようにすれば、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの機能テストを行うことができる。
【０１４０】
以上の構成を有するメモリマクロのテスト回路によれば、半導体チップ１０に内蔵されたメモリマクロのテストを、例えば、半導体チップ１０の外部に存在するテスタを用いてダイレクトに行うことができる。
【０１４１】
また、ロジック的な手法により、選択された１つのメモリマクロのデータを半導体チップ１０の外部に出力している。よって、メモリ混載ロジックＬＳＩの設計時に、図２の制御信号線４６が必要なく、設計負担が軽減され、配線ミスも減り、設計効率を上げることができる。さらに、ロジック的な手法により出力の選択を行っているため、低消費電力化に貢献できる。
【０１４２】
また、本例では、メモリマクロを識別するマクロＩＤを生成するためのマクロＩＤ生成回路３０Ａ，３０Ｂ，３０Ｃ，３０Ｄがメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの外部に設けられる。よって、メモリ混載ロジックＬＳＩを設計する際に、メモリマクロの数に関係なく、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに、同じ構成のテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄを用いることができ、設計負担が軽減され、設計時間を短縮できる。
【０１４３】
本例のテスト回路も、メモリセルアレイ内に不良セルを発見し、不良セルを冗長セルに置き換えるためのウェハ状態におけるテストや、パッケージングした後に良品と不良品に分けるファイナルテストなどに使用することができる。
【０１４４】
図１０は、図１のメモリ混載ロジックＬＳＩのメモリマクロのテスト回路の第５例を示している。
【０１４５】
本例のテスト回路は、図９のテスト回路の特徴を全て含むと共に、さらに、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのメモリ容量が異なっている点に特徴を有する。即ち、図９のテスト回路では、テストの対象となるメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、全て同一のメモリ容量を有しているが、本例のテスト回路では、テストの対象となるメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、互いに同一のメモリ容量を有していない。
【０１４６】
通常、メモリ混載ロジックＬＳＩのメモリマクロは、予め設計された所定のメモリ容量を有するメモリセグメント（又はブロック）の数を変えることにより、ユーザの希望に応じた任意のメモリ容量のメモリマクロを短時間で設計できるようになっている。また、メモリマクロのメモリ容量の増減は、テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄ、特に、マクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄの構成を変える理由とはならない。
【０１４７】
よって、本発明は、このような互いに異なるメモリ容量の複数のメモリマクロを有するメモリ混載ロジックＬＳＩに適用することもできる。
【０１４８】
なお、本例のメモリマクロのテスト手法については、図９のテスト回路を用いたメモリマクロのテスト手法と同じであるため、省略する。
【０１４９】
図１１は、テスト制御ブロック内のマクロ選択回路の一例を示している。
【０１５０】
マクロ選択信号ＭＳＥＬｐは、マクロ選択コマンドを表わす信号であり、マクロ選択信号ＭＳＥＬｐが“１”のとき、メモリマクロが選択される。リセット信号ＲＥＳＥＴｐは、テスト回路の状態をリセットする信号であり、リセットコマンドが入力されたときに“１”となる。全マクロ選択信号ＭＳＥＬＡＬＬｐは、全てのメモリマクロを選択状態にするために使用されるものであり、全マクロ選択コマンドが入力されたときに“１”となる。
【０１５１】
マクロ選択信号ＭＳＥＬｐ、リセット信号ＲＥＳＥＴｐ及び全マクロ選択信号ＭＳＥＬＡＬＬｐは、例えば、図２、図３、図６、図９、図１０のパッド１６ＴＩから半導体チップ内に入力されるコード化された信号から生成される。信号ＭＩＤ［０］，ＭＩＤ［１］は、例えば、図２、図３、図６、図９、図１０のマクロＩＤ生成回路から出力されるマクロＩＤであり、メモリマクロごとに異なっている。本例では、４つのメモリマクロを２ビットの信号ＭＩＤ［０］，ＭＩＤ［１］で認識している。信号ＭＳＥＬＩＤ［０］，ＭＳＥＬＩＤ［１］は、入力ＩＤである。
【０１５２】
図１１において、３０［０］，３０［１］は、エクスクルーシブ・ノア（Ｅｘ−ＮＯＲ）回路、３１，３３ａ，３３ｂは、アンド（ＡＮＤ）回路、３２は、インバータ回路、３４ａ，３４ｂは、ノア（ＮＯＲ）回路、３５は、ＮＡＮＤ・ＲＳラッチ回路である。ＮＡＮＤ・ＲＳラッチ回路３５では、Ｓｎ＝“０”、Ｒｎ＝“１”で、Ｑｎ＝“０”となり、Ｓｎ＝“１”、Ｒｎ＝“０”で、Ｑｎ＝“１”となり、Ｓｎ＝“１”、Ｒｎ＝“１”で、出力保持動作を行う。
【０１５３】
メモリマクロの選択動作は、以下のようにして行われる。
【０１５４】
各メモリマクロのテスト制御ブロック内でマクロ選択コマンドが生成されると、全てのメモリマクロにおいて、マクロ選択信号ＭＳＥＬｐが“１”となる。また、エクスクルーシブ・ノア回路３０［０］，３０［１］で、マクロＩＤ  ＭＩＤ［０］，ＭＩＤ［１］と入力ＩＤ  ＭＳＥＬＩＤ［０］，ＭＳＥＬＩＤ［１］の比較が行われる。
【０１５５】
マクロＩＤ  ＭＩＤ［０］，ＭＩＤ［１］と入力ＩＤ  ＭＳＥＬＩＤ［０］，ＭＳＥＬＩＤ［１］が一致するメモリマクロでは、エクスクルーシブ・ノア回路３０［０］，３０［１］の出力信号は、共に、“１”となるため、アンド回路３１の出力信号も“１”となる。また、マクロ選択信号ＭＳＥＬｐが“１”なので、アンド回路３３ａの出力信号が“１”となり、アンド回路３３ｂの出力信号が“０”となる。
【０１５６】
また、リセット信号ＲＥＳＥＴｐ及び全マクロ選択信号ＭＳＥＬＡＬＬｐは、共に、“０”であるため、ノア回路３４ａの出力信号は、“０”となり、ノア回路３４ｂの出力信号は、“１”となる。つまり、ＮＡＮＤ・ＲＳラッチ回路３５では、Ｓｎ＝“０”、Ｒｎ＝“１”、Ｑｎ（ＭＥｎ）＝“０”となり、Ｑｎ（ＭＥｎ）＝“０”がラッチされる。
【０１５７】
一方、マクロＩＤ  ＭＩＤ［０］，ＭＩＤ［１］と入力ＩＤ  ＭＳＥＬＩＤ［０］，ＭＳＥＬＩＤ［１］が一致しないメモリマクロでは、エクスクルーシブ・ノア回路３０［０］，３０［１］の出力信号が、共に、“１”となることがないため、アンド回路３１の出力信号は“０”となる。また、マクロ選択信号ＭＳＥＬｐが“１”なので、アンド回路３３ａの出力信号が“０”となり、アンド回路３３ｂの出力信号が“１”となる。
【０１５８】
また、リセット信号ＲＥＳＥＴｐ及び全マクロ選択信号ＭＳＥＬＡＬＬｐは、共に、“０”であるため、ノア回路３４ａの出力信号は、“１”となり、ノア回路３４ｂの出力信号は、“０”となる。つまり、ＮＡＮＤ・ＲＳラッチ回路３５では、Ｓｎ＝“１”、Ｒｎ＝“０”、Ｑｎ（ＭＥｎ）＝“１”となり、Ｑｎ（ＭＥｎ）＝“１”がラッチされる。
【０１５９】
なお、一度、ＮＡＮＤ・ＲＳラッチ回路３５にラッチされた出力信号は、再び、マクロ選択コマンドが生成され、異なるメモリマクロが選択されるか、又はリセットコマンドが生成されない限り、解除されない。
【０１６０】
図１２は、テスト制御ブロック内のマクロ選択回路の他の例を示している。
【０１６１】
マクロ選択信号ＭＳＥＬｐは、マクロ選択コマンドを表わす信号であり、マクロ選択信号ＭＳＥＬｐが“１”のとき、メモリマクロが選択される。マクロ選択解除信号ＭＤＥＳＥＬｎは、メモリマクロを非選択状態にする信号であり、マクロ選択解除コマンドが生成されると、マクロ選択解除信号ＭＤＥＳＥＬｎが“０”になる。
【０１６２】
マクロ選択信号ＭＳＥＬｐ及びマクロ選択解除信号ＭＤＥＳＥＬｎ信号は、例えば、図２、図３、図６、図９、図１０のパッド１６ＴＩから半導体チップ内に入力されるコード化された信号から生成される。また、マクロ選択信号ＭＳＥＬｐ及びマクロ選択解除信号ＭＤＥＳＥＬｎ信号は、全てのメモリマクロのテスト制御ブロック内において一斉に生成される。
【０１６３】
信号ＭＩＤ［０］，ＭＩＤ［１］は、例えば、図２、図３、図６、図９、図１０のマクロＩＤ生成回路から出力されるマクロＩＤであり、メモリマクロごとに異なっている。本例では、４つのメモリマクロを２ビットの信号ＭＩＤ［０］，ＭＩＤ［１］で認識している。信号ＭＳＥＬＩＤ［０］，ＭＳＥＬＩＤ［１］は、入力ＩＤである。
【０１６４】
図１２において、４０［０］，４０［１］は、エクスクルーシブ・ノア（Ｅｘ−ＮＯＲ）回路、４１は、アンド（ＡＮＤ）回路、４３は、ナンド（ＮＡＮＤ）回路、４５は、ＮＡＮＤ・ＲＳラッチ回路である。
【０１６５】
メモリマクロの選択動作は、以下のようにして行われる。
【０１６６】
各メモリマクロのテスト制御ブロック内でマクロ選択コマンドが生成されると、全てのメモリマクロにおいて、マクロ選択信号ＭＳＥＬｐが“１”となる。また、エクスクルーシブ・ノア回路４０［０］，４０［１］で、マクロＩＤ  ＭＩＤ［０］，ＭＩＤ［１］と入力ＩＤ  ＭＳＥＬＩＤ［０］，ＭＳＥＬＩＤ［１］の比較が行われる。
【０１６７】
マクロＩＤ  ＭＩＤ［０］，ＭＩＤ［１］と入力ＩＤ  ＭＳＥＬＩＤ［０］，ＭＳＥＬＩＤ［１］が一致するメモリマクロでは、エクスクルーシブ・ノア回路４０［０］，４０［１］の出力信号は、共に、“１”となるため、アンド回路４１の出力信号も“１”となる。また、マクロ選択信号ＭＳＥＬｐが“１”なので、ナンド回路４３の出力信号が“０”となり、ＮＡＮＤ・ＲＳラッチ回路４５の出力信号Ｑｎ（ＭＥｎ）が“０”でラッチされる。
【０１６８】
一方、マクロＩＤ  ＭＩＤ［０］，ＭＩＤ［１］と入力ＩＤ  ＭＳＥＬＩＤ［０］，ＭＳＥＬＩＤ［１］が一致しないメモリマクロでは、エクスクルーシブ・ノア回路４０［０］，４０［１］の出力信号が、共に、“１”となることがないため、アンド回路４１の出力信号は“０”となる。また、マクロ選択信号ＭＳＥＬｐが“１”なので、ナンド回路４３の出力信号が“１”となり、ＮＡＮＤ・ＲＳラッチ回路４５の出力信号Ｑｎ（ＭＥｎ）が“１”でラッチされる。
【０１６９】
なお、一度、ＮＡＮＤ・ＲＳラッチ回路４５にラッチされた出力信号は、マクロ選択解除信号ＭＤＥＳＥＬｎが入力されない限り、解除されない。
【０１７０】
図１３は、図９及び図１０に示すマクロＩＤ生成回路３０Ａ，３０Ｂ，３０Ｃ，３０Ｄの一例を示している。
【０１７１】
本例では、ワンチップ内に４つのメモリマクロが配置されることを前提としているため、マクロＩＤは、上述のように、２ビットの信号ＭＩＤ［０］，ＭＩＤ［１］により構成される。なお、一般には、ｎビットのマクロＩＤにより、２n 個のメモリマクロを識別できる。
【０１７２】
マクロＩＤ生成回路３０Ａは、メモリマクロ１２ＡのマクロＩＤを生成する回路であり、そのマクロＩＤは、“００”である。ここで、“０”は、接地電位ＶＳＳにより表すことができる。よって、メモリマクロ１２Ａのマクロ選択回路１７Ａに信号ＭＩＤ［０］，ＭＩＤ［１］を供給するための２つの入力ノードには、共に、接地電位ＶＳＳが印加される。
【０１７３】
マクロＩＤ生成回路３０Ｂは、メモリマクロ１２ＢのマクロＩＤを生成する回路であり、そのマクロＩＤは、“０１”である。ここで、“０”は、接地電位ＶＳＳ、“１”は、電源電位ＶＤＤにより表すことができる。よって、メモリマクロ１２Ｂのマクロ選択回路１７Ｂに信号ＭＩＤ［０］，ＭＩＤ［１］を供給するための２つの入力ノードの一方には、電源電位ＶＤＤ、他方には、接地電位ＶＳＳが印加される。
【０１７４】
同様に、マクロＩＤ生成回路３０Ｃ，３０Ｄは、メモリマクロ１２Ｃ，１２ＤのマクロＩＤを生成する回路であり、そのマクロＩＤは、“１０”、“１１”である。よって、メモリマクロ１２Ｃのマクロ選択回路１７Ｃに信号ＭＩＤ［０］，ＭＩＤ［１］を供給するための２つの入力ノードの一方には、接地電位ＶＳＳ、他方には、電源電位ＶＤＤが印加される。また、メモリマクロ１２Ｄのマクロ選択回路１７Ｄに信号ＭＩＤ［０］，ＭＩＤ［１］を供給するための２つの入力ノードには、共に、電源電位ＶＤＤが印加される。
【０１７５】
マクロＩＤ生成回路３０Ａ，３０Ｂ，３０Ｃ，３０Ｄは、メモリマクロごとに異なる回路構成（レイアウト）を有しているが、上述の構成を有するマクロＩＤ生成回路を用いれば、簡単な構成により、各メモリマクロに対応したマクロＩＤを生成できるため、設計時間の短縮に効果的である。
【０１７６】
図１４（ａ），（ｂ）は、図１３に示すマクロＩＤ生成回路３０Ａ，３０Ｂ，３０Ｃ，３０Ｄの変形例を示している。
【０１７７】
上述の図１３の例では、各メモリマクロにおいて、マクロＩＤの２つの入力ノードに、直接、電源線ＶＤＤ，ＶＳＳを接続しているが、本例では、最初の１つのメモリマクロ１２Ａについてのみ、マクロＩＤの２つの入力ノードに、直接、電源線ＶＳＳを接続し、残りのメモリマクロ１２Ｂ，１２Ｃ，１２Ｄについては、メモリマクロ１２Ａ，１２Ｂ，１２Ｃから出力される信号に基づいて２ビットの信号ＭＩＤ［０］，ＭＩＤ［１］を生成している。
【０１７８】
図１５は、図１４（ａ）のテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄの構成の一例を示している。
【０１７９】
マクロ選択回路３６としては、例えば、上述した図１１又は図１２のような回路が用いられる。マクロＩＤ生成回路３７は、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄ内に形成され、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄにおいて同一の回路構成を有している。
【０１８０】
メモリマクロ１２ＡのマクロＩＤは、“００”である。メモリマクロ１２Ａのテスト制御ブロック１５Ａ内に形成されたマクロＩＤ生成回路３７は、マクロＩＤ“００”に基づいて、メモリマクロ１２ＢのマクロＩＤ“０１”を生成する。また、メモリマクロ１２Ｂのテスト制御ブロック１５Ｂ内に形成されたマクロＩＤ生成回路３７は、マクロＩＤ“０１”に基づいて、メモリマクロ１２ＣのマクロＩＤ“１０”を生成し、メモリマクロ１２Ｃのテスト制御ブロック１５Ｃ内に形成されたマクロＩＤ生成回路３７は、マクロＩＤ“１０”に基づいて、メモリマクロ１２ＤのマクロＩＤ“１１”を生成する。メモリマクロ１２Ｄのテスト制御ブロック１５Ｄ内に形成されたマクロＩＤ生成回路３７の出力端は、どこにも接続されていない。
【０１８１】
このように、本例では、マクロＩＤ生成回路３７が入力信号を加算して出力信号とする加算器の機能を有するため、いわゆるチェーン式に、各マクロＩＤ生成回路３７を接続し、マクロＩＤを生成できる。
【０１８２】
図１６は、図１４（ａ）及び図１５の回路を実現するためのマクロＩＤ生成回路の具体例を示している。
【０１８３】
このマクロＩＤ生成回路は、エクスクルーシブ・オア（Ｅｘ−ＯＲ）回路３８及びインバータ回路３９から構成される。
【０１８４】
メモリマクロ１２Ａでは、ＭＩＤＩＮ［０］＝“０”，ＭＩＤＩＮ［１］＝“０”であり、ＭＩＤＯＵＴ［０］＝“１”，ＭＩＤＩＮ［１］＝“０”となる。メモリマクロ１２Ｂでは、ＭＩＤＩＮ［０］＝“１”，ＭＩＤＩＮ［１］＝“０”であり、ＭＩＤＯＵＴ［０］＝“０”，ＭＩＤＩＮ［１］＝“１”となる。メモリマクロ１２Ｃでは、ＭＩＤＩＮ［０］＝“０”，ＭＩＤＩＮ［１］＝“１”であり、ＭＩＤＯＵＴ［０］＝“１”，ＭＩＤＩＮ［１］＝“１”となる。
【０１８５】
このように、図１４（ａ）、図１５及び図１６に示す構成によれば、マクロＩＤ生成回路３７は、簡単な回路構成であると共に、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄで同一の回路構成を有している。このため、複数のメモリマクロを有するメモリ混載ロジックＬＳＩを設計するに当たって、テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄの再設計の必要がなく、設計時間の短縮に貢献できる。
【０１８６】
また、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２ＤにマクロＩＤを割り当てる際のミス（配線ミスなど）が減り、信頼性を向上できる。
【０１８７】
図１４（ｂ）は、図１５のマクロＩＤ生成回路３７を、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの外部に設けた例である。このように、マクロＩＤ生成回路３７をメモリマクロの外部に設けた場合にも、当然に、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄは、同一の回路構成を有しているため、設計時間の短縮に貢献できる。また、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２ＤにマクロＩＤを割り当てる際のミス（配線ミスなど）も減る。
【０１８８】
図１７は、図９のメモリ混載ロジックＬＳＩのメモリマクロのテスト回路の変形例を示している。
【０１８９】
本例のテスト回路の特徴は、図９のテスト回路と比べると、マクロ選択回路がメモリマクロの外部に存在する点にある。即ち、本例では、図９のマクロＩＤ生成回路及びマクロ選択回路に相当する回路が共にメモリマクロの外部に配置されている。
【０１９０】
本例のテスト回路では、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄを選択するに当たって、マクロＩＤと入力ＩＤを比較するという動作を行わない。即ち、本例のテスト回路では、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの外部にデコーダ８０Ａ，８０Ｂ，８０Ｃ，８０Ｄを設け、このデコーダ８０Ａ，８０Ｂ，８０Ｃ，８０Ｄにより２ビットのマクロアドレス信号ＭＡ０，ＭＡ１をデコードし、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの選択を行っている。
【０１９１】
このような場合、デコーダ８０Ａ，８０Ｂ，８０Ｃ，８０Ｄ、特に、配線の部分（図１７（ｂ））は、デコーダ８０Ａ，８０Ｂ，８０Ｃ，８０Ｄごとに異なった構成となっている。よって、デコーダ８０Ａ，８０Ｂ，８０Ｃ，８０Ｄをメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの外部に配置すれば、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ内のテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄは、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄで同じ構成になり、メモリマクロの設計容易化に貢献できる。
【０１９２】
なお、デコーダ８０Ａ，８０Ｂ，８０Ｃ，８０Ｄのアンド回路（マクロ選択回路に相当）をメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ内に配置し、配線の部分（マクロＩＤ生成回路に相当）をメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの外部に配置してもよい。
【０１９３】
図１８は、図１のメモリ混載ロジックＬＳＩのメモリマクロのテスト回路の第６例を示している。
【０１９４】
本例のテスト回路は、全てのメモリマクロが同時に選択され、さらに、出力合成回路１８Ａに所定のロジック回路を用いることで、ｎＯ（例えば、８）ビットの通常の出力信号（読み出しデータ）に加えて、メモリマクロの良、不良を示すＰＡＳＳ／ＦＡＩＬビットを出力できる点に特徴を有する。
【０１９５】
いままで説明してきた例の全ては、複数のメモリマクロを、１つずつ、順次、選択していくものであったが、本例では、全てのメモリマクロを同時に選択し、全てのメモリマクロを同時にテストする。よって、本例のテスト回路によれば、テスト時間の大幅な短縮により、製造コストの低減に貢献できる。
【０１９６】
まず、本例におけるテスト回路の構成について説明する。
【０１９７】
半導体チップ１０内には、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄが配置されている。メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、それぞれデータの入出力が行われるインターフェイス部１４Ａ，１４Ｂ，１４Ｃ，１４Ｄとメモリマクロのテストを制御するテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄを備えている。
【０１９８】
テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄは、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄを同時に選択するための手段を備えている。例えば、テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄ内に、図１１に示すような構成を有するマクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄを配置し、図１１の全マクロ選択信号ＭＳＥＬＡＬＬｐを“１”にすれば、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄを同時に選択できる。
【０１９９】
この場合、当然に、マクロＩＤに応じて、１つのメモリマクロのみを選択することも可能である。
【０２００】
ロジック部１１には、例えば、ｎＩビットのデータを転送可能な入力信号線２１、ｎＯビットのデータを転送可能な第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ、ｎＯビットのデータを転送可能な第２の出力信号線２３及び出力合成回路１８Ａが形成される。
【０２０１】
入力信号線２１の一端は、パッド１６ＴＩに接続され、他端は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに共通に接続される。第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄの一端は、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに接続され、他端は、出力合成回路１８Ａに接続される。第２の出力信号線２３の一端は、出力合成回路１８Ａに接続され、他端は、パッド１６ＴＯに接続される。
【０２０２】
パッド１６ＴＩ，１６ＴＯは、通常、パッド部に設けるパッド数の制限により、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのテスト用として用いられると共に、ロジック部１１の回路に対するデータ又は制御信号の入出力用としても用いられる。
【０２０３】
なお、インターフェイス部１４Ａとしては、例えば、図７及び図８に示すような構成の回路を用いることができる。
【０２０４】
図１９は、図１８の出力合成回路１８Ａの一例を示している。
【０２０５】
ＤＴＤＯ・０−［Ａ］，…ＤＴＤＯ・７−［Ａ］は、メモリマクロ１２Ａから出力される出力信号、ＤＴＤＯ・０−［Ｂ］，…ＤＴＤＯ・７−［Ｂ］は、メモリマクロ１２Ｂから出力される出力信号、ＤＴＤＯ・０−［Ｃ］，…ＤＴＤＯ・７−［Ｃ］は、メモリマクロ１２Ｃから出力される出力信号、ＤＴＤＯ・０−［Ｄ］，…ＤＴＤＯ・７−［Ｄ］は、メモリマクロ１２Ｄから出力される出力信号である。
【０２０６】
各メモリマクロからの出力信号ＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、アンド（ＡＮＤ）回路５１−ｉに入力され、アンド回路５１−ｉは、出力信号ＤＴＤＯ・ｉを出力する（但し、ｉ＝０，…７）。
【０２０７】
また、各メモリマクロからの出力信号ＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、コンパレータ５２−ｉに入力され、コンパレータ５２−ｉの出力信号は、アンド回路５３に入力される。アンド回路５３は、メモリマクロの良、不良を示すＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８を出力する（但し、ｉ＝０，…７）。
【０２０８】
図２０は、図１９のコンパレータ５２−０，…５２−７の一例を示している。
【０２０９】
各メモリマクロからの出力信号ＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、ナンド（ＮＡＮＤ）回路５４及びオア（ＯＲ）回路５５に入力される（但し、ｉ＝０，…７）。ナンド（ＮＡＮＤ）回路５４の出力信号及びオア（ＯＲ）回路５５の出力信号は、ナンド回路５６に入力され、ナンド回路５６の出力信号は、図１８のアンド回路５３に入力される。
【０２１０】
このコンパレータは、各メモリマクロからの出力信号ＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が全て同じデータ“０”又は“１”のときに、出力信号ＯＵＴを“１”とし、各メモリマクロからの出力信号ＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が全て同じデータでないときに、出力信号ＯＵＴを“０”とする機能を有する。
【０２１１】
次に、図１８乃至図２０のメモリマクロのテスト手法について説明する。
【０２１２】
本例では、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄを同時に選択すると共に、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに同一のデータを書き込むことを前提とする。
【０２１３】
まず、全マクロ選択信号ＭＳＥＬＡＬＬｐが“１”になり、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ内のマクロ選択回路の出力信号ＭＥｎが“０”となる。よって、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄが選択された状態となり、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、この後、コマンドを取り込むことができるようになる。
【０２１４】
まず、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのメモリセルに対して同じデータの書き込みが行われ、この後、メモリセルからデータが読み出される。例えば、２５６個のＩ／Ｏを持つメモリマクロでは、同時に、２５６のデータが読み出されるが、本例では、この２５６のデータを、８ビット（ｎＯビット）ずつ、３２回にわけて読み出す。
【０２１５】
メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから読み出されたデータＤＴＤＯ・０−［Ａ］，…ＤＴＤＯ・７−［Ａ］，ＤＴＤＯ・０−［Ｂ］，…ＤＴＤＯ・７−［Ｂ］，ＤＴＤＯ・０−［Ｃ］，…ＤＴＤＯ・７−［Ｃ］，ＤＴＤＯ・０−［Ｄ］，…ＤＴＤＯ・７−［Ｄ］は、出力合成回路１８Ａに入力される。
【０２１６】
出力合成回路１８Ａでは、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから読み出されたデータの合成が行われる。
【０２１７】
メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄが正常な場合、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから読み出されたデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、全て同じ値を持つ。
【０２１８】
よって、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから読み出されたデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が全て“１”のときは、アンド回路５１−ｉの出力信号も“１”となり、また、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから読み出されたデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が全て“０”のときは、アンド回路５１−ｉの出力信号も“０”となる。
【０２１９】
つまり、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから読み出されたデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］がそのまま出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７として半導体チップ１０の外部のテスタ２４に読み出される。
【０２２０】
この時、コンパレータ５２−０，…５２−７の出力信号も全て“１”となり、アンド回路５３の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、“１”となる。
【０２２１】
一方、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのなかに１つでも異常なものが存在する場合、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから読み出されるデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、全て同じ値を持たなくなる場合が生じる。この場合、アンド回路５１−ｉの出力信号は、常に“０”になる。
【０２２２】
しかし、アンド回路５１−ｉのみでは、読み出されるデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が全て同じ値を持っているか、又はそうでないかを判断できない。
【０２２３】
そこで、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８により、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの読み出しデータが互いに一致しているか否かを判断している。
【０２２４】
即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８が“０”のときは、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから読み出されるデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が全て同じ値を持っていないことになる。この場合は、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのいずれかに不良が存在することになる。
【０２２５】
一方、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８が“１”のときは、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから読み出されるデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が全て同じ値を持っている。この場合、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの全てに不良が存在するか又はしないかのいずれかである。よって、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから読み出されるデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］を、例えば、テスタにおいて期待値と比較して、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに不良が存在するか又はしないかを判断する。
【０２２６】
以上の構成を有するメモリマクロのテスト回路によれば、まず、複数のメモリマクロを同時にテストするため、テスト時間を大幅に短縮できるという効果が得られる。また、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８により、各メモリマクロの読み出しデータが互いに一致しているか否かを判断することができる。即ち、各メモリマクロの読み出しデータの全てが一致していない場合には、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は“０”となり、各メモリマクロの読み出しデータが全て一致している場合には、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は“１”となる。
【０２２７】
ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８が“１”のときは、各メモリマクロから出力される出力信号が互いに一致していることになるが、これが期待値と一致しているか否かは不明である。そこで、テスタ２４において、出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７を期待値と比較して、メモリマクロに不良のメモリセルが存在するか否かを判断する。
【０２２８】
また、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８が“０”のときは、各メモリマクロから出力される出力信号が互いに一致していないことになり、４つのメモリマクロのいずれかに不良のメモリセルが存在することになる。しかし、出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７は、４つのメモリマクロ分圧縮されているため、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのうちのいずれに不良が存在するかを特定することはできない。このため、不良の存在するメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄを特定するには、別途、メモリマクロを個別にテストする必要がある。
【０２２９】
従って、本例のテスト回路は、テスト結果のほとんどが良（ＰＡＳＳ）であると期待されるようなメモリ混載ロジックＬＳＩのファイナルテストに適用するのが有効である。また、ファイナルテストでは、良品（出荷可）か、又は不良品（出荷不可）であるかを決めるだけで、ウェハ状態におけるテストのように、不良セルを置き換えたりすることがないため、このような点からしても、本例のテスト回路は、ファイナルテストに適用するのがよい。
【０２３０】
なお、本例では、各メモリマクロの読み出しデータの全てが一致していないときにＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８を“０”とし、各メモリマクロの読み出しデータの全てが一致しているときにＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８を“１”としている。しかし、出力合成回路１８Ａを変更し、各メモリマクロの読み出しデータの全てが一致していないときにＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８を“１”とし、各メモリマクロの読み出しデータの全てが一致しているときにＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８を“０”としてもよい。
【０２３１】
図２１は、図１のメモリ混載ロジックＬＳＩのメモリマクロのテスト回路の第７例を示している。
【０２３２】
本例のテスト回路は、選択されたメモリマクロ内において、例えば、同時に読み出された２５６ビットのデータを８ビットずつ３２回に分けて読み出すことができると共に、（８×ｊ）ビットのデータを８ビットに圧縮して数回に分けて、また、最大で、２５６ビットのデータを８ビットに圧縮して１度に読み出す点に特徴を有する。
【０２３３】
本例のテスト回路は、単独で用いることも可能であるが、例えば、全マクロを選択可能な図１８乃至図２０のテスト回路と組み合わせて用いることにより、全てのメモリマクロを非常に短時間でテストすることが可能になり、製造コストの低減に非常に有効である。
【０２３４】
まず、本例におけるテスト回路の構成について説明する。
【０２３５】
半導体チップ１０内には、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄが配置されている。メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、それぞれデータの入出力が行われるインターフェイス部１４Ａ，１４Ｂ，１４Ｃ，１４Ｄとメモリマクロのテストを制御するテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄを備えている。
【０２３６】
テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄは、マクロＩＤ生成回路及びマクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄを備えている。マクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄについては、例えば、図１１に示すような構成とし、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄを同時に選択するための手段を付加してもよい。
【０２３７】
ロジック部１１には、例えば、ｎＩビットのデータを転送可能な入力信号線２１、ｎＯビットのデータを転送可能な第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ、ｎＯビットのデータを転送可能な第２の出力信号線２３及び出力選択回路１８が形成される。
【０２３８】
入力信号線２１の一端は、パッド１６ＴＩに接続され、他端は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに共通に接続される。第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄの一端は、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに接続され、他端は、出力選択回路１８に接続される。第２の出力信号線２３の一端は、出力選択回路１８に接続され、他端は、パッド１６ＴＯに接続される。
【０２３９】
パッド１６ＴＩ，１６ＴＯは、通常、パッド部に設けるパッド数の制限により、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのテスト用として用いられると共に、ロジック部１１の回路に対するデータ又は制御信号の入出力用としても用いられる。
【０２４０】
図２２は、図２１のメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのインターフェイス部１４Ａの一例を示している。
【０２４１】
なお、本例では、図面を簡略化し、本例の特徴を明確にするため、入力レジスタ、入力信号線及びテスト信号線をそれぞれ省略している。これらの要素は、実際には、図７に示すような構成を有することになる。
【０２４２】
本例のインターフェイス部１４Ａの特徴は、｛ｋ（例えば、３１）＋１｝個のＩ／Ｏレジスタブロック２５−０，…２５−ｋのうち１つ以上又は全てのブロックから読み出される（８×ｊ）ビットのデータ（１≦ｊ≦ｋ＋１）を圧縮し得ると共に、読み出しデータに誤りが存在するか否かを示すＰＡＳＳ／ＦＡＩＬビットを生成するデータ圧縮回路６０を備えている点にある。
【０２４３】
メモリマクロ内には、ｋ＋１個のＩ／Ｏレジスタブロック２５−０，…２５−ｋが配置される。Ｉ／Ｏレジスタブロック２５−０，…２５−ｋの各々は、例えば、８個の出力レジスタ２６−０，…２６−７及び選択スイッチ２７を有している。出力レジスタ２６−ｉ（ｉ＝０，…７）のメモリマクロ側の端子は、データ線対ＤＱｋｉ，／ＤＱｋｉ（ｉ＝０，…７）に接続される。
【０２４４】
また、例えば、Ｉ／Ｏレジスタブロック２５−ｋにおいて、出力レジスタ２６−ｉ（ｉ＝０，…７）のロジック部側には、通常出力端子と反転出力端子が設けられている。通常出力端子は、出力信号線７０−ｉ（ｉ＝８ｋ，…８ｋ＋７）に接続される。また、通常出力端子と反転出力端子は、選択スイッチ２７を介して、データ圧縮回路６０に接続される。
【０２４５】
選択スイッチ２７は、レジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋにより、Ｉ／Ｏレジスタブロック単位で、任意にオン／オフ制御される。例えば、本例では、全てのＩ／Ｏレジスタブロック２５−０，…２５−ｋ内の選択スイッチ２７をオン状態にできる。
【０２４６】
例えば、Ｉ／Ｏレジスタブロック２５−０において、出力レジスタ２６−ｉから出力される読み出しデータＴＤＯｉ，／ＴＤＯｉは、ＮチャネルＭＯＳトランジスタＱ０ｉＡ，Ｑ０ｉＢのゲートに入力される（但し、ｉ＝０，…７）。また、Ｉ／Ｏレジスタブロック２５−ｋにおいて、出力レジスタ２６−ｉから出力される読み出しデータＴＤＯｉ，／ＴＤＯｉは、ＮチャネルＭＯＳトランジスタＱｋｉＡ，ＱｋｉＢのゲートに入力される（但し、ｉ＝０，…７）。
【０２４７】
各Ｉ／Ｏレジスタブロック２５−０，…２５−ｋ内の出力レジスタ２６−ｉの通常出力端子に接続されるＭＯＳトランジスタＱ０ｉＡ，…ＱｋｉＡのドレインは、ノードＮｉに共通に接続されている。また、各Ｉ／Ｏレジスタブロック２５−０，…２５−ｋ内の出力レジスタ２６−ｉの反転出力端子に接続されるＭＯＳトランジスタＱ０ｉＢ，…ＱｋｉＢのドレインは、ノード／Ｎｉに共通に接続されている。また、各ＭＯＳトランジスタのソースは、接地されている。
【０２４８】
プリチャージ用ＰチャネルＭＯＳトランジスタ６１−０，…６１−７は、ノードＮｉ，／Ｎｉを、例えば、電源電位（“１”の状態）ＶＤＤにプリチャージする。プリチャージ用ＰチャネルＭＯＳトランジスタ６１−０，…６１−７のゲートには、プリチャージ信号ＰＲＣＨが入力される。本例では、例えば、メモリマクロに使用されるクロックの後半でプリチャージを行い、前半で、読み出し動作を行う。
【０２４９】
データの圧縮を行わない場合、テスト制御ブロックでは、レジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋが生成され、レジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋは、ｋ個のＩ／Ｏレジスタブロック２５−０，…２５−ｋのうちの１つを選択する。選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオン状態となり、非選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオフ状態となる。
【０２５０】
よって、８ビットの相補データＴＤＯ・０，／ＴＤＯ・０，…ＴＤＯ・７，／ＴＤＯ・７が、選択されたＩ／Ｏレジスタブロックからデータ圧縮回路５７に導かれる。データ圧縮回路５７は、８ビットのデータＴＤＯ・０，…ＴＤＯ・７を出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７として出力する。
【０２５１】
また、例えば、Ｉ／Ｏレジスタブロック２５−ｋが選択されたとすると、Ｉ／Ｏレジスタブロック２５−ｋ内の出力レジスタ２６−ｉの通常出力端子に接続されるＭＯＳトランジスタＱｋｉＡ及び反転出力端子に接続されるＭＯＳトランジスタＱｋｉＢのうちのいずれか一方がオン状態、他方がオフ状態となる。
【０２５２】
よって、オア回路５７−０，…５７−７の出力信号は、全て“１”となり、アンド回路５９の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、データの一致を表す“１”になる。
【０２５３】
なお、（ｋ＋１）個のＩ／Ｏレジスタブロック２５−０，…２５−ｋを１つずつ順次選択することにより、（ｋ＋１）×８ビットの全てのデータがメモリマクロから半導体チップの外部に読み出される。
【０２５４】
データの圧縮を行う場合、レジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋの２つ以上又は全てが“１”となり、２つ以上又は全てのＩ／Ｏレジスタブロック２５−０，…２５−ｋが選択される。選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオン状態となり、非選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオフ状態となる。
【０２５５】
よって、８ビットの相補データＴＤＯ・０，／ＴＤＯ・０，…ＴＤＯ・７，／ＴＤＯ・７が、選択されたＩ／Ｏレジスタブロックからデータ圧縮回路５７に導かれ、データの圧縮が行われる。データ圧縮回路５７は、８ビットの出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７を出力すると共に、各Ｉ／Ｏレジスタブロックから読み出されるデータの一致及び不一致を表す１ビットのＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８を出力する。
【０２５６】
次に、図２１及び図２２のメモリマクロのテスト手法について説明する。
【０２５７】
まず、選択されたメモリマクロにおいて、選択された１つのＩ／Ｏレジスタブロックから８ビットのデータを読み出す場合を説明する。
【０２５８】
例えば、Ｉ／Ｏレジスタブロック２５−ｋが選択された場合、レジスタアドレス信号ＲｅｇＡｄｄ・ｋが“１”となり、他のレジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋ−１は“０”となる。Ｉ／Ｏレジスタブロック２５−ｋ内の出力レジスタ２６−０，…２６−７からは、相補データＴＤＯｉ，／ＴＤＯｉが出力される。
【０２５９】
よって、Ｉ／Ｏレジスタブロック２５−ｋ内の２つのＭＯＳトランジスタＱｋｉＡ，ＱｋｉＢのうちのいずれか一方がオン状態、他方がオフ状態となり、２つのノードＮｉ，／Ｎｉのうちの一方が“１”、他方が“０”となる。
【０２６０】
出力レジスタ２６−ｉの通常出力ＴＤＯｉが“１”のとき、ノードＮｉは、“０”になり、出力信号ＤＴＤＯ・ｉは、“１”となる。また、出力レジスタ２６−ｉの通常出力ＴＤＯｉが“０”のとき、ノードＮｉは、“１”になり、出力信号ＤＴＤＯ・ｉは、“０”となる。つまり、出力レジスタ２６−ｉの通常出力ＴＤＯｉと出力信号ＤＴＤＯ・ｉは、互いに等しくなる。
【０２６１】
また、ノードＮｉ，／Ｎｉの電位は、常に、相補の関係となるため、オア回路５７−０，…５７−７の出力信号は、全て“１”となり、アンド回路５９の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、“１”となる。
【０２６２】
次に、選択されたメモリマクロにおいて、ｊ個のＩ／Ｏレジスタブロックを選択し、これらｊ個のブロックから読み出された８×ｊビットのデータを８ビットに圧縮して読み出す場合を説明する。
【０２６３】
まず、選択されたｊ個のＩ／Ｏレジスタブロック内の選択スイッチ２７をオン状態にする。選択されたｊ個のＩ／Ｏレジスタブロック内の出力レジスタ２６−０，…２６−７のデータがＮチャネルＭＯＳトランジスタのゲートに入力される。ここで、少なくともＩ／Ｏレジスタブロック２５−０，２５−ｋが選択されている場合を考える。
【０２６４】
メモリセルに不良が存在しない場合、Ｉ／Ｏレジスタブロック２５−０，２５−ｋには同じデータが書き込まれるため、当然に、このＩ／Ｏレジスタブロック２５−０，２５−ｋから読み出されるデータは一致しているはずである。例えば、Ｉ／Ｏレジスタブロック２５−０，２５−ｋ内の入出力レジスタ２６−ｉの通常出力端子にデータ“１”が出力され、反転出力端子にデータ“０”が出力される場合、ＭＯＳトランジスタＱ０ｉＡ，ＱｋｉＡは共にオン状態、ＭＯＳトランジスタＱ０ｉＢ，ＱｋｉＢは共にオフ状態となる。また、Ｉ／Ｏレジスタブロック２５−０，２５−ｋ内の入出力レジスタ２６−ｉの通常出力端子にデータ“０”が出力され、反転出力端子にデータ“１”が出力される場合、ＭＯＳトランジスタＱ０ｉＡ，ＱｋｉＡは共にオフ状態、ＭＯＳトランジスタＱ０ｉＢ，ＱｋｉＢは共にオン状態となる。
【０２６５】
よって、メモリセルに不良が存在しない場合は、ノードＮｉ，／Ｎｉのうちのいずれか一方が“１”、他方が“０”となるため、入出力レジスタ２６−ｉの通常出力ＴＤＯ・ｉが出力信号ＤＴＤＯ・ｉとして出力される。また、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、各Ｉ／Ｏレジスタブロックでデータが一致していることを表す“１”となる。
【０２６６】
メモリセルに不良が存在する場合、Ｉ／Ｏレジスタブロック２５−０，２５−ｋには同じデータが書き込まれるが、このＩ／Ｏレジスタブロック２５−０，２５−ｋから読み出されるデータは互いに一致していない場合がある。例えば、Ｉ／Ｏレジスタブロック２５−０内の出力レジスタ２６−ｉの通常出力端子にデータ“１”が出力され、反転出力端子にデータ“０”が出力される一方、Ｉ／Ｏレジスタブロック２５−ｋ内の入出力レジスタ２６−ｉの通常出力端子にデータ“０”が出力され、反転出力端子にデータ“１”が出力される場合がある。この場合、Ｉ／Ｏレジスタブロック２５−０では、ＭＯＳトランジスタＱ０ｉＡはオン状態、ＭＯＳトランジスタＱ０ｉＢはオフ状態となり、Ｉ／Ｏレジスタブロック２５−ｋでは、ＭＯＳトランジスタＱｋｉＡはオフ状態、ＭＯＳトランジスタＱｋｉＢはオン状態となる。
【０２６７】
よって、メモリセルに不良が存在する場合は、Ｉ／Ｏレジスタブロック２５−０，２５−ｋから読み出されるデータが互いに一致していないことがあり、この時、ノードＮｉ，／Ｎｉの双方が“０”となる。このため、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、各Ｉ／Ｏレジスタブロックでデータが一致していないことを表す“０”となる。
【０２６８】
なお、読み出しの対象となる全てのメモリセルが不良の場合には、Ｉ／Ｏレジスタブロック２５−０，２５−ｋから読み出されるデータが互いに一致し、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８が“１”となることがある。よって、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８が“１”のときは、例えば、テスタにおいて、読み出しデータを期待値と比較して、メモリセルに不良が存在するか否かを判断する。
【０２６９】
このように、選択されたｊ個のＩ／Ｏレジスタブロック内の対応する読み出しデータが一致しているときは、ノードＮｉ，／Ｎｉの双方が“０”になることはないので、ノア回路５７−０，…５７−７の出力信号は、全て“１”となり、アンド回路５９の出力信号ＤＴＤＯ・８も“１”となる。
【０２７０】
また、選択されたｊ個のＩ／Ｏレジスタブロック内の対応する読み出しデータが不一致のときは、ノードＮｉ，／Ｎｉの双方が“０”になるため、ノア回路５７−０，…５７−７の出力信号は、“０”となり、アンド回路５９の出力信号ＤＴＤＯ・８も“０”となる。
【０２７１】
以上の構成を有するメモリマクロのテスト回路によれば、まず、ｎビットの通常出力を有するメモリマクロにおいて、ｓビット（１≦ｓ≦ｎ）のデータをｊ組（ｊは、２以上の自然数）読み出し、各組のデータを合成して出力すると共に、各組の間でｓビットのデータを比較し、各組のｓビットのデータが一致しているか否かを示すＰＡＳＳ／ＦＡＩＬビットを出力している。従って、１つのメモリマクロのテスト時間を大幅に短縮することができる。
【０２７２】
また、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８が“１”のときは、メモリマクロの各Ｉ／Ｏレジスタブロックから出力される出力信号が互いに一致していることになるが、これが期待値と一致しているか否かは不明である。そこで、テスタ２４において、出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７を期待値と比較して、メモリマクロに不良のメモリセルが存在するか否かを判断する。
【０２７３】
また、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８が“０”のときは、メモリマクロの各Ｉ／Ｏレジスタブロックから出力される出力信号が一致していないことになり、メモリマクロに不良が存在することになる。しかし、出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７は、ｊ個（例えば、全て）のＩ／Ｏレジスタブロック分圧縮されているため、選択されたｊ個のＩ／Ｏレジスタブロックのうちのいずれに不良が存在するかを特定することはできない。よって、不良の存在するＩ／Ｏレジスタブロックを特定するには、別途、１つずつ、Ｉ／Ｏレジスタブロックをテストする必要がある。
【０２７４】
また、本例のテスト回路によれば、全てのＩ／Ｏレジスタブロックを選択することにより、例えば、メモリマクロ内で同時に読み出された２５６ビットのデータを８ビットずつ３２回に分けて読み出す必要がなく、２５６ビットのデータを８ビットに圧縮して１度に読み出すことができる。
【０２７５】
即ち、Ｉ／Ｏレジスタブロックを、１つずつ、順次、選択していく必要がないため、テスト時間を大幅に短縮できる。
【０２７６】
本例のテスト回路は、単独で用いることも可能であるが、例えば、全マクロを選択可能な図１８乃至図２０のテスト回路と組み合わせて用いることにより、全てのメモリマクロを非常に短時間でテストすることが可能になり、製造コストの低減に非常に有効である。
【０２７７】
図２３は、図１のメモリ混載ロジックＬＳＩのメモリマクロのテスト回路の第８例を示している。
【０２７８】
本例のテスト回路は、図１８乃至図２０に示す全マクロから出力されるデータを集約する例と、図２１及び図２２に示す１マクロ内の全Ｉ／Ｏレジスタブロックのデータを集約する例を組み合わせた点に特徴を有する。本例のテスト回路は、非常に短時間で、全てのメモリマクロをテストすることができ、製造コストの低減に有効である。
【０２７９】
半導体チップ１０内には、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄが配置されている。メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、それぞれデータの入出力が行われるインターフェイス部１４Ａ，１４Ｂ，１４Ｃ，１４Ｄとメモリマクロのテストを制御するテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄを備えている。
【０２８０】
テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄは、メモリマクロを識別するためのマクロＩＤを生成するマクロＩＤ生成回路と、半導体チップ１０の外部からメモリマクロに入力されるマクロ選択信号（入力ＩＤ）とマクロＩＤを比較してメモリマクロを選択するためのマクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄを備えている。
【０２８１】
マクロＩＤ生成回路については、図６及び図１４（ａ）の例に示すように、メモリマクロ（テスト制御ブロック）内に設けてもよいし、また、図９、図１０、図１３及び図１４（ｂ）の例に示すように、メモリマクロの外部に設けてもよい。また、マクロ選択回路については、例えば、図１１に示すような構成のもの、即ち、メモリマクロを個別に選択できると共に、全マクロ選択信号により全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄを選択できるものを使用する。
【０２８２】
ロジック部１１には、例えば、ｎＩビットのデータを転送可能な入力信号線２１、ｎＯビットのデータを転送可能な第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ、ｎＯビットのデータを転送可能な第２の出力信号線２３、制御信号線４６及び出力合成回路１８Ｂが形成される。
【０２８３】
入力信号線２１の一端は、パッド１６ＴＩに接続され、他端は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに共通に接続される。第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄの一端は、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに接続され、他端は、出力合成回路１８Ｂに接続される。第２の出力信号線２３の一端は、出力合成回路１８Ｂに接続され、他端は、パッド１６ＴＯに接続される。
【０２８４】
また、制御信号線４６の一端は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに接続され、他端は、出力合成回路１８Ｂに接続される。出力合成回路１８Ｂは、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから出力される制御信号ＭＥｎ−［Ａ］，ＭＥｎ−［Ｂ］，ＭＥｎ−［Ｃ］，ＭＥｎ−［Ｄ］に基づいて、第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄを選択し、選択された出力信号線、即ち、選択されたメモリマクロのデータを合成する。
【０２８５】
パッド１６ＴＩ，１６ＴＯは、通常、パッド部に設けるパッド数の制限により、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのテスト用として用いられると共に、ロジック部１１の回路に対するデータ又は制御信号の入出力用としても用いられる。
【０２８６】
なお、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのインターフェイス部１４Ａとしては、例えば、図２２に示すような構成を有するもの、即ち、ｋ個のＩ／Ｏレジスタブロックを、個別に又は複数個（特に全部）まとめて選択し、選択されたＩ／Ｏレジスタブロックのデータを合成できるものを用いる。
【０２８７】
また、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのマクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄから出力される信号ＭＥｎ−［Ａ］，ＭＥｎ−［Ｂ］，ＭＥｎ−［Ｃ］，ＭＥｎ−［Ｄ］は、出力合成回路１８Ｂの制御信号として用いられる。
【０２８８】
図２４は、図２３の出力合成回路１８Ｂの一例を示している。
【０２８９】
ＤＴＤＯ・０−［Ａ］，…ＤＴＤＯ・７−［Ａ］は、メモリマクロ１２Ａから出力される読み出しデータ、ＤＴＤＯ・０−［Ｂ］，…ＤＴＤＯ・７−［Ｂ］は、メモリマクロ１２Ｂから出力される読み出しデータ、ＤＴＤＯ・０−［Ｃ］，…ＤＴＤＯ・７−［Ｃ］は、メモリマクロ１２Ｃから出力される読み出しデータ、ＤＴＤＯ・０−［Ｄ］，…ＤＴＤＯ・７−［Ｄ］は、メモリマクロ１２Ｄから出力される読み出しデータである。
【０２９０】
各メモリマクロからの読み出しデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、アンド（ＡＮＤ）回路６２−ｉに入力され、アンド回路６２−ｉは、合成された読み出しデータＤＴＤＯ・ｉを出力する（但し、ｉ＝０，…７）。
【０２９１】
また、各メモリマクロからの読み出しデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、コンパレータ６３−ｉにも入力される。コンパレータ６３−ｉの出力信号は、アンド回路６５に入力される。コンパレータ６３−ｉは、読み出しデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］の一致又は不一致を示す信号を出力する。
【０２９２】
ＤＴＤＯ・８−［Ａ］，ＤＴＤＯ・８−［Ｂ］，ＤＴＤＯ・８−［Ｃ］，ＤＴＤＯ・８−［Ｄ］は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ内のインターフェイス部（図２１）から出力されるＰＡＳＳ／ＦＡＩＬビットに相当するものである。よって、アンド回路６５の出力は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２ＤのＰＡＳＳ／ＦＡＩＬビットが“１”（一致）のときのみ、“１”になることができる。
【０２９３】
つまり、本例では、選択されたメモリマクロ内の選択されたＩ／Ｏレジスタブロックの読み出しデータが互いに一致しており、かつ、選択されたメモリマクロの読み出しデータも互いに一致している場合に限り、アンド回路６５の出力信号（ＰＡＳＳ／ＦＡＩＬビット）ＤＴＤＯ・８が“１”となる。
【０２９４】
ＭＥｎ−［Ａ］，ＭＥｎ−［Ｂ］，ＭＥｎ−［Ｃ］，ＭＥｎ−［Ｄ］は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのマクロ選択回路（図７）の出力信号であり、メモリマクロが選択されているときに“０”、メモリマクロが選択されていないときに“１”となる。
【０２９５】
図２５は、図２４のコンパレータ６３−０，…６３−７の一例を示している。
【０２９６】
各メモリマクロからの出力信号ＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、それぞれオア（ＯＲ）回路６６−０，…６６−３に入力されると共に、アンド（ＡＮＤ）回路６７−０，…６７−３に入力される（但し、ｉ＝０，…７）。オア（ＯＲ）回路６６−０，…６６−３の出力信号は、ナンド（ＮＡＮＤ）回路６８に入力され、ナンド回路６８の出力信号は、ナンド回路７０に入力される。アンド回路６７−０，…６７−３の出力信号は、オア回路６９に入力され、オア回路６９の出力信号は、ナンド回路７０に入力される。ナンド回路７０の出力信号は、図２４のアンド回路６５に入力される。
【０２９７】
このコンパレータは、選択されたメモリマクロからの出力信号ＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が全て同じデータ“０”又は“１”のときに、出力信号ＯＵＴを“１”とし、選択されたメモリマクロからの出力信号ＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が全て同じデータでないときに、出力信号ＯＵＴを“０”とする機能を有する。
【０２９８】
メモリマクロの選択及び非選択は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのマクロ選択回路（図１１）から出力される制御信号ＭＥｎ−［Ａ］，ＭＥｎ−［Ｂ］，ＭＥｎ−［Ｃ］，ＭＥｎ−［Ｄ］により判断する。
【０２９９】
例えば、メモリマクロ１２Ａ，１２Ｂ，１２Ｄが選択され、メモリマクロ１２Ｃが選択されていないとき、ＭＥｎ−［Ａ］が“０”、ＭＥｎ−［Ｂ］が“０”、ＭＥｎ−［Ｃ］が“１”、ＭＥｎ−［Ｄ］が“０”となる。この時、メモリマクロ１２Ｃからの読み出しデータにかかわらず、オア回路６６−２の出力信号は、常に“１”となり、アンド回路６７−２の出力信号は、常に“０”となる。
【０３００】
マクロ間の読み出しデータが一致し、その読み出しデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｄ］が“１”のとき、オア回路６６−０，６６−１，６６−３の出力信号は、“１”となり、アンド回路６７−０，６７−１，６７−３の出力信号も、“１”となる。よって、ナンド回路６８の出力信号は、“０”、オア回路６９の出力信号は、“１”であり、ナンド回路７０の出力信号は、“１”となる。
【０３０１】
マクロ間の読み出しデータが一致し、その読み出しデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｄ］が“０”のとき、オア回路６６−０，６６−１，６６−３の出力信号は、“０”となり、アンド回路６７−０，６７−１，６７−３の出力信号も、“０”となる。よって、ナンド回路６８の出力信号は、“１”、オア回路６９の出力信号は、“０”であり、ナンド回路７０の出力信号は、“１”となる。
【０３０２】
マクロ間の読み出しデータが一致しておらず、その読み出しデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］が“０”、読み出しデータＤＴＤＯ・ｉ−［Ｄ］が“１”のとき、オア回路６６−０，６６−１の出力信号は、“０”、オア回路６６−３の出力信号は、“１”となり、アンド回路６７−０，６７−１の出力信号は、“０”、アンド回路６７−３の出力信号は、“１”となる。よって、ナンド回路６８の出力信号は、“１”、オア回路６９の出力信号も、“１”であり、ナンド回路７０の出力信号は、“０”となる。
【０３０３】
次に、図２３乃至図２５のメモリマクロのテスト手法について説明する。
【０３０４】
まず、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄを選択し、かつ、各メモリマクロ内の全てのＩ／Ｏレジスタブロック（図２１の２５−０，…２５−ｋ）を選択する場合について説明する。
【０３０５】
例えば、メモリマクロ１２Ｄ内のＩ／Ｏレジスタブロックのデータが一致していない場合、メモリマクロ１２Ｄから出力されるＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８−［Ｄ］は、“０”となる。よって、図２３のアンド回路６５の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、データの不一致を示す“０”となる。なお、他のメモリマクロ１２Ａ，１２Ｂ，１２Ｃ内のＩ／Ｏレジスタブロックのデータが一致していない場合も、同様である。
【０３０６】
また、例えば、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに関し、全てのＩ／Ｏレジスタブロックのデータが一致している場合、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから出力されるＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８−［Ａ］，ＤＴＤＯ・８−［Ｂ］，ＤＴＤＯ・８−［Ｃ］，ＤＴＤＯ・８−［Ｄ］は、全て“１”となる。
【０３０７】
ここで、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄが選択されているため、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから出力される制御信号ＭＥｎ−［Ａ］，ＭＥｎ−［Ｂ］，ＭＥｎ−［Ｃ］，ＭＥｎ−［Ｄ］は、全て“０”となる。
【０３０８】
マクロ間の読み出しデータが一致しているとき、図２４のコンパレータ６３−０，…６３−７の出力信号は、全て“１”となる。よって、図２４のアンド回路６５の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、データの一致を示す“１”となる。
【０３０９】
マクロ間の読み出しデータが一致していないとき、図２４のコンパレータ６３−０，…６３−７の出力信号は、全て“１”とはならない。よって、図２４のアンド回路６５の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、データの不一致を示す“０”となる。
【０３１０】
本例では、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８が“０”のとき、どのメモリマクロのどのＩ／Ｏレジスタブロックから読み出されたデータが誤りであるのかを判断することができない。よって、不良セルを特定するためには、再び、メモリマクロごと、かつ、Ｉ／Ｏレジスタブロックごとにテストを行う必要がある。つまり、本発明は、ほとんどが良品と判断され、かつ、不良セルを特定する必要がないようなファイナルテストに非常に有効である。
【０３１１】
各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから出力された読み出しデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、アンド（論理積）回路６２−０，…６２−７により合成され、全てのメモリマクロの集約された８ビットの読み出しデータＤＴＤＯ・０，…ＤＴＤＯ・７として、半導体チップ１０の外部に読み出される。
【０３１２】
半導体チップ１０の外部に読み出されたデータは、さらに、テスタ２４において期待値と比較され、その比較結果に基づいて、メモリセルの良、不良が判断される。
【０３１３】
図２６は、図２４の出力合成回路の変形例である。図２７は、図２６のコンパレータ７２−０，…７２−７の一例を示している。
【０３１４】
本例の出力合成回路は、４つのメモリマクロの選択に関し、１つ又は全ての２通りしか選択できない。このような回路構成によると、図２４及び図２５の回路に比べ、簡略な回路で構成できるため、面積も少なく、配線ミスもなしに、回路設計でき、非常に有効である。
【０３１５】
ＤＴＤＯ・０−［Ａ］，…ＤＴＤＯ・７−［Ａ］は、メモリマクロ１２Ａから出力される読み出しデータ、ＤＴＤＯ・０−［Ｂ］，…ＤＴＤＯ・７−［Ｂ］は、メモリマクロ１２Ｂから出力される読み出しデータ、ＤＴＤＯ・０−［Ｃ］，…ＤＴＤＯ・７−［Ｃ］は、メモリマクロ１２Ｃから出力される読み出しデータ、ＤＴＤＯ・０−［Ｄ］，…ＤＴＤＯ・７−［Ｄ］は、メモリマクロ１２Ｄから出力される読み出しデータである。
【０３１６】
各メモリマクロからの読み出しデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、アンド（ＡＮＤ）回路７１−ｉに入力され、アンド回路７１−ｉは、合成された読み出しデータＤＴＤＯ・ｉを出力する（但し、ｉ＝０，…７）。
【０３１７】
また、各メモリマクロからの読み出しデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、コンパレータ７２−ｉにも入力される。コンパレータ７２−ｉの出力信号は、アンド回路７３に入力される。コンパレータ７２−ｉは、読み出しデータＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が一致しているとき“１”を出力し、不一致のときに“０”を出力する。
【０３１８】
ＤＴＤＯ・８−［Ａ］，ＤＴＤＯ・８−［Ｂ］，ＤＴＤＯ・８−［Ｃ］，ＤＴＤＯ・８−［Ｄ］は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ内のインターフェイス部（図２２）から出力されるＰＡＳＳ／ＦＡＩＬビットに相当するものである。よって、アンド回路７１−８の出力は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２ＤのＰＡＳＳ／ＦＡＩＬビットが“１”（一致）のときのみ、“１”になることができる。
【０３１９】
つまり、本例では、選択されたメモリマクロ内の選択されたＩ／Ｏレジスタブロックの読み出しデータが互いに一致しており、かつ、選択されたメモリマクロの読み出しデータも互いに一致している場合に限り、アンド回路７３の出力信号が“１”になる。
【０３２１】
マルチプレクサ７５は、スイッチ入力Ｓが“１”のときは、Ｓ（Ｈ）端子を出力端子に接続し、スイッチ入力Ｓが“０”のときは、Ｓ（Ｌ）端子を出力端子に接続する。よって、全てのメモリマクロが選択されているとき、即ち、スイッチ入力Ｓが“１”のときは、アンド回路７３の出力信号がＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８として出力され、１つのメモリマクロが選択されているとき、即ち、スイッチ入力Ｓが“０”のときは、アンド回路７１−８の出力信号がＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８として出力される。
【０３２２】
図２７は、図２６のコンパレータ７２−０，…７２−７の一例を示している。
【０３２３】
各メモリマクロからの出力信号ＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］は、ナンド（ＮＡＮＤ）回路７６及びオア（ＯＲ）回路７７に入力される（但し、ｉ＝０，…７）。ナンド（ＮＡＮＤ）回路７６の出力信号及びオア（ＯＲ）回路７７の出力信号は、ナンド回路７８に入力され、ナンド回路７８の出力信号は、図２６のアンド回路７３に入力される。
【０３２４】
このコンパレータは、各メモリマクロからの出力信号ＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が全て同じデータ“０”又は“１”のときに、出力信号ＯＵＴを“１”とし、各メモリマクロからの出力信号ＤＴＤＯ・ｉ−［Ａ］，ＤＴＤＯ・ｉ−［Ｂ］，ＤＴＤＯ・ｉ−［Ｃ］，ＤＴＤＯ・ｉ−［Ｄ］が全て同じデータでないときに、出力信号ＯＵＴを“０”とする機能を有する。
【０３２５】
図２８は、図１のメモリ混載ロジックＬＳＩのメモリマクロのテスト回路の第９例を示している。
【０３２６】
本例のテスト回路は、図３のテスト回路と比較すると、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ、１２ＤからＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８−［Ａ］，ＤＴＤＯ・８−［Ｂ］，ＤＴＤＯ・８−［Ｃ］，ＤＴＤＯ・８−［Ｄ］が出力され、これらがアンド（論理積）回路で合成され、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８となっている点にある。
【０３２７】
まず、本例におけるテスト回路の構成について説明する。
【０３２８】
半導体チップ１０内には、４つのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄが配置されている。メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄは、それぞれデータの入出力が行われるインターフェイス部１４Ａ，１４Ｂ，１４Ｃ，１４Ｄとメモリマクロのテストを制御するテスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄを備えている。
【０３２９】
テスト制御ブロック１５Ａ，１５Ｂ，１５Ｃ，１５Ｄは、メモリマクロを識別するためのマクロＩＤを生成するマクロＩＤ生成回路と、半導体チップ１０の外部からメモリマクロに入力されるマクロ選択信号（入力ＩＤ）とマクロＩＤを比較してメモリマクロを選択するためのマクロ選択回路１７Ａ，１７Ｂ，１７Ｃ，１７Ｄを備えている。
【０３３０】
マクロＩＤ生成回路については、メモリマクロ（テスト制御ブロック）内に設けてもよいし、また、メモリマクロの外部に設けてもよい。
【０３３１】
メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄには、互いに異なるマクロＩＤが割り当てられている。例えば、本例では、半導体チップ１０内に４つのメモリマクロが配置されるため、マクロＩＤは、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに対して、それぞれ“００”，“０１”，“１０”，“１１”が割り当てられる。
【０３３２】
ロジック部１１には、例えば、ｎＩビットのデータを転送可能な入力信号線２１、ｎＯ＋１ビットのデータを転送可能な第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ、ｎＯ＋１ビットのデータを転送可能な第２の出力信号線２３及びアンド（ＡＮＤ）回路４７が形成される。
【０３３３】
入力信号線２１の一端は、パッド１６ＴＩに接続され、他端は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに共通に接続される。第１の出力信号線２２Ａ，２２Ｂ，２２Ｃ，２２Ｄの一端は、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに接続され、他端は、アンド回路４７に接続される。第２の出力信号線２３の一端は、アンド回路４７の出力端に接続され、他端は、パッド１６ＴＯに接続される。
【０３３４】
パッド１６ＴＩ，１６ＴＯは、通常、パッド部に設けるパッド数の制限により、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのテスト用として用いられると共に、ロジック部１１の回路に対するデータ又は制御信号の入出力用としても用いられる。
【０３３５】
本例では、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ、１２Ｄから出力されるｎＯ＋１ビットのデータのうちのｎＯビットは、読み出しデータＤＴＤＯ・０［Ａ］，…ＤＴＤＯ・７［Ａ］，ＤＴＤＯ・０［Ｂ］，…ＤＴＤＯ・７［Ｂ］，ＤＴＤＯ・０［Ｃ］，…ＤＴＤＯ・７［Ｃ］，ＤＴＤＯ・０［Ｄ］，…ＤＴＤＯ・７［Ｄ］である。
【０３３６】
また、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ、１２Ｄから出力されるｎＯ＋１ビットのデータのうちの１ビットは、本例で新たに加えられたものであり、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８−［Ａ］，ＤＴＤＯ・８−［Ｂ］，ＤＴＤＯ・８−［Ｃ］，ＤＴＤＯ・８−［Ｄ］である。
【０３３７】
ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８−［Ａ］，ＤＴＤＯ・８−［Ｂ］，ＤＴＤＯ・８−［Ｃ］，ＤＴＤＯ・８−［Ｄ］は、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ、１２Ｄ内で、読み出しデータと期待値を比較した結果に基づくものとなっている。
【０３３８】
図２９は、図２８のインターフェイス部を示している。
【０３３９】
本例のインターフェイス部は、選択されたメモリマクロ内において、１つ以上の選択されたＩ／Ｏレジスタブロックの読み出しデータと期待値とを比較し、その結果を出力できるような回路を付加した点に特徴がある。
【０３４０】
なお、本例においては、図面を簡略化し、本例の特徴を明確にするため、入力レジスタ、入力信号線及びテスト信号線は、それぞれ省略してある。これらは、例えば、図７に示すような構成となる。
【０３４１】
メモリマクロ内には、ｋ＋１個のＩ／Ｏレジスタブロック２５−０，…２５−ｋが配置される。Ｉ／Ｏレジスタブロック２５−０，…２５−ｋの各々は、例えば、８個の出力レジスタ２６−０，…２６−７及び選択スイッチ２７を有している。出力レジスタ２６−ｉ（ｉ＝０，…７）のメモリマクロ側の端子は、データ線対ＤＱｋｉ，／ＤＱｋｉ（ｉ＝０，…７）に接続される。
【０３４２】
また、例えば、Ｉ／Ｏレジスタブロック２５−ｋにおいて、出力レジスタ２６−ｉ（ｉ＝０，…７）のロジック部側には、通常出力端子と反転出力端子が設けられている。通常出力端子は、出力信号線７０−ｉ（ｉ＝８ｋ，…８ｋ＋７）に接続される。また、通常出力端子と反転出力端子は、選択スイッチ２７を介して、データ圧縮回路６０に接続される。
【０３４３】
選択スイッチ２７は、レジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋにより、Ｉ／Ｏレジスタブロック単位で、任意にオン／オフ制御される。例えば、本例では、全てのＩ／Ｏレジスタブロック２５−０，…２５−ｋ内の選択スイッチ２７をオン状態にできる。
【０３４４】
例えば、Ｉ／Ｏレジスタブロック２５−０において、出力レジスタ２６−ｉから出力される読み出しデータＴＤＯｉ，／ＴＤＯｉは、ＮチャネルＭＯＳトランジスタＱ０ｉＡ，Ｑ０ｉＢのゲートに入力される（但し、ｉ＝０，…７）。また、Ｉ／Ｏレジスタブロック２５−ｋにおいて、出力レジスタ２６−ｉから出力される読み出しデータＴＤＯｉ，／ＴＤＯｉは、ＮチャネルＭＯＳトランジスタＱｋｉＡ，ＱｋｉＢのゲートに入力される（但し、ｉ＝０，…７）。
【０３４５】
各Ｉ／Ｏレジスタブロック２５−０，…２５−ｋ内の出力レジスタ２６−ｉの通常出力端子に接続されるＭＯＳトランジスタＱ０ｉＡ，…ＱｋｉＡのドレインは、ノードＮｉに共通に接続されている。また、各Ｉ／Ｏレジスタブロック２５−０，…２５−ｋ内の出力レジスタ２６−ｉの反転出力端子に接続されるＭＯＳトランジスタＱ０ｉＢ，…ＱｋｉＢのドレインは、ノード／Ｎｉに共通に接続されている。また、各ＭＯＳトランジスタのソースは、接地されている。
【０３４６】
プリチャージ用ＰチャネルＭＯＳトランジスタ６１−０，…６１−７は、ノードＮｉ，／Ｎｉを、例えば、電源電位（“１”の状態）ＶＤＤにプリチャージする。プリチャージ用ＰチャネルＭＯＳトランジスタ６１−０，…６１−７のゲートには、プリチャージ信号ＰＲＣＨが入力される。本例では、例えば、メモリマクロに使用されるクロックの後半でプリチャージを行い、前半で、読み出し動作を行う。
【０３４７】
データの圧縮を行わない場合、テスト制御ブロックでは、レジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋが生成され、レジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋは、ｋ個のＩ／Ｏレジスタブロック２５−０，…２５−ｋのうちの１つを選択する。選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオン状態となり、非選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオフ状態となる。
【０３４８】
よって、８ビットの相補データＴＤＯ・０，／ＴＤＯ・０，…ＴＤＯ・７，／ＴＤＯ・７が、選択されたＩ／Ｏレジスタブロックからデータ圧縮回路６０に導かれる。データ圧縮回路６０は、８ビットのデータＴＤＯ・０，…ＴＤＯ・７を出力信号ＤＴＤＯ・０，…ＤＴＤＯ・７として出力する。
【０３４９】
また、例えば、Ｉ／Ｏレジスタブロック２５−ｋが選択されたとすると、Ｉ／Ｏレジスタブロック２５−ｋ内の入出力レジスタ２６−ｉの通常出力端子に接続されるＭＯＳトランジスタＱｋｉＡ及び反転出力端子に接続されるＭＯＳトランジスタＱｋｉＢのうちのいずれか一方がオン状態、他方がオフ状態となる。よって、ノードＮｉ，／Ｎｉのうちのいずれか一方が“０”の状態、他方が“１”の状態になる。
【０３５０】
ここで、本例では、選択されたＩ／Ｏレジスタブロックから読み出されたデータと期待値とを比較する回路を設けている。即ち、ノードＮｉ，／Ｎｉには、それぞれＮチャネルＭＯＳトランジスタ７９−０，…７９−７が接続される。このＭＯＳトランジスタ７９−０，…７９−７のソースは、接地点に接続される。期待値の相補データＴＱＥＸＰｃ−０，…ＴＱＥＸＰｃ−７，ＴＱＥＸＰｔ−０，…ＴＱＥＸＰｔ−７は、それぞれスイッチ８０を経由して、ＭＯＳトランジスタ７９−０，…７９−７のゲートに入力される。
【０３５１】
選択されたＩ／Ｏレジスタブロックから読み出されたデータと期待値が等しい場合には、ノードＮｉ，／Ｎｉの状態は変わらず、ノードＮｉ，／Ｎｉのうちのいずれか一方が“０”の状態、他方が“１”の状態を維持する。よって、オア回路５７−０，…５７−７の出力信号は、全て“１”となり、アンド回路５９の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、一致（ＰＡＳＳ）を表す“１”になる。
【０３５２】
一方、選択されたＩ／Ｏレジスタブロックから読み出されたデータと期待値が異なる場合には、ノードＮｉ，／Ｎｉの双方が“０”の状態となる。よって、オア回路５７−０，…５７−７の出力信号は、全て“１”とならず、アンド回路５９の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、不一致（ＦＡＩＬ）を表す“０”になる。
【０３５３】
なお、（ｋ＋１）個のＩ／Ｏレジスタブロック２５−０，…２５−ｋを１つずつ順次選択することにより、（ｋ＋１）×８ビットの全てのデータがメモリマクロから半導体チップの外部に読み出される。
【０３５４】
データの圧縮を行う場合、レジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋの２つ以上又は全てが“１”となり、２つ以上又は全てのＩ／Ｏレジスタブロック２５−０，…２５−ｋが選択される。選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオン状態となり、非選択状態のＩ／Ｏレジスタブロックでは、選択スイッチ２７がオフ状態となる。
【０３５５】
よって、選択されたＩ／Ｏレジスタブロックでは、８ビットの相補データＴＤＯ・０，／ＴＤＯ・０，…ＴＤＯ・７，／ＴＤＯ・７がそれぞれデータ圧縮回路６０に導かれる。
【０３５６】
選択されたＩ／Ｏレジスタブロックのそれぞれの読み出しデータが等しい場合には、ノードＮｉ，／Ｎｉのうちのいずれか一方が“０”の状態、他方が“１”の状態になる。
【０３５７】
また、選択されたＩ／Ｏレジスタブロックのそれぞれの読み出しデータと期待値が等しい場合には、ノードＮｉ，／Ｎｉの状態は変わらず、ノードＮｉ，／Ｎｉのうちのいずれか一方が“０”の状態、他方が“１”の状態を維持する。よって、オア回路５７−０，…５７−７の出力信号は、全て“１”となり、アンド回路５９の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、一致（ＰＡＳＳ）を表す“１”になる。
【０３５８】
一方、選択されたＩ／Ｏレジスタブロックのそれぞれの読み出しデータが異なる場合、又は、それぞれの読み出しデータが等しいが、この読み出しデータと期待値が異なる場合には、ノードＮｉ，／Ｎｉの双方が“０”の状態となる。よって、オア回路５７−０，…５７−７の出力信号は、全て“１”とならず、アンド回路５９の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、不一致（ＦＡＩＬ）を表す“０”になる。
【０３５９】
次に、図２９のインターフェイス部を用いたメモリマクロのテスト手法について説明する。
【０３６０】
まず、選択されたメモリマクロにおいて、選択された１つのＩ／Ｏレジスタブロックから８ビットのデータを読み出す場合を説明する。
【０３６１】
例えば、Ｉ／Ｏレジスタブロック２５−ｋが選択された場合、レジスタアドレス信号ＲｅｇＡｄｄ・ｋが“１”となり、他のレジスタアドレス信号ＲｅｇＡｄｄ・０，…ＲｅｇＡｄｄ・ｋ−１は“０”となる。Ｉ／Ｏレジスタブロック２５−ｋ内の出力レジスタ２６−０，…２６−７からは、相補データＴＤＯｉ，／ＴＤＯｉが出力される。
【０３６２】
よって、Ｉ／Ｏレジスタブロック２５−ｋ内の２つのＭＯＳトランジスタＱｋｉＡ，ＱｋｉＢのうちのいずれか一方がオン状態、他方がオフ状態となり、２つのノードＮｉ，／Ｎｉのうちの一方が“１”、他方が“０”となる。
【０３６３】
出力レジスタ２６−ｉの通常出力ＴＤＯｉが“１”のとき、ノードＮｉは、“０”になり、出力信号ＤＴＤＯ・ｉは、“１”となる。また、出力レジスタ２６−ｉの通常出力ＴＤＯｉが“０”のとき、ノードＮｉは、“１”になり、出力信号ＤＴＤＯ・ｉは、“０”となる。つまり、出力レジスタ２６−ｉの通常出力ＴＤＯｉと出力信号ＤＴＤＯ・ｉは、互いに等しくなる。
【０３６４】
また、スイッチ８０がオン状態となり、期待値の相補データＴＱＥＸＰｔ−ｉ，ＴＱＥＸＰｃ−ｉがＭＯＳトランジスタ７９−ｉに入力される。ＴＱＥＸＰｔ−ｉ＝“１”、ＴＱＥＸＰｃ−ｉ＝“０”のとき、ノードＮｉが“０”、ノード／Ｎｉが“１”であると、読み出しデータと期待値は、等しいと判断され、オア回路５７−０，…５７−７の出力信号は、全て“１”となり、アンド回路５９の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、“１”となる。
【０３６５】
一方、ＴＱＥＸＰｔ−ｉ＝“１”、ＴＱＥＸＰｃ−ｉ＝“０”のとき、ノードＮｉが“１”、ノード／Ｎｉが“０”であると、読み出しデータと期待値は、互いに異なると判断され、オア回路５７−０，…５７−７の出力信号は、全て“１”とならず、アンド回路５９の出力信号、即ち、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、“０”となる。
【０３６６】
次に、選択されたメモリマクロにおいて、ｊ個のＩ／Ｏレジスタブロックを選択し、これらｊ個のブロックから読み出された８×ｊビットのデータを８ビットに圧縮して読み出す場合を説明する。
【０３６７】
まず、選択されたｊ個のＩ／Ｏレジスタブロック内の選択スイッチ２７をオン状態にする。選択されたｊ個のＩ／Ｏレジスタブロック内の出力レジスタ２６−０，…２６−７のデータがＮチャネルＭＯＳトランジスタのゲートに入力される。ここで、少なくともＩ／Ｏレジスタブロック２５−０，２５−ｋが選択されている場合を考える。
【０３６８】
メモリセルに不良が存在しない場合、Ｉ／Ｏレジスタブロック２５−０，２５−ｋには同じデータが書き込まれるため、当然に、このＩ／Ｏレジスタブロック２５−０，２５−ｋから読み出されるデータは一致しているはずである。例えば、Ｉ／Ｏレジスタブロック２５−０，２５−ｋ内の出力レジスタ２６−ｉの通常出力端子にデータ“１”が出力され、反転出力端子にデータ“０”が出力される場合、ＭＯＳトランジスタＱ０ｉＡ，ＱｋｉＡは共にオン状態、ＭＯＳトランジスタＱ０ｉＢ，ＱｋｉＢは共にオフ状態となる。また、Ｉ／Ｏレジスタブロック２５−０，２５−ｋ内の出力レジスタ２６−ｉの通常出力端子にデータ“０”が出力され、反転出力端子にデータ“１”が出力される場合、ＭＯＳトランジスタＱ０ｉＡ，ＱｋｉＡは共にオフ状態、ＭＯＳトランジスタＱ０ｉＢ，ＱｋｉＢは共にオン状態となる。
【０３６９】
よって、メモリセルに不良が存在しない場合は、ノードＮｉ，／Ｎｉのうちのいずれか一方が“１”、他方が“０”となる。
【０３７０】
次に、Ｉ／Ｏレジスタブロック２５−０，２５−ｋの読み出しデータと期待値の比較が行われる。期待値の相補データＴＱＥＸＰｔ−ｉ，ＴＱＥＸＰｃは、スイッチ８０を介してＭＯＳトランジスタ７９−ｉに入力される。読み出しデータと期待値が等しい場合、ノードＮｉ，／Ｎｉの状態は変化せず、ノードＮｉ，／Ｎｉのうちのいずれか一方が“１”、他方が“０”となる。よって、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、“１”（ＰＡＳＳ）となる。
【０３７１】
一方、読み出しデータと期待値が異なる場合、ノードＮｉ，／Ｎｉは、共に、“０”となる。よって、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、“０”（ＦＡＩＬ）となる。
【０３７２】
メモリセルに不良が存在する場合、Ｉ／Ｏレジスタブロック２５−０，２５−ｋには同じデータが書き込まれるが、このＩ／Ｏレジスタブロック２５−０，２５−ｋから読み出されるデータは互いに一致していない場合がある。例えば、Ｉ／Ｏレジスタブロック２５−０内の出力レジスタ２６−ｉの通常出力端子にデータ“１”が出力され、反転出力端子にデータ“０”が出力される一方、Ｉ／Ｏレジスタブロック２５−ｋ内の出力レジスタ２６−ｉの通常出力端子にデータ“０”が出力され、反転出力端子にデータ“１”が出力される場合がある。この場合、Ｉ／Ｏレジスタブロック２５−０では、ＭＯＳトランジスタＱ０ｉＡはオン状態、ＭＯＳトランジスタＱ０ｉＢはオフ状態となり、Ｉ／Ｏレジスタブロック２５−ｋでは、ＭＯＳトランジスタＱｋｉＡはオフ状態、ＭＯＳトランジスタＱｋｉＢはオン状態となる。
【０３７３】
よって、メモリセルに不良が存在する場合は、Ｉ／Ｏレジスタブロック２５−０，２５−ｋから読み出されるデータが互いに一致していないことがあり、この時、ノードＮｉ，／Ｎｉの双方が“０”となる。このため、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、“０”（ＦＡＩＬ）となる。
【０３７４】
なお、読み出しの対象となる全てのメモリセルが不良の場合には、Ｉ／Ｏレジスタブロック２５−０，２５−ｋから読み出されるデータが互いに一致することがある。このような場合でも、読み出しデータは、期待値と一致しないため、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、“０”となる。
【０３７５】
ところで、本例では、図２８のメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄの全てを同時に選択することができる。
【０３７６】
この場合、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ、１２Ｄから出力されるＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８−［Ａ］，ＤＴＤＯ・８−［Ｂ］，ＤＴＤＯ・８−［Ｃ］，ＤＴＤＯ・８−［Ｄ］をアンド回路に入力し、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８を得る。
【０３７７】
ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８は、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのテスト結果を合成したものとなっている。もちろん、テスト結果は、読み出しデータと期待値を比較した結果である。
【０３７８】
ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８が“１”のときは、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄに不良のメモリセルが存在しないことになり、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８が“０”のときは、メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのいずれかに不良のメモリセルが存在することになる。しかし、どのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２ＤのどのＩ／Ｏレジスタブロックに不良が存在するかはわからない。
【０３７９】
また、本例では、図２８のメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄのいずれか１つをマクロＩＤに基づいて選択することもできる。
【０３８０】
この場合、図４及び図５の例に示すように、非選択のメモリマクロから出力される読み出しデータＤＴＤＯ・０［Ａ］，…ＤＴＤＯ・７［Ａ］，ＤＴＤＯ・０［Ｂ］，…ＤＴＤＯ・７［Ｂ］，ＤＴＤＯ・０［Ｃ］，…ＤＴＤＯ・７［Ｃ］，ＤＴＤＯ・０［Ｄ］，…ＤＴＤＯ・７［Ｄ］及びＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８［Ａ］，ＤＴＤＯ・８［Ｂ］，ＤＴＤＯ・８［Ｃ］，ＤＴＤＯ・８［Ｄ］を“１”に固定する出力制御回路を設ければよい。
【０３８１】
以上の構成を有するメモリマクロのテスト回路によれば、選択されたメモリマクロ内で、読み出しデータと期待値の比較を行っている。
【０３８２】
よって、例えば、図２８のテスト回路において、全てのメモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄを選択し、各メモリマクロ１２Ａ，１２Ｂ，１２Ｃ，１２Ｄから出力されるＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８−［Ａ］，ＤＴＤＯ・８−［Ｂ］，ＤＴＤＯ・８−［Ｃ］，ＤＴＤＯ・８−［Ｄ］を、アンド（論理積）回路で合成し、ＰＡＳＳ／ＦＡＩＬビットＤＴＤＯ・８として出力できる。つまり、図２４のような制御信号ＭＥｎ−［Ａ］，ＭＥｎ−［Ｂ］，ＭＥｎ−［Ｃ］，ＭＥｎ−［Ｄ］が不要であり、配線数が削減され、配線ミスもなくなり、設計負担が大幅に軽減される。
【０３８３】
【発明の効果】
以上、説明したように、本発明のメモリ混載ロジックＬＳＩによれば、次のような効果を奏する。
【０３８４】
１）  複数のメモリマクロをワンチップに搭載したメモリ混載ロジックＬＳＩにおいて、メモリマクロをダイレクトテストするときにメモリマクロの識別に使用するマクロＩＤを生成するマクロＩＤ生成回路を、メモリマクロの外部に配置している（例えば、図９、図１０の例に相当）。
【０３８５】
通常、マクロＩＤ生成回路は、メモリマクロごとに異なる構成（レイアウト）を有しているため、このマクロＩＤ生成回路をメモリマクロの外に形成することで、全てのメモリマクロにおいてテスト制御ブロックの構成を同一にすることができる。よって、メモリマクロの設計に使用する回路ブロックの種類を減らすことができ、設計負担の軽減、設計時間の短縮を図ることができる。
【０３８６】
２）  マクロＩＤを複数の固定電位に組み合わせにより生成することで、簡単な構成により、マクロＩＤを生成することができるようになる（例えば、図１３の例に相当）。また、マクロＩＤ生成回路に、入力信号を加算して出力信号とする加算器の機能を持たせることにより、全てのメモリマクロのマクロＩＤ生成回路の構成（レイアウト）を同一にすることができる（例えば、図１４の例に相当）。よって、マクロＩＤ生成回路をテスト制御ブロック内に配置しても、メモリマクロの設計に使用する回路ブロックの種類を増やすことはなく、設計負担の軽減、設計時間の短縮を図ることができる。
【０３８７】
３）  複数のメモリマクロをワンチップに搭載したメモリ混載ロジックＬＳＩにおいて、非選択状態のメモリマクロの出力信号を“０”又は“１”に固定するマクロ出力制御回路を設け、かつ、ロジック部において、全てのメモリマクロの出力信号の論理和又は論理積をとることにより、選択状態のメモリマクロの出力信号のみを半導体チップ外に出力している（例えば、図３の例に相当）。
【０３８８】
この場合、ロジック的に、選択状態のメモリマクロの出力信号を選択できるため、マクロ選択信号により制御されるマルチプレクサを用いる場合に必要な制御信号線が不要となる。よって、メモリマクロ間の配線数を削減でき、また、配線ミスも減り、設計負担が軽減され、設計時間も短くなる。
【０３８９】
４）  複数のメモリマクロをワンチップに搭載したメモリ混載ロジックＬＳＩにおいて、２つ以上又は全てのメモリマクロを同時に選択し、テストする場合に、選択されたメモリマクロに同一のデータを書き込み、それを読み出すことにし、また、ロジック部に、選択されたメモリマクロの出力信号を合成し、かつ、選択されたメモリマクロの出力信号が互いに一致しているか否かを示すビットを生成する出力合成回路を設けている（例えば、図１８の例に相当）。
【０３９０】
このように、簡単な構成のテスト回路により、全てのメモリマクロを同時にテストできるため、テスト時間の大幅な短縮と製造コストの低減に貢献できる。
【０３９１】
５）  ｎビットの通常出力を有するメモリマクロにおいて、ｓビット（１≦ｓ≦ｎ）単位でデータを読み出し、メモリマクロのダイレクトテストを行う場合に、このｓビットのデータをｊ組（ｊは、２以上の自然数）だけ読み出し、各組の間でｓビットのデータを比較し、各組のｓビットのデータが一致しているか又は不一致であるかを示すビットを生成し、これをメモリマクロ外に出力している（例えば、図２１、図２２の例に相当）。
【０３９２】
この場合、例えば、メモリマクロ内のｎビットのデータを１度でテストすることも可能であり、テスト時間を大幅に削減できる。
【０３９３】
６）  ４）と５）を同時に達成できる出力合成回路をメモリマクロ外に配置することで、各メモリマクロ内でのデータの比較と、複数のメモリマクロ間でのデータの比較を一度に行い、テスト時間を大幅に短縮できる（例えば、図２３の例に相当）。
【０３９４】
７）  各メモリマクロ内で、読み出されたデータと期待値を比較し、その比較結果を出力する回路を設けることで、各メモリマクロ間の比較結果を合成する回路を論理積などの簡単な回路で構成でき、配線数が削減され、配線ミスもなくなり、設計負担が大幅に軽減される（例えば、図２８の例に相当）。
【図面の簡単な説明】
【図１】メモリ混載ロジックＬＳＩのフロアプランの一例を示す図。
【図２】メモリマクロのテスト回路の第１例を示す図。
【図３】メモリマクロのテスト回路の第２例を示す図。
【図４】図３のメモリマクロのインターフェイス部の一例を示す図。
【図５】図４の出力制御回路の一例を示す図。
【図６】メモリマクロのテスト回路の第３例を示す図。
【図７】図６のメモリマクロのインターフェイス部の一例を示す図。
【図８】図７の入出力レジスタの一例を示す図。
【図９】メモリマクロのテスト回路の第４例を示す図。
【図１０】メモリマクロのテスト回路の第５例を示す図。
【図１１】マクロ選択回路の一例を示す図。
【図１２】マクロ選択回路の他の例を示す図。
【図１３】マクロＩＤ生成回路の一例を示す図。
【図１４】マクロＩＤ生成回路の他の例を示す図。
【図１５】テスト制御ブロック内のマクロＩＤ生成回路を示す図。
【図１６】図１５のマクロＩＤ生成回路の一例を示す図。
【図１７】図９のテスト回路の変形例を示す図。
【図１８】メモリマクロのテスト回路の第６例を示す図。
【図１９】図１８の出力合成回路の一例を示す図。
【図２０】図１９のコンパレータの一例を示す図。
【図２１】メモリマクロのテスト回路の第７例を示す図。
【図２２】図２１のインターフェイス部の一例を示す図。
【図２３】メモリマクロのテスト回路の第８例を示す図。
【図２４】図２３の出力合成回路の一例を示す図。
【図２５】図２４のコンパレータの一例を示す図。
【図２６】図２３の出力合成回路の他の例を示す図。
【図２７】図２６のコンパレータの一例を示す図。
【図２８】メモリマクロのテスト回路の第９例を示す図。
【図２９】図２８のインターフェイス部の変形例を示す図。
【符号の説明】
１０                            ：半導体チップ、
１１                            ：ロジック部、
１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ  ：メモリマクロ、
１３                            ：パッド部、
１４Ａ，１４Ｂ，１４Ｃ，１４Ｄ  ：インターフェイス部、
１５Ａ，１５Ｂ，１５Ｃ，１５Ｄ  ：テスト制御ブロック、
１６，１６ＴＩ，１６ＴＯ        ：パッド、
１７Ａ，１７Ｂ，１７Ｃ，１７Ｄ，３６  ：マクロ選択回路、
１８                            ：出力選択回路、
１８Ａ，１８Ｂ                  ：出力合成回路、
１９，７５                      ：マルチプレクサ、
２０Ａ〜２０Ｄ，３０Ａ〜３０Ｄ，３７  ：マクロＩＤ生成回路、
２１                            ：入力信号線、
２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ  ：第１の出力信号線、
２３                            ：第２の出力信号線、
２５−０〜２５−ｋ              ：Ｉ／Ｏレジスタブロック、
２６−０〜２６−７              ：入出力レジスタ、
２７，８０                      ：スイッチ、
２８                            ：出力バッファ、
２９                            ：入力バッファ、
３０［０］，３０［１］，４０［０］，４０［１］  ：エクスクルーシブノア回路、
３１，３３ａ，３３ｂ，４１，５０，５１−０〜５１−７，５３，５９，６０−０〜６０−７，６４，６５，７１−０〜７１−８，７３  ：アンド回路、
３２，３９，４９，５８−０〜５８−７  ：インバータ回路、
３４ａ，３４ｂ，５５            ：ノア回路、
４３，５４，５６，６８，７０，７６，７８  ：ＮＡＮＤ回路、
３５，４５                      ：ＮＡＮＤ  ＲＳラッチ回路、
３８                            ：エクスクルーシブオア回路、
４７，５７−０〜５７−７，６６−０〜６６−３，７４，７７  ：オア回路、
４８                            ：マクロ出力制御回路、
５２−０〜５２−７，６３−０〜６３−７，７２−０〜７２−７  ：コンパレータ。
【図１】
0004601737.tif 000002
【図２】
0004601737.tif 000003
【図３】
0004601737.tif 000004
【図４】
0004601737.tif 000005
【図５】
0004601737.tif 000006
【図６】
0004601737.tif 000007
【図７】
0004601737.tif 000008
【図８】
0004601737.tif 000009
【図９】
0004601737.tif 000010
【図１０】
0004601737.tif 000011
【図１１】
0004601737.tif 000012
【図１２】
0004601737.tif 000013
【図１３】
0004601737.tif 000014
【図１４】
0004601737.tif 000015
【図１５】
0004601737.tif 000016
【図１６】
0004601737.tif 000017
【図１７】
0004601737.tif 000018
【図１８】
0004601737.tif 000019
【図１９】
0004601737.tif 000020
【図２０】
0004601737.tif 000021
【図２１】
0004601737.tif 000022
【図２２】
0004601737.tif 000023
【図２３】
0004601737.tif 000024
【図２４】
0004601737.tif 000025
【図２５】
0004601737.tif 000026
【図２６】
0004601737.tif 000027
【図２７】
0004601737.tif 000028
【図２８】
0004601737.tif 000029
【図２９】
0004601737.tif 000030