(57)【要約】【課題】連想メモリにおいて、不良と判断された行、列を他の冗長行、冗長列に代替させる。【解決手段】出力部Ｚ−ＳＣＡＮは、第０列乃至第４列の連想メモリセル群の良／否に応じて活性／非活性をそれぞれ示す第０乃至第４の良否データである信号Ｇ０〜Ｇ４を記憶している。そして、第０列乃至第４列の連想メモリセル群が記憶する比較データと、検査データとが一致するか否かをそれぞれ示す第０乃至第４の一致判定信号候補である信号ＱＺ０〜ＱＺ４を出力する。そして一致判定信号候補ＱＺ０〜ＱＺ４のうち、故障の生じていないもののみが、第０乃至第３の一致判定信号ＺＺ０〜ＺＺ３として得られる。【選択図】図１５２
2006054052.tif 000002
【特許請求の範囲】
【請求項１】
それぞれｍ行に配された連想メモリセルを含んだ少なくとも一つの列を有する第１連想メモリセル群と、
ｍ行に配された連想メモリセルを含んだ少なくとも一つの列を有する第２連想メモリセル群と、
外部から与えられた検査データと前記第１連想メモリセル群及び前記第２連想メモリ群が記憶する記憶データとが一致するか否かを、前記列ごとに示す一致判定信号候補を出力する出力部と、
前記第１連想メモリ群の前記列と同数の一致判定信号を、前記一致判定信号候補から選択して出力する選択回路と
を備える冗長機能付き連想メモリ回路。
【請求項２】
前記選択回路は、前記第１連想メモリセル群及び前記第２連想メモリセル群において隣接する前記列に対応した一対ごとに、一つの前記一致判定信号候補を一つの前記一致判定信号として出力する、請求項１記載の冗長機能付き連想メモリ回路。
【請求項３】
前記出力部は、前記第１連想メモリセル群及び前記第２連想メモリセル群の良否を前記列ごとに示す良否データを記憶し、
前記選択回路は、前記一致判定信号候補から前記一致判定信号を、前記良否データに基づいて選択する、請求項１記載の冗長機能付き連想メモリ回路。
【請求項４】
前記第１連想メモリセル群の前記列のそれぞれに対応して設けられた第１ワード線と、
前記第２連想メモリセル群の前記列のそれぞれに対応して設けられた第２ワード線と、
前記一致判定信号として選択された前記一致判定信号候補に対応した列に対応する前記第１のワード線及び前記第２のワード線から、外部からのアドレス信号に基づいて一つを選択するワード線選択部と
を更に備える、請求項１記載の冗長機能付き連想メモリ回路。
【請求項５】
前記出力部は、前記第１連想メモリセル群及び前記第２連想メモリセル群の良否を前記列ごとに示す良否データを記憶し、
前記ワード線選択回路は、前記第１のワード線及び前記第２のワード線から、前記アドレス信号及び前記良否データに基づいて選択する、請求項４記載の冗長機能付き連想メモリ回路。
【請求項６】
それぞれｎ列に配された連想メモリセルを含んだ少なくとも一つの行を有する第１連想メモリセル群と、
ｎ列に配された連想メモリセルを含んだ少なくとも一つの行を有する第２連想メモリセル群と、
外部から与えられた複数の入力信号候補を、前記第１連想メモリセル群及び前記第２連想メモリ群の前記行ごとの良否を示す良否データに基づいて、前記行ごとに割り当てるデータ変換部と、
外部から与えられた検査データと前記第１連想メモリセル群及び前記第２連想メモリ群の保持するデータとの比較を、前記良否データに基づいて選択される行についてのみ行うサーチドライバと
を備える、冗長機能付き連想メモリ回路。
【請求項７】
前記良否データを保持する保持部
を更に備える、請求項６記載の冗長機能付き連想メモリ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は連想メモリ（ＣＡＭ:Content Addressable Memory）に関し、特にその故障を検出する技術に関する。
【背景技術】
【０００２】
図１６３は従来のＣＡＭ２００の構成を概念的に示す回路図であり、図１６４はＣＡＭ２００の備える連想メモリセルＣｉｊを示す回路図である。
【０００３】
ＣＡＭ２００の連想メモリセルＣｉｊは、ＲＡＭのメモリセルＭｉｊにイクスクルーシブ・オア回路ＸＯＲｉｊを付加したものである。
【０００４】
イクスクルーシブ・オア回路ＸＯＲｉｊはメモリセルＭｉｊの保持するデータとサーチ線ＳＬｊのデータとを比較し、両者が一致している場合には“０”を、不一致の場合は“１”をその結果Ｕｉｊとして出力する。
【０００５】
連想メモリセルＣｉｊは複数個用いられて２次元アレイを構成している。ここではワード線ＷＬｉに沿った方向を「列」、これに直交する方向を「行」とする。図１６３においては連想メモリセルＣｉｊは３行４列に配列されている場合が例示されている（ｉ＝０，１，２，３；ｊ＝０，１，２）。
【０００６】
ワード線ＷＬｉはワード線ドライバＷＬＤによりドライブされる。ワード線ドライバはデコーダＤＣＤＲの出力Ｘｉにより、いずれか一つが選択的に活性状態になる。なお、ワード線ドライバＷＬＤは省略されることもある。
【０００７】
ライトイネーブル信号ＷＥがイネーブル状態の時、ビット線ＢＬｊは書き込みドライバＷＤにより、入力信号ＤＩｊに従ってドライブされる。また、ビット線ＢＬｊの状態はセンスアンプＳＡにより検出され、それぞれデータ出力ＤＯｊに出力される。
【０００８】
各列毎に一致出力Ｕｉｊの論理和の反転が採られ、列一致信号Ｚｉが出力される。この論理和の反転の生成は、図１６３においてはゲート回路ＮＯＲ０，ＮＯＲ１，ＮＯＲ２，ＮＯＲ３を用いて表現されている。
【０００９】
第ｉ列の連想メモリセルＣｉ０，Ｃｉ１，Ｃｉ２の保持するデータが、それぞれサーチデータＳＬ０，ＳＬ１，ＳＬ２と一致した場合には列一致信号Ｚｉが１になる。第ｉ列において一つでも不一致があれば、列一致信号Ｚｉは“０”になる。
【００１０】
ヒット信号ＨＩＴは全ての列一致信号Ｚｉの論理和をオア回路ＯＲＨに入力して作成する。従って、サーチデータの組（ＳＬ０，ＳＬ１，ＳＬ２）と一致するデータの組を記憶する、連想メモリセルＣｉｊ列が１つ以上あればヒット信号ＨＩＴは“１”になる。
【００１１】
【特許文献１】特開平２−１４７８７２号公報
【特許文献２】特開平５−１２８９００号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
このようなＣＡＭの良否をテストする際には、ＣＡＭの連想メモリセルＣｉｊに予め所定の内容を記憶させ、入力信号ＤＩ０，ＤＩ１，ＤＩ２として検査データを与え、所定の内容と検査データとの比較を行う必要があり、しかもこの検査データと所定の内容とを種々のパターンで変化させる必要がある。このような、テストの為のパターン（テストパターン）が膨大となった場合、ＣＡＭの連想メモリセルＣｉｊに記憶させ、また検査データを入力することを逐一行うのは非常に大きな手間と時間がかかる。
【００１３】
この発明は上記の課題を解決するために為されたものであり、検査データのテストパターンを、更には連想メモリセルに記憶させるべきパターンをも自動的に生成し、ＣＡＭの良否を容易にテストすることができる技術を提供することを目的としている。
【００１４】
更に、不良と判断された行、列を他の冗長行、冗長列に代替させる技術を提供することをも目的としている。
【課題を解決するための手段】
【００１５】
この発明にかかる冗長機能付き連想メモリ装置の第１の態様は、それぞれｍ行に配された連想メモリセルを含んだ少なくとも一つの列を有する第１連想メモリセル群と、ｍ行に配された連想メモリセルを含んだ少なくとも一つの列を有する第２連想メモリセル群と、外部から与えられた検査データと前記第１連想メモリセル群及び前記第２連想メモリ群が記憶する記憶データとが一致するか否かを、前記列ごとに示す一致判定信号候補を出力する出力部と、前記第１連想メモリ群の前記列と同数の一致判定信号を、前記一致判定信号候補から選択して出力する選択回路とを備える。
【００１６】
この発明にかかる冗長機能付き連想メモリ装置の第２の態様は、それぞれｎ列に配された連想メモリセルを含んだ少なくとも一つの行を有する第１連想メモリセル群と、ｎ列に配された連想メモリセルを含んだ少なくとも一つの行を有する第２連想メモリセル群と、外部から与えられた複数の入力信号候補を、前記第１連想メモリセル群及び前記第２連想メモリ群の前記行ごとの良否を示す良否データに基づいて、前記行ごとに割り当てるデータ変換部と、外部から与えられた検査データと前記第１連想メモリセル群及び前記第２連想メモリ群の保持するデータとの比較を、前記良否データに基づいて選択される行についてのみ行うサーチドライバとを備える。
【発明の効果】
【００１７】
この発明の第１の態様にかかる冗長機能付き連想メモリ回路によれば、第２連想メモリセル群の有する列と同数の冗長列が得られる。
【００１８】
この発明の第２の態様にかかる冗長機能付き連想メモリ回路によれば、第２連想メモリセル群の有する行と同数の冗長行が得られる。
【発明を実施するための最良の形態】
【００１９】
Ａ．本発明の前駆的思想．
本発明の具体的な説明に入る前にその前駆的思想を説明する。
【００２０】
図１はＣＡＭのテスト回路を示す回路図である。通常のＬＳＩ設計でも用いられているように、ＣＡＭに対しても単純なスキャンパス方式のテスト回路を付加することができる。
【００２１】
アドレス用のスキャンパスを構成するスキャンフリップフロップＳＦＦ−Ａ０，ＳＦＦ−Ａ１は、それぞれ外部からのアドレス信号ＤＡ０，ＤＡ１を、或いはスキャン信号ＳＩＡを、ＣＡＭのアドレス信号Ａ０，Ａ１として出力する。データ入力用のスキャンパスを構成するスキャンフリップフロップＳＦＦ−ＤＩ０，ＳＦＦ−ＤＩ１，ＳＦＦ−ＤＩ２は、それぞれ外部からの入力信号ＤＤＩ０，ＤＤＩ１，ＤＤＩ２を、或いはスキャン入力信号ＳＩＤＩを、ＣＡＭへの入力信号ＤＩ０，ＤＩ１，ＤＩ２として出力する。列一致信号用のスキャンパスを構成するスキャンフリップフロップＳＦＦ−Ｚ０，ＳＦＦ−Ｚ１，ＳＦＦ−Ｚ２，ＳＦＦ−Ｚ３は、それぞれＣＡＭの列一致信号Ｚ０，Ｚ１，Ｚ２，Ｚ３を、或いはスキャン信号ＳＩＺを入力し、スキャン信号ＳＯＺを出力する。これらのスキャンフリップフロップの全てにはシフトモード信号ＳＭが与えられており、その値が“０”を採る場合にはスキャンフリップフロップは通常のフリップフロップとして機能し、“１”を採る場合にはスキャンパスを構成してスキャン信号を伝達する。
【００２２】
本図ではアドレス用のスキャンパスの出力するスキャン信号ＳＯＡは、データ入力用のスキャンパスの入力するスキャン入力信号ＳＩＤＩとなり、データ入力用のスキャンパスの出力するスキャン信号ＳＯＤＩは列一致信号用のスキャンパスの入力するスキャン入力信号ＳＩＺとなっている。つまり、アドレス用のスキャンパス、データ入力用のスキャンパス、列一致信号用のスキャンパスは直列に接続されているが、必ずしもこのような接続に限定されない。
【００２３】
図２は上記のいずれのスキャンパスにも用いることができるスキャンフリップフロップの構成を示す回路図である。シフトモード信号ＳＭが“１”のときはスキャン入力端子ＳＩからの入力を、シフトモード信号ＳＭが“０”のときはＤ端子からの入力を、それぞれ出力するセレクタと、このセレクタの出力が与えられるフリップフロップとから構成されている。このフリップフロップは端子Ｔに与えられるクロック信号によって動作する。
【００２４】
スキャンパス方式のテスト回路では、シフトモード信号ＳＭを“１”にしてシフト動作を行い、被テスト回路であるＣＡＭの入力としてテストパターンを与える。具体的には、スキャン信号ＳＩＡをスキャンフリップフロップＳＦＦ−Ａ０，ＳＦＦ−Ａ１へ順次伝達し、伝達された内容をアドレス信号Ａ０，Ａ１として与える。その一方、スキャン入力信号ＳＩＤＩをスキャンフリップフロップＳＦＦ−ＤＩ０，ＳＦＦ−ＤＩ１，ＳＦＦ−ＤＩ２へ順次伝達し、伝達された内容を入力信号ＤＩ０，ＤＩ１，ＤＩ２として与える。
【００２５】
既にＣＡＭの連想メモリセルＣｉｊには所定の内容が記憶されており、これと比較されるべき検査データである入力信号ＤＩ０，ＤＩ１，ＤＩ２との一致／不一致が判断される。
【００２６】
シフトモード信号を“０”にして通常動作モードになり、この検査データに対する応答出力である列一致信号ＺｉをスキャンフリップフロップＳＦＦ−Ｚ０，ＳＦＦ−Ｚ１，ＳＦＦ−Ｚ２，ＳＦＦ−Ｚ３に取り込む。その後、再度シフトモードでシフト動作を行い、列一致信号Ｚｉが読み出される。
【００２７】
このようにＣＡＭのテストにおいてスキャンパス方式を適用することで、検査データをスキャンパスからＣＡＭへと取り込むことができる。しかし、この前駆的思想では、スキャン入力信号ＳＩＤＩとしての膨大な検査データのパターン（テストパターン）を逐一作成しなければならない。
【００２８】
Ｂ．本発明の基本的な考え方（実施の形態１）．
図３は本発明の基本的な考え方を示す回路図である。ＣＡＭ１００の検査データのテストパターンを自動的に作成する技術を示すため、入力信号ＤＩ０，ＤＩ１，ＤＩ２を与える構成の近傍のみが示されている。
【００２９】
図４及び図５はそれぞれ図１６３及び図１６４に対応しており、ＣＡＭ１００及び連想メモリセルＣｉｊの構成を示す回路図である。ＣＡＭ１００はＣＡＭ２００と同等の機能のものをより具体的に示したものである。ただし、ヒット信号ＨＩＴを作成するオア回路ＯＲＨは省略している。
【００３０】
図５ではＲＡＭのメモリセルＭｉｊとして一般的なスタティックＲＡＭで用いられている回路を示している。即ちメモリセルＭｉｊは互いに逆並列に接続されたインバータＩＮＶＡ，ＩＮＶＢと、非反転ビット線ＢＬｊとインバータＩＮＶＡの入力端とを接続するＮＭＯＳトランジスタＮ１と、反転ビット線ＢＬｊＢとインバータＩＮＶＢの入力端とを接続するＮＭＯＳトランジスタＮ２とから構成されている。ＲＡＭのメモリセルの動作については説明を省略する。
【００３１】
ＣＡＭの連想メモリセルＣｉｊは、ＲＡＭのメモリセルＭｉｊにＮＭＯＳトランジスタＮ３，Ｎ４，Ｎ５，Ｎ６を付加することにより構成されている。トランジスタＮ３，Ｎ４はインバータＩＮＶＡの入力端と接地との間で直列に接続され、トランジスタＮ５，Ｎ６はインバータＩＮＶＢの入力端と接地との間で直列に接続されている。トランジスタＮ３，Ｎ５のゲートはそれぞれインバータＩＮＶＡの入力端及びインバータＩＮＶＢの入力端に接続され、トランジスタＮ６，Ｎ４のゲートはそれぞれ非反転サーチ線ＳＬｊと反転サーチ線ＳＬｊＢに接続されている。
【００３２】
メモリセルＭｉｊの保持データはインバータＩＮＶＡの入力端とインバータＩＮＶＢの出力端との接続点において保持される値である。また、検査データは非反転サーチ線ＳＬｊに載るサーチデータの組からなる。例えば、非反転サーチ線ＳＬ０，ＳＬ１，ＳＬ２に載るサーチデータがそれぞれ“０”，“１”，“１”であれば、検査データは“０１１”となる。
【００３３】
列一致信号Ｚｉが伝達される伝達線（以降では、簡単のため、この伝達線もＺｉとして示すことがある）は、それぞれ抵抗Ｒｉにより“Ｈ”レベル（電位ＶＤＤ、ここでは“１”に相当する）にプルアップされている。
【００３４】
第ｉ列の連想メモリセルＣｉ０，Ｃｉ１，Ｃｉ２内のトランジスタＮ３，Ｎ４，Ｎ５，Ｎ６及び抵抗Ｒｉにより、図１６４における各列のイクスクルーシブ・オア回路ＸＯＲｉ０，ＸＯＲｉ１，ＸＯＲｉ２および図１６３におけるゲート回路ＮＯＲｉに相当する機能が実現されている。
【００３５】
入力信号ＤＩｉに基づいて、その反転した信号ＤＩｉＢが生成される。これらの信号の対（ＤＩｉ，ＤＩｉＢ）はいずれも書き込みドライバＷＤ及びサーチドライバＳＤに与えられる。
【００３６】
図６はサーチドライバＳＤの構成を示す回路図である。サーチドライバＳＤは、サーチイネーブル信号ＳＥが“１”の場合には、非反転サーチ線ＳＬｊ及び反転サーチ線ＳＬｊＢにそれぞれ信号ＤＩｉ，ＤＩｉＢを与える。これによって検査データと第ｉ列の連想メモリセルＣｉ０，Ｃｉ１，Ｃｉ２（Ｍｉ０，Ｍｉ１，Ｍｉ２）の保持するデータとの比較、即ちサーチ動作が行われる。一方、サーチイネーブル信号ＳＥが“０”の時には、サーチドライバＳＤは非反転サーチ線ＳＬｊと反転サーチ線ＳＬｊＢのいずれにも論理“０”を与える。これによってトランジスタＮ４，Ｎ６がＯＦＦとなり、サーチ動作は行われない。
【００３７】
今、ある一つの連想メモリセルＣｉｊの保持データが例えば“０”であれば、トランジスタＮ３，Ｎ５はそれぞれＯＦＦ、ＯＮしている。この時、第ｊ行のサーチデータ、即ち非反転サーチ線ＳＬｊに載る信号が“０”の場合には、トランジスタＮ４，Ｎ６はそれぞれＯＮ、ＯＦＦする。よってこの連想メモリセルＣｉｊにおいては、伝達線Ｚｉを接地することがない。
【００３８】
同様にして、保持データが“１”、サーチデータが“１”の場合にも、トランジスタＮ３，Ｎ４，Ｎ５，Ｎ６はそれぞれＯＮ、ＯＦＦ、ＯＦＦ、ＯＮし、この連想メモリセルＣｉｊにおいては、伝達線Ｚｉを接地することがない。
【００３９】
従って、ある列において記憶されるデータが検査データと一致する場合には、列一致信号Ｚｉは抵抗Ｒｉによってプルアップされる以外に電位を決定する要因がないので、その値は“１”（“Ｈ”レベル；電位ＶＤＤ）となる。
【００４０】
一方、連想メモリセルＣｉｊの保持データが“０”であり、サーチデータが“１”の場合には、トランジスタＮ３，Ｎ４，Ｎ５，Ｎ６はそれぞれＯＦＦ、ＯＦＦ、ＯＮ、ＯＮし、この連想メモリセルＣｉｊにおいて伝達線Ｚｉを接地する。同様にして、連想メモリセルＣｉｊの保持データが“１”であり、サーチデータが“０”の場合にも伝達線Ｚｉが接地される。
【００４１】
従って、ある列において記憶されるデータと検査データとが、その一部でも一致しない場合には、列一致信号Ｚｉは“０”となる。
【００４２】
なお、抵抗Ｒｉの代わりにプリチャージ用のトランジスタを用いることもできるし、非反転ビット線ＢＬｉ及び反転ビット線ＢＬｉＢにはビット線負荷やプリチャージ用トランジスタが接続される事もある。
【００４３】
図３に戻って説明を続ける。特に断らない限り、セレクタにおいて“０”と記載された入力端（以降「０−入力端」と称す）に与えられる信号はセレクタの制御端に与えられる値が“０”の場合に出力され、“１”と記載された入力端（以降「１−入力端」と称す）に与えられる信号はセレクタの制御端に与えられる値が“１”の場合に出力される。
【００４４】
セレクタＳＥＬ１の０−入力端にはスキャンパスへ入力するスキャン信号（以降「スキャン入力」と称す）ＳＩＤＩが、１−入力端にはインバータＩＮＶ１の出力が、それぞれ与えられる。セレクタＳＥＬ１の制御端にはテスト信号ＣＡＭＴＥＳＴが与えられ、その値が“０”である場合にはスキャン入力ＳＩＤＩを、“１”である場合にはインバータＩＮＶ１の出力を、それぞれ出力する。
【００４５】
インバータＩＮＶ１はスキャンパスから出力されるスキャン信号（以降「スキャン出力」と称す）ＳＯＤＩを反転させてセレクタＳＥＬ１の１−入力端に与える。従って、テスト信号ＣＡＭＴＥＳＴが“１”であれば、スキャンフリップフロップＳＦＦ−ＤＩ０，ＳＦＦ−ＤＩ１，ＳＦＦ−ＤＩ２及びインバータＩＮＶ１はこの順に循環的に直列に接続されていることになる。そしてスキャン入力ＳＩＤＩは、スキャンフリップフロップＳＦＦ−ＤＩ２のスキャン出力を反転させたものとなっている。
【００４６】
従って、ＣＡＭ１００のテストを行う際にはテスト信号ＣＡＭＴＥＳＴを“１”とすることにより、スキャンフリップフロップＳＦＦ−ＤＩ０，ＳＦＦ−ＤＩ１，ＳＦＦ−ＤＩ２の保持するデータ（入力信号ＤＩ０，ＤＩ１，ＤＩ２）は、図示されないが共通に与えられるクロック信号と同期して以下のように変化する（但し、保持データの初期値を（０，０，０）とする）。
【００４７】
(0,0,0)→(1,0,0)→(1,1,0)→(1,1,1)→(0,1,1)→(0,0,1)→(0,0,0)→…※
これにより上記の検査データを予め逐一作成し、これをシフトさせて各スキャンフリップフロップに与えるという作業は必要ない。一旦、各スキャンフリップフロップの保持データの初期値を設定することのみで、入力信号ＤＩ０〜ＤＩ２に対する上記のテストパターンを自己発生できる。
【００４８】
テスト信号ＣＡＭＴＥＳＴを“０”にすることにより、通常のスキャンパスを構成することもできる。
【００４９】
図７は図３で用いられるスキャンフリップフロップＳＦＦ−ＤＩｊの構成例を示す回路図である。同図（ａ），（ｂ），（ｃ）に示された回路のいずれも、シフトモード信号ＳＭのみならず、クロック信号Ｔ及びホールド信号をも入力する。ホールド信号は端子ＨＬＤに与えられる。
【００５０】
クロック信号Ｔはスキャンフリップフロップの動作に必須であるが、更にホールド信号を入力することにより、ＣＡＭのテスト時に、クロック信号Ｔに関わらずにデータを保持することができるという利点がある。この利点は、スキャンフリップフロップＳＦＦ−ＤＩ０，ＳＦＦ−ＤＩ１，ＳＦＦ−ＤＩ２の保持するデータを入力信号ＤＩ０，ＤＩ１，ＤＩ２としてＣＡＭ１００に与える際に、保持するデータの更新と錯綜しないようにする為に必要である。
【００５１】
図７（ａ）に示されたスキャンフリップフロップＳＦＦ−ＤＩｊは、セレクタ９１と、フリップフロップ９２と、オア回路９３とで構成されている。セレクタ９１はＤ端子とスキャン入力端子ＳＩにそれぞれ接続された０−入力端及び１−入力端とを有し、シフトモード信号ＳＭで制御される。オア回路９３はホールド信号とクロック信号Ｔとの論理和を生成する。フリップフロップ９２は、オア回路９３の出力に同期してセレクタ９１の出力を保持・伝達する。オア回路９３は複数のスキャンフリップフロップで共有することも可能である。ホールド信号を“１”にすることによりオア回路９３の出力を“１”に固定し、フリップフロップ９２をデータ保持状態にできる。
【００５２】
図７（ｂ）に示されたスキャンフリップフロップＳＦＦ−ＤＩｊは、セレクタ９０，９１と、フリップフロップ９２とで構成されている。セレクタ９０の０−入力端にはスキャン入力端子ＳＩが接続され、１−入力端にはフリップフロップ９２の出力端が接続され、ホールド信号によって動作が制御される。セレクタ９１の０−入力端にはＤ端子が、１−入力端にはセレクタ９０の出力端が、それぞれ与えられ、シフトモード信号ＳＭによって動作が制御される。フリップフロップ９２はクロック信号Ｔによって制御され、セレクタ９１の出力を保持・伝達する。ホールド信号及びシフトモード信号ＳＭを“１”に設定することにより、フリップフロップ９２の保持するデータがクロック信号Ｔに同期してセレクタ９０に取り込まれる。その結果、データは保持される。
【００５３】
ホールド信号を“０”にすればセレクタ９１の１−入力端にはスキャン入力端子ＳＩが接続され、図２に示された回路と等価になる。従って、データ保持が必要な時にクロック信号Ｔを止める等の適切な制御が行われれば、図２に示された回路を図３に示された回路に適用することができる。
【００５４】
図７（ｃ）に示されたスキャンフリップフロップＳＦＦ−ＤＩｊは、図７（ｂ）に示された構成に対し、セレクタ９０の０−入力端をＤ端子に、セレクタ９１の０−入力端をセレクタ９０の出力端に、セレクタ９１の１−入力端をスキャン入力端子ＳＩにそれぞれ接続し直した構成となっている。発揮される機能は図７（ｂ）に示された構成と同様である。
【００５５】
Ｃ．ＣＡＭ１００への書き込み．
以下で説明する第１乃至第３の手法においては、ＣＡＭ１００において記憶されるべき所定の内容を更新しつつ、上記テストパターンを用いて検査データとの一致／不一致を判断し、ＣＡＭ１００の良否を判定する。
【００５６】
連想メモリセルＣｉｊ（或いはＭｉｊ）の記憶内容が“０”の時に故障が発見されるのか、“１”の時に故障が発見されるのかは予見できない。これとは別に、一致するときに故障が発見されるのか、不一致のときに故障が発見されるのかも予見できない。よって故障診断に際しては、連想メモリセルＣｉｊの記憶内容が“０”から“１”へと変化した場合、もしくはその逆に“１”から“０”に変化した場合に対して、またはサーチデータが変化した場合に対して、故障が生じているか否かを調べる必要がある。従って、ＣＡＭ１００において記憶されるべき所定の内容を更新してテストを行う必要がある。
【００５７】
なお、上記※で示されたテストパターンの変化は、入力信号ＤＩｊの値をｊを更新しつつ反転させることに対応する。例えば保持データの初期値を（０，０，０）とすると、このときの入力信号ＤＩ０，ＤＩ１，ＤＩ２の値の組（テストパターン）はそれぞれ（０，０，０）である。そして入力信号ＤＩ０の値を反転させることによりテストパターンは（１，０，０）となる。次に入力信号ＤＩ１の値を反転させることによりテストパターンは（１，１，０）となり、更に入力信号ＤＩ２の値を反転させることによりテストパターンは（１，１，１）となる。再び入力信号ＤＩ０の値を反転させることによりテストパターンは（０，１，１）となり、次に入力信号ＤＩ１の値を反転させることによりテストパターンは（０，０，１）となる。このような考え方は、第１乃至第３の手法において示されるアルゴリズムの全てにおいて共通して採用されている。
【００５８】
（ｃ−１）第１の手法．
実施の形態２．
図８及び図９はこの発明の第１の手法を示すフローチャートである。両図は接続子Ｊ１を介して連続する。
【００５９】
図１０乃至図３９は第１の手法が施された場合の、スキャンフリップフロップＳＦＦ−ＤＩｊの記憶内容（入力信号ＤＩｊ）と、ＣＡＭ１００の連想メモリセルＣｉｊ（ｉ＝０，１，２，３；ｊ＝０，１，２）の記憶する内容を時系列に示す概念図であり、順次「ＳＴＡＴＥ−Ａ−ｐ」（ｐ＝０〜２９）の状態が示されている。これらの図において、スキャンフリップフロップＳＦＦ−ＤＩｊを表す四角の中に記載されている“０”，“１”は入力信号ＤＩｊを、連想メモリセルＣｉｊを表す四角の中で２段目に記載されている“０”，“１”は、１段目に記載された連想メモリセルＣｉｊにおいて記憶されている内容を、それぞれ示している。
【００６０】
まず、ステップ８０１において、全てのｊについて入力信号ＤＩｊに初期値として“０”を設定する。そしてステップ８０２において、全てのｉ，ｊについて、連想メモリセルＣｉｊの記憶内容を初期値として“０”に設定する。これは“０”に設定された入力信号ＤＩｊを第ｉ列の連想メモリセルＣｉｊに書き込むことによって実現することができる。図１０はここまでのステップが実行された状態を示す。
【００６１】
次にステップ８０３に移り、ｊ＝０にする。つまりここでスキャンフリップフロップＳＦＦ−ＤＩｊに対する処理のための初期化を行う。
【００６２】
そしてステップ８０４において、入力信号ＤＩｊを反転する。ステップ８０３が実行された直後ではｊ＝０なので、ステップ８０４の処理は入力信号ＤＩ０を反転することとなる。既述のように、これは図３を用いて示されたインバータＩＮＶ１による帰還を行うことに対応している。つまり値“１”がシフトインされたことと等価である。図１１はここまでのステップが実行された状態を示す。
【００６３】
但し、ステップ８０４，８０６，８１２，８１４のように太枠で示されたステップでは、そのステップが実行されることによって確定した列一致信号Ｚｉをテストすることも行われる。
【００６４】
図１１に即してみれば、ステップ８０２において入力信号ＤＩ１，ＤＩ２が第０列乃至第３列の連想メモリセルＣ０１〜Ｃ３１，Ｃ０２〜Ｃ３２にそれぞれ書き込まれており、しかもその後のステップの実行によっても入力信号ＤＩ１，ＤＩ２の値、連想メモリセルＣ０１〜Ｃ３１，Ｃ０２〜Ｃ３２の記憶内容は変化しないので、連想メモリセルＣ０１〜Ｃ３１，Ｃ０２〜Ｃ３２はサーチデータとして機能する入力信号ＤＩ１，ＤＩ２（図４において示された様に、入力信号ＤＩｊは書き込みの為のデータとしてビット線へ与えられるのみならず、サーチ線へも与えられる）に対して「一致」との判断を下す。つまりこれらのメモリセルにおいては伝達線Ｚｉが接地することはなく、故障発見という意義はない。
【００６５】
しかし第１行の連想メモリセルＣ００〜Ｃ３０に関しては、ステップ８０４において入力信号ＤＩ０の値が“０”から“１”へと変化したので、既にステップ８０２において“０”が書き込まれた連想メモリセルＣ００〜Ｃ３０は、サーチデータとして機能する入力信号ＤＩ０に対して不一致であるとの判断を下すべきであり、そうでなければ連想メモリセルＣ００〜Ｃ３０に故障があると診断される。
【００６６】
しかも、各列毎に列一致信号Ｚｉが得られ、連想メモリセルＣ０１〜Ｃ３１，Ｃ０２〜Ｃ３２においては伝達線Ｚｉが接地されることがないので、連想メモリセルＣ００〜Ｃ３０の各々についての故障を発見することができる。図１０乃至図３９において示されている列一致信号Ｚｉの値は、全てのメモリセルにおいて故障がない場合に得られるべき値（期待値）である。
【００６７】
次にステップ８０５へ移り、ｉ＝０に設定される。これはステップ８０６において行われる処理の初期化である。
【００６８】
そしてステップ８０６では全てのｊについて第ｉ列の連想メモリセルＣｉｊへ入力信号ＤＩｊが書き込まれる。ステップ８０５の直後では、第０列の連想メモリセルＣ００〜Ｃ０２への書き込みが為される。図１２は図１１の状態からステップ８０６の処理が為された場合の状態を示している。入力信号ＤＩ０，ＤＩ１，ＤＩ２の値の組は（１，０，０）となっているので、連想メモリセルＣ００，Ｃ０１，Ｃ０２へはそれぞれ“１”，“０”，“０”が書き込まれる。
【００６９】
そして入力信号ＤＩ０，ＤＩ１，ＤＩ２の値はサーチデータとして機能し、列一致信号Ｚｉが調べられる。図１２に示された状態においては、ステップ８０６における書き込みによって変化したのは連想メモリセルＣ００のみであり、この連想メモリセルＣ００に故障が生じているか否かを診断することができる。
【００７０】
連想メモリセルＣ００は図１１に示された状態において既に一度故障診断が為されている。しかしその際に診断されたのは連想メモリセルＣ００の記憶内容が“０”へと更新され、サーチデータたる入力信号ＤＩ０が“１”へ更新された場合に不一致と判断できるか否かである。そして図１２に示された状態において診断されるのは連想メモリセルＣ００の記憶内容が“１”へと更新され、サーチデータたる入力信号ＤＩ０が“１”へと更新された場合に一致と判断できるか否かである。
【００７１】
このように、連想メモリセルＣｉｊの記憶内容及びサーチデータがそれぞれ複数の状態を取り得ることに鑑みれば、連想メモリセルＣｉｊの記憶内容を更新する必要があることは本節の冒頭で述べた通りであり、その更新はステップ８０６によって自動的に行うことができる。
【００７２】
ステップ８０７はある入力信号ＤＩ０，ＤＩ１，ＤＩ２の値の組が書き込まれていない列が未だ存在するか否かを判断する。ここで値ｎは列の数であり、ここでは４に等しい。ステップ８０８では列番号ｉを一つ増やし、一つ右となりの列への書き込みの準備を行う。そしてステップ８０６に戻る。
【００７３】
図１３は図１２の状態から更にステップ８０６が実行された状態を示している。つまり第１列の連想メモリセルＣ１０，Ｃ１１，Ｃ１２にそれぞれ“１”，“０”，“０”が書き込まれ、列一致信号Ｚｉが得られる。この状態では、連想メモリセルＣ１０が故障しているか否かを診断することができる。
【００７４】
図１４は図１３の状態から更にステップ８０６が実行された状態を示している。つまり第２列の連想メモリセルＣ２０，Ｃ２１，Ｃ２２にそれぞれ“１”，“０”，“０”が書き込まれ、列一致信号Ｚｉが得られる。この状態では、連想メモリセルＣ２０が故障しているか否かを診断することができる。
【００７５】
図１５は図１４の状態から更にステップ８０６が実行された状態を示している。つまり第３列の連想メモリセルＣ３０，Ｃ３１，Ｃ３２にそれぞれ“１”，“０”，“０”が書き込まれ、列一致信号Ｚｉが得られる。この状態では、連想メモリセルＣ３０が故障しているか否かを診断することができる。
【００７６】
以上の様にして、第０行の連想メモリセルＣ００〜Ｃ３０に対し、以下の場合に故障が存在するか否かを診断することができる。
【００７７】
(1)ケース１：各メモリセルの記憶内容が“０”、サーチデータが“１”の場合
(2)ケース２：各メモリセルの記憶内容が“１”、サーチデータが“１”の場合
その後ステップ８０７において列番号ｉがｎ−１（ここでは４−１＝３）であると判断され、ステップ８０９へ進む。ステップ８０９では行番号ｊがｍ−１であるか否かが判断される。ここで値ｍは行の数であり、ここでは値３に等しい。ステップ８１０では行番号ｊを一つ増やし、新たなテストパターンの生成の準備を行う。そしてステップ８０４に戻る。
【００７８】
図１６は図１５に示された状態からステップ８０４を実行した状態を示している。行番号ｊの値が０から１へ更新されたので、ステップ８０４によって入力信号ＤＩ１を反転する処理が行われる。これは入力信号ＤＩ３の値“０”を反転して入力信号ＤＩ０としてシフトインし、かつて入力信号ＤＩ０であった値“１”を入力信号ＤＩ１が採ることと等価である。
【００７９】
図１６に示された状態では、第０行の連想メモリセルＣ００〜Ｃ３０は既に“１”を記憶しており、しかもステップ８０４の実行によっても入力信号ＤＩ０は“１”のまま変化しない。従って、この状態は第０行の連想メモリセルＣ００〜Ｃ３０の故障を発見するという意義を持たない。
【００８０】
また、第２行の連想メモリセルＣ０２〜Ｃ３２及び入力信号ＤＩ２はいままで全く状態が変化しておらず、やはりこの状態は第２行の連想メモリセルＣ０２〜Ｃ３２の故障を発見するという意義を持たない。
【００８１】
この状態では、図１１の状態において第０行の連想メモリセルＣ００〜Ｃ３０がそうであったように、第１行の連想メモリセルＣ０１〜Ｃ３１に関してケース１の故障を発見できる。以下同様にしてステップ８０６が繰り返されることにより、状態は順次図１７乃至図２０に示されるように更新され（第０列乃至第３列への書き込み及び列一致信号Ｚｉの読み出しが行われ）、それぞれ第１行の連想メモリセルＣ０１〜Ｃ３１に関してケース２の故障を発見できる。
【００８２】
同様にして、図２１の状態において第２行の連想メモリセルＣ０２〜Ｃ３２に関してケース１の故障を発見でき、図２２乃至図２５に示されるよう状態において、それぞれ第２行の連想メモリセルＣ０２〜Ｃ３２に関してケース２の故障を発見できる。
【００８３】
図２５で示された状態の後は、ステップ８０７，８０９のいずれにおいても“Ｙｅｓ”と判断され、接続子Ｊ１へと進む。換言すれば、接続子Ｊ１に到達した状態においては全ての連想メモリセルＣｉｊに対してケース１，２の場合における故障発見の処理が終了している。
【００８４】
図９に示されたステップ８１１〜８１８は、見かけ上、図８に示されたステップ８０３〜８１０と同一の処理を行う。しかしその内実はケース１，２とは逆のケースを生じさせる。これはステップ８０３〜８１０の初期状態が図１０で示された状態であるのに対し、ステップ８１１〜８１８の初期状態が図２５で示された状態であるためである。図１０において“０”であった値は図２５において“１”となっている。
【００８５】
そして、ステップ８０３〜８１８において入力信号ＤＩｊの採る値、連想メモリセルＣｉｊの記憶内容に対して為される処理が、論理の反転（或いはシフトイン；ステップ８０４，８１２）及び書き込み（列一致信号Ｚｉの読み出しも含む；ステップ８０６，８１４）である。従って、ステップ８１１〜８１８を実行することによって得られる状態は、図１０乃至図２４で示された“０”と“１”とを全て交換して得られる状態である。そのような交換によって図１０乃至図２４に対応して図２５乃至図３９で示される状態が得られる。
【００８６】
従って、ステップ８１１〜８１８によって故障発見が行われるケースも、ケース１，２の“０”と“１”とを交換したケースとなる。即ち次の２つのケースである。
【００８７】
(3)ケース３：各メモリセルの記憶内容が“１”、サーチデータが“０”の場合
(4)ケース４：各メモリセルの記憶内容が“０”、サーチデータが“０”の場合
図３９は、ｉ＝２，ｊ＝３であってステップ８１４が実行された状態を示している。この後、ステップ８１５，８１６によってｉ＝３となり、第３列の連想メモリセルＣ３０，Ｃ３１，Ｃ３２への書き込みが行われ、図１０に示された状態に戻る。その後ステップ８１５，８１７を経て全ての処理が終了する。
【００８８】
このようにしてメモリセルの記憶内容とサーチデータのそれぞれの変化に基づく全ての場合に対して、全てのメモリセルの故障発見を行うことができる。しかもＣＡＭへの書き込みを行うことにより、必要なテストパターン数を減少させることができる。第１の手法において必要なのは※で示された６つのパターンであり、（１，０，１），（０，１，０）という、両端の値が等しく、かつそれ以外の値が両端の値とは異なるというパターンは必要ない。従って、シフトインという手法によって入力信号ＤＩｊを更新しても、全ケース１〜４の故障発見を行うことができる。
【００８９】
（ｃ−１−１）第１の手法を実行するための回路．
前駆的思想において図１及び図２で示された回路でも、スキャン入力信号ＳＩＤＩが適切なテストパターンを採り、シフトインすることによっても図８及び図９に示された第１の手法を行うこともできる。しかし、入力信号ＤＩｊの内容をＣＡＭ１００に書き込む際にはその値を保持する必要があり、スキャンフリップフロップとしては図７に示されたホールド機能付きのものを用いることが望ましい。さもないと、ホールド動作を行うためにはクロック信号Ｔを適切に制御する必要がある。
【００９０】
以下に示すのは、第１の手法を、適切なテストパターンを自動的に生成することで実行する回路の例である。
【００９１】
実施の形態３．
図４０は第１の手法を実現するＣＡＭテスト回路の構成を示す回路図である。ここではテストされるべきＣＡＭ１００が、入力信号のビット数（行の数）ｍが３、列の数ｎが４の場合を例示している。但し、ＣＡＭのテスト以外に用いられる部分、例えば通常動作において与えられるべき入力信号ＤＤＩ０，ＤＤＩ１，ＤＤＩ２やシフトモード信号ＳＭがどのように入力されるか等は省略されている。また、動作タイミングを司るクロック信号Ｔも省略されている。なお、以下ではＣＡＭ１００のテストを行う場合を説明するので、シフトモード信号ＳＭは常に“１”であるとして説明されている。
【００９２】
ＣＡＭ１００にはアドレス信号Ａ０，Ａ１、ライトイネーブル信号ＷＥ、入力信号ＤＩ０，ＤＩ１，ＤＩ２が与えられる。
【００９３】
アドレス信号Ａ０，Ａ１はアドレスカウンタＣＮＴＲによって発生される。このアドレスカウンタは少なくともＣＡＭテスト時においてはカウント動作を行う。但し、カウント動作中であっても図示されないクロック信号Ｔの遷移に依らず、アドレスホールド信号ＨＯＬＤ−ＡはアドレスカウンタＣＮＴＲの値を保持させる。アドレスホールド信号ＨＯＬＤ−Ａとしては、アドレスホールド原信号ＨＬＤＡまたは書き込み原信号ＷＥＣＤが、セレクタＳＥＬ４によって採用される。
【００９４】
また、ここで例示されたアドレスカウンタＣＮＴＲはスキャンアドレス入力ＳＩＡＡによってその保持する値を更新する事ができる。スキャンアドレス入力ＳＩＡＡとしてはスキャンアドレス入力原信号ＳＩＡまたは書き込み原信号ＷＥＣＤが、セレクタＳＥＬ７によって採用される。
【００９５】
最終番地検出回路ＬＡＤＥＴは、アドレス信号Ａ０，Ａ１を入力し、これらがアルゴリズム上の最終番地を示している場合には最終番地検出信号ＬＡを“１”にする。例えば最終番地としてＡ０＝Ａ１＝１が指定される。
【００９６】
ライトイネーブル信号ＷＥはライトパルスジェネレータＷＰＧによって生成される。ライトイネーブル信号ＷＥはスキャンフリップフロップＳＦＦＷから出力される書き込み原信号ＷＥＣＤが“Ｌ”である場合に、クロック信号Ｔに同期して遷移する。
【００９７】
スキャンフリップフロップＳＦＦＷにはセレクタＳＥＬ６を介してセレクタＳＥＬ２の出力または統一スキャン入力ＳＩＣＡＭが与えられる。スキャンフリップフロップＳＦＦＷとしては例えば図２の回路を用いる。そして、スキャン入力端子ＳＩにセレクタＳＥＬ６の出力を与える。
【００９８】
スキャンフリップフロップＳＦＦ−ＤＩ０，ＳＦＦ−ＤＩ１，ＳＦＦ−ＤＩ２はこの順に、スキャン出力端ＳＯとスキャン入力端ＳＩとが直列に接続されている。スキャンフリップフロップＳＦＦ−ＤＩ２のスキャン出力端ＳＯはインバータＩＮＶ１の入力端に接続され、スキャンフリップフロップＳＦＦ−ＤＩ０のスキャン入力端ＳＩはセレクタＳＥＬ１，ＳＥＬ８を介してインバータＩＮＶ１の出力端に接続されている。
【００９９】
スキャンフリップフロップＳＦＦ−ＤＩｊのいずれの端子ＨＬＤにも入力ホールド信号ＨＯＬＤ−ＤＩが与えられており、これが“１”となることによってスキャンフリップフロップＳＦＦ−ＤＩｊはその記憶内容がクロック信号Ｔの遷移に依らずに保持される。
【０１００】
入力ホールド信号ＨＯＬＤ−ＤＩとしては、セレクタＳＥＬ３を介して入力ホールド原信号ＨＬＤＤＩ、または最終番地検出信号ＬＡを反転した信号のいずれかが採用される。最終番地検出信号ＬＡの反転はインバータＩＮＶ２によって行われる。
【０１０１】
セレクタＳＥＬ１〜ＳＥＬ４の制御はテスト信号ＣＡＭＴＥＳＴによって、セレクタＳＥＬ６〜ＳＥＬ８の制御はスキャンパス制御信号ＭＥＭＴによってそれぞれ行われる。
【０１０２】
テスト信号ＣＡＭＴＥＳＴは、ＣＡＭ１００のテストを行う場合には“１”をとる。従って、その場合にはセレクタＳＥＬ８の１−入力端にはインバータＩＮＶ１の出力が、セレクタＳＥＬ６の１−入力端には最終番地検出信号ＬＡが、入力ホールド信号ＨＯＬＤ−ＤＩとしてインバータＩＮＶ２の出力が、アドレスホールド信号ＨＯＬＤ−Ａとしては書き込み原信号ＷＥＣＤが、それぞれ与えられる。
【０１０３】
また、スキャンパス制御信号ＭＥＭＴが“１”の場合には、スキャンフリップフロップＳＦＦＷにはセレクタＳＥＬ２の出力が、スキャンアドレス入力ＳＩＡＡとしてはスキャンアドレス入力原信号ＳＩＡが、スキャンフリップフロップＳＦＦ−ＤＩ０のスキャン入力端ＳＩにはセレクタＳＥＬ１の出力が、それぞれ与えられる。
【０１０４】
説明の便宜上、スキャンパス制御信号ＭＥＭＴが“１”であるとして説明を進めるが、スキャンパス制御信号ＭＥＭＴが“０”の場合については後述する。
【０１０５】
表１及び表２は図４０に示された回路動作をクロック信号Ｔの周期毎に示す各信号の論理値表である。“ｘ”は値を特定する必要がない（don't care）を表している。表１及び表２には図４で示されたデータ出力ＤＯｊ、列一致信号Ｚｉも併記されている。
【０１０６】
【表１】
2006054052.tif 000003
【０１０７】
【表２】
2006054052.tif 000004
【０１０８】
図４１はクロック信号Ｔの遷移のタイミングと、外部から設定される信号群（テスト信号ＣＡＭＴＥＳＴ、スキャン入力信号ＳＩＤＩ、スキャンアドレス入力信号ＳＩＡ、スキャン書き込み信号ＳＩＷ、入力ホールド原信号ＨＬＤＤＩ、アドレスホールド原信号ＨＬＤＡ）の遷移のタイミングと、図４０の内部において伝達される信号群（入力ホールド信号ＨＯＬＤ−ＤＩ、アドレスホールド信号ＨＯＬＤ−Ａ、アドレス信号Ａ１，Ａ０、入力信号ＤＩｊ、書き込み原信号ＷＥＣＤ、ライトイネーブル信号ＷＥ、列一致信号Ｚｉ、データ出力ＤＯｊ）のタイミングとの関係を示すタイミングチャートである。
【０１０９】
第０周期においては各信号の値は与えられていない。そして第１乃至第１１周期において、ステップ８０１乃至ステップ８０３が実行される。この期間ではテスト信号ＣＡＭＴＥＳＴは“０”に設定される。
【０１１０】
第１乃至第３周期においてステップ８０１が実行される。この期間ではスキャン入力信号ＳＩＤＩが“０”に設定される。セレクタＳＥＬ１，ＳＥＬ８はスキャン入力信号ＳＩＤＩをスキャンフリップフロップＳＦＦ−ＤＩ０のスキャン入力端ＳＩに与える。
【０１１１】
スキャンフリップフロップＳＦＦ−ＤＩｊの保持する内容を更新するのであるから入力ホールド信号ＨＯＬＤ−ＤＩを強制的に“０”にする必要がある。そのために入力ホールド原信号ＨＬＤＤＩを“０”に設定する。既述のように、図示しないが（図７参照）シフトモード信号ＳＭは“１”に設定されているので、クロック信号Ｔが新たな周期を迎える毎にスキャン入力信号ＳＩＤＩは順次スキャンフリップフロップＳＦＦ−ＤＩ１，ＳＦＦ−ＤＩ２のスキャン入力端ＳＩに伝達される。第１周期においてまず入力信号ＤＩ０が“０”となり、第２周期において入力信号ＤＩ１も“０”となり、第３周期において全ての入力信号ＤＩｊが“０”となる。
【０１１２】
なお、この第１乃至第３周期においてはＣＡＭ１００に対する（連想メモリセルＣｉｊに対する）書き込みは行わないので、ライトイネーブル信号ＷＥを“０”にするため（書き込み原信号ＷＥＣＤを“１”にするため）、セレクタＳＥＬ２の０−入力端に与えられるスキャン書き込み信号ＳＩＷの値を“１”に設定している。また、アドレスホールド信号ＨＯＬＤ−ＡとしてはセレクタＳＥＬ４によってアドレスホールド原信号ＨＬＤＡが採用されるが、書き込みが行われないので、アドレス信号を必ずしも固定する必要がなく、アドレスホールド原信号ＨＬＤＡの値は特に設定されない。但し、以下に示す第５周期乃至第８周期において全ての連想メモリセルＣｉｊへの初期値設定がなされるので、必ずしもスキャン書き込み信号ＳＩＷの値を特定する必要はない。
【０１１３】
スキャンパス制御信号ＭＥＭＴが“０”の場合には統一スキャン入力ＳＩＣＡＭがセレクタＳＥＬ６、スキャンフリップフロップＳＦＦＷ、セレクタＳＥＬ７、アドレスカウンタＣＮＴＲ、セレクタＳＥＬ１を経由して、上記の初期状態の設定のための値を伝達させることができる。
【０１１４】
第４周期乃至第８周期においてステップ８０２が実行される。アドレス信号Ａ１，Ａ０に従って、入力信号ＤＩｊを各列の連想メモリセルＣｉｊに書き込むので、アドレス信号Ａ１，Ａ０を順次更新する必要がある。この更新のために、ここではスキャンアドレス入力ＳＩＡＡを用いてアドレスカウンタＣＮＴＲの保持する値を更新している。セレクタＳＥＬ７はスキャンアドレス入力原信号ＳＩＡをスキャンアドレス入力ＳＩＡＡとして出力するので、スキャンアドレス入力原信号ＳＩＡの値が更新される。第４周期乃至第８周期においては、アドレスホールド原信号ＨＬＤＡが“０”に設定され、アドレスホールド信号ＨＯＬＤ−Ａが“０”となっておりアドレスカウンタＣＮＴＲのホールド機能は禁止されている。スキャンアドレス入力信号ＳＩＡによるアドレス信号Ａ１，Ａ０の更新を許可するためである。
【０１１５】
また第４乃至第８期間において、入力ホールド原信号ＨＬＤＤＩを“１”に設定することによって入力ホールド信号ＨＯＬＤ−ＤＩを“１”にし、入力信号ＤＩｊの値を固定する。従って、スキャン入力信号ＳＩＤＩの値は特定されない。
【０１１６】
第４周期において、まずスキャンアドレス入力原信号ＳＩＡの値として“０”が設定される。スキャンアドレス入力ＳＩＡＡが与えられれば、これが順次アドレス信号Ａ１，Ａ０として伝達・保持されるので、アドレス信号Ａ１の値は“０”に確定するが、アドレス信号Ａ０は未確定である。従って、まだＣＡＭ１００への書き込みを行う必要がないので、第４周期ではスキャン書き込み信号ＳＩＷの値を“１”に設定している。但し上述のように第５周期乃至第８周期において全ての連想メモリセルＣｉｊへの初期値設定がなされるので、必ずしもスキャン書き込み信号ＳＩＷの値を特定する必要はない。
【０１１７】
第５周期において、再びスキャンアドレス入力原信号ＳＩＡの値として“０”が設定される。これによってアドレス信号Ａ１，Ａ０が“０”，“０”に確定し、デコーダＤＣＤＲによってデコードされて一つのワード線ＷＬｊが選択される。ここでは簡単のためにアドレス信号Ａ１，Ａ０の組が（０，０），（０，１），（１，０），（１，１）であることに対応して、それぞれワード線ＷＬ０，ＷＬ１，ＷＬ２，ＷＬ３が選択されるとして説明を行うが、後述するように、デコーダＤＣＤＲのデコードの仕方によって上記対応以外の対応関係が設定されても良い。
【０１１８】
第５周期乃至第８周期においては順次ワード線ＷＬ０，ＷＬ２，ＷＬ３，ＷＬ１が選択され、スキャン書き込み信号ＳＩＷの値を“０”に設定して書き込み原信号ＷＥＣＤを“０”にし、ライトイネーブル信号ＷＥが“１”となって書き込みが行われる。以上のようにして得られた状態は図１０で示された「ＳＴＡＴＥ−Ａ−０」に対応している。
【０１１９】
第９乃至第１１周期においてはステップ８０４の為の準備が行われる。ステップ８０６において最終番地の列のメモリセルに対する処理が為された後はステップ８０７を経由してステップ８０９へ進む。ステップ８１０を介してステップ８０４の処理が為されるにしても、ステップ８１１を介してステップ８１２の処理が為されるにしても、クロック信号Ｔのある周期において入力信号ＤＩｊの更新を行わなければならない。
【０１２０】
従って、詳しくは後述するが、図４０に示された回路では、最終番地の列のメモリセルに対するステップ８０６の処理が行われた後に入力信号ＤＩｊの更新が行われるように構成されている。換言すれば、最終番地の列のメモリセルに対して書き込み処理がなされなければ入力信号ＤＩｊの更新が行われないため、最初にステップ８０４を実行する場合には、仮に最終番地の列のメモリセルに対して書き込み処理を行う必要がある。
【０１２１】
第９乃至第１０周期においては列番号を最終番地に設定する処理が行われ、第１１周期においては書き込みが行われる。第９乃至第１１期間においても、入力ホールド原信号ＨＬＤＤＩを“１”に設定することによって入力信号ＤＩｊの値を固定するので、スキャン入力信号ＳＩＤＩの値は特定されない。
【０１２２】
第９乃至第１０周期においては上記目的のために最終番地がアドレス信号Ａ１，Ａ０に設定される。第９周期乃至第１０周期においても、アドレスホールド信号ＨＯＬＤ−Ａが“０”となっており、スキャンアドレス入力信号ＳＩＡによってアドレス信号Ａ１，Ａ０の値の更新を許可している。第９乃至第１０周期においては第８周期においてそれぞれ“０”，“１”となったアドレス信号Ａ１，Ａ０の値をいずれも“１”へ変更するために、スキャンアドレス入力信号ＳＩＡの値を“１”に設定している。
【０１２３】
この際、既にＣＡＭ１００の連想メモリセルＣｉｊは初期化が終了しているので、これらに対して新たな書き込みが行われないようにスキャン書き込み信号ＳＩＷの値を“１”に設定して書き込み原信号ＷＥＣＤを“１”にし、ライトイネーブル信号ＷＥを“０”にして書き込みを禁止している。しかし第９乃至第１０周期においても第５乃至第８周期においてと同様に、入力信号ＤＩｊは全て値“０”を採っているので、書き込みを行っても連想メモリセルＣｉｊの記憶内容が変更されることもなく、必ずしも書き込みを禁止する必要はない。
【０１２４】
第１１周期においてはアドレスホールド原信号ＨＬＤＡが“１”に設定され、既にいずれも“１”に設定されたアドレス信号Ａ１，Ａ０の値が保持される。従って、スキャンアドレス入力信号ＳＩＡの値は特定されない。スキャン書き込み信号ＳＩＷの値が“０”に設定され、スキャンフリップフロップＳＦＦＷには値“０”が記憶される。
【０１２５】
第１２周期乃至第４２周期においてはＣＡＭテストが実行される。この周期においてはテスト信号ＣＡＭＴＥＳＴは“１”に設定される。よってテスト信号ＣＡＭＴＥＳＴによって制御されるセレクタＳＥＬ１〜ＳＥＬ４の０−入力端に与えられていたスキャン入力信号ＳＩＤＩ、スキャン書き込み信号ＳＩＷ、入力ホールド原信号ＨＬＤＤＩ、アドレスホールド原信号ＨＬＤＡの値は特定される必要がない。更に、テスト信号ＣＡＭＴＥＳＴが“１”となることにより、アドレスカウンタＣＮＴＲはカウント機能を発揮するので、スキャンアドレス入力信号ＳＩＡの値も特定されない。
【０１２６】
既に第１１周期においてセレクタＳＥＬ４の１−入力端には“０”が与えられているので、第１２周期の開始となるクロック信号Ｔの遷移においてアドレスホールド信号ＨＯＬＤ−Ａも“０”となり、アドレスカウンタＣＮＴＲのカウント動作が許可される。よって、アドレス信号Ａ１，Ａ０の値が（１，１）から（０，０）へと更新される。しかし、第１２周期においては連想メモリセルＣ００，Ｃ０１，Ｃ０２への書き込みは禁止される。入力信号ＤＩｊの更新と錯綜しないためであり、最終番地検出信号ＬＡがセレクタＳＥＬ２，ＳＥＬ６を経由して書き込み原信号ＷＥＣＤを“１”にしており、ライトイネーブル信号ＷＥが“０”となっている。
【０１２７】
インバータＩＮＶ１が第１１周期において“０”であった入力信号ＤＩ２の値を反転して、値“１”をセレクタＳＥＬ１，ＳＥＬ８を介してスキャンフリップフロップＳＦＦ−ＤＩ０のスキャン入力端ＳＩに与える。また、第１１周期においてセレクタＳＥＬ３の１−入力端には最終番地検出信号ＬＡが反転されて“０”が与えられているので、テスト信号ＣＡＭＴＥＳＴが“１”になれば入力ホールド信号ＨＯＬＤ−ＤＩは“０”となり、スキャンフリップフロップＳＦＦ−ＤＩｊの記憶内容の変更は許可される。図４１に示されるように、テスト信号ＣＡＭＴＥＳＴの値はクロック信号Ｔの遷移の前に既に確定しているので、第１２周期の開始となるクロック信号Ｔの遷移によって、即ちアドレス信号Ａ１，Ａ０の値が（１，１）から（０，０）へ更新される（この更新はクロック信号ＴによってアドレスカウンタＣＮＴＲが動作した後に行われる）よりも以前にスキャンフリップフロップＳＦＦ−ＤＩｊの記憶内容が更新される。従ってテストパターンは（０，０，０）から（１，０，０）へと更新され、図１１に示された状態を実現することができる。
【０１２８】
但し、第１２周期の開始となるクロック信号Ｔの遷移によってアドレス信号Ａ１，Ａ０の値が（１，１）から（０，０）に更新された後は、最終番地検出信号ＬＡが“０”となり、入力ホールド信号ＨＯＬＤ−ＤＩは“１”となって、スキャンフリップフロップＳＦＦ−ＤＩｊの記憶内容の変更は禁止される。
【０１２９】
その後、第１３周期乃至第１５周期においては、アドレス信号Ａ１，Ａ０の値が（１，１）以外であるので、最終番地検出信号ＬＡが“０”であり、アドレスホールド信号ＨＯＬＤ−Ａが“０”となってアドレスカウンタＣＮＴＲのカウント動作が許可される一方、スキャンフリップフロップＳＦＦ−ＤＩｊの記憶内容の変更は禁止され続ける。よって、アドレスカウンタＣＮＴＲによってアドレス信号Ａ１，Ａ０が順次更新され、それぞれ図１２乃至図１４に示された状態を得ることができる。
【０１３０】
第１６周期においてはアドレス信号Ａ１，Ａ０の値が（１，１）となり、図１５に示されるように第３列の連想メモリセルＣ３０，Ｃ３１，Ｃ３２へのテストパターン（１，０，０）の書き込みが行われる一方、最終番地検出信号ＬＡが“１”となってスキャンフリップフロップＳＦＦＷのスキャン入力端ＳＩに値“１”を与える。
【０１３１】
しかし、第１７周期の開始となるクロック信号Ｔの遷移においてスキャンフリップフロップＳＦＦＷから出力される書き込み原信号ＷＥＣＤは、第１５周期においてスキャンフリップフロップＳＦＦＷに記憶されていた値“０”を採っているので、アドレスホールド信号ＨＯＬＤ−Ａが“０”である。よって第１７周期の開始となるクロック信号Ｔの遷移によってアドレスカウンタＣＮＴＲはカウント動作を行い、アドレス信号Ａ１，Ａ０の値が（０，０）となる。一方、第１６周期においてスキャンフリップフロップＳＦＦＷに与えられた値“１”がセレクタＳＥＬ４を介してアドレスホールド信号ＨＯＬＤ−ＡとしてアドレスカウンタＣＮＴＲに与えられる。
【０１３２】
アドレス信号Ａ１，Ａ０の値が（０，０）へと更新されて最終番地検出信号ＬＡが“０”となるのは、第１７周期の開始となるクロック信号Ｔの遷移に基づいてアドレスカウンタＣＮＴＲがカウント動作を行ってからである。第１７周期の開始となるクロック信号Ｔの遷移よりも以前にセレクタＳＥＬ３の１−入力端には“０”が与えられている。よって入力ホールド信号ＨＯＬＤ−ＤＩは“０”であってスキャンフリップフロップＳＦＦ−ＤＩｊの記憶内容の更新が許可されており、第１７周期の開始となるクロック信号Ｔの遷移によってテストパターンは更新される（図１６）。
【０１３３】
第１８周期の開始となるクロック信号Ｔの遷移においてはアドレスホールド信号ＨＯＬＤ−Ａの値が“１”を採っているので、アドレス信号Ａ１，Ａ０の値は更新されない。そして第１８周期乃至第２１周期においてそれぞれ第０列乃至第３列の連想メモリセルＣｉｊへのテストパターンの書き込みが行われる（図１７乃至図２０）。
【０１３４】
以下、同様にして第２２周期、第２７周期、第３２周期、第３７周期においてテストパターンの更新が行われ（図２１、図２６、図３１、図３６）、第２３周期乃至第２６周期、第２８周期乃至第３１周期、第３３周期乃至第３６周期、第３８周期乃至第４１周期においてそれぞれ第０列乃至第３列の連想メモリセルＣｉｊへのテストパターンの書き込みが行われる（図２２乃至図２５、図２７乃至図３０、図３２乃至図３５、図３７乃至図３９及び図１０）。
【０１３５】
第２６周期においてステップ８０９から接続子Ｊ１へと処理が進み、第２７周期乃至第４１周期においてステップ８１１〜８１７が実行される。第４１周期以降もテストを続行しても、第１２周期と同じ状態が繰り返されるに過ぎない。
【０１３６】
図４２は第１の手法を実現するＣＡＭテスト回路の他の構成を示す回路図である。ここでは最終番地検出信号ＬＡを、最終番地検出回路ＬＡＤＥＴを用いて得るのではなく、最終番地に相当する列、ここでは第３列のワード線ＷＬ３に与えられる値から得ている。このようにしても図４０に示された回路と同様の動作を行うことは明白である。
【０１３７】
アドレスカウンタＣＮＴＲとしてはバイナリカウンタやフィードバックシフトレジスタ型カウンタを用いることができる。またグレイコードカウンタを用いることもできる。
【０１３８】
図４３はアドレスカウンタＣＮＴＲとしてバイナリカウンタを採用した場合の構成を例示する回路図である。セレクタ８１，８３はテスト信号ＣＡＭＴＥＳＴによって制御され、テスト信号ＣＡＭＴＥＳＴが“０”の場合にはこれらを介してスキャンフリップフロップ８２，８４にスキャンアドレス入力ＳＩＡＡがクロック信号Ｔに同期して伝達される。スキャンフリップフロップ８２，８４としては図７（ｂ）に示されたものを用いることができる。シフトモード信号ＳＭが“０”の場合には、通常のフリップフロップとしてスキャンフリップフロップ８２，８４が動作し、例えば入力信号ＡＡ０，ＡＡ１をそれぞれアドレス信号Ａ０，Ａ１として採用することができる。
【０１３９】
テスト信号ＣＡＭＴＥＳＴが“１”の場合には増加回路８５へとスキャンフリップフロップ８２，８４から経路が開かれ、クロック信号Ｔに同期してアドレスが増加する。ここでアドレスＸｉ（ｉ＝２・Ａ１＋Ａ０）として順次デコーダＤＣＤＲの出力Ｘ０，Ｘ１，Ｘ２，Ｘ３が得られる。したがって、デコーダＤＣＤＲからの出力Ｘｉはそれぞれワード線ＷＬｉと接続すればよい。図４４はそのような場合のデコーダＤＣＤＲとワード線ＷＬｉとの接続関係を示している。
【０１４０】
図４２と同様にして、最終番地検出信号ＬＡはワード線ＷＬ３に与えられる信号から得ている。そしてそれはアドレスカウンタＣＮＴＲとして図４３に示されるようなバイナリカウンタを用いる場合には出力Ｘ３から得られる。ここで、最終番地検出信号ＬＡをワード線ＷＬ３に与えられている信号そのものではなく、ワード線ドライバＷＬＤに関してデコーダＤＣＤＲ側にある出力Ｘ３から採っているのは、ワード線ＷＬ３において故障が生じていても、正常な最終番地検出信号ＬＡを得ることができるようにするためである。
【０１４１】
図４５はアドレスカウンタＣＮＴＲとして２ビットのフィードバックシフトレジスタ型カウンタを採用した場合の構成を例示する回路図である。セレクタ８１と、スキャンフリップフロップ８２，８４と、増加回路８６とから構成されている。
【０１４２】
テスト信号ＣＡＭＴＥＳＴが“１”の場合には増加回路８６へとスキャンフリップフロップ８２，８４から経路が開かれ、クロック信号Ｔに同期してアドレスが発生する。ここでアドレスＸｉ（ｉ＝２・Ａ１＋Ａ０）として順次デコーダＤＣＤＲの出力Ｘ０，Ｘ２，Ｘ３，Ｘ１が択一的に活性化する。第１の手法において、どの列のメモリセルから順にアクセスしなければならないということはない。したがって、図４４のようにしてデコーダＤＣＤＲとワード線ＷＬｉとを接続しても良い。しかし、第０乃至第３列へとこの順にアクセスするのであれば、図４４のような接続はその要求を満足しない。このように隣接するワード線ＷＬｉが順次活性化されることは、後述する期待値生成回路を構成する際に望ましい。
【０１４３】
図４６は上記要求を満足させるためのデコーダＤＣＤＲとワード線ＷＬｉとの接続関係を示す。デコーダＤＣＤＲの出力は順次Ｘ０，Ｘ２，Ｘ３，Ｘ１と択一的に活性化するのであるから、これらがそれぞれワード線ＷＬ０，ＷＬ１，ＷＬ２，ＷＬ３をドライブするように接続すればよい。この場合、最終番地は“１”であり、これが第３列に対応する。
【０１４４】
図８及び図９に示された第１の手法は、図４０に示されたような、４列のメモリセルを有するＣＡＭにおいてのみ適用可能なのではなく、例えば１６列のメモリセルを有するＣＡＭにおいても適用することができる。その際にはデコーダＤＣＤＲには４ビットのアドレス信号Ａ３，Ａ２，Ａ１，Ａ０が与えられる。
【０１４５】
図４７は４ビットのアドレス信号Ａ３，Ａ２，Ａ１，Ａ０を生成するフィードバックシフトレジスタ型カウンタの構成を例示する回路図である。セレクタ８１、スキャンフリップフロップ７１，７２，７３，７４及び増加回路７５が図のように接続されている。スキャンフリップフロップ７１，７２，７３，７４はいずれも図７（ｂ）に示された構成を採ることができる。セレクタ８１はテスト信号ＣＡＭＴＥＳＴによって制御され、テスト信号ＣＡＭＴＥＳＴが“１”となるとスキャンフリップフロップ７１，７２，７３，７４及び増加回路７５がループを形成する。
【０１４６】
このように構成されたフィードバックシフトレジスタ型カウンタから得られたアドレス信号Ａ３，Ａ２，Ａ１，Ａ０に基づき、デコーダＤＣＤＲからは出力Ｘ０，Ｘ８，Ｘ１２，Ｘ１４，Ｘ１５，Ｘ７，Ｘ１１，Ｘ５，Ｘ１０，Ｘ１３，Ｘ６，Ｘ３，Ｘ９，Ｘ４，Ｘ２，Ｘ１（Ｘｋ：ｋ＝８・Ａ３＋４・Ａ２＋２・Ａ１＋Ａ０）が順次に択一的に活性化する。
【０１４７】
このような場合においても隣接するワード線ＷＬｉが順次活性化するためには、図４８に示すようにデコーダＤＣＤＲとワード線ＷＬｉとを接続する。デコーダＤＣＤＲの出力は順次出力Ｘ０，Ｘ８，Ｘ１２，Ｘ１４，Ｘ１５，Ｘ７，Ｘ１１，Ｘ５，Ｘ１０，Ｘ１３，Ｘ６，Ｘ３，Ｘ９，Ｘ４，Ｘ２，Ｘ１と択一的に活性化するのであるから、これらがそれぞれワード線ＷＬ０，ＷＬ１，ＷＬ２，…ＷＬ１５をドライブするように接続すればよい。この場合、最終番地は“１”であり、これが第１５列に対応する。
【０１４８】
（ｃ−１−２）期待値の生成．
実施の形態４．
第１の手法によって得られた列一致信号Ｚｉから故障を判断するためには、ＣＡＭが正常な場合に得られるべき列一致信号Ｚｉの値、即ち期待値を得ることが必要である。実施の形態４ではかかる期待値を列一致信号Ｚｉの生成と同期して得るための技術を説明する。実施の形態３と同様、列数ｎが４の場合を例に採って説明する。
【０１４９】
表３は各状態における期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３を時系列に纏めた論理値表である。これらの内容は列一致信号Ｚ０，Ｚ１，Ｚ２，Ｚ３として図１０乃至図３９に既に示されている。表中の矢印は、状態が循環する事を示している。
【０１５０】
【表３】
2006054052.tif 000005
【０１５１】
図４９は期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３を生成する期待値生成回路６０の構成を図示している。ここでは図４０に示されたライトパルスジェネレータＷＰＧ及びこれに入力する書き込み原信号ＷＥＣＤも併せて示している。また、期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３と列一致信号Ｚ０，Ｚ１，Ｚ２，Ｚ３とを比較するための比較回路７０も示している。
【０１５２】
期待値生成回路６０はインバータＩＮＶ５と、オア回路ＯＲＪ０，ＯＲＪ１，ＯＲＪ２と、アンド回路ＡＮＤ０，ＡＮＤ１，ＡＮＤ２，ＡＮＤ３とから構成されている。オア回路ＯＲＪ０，ＯＲＪ１，ＯＲＪ２のそれぞれの一方の入力端には、ワード線ＷＬ０，ＷＬ１，ＷＬ２をドライブするデコーダＤＣＤＲの出力が与えられる。例えば、アドレスカウンタＣＮＴＲとして図４３に記載されたものを用いれば、オア回路ＯＲＪ０，ＯＲＪ１，ＯＲＪ２のそれぞれの一方の入力端にはそれぞれ出力Ｘ０，Ｘ１，Ｘ２が与えられる。
【０１５３】
しかし、期待値生成回路６０の構成上、ワード線ＷＬ０，ＷＬ１，ＷＬ２，ＷＬ３はこの順に択一的に活性化することが望ましいので、アドレスカウンタＣＮＴＲとして図４５に記載されたものを用いる場合には、オア回路ＯＲＪ０，ＯＲＪ１，ＯＲＪ２のそれぞれの一方の入力端にはそれぞれ出力Ｘ０，Ｘ２，Ｘ３が与えられる。以下では簡単のため、アドレスカウンタＣＮＴＲとしては図４３に記載されたものを用いるとして説明するが、上記のようにアドレスカウンタＣＮＴＲとして図４５に記載されたものを用いても、ワード線ＷＬｉの接続を適切に行えばよい。
【０１５４】
オア回路ＯＲＪ０，ＯＲＪ１，ＯＲＪ２のそれぞれの他方の入力端には、それぞれオア回路ＯＲＪ１の出力Ｊ１、ＯＲＪ２の出力Ｊ２、出力Ｘ３（一般的にはワード線ＷＬ３をドライブする出力；もしもアドレスカウンタＣＮＴＲとして図４５に記載されたものを用いるのであれば、Ｘ１）が与えられる。
【０１５５】
アンド回路ＡＮＤ０，ＡＮＤ１，ＡＮＤ２，ＡＮＤ３のそれぞれの一方の入力端にはいずれにもインバータＩＮＶ５の出力が与えられている。インバータＩＮＶ５の入力としては書き込み原信号ＷＥＣＤが与えられている。また、アンド回路ＡＮＤ０，ＡＮＤ１，ＡＮＤ２，ＡＮＤ３のそれぞれの他方の入力端にはそれぞれオア回路ＯＲＪ０の出力Ｊ０、ＯＲＪ１の出力Ｊ１、ＯＲＪ２のＪ２、出力Ｘ３がそれぞれ与えられる。そして期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３はそれぞれアンド回路ＡＮＤ０，ＡＮＤ１，ＡＮＤ２，ＡＮＤ３から出力される。
【０１５６】
書き込みを行う周期では書き込み原信号ＷＥＣＤが“０”であり、期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３はそれぞれＪ０，Ｊ１，Ｊ２，Ｘ３となる。よって、ワード線ＷＬｉが活性化している場合にはＥｐ（ｉ≧ｐ）＝１、Ｅｑ（ｉ＜ｑ）＝０となる。
【０１５７】
一方、書き込みを行わない周期では書き込み原信号ＷＥＣＤが“１”であり、ワード線ＷＬｉのいずれが活性化しているかに依らず、期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３は全て“０”になる。
【０１５８】
以上のようにして表３に示された期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３を自動的に発生させることができる。
【０１５９】
比較回路７０はイクスクルーシブ・オア回路ＸＯＲＨ０，ＸＯＲＨ１，ＸＯＲＨ２，ＸＯＲＨ３から構成されている。イクスクルーシブ・オア回路ＸＯＲＨｉは列一致信号Ｚｉと期待値Ｅｉとを比較して、不一致／一致に対応してそれぞれ“１”／“０”を採る判定信号Ｈｉを出力する。
【０１６０】
比較回路７０はイクスクルーシブ・オア回路を用いることなく、図４及び図５で示されるようにＮＭＯＳトランジスタＮ３，Ｎ４，Ｎ５，Ｎ６及び抵抗Ｒｉからなる比較手段を用いて構成することもできる。
【０１６１】
図５０は期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３を生成する他の期待値生成回路６１の構成を図示している。期待値生成回路６１はリセット・セット・フリップフロップＲＳｉから構成されており、リセット・セット・フリップフロップＲＳｉのセット端Ｓは出力Ｘｉが与えられる（既述のようにアドレスカウンタＣＮＴＲとして図４５に記載されたものを用いるのであれば、図４６に示されるように出力Ｘｉとワード線ＷＬｉとの接続関係を変更する）。また、全てのリセット・セット・フリップフロップＲＳｉのリセット端Ｒにはリセット信号ＲＳＴとして書き込み原信号ＷＥＣＤが与えられる。期待値Ｅｉはリセット・セット・フリップフロップＲＳｉのＱ出力として得られる。
【０１６２】
書き込みを行う周期では書き込み原信号ＷＥＣＤが“０”であり、リセット・セット・フリップフロップＲＳｉは全てリセットはされていない。よって、リセット・セット・フリップフロップＲＳｉの出力たる期待値Ｅｉはデコーダ出力Ｘｉと一致する。これは書き込みを行わない周期に至って書き込み原信号ＷＥＣＤが“１”となるまで保持される。そして書き込み原信号ＷＥＣＤが“１”となることによってリセット・セット・フリップフロップＲＳｉは全てリセットされる。
【０１６３】
したがって、例えばワード線ＷＬ０，ＷＬ１，ＷＬ２，ＷＬ３がこの順に選択されれば、期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３の組は、（１，０，０，０）→（１，１，０，０）→（１，１，１，０）→（１，１，１，１）の順に変化し、表３に示された期待値Ｅｉが自動的に生成される。
【０１６４】
（ｃ−２）第２の手法．
実施の形態５．
第１の手法は、第１乃至第４のケースについて全てのメモリセルの故障を診断することができる点で優れているが、ＣＡＭのテスト手法には他の変形も可能である。
【０１６５】
図５１及び図５２はこの発明の第２の手法を示すフローチャートである。両図は接続子Ｊ２を介して連続する。
【０１６６】
図５３乃至図７６は第２の手法が施された場合の、スキャンフリップフロップＳＦＦ−ＤＩｊの記憶内容（入力信号ＤＩｊ）と、ＣＡＭ１００の連想メモリセルＣｉｊ（ｉ＝０，１，２，３；ｊ＝０，１，２）の記憶する内容を時系列に示す概念図であり、順次「ＳＴＡＴＥ−Ｂ−ｐ」（ｐ＝０〜２３）の状態が示されている。これらの図における数字の表し方は図１０乃至図３９に示されたものと同様である。
【０１６７】
ステップ９０１，９０２，９０３においてはそれぞれ第１の手法のステップ８０１，８０２，８０３と同じ処理がなされる。つまり全ての入力信号ＤＩｊに初期値として“０”を設定し、全てのｉ，ｊについて、連想メモリセルＣｉｊの記憶内容を初期値として“０”に設定する。図５３はここまでのステップ９０１，９０２が実行された状態を示す。そしてステップ９０３においてｊ＝０にし、スキャンフリップフロップＳＦＦ−ＤＩｊに対する処理のための初期化を行う。
【０１６８】
ステップ９０４において、入力信号ＤＩｊを反転する。既述のように、これは図３を用いて示されたインバータＩＮＶ１による帰還を行うことに対応している。よって、図５３の状態に対してステップ９０４を実行することは値“１”をシフトインすることと等価である。
【０１６９】
第１の手法とは異なり、第２の手法においてはステップ９０４において、第０列の連想メモリセルＣ０ｊへ入力信号ＤＩｊの書き込みもが行われる。図８及び図９においてと同様に、図５１及び図５２においても、太枠で示されたステップ９０４，９０６，９１２，９１４では、そのステップが実行されることによって確定した列一致信号Ｚｉをテストすることも行われる。図５４はステップ９０４が実行された状態を示す。
【０１７０】
その後ステップ９０５によってｉ＝１とし（列番号ｉの値を１増加させ）、ステップ９０６へと進む。ステップ９０６〜９０８の処理は第１の手法のステップ８０６〜８０８と同じであり、ある固定されたテストパターンＤＩｊを第１列から第３列に対応するメモリセルへ順次書き込んでゆき、列一致信号Ｚｉを得る。従って、図５５乃至図５７はそれぞれ図１３乃至図１５と同一の状態を呈している。
【０１７１】
その後、ステップ９０７において、ある固定されたテストパターンＤＩｊが最後の列に対応するメモリセルへ書き込まれたと判断されれば、ステップ９０９に進む。
【０１７２】
ステップ９０９において、最終行に対応するＤＩ（ｍ−１）（ここではＤＩ２）が更新の対象となったか否かが判断され、「否」と判断されればステップ９１０において列番号ｉの値を１増加させ、ステップ９０４へと戻る。
【０１７３】
ステップ９０４の実行によって図５８、図６２に示された状態が得られる。また、ステップ９０６の実行によって図５９乃至図６１、図６３乃至図６５に示された状態が得られる。図５９乃至図６１、図６３乃至図６５はそれぞれ図１８乃至図２０、図２３乃至図２５と同一の状態を呈している。
【０１７４】
ステップ９０４が実行された場合、入力信号ＤＩｊの更新と連想メモリセルＣ０ｊへの書き込みとが同じクロックサイクルで行われ、このときの列一致信号Ｚ０は必ず“１”となる。よって第０列においてケース２，４における診断はなされても、ケース１，３における診断がなされることはない。他の第１乃至第３列においてはケース１，２における診断がなされる。
【０１７５】
ステップ９１１〜９１８においては、ある固定されたテストパターンＤＩｊを第３列から第０列に対応するメモリセルへ順次書き込んでゆく。まずステップ９１１においてｊ＝０にし、スキャンフリップフロップＳＦＦ−ＤＩｊに対する処理のための初期化を行う。但し、このときテストパターン（ＤＩｊの組）は（１，１，１）である。
【０１７６】
その後、ステップ９１２において、テストパターンの更新を行うと共に、最終列（ｉ＝ｎ−１；ここでは３）に対応するメモリセルへその更新されたテストパターンを書き込む。ステップ９１２の実行によって図６６、図７０、図７４に示された状態が得られる。
【０１７７】
その後、ステップ９１３によってｉ＝ｎ−２とし（列番号ｉの値を１減少させ）、ステップ９１４へと進む。ステップ９１４の処理はステップ９０６と同じであり、ある固定されたテストパターンＤＩｊを選択された列に対応するメモリセルへ順次書き込んでゆき、列一致信号Ｚｉを得る。但し、ステップ９１５，９１６によって、選択される列の順序はステップ９０６〜９０８のそれとは逆になる。ステップ９１４の実行によって図６７乃至図６９、図７１乃至図７３、図７５及び図７６並びに図５３に示された状態が得られる。
【０１７８】
ステップ９１１〜９１８においては、入力信号ＤＩｊの更新と連想メモリセルＣ３ｊへの書き込みとが、同じクロックサイクルで行われるので、このときの列一致信号Ｚ３は必ず“１”となる。従って、第３列においてケース２，４は診断されても、ケース１，３における診断がなされることはない。しかし他の第０乃至第２列においてはケース３，４における診断がなされる。また、ステップ９０３〜９１０においては第３列においてケース１，２における診断がなされている。
【０１７９】
このように第２の手法においては、テストパターンの更新とともにメモリセルへの書き込みを行うことで、第１の手法に比べて少ないクロックサイクルで診断を行うことができるが、第０列に対してケース１における診断はされず、第３列に対してケース４における診断はされない。
【０１８０】
そのようなケースについても診断を行う場合には、ステップ９０１，９０２において与えられる初期値を“１”にし、或いはテストパターンの更新とともに書き込まれるメモリセルがどの列に対応するかということを変更して、図５１及び図５２に示された処理を再度繰り返す必要がある。
【０１８１】
（ｃ−２−１）第２の手法を実行するための回路．
前駆的思想において図１及び図２で示された回路でも、スキャン入力信号ＳＩＤＩが適切なテストパターンを採り、シフトインすることによっても図５１及び図５２に示された第２の手法を行うこともできる。しかし、入力信号ＤＩｊの内容をＣＡＭ１００に書き込む際にはその値を保持する必要があり、スキャンフリップフロップとしては図７に示されたホールド機能付きのものを用いることが望ましい。さもないと、ホールド動作を行うためにはクロック信号Ｔを適切に制御する必要がある。
【０１８２】
以下に示すのは、第２の手法を、適切なテストパターンを自動的に生成することで実行する回路の例である。
【０１８３】
実施の形態６．
図７７は第２の手法を実現するＣＡＭテスト回路の構成を示す回路図である。ここではテストされるべきＣＡＭ１００が、入力信号のビット数（行の数）ｍが３、列の数ｎが４の場合を例示している。図４０で示された回路と同様に、ＣＡＭ１００のテストに直接関係のない部分は省略されている。
【０１８４】
アドレス信号Ａ０，Ａ１はアドレスカウンタＵＤＣＮＴＲによって発生される。このアドレスカウンタは少なくともＣＡＭテスト時においてはアップダウンカウント動作を行う。アドレスカウンタＵＤＣＮＴＲにはダウン信号ＤＭＯＤＥが与えられ、これが“０”，“１”の値を採ることに対応して、それぞれアップカウント、ダウンカウントを行う。但し、カウント動作中であっても図示されないクロック信号Ｔの遷移に依らず、アドレスホールド信号ＨＯＬＤ−ＡはアドレスカウンタＵＤＣＮＴＲの値を保持させる。アドレスホールド信号ＨＯＬＤ−Ａとしては、アドレスホールド原信号ＨＬＤＡまたはアンド回路ＡＮＤ−ＨＡの出力が、セレクタＳＥＬ４によって採用される。
【０１８５】
また、ここで例示されたアドレスカウンタＵＤＣＮＴＲはスキャンアドレス入力ＳＩＡＡによってその保持する値を更新する事ができる。スキャンアドレス入力ＳＩＡＡとしてはスキャンアドレス入力原信号ＳＩＡまたは書き込み原信号ＷＥＣＤが、セレクタＳＥＬ７によって採用される。
【０１８６】
最終番地検出回路ＬＡＤＥＴ、初期番地検出回路ＦＡＤＥＴは、アドレス信号Ａ０，Ａ１を入力する。アルゴリズム上の最終番地が検出された場合には最終番地検出信号ＬＡを“１”にし、アルゴリズム上の初期番地が検出された場合には初期番地検出信号ＦＡを“１”にする。例えば最終番地としてＡ０＝Ａ１＝１が、初期番地としてＡ０＝Ａ１＝０がそれぞれ指定される。
【０１８７】
ライトイネーブル信号ＷＥはライトパルスジェネレータＷＰＧによって生成される。ライトイネーブル信号ＷＥはスキャンフリップフロップＳＦＦＷから出力される書き込み原信号ＷＥＣＤが“Ｌ”である場合に、クロック信号Ｔに同期して遷移する。
【０１８８】
スキャンフリップフロップＳＦＦＷにはセレクタＳＥＬ６を介してスキャン書き込み信号ＳＩＷ、または統一スキャン入力ＳＩＣＡＭが与えられる。
【０１８９】
図４０に示された回路と同様に、スキャンフリップフロップＳＦＦ−ＤＩ０，ＳＦＦ−ＤＩ１，ＳＦＦ−ＤＩ２はこの順に、スキャン出力端ＳＯとスキャン入力端ＳＩとが直列に接続されている。スキャンフリップフロップＳＦＦ−ＤＩ２のスキャン出力端ＳＯはインバータＩＮＶ１の入力端に接続され、スキャンフリップフロップＳＦＦ−ＤＩ０のスキャン入力端ＳＩはセレクタＳＥＬ１，ＳＥＬ８を介してインバータＩＮＶ１の出力端に接続されている。
【０１９０】
スキャンフリップフロップＳＦＦ−ＤＩｊのいずれの端子ＨＬＤにも入力ホールド信号ＨＯＬＤ−ＤＩが与えられており、これが“１”となることによってスキャンフリップフロップＳＦＦ−ＤＩｊはその記憶内容がクロック信号Ｔの遷移に依らずに保持される。
【０１９１】
入力ホールド信号ＨＯＬＤ−ＤＩとしては、セレクタＳＥＬ３を介して入力ホールド原信号ＨＬＤＤＩ、または特定番地検出信号ＤＥＴを反転した信号のいずれかが採用される。特定番地検出信号ＤＥＴの反転はインバータＩＮＶ３によって行われる。
【０１９２】
特定番地検出信号ＤＥＴはセレクタＳＥＬ５から出力される。セレクタ５の０−入力端には最終番地検出信号ＬＡが、１−入力端には初期番地検出信号ＦＡが、それぞれ与えられている。
【０１９３】
セレクタＳＥＬ１，ＳＥＬ３，ＳＥＬ４はテスト信号ＣＡＭＴＥＳＴによって、セレクタＳＥＬ５はダウン信号ＤＭＯＤＥによって、セレクタＳＥＬ６〜ＳＥＬ８はスキャンパス制御信号ＭＥＭＴによって、それぞれ制御される。
【０１９４】
ダウン信号ＤＭＯＤＥはイクスクルーシブ・オア回路ＸＯＲ１，ＸＯＲ２、アンド回路ＡＮＤ−ＵＰによって、テスト信号ＣＡＭＴＥＳＴ、入力信号ＤＩ０、セレクタＳＥＬ１の出力、リバース信号ＲＥＶに基づいて生成される。
【０１９５】
イクスクルーシブ・オア回路ＸＯＲ１には入力信号ＤＩ０と、セレクタＳＥＬ１の出力とが与えられ、これらの排他的論理和がアンド回路ＡＮＤ−ＨＡの一方の入力端に与えられる。
【０１９６】
アンド回路ＡＮＤ−ＨＡの他方の入力端には特定番地検出信号ＤＥＴが与えられ、イクスクルーシブ・オア回路ＸＯＲ１の出力と、特定番地検出信号ＤＥＴの論理積が、セレクタＳＥＬ４の１−入力端に与えられる。
【０１９７】
アンド回路ＡＮＤ−ＵＰにはテスト信号ＣＡＭＴＥＳＴと入力信号ＤＩ０とが与えられ、これらの論理積がイクスクルーシブ・オア回路ＸＯＲ２の一方の入力端に与えられる。
【０１９８】
イクスクルーシブ・オア回路ＸＯＲ２の他方の入力端にはリバース信号ＲＥＶが与えられる。そしてイクスクルーシブ・オア回路ＸＯＲ２の出力がダウン信号ＤＭＯＤＥとしてセレクタＳＥＬ５及びアドレスカウンタＵＤＣＮＴＲに与えられる。
【０１９９】
リバース信号ＲＥＶは、第２の手法において、列番号を増加させる手順と、列番号を減少させる手順とのいずれを先に行うかを決定するものであり、以下の説明では“１”を採るものとする。“０”を採る場合には列番号を減少させる手順が列番号を増加させる手順に先行する。
【０２００】
表４は図７７に示された回路動作をクロック信号Ｔの周期毎に示す各信号の論理値表である。表４には図４で示されたデータ出力ＤＯｊ、列一致信号Ｚｉも併記されている。
【０２０１】
【表４】
2006054052.tif 000006
【０２０２】
図７７に示された回路においても、図４１に示されたタイミングチャートに基づいて動作する。
【０２０３】
ステップ９０１，９０２における動作はステップ８０１，８０２と同様である。そしてテスト信号ＣＡＭＴＥＳＴが“０”を採る場合には、スキャンパス制御信号ＭＥＭＴが“１”であればアドレスカウンタＵＤＣＮＴＲはスキャンアドレス入力ＳＩＡＡによって決定されるアドレス信号Ａ１，Ａ０を出力し、書き込み原信号ＷＥＣＤとしてはセレクタＳＥＬ６、スキャンフリップフロップＳＦＦＷを介してスキャン書き込み信号ＳＩＷが採用され、スキャンフリップフロップＳＦＦ−ＤＩ０へのシフト入力にはセレクタＳＥＬ１を介してスキャン入力信号ＳＩＤＩが採用される。従って、第０周期乃至第８周期までの信号の論理値は、表１のそれと同一である。ステップ９０１，９０２が実行された後の状態が図５３に示されている。
【０２０４】
勿論、図７７に示された回路においても、図４０に示された回路と同様にして、スキャンパス制御信号ＭＥＭＴが“０”である場合に一つのスキャンパスが形成され、統一スキャン入力ＳＩＣＡＭによって必要な論理値を伝達させることができる。
【０２０５】
次にステップ９０３の準備が第９及び第１０周期において行われる。まだテスト信号ＣＡＭＴＥＳＴは“０”であり、スキャン書き込み信号ＳＩＷとして“１”が設定され、ライトイネーブル信号ＷＥが“０”であってＣＡＭ１００への書き込みが禁止されている。入力ホールド原信号ＨＬＤＤＩがセレクタＳＥＬ３によって入力ホールド信号ＨＯＬＤ−ＤＩとして各スキャンフリップフロップＳＦＦ−ＤＩｊに与えられており、その値は“１”に設定されてテストパターンの更新は許可されていない。このような状態で、スキャン信号ＳＩＡとして順次“１”（第９周期），“０”（第１０周期）を与え、第１列目のワード線ＷＬ１を選択する。
【０２０６】
このように、初期番地とすべき値（ステップ９０３にいう、ｊ＝０）よりも１だけ大きな番地を予め指定するのは以下の理由による。
【０２０７】
ステップ９０３〜９１０では列番号ｉを順次増加させるフローであり、ステップ９１１〜９１８では列番号ｉを順次減少させるフローである。従って、これらのフローを回路の動作によって実現する場合、列番号ｉを増加させるフローと、減少させるフローとを交互に実行するように当該回路が構成される。換言すれば、列番号ｉを増加させるフローの直前においては（初期状態を設定する時点では）列番号ｉを減少させる回路動作が行われる。このような事情に鑑みて第９及び第１０周期においてはアドレス信号Ａ１，Ａ０をそれぞれ“０”，“１”に設定している。
【０２０８】
第１１周期乃至第３５周期においてＣＡＭ１００のテストが行われる。テスト信号ＣＡＭＴＥＳＴは、ＣＡＭ１００のテストを行う場合には“１”をとる。第２の手法においては全てのクロックサイクルにおいてＣＡＭ１００への書き込みが行われるので、スキャン書き込み信号ＳＩＷは常に“０”を採っている。
【０２０９】
今リバース信号ＲＥＶの値を“１”としているので、イクスクルーシブ・オア回路ＸＯＲ２の出力であるダウン信号ＤＭＯＤＥは、アンド回路ＡＮＤ−ＵＰの出力とは逆の論理値を採る。アンド回路ＡＮＤ−ＵＰの出力は、テスト信号ＣＡＭＴＥＳＴが“１”の場合においては入力信号ＤＩ０の値を伝達する。よって、第１１周期乃至第３５周期の全てにおいて、ダウン信号ＤＭＯＤＥは入力信号ＤＩ０とは逆の論理値を採る。つまり、入力信号ＤＩ０が“１”であればアドレスカウンタＵＤＣＮＴＲはアップカウンタとして機能して列番号ｉを増加させ、入力信号ＤＩ０が“０”であればアドレスカウンタＵＤＣＮＴＲはダウンカウンタとして機能して列番号ｉを減少させる。
【０２１０】
そして、セレクタＳＥＬ５の選択により、列番号ｉが増加している際には初期番地検出信号ＦＡが検出されたか、列番号ｉが減少している際には最終番地検出信号ＬＡが検出されたかが、特定番地検出信号ＤＥＴによって判断される。よって特定番地検出信号ＤＥＴが“１”になったということは、ある特定のテストパターンが全ての列に対応するメモリセルに書き込まれたことを意味している。
【０２１１】
ある特定のテストパターンが全てのメモリセルに書き込まれたのであれば、テストパターンの更新を行う（第１１周期、第１５期、第１９周期、第２３周期、第２７周期、第３１周期、第３５周期）。スキャンフリップフロップＳＦＦ−ＤＩｊの更新の許可／禁止を決定すべく、特定番地検出信号ＤＥＴをインバータＩＮＶ３によって論理を反転した入力ホールド信号ＨＯＬＤ−ＤＩがスキャンフリップフロップＳＦＦ−ＤＩｊに与えられる。
【０２１２】
イクスクルーシブ・オア回路ＸＯＲ１の出力は、入力信号ＤＩ０のある時点での値と、次に更新されるべき値とが一致していない場合において“１”となる。換言すれば、ある時点におけるテストパターンの値が（１，ｘ，１）または（０，ｘ，０）である場合に“１”となる。アンド回路ＡＮＤ−ＨＡの出力は特定番地検出信号ＤＥＴとイクスクルーシブ・オア回路ＸＯＲ１の出力との論理積を採り、これがアドレスホールド信号ＨＯＬＤ−ＡとしてセレクタＳＥＬ４において選択されるので、以下の２つの場合においてのみ、アドレスカウンタＵＤＣＮＴＲのアドレス信号Ａ１，Ａ０の更新が禁止される。
【０２１３】
・“１”がスキャンフリップフロップＳＦＦ−ＤＩｊにシフトインされる場合において、テストパターンが（１，１，１）となり、且つ最終番地ＬＡが検出された場合（第２３周期）。
【０２１４】
・“０”がスキャンフリップフロップＳＦＦ−ＤＩｊにシフトインされる場合において、テストパターンが（０，０，０）となり、且つ初期番地ＦＡが検出された場合（第３５周期）。
【０２１５】
このようなアドレス信号Ａ１，Ａ０の更新の禁止によって、ステップ９０７においてｉ＝ｎ−１と判断された後、引き続いてステップ９１２において第（ｎ−１）列に対する書き込みを行うことができる。
【０２１６】
第１２周期乃至第１５周期はステップ９０４及び図５４乃至図５７に、第１６周期乃至第２３周期はステップ９０６及び図５８乃至図６５に、第２４周期乃至第２７周期はステップ９１２及び図６６乃至図６９に、第２８周期乃至第３５周期はステップ９１４並びに図７０乃至図７６及び図５３に、それぞれ対応している。第１１周期は第３５周期と同一である。
【０２１７】
図７８は第２の手法を実現するＣＡＭテスト回路の他の構成を示す回路図である。ここでは最終番地検出信号ＬＡを、最終番地検出回路ＬＡＤＥＴを用いて得るのではなく、最終番地に相当する列、ここでは第３列のワード線ＷＬ３に与えられる値から得ている。また初期番地検出信号ＦＡを、初期番地検出回路ＦＡＤＥＴを用いて得るのではなく、初期番地に相当する列、ここでは第０列のワード線ＷＬ０に与えられる値から得ている。またこのようにしても図７７に示された回路と同様の動作を行うことは明白である。
【０２１８】
第１の手法の場合と類似して、アドレスカウンタＵＤＣＮＴＲとしてはバイナリアップダウンカウンタやフィードバックシフトレジスタ型アップダウンカウンタを用いることができる。またグレイコードカウンタを用いることもできる。
【０２１９】
図７９はアドレスカウンタＵＤＣＮＴＲとしてバイナリアップダウンカウンタを採用した場合の構成を例示する回路図である。図７９に示された構成は、図４３で示されたバイナリカウンタの増加回路８５を増減回路４１に置換した構成を有しており、増減回路４１は増加回路８５にイクスクルーシブ・オア回路を追加した構成を有している。このイクスクルーシブ・オア回路の一方の入力端にはダウン信号ＤＭＯＤＥが与えられる。
【０２２０】
テスト信号ＣＡＭＴＥＳＴが“１”の場合には増減回路４１へとスキャンフリップフロップ８２，８４から経路が開かれる。ダウン信号ＤＭＯＤＥが“０”の場合には増減回路４１は増加回路８５と同様に動作し、クロック信号Ｔに同期してアドレスが増加する。ここでアドレスＸｉ（ｉ＝２・Ａ１＋Ａ０）としては、順次デコーダＤＣＤＲの出力Ｘ０，Ｘ１，Ｘ２，Ｘ３が得られる。
【０２２１】
ダウン信号ＤＭＯＤＥが“１”の場合には増減回路４１のイクスクルーシブ・オア回路はインバータとして機能するので、クロック信号Ｔに同期してアドレスが減少し、順次デコーダＤＣＤＲの出力Ｘ３，Ｘ２，Ｘ１，Ｘ０が得られる。
【０２２２】
従って、デコーダＤＣＤＲからの出力Ｘｉはそれぞれワード線ＷＬｉと接続すればよい。図８０はそのような場合のデコーダＤＣＤＲとワード線ＷＬｉとの接続関係を示している。
【０２２３】
図７８と同様にして、最終番地検出信号ＬＡはワード線ＷＬ３に与えられる信号から得ている。また、初期番地検出信号ＦＡはワード線ＷＬ０に与えられる信号から得ている。図４４において示されたのと同様に、最終番地検出信号ＬＡをワード線ＷＬ３に与えられている信号そのものではなく、ワード線ドライバＷＬＤに関してデコーダＤＣＤＲ側にある出力Ｘ３から採っている。また、これと類似して初期番地検出信号ＦＡをワード線ＷＬ０に与えられている信号そのものではなく、ワード線ドライバＷＬＤに関してデコーダＤＣＤＲ側にある出力Ｘ０から採っている。このような信号の採取の理由は、各ワード線ＷＬ０，ＷＬ３において故障が生じていても、正常な最終番地検出信号ＬＡ、初期番地検出信号ＦＡを得ることができるようにするためである。
【０２２４】
図８１はアドレスカウンタＵＤＣＮＴＲとして２ビットのフィードバックシフトレジスタ型カウンタを採用した場合の構成を例示する回路図である。図８１に示された構成は、図７９で示されたバイナリカウンタの増減回路４１を増減回路４２に置換した構成を有している。増減回路４２は、いずれもダウン信号ＤＭＯＤＥによって制御される２つのセレクタと、２つのインバータとから構成されている。
【０２２５】
ダウン信号ＤＭＯＤＥが“０”を採る場合にはテスト信号ＣＡＭＴＥＳＴの採る値に拘らず、スキャンフリップフロップ８２のスキャン出力端ＳＯがスキャンフリップフロップ８４のスキャン入力端ＳＩに接続される。よって、この場合には増減回路４２は増加回路８６と同様に動作する。即ち、テスト信号ＣＡＭＴＥＳＴが“１”の場合にはクロック信号Ｔに同期して順次デコーダＤＣＤＲの出力Ｘ０，Ｘ２，Ｘ３，Ｘ１が択一的に活性化する。
【０２２６】
逆にダウン信号ＤＭＯＤＥが“１”を採る場合、テスト信号ＣＡＭＴＥＳＴが“１”であればクロック信号Ｔに同期して順次デコーダＤＣＤＲの出力Ｘ０，Ｘ２，Ｘ３，Ｘ１が択一的に活性化する。
【０２２７】
第２の手法においても第１の手法と同様に、どの列のメモリセルから順にアクセスしなければならないということはない。しかし、第０乃至第３列へとこの順にアクセスするのであれば、図８２に示されるように、デコーダＤＣＤＲの出力Ｘ０，Ｘ２，Ｘ３，Ｘ１が、それぞれワード線ＷＬ０，ＷＬ１，ＷＬ２，ＷＬ３をドライブするように接続すればよい。この場合、最終番地は“１”であり、これが第３列に対応する。また、初期番地の次に増加する番地は“２”である。従って、アドレスカウンタＵＤＣＮＴＲとして図８１のフィードバックシフトレジスタ型カウンタを採用した場合、表４の第９及び第１０周期においてはアドレス信号Ａ１，Ａ０としてそれぞれ“１”，“０”を与える必要がある。
【０２２８】
第２の手法においても、第１の手法と同様に、１６列のメモリセルを有するＣＡＭにおいても適用することができる。その際にはデコーダＤＣＤＲには４ビットのアドレス信号Ａ３，Ａ２，Ａ１，Ａ０が与えられる。
【０２２９】
図８３は４ビットのアドレス信号Ａ３，Ａ２，Ａ１，Ａ０を生成するフィードバックシフトレジスタ型カウンタの構成を例示する回路図である。セレクタ８１，３１，３２，３３，３４、スキャンフリップフロップ５１，５２，５３，５４及び増減回路４３が図のように接続されている。スキャンフリップフロップ５１，５２，５３，５４はいずれも図７（ｂ）に示された構成を採ることができる。セレクタ８１はテスト信号ＣＡＭＴＥＳＴによって制御され、テスト信号ＣＡＭＴＥＳＴが“１”となるとスキャンフリップフロップ５１，５２，５３，５４及び増減回路４３がセレクタ３１，３２，３３，３４を介して互いに接続される。セレクタ３１，３２，３３，３４はいずれもダウン信号ＤＭＯＤＥによって制御される。
【０２３０】
ダウン信号ＤＭＯＤＥが“０”の場合にはスキャンフリップフロップ５１のスキャン出力端ＳＯをスキャンフリップフロップ５２のスキャン入力端ＳＩに、スキャンフリップフロップ５２のスキャン出力端ＳＯをスキャンフリップフロップ５３のスキャン入力端ＳＩに、スキャンフリップフロップ５３のスキャン出力端ＳＯをスキャンフリップフロップ５４のスキャン入力端ＳＩに、それぞれ接続する。このとき増減回路４３は増加回路７５と同等の機能を果たし、アドレス信号Ａ３，Ａ２，Ａ１，Ａ０に基づき、デコーダＤＣＤＲからは出力Ｘ０，Ｘ８，Ｘ１２，Ｘ１４，Ｘ１５，Ｘ７，Ｘ１１，Ｘ５，Ｘ１０，Ｘ１３，Ｘ６，Ｘ３，Ｘ９，Ｘ４，Ｘ２，Ｘ１（Ｘｋ：ｋ＝８・Ａ３＋４・Ａ２＋２・Ａ１＋Ａ０）が順次に択一的に活性化する。
【０２３１】
ダウン信号ＤＭＯＤＥが“１”の場合にはスキャンフリップフロップ５４のスキャン出力端ＳＯをスキャンフリップフロップ５３のスキャン入力端ＳＩに、スキャンフリップフロップ５３のスキャン出力端ＳＯをスキャンフリップフロップ５２のスキャン入力端ＳＩに、スキャンフリップフロップ５２のスキャン出力端ＳＯをスキャンフリップフロップ５１のスキャン入力端ＳＩに、それぞれ接続する。このとき生成されるアドレス信号Ａ３，Ａ２，Ａ１，Ａ０に基づき、デコーダＤＣＤＲからは出力Ｘ１，Ｘ２，Ｘ４，Ｘ９，Ｘ３，Ｘ６，Ｘ１３，Ｘ１０，Ｘ５，Ｘ１１，Ｘ７，Ｘ１５，Ｘ１４，Ｘ１２，Ｘ８，Ｘ０が順次に択一的に活性化する。
【０２３２】
このような場合においても隣接するワード線ＷＬｉが順次活性化するためには、図８４に示すようにデコーダＤＣＤＲとワード線ＷＬｉとを接続する。デコーダＤＣＤＲの出力Ｘ０，Ｘ８，Ｘ１２，Ｘ１４，Ｘ１５，Ｘ７，Ｘ１１，Ｘ５，Ｘ１０，Ｘ１３，Ｘ６，Ｘ３，Ｘ９，Ｘ４，Ｘ２，Ｘ１がそれぞれワード線ＷＬ０，ＷＬ１，ＷＬ２，…ＷＬ１５をドライブするように接続すればよい。この場合、最終番地は“１”であり、これが第１５列に対応する。また、初期番地の次に増加する番地は“８”である。従って、アドレスカウンタＵＤＣＮＴＲとして図８１のフィードバックシフトレジスタ型カウンタを採用した場合、テスト信号ＣＡＭＴＥＳＴを“１”にする直前において、アルゴリズム上では第８番地を設定しておく必要がある。
【０２３３】
（ｃ−２−２）期待値の生成．
実施の形態７．
第２の手法に対応する期待値を、列一致信号Ｚｉの生成と同期して得るための技術を説明する。実施の形態３と同様、列数ｎが４の場合を例に採って説明する。
【０２３４】
表５は各状態における期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３を時系列に纏めた論理値表である。これらの内容は列一致信号Ｚ０，Ｚ１，Ｚ２，Ｚ３として図５３乃至図７６に既に示されている。表中の矢印は、状態が循環する事を示している。
【０２３５】
【表５】
2006054052.tif 000007
【０２３６】
図８５は期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３を生成する期待値生成回路６２の構成を図示している。ここでは図７７に示された特定番地検出信号ＤＥＴを得る部分及びライトイネーブル信号ＷＥをも併せて示している。また、期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３と列一致信号Ｚ０，Ｚ１，Ｚ２，Ｚ３とを比較するための比較回路７０も示している。なお、最終番地検出回路ＬＡＤＥＴ，初期番地検出回路ＦＡＤＥＴの代わりにワード線ＷＬ３，ＷＬ０に対応するデコーダ出力を用いても良い。
【０２３７】
期待値生成回路６２はフリップフロップＦＦ１と、期待値生成回路６１と、オア回路ＯＲＥ０，ＯＲＥ３と、インバータＩＮＶ６とから構成されている。期待値生成回路６１は図５０において説明されたものと同一である。
【０２３８】
リセット・セット・フリップフロップＲＳｉのセット端には出力Ｘｉが与えられる（既述のようにデコーダＤＣＤＲとして図８０に記載されたものを用いるのであれば、図８１に示されるように出力Ｘｉとワード線ＷＬｉとの接続関係を変更する）。また、全てのリセット・セット・フリップフロップＲＳｉのリセット端にはリセット信号ＲＳＴとして特定番地検出信号ＤＥＴをフリップフロップＦＦ１でクロックサイクル１つ分遅らせた信号が与えられる。
【０２３９】
オア回路ＯＲＥ０の一方の入力端にはダウン信号ＤＭＯＤＥの反転が、他方の入力端にはリセット・セット・フリップフロップＲＳ０のＱ出力が、それぞれ与えられる。またオア回路ＯＲＥ３の一方の入力端にはダウン信号ＤＭＯＤＥが、他方の入力端にはリセット・セット・フリップフロップＲＳ３のＱ出力が、それぞれ与えられる。そして期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３はそれぞれオア回路ＯＲＥ０の出力、リセット・セット・フリップフロップＲＳ１のＱ出力、リセット・セット・フリップフロップＲＳ２のＱ出力、オア回路ＯＲＥ３の出力として得ることができる。
【０２４０】
期待値生成回路６２の構成上、ワード線ＷＬ０，ＷＬ１，ＷＬ２，ＷＬ３はこの順に択一的に活性化することが望ましいので、アドレスカウンタＵＤＣＮＴＲとして図８１に記載されたものを用いる場合には、リセット・セット・フリップフロップＲＳ０，ＲＳ１，ＲＳ２，ＲＳ３のそれぞれのセット端にはそれぞれ出力Ｘ０，Ｘ２，Ｘ３，Ｘ１が与えられる。以下では簡単のため、アドレスカウンタＵＤＣＮＴＲとして図７９に記載されたものを用いるとして説明するが、上記のようにアドレスカウンタＵＤＣＮＴＲとして図８１に記載されたものを用いても、ワード線ＷＬｉの接続を適切に行えばよい。
【０２４１】
オア回路ＯＲＥ０及びインバータＩＮＶ６はアドレスカウンタＵＤＣＮＴＲがアップカウントを行う際（ＤＭＯＤＥ＝０）に期待値Ｅ０を強制的に“１”にする為に設けられている。またオア回路ＯＲＥ３はアドレスカウンタＵＤＣＮＴＲがダウンカウントを行う際（ＤＭＯＤＥ＝１）にＥ３を強制的に“１”にする為にもうけられている。
【０２４２】
テスト信号ＣＡＭＴＥＳＴが“１”になる直前には初期番地の次の番地が指定されている（第１０周期）。ここではアドレス信号Ａ１，Ａ０としてそれぞれ“０”，“１”が与えられていたので、特定番地検出信号ＤＥＴは“０”であって、フリップフロップＦＦ１には値“０”が与えられている。従って、テスト信号ＣＡＭＴＥＳＴが“１”になった直後（第１１周期）では、リセット信号ＲＳＴが与えられない。このため、表５におけるＳＴＡＴＥ−Ｂ−０での期待値を第１１周期で得ることはできない。ＳＴＡＴＥ−Ｂ−０での期待値を得る状態については後述する。
【０２４３】
しかし、ＳＴＡＴＥ−Ｂ−１以降での期待値を得ることは、以下のようにして可能である。第１１周期において入力信号ＤＩ０は“０”であり、リバース信号ＲＥＶが“１”の場合ではダウン信号ＤＭＯＤＥは“１”となる。よってセレクタＳＥＬ５は特定番地検出信号ＤＥＴとして初期番地検出信号ＦＡを出力する。そしてこのときには初期番地が指定されるので、特定番地検出信号ＤＥＴが“１”となり、これはフリップフロップＦＦ１に記憶される。
【０２４４】
特定番地検出信号ＤＥＴが“１”となった次のクロックサイクルでリセット信号ＲＳＴが“１”となるので、リセット・セット・フリップフロップＲＳｉは全てリセットされ、それぞれの出力は“０”となる。つまり、第１２周期においてＳＴＡＴＥ−Ｂ−１での期待値を得ることができる。
【０２４５】
第１２周期において入力信号ＤＩ０は“１”であり、ダウン信号ＤＭＯＤＥは“０”となる。従って、次に入力信号ＤＩ０は“０”になるまでは、インバータＩＮＶ６の機能によってＥ０は“０”の値を取り続ける。
【０２４６】
リセット信号ＲＳＴが“０”を採るクロックサイクルでは、選択されたワード線ＷＬｉに対応するリセット・セット・フリップフロップＲＳｉの出力Ｅｉが１になり、次にリセット信号ＲＳＴが“１”となってリセットされるまで保持される。
【０２４７】
例えば、ワード線がＷＬ０→ＷＬ１→ＷＬ２→ＷＬ３の順でアクセスされた場合、期待値の組（Ｅ０，Ｅ１，Ｅ２，Ｅ３）の値は（１，０，０，０）→（１，１，０，０）→（１，１，１，０）→（１，１，１，１）の順で変化する。逆にワード線がＷＬ３→ＷＬ２→ＷＬ１→ＷＬ０の順でアクセスされた場合、期待値の組（Ｅ０，Ｅ１，Ｅ２，Ｅ３）の値は（０，０，０，１）→（０，０，１，１）→（０，１，１，１）→（１，１，１，１）の順で変化する。このようにして表５に示された期待値Ｅｉのうち、ＳＴＡＴＥ−Ｂ−１〜２３までに対応するものが自動的に生成される。そして、ＳＴＡＴＥ−Ｂ−２３に示された状態の次にはＳＴＡＴＥ−Ｂ−０に示された状態が得られることになり、結局表５に示された期待値Ｅｉが全て自動的に生成されることになる。
【０２４８】
図８６は期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３を生成する他の期待値生成回路６３の構成を図示している。ここでは図７７に示された特定番地検出信号ＤＥＴを得る部分及びライトイネーブル信号ＷＥをも併せて示している。また、期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３と列一致信号Ｚ０，Ｚ１，Ｚ２，Ｚ３とを比較するための比較回路７０も示している。なお、最終番地検出回路ＬＡＤＥＴ、初期番地検出回路ＦＡＤＥＴの代わりにワード線ＷＬ３，ＷＬ０に対応するデコーダ出力を用いても良い。
【０２４９】
期待値生成回路６３はフリップフロップＦＦ１と、期待値生成回路６１と、インバータＩＮＶＥ０，ＩＮＶＥ３とから構成されている。リセット・セット・フリップフロップＲＳｉのセット端には出力Ｘｉが与えられる（既述のようにデコーダＤＣＤＲとして図８０に記載されたものを用いるのであれば、図８１に示されるように出力Ｘｉとワード線ＷＬｉとの接続関係を変更する）。また、全てのリセット・セット・フリップフロップＲＳｉのリセット端にはリセット信号ＲＳＴとして特定番地検出信号ＤＥＴをフリップフロップＦＦ１でクロックサイクル１つ分遅らせた信号が与えられる。
【０２５０】
インバータＩＮＶＥ０，ＩＮＶＥ３の入力端にはそれぞれリセット・セット・フリップフロップＲＳ０，ＲＳ３のＱバー出力が与えられ、期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３はそれぞれインバータＩＮＶＥ０の出力、リセット・セット・フリップフロップＲＳ１のＱ出力、リセット・セット・フリップフロップＲＳ２のＱ出力、インバータＩＮＶＥ３の出力として得られる。
【０２５１】
ダウン信号ＤＭＯＤＥが“０”の場合、最終番地検出信号ＬＡが“１”（例えばＷＬ３が選択されるべく出力Ｘ３が“１”となる場合。以下同様にして、主としてデコーダＤＣＤＲとして図７９に記載されたものを用いる場合について説明するが、図８０に記載されたものを用いることもできる。その場合には既述のように図８１に示されるように出力Ｘｉとワード線ＷＬｉとの接続関係を変更することになる。）となった次のクロックサイクルではリセット信号ＲＳＴが“１”となってリセット・セット・フリップフロップＲＳ１，ＲＳ２，ＲＳ３がリセットされる。また、出力Ｘ０が“１”であるのでリセット・セット・フリップフロップＲＳ０のＱ出力及びＱバー出力は共に“０”となる。よって期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３の組は（１，０，０，０）となる。
【０２５２】
ダウン信号ＤＭＯＤＥが“１”の場合、初期番地検出信号ＦＡが“１”となった（出力Ｘ０が“１”となった）次のクロックサイクルではリセット信号ＲＳＴが“１”となってリセット・セット・フリップフロップＲＳ０，ＲＳ１，ＲＳ２がリセットされる。また出力Ｘ３が“１”であるのでリセット・セット・フリップフロップＲＳ３のＱ出力及びＱバー出力は共に“０”となる。よって期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３の組は（０，０，０，１）となる。
【０２５３】
このように、ここで示されている技術においては、本来は禁止されているような、リセット・セット・フリップフロップＲＳ０，ＲＳ３のリセット端Ｒとセット端Ｓとを“１”にするような用い方をする。そして、セット処理よりもリセット処理を優先するために、単にリセット・セット・フリップフロップＲＳ０，ＲＳ３のＱ出力をそのまま期待値Ｅ０，Ｅ３として採用するのではなく、インバータＩＮＶＥ０，ＩＮＶＥ３にＱバー出力を反転させて得られた値を採用しているのである。
【０２５４】
リセット信号ＲＳＴが“０”であるクロックサイクルでは、選択されたデコーダ出力Ｘｉに対応してＥｉが１になり、リセット信号ＲＳＴが“１”になるまで保持される。従って、図８５に示された回路と同様に、表５に示された期待値Ｅｉが全て自動的に生成されることになる。
【０２５５】
（ｃ−２−３）第２の手法の変形
実施の形態８．
図８７は図５１と相まって、第２の手法の変形を示すフローチャートである。第２の手法の変形は、第２の手法のうちの接続子Ｊ２以前の処理と同一の処理を接続子Ｊ２以前において行う。接続子Ｊ２以前の処理によっては、第０列においてケース２，４における診断はなされても、ケース１，３における診断がなされることはない。他の第１乃至第３列においてはケース１，２における診断がなされる。
【０２５６】
第２の手法のうち、図５２において示された接続子Ｊ２以降のフローの実行によっては、テストパターンが（１，１，１），（０，１，１），（０，０，１）の場合のそれぞれにおいて、列番号の大きなものから小さなものへと各列に書き込み及び読み出しがなされてゆく。
【０２５７】
これに対して第２の手法の変形では、上記のテストパターンと同一のテストパターンのそれぞれにおいて、列番号の小さなものから大きなものへと各列に書き込み及び読み出しがなされてゆく。従って、接続子Ｊ２以降の処理によっても第０列においてケース２，４における診断はなされても、ケース１，３における診断がなされることはない。一方、他の第１乃至第３列においてはケース３，４における診断がなされる。
【０２５８】
従って、第２の手法とは異なり、第３列についても全てのケース１〜４における故障診断が可能である。しかし、第０列についてはケース１，３における故障診断が為されることはない。
【０２５９】
よって、全てのケースについての故障診断を行うのであれば、書き込みの順序が列番号の大きなものから小さなものへと移るようにして、図５１及び図８７のステップ９０４，９０６，９２０，９２３を実行するフローを、更に実行する必要がある。
【０２６０】
（ｃ−３）第３の手法．
実施の形態９．
第１の手法は、第１乃至第４のケースについて全てのメモリセルの故障を診断することができる点で優れているが、ＣＡＭのテスト手法には他の変形も可能である。
【０２６１】
図８８及び図８９はこの発明の第３の手法を示すフローチャートである。両図は接続子Ｊ３，Ｊ４を介して連続する。第３の手法は一列ずつ順番にメモリセルのテストを行うことを特徴としている。
【０２６２】
図９０乃至図１３７は第３の手法が施された場合の、スキャンフリップフロップＳＦＦ−ＤＩｊの記憶内容（入力信号ＤＩｊ）と、ＣＡＭ１００の連想メモリセルＣｉｊ（ｉ＝０，１，２，３；ｊ＝０，１，２）の記憶する内容を時系列に示す概念図であり、順次「ＳＴＡＴＥ−Ｃ−ｐ」（ｐ＝０〜４７）の状態が示されている。これらの図における数字の表し方は図１０乃至図３９に示されたものと同様である。
【０２６３】
ステップ１００１，１００２においてはそれぞれ第１の手法のステップ８０１，８０２と同じ処理がなされる。つまり全ての入力信号ＤＩｊに初期値として“０”を設定し、全てのｉ，ｊについて、連想メモリセルＣｉｊの記憶内容を初期値として“０”に設定する。図９０はここまでのステップ１００１，１００２が実行された状態を示す。そしてステップ１００３において列番号を初期化する。ここでは第０列が選択されている。そしてステップ１００４においてｊ＝０にし、スキャンフリップフロップＳＦＦ−ＤＩｊに対する処理のための初期化を行う。
【０２６４】
ステップ１００５において、入力信号ＤＩｊが反転される。既述のように、これは図３を用いて示されたインバータＩＮＶ１による帰還を行うことに対応している。よって、図９０の状態に対してステップ１００５を実行することは値“１”をシフトインすることと等価である。
【０２６５】
図８及び図９においてと同様に、図８８及び図８９においても、太枠で示されたステップ１００５，１００６，１０１０，１０１１では、そのステップが実行されることによって確定した列一致信号Ｚｉをテストすることも行われる。図９１はステップ１００５が実行された状態を示す。このとき、連想メモリセルＣ００についてケース１の故障診断を行うことができる。
【０２６６】
その後ステップ１００６を実行し、第０列にテストパターン（１，０，０）を書き込む（図９２）。このとき、連想メモリセルＣ００についてケース２の故障診断を行うことができる。
【０２６７】
そしてステップ１００７，１００８で更に次の行へと移り、ステップ１００５によって新たに“１”をシフトインする（図９３）。このとき、連想メモリセルＣ０１についてケース１の故障診断を行うことができる。そしてステップ１００６が実行されて第０列にテストパターン（１，１，０）を書き込む（図９４）。このとき、連想メモリセルＣ０１についてケース２の故障診断を行うことができる。
【０２６８】
以下同様にしてステップ１００５，１００６が順次繰り返され、最終行に対応するる行番号ｊが（ｍ−１）（＝３−１＝２）に至るまで連想メモリセルＣ０ｊについてケース１，２の故障診断を行うことができる（図９５及び図９６）。
【０２６９】
次にステップ１００９によって行番号が再度初期化される。ステップ１００９〜ステップ１０１３はステップ１００４〜１００８と同様の処理を続ける。但し、既に入力信号ＤＩ２が“１”を採っているので、シフトインされる値は“０”である。
【０２７０】
よってステップ１００９〜１０１３の実行によって連想メモリセルＣ０ｊについてケース３，４の故障診断を行うことができる（図９７乃至図１０２）。
【０２７１】
そして第（ｍ−１）行までのシフトインが終了すれば、即ちテストパターンが（０，０，０）となって、これの第０列への書き込みが（ステップ１０１１）が行われれば、ステップ１０１４，１０１５によって、書き込みの対象となる列が更新される。図１０２の状態に関してみれば、列番号ｉがいままで“０”であったので、ステップ１０１５によって第１列が書き込み対象となる。そして接続子Ｊ４を介してステップ１００４へ戻り、新たなテストパターン（１，０，０）の第１列の連想メモリセルＣ１ｊへの書き込みがステップ１００５によって行われる。図１０３乃至図１０８は第１列の連想メモリセルＣ１ｊについてケース１，２の故障診断を行う状態を、図１０９乃至図１１４はケース３，４の故障診断を行う状態を、それぞれ示している。
【０２７２】
同様にして、書き込み対象となる列が順次更新され、図１１５乃至図１２０は第２列の連想メモリセルＣ２ｊについてケース１，２の故障診断を行う状態を、図１２１乃至図１２６はケース３，４の故障診断を行う状態を、それぞれ示している。また、図１２７乃至図１３２は第３列の連想メモリセルＣ３ｊについてケース１，２の故障診断を行う状態を、図１３３乃至図１３７及び図９０はケース３，４の故障診断を行う状態を、それぞれ示している。
【０２７３】
このように第３の手法においては、第１の手法と同様に、全てのメモリセルに対して、ケース１〜４の全ての場合における故障診断を行うことができる。
【０２７４】
（ｃ−３−１）第３の手法を実行するための回路．
前駆的思想において図１及び図２で示された回路でも、スキャン入力信号ＳＩＤＩが適切なテストパターンを採り、シフトインすることによっても図８８及び図８９に示された第３の手法を行うこともできる。しかし、入力信号ＤＩｊの内容をＣＡＭ１００に書き込む際にはその値を保持する必要があり、スキャンフリップフロップとしては図７に示されたホールド機能付きのものを用いることが望ましい。さもないと、ホールド動作を行うためにはクロック信号Ｔを適切に制御する必要がある。
【０２７５】
以下に示すのは、第３の手法を、適切なテストパターンを自動的に生成することで実行する回路の例である。
【０２７６】
実施の形態１０．
図１３８は第３の手法を実現するＣＡＭテスト回路の構成を示す回路図である。ここではテストされるべきＣＡＭ１００が、入力信号のビット数（行の数）ｍが３、列の数ｎが４の場合を例示している。図４０で示された回路と同様に、ＣＡＭ１００のテストに直接関係のない部分は省略されている。
【０２７７】
アドレス信号Ａ０，Ａ１はアドレスカウンタＣＮＴＲによって発生される。このアドレスカウンタは少なくともＣＡＭテスト時においてはカウント動作を行う。但し、カウント動作中であっても図示されないクロック信号Ｔの遷移に依らず、アドレスホールド信号ＨＯＬＤ−ＡはアドレスカウンタＣＮＴＲの値を保持させる。アドレスホールド信号ＨＯＬＤ−Ａとしては、アドレスホールド原信号ＨＬＤＡまたは信号ＡＬＬ０Ｗが、セレクタＳＥＬ４によって採用される。
【０２７８】
アドレスカウンタＣＮＴＲはスキャンアドレス入力ＳＩＡＡによってその保持する値を更新する事ができる。スキャンアドレス入力ＳＩＡＡとしてはスキャンアドレス入力原信号ＳＩＡまたは書き込み原信号ＷＥＣＤが、セレクタＳＥＬ７によって採用される。
【０２７９】
図１３８に示された構成において、セレクタＳＥＬ１〜ＳＥＬ４，ＳＥＬ８と、フリップフロップＳＦＦ−ＤＩｊと、インバータＩＮＶ１と、アドレスカウンタＣＮＴＲと、スキャンフリップフロップＳＦＦＷと、ライトパルスジェネレータＷＰＧとの接続関係、及びこれらに対してスキャンパス制御信号ＭＥＭＴ、テスト信号ＣＡＭＴＥＳＴ、スキャン入力信号ＳＩＤＩ、入力ホールド原信号ＨＬＤＤＩ、スキャン信号ＳＯＡ、統一スキャン入力ＳＩＣＡＭが与えられる箇所は図４０に示された構成と同一である。
【０２８０】
但し、セレクタＳＥＬ３の１−入力端には書き込み原信号ＷＥＣＤが与えられている。また、セレクタＳＥＬ２の１−入力端にはインバータＩＮＶ４の出力端が接続されており、書き込み原信号ＷＥＣＤを反転した信号が与えられている。そして最終番地検出回路ＬＡＤＥＴは設けられてはいない。
【０２８１】
信号Ａｌｌ０Ｗはオア回路ＯＲ１，ＯＲ２によって、書き込み原信号ＷＥＣＤと、入力信号ＤＩｊの論理和として生成される。
【０２８２】
表６及び表７は図１３８に示された回路動作をクロック信号Ｔの周期毎に示す各信号の論理値表である。表６及び表７には図４で示されたデータ出力ＤＯｊ、列一致信号Ｚｉも併記されている。
【０２８３】
【表６】
2006054052.tif 000008
【０２８４】
【表７】
2006054052.tif 000009
【０２８５】
図１３８に示された回路においても、図４１に示されたタイミングチャートに基づいて動作する。
【０２８６】
ステップ１００１，１００２における動作はステップ８０１，８０２と同様である。そしてテスト信号ＣＡＭＴＥＳＴが“０”を採る場合には、スキャンパス制御信号ＭＥＭＴが“１”であればアドレスカウンタＣＮＴＲはスキャンアドレス入力ＳＩＡＡによって決定されるアドレス信号Ａ１，Ａ０を出力し、書き込み原信号ＷＥＣＤとしてはセレクタＳＥＬ６、スキャンフリップフロップＳＦＦＷを介してスキャン書き込み信号ＳＩＷが採用され、スキャンフリップフロップＳＦＦ−ＤＩ０へのシフト入力にはセレクタＳＥＬ１を介してスキャン入力信号ＳＩＤＩが採用される。従って、第０周期乃至第８周期までの信号の論理値は、表１のそれと同一である。ステップ１００１，１００２が実行された後の状態が図９０に示されている。
【０２８７】
勿論、図１３８に示された回路においても、図４０に示された回路と同様にして、スキャンパス制御信号ＭＥＭＴが“０”である場合に一つのスキャンパスが形成され、統一スキャン入力ＳＩＣＡＭによって必要な論理値を伝達させることができる。
【０２８８】
次にステップ１００３の準備が第９及び第１０周期において行われる。まだテスト信号ＣＡＭＴＥＳＴは“０”であり、スキャン書き込み信号ＳＩＷとして“１”が設定され、ライトイネーブル信号ＷＥが“０”であってＣＡＭ１００への書き込みが禁止されている。入力ホールド原信号ＨＬＤＤＩがセレクタＳＥＬ３によって入力ホールド信号ＨＯＬＤ−ＤＩとして各スキャンフリップフロップＳＦＦ−ＤＩｊに与えられており、その値は“１”に設定されてテストパターンの更新は許可されていない。このような状態で、スキャン信号ＳＩＡとして順次“１”（第９周期），“１”（第１０周期）を与え、最終列のワード線ＷＬ３を選択する。従って、第９周期乃至第１０周期までの信号の論理値も、表１のそれと同一である。
【０２８９】
更に、第１１周期においてはアドレスホールド原信号ＨＬＤＡが“１”に設定され、既にいずれも“１”に設定されたアドレス信号Ａ１，Ａ０の値が保持される。従って、スキャンアドレス入力信号ＳＩＡの値は特定されない。スキャン書き込み信号ＳＩＷの値が“０”に設定され、スキャンフリップフロップＳＦＦＷには値“０”が記憶される。従って、第１１周期の信号の論理値も、表１のそれと同一である。
【０２９０】
第１２周期乃至第５９周期においてはＣＡＭテストが実行される。この周期においてはテスト信号ＣＡＭＴＥＳＴは“１”に設定される。よってテスト信号ＣＡＭＴＥＳＴによって制御されるセレクタＳＥＬ１〜ＳＥＬ４の０−入力端に与えられていたスキャン入力信号ＳＩＤＩ、スキャン書き込み信号ＳＩＷ、入力ホールド原信号ＨＬＤＤＩ、アドレスホールド原信号ＨＬＤＡの値は特定される必要がない。更に、テスト信号ＣＡＭＴＥＳＴが“１”となることにより、アドレスカウンタＣＮＴＲはカウント機能を発揮するので、スキャンアドレス入力信号ＳＩＡの値も特定されない。
【０２９１】
表１を用いて説明したのと同様に、第１２周期の開始となるクロック信号Ｔの遷移においてアドレスホールド信号ＨＯＬＤ−Ａも“０”となり、アドレスカウンタＣＮＴＲのカウント動作が許可され、アドレス信号Ａ１，Ａ０の値が（１，１）から（０，０）へと更新される。その一方、インバータＩＮＶ４の機能により、第１１周期において“０”となっていた書き込み原信号ＷＥＣＤが反転され、値“１”がセレクタＳＥＬ２，ＳＥＬ６を経由して書き込み原信号ＷＥＣＤとして採用される。よって、ライトイネーブル信号ＷＥが“０”となっている。第１２周期においては連想メモリセルＣ００，Ｃ０１，Ｃ０２への書き込みは禁止される。
【０２９２】
表１を用いて示されたのと同様に、第１２周期の開始となるクロック信号Ｔの遷移によって、即ちアドレス信号Ａ１，Ａ０の値が（１，１）から（０，０）へ更新される（この更新はクロック信号ＴによってアドレスカウンタＣＮＴＲが動作した後に行われる）よりも以前にスキャンフリップフロップＳＦＦ−ＤＩｊの記憶内容が更新される。従ってテストパターンは（０，０，０）から（１，０，０）へと更新され、図９１に示された状態を実現することができる。
【０２９３】
第１３周期においては、インバータＩＮＶ４の機能により、書き込み原信号ＷＥＣＤとして“０”が採用される。よって、ライトイネーブル信号ＷＥが“１”となって、図９２に示されたように連想メモリセルＣ０ｊへの書き込みが行われる。
【０２９４】
このように、書き込み原信号ＷＥＣＤはインバータＩＮＶ４の機能によってクロックサイクル毎に０と１を交互に繰り返す。つまり、ＣＡＭ１００には２回に一回、書き込み動作が行われる。そして書き込みが行われない場合にはインバータＩＮＶ１によってシフトインが実行される。
【０２９５】
この後、テストパターンが（０，０，０）となるまでの更新と第０列の連想メモリセルＣ０ｊへの書き込みが交互に行われる。これはステップ１０１５が実行されるまでのステップ１００５，１００６，１０１０，１０１１の実行に対応する（第１２周期乃至第２３周期）。
【０２９６】
テストパターンが（０，０，０）となるまで、書き込み対象となるメモリセルの列番号を変更させないため、オア回路ＯＲ１によってテストパターンが監視されている。そしてテストパターンが（０，０，０）となる場合のみ０−一致信号ＡＬＬ０を“０”にする。この結果、信号ＡＬＬ０Ｗは“１”となり、アドレスホールド信号ＨＯＬＤ−Ａも“１”となってカウンタＣＮＴＲによるアドレス更新は禁止される。
【０２９７】
第１の手法を説明する際に示したように、ＣＡＭへの書き込みを行うことにより、必要なテストパターン数を減少させることができ、必要なのは※で示された６つのパターンであり、（１，０，１），（０，１，０）という、両端の値が等しく、かつそれ以外の値が両端の値とは異なるというパターンは必要ない。従って、オア回路ＯＲ１は入力信号ＤＩ０，ＤＩ２のいずれもが“０”となったか否かを検出すれば良く、入力信号ＤＩ１の値を考慮する必要はない。図１３８においてはオア回路ＯＲ１の入力端のうち、入力信号ＤＩ１に接続されたものを破線で示しているのは、上記事情に鑑みて、省略可能であることを意味している。
【０２９８】
但し、第２２周期において、テストパターンが（０，０，０）となっても、まだ第０列の連想メモリセルＣ０ｊの書き込みが終了していない（図１０１）。そして列番号の更新は連想メモリセルＣ０ｊの書き込みが終了してから行わなければならない。そのような制御を行うためオア回路ＯＲ２が設けられ、０−一致信号ＡＬＬ０が“０”であるのみならず、書き込み原信号ＷＥＣＤもが“０”となって書き込みが行われる場合（図１０２）に、信号ＡＬＬ０Ｗが“０”となる。そして信号ＡＬＬ０ＷがセレクタＳＥＬ４を介してカウンタＣＮＴＲのアドレス更新を許可する（値“０”を採る。第２３周期）。
【０２９９】
これ以降、第１２周期乃至第２３周期と同様の動作（図９１乃至図１０２）が列番号を更新しつつ（ステップ１０１５）繰り返される（第２４周期乃至第３５周期：図１０３乃至図１１４、第３６周期乃至第４７周期：図１１５乃至図１２６、第４８周期乃至第５９周期：図１２７乃至図１３７及び図９０）。このようにして第３の手法が実行される。
【０３００】
（ｃ−３−２）期待値の生成．
実施の形態１１．
第１及び第２の手法と同様に、第３の手法によって得られた列一致信号Ｚｉから故障を判断するためには、期待値を得ることが必要である。以下ではかかる期待値を列一致信号Ｚｉの生成と同期して得るための技術を説明する。実施の形態３と同様、列数ｎが４の場合を例に採って説明する。
【０３０１】
表８は各状態における期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３を時系列に纏めた論理値表である。これらの内容は列一致信号Ｚ０，Ｚ１，Ｚ２，Ｚ３として図９０乃至図１３７に既に示されている。表中の矢印は、状態が循環する事を示している。
【０３０２】
【表８】
2006054052.tif 000010
【０３０３】
図１３９は期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３を生成する期待値生成回路６４の構成を図示している。ここでは図１３８に示されたライトパルスジェネレータＷＰＧ及びこれに入力する書き込み原信号ＷＥＣＤと、０−一致信号ＡＬＬ０、書き込み原信号ＷＥＣＤを反転させるインバータＩＮＶ４をも併せて示している。また、期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３と列一致信号Ｚ０，Ｚ１，Ｚ２，Ｚ３とを比較するための比較回路７０も示している。
【０３０４】
期待値生成回路６４は期待値生成回路６１、オア回路ＯＲＲ、リセット・パルス発生回路ＲＰＧ、セレクタＳＥＬＥ０，ＳＥＬＥ１，ＳＥＬＥ２，ＳＥＬＥ３から構成されている。
【０３０５】
期待値生成回路６１の有するリセット・セット・フリップフロップＲＳｉのセット端Ｓにはそれぞれ出力Ｘｉが与えられる。また、全てのリセット・セット・フリップフロップＲＳｉのリセット端Ｒにはリセット・パルス発生回路ＲＰＧからリセット信号ＲＳＴが与えられる。
【０３０６】
セレクタＳＥＬＥｉの１−入力端及び０−入力端には、それぞれリセット・セット・フリップフロップＲＳｉのＱ出力及びＱバー出力が与えられる。また、全てのセレクタＳＥＬＥｉは０−一致信号ＡＬＬ０によって制御され、その出力がそれぞれ期待値Ｅｉとして採用される。
【０３０７】
オア回路ＯＲＲは０−一致信号ＡＬＬ０とインバータＩＮＶ４の出力との論理和をとってリセット・パルス発生回路ＲＰＧに与える。
【０３０８】
書き込み原信号ＷＥＣＤが“１”であり、且つ０−一致信号ＡＬＬ０が“０の場合のみ、リセットパルスは発生されない（ＳＴＡＴＥ−Ｃ−１１，２３，３５，４７に相当する）。その他の場合、即ち書き込み原信号ＷＥＣＤが“０”（インバータＩＮＶ４の出力が“１”）又は０−一致信号ＡＬＬ０が１の場合、リセット・パルスＲＳＴは“１”を採る。
【０３０９】
従って、０−一致信号ＡＬＬ０が“０”となる、表６の第２２周期に相当するＳＴＡＴＥ−Ｃ−１１の直前（ＳＴＡＴＥ−Ｃ−１０）までは、リセット・セット・フリップフロップＲＳｉは書き込み原信号ＷＥＣＤが“０”となる度（ＳＴＡＴＥ−Ｃ−１，３，５，７，９）にリセットされ、期待値Ｅｉは全て“０”となる。そのほかはワード線ＷＬ０が選択されている状態であるので、リセット・セット・フリップフロップＲＳ０がセットされる。そしてセレクタＳＥＬＥｉはその１−入力端に与えられた信号を出力するので、ＳＴＡＴＥ−Ｃ−２，４，６，８，１０において期待値の組（Ｅ０，Ｅ１，Ｅ２，Ｅ３）は（１，０，０，０）となる。
【０３１０】
各クロックサイクルでワード線ＷＬｉ対応のデコーダ出力がリセット・セット・フリップフロップの最終保持データを決定するため、早めにリセットパルスＲＳＴが立ち下がるようにリセット・パルス発生回路ＲＰＧが設計される。
【０３１１】
その後、表６の第２２周期に相当するＳＴＡＴＥ−Ｃ−１１においては０−一致信号ＡＬＬ０が“０”となり、書き込み原信号ＷＥＣＤが“１”となるので、リセット・セット・フリップフロップＲＳｉのリセットは行われない。そしてこのときセレクタＳＥＬＥｉはその０−入力端に与えられた信号を出力するので、リセット・セット・フリップフロップＲＳｉのＱバー出力が期待値Ｅｉとして採用される。従って、ＳＴＡＴＥ−Ｃ−１１における期待値の組（Ｅ０，Ｅ１，Ｅ２，Ｅ３）は、ＳＴＡＴＥ−Ｃ−２，４，６，８，１０における期待値の組（Ｅ０，Ｅ１，Ｅ２，Ｅ３）と相補的な値（０，１，１，１）を採る。
【０３１２】
そして表６の第２３周期に相当するＳＴＡＴＥ−Ｃ−１１においては０−一致信号ＡＬＬ０が“０”ではあるが、書き込み原信号ＷＥＣＤが“０”となるので、リセット・セット・フリップフロップＲＳｉのリセットが行われる。この場合もリセット・セット・フリップフロップＲＳｉのＱバー出力が期待値Ｅｉとして採用されるので、期待値の組（Ｅ０，Ｅ１，Ｅ２，Ｅ３）は、（１，１，１，１）となる。
【０３１３】
この後は同様にして、第１３周期（表６）乃至第５８周期（表７）において期待値が生成される（ＳＴＡＴＥ−Ｃ−２４〜４７）。なお、ＳＴＡＴＥ−Ｃ−０の期待値については第５９周期（表７）において生成される。
【０３１４】
図１４０は期待値Ｅ０，Ｅ１，Ｅ２，Ｅ３を生成する他の期待値生成回路６５の構成を図示している。期待値生成回路６５は、イクスクルーシブ・オア回路ＸＯＲＷと、アンド回路ＡＮＤＸ０，ＡＮＤＸ１，ＡＮＤＸ２，ＡＮＤＸ３と、イクスクルーシブ・ノア回路ＸＮＯＲ０，ＸＮＯＲ１，ＸＮＯＲ２，ＸＮＯＲ３とから構成されている。
【０３１５】
イクスクルーシブ・オア回路ＸＯＲＷは、書き込み原信号ＷＥＣＤと０−一致信号ＡＬＬ０との排他的論理和を、全てのアンド回路ＡＮＤＸｉの一方の入力端に与える。アンド回路ＡＮＤＸｉの他方の入力端には、ワード線ＷＬｉを選択するデコーダの出力Ｘｉがそれぞれ与えられている。全てのイクスクルーシブ・ノア回路ＸＮＯＲｉの一方の入力端には０−一致信号ＡＬＬ０が与えられ、イクスクルーシブ・ノア回路ＸＮＯＲｉの他方の入力端には、それぞれアンド回路ＡＮＤＸｉの出力が与えられる。期待値Ｅｉはそれぞれイクスクルーシブ・ノア回路ＸＮＯＲｉの出力として与えられる。
【０３１６】
ＳＴＡＴＥ−Ｃ−１０に対応する表６の第２１周期までは、０−一致信号ＡＬＬ０が“１”であり、書き込み原信号ＷＥＣＤの“１”，“０”に対応して、イクスクルーシブ・オア回路ＸＯＲＷの出力はそれぞれ“０”，“１”となる。ＳＴＡＴＥ−Ｃ−１０までは、ワード線ＷＬ０が選択されているので、アンド回路ＡＮＤＸ０の他方の入力端には“１”が与えられ、アンド回路ＡＮＤＸ１，ＡＮＤＸ２，ＡＮＤＸ３の他方の入力端には“０”が与えられる。よって、アンド回路ＡＮＤＸ０，ＡＮＤＸ１，ＡＮＤＸ２，ＡＮＤＸ３の出力の組は、書き込み原信号ＷＥＣＤの“１”，“０”に対応してそれぞれ（０，０，０，０）、（１，０，０，０）となる。そして０−一致信号ＡＬＬ０が“１”であるのでイクスクルーシブ・ノア回路ＸＮＯＲｉはアンド回路ＡＮＤＸｉの出力をそのまま伝搬させる。よって期待値の組（Ｅ０，Ｅ１，Ｅ２，Ｅ３）の値も書き込み原信号ＷＥＣＤの“１”，“０”に対応してそれぞれ（０，０，０，０）、（１，０，０，０）となる。
【０３１７】
ＳＴＡＴＥ−Ｃ−１１に対応する第２２周期において、０−一致信号ＡＬＬ０が“０”であり、書き込み原信号ＷＥＣＤが“１”である。よってアンド回路ＡＮＤＸｉはワード線ＷＬｉを選択するデコーダＤＣＤＲの出力Ｘｉをそのまま伝搬させる。一方、０−一致信号ＡＬＬ０が“０”であるのでイクスクルーシブ・ノア回路ＸＮＯＲｉはアンド回路ＡＮＤＸｉの出力を反転させる。よって期待値の組（Ｅ０，Ｅ１，Ｅ２，Ｅ３）の値は（１，０，０，０）と相補的な値の組（０，１，１，１）となる。
【０３１８】
ＳＴＡＴＥ−Ｃ−１２に対応する第２３周期において、０−一致信号ＡＬＬ０は“０”であるが、書き込み原信号ＷＥＣＤも“０”であるので、イクスクルーシブ・オア回路ＸＯＲＷの出力は“０”となり、アンド回路ＡＮＤＸｉの出力は全て“０”となる。そしてイクスクルーシブ・ノア回路ＸＮＯＲｉはアンド回路ＡＮＤＸｉの出力を反転させ、期待値の組（Ｅ０，Ｅ１，Ｅ２，Ｅ３）の値は（１，１，１，１）となる。
【０３１９】
上記と同様の動作の繰り返しにより、図１３９に示された回路と同様に、図１４０に示された回路も第３の手法に関する期待値を自動的に生成することができる。
【０３２０】
Ｄ．列一致信号を受けるスキャンパス．
図１において示されたように、列一致信号Ｚｉをスキャンパスで受け、これをシフトさせてスキャン信号ＳＯＺとして順次得ることができる。また、列一致信号Ｚｉからヒット信号ＨＩＴを得ることもできる。以下ではそのようなスキャンパス及びこれを構成するスキャンフリップフロップの例について説明する。以下で示すスキャンフリップフロップは既述の第１乃至第３の手法の何れに対しても適用することができる。
【０３２１】
（ｄ−１）実施の形態１２．
図１４１は列一致信号Ｚｉと期待値Ｅｉとを受けるスキャンパスの構成を示す回路図であり、図１４２は当該スキャンパスを構成するスキャンフリップフロップＳＦＦ−Ｚｉの構成を示す回路図である。
【０３２２】
スキャンフリップフロップＳＦＦ−Ｚｉは直列に接続され、そのＤ端子には列一致信号Ｚｉを、その端子ＥＸＰには期待値Ｅｉを、それぞれ入力する。またＱ出力として信号ＱＺｉが、端子Ｇからは信号Ｇｉが、それぞれ出力される。
【０３２３】
また、スキャン出力端子ＳＯは次段のスキャンフリップフロップのスキャン入力端子ＳＩに接続される。つまり、スキャンフリップフロップＳＦＦ−Ｚ０のスキャン入力端子ＳＩにはスキャン信号ＳＩＺが与えられ、スキャンフリップフロップＳＦＦ−Ｚ１，ＳＦＦ−Ｚ２，ＳＦＦ−Ｚ３のスキャン入力端子ＳＩにはそれぞれスキャンフリップフロップＳＦＦ−Ｚ０，ＳＦＦ−Ｚ１，ＳＦＦ−Ｚ２のスキャン出力信号ＳＯＺ０，ＳＯＺ１，ＳＯＺ２が与えられる。スキャンフリップフロップＳＦＦ−Ｚ３のスキャン出力信号ＳＯＺ３はスキャン信号ＳＯＺとして得られる。
【０３２４】
信号Ｇｉは後述するように、その対応する列に故障（異常）が検出されたか否かを示し、異常／正常に対応してそれぞれ“０”／“１”をとる。また信号ＱＺｉは後述するように、列一致信号Ｚｉを与える。信号Ｇｉと信号ＱＺｉはアンド回路ＡＮＤＺｉによってその論理積が採られ、全てのアンド回路ＡＮＤＺｉの出力はオア回路ＯＲＨに入力されるので、故障のあった列に対応する列一致信号はヒット信号ＨＩＴの生成には寄与しない。これによってＣＡＭを用いるシステム側では故障個所を避ける事ができる。
【０３２５】
全てのスキャンフリップフロップＳＦＦ−Ｚｉには比較許可信号ＣＭＰＥＮ、出力ホールド信号ＨＯＬＤ−Ｚ、シフトモード信号ＳＭ、フリップフロップ挿入信号ＩＮＳＦＦが共通して与えられている。
【０３２６】
スキャンフリップフロップＳＦＦ−Ｚｉでは端子ＥＸＰとＤ端子に接続された２入力端のイクスクルーシブ・オア回路ＸＯＲＨｉが列一致信号Ｚｉと期待値Ｅｉとを比較して、不一致／一致に対応してそれぞれ“１”／“０”を採る判定信号Ｈｉを出力する。かかる機能は比較回路７０におけるイクスクルーシブ・オア回路ＸＯＲＨｉと同一であるので同一の符号を用いている。勿論、イクスクルーシブ・オア回路ＸＯＲＨｉを比較回路７０とスキャンフリップフロップＳＦＦ−Ｚｉとで共用することもできるし、それぞれ個別に設けることもできる。
【０３２７】
出力ホールド信号ＨＯＬＤ−ＺはセレクタＳＥＬＺＨｉの制御を行う。セレクタＳＥＬＺＨｉの０−入力端にはスキャン入力端子ＳＩが接続されている。セレクタＳＥＬＺＨｉの出力端はセレクタＳＥＬＺＳｉの１−入力端に接続され、セレクタＳＥＬＺＳｉの０−入力端にはＤ端子が接続されている。セレクタＳＥＬＺＳｉの出力端にはフリップフロップＺＦＦｉのＤ端子が接続され、そのＱ出力はインバータによって反転されて信号Ｇｉとなる。
【０３２８】
フリップフロップＺＦＦｉのＱ出力は、スキャン出力端子ＳＯに与えられると共に、判定信号Ｈｉは比較許可信号ＣＭＰＥＮとの論理積と、論理和が採られ、その結果がセレクタＳＥＬＺＨｉの１−入力端に与えられる。
【０３２９】
セレクタＳＥＬＺＦｉの０−入力端にはＤ端子が接続され、１−入力端にはフリップフロップＺＦＦｉのＱ出力が与えられる。そしてこの２つの何れかが、フリップフロップ挿入信号ＩＮＳＦＦに基づいて、スキャンフリップフロップＳＦＦ−ＺｉのＱ出力として採用される。
【０３３０】
まず、列一致信号Ｚｉを取り込む（通常の）動作では、シフトモード信号ＳＭを“０”に設定する。図１４３はこのときのクロック信号Ｔ、シフトモード信号ＳＭ、列一致信号Ｚｉ、フリップフロップＺＦＦｉのＱ出力の値（スキャン出力端子ＳＯに与えられる値）の関係を示すタイミングチャートである。
【０３３１】
これによりＤ端子に与えられた列一致信号ＺｉがフリップフロップＺＦＦｉを介してセレクタＳＥＬＺＦｉの１−入力端に与えられる。よってフリップフロップ挿入信号ＩＮＳＦＦを“１”に設定することにより、スキャンフリップフロップＳＦＦ−Ｚｉは通常のフリップフロップとして（実質的にはフリップフロップＺＦＦｉの機能によって）動作する。
【０３３２】
もしも、このフリップフロップとしての動作すら必要でなく、単に列一致信号Ｚｉを通過させるだけであれば、フリップフロップ挿入信号ＩＮＳＦＦを“０”に設定すればよい。もしもスキャンフリップフロップＳＦＦ−Ｚｉを通常のフリップフロップとして動作させる必要がなく、常に列一致信号Ｚｉを通過させるのであれば、セレクタＳＥＬＺＦｉは不要であり、スキャンフリップフロップＳＦＦ−ＺｉのＤ端子を直接に自身のＱ出力とすることもできる。
【０３３３】
上記のような通常の動作においても信号Ｇｉは出力されている。そして既述のように、対応する列が故障している場合には列一致信号Ｚｉたる信号ＱＺｉをヒット信号ＨＩＴの生成には寄与させなくするのである。
【０３３４】
そのような信号Ｇｉは以下のようにして生成される。図１４４はこのような信号Ｇｉの生成を行うときの動作を示すタイミングチャートである。シフトモード信号ＳＭ、出力ホールド信号ＨＯＬＤ−Ｚ、比較許可信号ＣＭＰＥＮを全て“１”に設定する。これにより、判定信号ＨｉはフリップフロップＺＦＦｉのＱ出力と論理和が採られ、その結果がフリップフロップＺＦＦｉに与えられる。
【０３３５】
もしも列一致信号Ｚｉと期待値Ｅｉとが一致していれば判定信号Ｈｉは“０”となり、これと比較許可信号ＣＭＰＥＮとの論理積は“０”となる。よってフリップフロップＺＦＦｉが以前に記憶していた値が更新されることはない。しかし、列一致信号Ｚｉと期待値Ｅｉとが一致しなければ、即ち対応する列に故障が生じている場合には、判定信号Ｈｉは“１”となり、フリップフロップＺＦＦｉはそれが以前に記憶していた値によらず“１”を記憶することになる。
【０３３６】
換言すれば、第１乃至第３の手法を用いて各連想メモリＣｉｊの故障を検出する事により、一つでも判定信号Ｈｉが“１”となるようなテストパターンが存在すれば、その他のテストパターンにおいて判定信号が“０”となろうとも、フリップフロップＺＦＦｉには値“１”が記憶され、通常動作において信号Ｇｉが値“０”を採ることになる。
【０３３７】
このような動作を確実にするためには予め、フリップフロップＺＦＦｉには値“０”を記憶させておく必要がある。これには値“０”をスキャンインすればよい。具体的にはシフトモード信号ＳＭを“１”に、出力ホールド信号ＨＯＬＤ−Ｚを“０”にそれぞれ設定する。図１４５はこのようなシフト動作を示すタイミングチャートである。これによってスキャン入力端子ＳＩに与えられた値がフリップフロップＺＦＦｉに伝達される。しかもフリップフロップＺＦＦｉのＱ出力はスキャン出力端子ＳＯに与えられるので、スキャン信号ＳＩＺに“０”を与えて、これを順次シフトさせることによって、全てのフリップフロップＺＦＦｉに値“０”を記憶させることができる。
【０３３８】
勿論、シフトモード信号ＳＭ及び出力ホールド信号ＨＯＬＤ−Ｚを“１”に、比較許可信号ＣＭＰＥＮを“０”にそれぞれ設定することにより、スキャンフリップフロップＳＦＦ−Ｚｉにホールド動作をさせることも可能である。図１４６はホールド動作をさせる場合を示すタイミングチャートである。
【０３３９】
これにより、フリップフロップＺＦＦｉに記憶された故障の存否を保持させ、その後にシフト動作をおこなうことによって順次テスト結果を得ることができる。
【０３４０】
（ｄ−２）実施の形態１３．
図１４７はスキャンフリップフロップＳＦＦ−Ｚｉの他の構成を示す回路図である。実施の形態１２において図１４２を用いて示された構成に対して、アンド回路ＡＮＤＺｉを付加した構成を採っている。
【０３４１】
アンド回路ＡＮＤＺｉは実施の形態１２において図１４１を用いて示されたものと同一であり、各スキャンフリップフロップＳＦＦ−Ｚｉの内部において信号ＱＺｉとなるべき列一致信号Ｚｉと信号Ｇｉとの論理積を採る。但し、その論理積はセレクタＳＥＬＺＦｉの０−入力端に与えられるので、フリップフロップ挿入信号ＩＮＳＦＦが“１”である場合、即ち通常動作時のみ故障がマスクされることになる。
【０３４２】
図１４８は図１４７に示されたスキャンフリップフロップＳＦＦ−Ｚｉを用いた場合の、スキャンパスの構成を示す回路図である。アンド回路ＡＮＤＺｉがスキャンフリップフロップＳＦＦ−Ｚｉに内蔵されたため、図１４８には表れてこない。
【０３４３】
（ｄ−３）実施の形態１４．
図１４９はスキャンフリップフロップＳＦＦ−Ｚｉの他の構成を示す回路図である。実施の形態１３において図１４７を用いて示された構成に対して、故障情報保持用のレジスタＦＲｉが付加されている。このレジスタＦＲｉはレジスタ専用クロック信号ＴＲＥＧ、リセット信号ＲＥＤ−ＲＳＴで制御されており、フリップフロップＺＦＦｉのＱ出力を入力してこれを記憶する。端子Ｇはインバータを介してレジスタＦＲｉの出力を受ける。
【０３４４】
フリップフロップＺＦＦｉが記憶する、故障の存否を示す信号（テスト結果）をこのレジスタＦＲｉが取り込み、保持する事ができる。従って、シフト動作によってフリップフロップＺＦＦｉからテスト結果を読み出しても、故障の存否に関するファイル情報が失われる事はない。なお、リセット信号ＲＥＤ−ＲＳＴは省略してもよい。
【０３４５】
図１５０は図１４９に示されたスキャンフリップフロップＳＦＦ−Ｚｉを用いた場合の、スキャンパスの構成を示す回路図である。実施の形態１３において図１４８を用いて示された構成に比べ、全てのスキャンフリップフロップＳＦＦ−Ｚｉにレジスタ専用クロック信号ＴＲＥＧが与えられている点で異なっている。
【０３４６】
（ｄ−４）実施の形態１５．
図１５１はスキャンフリップフロップＳＦＦ−Ｚｉの他の構成を示す回路図である。実施の形態１３において図１４９を用いて示された構成に対して、アンド回路ＡＮＤＺｉを省略した構成を採っている。即ちセレクタＳＥＬＺＦｉの０−入力端にはＤ端子が直結されている。換言すれば、図１５１に示された構成は、実施の形態１２において図１４２を用いて示された構成に対して、フリップフロップＺＦＦｉのＱ出力と信号Ｇｉを出力するインバータとの間に、故障情報保持用のレジスタＦＲｉが付加された構成を有している。
【０３４７】
このように構成されたスキャンフリップフロップＳＦＦ−Ｚｉも、図１５０に示されたスキャンパスを構成することができることは明白である。
【０３４８】
Ｅ．冗長機能付き連想メモリ回路．
故障が発見された連想メモリの行、または列が存在する場合、これらに代替する連想メモリの行、列を備える、いわゆる冗長機能付きの連想メモリ回路を構成することができる。
【０３４９】
（ｅ−１）実施の形態１６．
図１５２は、それぞれｍ行に配された連想メモリセルを含む第０乃至第（ｎ−１）列の連想メモリセル群と、ｍ行に配された連想メモリセルを有する第ｎ列の連想メモリセル群とを有する連想メモリ回路の構成を示す回路図である。ここで、ｍ＝３，ｎ＝４に選択される。第０乃至第３列に配された連想メモリセルＣ０ｊ〜Ｃ３ｊの、いずれか一つの列に対応する連想メモリセルに故障が生じた場合、第４列に配された連想メモリセルＣ４０，Ｃ４１，Ｃ４２が代替機能を有する。
【０３５０】
そして故障している連想メモリセルの列を避けて、例えば入力信号ＤＩｊによって得られる検査データが列に配された連想メモリセルにおいて記憶されているか否か、が判断される。図１６３を用いて説明されたように、各列毎に列一致信号Ｚｉが、一致出力Ｕｉｊの論理和の反転として得られる。
【０３５１】
出力部Ｚ−ＳＣＡＮは、第０列乃至第４列の連想メモリセル群の良／否に応じて活性／非活性をそれぞれ示す第０乃至第４の良否データである信号Ｇ０〜Ｇ４を記憶している。そして、第０列乃至第４列の連想メモリセル群が記憶する比較データと、検査データとが一致するか否かをそれぞれ示す第０乃至第４の一致判定信号候補である信号ＱＺ０〜ＱＺ４を出力する。この出力部Ｚ−ＳＣＡＮは、実施の形態１２，１３，１４においてそれぞれ図１４１、図１４８、図１５０を用いて示されたスキャンパスの構成から、オア回路ＯＲＨを除いた構成で実現することができる。例として、図１４９に示されたスキャンフリップフロップＳＦＦ−Ｚｉを用いた場合に構成可能な出力部Ｚ−ＳＣＡＮの構成を図１５３に示す。
【０３５２】
全ての列に故障が生じていないとは限らない。そして一致判定信号候補ＱＺ０〜ＱＺ４のうち、故障の生じていないもののみが、第０乃至第３の一致判定信号ＺＺ０〜ＺＺ３として得られる。
【０３５３】
第０乃至第３の一致判定信号ＺＺ０〜ＺＺ３は、第０乃至第３の良否データＧ０〜Ｇ３と、前記第０乃至第４の一致判定信号候補ＱＺ０〜ＱＺ４とから、ゲート群１４１とセレクタ群１４２によって生成される。
【０３５４】
ゲート群１４１は第０乃至第３の制御信号Ｆ０〜Ｆ３を出力する。第０の良否データＧ０は第０の制御信号Ｆ０として採用される。そして、第１の良否データＧ１と、第０の制御信号Ｆ０との論理積が第１の制御信号Ｆ１として採用される。同様にして、第２の良否データＧ２と、第１の制御信号Ｆ１との論理積が第２の制御信号Ｆ２として、第３の良否データＧ３と、第２の制御信号Ｆ２との論理積が第３の制御信号Ｆ３として、それぞれ採用される。
【０３５５】
セレクタ群１４２においては、第ｉの制御信号Ｆｉの活性／非活性に対応して、隣接する２つの列に対応する一致判定信号候補ＱＺｉ，ＱＺ（ｉ＋１）の何れかが、第ｉの一致判定信号ＺＺｉとして出力される。
【０３５６】
デコーダＤＣＤＲの出力は、ここでは出力Ｘｉがワード線ＷＬｉを選択するものであるとして説明する。デコーダＤＣＤＲの出力と選択するワード線との関係が図４６、図４８に示されるような関係にある場合にはそのような関係に基づいて出力とワード線ドライバＷＬＤとの接続関係をアレンジすればよい。
【０３５７】
セレクタ群１４３ａは第０乃至第３の制御信号Ｆ０〜Ｆ３と、デコーダ出力Ｘ０〜Ｘ３とを入力し、第１乃至第４の列指定信号候補Ｈ１〜Ｈ４を出力する。制御信号Ｆ０の非活性／活性に基づいて、それぞれ出力Ｘ０，Ｘ１が第１の列指定信号候補Ｈ１として採用される。同様にして、制御信号Ｆ１の非活性／活性に基づいて、それぞれ出力Ｘ１，Ｘ２が第２の列指定信号候補Ｈ２として、制御信号Ｆ２の非活性／活性に基づいて、それぞれ出力Ｘ２，Ｘ３が第３の列指定信号候補Ｈ３として、それぞれ採用される。また、制御信号Ｆ３が非活性の場合には出力Ｘ３が第４の列指定信号候補Ｈ４として採用されるが、制御信号Ｆ３が活性化している場合には第４の列指定信号候補Ｈ４の値は“０”となる。
【０３５８】
ゲート群１４４は、第０乃至第３の良否データＧ０〜Ｇ３と、第０乃至第４の列指定信号候補Ｈ０〜Ｈ４とを入力して、ワード線ＷＬ０〜ＷＬ４のいずれを選択すべきかを決定する。但し、第０の列指定信号候補Ｈ０としてはデコーダの出力Ｘ０が採用される。
【０３５９】
ゲート群１４４はセレクタ群１４３ａと相まって、一致判定信号ＺＺ０〜ＺＺ３として選択された一致判定信号候補に対応した列に対応するワード線から、アドレス信号Ａ０，Ａ１に基づいて一つを選択する、ワード線選択回路として把握することができる。
【０３６０】
第ｉの列指定信号候補Ｈｉと第ｉの良否データＧｉの論理積が活性化する場合にはワード線ＷＬｉが選択される。但し、前記第４の列指定信号候補Ｈ４が活性化する場合にはワード線ＷＬ４が選択される。
【０３６１】
表９は図１５２に示された回路において、第０乃至第３の良否データＧ０〜Ｇ３、第０乃至第３の制御信号Ｆ０〜Ｆ３、ワード線ＷＬ０〜ＷＬ４、第０乃至第３の一致判定信号ＺＺ０〜ＺＺ３の採る値を対応づける論理値表である。
【０３６２】
【表９】
2006054052.tif 000011
【０３６３】
第０乃至第３列の連想メモリセルにおいて故障がない場合には全ての良否データＧ０〜Ｇ３は全て値“１”を採るので、全ての制御信号Ｆ０〜Ｆ３も値“１”を採る。その結果、第４の列指定信号候補Ｈ４は値“０”を採り、冗長機能は発揮されていない。
【０３６４】
しかし、第０乃至第３列の連想メモリセルのうちの一つに故障が存在していた場合には、その列に対応する良否データＧｂ（０≦ｂ≦３）が０となる。その結果、出力Ｘ０〜Ｘ３の相互の順序は異ならせることなく、故障が存在していた列を回避し、これに代わって第４列のメモリセルを用いてワード線を選択することができる。
【０３６５】
また、第０乃至第３の一致判定信号ＺＺ０〜ＺＺ３として、選択されたワード線に対応して第０乃至第４の一致判定信号候補ＱＺ０〜ＱＺ４の中の４つが採用されるので、故障の存在する一つの列を回避して３行４列の連想メモリ回路として機能することができる。
【０３６６】
なお、第３の制御信号Ｆ３によって制御されるセレクタは、より簡単な論理ゲートで代替することができる。図１５４はそのような代替を行った場合のセレクタ群１４３ｂの構成を示す回路図である。第３の制御信号Ｆ３の反転と出力Ｘ３との論理積を第４の列指定信号候補Ｈ４として出力する論理ゲートを用いることにより、セレクタ群１４３ｂは図１５２に示されたセレクタ群１４３ａと同等の機能を果たすことができる。
【０３６７】
（ｅ−２）実施の形態１７．
図１５５及び図１５６は両者相まって、それぞれｎ列に配された連想メモリセルを含む第０乃至第（ｍ−１）行の連想メモリセル群と、ｎ列行に配された連想メモリセルを有する第ｍ行の連想メモリセル群とを有する連想メモリ回路の構成を示す回路図である。ここで、ｍ＝３，ｎ＝４に選択される。第０乃至第２行に配された連想メモリセルＣｉ０〜Ｃｉ２の、いずれか一つの行に対応する連想メモリセルに故障が生じた場合、第３行に配された連想メモリセルＣ０３〜Ｃ３３が代替機能を有する。
【０３６８】
そして故障している連想メモリセルの行を避けて、例えば入力信号ＤＩｊによって得られる検査データが列に配された連想メモリセルにおいて記憶されているか否か、が判断される。これに先立ち、まず連想メモリセルＣｉｊの有するメモリセルＭｉｊの故障の判断、及び第１乃至第３の手法を用いた連想メモリ回路のテストが行われる。
【０３６９】
なお、これらの図においては煩雑さを避けるため、列を選択するデコーダＤＣＤＲや、シフトモード信号ＳＭ、入力ホールド信号ＨＯＬＤ−ＤＩ、比較許可信号ＣＭＰＥＮ、出力ホールド信号ＨＯＬＤ−Ｚ、フリップフロップ挿入信号ＩＮＳＦＦなどは示していない。
【０３７０】
図１５７は出力スキャンフリップフロップＳＦＦ−ＤＯ０，ＳＦＦ−ＤＯ１，ＳＦＦ−ＤＯ２，ＳＦＦ−ＤＯ３の接続近辺の詳細を示す回路図である。出力スキャンフリップフロップＳＦＦ−ＤＯｊはデータ出力ＤＯｊと、期待値ＥＸｊとを受け、両者を比較してその一致／不一致を信号ＳＯＱｊとして出力する。
【０３７１】
図１５８は出力スキャンフリップフロップＳＦＦ−ＤＯｊの構成を示す回路図である。この構成は、図１４２において示された構成から、信号Ｇを生成するためのインバータを削除した構成となっている。但し、出力スキャンフリップフロップＳＦＦ−ＤＯｊは列に対応してではなく、行に対応して設けられるので、図１５８においては添え字が“ｉ”から“ｊ”に替えられている。
【０３７２】
まず、メモリセルＭｉｊの故障が判断される。出力スキャンフリップフロップＳＦＦ−ＤＯｊのＤ端子にはセンスアンプＳＡからデータ出力ＤＯｊが与えられ、端子ＥＸＰには期待値ＥＸｊが与えられる。連想メモリ回路の故障を行毎に調べる場合には、例えば全ての連想メモリセルＣｉｊに特定の値“１”を書き込んで置き（これによってメモリセルＭｉｊに特定の値“１”が書き込まれる）、その後に読み出しを行ってデータ出力ＤＯｊを得るということが行われる。よって、データ出力ＤＯｊの期待値ＥＸｊとしては同一の値“１”を採ることができる。この様な場合では全ての出力スキャンフリップフロップＳＦＦ−ＤＯｊの端子ＥＸＰを共通に接続してもよい。
【０３７３】
比較許可信号ＣＭＰＥＮを“１”にすることにより、データ出力ＤＯｊと期待値ＥＸｊとの一致／不一致がセレクタＳＥＬＺＨｉの１−入力端に与えられる。よって、出力ホールド信号ＨＯＬＤ−Ｚ及びシフトモード信号ＳＭを“１”にすることによって、対応する行における連想メモリセルに故障が存在するか否かを示すデータがフリップフロップＺＦＦｊに与えられることになる。実施の形態１２において図１４２を用いて説明されたように、一旦不良と判断された行は、対応するフリップフロップＺＦＦｊに“１”が記憶され続ける。
【０３７４】
このようにして得られた信号ＳＯＱｊは、それぞれレジスタＲＥＧｊに記憶される。これらのレジスタＲＥＧｊは、リセット信号ＲＥＤ−ＲＳＴによって一斉にリセットすることができる。信号ＳＯＱｊをスキャンアウトしない場合には、レジスタＲＥＧ０〜ＲＥＧ３を省略することができる。
【０３７５】
良否データＫｊはそれぞれ信号ＳＯＱｊの論理反転を採ることによって得られる。即ち、良否データＫｑの値が“０”であれば、第ｑ行に配された連想メモリセルＣｑｊの少なくとも一つが故障していることを示している。
【０３７６】
ゲート群１４５は良否データＫ０〜Ｋ３を入力して制御信号Ｌ１〜Ｌ３を出力する。ゲート群１４５は、実施の形態１６において図１５２を用いて示されたゲート群１４１と同様の構成を有しており、図１５２において示された良否データＧ０〜Ｇ３、制御信号Ｆ１〜Ｆ３を、それぞれ良否データＫ０〜Ｋ３、制御信号Ｌ１〜Ｌ３と読み替えれば、ゲート群１４５の構成が得られる。
【０３７７】
表１０は、良否データＫ０〜Ｋ３、制御信号Ｌ１〜Ｌ３、並びに後述する原入力信号ＤＤＩ０〜ＤＤＩ３及び出力信号ＸＤＯ０〜ＸＤＯ２が採る値を対応づける論理値表である。
【０３７８】
【表１０】
2006054052.tif 000012
【０３７９】
セレクタ群１４６は、３種の入力信号候補ＸＤＩ０〜ＸＤＩ２と制御信号Ｌ０〜Ｌ３とに基づいて、原入力信号ＤＤＩ０〜ＤＤＩ３を生成する。但し制御信号Ｌ０としては良否データＫ０が採用される。原入力信号ＤＤＩ０は制御信号Ｌ０が“０”，“１”の値を採るのに対応して、それぞれ値φ、入力信号候補ＸＤＩ０の値のいずれかを採る。また、原入力信号ＤＤＩ３は制御信号Ｌ３が“０”，“１”の値を採るのに対応して、それぞれ入力信号候補ＸＤＩ２の値、値φのいずれかを採る。ここで値φは“１”，“０”のいずれでも良いことを示す。
【０３８０】
原入力信号ＤＤＩ１は制御信号Ｌ１が“０”，“１”の値を採るのに対応して、それぞれ入力信号候補ＸＤＩ０，ＸＤＩ１のいずれかの値を採る。同様にして、原入力信号ＤＤＩ２は制御信号Ｌ２が“０”，“１”の値を採るのに対応して、それぞれ入力信号候補ＸＤＩ１，ＸＤＩ２のいずれかを採る。
【０３８１】
つまり、ゲート群１４５とセレクタ群１４６とは、入力信号候補ＸＤＩ０〜ＸＤＩ２を、連想メモリ群の行ごとの良否を示す良否データＫｊ（信号ＳＯＱｊも良否データとしての機能を果たす）に基づいて、行ごとに割り当てるデータ変換を行っていると把握できる。
【０３８２】
この様にして得られた原入力信号ＤＤＩｊはそれぞれ良否データＫｊと共に入力スキャンフリップフロップＳＦＦ−ＤＫｊに与えられる。
【０３８３】
図１５９は図１５５で示される回路において用いられる入力スキャンフリップフロップＳＦＦ−ＤＫｊの構成を示す回路図である。ここで用いられる入力スキャンフリップフロップＳＦＦ−ＤＫｊは、図７で示された構成に対し、更に良否データＫｊに基づいて出力を切り換えるセレクタ９４を追加した構成が必要とされる。
【０３８４】
つまり、ここで示された入力スキャンフリップフロップＳＦＦ−ＤＫｊではそのＱ出力と、スキャン出力端ＳＯから得られる入力信号ＤＩｊとが一致するとは限らない。セレクタ９４の１−入力端にはフリップフロップ９２のＱ出力が与えられ、０−入力端にはセレクタ９０，９１を介してスキャン入力端ＳＩが接続されている。そしてセレクタ９４の選択を制御する端子Ｋには良否データＫｊが与えられる。
【０３８５】
次に連想メモリ回路としてのテストが行われる。例として第０行における故障が、上記のメモリセルＭｉｊの故障の判断によって判明した場合を想定すると、Ｋ０が値“０”を採り、その他の良否データＫｊはすべて値“１”を採る。よって表１０から解るように原入力信号ＤＤＩ０は値φを採る。しかし第０行に対応する入力スキャンフリップフロップＳＦＦ−ＤＫ０においてはセレクタ９４がフリップフロップ９２を介さずに、スキャン入力端子ＳＩとスキャン出力端子ＳＯとを接続するので、第１乃至第３の手法で説明されたテストパターンのシフトインに関しては入力スキャンフリップフロップＳＦＦ−ＤＫ０が素通りされることになる。他の第１行乃至第３行に関しても同様である。
【０３８６】
そしてこのとき、故障が存在する行からの読み出しは行われない。サーチドライバＳＤＫは良否データＫｊが値“１”を採る場合にのみ、図４に示されたサーチドライバＳＤとしての機能を果たすからである。
【０３８７】
図１６０はサーチドライバＳＤＫの構成を示す回路図である。図６で示されたサーチドライバＳＤと比較して、サーチイネーブル信号ＳＥのみならず、良否データＫｊもが値“１”を採らなければサーチ動作は行われない。
【０３８８】
従って、故障が存在する行が一つ存在した場合には、その行を回避して第１乃至第３の手法を用いて連想メモリ回路のテストを行うことができる。
【０３８９】
更に、連想メモリ回路としての通常の動作を行う場合には、ＳＦＦ−ＤＯｊのＱ出力である出力信号候補ＱＤＯ０〜ＱＤＯ３の内、故障していない行に対応するもの３つが出力信号ＸＤＯ０〜ＸＤＯ２として採用される。セレクタ群１４７は制御信号Ｌ０〜Ｌ３に基づいて行選択信号ＸＤＯ０〜ＸＤＯ２を生成する。制御信号Ｌｊが値“１”，“０”を採ることに対応して、それぞれ出力信号ＸＤＯｊとして出力信号候補ＱＤＯｊ，ＱＤＯ（ｊ＋１）が採用される。これによって、故障した行を避けて連想メモリ回路を使用することができる。
【０３９０】
このように行の回避が行われるので、表１０に示されるように、原入力信号ＤＤＩ０が値φを採ったり、原入力信号ＤＤＩｑ，ＤＤＩ（ｑ＋１）（ｑ＝０，１，２）が互いに等しい値を採っても通常の動作には影響しない。また、全く故障が存在しない場合でも第４行は選択されないので、これに対応した信号ＤＤＩ３が値φを採っても通常の動作には影響しない。換言すれば、原入力信号の中にはダミーとなるべきものが生成されることとなる。
【０３９１】
但し、いずれの行においても故障が存在しない場合には連想メモリ回路のテストのテストパターンは４ビットのパターンで行う必要がある。いずれの入力スキャンフリップフロップＳＦＦ−ＤＫｊも素通りされないためである。
【０３９２】
図１６１及び図１６２は入力スキャンフリップフロップＳＦＦ−ＤＫｊの他の構成を示す回路図である。良否データＫｊが値“０”を採る場合において、スキャン出力端子ＳＯとスキャン入力端子ＳＩとを接続すればよい。従って、図１６１及び図１６２がそれぞれ示すように、セレクタ９４の０−入力端にはセレクタ９０の出力端が接続されても良いし、スキャン入力端子ＳＩが直接に接続されても良い。
【図面の簡単な説明】
【０３９３】
【図１】本発明の前駆的思想を示す回路図である。
【図２】本発明の前駆的思想を示す回路図である。
【図３】本発明の実施の形態１を示す回路図である。
【図４】本発明の実施の形態１を示す回路図である。
【図５】本発明の実施の形態１を示す回路図である。
【図６】本発明の実施の形態１を示す回路図である。
【図７】本発明の実施の形態１を示す回路図である。
【図８】図９と相まってこの発明の実施の形態２を示すフローチャートである。
【図９】図８と相まってこの発明の実施の形態２を示すフローチャートである。
【図１０】第１の手法が施された途中経過を順に示す概念図である。
【図１１】第１の手法が施された途中経過を順に示す概念図である。
【図１２】第１の手法が施された途中経過を順に示す概念図である。
【図１３】第１の手法が施された途中経過を順に示す概念図である。
【図１４】第１の手法が施された途中経過を順に示す概念図である。
【図１５】第１の手法が施された途中経過を順に示す概念図である。
【図１６】第１の手法が施された途中経過を順に示す概念図である。
【図１７】第１の手法が施された途中経過を順に示す概念図である。
【図１８】第１の手法が施された途中経過を順に示す概念図である。
【図１９】第１の手法が施された途中経過を順に示す概念図である。
【図２０】第１の手法が施された途中経過を順に示す概念図である。
【図２１】第１の手法が施された途中経過を順に示す概念図である。
【図２２】第１の手法が施された途中経過を順に示す概念図である。
【図２３】第１の手法が施された途中経過を順に示す概念図である。
【図２４】第１の手法が施された途中経過を順に示す概念図である。
【図２５】第１の手法が施された途中経過を順に示す概念図である。
【図２６】第１の手法が施された途中経過を順に示す概念図である。
【図２７】第１の手法が施された途中経過を順に示す概念図である。
【図２８】第１の手法が施された途中経過を順に示す概念図である。
【図２９】第１の手法が施された途中経過を順に示す概念図である。
【図３０】第１の手法が施された途中経過を順に示す概念図である。
【図３１】第１の手法が施された途中経過を順に示す概念図である。
【図３２】第１の手法が施された途中経過を順に示す概念図である。
【図３３】第１の手法が施された途中経過を順に示す概念図である。
【図３４】第１の手法が施された途中経過を順に示す概念図である。
【図３５】第１の手法が施された途中経過を順に示す概念図である。
【図３６】第１の手法が施された途中経過を順に示す概念図である。
【図３７】第１の手法が施された途中経過を順に示す概念図である。
【図３８】第１の手法が施された途中経過を順に示す概念図である。
【図３９】第１の手法が施された途中経過を順に示す概念図である。
【図４０】この発明の実施の形態３を示す回路図である。
【図４１】この発明の実施の形態３を示すタイミングチャートである。
【図４２】この発明の実施の形態３を示す回路図である。
【図４３】この発明の実施の形態３を示す回路図である。
【図４４】この発明の実施の形態３を示す回路図である。
【図４５】この発明の実施の形態３を示す回路図である。
【図４６】この発明の実施の形態３を示す回路図である。
【図４７】この発明の実施の形態３を示す回路図である。
【図４８】この発明の実施の形態３を示す回路図である。
【図４９】この発明の実施の形態４を示す回路図である。
【図５０】この発明の実施の形態４を示す回路図である。
【図５１】図５２と相まってこの発明の実施の形態５を示すフローチャートである。
【図５２】図５１と相まってこの発明の実施の形態５を示すフローチャートである。
【図５３】第２の手法が施された途中経過を順に示す概念図である。
【図５４】第２の手法が施された途中経過を順に示す概念図である。
【図５５】第２の手法が施された途中経過を順に示す概念図である。
【図５６】第２の手法が施された途中経過を順に示す概念図である。
【図５７】第２の手法が施された途中経過を順に示す概念図である。
【図５８】第２の手法が施された途中経過を順に示す概念図である。
【図５９】第２の手法が施された途中経過を順に示す概念図である。
【図６０】第２の手法が施された途中経過を順に示す概念図である。
【図６１】第２の手法が施された途中経過を順に示す概念図である。
【図６２】第２の手法が施された途中経過を順に示す概念図である。
【図６３】第２の手法が施された途中経過を順に示す概念図である。
【図６４】第２の手法が施された途中経過を順に示す概念図である。
【図６５】第２の手法が施された途中経過を順に示す概念図である。
【図６６】第２の手法が施された途中経過を順に示す概念図である。
【図６７】第２の手法が施された途中経過を順に示す概念図である。
【図６８】第２の手法が施された途中経過を順に示す概念図である。
【図６９】第２の手法が施された途中経過を順に示す概念図である。
【図７０】第２の手法が施された途中経過を順に示す概念図である。
【図７１】第２の手法が施された途中経過を順に示す概念図である。
【図７２】第２の手法が施された途中経過を順に示す概念図である。
【図７３】第２の手法が施された途中経過を順に示す概念図である。
【図７４】第２の手法が施された途中経過を順に示す概念図である。
【図７５】第２の手法が施された途中経過を順に示す概念図である。
【図７６】第２の手法が施された途中経過を順に示す概念図である。
【図７７】この発明の実施の形態６を示す回路図である。
【図７８】この発明の実施の形態６を示す回路図である。
【図７９】この発明の実施の形態６を示す回路図である。
【図８０】この発明の実施の形態６を示す回路図である。
【図８１】この発明の実施の形態６を示す回路図である。
【図８２】この発明の実施の形態６を示す回路図である。
【図８３】この発明の実施の形態６を示す回路図である。
【図８４】この発明の実施の形態６を示す回路図である。
【図８５】この発明の実施の形態７を示す回路図である。
【図８６】この発明の実施の形態７を示す回路図である。
【図８７】図５１と相まって、この発明の実施の形態８を示すフローチャートである。
【図８８】図８９と相まってこの発明の実施の形態９を示すフローチャートである。
【図８９】図８８と相まってこの発明の実施の形態９を示すフローチャートである。
【図９０】第３の手法が施された途中経過を順に示す概念図である。
【図９１】第３の手法が施された途中経過を順に示す概念図である。
【図９２】第３の手法が施された途中経過を順に示す概念図である。
【図９３】第３の手法が施された途中経過を順に示す概念図である。
【図９４】第３の手法が施された途中経過を順に示す概念図である。
【図９５】第３の手法が施された途中経過を順に示す概念図である。
【図９６】第３の手法が施された途中経過を順に示す概念図である。
【図９７】第３の手法が施された途中経過を順に示す概念図である。
【図９８】第３の手法が施された途中経過を順に示す概念図である。
【図９９】第３の手法が施された途中経過を順に示す概念図である。
【図１００】第３の手法が施された途中経過を順に示す概念図である。
【図１０１】第３の手法が施された途中経過を順に示す概念図である。
【図１０２】第３の手法が施された途中経過を順に示す概念図である。
【図１０３】第３の手法が施された途中経過を順に示す概念図である。
【図１０４】第３の手法が施された途中経過を順に示す概念図である。
【図１０５】第３の手法が施された途中経過を順に示す概念図である。
【図１０６】第３の手法が施された途中経過を順に示す概念図である。
【図１０７】第３の手法が施された途中経過を順に示す概念図である。
【図１０８】第３の手法が施された途中経過を順に示す概念図である。
【図１０９】第３の手法が施された途中経過を順に示す概念図である。
【図１１０】第３の手法が施された途中経過を順に示す概念図である。
【図１１１】第３の手法が施された途中経過を順に示す概念図である。
【図１１２】第３の手法が施された途中経過を順に示す概念図である。
【図１１３】第３の手法が施された途中経過を順に示す概念図である。
【図１１４】第３の手法が施された途中経過を順に示す概念図である。
【図１１５】第３の手法が施された途中経過を順に示す概念図である。
【図１１６】第３の手法が施された途中経過を順に示す概念図である。
【図１１７】第３の手法が施された途中経過を順に示す概念図である。
【図１１８】第３の手法が施された途中経過を順に示す概念図である。
【図１１９】第３の手法が施された途中経過を順に示す概念図である。
【図１２０】第３の手法が施された途中経過を順に示す概念図である。
【図１２１】第３の手法が施された途中経過を順に示す概念図である。
【図１２２】第３の手法が施された途中経過を順に示す概念図である。
【図１２３】第３の手法が施された途中経過を順に示す概念図である。
【図１２４】第３の手法が施された途中経過を順に示す概念図である。
【図１２５】第３の手法が施された途中経過を順に示す概念図である。
【図１２６】第３の手法が施された途中経過を順に示す概念図である。
【図１２７】第３の手法が施された途中経過を順に示す概念図である。
【図１２８】第３の手法が施された途中経過を順に示す概念図である。
【図１２９】第３の手法が施された途中経過を順に示す概念図である。
【図１３０】第３の手法が施された途中経過を順に示す概念図である。
【図１３１】第３の手法が施された途中経過を順に示す概念図である。
【図１３２】第３の手法が施された途中経過を順に示す概念図である。
【図１３３】第３の手法が施された途中経過を順に示す概念図である。
【図１３４】第３の手法が施された途中経過を順に示す概念図である。
【図１３５】第３の手法が施された途中経過を順に示す概念図である。
【図１３６】第３の手法が施された途中経過を順に示す概念図である。
【図１３７】第３の手法が施された途中経過を順に示す概念図である。
【図１３８】この発明の実施の形態１０を示す回路図である。
【図１３９】この発明の実施の形態１１を示す回路図である。
【図１４０】この発明の実施の形態１１を示す回路図である。
【図１４１】この発明の実施の形態１２を示す回路図である。
【図１４２】この発明の実施の形態１２を示す回路図である。
【図１４３】この発明の実施の形態１２を示すタイミングチャートである。
【図１４４】この発明の実施の形態１２を示すタイミングチャートである。
【図１４５】この発明の実施の形態１２を示すタイミングチャートである。
【図１４６】この発明の実施の形態１２を示すタイミングチャートである。
【図１４７】この発明の実施の形態１３を示す回路図である。
【図１４８】この発明の実施の形態１３を示す回路図である。
【図１４９】この発明の実施の形態１４を示す回路図である。
【図１５０】この発明の実施の形態１４を示す回路図である。
【図１５１】この発明の実施の形態１５を示す回路図である。
【図１５２】この発明の実施の形態１６を示す回路図である。
【図１５３】この発明の実施の形態１６を示す回路図である。
【図１５４】この発明の実施の形態１６を示す回路図である。
【図１５５】この発明の実施の形態１７を示す回路図である。
【図１５６】この発明の実施の形態１７を示す回路図である。
【図１５７】この発明の実施の形態１７を示す回路図である。
【図１５８】この発明の実施の形態１７を示す回路図である。
【図１５９】この発明の実施の形態１７を示す回路図である。
【図１６０】この発明の実施の形態１７を示す回路図である。
【図１６１】この発明の実施の形態１７を示す回路図である。
【図１６２】この発明の実施の形態１７を示す回路図である。
【図１６３】従来の技術を示す回路図である。
【図１６４】従来の技術を示す回路図である。
【符号の説明】
【０３９４】
Ｃ００〜４２  連想メモリセル、Ｔ  クロック信号、ＷＬ０〜４  ワード線、ＳＦＦ−ＤＩ０〜２，ＳＦＦ−ＤＫ０〜３  入力スキャンフリップフロップ、ＳＦＦＷ  スキャンフリップフロップ、ＦＦ１，９２  フリップフロップ、ＲＳ０〜ＲＳ３  リセット・セット・フリップフロップ、ＤＩ０〜３  入力信号、ＳＭ  シフトモード信号、ＨＯＬＤ−Ａ  アドレスホールド信号、ＨＯＬＤ−ＤＩ  入力ホールド信号、ＣＮＴＲ，ＵＤＣＮＴＲ  アドレスカウンタ、ＷＥＣＤ  書き込み原信号、ＷＥ  ライトイネーブル信号、ＷＰＧ  ライトパルスジェネレータ、ＤＭＯＤＥ  ダウン信号、ＦＡ  初期番地検出信号、ＬＡ  最終番地検出信号、ＬＡＤＥＴ  最終番地検出回路、ＦＡＤＥＴ  初期番地検出回路、ＤＥＴ  特定番地検出信号、Ｅ０〜Ｅ３，ＥＸ０〜ＥＸ３  期待値、６０〜６５  期待値発生回路、ＤＣＤＲ  デコーダ、Ｘｉ  デコーダの出力、ＲＳＴ  リセット信号、ＲＰＧ  リセット・パルス発生回路、ＡＬＬ０  ０−一致信号、Ｋ０〜３，Ｇ０〜３  良否データ、Ｚ０〜４  列一致信号、ＱＺ０〜ＱＺ４  一致判定信号候補、Ｚ−ＳＣＡＮ  出力部、Ｌ０〜３，Ｆ０〜３  制御信号、４１〜４３  増減回路、ＺＺ０〜ＺＺ３  一致判定信号、Ｈ０〜４  列指定信号候補、ＤＤＩ０〜３  原入力信号、ＸＤＯ０〜２  出力信号、ＤＯ０〜ＤＯ３  データ出力、ＱＤＯ０〜ＱＤＯ３  出力信号候補、ＳＩ  スキャン入力端子、ＳＯ  スキャン出力端子、９４  セレクタ、１４５  ゲート群、１４６，１４７  セレクタ群、ＸＤＩ０〜２  入力信号候補、ＳＤＫ  サーチドライバ、ＩＮＶ１〜６，ＩＮＶＥ０〜３  インバータ、ＡＮＤ−ＵＰ，ＡＮＤ−ＨＡ，ＡＮＤ０〜３，ＡＮＤＸ０〜３  アンド回路、ＯＲ１〜２，ＯＲＪ１〜２，ＯＲＥ０，ＯＲＥ３  オア回路、ＸＯＲ１〜２，ＸＯＲＷ  イクスクルーシブ・オア回路、ＸＮＯＲ０〜３  イクスクルーシブ・ノア回路。
【図１】
2006054052.tif 000013
【図２】
2006054052.tif 000014
【図３】
2006054052.tif 000015
【図４】
2006054052.tif 000016
【図５】
2006054052.tif 000017
【図６】
2006054052.tif 000018
【図７】
2006054052.tif 000019
【図８】
2006054052.tif 000020
【図９】
2006054052.tif 000021
【図１０】
2006054052.tif 000022
【図１１】
2006054052.tif 000023
【図１２】
2006054052.tif 000024
【図１３】
2006054052.tif 000025
【図１４】
2006054052.tif 000026
【図１５】
2006054052.tif 000027
【図１６】
2006054052.tif 000028
【図１７】
2006054052.tif 000029
【図１８】
2006054052.tif 000030
【図１９】
2006054052.tif 000031
【図２０】
2006054052.tif 000032
【図２１】
2006054052.tif 000033
【図２２】
2006054052.tif 000034
【図２３】
2006054052.tif 000035
【図２４】
2006054052.tif 000036
【図２５】
2006054052.tif 000037
【図２６】
2006054052.tif 000038
【図２７】
2006054052.tif 000039
【図２８】
2006054052.tif 000040
【図２９】
2006054052.tif 000041
【図３０】
2006054052.tif 000042
【図３１】
2006054052.tif 000043
【図３２】
2006054052.tif 000044
【図３３】
2006054052.tif 000045
【図３４】
2006054052.tif 000046
【図３５】
2006054052.tif 000047
【図３６】
2006054052.tif 000048
【図３７】
2006054052.tif 000049
【図３８】
2006054052.tif 000050
【図３９】
2006054052.tif 000051
【図４０】
2006054052.tif 000052
【図４１】
2006054052.tif 000053
【図４２】
2006054052.tif 000054
【図４３】
2006054052.tif 000055
【図４４】
2006054052.tif 000056
【図４５】
2006054052.tif 000057
【図４６】
2006054052.tif 000058
【図４７】
2006054052.tif 000059
【図４８】
2006054052.tif 000060
【図４９】
2006054052.tif 000061
【図５０】
2006054052.tif 000062
【図５１】
2006054052.tif 000063
【図５２】
2006054052.tif 000064
【図５３】
2006054052.tif 000065
【図５４】
2006054052.tif 000066
【図５５】
2006054052.tif 000067
【図５６】
2006054052.tif 000068
【図５７】
2006054052.tif 000069
【図５８】
2006054052.tif 000070
【図５９】
2006054052.tif 000071
【図６０】
2006054052.tif 000072
【図６１】
2006054052.tif 000073
【図６２】
2006054052.tif 000074
【図６３】
2006054052.tif 000075
【図６４】
2006054052.tif 000076
【図６５】
2006054052.tif 000077
【図６６】
2006054052.tif 000078
【図６７】
2006054052.tif 000079
【図６８】
2006054052.tif 000080
【図６９】
2006054052.tif 000081
【図７０】
2006054052.tif 000082
【図７１】
2006054052.tif 000083
【図７２】
2006054052.tif 000084
【図７３】
2006054052.tif 000085
【図７４】
2006054052.tif 000086
【図７５】
2006054052.tif 000087
【図７６】
2006054052.tif 000088
【図７７】
2006054052.tif 000089
【図７８】
2006054052.tif 000090
【図７９】
2006054052.tif 000091
【図８０】
2006054052.tif 000092
【図８１】
2006054052.tif 000093
【図８２】
2006054052.tif 000094
【図８３】
2006054052.tif 000095
【図８４】
2006054052.tif 000096
【図８５】
2006054052.tif 000097
【図８６】
2006054052.tif 000098
【図８７】
2006054052.tif 000099
【図８８】
2006054052.tif 000100
【図８９】
2006054052.tif 000101
【図９０】
2006054052.tif 000102
【図９１】
2006054052.tif 000103
【図９２】
2006054052.tif 000104
【図９３】
2006054052.tif 000105
【図９４】
2006054052.tif 000106
【図９５】
2006054052.tif 000107
【図９６】
2006054052.tif 000108
【図９７】
2006054052.tif 000109
【図９８】
2006054052.tif 000110
【図９９】
2006054052.tif 000111
【図１００】
2006054052.tif 000112
【図１０１】
2006054052.tif 000113
【図１０２】
2006054052.tif 000114
【図１０３】
2006054052.tif 000115
【図１０４】
2006054052.tif 000116
【図１０５】
2006054052.tif 000117
【図１０６】
2006054052.tif 000118
【図１０７】
2006054052.tif 000119
【図１０８】
2006054052.tif 000120
【図１０９】
2006054052.tif 000121
【図１１０】
2006054052.tif 000122
【図１１１】
2006054052.tif 000123
【図１１２】
2006054052.tif 000124
【図１１３】
2006054052.tif 000125
【図１１４】
2006054052.tif 000126
【図１１５】
2006054052.tif 000127
【図１１６】
2006054052.tif 000128
【図１１７】
2006054052.tif 000129
【図１１８】
2006054052.tif 000130
【図１１９】
2006054052.tif 000131
【図１２０】
2006054052.tif 000132
【図１２１】
2006054052.tif 000133
【図１２２】
2006054052.tif 000134
【図１２３】
2006054052.tif 000135
【図１２４】
2006054052.tif 000136
【図１２５】
2006054052.tif 000137
【図１２６】
2006054052.tif 000138
【図１２７】
2006054052.tif 000139
【図１２８】
2006054052.tif 000140
【図１２９】
2006054052.tif 000141
【図１３０】
2006054052.tif 000142
【図１３１】
2006054052.tif 000143
【図１３２】
2006054052.tif 000144
【図１３３】
2006054052.tif 000145
【図１３４】
2006054052.tif 000146
【図１３５】
2006054052.tif 000147
【図１３６】
2006054052.tif 000148
【図１３７】
2006054052.tif 000149
【図１３８】
2006054052.tif 000150
【図１３９】
2006054052.tif 000151
【図１４０】
2006054052.tif 000152
【図１４１】
2006054052.tif 000153
【図１４２】
2006054052.tif 000154
【図１４３】
2006054052.tif 000155
【図１４４】
2006054052.tif 000156
【図１４５】
2006054052.tif 000157
【図１４６】
2006054052.tif 000158
【図１４７】
2006054052.tif 000159
【図１４８】
2006054052.tif 000160
【図１４９】
2006054052.tif 000161
【図１５０】
2006054052.tif 000162
【図１５１】
2006054052.tif 000163
【図１５２】
2006054052.tif 000164
【図１５３】
2006054052.tif 000165
【図１５４】
2006054052.tif 000166
【図１５５】
2006054052.tif 000167
【図１５６】
2006054052.tif 000168
【図１５７】
2006054052.tif 000169
【図１５８】
2006054052.tif 000170
【図１５９】
2006054052.tif 000171
【図１６０】
2006054052.tif 000172
【図１６１】
2006054052.tif 000173
【図１６２】
2006054052.tif 000174
【図１６３】
2006054052.tif 000175
【図１６４】
2006054052.tif 000176