JP3816560B2 - 連想メモリ回路のテスト方法及び連想メモリ回路のテスト回路 - Google Patents

連想メモリ回路のテスト方法及び連想メモリ回路のテスト回路 Download PDF

Info

Publication number
JP3816560B2
JP3816560B2 JP33706495A JP33706495A JP3816560B2 JP 3816560 B2 JP3816560 B2 JP 3816560B2 JP 33706495 A JP33706495 A JP 33706495A JP 33706495 A JP33706495 A JP 33706495A JP 3816560 B2 JP3816560 B2 JP 3816560B2
Authority
JP
Japan
Prior art keywords
signal
input
output
circuit
associative memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP33706495A
Other languages
English (en)
Other versions
JPH09180498A (ja
Inventor
秀史 前野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP33706495A priority Critical patent/JP3816560B2/ja
Priority to US08/649,281 priority patent/US5848074A/en
Priority to DE19630746A priority patent/DE19630746A1/de
Priority to KR1019960033313A priority patent/KR100232991B1/ko
Publication of JPH09180498A publication Critical patent/JPH09180498A/ja
Application granted granted Critical
Publication of JP3816560B2 publication Critical patent/JP3816560B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318541Scan latches or cell details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/20Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は連想メモリ(CAM:Content Addressable Memory)に関し、特にその故障を検出する技術に関する。
【0002】
【従来の技術】
図163は従来のCAM200の構成を概念的に示す回路図であり、図164はCAM200の備える連想メモリセルCijを示す回路図である。
【0003】
CAM200の連想メモリセルCijは、RAMのメモリセルMijにイクスクルーシブ・オア回路XORijを付加したものである。
【0004】
イクスクルーシブ・オア回路XORijはメモリセルMijの保持するデータとサーチ線SLjのデータとを比較し、両者が一致している場合には“0”を、不一致の場合は“1”をその結果Uijとして出力する。
【0005】
連想メモリセルCijは複数個用いられて2次元アレイを構成している。ここではワード線WLiに沿った方向を「列」、これに直交する方向を「行」とする。図163においては連想メモリセルCijは3行4列に配列されている場合が例示されている(i=0,1,2,3;j=0,1,2)。
【0006】
ワード線WLiはワード線ドライバWLDによりドライブされる。ワード線ドライバはデコーダDCDRの出力Xiにより、いずれか一つが選択的に活性状態になる。なお、ワード線ドライバWLDは省略されることもある。
【0007】
ライトイネーブル信号WEがイネーブル状態の時、ビット線BLjは書き込みドライバWDにより、入力信号DIjに従ってドライブされる。また、ビット線BLjの状態はセンスアンプSAにより検出され、それぞれデータ出力DOjに出力される。
【0008】
各列毎に一致出力Uijの論理和の反転が採られ、列一致信号Ziが出力される。この論理和の反転の生成は、図163においてはゲート回路NOR0,NOR1,NOR2,NOR3を用いて表現されている。
【0009】
第i列の連想メモリセルCi0,Ci1,Ci2の保持するデータが、それぞれサーチデータSL0,SL1,SL2と一致した場合には列一致信号Ziが1になる。第i列において一つでも不一致があれば、列一致信号Ziは“0”になる。
【0010】
ヒット信号HITは全ての列一致信号Ziの論理和をオア回路ORHに入力して作成する。従って、サーチデータの組(SL0,SL1,SL2)と一致するデータの組を記憶する、連想メモリセルCij列が1つ以上あればヒット信号HITは“1”になる。
【0011】
【発明が解決しようとする課題】
このようなCAMの良否をテストする際には、CAMの連想メモリセルCijに予め所定の内容を記憶させ、入力信号DI0,DI1,DI2として検査データを与え、所定の内容と検査データとの比較を行う必要があり、しかもこの検査データと所定の内容とを種々のパターンで変化させる必要がある。このような、テストの為のパターン(テストパターン)が膨大となった場合、CAMの連想メモリセルCijに記憶させ、また検査データを入力することを逐一行うのは非常に大きな手間と時間がかかる。
【0012】
この発明は上記の課題を解決するために為されたものであり、検査データのテストパターンを、更には連想メモリセルに記憶させるべきパターンをも自動的に生成し、CAMの良否を容易にテストすることができる技術を提供することを目的としている。
【0013】
更に、不良と判断された行、列を他の冗長行、冗長列に代替させる技術を提供することをも目的としている。
【0014】
【課題を解決するための手段】
この発明のうち請求項1にかかるものは、第i列(0≦i≦n−1)と第j行(0≦j≦m−1)の交点にそれぞれ配された連想メモリセルを有する連想メモリ回路をテストする、連想メモリ回路のテスト方法である。そして、(a)前記連想メモリセルの全てを初期化する工程と、(b)第0乃至第(m−1)の入力信号からなるテストパターンを初期化する工程と、(c)前記テストパターンを、行番号jを更新しつつ前記第jの入力信号のみを論理反転させて更新する工程と、(d)前記テストパターンを列番号iを更新しつつ前記第i列に配された前記連想メモリセルに書き込む工程と、(e)第k列(0≦k≦n−1)毎に、第j行に配された前記連想メモリセルの保持する内容を、前記第jの入力信号と比較する工程とを備える。
【0015】
この発明のうち請求項2にかかるものは、請求項1記載の連想メモリ回路のテスト方法であって、前記工程(c)において行番号jが更新される毎に、前記工程(d),(e)が対となって繰り返される。
【0016】
この発明のうち請求項3にかかるものは、請求項1記載の連想メモリ回路のテスト方法であって、前記工程(c),(e)が、また、前記工程(d),(e)が、それぞれ対となって実行される。
【0017】
この発明のうち請求項4にかかるものは、請求項1記載の連想メモリ回路のテスト方法であって、前記工程(d)において列番号iが更新される毎に、前記工程(c),(e)が対となって繰り返される。
【0018】
この発明のうち請求項5にかかるものは、第i列(0≦i≦n−1)と第j行(0≦j≦m−1)の交点にそれぞれ配された連想メモリセルを有する連想メモリ回路をテストする、連想メモリ回路のテスト回路である。そして、入力端及び出力端を有する第1のインバータと、前記第j行に配された前記連想メモリセルに対応して設けられ、その各々がスキャン入力端とスキャン出力端とを有し、いずれも同一のクロック信号によって制御される第jの入力スキャンフリップフロップとを備える。前記第0の入力スキャンフリップフロップの前記入力端には前記第1のインバータの前記出力端が接続され、前記第p(1≦p≦m−1)の入力スキャンフリップフロップの前記入力端には前記第(p−1)の入力スキャンフリップフロップの前記出力端が接続され、前記第(m−1)の入力スキャンフリップフロップの前記出力端には前記第1のインバータの前記入力端が接続され、前記第jの入力スキャンフリップフロップの保持する入力信号は、前記第j行に配された前記連想メモリセルに対して、前記第i列に配された前記連想メモリセル毎に書き込まれ、第k列(0≦k≦n−1)毎に、前記第j行に配された前記連想メモリセルの保持する内容が、それぞれ前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較される。
【0019】
この発明のうち請求項6にかかるものは、請求項5記載の連想メモリ回路のテスト回路であって、前記第(n−1)列に配された前記連想メモリセルが選択されたことを検出する最終番地検出信号に基づいて、前記第jの入力スキャンフリップフロップの全てに対して前記第jの入力信号を保持させる入力ホールド信号の活性/非活性が決定される。そして、アドレスホールド信号の非活性/活性に対応して、それぞれ前記クロック信号に基くカウント機能を実行/停止し、前記カウント機能によって列番号iの更新をするカウンタと、前記最終番地検出信号を、前記クロック信号に基づいて保持し、1クロックサイクル後に前記アドレスホールド信号として出力するスキャンフリップフロップと、前記アドレスホールド信号が非活性である場合に、前記クロック信号に基づいて、前記連想メモリセルへの前記入力信号の書き込みを許可する書き込み許可信号を発生する書き込み許可信号発生部とを更に備える。
【0020】
この発明のうち請求項7にかかるものは、請求項5記載の連想メモリ回路のテスト回路であって、アドレスホールド信号の非活性/活性に対応して、それぞれ前記クロック信号に基くカウント機能を実行/停止し、前記カウント機能によって列番号iの更新をし、前記カウント機能が働く際にはカウント方向信号の非活性/活性に対応して、それぞれアップカウント/ダウンカウントするカウンタと、第(n−1)列に配された前記連想メモリセルが選択されたことを検出する最終番地検出信号が与えられる第1入力端と、第0列に配された前記連想メモリセルが選択されたことを検出する初期番地検出信号が与えられる第2入力端と、前記カウント方向信号の非活性/活性に対応して、それぞれ自身の前記第1入力端及び自身の前記第2入力端に与えられた値を特定番地検出信号として出力する出力端とを有するセレクタと、前記第0の入力信号に基づいて、前記カウント方向信号を生成する第1の論理回路と、前記第(m−1)の入力スキャンフリップフロップの前記出力端から得られる論理を反転した値と前記第0の入力信号との排他的論理和と、前記セレクタの出力との論理積を、前記アドレスホールド信号として出力する第2の論理回路とを更に備え、前記特定番地検出信号に基づいて、前記第jの入力スキャンフリップフロップの全てに対して前記第jの入力信号を保持させる入力ホールド信号の活性/非活性が決定される。
【0021】
この発明のうち請求項8にかかるものは、請求項5記載の連想メモリ回路のテスト回路であって、アドレスホールド信号の非活性/活性に対応して、それぞれ前記クロック信号に基くカウント機能を実行/停止し、前記カウント機能によって列番号iの更新をするカウンタと、入力端と、前記クロック信号に基づいて自身の前記入力端に与えられた値を保持し、1クロックサイクル後にこれを出力するスキャンフリップフロップと、前記スキャンフリップフロップの前記出力端に接続された入力端と、前記スキャンフリップフロップの前記入力端に接続された出力端とを有する第2のインバータと、前記スキャンフリップフロップの出力が非活性である場合に、前記クロック信号に基づいて、前記連想メモリセルへの前記入力信号の書き込みを許可する書き込み許可信号を発生する書き込み許可信号発生部とを更に備え、前記アドレスホールド信号は、前記第jの入力信号がそれぞれ特定の論理値を採り、かつ前記スキャンフリップフロップの出力が非活性化し、前記スキャンフリップフロップの出力は、前記第jの入力スキャンフリップフロップの全てに対して前記第jの入力信号を保持させる入力ホールド信号として機能する。
【0022】
この発明のうち請求項9にかかるものは、請求項8記載の連想メモリ回路のテスト回路であって、前記第0及び前記第(m−1)の入力信号、並びに前記スキャンフリップフロップの出力を入力し、前記アドレスホールド信号を出力する論理回路を更に備える。
【0023】
この発明のうち請求項10にかかるものは、請求項6記載の連想メモリ回路のテスト回路であって、前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、前記連想メモリ回路のテスト回路は前記スキャンフリップフロップの出力と、前記第0乃至第(n−1)のデコード出力を受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路を更に備え、前記期待値生成回路は前記第q乃至第(n−1)のデコード出力(0≦q≦n−2)の論理和を出力する第qのOR回路と、前記第qのOR回路の出力と、前記スキャンフリップフロップの出力の論理反転とを入力して前記第q列に対応する第qの期待値を出力する第qのAND回路と、前記第(n−1)のデコード出力と、前記スキャンフリップフロップの出力とを入力して前記第(n−1)列に対応する第(n−1)の期待値を出力する第(n−1)のAND回路とを有し、前記期待値群は前記第0乃至第(n−1)の期待値の集合である。
【0024】
この発明のうち請求項11にかかるものは、請求項6記載の連想メモリ回路のテスト回路であって、前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、前記連想メモリ回路のテスト回路は前記スキャンフリップフロップの出力と、前記第0乃至第(n−1)のデコード出力を受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路を更に備え、前記期待値生成回路は、前記スキャンフリップフロップの出力が与えられるリセット端と、前記第iのデコード出力が与えられるセット端と、前記第i列に対応する第iの期待値を出力する出力端とをそれぞれが含む、第iのリセット・セット・フリップフロップを有し、前記期待値群は前記第0乃至第(n−1)の期待値の集合である。
【0025】
この発明のうち請求項12にかかるものは、請求項7記載の連想メモリ回路のテスト回路であって、前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、前記連想メモリ回路のテスト回路は前記特定番地検出信号と、前記カウント方向信号と、前記第0乃至第(n−1)のデコード出力とを受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路を更に備え、前記期待値生成回路は前記特定番地検出信号が与えられ、前記クロック信号に基づいて動作するフリップフロップと、前記フリップフロップの出力が与えられるリセット端と、前記第iのデコード出力が与えられるセット端と、をそれぞれが含む、第iのリセット・セット・フリップフロップと、前記カウント方向信号の論理反転と、前記第0のリセット・セット・フリップフロップの出力との論理和を、前記第0列に対応する第0の期待値として出力する第1のOR回路と、前記カウント方向信号と、前記第(n−1)のリセット・セット・フリップフロップの出力との論理和を、前記第(n−1)列に対応する第(n−1)の期待値として出力する第2のOR回路とを有し、前記第乃至第(n−2)列にそれぞれ対応する第2乃至第(n−2)の期待値として前記第乃至第(n−2)のリセット・セット・フリップフロップの出力が採用され、前記期待値群は前記第0乃至第(n−1)の期待値の集合である。
【0026】
この発明のうち請求項13にかかるものは、請求項7記載の連想メモリ回路のテスト回路であって、前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、前記連想メモリ回路のテスト回路は前記特定番地検出信号と、前記第0乃至第(n−1)のデコード出力とを受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路を更に備え、前記期待値生成回路は前記特定番地検出信号が与えられ、前記クロック信号に基づいて動作するフリップフロップと、前記フリップフロップの出力が与えられるリセット端と、前記第iのデコード出力が与えられるセット端と、非反転出力端と、反転出力端とをそれぞれが含む、第iのリセット・セット・フリップフロップと、前記第0のリセット・セット・フリップフロップの前記反転出力端に接続された入力端と、前記第0列に対応する第0の期待値を出力する出力端とを含む第1のインバータと、前記第(n−1)のリセット・セット・フリップフロップの前記反転出力端に接続された入力端と、前記第(n−1)列に対応する第(n−1)の期待値を出力する出力端とを含む第2のインバータとを有し、前記第乃至第(n−2)列にそれぞれ対応する第2乃至第(n−2)の期待値として前記第乃至第(n−2)のリセット・セット・フリップフロップの前記非反転出力端に出力される値が採用され、前記期待値群は前記第0乃至第(n−1)の期待値の集合である。
【0027】
この発明のうち請求項14にかかるものは、請求項8記載の連想メモリ回路のテスト回路であって、前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、前記連想メモリ回路のテスト回路は前記jの入力信号がそれぞれ特定の論理値を採る場合を検出する入力値検出回路と、前記入力値検出回路の出力と、前記スキャンフリップフロップの出力と、前記第0乃至第(n−1)のデコード出力とを受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路を更に備え、前記期待値生成回路は前記入力値検出回路の出力と前記スキャンフリップフロップの出力との論理和に基づいてリセット信号を出力するリセット・パルス発生回路と、前記リセット信号が与えられるリセット端と、前記第iのデコード出力が与えられるセット端と、非反転出力端と、反転出力端とをそれぞれが含む、第iのリセット・セット・フリップフロップと、前記第iのリセット・セット・フリップフロップの前記反転出力端及び前記非反転出力端がそれぞれ接続された第1及び第2入力端と、前記入力値検出回路の出力に基づいて自身の前記第1及び第2入力端に与えられた値を、前記第i列に対応する第iの期待値として出力する出力端とを、それぞれが含む第iのセレクタとを有し、前記期待値群は前記第0乃至第(n−1)の期待値の集合である。
【0028】
この発明のうち請求項15にかかるものは、請求項14記載の連想メモリ回路のテスト回路であって、前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、前記連想メモリ回路のテスト回路は前記第jの入力信号がそれぞれ特定の論理値を採る場合を検出する入力検出回路と、前記入力値検出回路の出力と、前記スキャンフリップフロップの出力と、前記第0乃至第(n−1)のデコード出力とを受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路を更に備え、前記期待値生成回路は前記入力値検出回路の出力と前記スキャンフリップフロップの出力とを入力するイクスクルーシブ・オア回路と、前記イクスクルーシブ・オア回路の出力と、前記第iのデコード出力とをそれぞれが入力する、第iのAND回路と、前記第iのAND回路の出力と、前記入力値検出回路の出力とをそれぞれ入力し、前記第i列に対応する第iの期待値として出力する第iのイクスクルーシブ・ノア回路とを有し、前記期待値群は前記第0乃至第(n−1)の期待値の集合である。
【0034】
【発明の実施の形態】
A.本発明の前駆的思想.
本発明の具体的な説明に入る前にその前駆的思想を説明する。
【0035】
図1はCAMのテスト回路を示す回路図である。通常のLSI設計でも用いられているように、CAMに対しても単純なスキャンパス方式のテスト回路を付加することができる。
【0036】
アドレス用のスキャンパスを構成するスキャンフリップフロップSFF−A0,SFF−A1は、それぞれ外部からのアドレス信号DA0,DA1を、或いはスキャン信号SIAを、CAMのアドレス信号A0,A1として出力する。データ入力用のスキャンパスを構成するスキャンフリップフロップSFF−DI0,SFF−DI1,SFF−DI2は、それぞれ外部からの入力信号DDI0,DDI1,DDI2を、或いはスキャン入力信号SIDIを、CAMへの入力信号DI0,DI1,DI2として出力する。列一致信号用のスキャンパスを構成するスキャンフリップフロップSFF−Z0,SFF−Z1,SFF−Z2,SFF−Z3は、それぞれCAMの列一致信号Z0,Z1,Z2,Z3を、或いはスキャン信号SIZを入力し、スキャン信号SOZを出力する。これらのスキャンフリップフロップの全てにはシフトモード信号SMが与えられており、その値が“0”を採る場合にはスキャンフリップフロップは通常のフリップフロップとして機能し、“1”を採る場合にはスキャンパスを構成してスキャン信号を伝達する。
【0037】
本図ではアドレス用のスキャンパスの出力するスキャン信号SOAは、データ入力用のスキャンパスの入力するスキャン入力信号SIDIとなり、データ入力用のスキャンパスの出力するスキャン信号SODIは列一致信号用のスキャンパスの入力するスキャン入力信号SIとなっている。つまり、アドレス用のスキャンパス、データ入力用のスキャンパス、列一致信号用のスキャンパスは直列に接続されているが、必ずしもこのような接続に限定されない。
【0038】
図2は上記のいずれのスキャンパスにも用いることができるスキャンフリップフロップの構成を示す回路図である。シフトモード信号SMが“1”のときはスキャン入力端子SIからの入力を、シフトモード信号SMが“0”のときはD端子からの入力を、それぞれ出力するセレクタと、このセレクタの出力が与えられるフリップフロップとから構成されている。このフリップフロップは端子Tに与えられるクロック信号によって動作する。
【0039】
スキャンパス方式のテスト回路では、シフトモード信号SMを“1”にしてシフト動作を行い、被テスト回路であるCAMの入力としてテストパターンを与える。具体的には、スキャン信号SIAをスキャンフリップフロップSFF−A0,SFF−A1へ順次伝達し、伝達された内容をアドレス信号A0,A1として与える。その一方、スキャン入力信号SIDIをスキャンフリップフロップSFF−DI0,SFF−DI1,SFF−DI2へ順次伝達し、伝達された内容を入力信号DI0,DI1,DI2として与える。
【0040】
既にCAMの連想メモリセルCijには所定の内容が記憶されており、これと比較されるべき検査データである入力信号DI0,DI1,DI2との一致/不一致が判断される。
【0041】
シフトモード信号を“0”にして通常動作モードになり、この検査データに対する応答出力である列一致信号ZiをスキャンフリップフロップSFF−Z0,SFF−Z1,SFF−Z2,SFF−Z3に取り込む。その後、再度シフトモードでシフト動作を行い、列一致信号Ziが読み出される。
【0042】
このようにCAMのテストにおいてスキャンパス方式を適用することで、検査データをスキャンパスからCAMへと取り込むことができる。しかし、この前駆的思想では、スキャン入力信号SIDIとしての膨大な検査データのパターン(テストパターン)を逐一作成しなければならない。
【0043】
B.本発明の基本的な考え方(実施の形態1).
図3は本発明の基本的な考え方を示す回路図である。CAM100の検査データのテストパターンを自動的に作成する技術を示すため、入力信号DI0,DI1,DI2を与える構成の近傍のみが示されている。
【0044】
図4及び図5はそれぞれ図163及び図164に対応しており、CAM100及び連想メモリセルCijの構成を示す回路図である。CAM100はCAM200と同等の機能のものをより具体的に示したものである。ただし、ヒット信号HITを作成するオア回路ORHは省略している。
【0045】
図5ではRAMのメモリセルMijとして一般的なスタティックRAMで用いられている回路を示している。即ちメモリセルMijは互いに逆並列に接続されたインバータINVA,INVBと、非反転ビット線BLjとインバータINVAの入力端とを接続するNMOSトランジスタN1と、反転ビット線BLjBとインバータINVBの入力端とを接続するNMOSトランジスタN2とから構成されている。RAMのメモリセルの動作については説明を省略する。
【0046】
CAMの連想メモリセルCijは、RAMのメモリセルMijにNMOSトランジスタN3,N4,N5,N6を付加することにより構成されている。トランジスタN3,N4はインバータINVAの入力端と接地との間で直列に接続され、トランジスタN5,N6はインバータINVBの入力端と接地との間で直列に接続されている。トランジスタN3,N5のゲートはそれぞれインバータINVAの入力端及びインバータINVBの入力端に接続され、トランジスタN6,N4のゲートはそれぞれ非反転サーチ線SLjと反転サーチ線SLjBに接続されている。
【0047】
メモリセルMijの保持データはインバータINVAの入力端とインバータINVBの出力端との接続点において保持される値である。また、検査データは非反転サーチ線SLjに載るサーチデータの組からなる。例えば、非反転サーチ線SL0,SL1,SL2に載るサーチデータがそれぞれ“0”,“1”,“1”であれば、検査データは“011”となる。
【0048】
列一致信号Ziが伝達される伝達線(以降では、簡単のため、この伝達線もZiとして示すことがある)は、それぞれ抵抗Riにより“H”レベル(電位VDD、ここでは“1”に相当する)にプルアップされている。
【0049】
第i列の連想メモリセルCi0,Ci1,Ci2内のトランジスタN3,N4,N5,N6及び抵抗Riにより、図164における各列のイクスクルーシブ・オア回路XORi0,XORi1,XORi2および図163におけるゲート回路NORiに相当する機能が実現されている。
【0050】
入力信号DIiに基づいて、その反転した信号DIiBが生成される。これらの信号の対(DIi,DIiB)はいずれも書き込みドライバWD及びサーチドライバSDに与えられる。
【0051】
図6はサーチドライバSDの構成を示す回路図である。サーチドライバSDは、サーチイネーブル信号SEが“1”の場合には、非反転サーチ線SLj及び反転サーチ線SLjBにそれぞれ信号DIi,DIiBを与える。これによって検査データと第i列の連想メモリセルCi0,Ci1,Ci2(Mi0,Mi1,Mi2)の保持するデータとの比較、即ちサーチ動作が行われる。一方、サーチイネーブル信号SEが“0”の時には、サーチドライバSDは非反転サーチ線SLjと反転サーチ線SLjBのいずれにも論理“0”を与える。これによってトランジスタN4,N6がOFFとなり、サーチ動作は行われない。
【0052】
今、ある一つの連想メモリセルCijの保持データが例えば“0”であれば、トランジスタN3,N5はそれぞれOFF、ONしている。この時、第j行のサーチデータ、即ち非反転サーチ線SLjに載る信号が“0”の場合には、トランジスタN4,N6はそれぞれON、OFFする。よってこの連想メモリセルCijにおいては、伝達線Ziを接地することがない。
【0053】
同様にして、保持データが“1”、サーチデータが“1”の場合にも、トランジスタN3,N4,N5,N6はそれぞれON、OFF、OFF、ONし、この連想メモリセルCijにおいては、伝達線Ziを接地することがない。
【0054】
従って、ある列において記憶されるデータが検査データと一致する場合には、列一致信号Ziは抵抗Riによってプルアップされる以外に電位を決定する要因がないので、その値は“1”(“H”レベル;電位VDD)となる。
【0055】
一方、連想メモリセルCijの保持データが“0”であり、サーチデータが“1”の場合には、トランジスタN3,N4,N5,N6はそれぞれOFF、OFF、ON、ONし、この連想メモリセルCijにおいて伝達線Ziを接地する。同様にして、連想メモリセルCijの保持データが“1”であり、サーチデータが“0”の場合にも伝達線Ziが接地される。
【0056】
従って、ある列において記憶されるデータと検査データとが、その一部でも一致しない場合には、列一致信号Ziは“0”となる。
【0057】
なお、抵抗Riの代わりにプリチャージ用のトランジスタを用いることもできるし、非反転ビット線BLi及び反転ビット線BLiBにはビット線負荷やプリチャージ用トランジスタが接続される事もある。
【0058】
図3に戻って説明を続ける。特に断らない限り、セレクタにおいて“0”と記載された入力端(以降「0−入力端」と称す)に与えられる信号はセレクタの制御端に与えられる値が“0”の場合に出力され、“1”と記載された入力端(以降「1−入力端」と称す)に与えられる信号はセレクタの制御端に与えられる値が“1”の場合に出力される。
【0059】
セレクタSEL1の0−入力端にはスキャンパスへ入力するスキャン信号(以降「スキャン入力」と称す)SIDIが、1−入力端にはインバータINV1の出力が、それぞれ与えられる。セレクタSEL1の制御端にはテスト信号CAMTESTが与えられ、その値が“0”である場合にはスキャン入力SIDIを、“1”である場合にはインバータINV1の出力を、それぞれ出力する。
【0060】
インバータINV1はスキャンパスから出力されるスキャン信号(以降「スキャン出力」と称す)SODIを反転させてセレクタSEL1の1−入力端に与える。従って、テスト信号CAMTESTが“1”であれば、スキャンフリップフロップSFF−DI0,SFF−DI1,SFF−DI2及びインバータINV1はこの順に循環的に直列に接続されていることになる。そしてスキャン入力SIDIは、スキャンフリップフロップSFF−DI2のスキャン出力を反転させたものとなっている。
【0061】
従って、CAM100のテストを行う際にはテスト信号CAMTESTを“1”とすることにより、スキャンフリップフロップSFF−DI0,SFF−DI1,SFF−DI2の保持するデータ(入力信号DI0,DI1,DI2)は、図示されないが共通に与えられるクロック信号と同期して以下のように変化する(但し、保持データの初期値を(0,0,0)とする)。
【0062】
(0,0,0)→(1,0,0)→(1,1,0)→(1,1,1)→(0,1,1)→(0,0,1)→(0,0,0)→…※
これにより上記の検査データを予め逐一作成し、これをシフトさせて各スキャンフリップフロップに与えるという作業は必要ない。一旦、各スキャンフリップフロップの保持データの初期値を設定することのみで、入力信号DI0〜DI2に対する上記のテストパターンを自己発生できる。
【0063】
テスト信号CAMTESTを“0”にすることにより、通常のスキャンパスを構成することもできる。
【0064】
図7は図3で用いられるスキャンフリップフロップSFF−DIjの構成例を示す回路図である。同図(a),(b),(c)に示された回路のいずれも、シフトモード信号SMのみならず、クロック信号T及びホールド信号をも入力する。ホールド信号は端子HLDに与えられる。
【0065】
クロック信号Tはスキャンフリップフロップの動作に必須であるが、更にホールド信号を入力することにより、CAMのテスト時に、クロック信号Tに関わらずにデータを保持することができるという利点がある。この利点は、スキャンフリップフロップSFF−DI0,SFF−DI1,SFF−DI2の保持するデータを入力信号DI0,DI1,DI2としてCAM100に与える際に、保持するデータの更新と錯綜しないようにする為に必要である。
【0066】
図7(a)に示されたスキャンフリップフロップSFF−DIjは、セレクタ91と、フリップフロップ92と、オア回路93とで構成されている。セレクタ91はD端子とスキャン入力端子SIにそれぞれ接続された0−入力端及び1−入力端とを有し、シフトモード信号SMで制御される。オア回路93はホールド信号とクロック信号Tとの論理和を生成する。フリップフロップ92は、オア回路93の出力に同期してセレクタ91の出力を保持・伝達する。オア回路93は複数のスキャンフリップフロップで共有することも可能である。ホールド信号を“1”にすることによりオア回路93の出力を“1”に固定し、フリップフロップ92をデータ保持状態にできる。
【0067】
図7(b)に示されたスキャンフリップフロップSFF−DIjは、セレクタ90,91と、フリップフロップ92とで構成されている。セレクタ90の0−入力端にはスキャン入力端子SIが接続され、1−入力端にはフリップフロップ92の出力端が接続され、ホールド信号によって動作が制御される。セレクタ91の0−入力端にはD端子が、1−入力端にはセレクタ90の出力端が、それぞれ与えられ、シフトモード信号SMによって動作が制御される。フリップフロップ92はクロック信号Tによって制御され、セレクタ91の出力を保持・伝達する。ホールド信号及びシフトモード信号SMを“1”に設定することにより、フリップフロップ92の保持するデータがクロック信号Tに同期してセレクタ90に取り込まれる。その結果、データは保持される。
【0068】
ホールド信号を“0”にすればセレクタ91の1−入力端にはスキャン入力端子SIが接続され、図2に示された回路と等価になる。従って、データ保持が必要な時にクロック信号Tを止める等の適切な制御が行われれば、図2に示された回路を図3に示された回路に適用することができる。
【0069】
図7(c)に示されたスキャンフリップフロップSFF−DIjは、図7(b)に示された構成に対し、セレクタ90の0−入力端をD端子に、セレクタ91の0−入力端をセレクタ90の出力端に、セレクタ91の1−入力端をスキャン入力端子SIにそれぞれ接続し直した構成となっている。発揮される機能は図7(b)に示された構成と同様である。
【0070】
C.CAM100への書き込み.
以下で説明する第1乃至第3の手法においては、CAM100において記憶されるべき所定の内容を更新しつつ、上記テストパターンを用いて検査データとの一致/不一致を判断し、CAM100の良否を判定する。
【0071】
連想メモリセルCij(或いはMij)の記憶内容が“0”の時に故障が発見されるのか、“1”の時に故障が発見されるのかは予見できない。これとは別に、一致するときに故障が発見されるのか、不一致のときに故障が発見されるのかも予見できない。よって故障診断に際しては、連想メモリセルCijの記憶内容が“0”から“1”へと変化した場合、もしくはその逆に“1”から“0”に変化した場合に対して、またはサーチデータが変化した場合に対して、故障が生じているか否かを調べる必要がある。従って、CAM100において記憶されるべき所定の内容を更新してテストを行う必要がある。
【0072】
なお、上記※で示されたテストパターンの変化は、入力信号DIjの値をjを更新しつつ反転させることに対応する。例えば保持データの初期値を(0,0,0)とすると、このときの入力信号DI0,DI1,DI2の値の組(テストパターン)はそれぞれ(0,0,0)である。そして入力信号DI0の値を反転させることによりテストパターンは(1,0,0)となる。次に入力信号DI1の値を反転させることによりテストパターンは(1,,0)となり、更に入力信号DI2の値を反転させることによりテストパターンは(1,1,)となる。再び入力信号DI0の値を反転させることによりテストパターンは(,1,1)となり、次に入力信号DI1の値を反転させることによりテストパターンは(0,,1)となる。このような考え方は、第1乃至第3の手法において示されるアルゴリズムの全てにおいて共通して採用されている。
【0073】
(c−1)第1の手法.
実施の形態2.
図8及び図9はこの発明の第1の手法を示すフローチャートである。両図は接続子J1を介して連続する。
【0074】
図10乃至図39は第1の手法が施された場合の、スキャンフリップフロップSFF−DIjの記憶内容(入力信号DIj)と、CAM100の連想メモリセルCij(i=0,1,2,3;j=0,1,2)の記憶する内容を時系列に示す概念図であり、順次「STATE−A−p」(p=0〜29)の状態が示されている。これらの図において、スキャンフリップフロップSFF−DIjを表す四角の中に記載されている“0”,“1”は入力信号DIjを、連想メモリセルCijを表す四角の中で2段目に記載されている“0”,“1”は、1段目に記載された連想メモリセルCijにおいて記憶されている内容を、それぞれ示している。
【0075】
まず、ステップ801において、全てのjについて入力信号DIjに初期値として“0”を設定する。そしてステップ802において、全てのi,jについて、連想メモリセルCijの記憶内容を初期値として“0”に設定する。これは“0”に設定された入力信号DIjを第i列の連想メモリセルCijに書き込むことによって実現することができる。図10はここまでのステップが実行された状態を示す。
【0076】
次にステップ803に移り、j=0にする。つまりここでスキャンフリップフロップSFF−DIjに対する処理のための初期化を行う。
【0077】
そしてステップ804において、入力信号DIjを反転する。ステップ803が実行された直後ではj=0なので、ステップ804の処理は入力信号DI0を反転することとなる。既述のように、これは図3を用いて示されたインバータINV1による帰還を行うことに対応している。つまり値“1”がシフトインされたことと等価である。図11はここまでのステップが実行された状態を示す。
【0078】
但し、ステップ804,806,812,814のように太枠で示されたステップでは、そのステップが実行されることによって確定した列一致信号Ziをテストすることも行われる。
【0079】
図11に即してみれば、ステップ802において入力信号DI1,DI2が第0列乃至第3列の連想メモリセルC01〜C31,C02〜C32にそれぞれ書き込まれており、しかもその後のステップの実行によっても入力信号DI1,DI2の値、連想メモリセルC01〜C31,C02〜C32の記憶内容は変化しないので、連想メモリセルC01〜C31,C02〜C32はサーチデータとして機能する入力信号DI1,DI2(図4において示された様に、入力信号DIjは書き込みの為のデータとしてビット線へ与えられるのみならず、サーチ線へも与えられる)に対して「一致」との判断を下す。つまりこれらのメモリセルにおいては伝達線Ziが接地することはなく、故障発見という意義はない。
【0080】
しかし第1行の連想メモリセルC00〜C30に関しては、ステップ804において入力信号DI0の値が“0”から“1”へと変化したので、既にステップ802において“0”が書き込まれた連想メモリセルC00〜C30は、サーチデータとして機能する入力信号DI0に対して不一致であるとの判断を下すべきであり、そうでなければ連想メモリセルC00〜C30に故障があると診断される。
【0081】
しかも、各列毎に列一致信号Ziが得られ、連想メモリセルC01〜C31,C02〜C32においては伝達線Ziが接地されることがないので、連想メモリセルC00〜C30の各々についての故障を発見することができる。図10乃至図39において示されている列一致信号Ziの値は、全てのメモリセルにおいて故障がない場合に得られるべき値(期待値)である。
【0082】
次にステップ805へ移り、i=0に設定される。これはステップ806において行われる処理の初期化である。
【0083】
そしてステップ806では全てのjについて第i列の連想メモリセルCijへ入力信号DIjが書き込まれる。ステップ805の直後では、第0列の連想メモリセルC00〜C02への書き込みが為される。図12は図11の状態からステップ806の処理が為された場合の状態を示している。入力信号DI0,DI1,DI2の値の組は(1,0,0)となっているので、連想メモリセルC00,C01,C02へはそれぞれ“1”,“0”,“0”が書き込まれる。
【0084】
そして入力信号DI0,DI1,DI2の値はサーチデータとして機能し、列一致信号Ziが調べられる。図12に示された状態においては、ステップ806における書き込みによって変化したのは連想メモリセルC00のみであり、この連想メモリセルC00に故障が生じているか否かを診断することができる。
【0085】
連想メモリセルC00は図11に示された状態において既に一度故障診断が為されている。しかしその際に診断されたのは連想メモリセルC00の記憶内容が“0”へと更新され、サーチデータたる入力信号DI0が“1”へ更新された場合に不一致と判断できるか否かである。そして図12に示された状態において診断されるのは連想メモリセルC00の記憶内容が“1”へと更新され、サーチデータたる入力信号DI0が“1”へと更新された場合に一致と判断できるか否かである。
【0086】
このように、連想メモリセルCijの記憶内容及びサーチデータがそれぞれ複数の状態を取り得ることに鑑みれば、連想メモリセルCijの記憶内容を更新する必要があることは本節の冒頭で述べた通りであり、その更新はステップ806によって自動的に行うことができる。
【0087】
ステップ807はある入力信号DI0,DI1,DI2の値の組が書き込まれていない列が未だ存在するか否かを判断する。ここで値nは列の数であり、ここでは4に等しい。ステップ808では列番号iを一つ増やし、一つ右となりの列への書き込みの準備を行う。そしてステップ806に戻る。
【0088】
図13は図12の状態から更にステップ806が実行された状態を示している。つまり第1列の連想メモリセルC10,C11,C12にそれぞれ“1”,“0”,“0”が書き込まれ、列一致信号Ziが得られる。この状態では、連想メモリセルC10が故障しているか否かを診断することができる。
【0089】
図14は図13の状態から更にステップ806が実行された状態を示している。つまり第2列の連想メモリセルC20,C21,C22にそれぞれ“1”,“0”,“0”が書き込まれ、列一致信号Ziが得られる。この状態では、連想メモリセルC20が故障しているか否かを診断することができる。
【0090】
図15は図14の状態から更にステップ806が実行された状態を示している。つまり第3列の連想メモリセルC30,C31,C32にそれぞれ“1”,“0”,“0”が書き込まれ、列一致信号Ziが得られる。この状態では、連想メモリセルC30が故障しているか否かを診断することができる。
【0091】
以上の様にして、第0行の連想メモリセルC00〜C30に対し、以下の場合に故障が存在するか否かを診断することができる。
【0092】
▲1▼ケース1:各メモリセルの記憶内容が“0”、サーチデータが“1”の場合
▲2▼ケース2:各メモリセルの記憶内容が“1”、サーチデータが“1”の場合
その後ステップ807において列番号iがn−1(ここでは4−1=3)であると判断され、ステップ809へ進む。ステップ809では行番号jがm−1であるか否かが判断される。ここで値mは行の数であり、ここでは値3に等しい。ステップ810では行番号jを一つ増やし、新たなテストパターンの生成の準備を行う。そしてステップ804に戻る。
【0093】
図16は図15に示された状態からステップ804を実行した状態を示している。行番号jの値が0から1へ更新されたので、ステップ804によって入力信号DI1を反転する処理が行われる。これは入力信号DI3の値“0”を反転して入力信号DI0としてシフトインし、かつて入力信号DI0であった値“1”を入力信号DI1が採ることと等価である。
【0094】
図16に示された状態では、第0行の連想メモリセルC00〜C30は既に“1”を記憶しており、しかもステップ804の実行によっても入力信号DI0は“1”のまま変化しない。従って、この状態は第0行の連想メモリセルC00〜C30の故障を発見するという意義を持たない。
【0095】
また、第2行の連想メモリセルC02〜C32及び入力信号DI2はいままで全く状態が変化しておらず、やはりこの状態は第2行の連想メモリセルC02〜C32の故障を発見するという意義を持たない。
【0096】
この状態では、図11の状態において第0行の連想メモリセルC00〜C30がそうであったように、第1行の連想メモリセルC01〜C31に関してケース1の故障を発見できる。以下同様にしてステップ806が繰り返されることにより、状態は順次図17乃至図20に示されるように更新され(第0列乃至第3列への書き込み及び列一致信号Ziの読み出しが行われ)、それぞれ第1行の連想メモリセルC01〜C31に関してケース2の故障を発見できる。
【0097】
同様にして、図21の状態において第2行の連想メモリセルC02〜C32に関してケース1の故障を発見でき、図22乃至図25に示されるよう状態において、それぞれ第2行の連想メモリセルC02〜C32に関してケース2の故障を発見できる。
【0098】
図25で示された状態の後は、ステップ807,809のいずれにおいても“Yes”と判断され、接続子J1へと進む。換言すれば、接続子J1に到達した状態においては全ての連想メモリセルCijに対してケース1,2の場合における故障発見の処理が終了している。
【0099】
図9に示されたステップ811〜818は、見かけ上、図8に示されたステップ803〜810と同一の処理を行う。しかしその内実はケース1,2とは逆のケースを生じさせる。これはステップ803〜810の初期状態が図10で示された状態であるのに対し、ステップ811〜818の初期状態が図25で示された状態であるためである。図10において“0”であった値は図25において“1”となっている。
【0100】
そして、ステップ803〜818において入力信号DIjの採る値、連想メモリセルCijの記憶内容対して為される処理が、論理の反転(或いはシフトイン;ステップ804,812)及び書き込み(列一致信号Ziの読み出しも含む;ステップ806,814)である。従って、ステップ811〜818を実行することによって得られる状態は、図10乃至図24で示された“0”と“1”とを全て交換して得られる状態である。そのような交換によって図10乃至図24に対応して図25乃至図39で示される状態が得られる。
【0101】
従って、ステップ811〜818によって故障発見が行われるケースも、ケース1,2の“0”と“1”とを交換したケースとなる。即ち次の2つのケースである。
【0102】
▲3▼ケース3:各メモリセルの記憶内容が“1”、サーチデータが“0”の場合
▲4▼ケース4:各メモリセルの記憶内容が“0”、サーチデータが“0”の場合
図39は、i=2,j=3であってステップ814が実行された状態を示している。この後、ステップ815,816によってi=3となり、第3列の連想メモリセルC30,C31,C32への書き込みが行われ、図10に示された状態に戻る。その後ステップ815,817を経て全ての処理が終了する。
【0103】
このようにしてメモリセルの記憶内容とサーチデータのそれぞれの変化に基づく全ての場合に対して、全てのメモリセルの故障発見を行うことができる。しかもCAMへの書き込みを行うことにより、必要なテストパターン数を減少させることができる。第1の手法において必要なのは※で示された6つのパターンであり、(1,0,1),(0,1,0)という、両端の値が等しく、かつそれ以外の値が両端の値とは異なるというパターンは必要ない。従って、シフトインという手法によって入力信号DIjを更新しても、全ケース1〜4の故障発見を行うことができる。
【0104】
(c−1−1)第1の手法を実行するための回路.
前駆的思想において図1及び図2で示された回路でも、スキャン入力信号SIDIが適切なテストパターンを採り、シフトインすることによっても図8及び図9に示された第1の手法を行うこともできる。しかし、入力信号DIjの内容をCAM100に書き込む際にはその値を保持する必要があり、スキャンフリップフロップとしては図7に示されたホールド機能付きのものを用いることが望ましい。さもないと、ホールド動作を行うためにはクロック信号Tを適切に制御する必要がある。
【0105】
以下に示すのは、第1の手法を、適切なテストパターンを自動的に生成することで実行する回路の例である。
【0106】
実施の形態3.
図40は第1の手法を実現するCAMテスト回路の構成を示す回路図である。ここではテストされるべきCAM100が、入力信号のビット数(行の数)mが3、列の数nが4の場合を例示している。但し、CAMのテスト以外に用いられる部分、例えば通常動作において与えられるべき入力信号DDI0,DDI1,DDI2やシフトモード信号SMがどのように入力されるか等は省略されている。また、動作タイミングを司るクロック信号Tも省略されている。なお、以下ではCAM100のテストを行う場合を説明するので、シフトモード信号SMは常に“1”であるとして説明されている。
【0107】
CAM100にはアドレス信号A0,A1、ライトイネーブル信号WE、入力信号DI0,DI1,DI2が与えられる。
【0108】
アドレス信号A0,A1はアドレスカウンタCNTRによって発生される。このアドレスカウンタは少なくともCAMテスト時においてはカウント動作を行う。但し、カウント動作中であっても図示されないクロック信号Tの遷移に依らず、アドレスホールド信号HOLD−AはアドレスカウンタCNTRの値を保持させる。アドレスホールド信号HOLD−Aとしては、アドレスホールド原信号HLDAまたは書き込み原信号WECDが、セレクタSEL4によって採用される。
【0109】
また、ここで例示されたアドレスカウンタCNTRはスキャンアドレス入力SIAAによってその保持する値を更新する事ができる。スキャンアドレス入力SIAAとしてはスキャンアドレス入力原信号SIAまたは書き込み原信号WECDが、セレクタSEL7によって採用される。
【0110】
最終番地検出回路LADETは、アドレス信号A0,A1を入力し、これらがアルゴリズム上の最終番地を示している場合には最終番地検出信号LAを“1”にする。例えば最終番地としてA0=A1=1が指定される。
【0111】
ライトイネーブル信号WEはライトパルスジェネレータWPGによって生成される。ライトイネーブル信号WEはスキャンフリップフロップSFFWから出力される書き込み原信号WECDが“L”である場合に、クロック信号Tに同期して遷移する。
【0112】
スキャンフリップフロップSFFWにはセレクタSEL6を介してセレクタSEL2の出力または統一スキャン入力SICAMが与えられる。スキャンフリップフロップSFFWとしては例えば図2の回路を用いる。そして、スキャン入力端子SIにセレクタSEL6の出力を与える。
【0113】
スキャンフリップフロップSFF−DI0,SFF−DI1,SFF−DI2はこの順に、スキャン出力端SOとスキャン入力端SIとが直列に接続されている。スキャンフリップフロップSFF−DI2のスキャン出力端SOはインバータINV1の入力端に接続され、スキャンフリップフロップSFF−DI0のスキャン入力端SIはセレクタSEL1,SEL8を介してインバータINV1の出力端に接続されている。
【0114】
スキャンフリップフロップSFF−DIjのいずれの端子HLDにも入力ホールド信号HOLD−DIが与えられており、これが“1”となることによってスキャンフリップフロップSFF−DIjはその記憶内容がクロック信号Tの遷移に依らずに保持される。
【0115】
入力ホールド信号HOLD−DIとしては、セレクタSEL3を介して入力ホールド原信号HLDDI、または最終番地検出信号LAを反転した信号のいずれかが採用される。最終番地検出信号LAの反転はインバータINV2によって行われる。
【0116】
セレクタSEL1〜SEL4の制御はテスト信号CAMTESTによって、セレクタSEL6〜SEL8の制御はスキャンパス制御信号MEMTによってそれぞれ行われる。
【0117】
テスト信号CAMTESTは、CAM100のテストを行う場合には“1”をとる。従って、その場合にはセレクタSEL8の1−入力端にはインバータINV1の出力が、セレクタSEL6の1−入力端には最終番地検出信号LAが、入力ホールド信号HOLD−DIとしてインバータINV2の出力が、アドレスホールド信号HOLD−Aとしては書き込み原信号WECDが、それぞれ与えられる。
【0118】
また、スキャンパス制御信号MEMTが“1”の場合には、スキャンフリップフロップSFFWにはセレクタSEL2の出力が、スキャンアドレス入力SIAAとしてはスキャンアドレス入力原信号SIAが、スキャンフリップフロップSFF−DI0のスキャン入力端SIにはセレクタSEL1の出力が、それぞれ与えられる。
【0119】
説明の便宜上、スキャンパス制御信号MEMTが“1”であるとして説明を進めるが、スキャンパス制御信号MEMTが“0”の場合については後述する。
【0120】
表1及び表2は図40に示された回路動作をクロック信号Tの周期毎に示す各信号の論理値表である。“x”は値を特定する必要がない(don't care)を表している。表1及び表2には図4で示されたデータ出力DOj、列一致信号Ziも併記されている。
【0121】
【表1】
Figure 0003816560
【0122】
【表2】
Figure 0003816560
【0123】
図41はクロック信号Tの遷移のタイミングと、外部から設定される信号群(テスト信号CAMTEST、スキャン入力信号SIDI、スキャンアドレス入力信号SIA、スキャン書き込み信号SIW、入力ホールド原信号HLDDI、アドレスホールド原信号HLDA)の遷移のタイミングと、図40の内部において伝達される信号群(入力ホールド信号HOLD−DI、アドレスホールド信号HOLD−A、アドレス信号A1,A0、入力信号DIj、書き込み原信号WECD、ライトイネーブル信号WE、列一致信号Zi、データ出力DOj)のタイミングとの関係を示すタイミングチャートである。
【0124】
第0周期においては各信号の値は与えられていない。そして第1乃至第11周期において、ステップ801乃至ステップ803が実行される。この期間ではテスト信号CAMTESTは“0”に設定される。
【0125】
第1乃至第3周期においてステップ801が実行される。この期間ではスキャン入力信号SIDIが“0”に設定される。セレクタSEL1,SEL8はスキャン入力信号SIDIをスキャンフリップフロップSFF−DI0のスキャン入力端SIに与える。
【0126】
スキャンフリップフロップSFF−DIjの保持する内容を更新するのであるから入力ホールド信号HOLD−DIを強制的に“0”にする必要がある。そのために入力ホールド原信号HLDDIを“0”に設定する。既述のように、図示しないが(図7参照)シフトモード信号SMは“1”に設定されているので、クロック信号Tが新たな周期を迎える毎にスキャン入力信号SIDIは順次スキャンフリップフロップSFF−DI1,SFF−DI2のスキャン入力端SIに伝達される。第1周期においてまず入力信号DI0が“0”となり、第2周期において入力信号DI1も“0”となり、第3周期において全ての入力信号DIjが“0”となる。
【0127】
なお、この第1乃至第3周期においてはCAM100に対する(連想メモリセルCijに対する)書き込みは行わないので、ライトイネーブル信号WEを“0”にするため(書き込み原信号WECDを“1”にするため)、セレクタSEL2の0−入力端に与えられるスキャン書き込み信号SIWの値を“1”に設定している。また、アドレスホールド信号HOLD−AとしてはセレクタSEL4によってアドレスホールド原信号HLDAが採用されるが、書き込みが行われないので、アドレス信号を必ずしも固定する必要がなく、アドレスホールド原信号HLDAの値は特に設定されない。但し、以下に示す第5周期乃至第8周期において全ての連想メモリセルCijへの初期値設定がなされるので、必ずしもスキャン書き込み信号SIWの値を特定する必要はない。
【0128】
スキャンパス制御信号MEMTが“0”の場合には統一スキャン入力SICAMがセレクタSEL6、スキャンフリップフロップSFFW、セレクタSEL7、アドレスカウンタCNTR、セレクタSEL1を経由して、上記の初期状態の設定のための値を伝達させることができる。
【0129】
第4周期乃至第8周期においてステップ802が実行される。アドレス信号A1,A0に従って、入力信号DIjを各列の連想メモリセルCijに書き込むので、アドレス信号A1,A0を順次更新する必要がある。この更新のために、ここではスキャンアドレス入力SIAAを用いてアドレスカウンタCNTRの保持する値を更新している。セレクタSEL7はスキャンアドレス入力原信号SIAをスキャンアドレス入力SIAAとして出力するので、スキャンアドレス入力原信号SIAの値が更新される。第4周期乃至第8周期においては、アドレスホールド原信号HLDAが“0”に設定され、アドレスホールド信号HOLD−Aが“0”となっておりアドレスカウンタCNTRのホールド機能は禁止されている。スキャンアドレス入力信号SIAによるアドレス信号A1,A0の更新を許可するためである。
【0130】
また第4乃至第8期間において、入力ホールド原信号HLDDIを“1”に設定することによって入力ホールド信号HOLD−DIを“1”にし、入力信号DIjの値を固定する。従って、スキャン入力信号SIDIの値は特定されない。
【0131】
第4周期において、まずスキャンアドレス入力原信号SIAの値として“0”が設定される。スキャンアドレス入力SIAAが与えられれば、これが順次アドレス信号A1,A0として伝達・保持されるので、アドレス信号A1の値は“0”に確定するが、アドレス信号A0は未確定である。従って、まだCAM100への書き込みを行う必要がないので、第4周期ではスキャン書き込み信号SIWの値を“1”に設定している。但し上述のように第5周期乃至第8周期において全ての連想メモリセルCijへの初期値設定がなされるので、必ずしもスキャン書き込み信号SIWの値を特定する必要はない。
【0132】
第5周期において、再びスキャンアドレス入力原信号SIAの値として“0”が設定される。これによってアドレス信号A1,A0が“0”,“0”に確定し、デコーダDCDRによってデコードされて一つのワード線WLjが選択される。ここでは簡単のためにアドレス信号A1,A0の組が(0,0),(0,1),(1,0),(1,1)であることに対応して、それぞれワード線WL0,WL1,WL2,WL3が選択されるとして説明を行うが、後述するように、デコーダDCDRのデコードの仕方によって上記対応以外の対応関係が設定されても良い。
【0133】
第5周期乃至第8周期においては順次ワード線WL0,WL2,WL3,WL1が選択され、スキャン書き込み信号SIWの値を“0”に設定して書き込み原信号WECDを“0”にし、ライトイネーブル信号WEが“1”となって書き込みが行われる。以上のようにして得られた状態は図10で示された「STATE−A−0」に対応している。
【0134】
第9乃至第11周期においてはステップ804の為の準備が行われる。ステップ806において最終番地の列のメモリセルに対する処理が為された後はステップ807を経由してステップ809へ進む。ステップ810を介してステップ804の処理が為されるにしても、ステップ811を介してステップ812の処理が為されるにしても、クロック信号Tのある周期において入力信号DIjの更新を行わなければならない。
【0135】
従って、詳しくは後述するが、図40に示された回路では、最終番地の列のメモリセルに対するステップ806の処理が行われた後に入力信号DIjの更新が行われるように構成されている。換言すれば、最終番地の列のメモリセルに対して書き込み処理がなされなければ入力信号DIjの更新が行われないため、最初にステップ804を実行する場合には、仮に最終番地の列のメモリセルに対して書き込み処理を行う必要がある。
【0136】
第9乃至第10周期においては列番号を最終番地に設定する処理が行われ、第11周期においては書き込みが行われる。第9乃至第11期間においても、入力ホールド原信号HLDDIを“1”に設定することによって入力信号DIjの値を固定するので、スキャン入力信号SIDIの値は特定されない。
【0137】
第9乃至第10周期においては上記目的のために最終番地がアドレス信号A1,A0に設定される。第9周期乃至第10周期においても、アドレスホールド信号HOLD−Aが“0”となっており、スキャンアドレス入力信号SIAによってアドレス信号A1,A0の値の更新を許可している。第9乃至第10周期においては第8周期においてそれぞれ“0”,“1”となったアドレス信号A1,A0の値をいずれも“1”へ変更するために、スキャンアドレス入力信号SIAの値を“1”に設定している。
【0138】
この際、既にCAM100の連想メモリセルCijは初期化が終了しているので、これらに対して新たな書き込みが行われないようにスキャン書き込み信号SIWの値を“1”に設定して書き込み原信号WECDを“1”にし、ライトイネーブル信号WEを“0”にして書き込みを禁止している。しかし第9乃至第10周期においても第5乃至第8周期においてと同様に、入力信号DIjは全て値“0”を採っているので、書き込みを行っても連想メモリセルCijの記憶内容が変更されることもなく、必ずしも書き込みを禁止する必要はない。
【0139】
第11周期においてはアドレスホールド原信号HLDAが“1”に設定され、既にいずれも“1”に設定されたアドレス信号A1,A0の値が保持される。従って、スキャンアドレス入力信号SIAの値は特定されない。スキャン書き込み信号SIWの値が“0”に設定され、スキャンフリップフロップSFFWには値“0”が記憶される。
【0140】
第12周期乃至第42周期においてはCAMテストが実行される。この周期においてはテスト信号CAMTESTは“1”に設定される。よってテスト信号CAMTESTによって制御されるセレクタSEL1〜SEL4の0−入力端に与えられていたスキャン入力信号SIDI、スキャン書き込み信号SIW、入力ホールド原信号HLDDI、アドレスホールド原信号HLDAの値は特定される必要がない。更に、テスト信号CAMTESTが“1”となることにより、アドレスカウンタCNTRはカウント機能を発揮するので、スキャンアドレス入力信号SIAの値も特定されない。
【0141】
既に第11周期においてセレクタSEL4の1−入力端には“0”が与えられているので、第12周期の開始となるクロック信号Tの遷移においてアドレスホールド信号HOLD−Aも“0”となり、アドレスカウンタCNTRのカウント動作が許可される。よって、アドレス信号A1,A0の値が(1,1)から(0,0)へと更新される。しかし、第12周期においては連想メモリセルC00,C01,C02への書き込みは禁止される。入力信号DIjの更新と錯綜しないためであり、最終番地検出信号LAがセレクタSEL2,SEL6を経由して書き込み原信号WECDを“1”にしており、ライトイネーブル信号WEが“0”となっている。
【0142】
インバータINV1が第11周期において“0”であった入力信号DI2の値を反転して、値“1”をセレクタSEL1,SEL8を介してスキャンフリップフロップSFF−DI0のスキャン入力端SIに与える。また、第11周期においてセレクタSEL3の1−入力端には最終番地検出信号LAが反転されて“0”が与えられているので、テスト信号CAMTESTが“1”になれば入力ホールド信号HOLD−DIは“0”となり、スキャンフリップフロップSFF−DIjの記憶内容の変更は許可される。図41に示されるように、テスト信号CAMTESTの値はクロック信号Tの遷移の前に既に確定しているので、第12周期の開始となるクロック信号Tの遷移によって、即ちアドレス信号A1,A0の値が(1,1)から(0,0)へ更新される(この更新はクロック信号TによってアドレスカウンタCNTRが動作した後に行われる)よりも以前にスキャンフリップフロップSFF−DIjの記憶内容が更新される。従ってテストパターンは(0,0,0)から(1,0,0)へと更新され、図11に示された状態を実現することができる。
【0143】
但し、第12周期の開始となるクロック信号Tの遷移によってアドレス信号A1,A0の値が(1,1)から(0,0)に更新された後は、最終番地検出信号LAが“0”となり、入力ホールド信号HOLD−DIは“1”となって、スキャンフリップフロップSFF−DIjの記憶内容の変更は禁止される。
【0144】
その後、第13周期乃至第15周期においては、アドレス信号A1,A0の値が(1,1)以外であるので、最終番地検出信号LAが“0”であり、アドレスホールド信号HOLD−Aが“0”となってアドレスカウンタCNTRのカウント動作が許可される一方、スキャンフリップフロップSFF−DIjの記憶内容の変更は禁止され続ける。よって、アドレスカウンタCNTRによってアドレス信号A1,A0が順次更新され、それぞれ図12乃至図14に示された状態を得ることができる。
【0145】
第16周期においてはアドレス信号A1,A0の値が(1,1)となり、図15に示されるように第3列の連想メモリセルC30,C31,C32へのテストパターン(1,0,0)の書き込みが行われる一方、最終番地検出信号LAが“1”となってスキャンフリップフロップSFFWのスキャン入力端SIに値“1”を与える。
【0146】
しかし、第17周期の開始となるクロック信号Tの遷移においてスキャンフリップフロップSFFWから出力される書き込み原信号WECDは、第15周期においてスキャンフリップフロップSFFWに記憶されていた値“0”を採っているので、アドレスホールド信号HOLD−Aが“0”である。よって第17周期の開始となるクロック信号Tの遷移によってアドレスカウンタCNTRはカウント動作を行い、アドレス信号A1,A0の値が(0,0)となる。一方、第16周期においてスキャンフリップフロップSFFWに与えられた値“1”がセレクタSEL4を介してアドレスホールド信号HOLD−AとしてアドレスカウンタCNTRに与えられる。
【0147】
アドレス信号A1,A0の値が(0,0)へと更新されて最終番地検出信号LAが“0”となるのは、第17周期の開始となるクロック信号Tの遷移に基づいてアドレスカウンタCNTRがカウント動作を行ってからである。第17周期の開始となるクロック信号Tの遷移よりも以前にセレクタSEL3の1−入力端には“0”が与えられている。よって入力ホールド信号HOLD−DIは“0”あってスキャンフリップフロップSFF−DIjの記憶内容の更新が許可されており、第17周期の開始となるクロック信号Tの遷移によってテストパターンは更新される(図16)。
【0148】
第18周期の開始となるクロック信号Tの遷移においてはアドレスホールド信号HOLD−Aの値が“1”を採っているので、アドレス信号A1,A0の値は更新されない。そして第18周期乃至第21周期においてそれぞれ第0列乃至第3列の連想メモリセルCijへのテストパターンの書き込みが行われる(図17乃至図20)。
【0149】
以下、同様にして第22周期、第27周期、第32周期、第37周期においてテストパターンの更新が行われ(図21、図26、図31、図36)、第23周期乃至第26周期、第28周期乃至第31周期、第33周期乃至第36周期、第38周期乃至第41周期においてそれぞれ第0列乃至第3列の連想メモリセルCijへのテストパターンの書き込みが行われる(図22乃至図25、図27乃至図30、図32乃至図35、図37乃至図39及び図10)。
【0150】
第26周期においてステップ809から接続子J1へと処理が進み、第27周期乃至第41周期においてステップ811〜817が実行される。第41周期以降もテストを続行しても、第12周期と同じ状態が繰り返されるに過ぎない。
【0151】
図42は第1の手法を実現するCAMテスト回路の他の構成を示す回路図である。ここでは最終番地検出信号LAを、最終番地検出回路LADETを用いて得るのではなく、最終番地に相当する列、ここでは第3列のワード線WL3に与えられる値から得ている。このようにしても図40に示された回路と同様の動作を行うことは明白である。
【0152】
アドレスカウンタCNTRとしてはバイナリカウンタやフィードバックシフトレジスタ型カウンタを用いることができる。またグレイコードカウンタを用いることもできる。
【0153】
図43はアドレスカウンタCNTRとしてバイナリカウンタを採用した場合の構成を例示する回路図である。セレクタ81,83はテスト信号CAMTESTによって制御され、テスト信号CAMTESTが“0”の場合にはこれらを介してスキャンフリップフロップ82,84スキャンアドレス入力SIAAがクロック信号Tに同期して伝達される。スキャンフリップフロップ82,84としては図7(b)に示されたものを用いることができる。シフトモード信号SMが“0”の場合には、通常のフリップフロップとしてスキャンフリップフロップ82,84が動作し、例えば入力信号AA0,AA1をそれぞれアドレス信号A0,A1として採用することができる。
【0154】
テスト信号CAMTESTが“1”の場合には増加回路85へとスキャンフリップフロップ82,84から経路が開かれ、クロック信号Tに同期してアドレスが増加する。ここでアドレスXi(i=2・A1+A0)として順次デコーダDCDRの出力X0,X1,X2,X3が得られる。したがって、デコーダDCDRからの出力Xiはそれぞれワード線WLiと接続すればよい。図44はそのような場合のデコーダDCDRとワード線WLiとの接続関係を示している。
【0155】
図42と同様にして、最終番地検出信号LAはワード線WL3に与えられる信号から得ている。そしてそれはアドレスカウンタCNTRとして図43に示されるようなバイナリカウンタを用いる場合には出力X3から得られる。ここで、最終番地検出信号LAをワード線WL3に与えられている信号そのものではなく、ワード線ドライバWLDに関してデコーダDCDR側にある出力X3から採っているのは、ワード線WL3において故障が生じていても、正常な最終番地検出信号LAを得ることができるようにするためである。
【0156】
図45はアドレスカウンタCNTRとして2ビットのフィードバックシフトレジスタ型カウンタを採用した場合の構成を例示する回路図である。セレクタ81と、スキャンフリップフロップ82,84と、増加回路86とから構成されている。
【0157】
テスト信号CAMTESTが“1”の場合には増加回路86へとスキャンフリップフロップ82,84から経路が開かれ、クロック信号Tに同期してアドレスが発生する。ここでアドレスXi(i=2・A1+A0)として順次デコーダDCDRの出力X0,X2,X3,X1が択一的に活性化する。第1の手法において、どの列のメモリセルから順にアクセスしなければならないということはない。したがって、図44のようにしてデコーダDCDRとワード線WLiとを接続しても良い。しかし、第0乃至第3列へとこの順にアクセスするのであれば、図44のような接続はその要求を満足しない。このように隣接するワード線WLiが順次活性化されることは、後述する期待値生成回路を構成する際に望ましい。
【0158】
図46は上記要求を満足させるためのデコーダDCDRとワード線WLiとの接続関係を示す。デコーダDCDRの出力は順次X0,X2,X3,X1と択一的に活性化するのであるから、これらがそれぞれワード線WL0,WL1,WL2,WL3をドライブするように接続すればよい。この場合、最終番地は“1”であり、これが第3列に対応する。
【0159】
図8及び図9に示された第1の手法は、図40に示されたような、4列のメモリセルを有するCAMにおいてのみ適用可能なのではなく、例えば16列のメモリセルを有するCAMにおいても適用することができる。その際にはデコーダDCDRには4ビットのアドレス信号A3,A2,A1,A0が与えられる。
【0160】
図47は4ビットのアドレス信号A3,A2,A1,A0を生成するフィードバックシフトレジスタ型カウンタの構成を例示する回路図である。セレクタ81、スキャンフリップフロップ71,72,73,74及び増加回路75が図のように接続されている。スキャンフリップフロップ71,72,73,74はいずれも図7(b)に示された構成を採ることができる。セレクタ81はテスト信号CAMTESTによって制御され、テスト信号CAMTESTが“1”となるとスキャンフリップフロップ71,72,73,74及び増加回路75がループを形成する。
【0161】
このように構成されたフィードバックシフトレジスタ型カウンタから得られたアドレス信号A3,A2,A1,A0に基づき、デコーダDCDRからは出力X0,X8,X12,X14,X15,X7,X11,X5,X10,X13,X6,X3,X9,X4,X2,X1(Xk:k=8・A3+4・A2+2・A1+A0)が順次に択一的に活性化する。
【0162】
このような場合においても隣接するワード線WLiが順次活性化するためには、図48に示すようにデコーダDCDRとワード線WLiと接続する。デコーダDCDRの出力は順次出力X0,X8,X12,X14,X15,X7,X11,X5,X10,X13,X6,X3,X9,X4,X2,X1と択一的に活性化するのであるから、これらがそれぞれワード線WL0,WL1,WL2,…WL15をドライブするように接続すればよい。この場合、最終番地は“1”であり、これが第15列に対応する。
【0163】
(c−1−2)期待値の生成.
実施の形態4.
第1の手法によって得られた列一致信号Ziから故障を判断するためには、CAMが正常な場合に得られるべき列一致信号Ziの値、即ち期待値を得ることが必要である。実施の形態4ではかかる期待値を列一致信号Ziの生成と同期して得るための技術を説明する。実施の形態3と同様、列数nが4の場合を例に採って説明する。
【0164】
表3は各状態における期待値E0,E1,E2,E3を時系列に纏めた論理値表である。これらの内容は列一致信号Z0,Z1,Z2,Z3として図10乃至図39に既に示されている。表中の矢印は、状態が循環する事を示している。
【0165】
【表3】
Figure 0003816560
【0166】
図49は期待値E0,E1,E2,E3を生成する期待値生成回路60の構成を図示している。ここでは図40に示されたライトパルスジェネレータWPG及びこれに入力する書き込み原信号WECDも併せて示している。また、期待値E0,E1,E2,E3と列一致信号Z0,Z1,Z2,Z3とを比較するための比較回路70も示している。
【0167】
期待値生成回路60はインバータINV5と、オア回路ORJ0,ORJ1,ORJ2と、アンド回路AND0,AND1,AND2,AND3とから構成されている。オア回路ORJ0,ORJ1,ORJ2のそれぞれの一方の入力端には、ワード線WL0,WL1,WL2をドライブするデコーダDCDRの出力が与えられる。例えば、アドレスカウンタCNTRとして図43に記載されたものを用いれば、オア回路ORJ0,ORJ1,ORJ2のそれぞれの一方の入力端にはそれぞれ出力X0,X1,X2が与えられる。
【0168】
しかし、期待値生成回路60の構成上、ワード線WL0,WL1,WL2,WL3はこの順に択一的に活性化することが望ましいので、アドレスカウンタCNTRとして図45に記載されたものを用いる場合には、オア回路ORJ0,ORJ1,ORJ2のそれぞれの一方の入力端にはそれぞれ出力X0,X2,X3が与えられる。以下では簡単のため、アドレスカウンタCNTRとしては図43に記載されたものを用いるとして説明するが、上記のようにアドレスカウンタCNTRとして図45に記載されたものを用いても、ワード線WLiの接続を適切に行えばよい。
【0169】
オア回路ORJ0,ORJ1,ORJ2のそれぞれの他方の入力端には、それぞれオア回路ORJ1の出力J1、ORJの出力J2、出力X3(一般的にはワード線WL3をドライブする出力;もしもアドレスカウンタCNTRとして図45に記載されたものを用いるのであれば、X1)が与えられる。
【0170】
アンド回路AND0,AND1,AND2,AND3のそれぞれの一方の入力端にはいずれにもインバータINV5の出力が与えられている。インバータINV5の入力としては書き込み原信号WECDが与えられている。また、アンド回路AND0,AND1,AND2,AND3のそれぞれの方の入力端にはそれぞれオア回路ORJ0の出力J0、ORJ1の出力J1、ORJ2のJ2、出力X3がそれぞれ与えられる。そして期待値E0,E1,E2,E3はそれぞれアンド回路AND0,AND1,AND2,AND3から出力される。
【0171】
書き込みを行う周期では書き込み原信号WECDが“0”であり、期待値E0,E1,E2,E3はそれぞれJ,J1,J2,X3となる。よって、ワード線WLiが活性化している場合にはEp(i≧p)=1、Eq(i<q)=0となる。
【0172】
一方、書き込みを行わない周期では書き込み原信号WECDが“1”であり、ワード線WLiのいずれが活性化しているかに依らず、期待値E0,E1,E2,E3は全て“0”になる。
【0173】
以上のようにして表3に示された期待値E0,E1,E2,E3を自動的に発生させることができる。
【0174】
比較回路70はイクスクルーシブ・オア回路XORH0,XORH1,XORH2,XORH3から構成されている。イクスクルーシブ・オア回路XORHiは列一致信号Ziと期待値Eiとを比較して、不一致/一致に対応してそれぞれ“1”/“0”を採る判定信号Hiを出力する。
【0175】
比較回路70はイクスクルーシブ・オア回路を用いることなく、図4及び図5で示されるようにNMOSトランジスタN3,N4,N5,N6及び抵抗Riからなる比較手段を用いて構成することもできる。
【0176】
図50は期待値E0,E1,E2,E3を生成する他の期待値生成回路61の構成を図示している。期待値生成回路61はリセット・セット・フリップフロップRSiから構成されており、リセット・セット・フリップフロップRSiのセット端Sは出力Xiが与えられる(既述のようにアドレスカウンタCNTRとして図45に記載されたものを用いるのであれば、図46に示されるように出力Xiとワード線WLiとの接続関係を変更する)。また、全てのリセット・セット・フリップフロップRSiのリセット端Rにはリセット信号RSTとして書き込み原信号WECDが与えられる。期待値Eiはリセット・セット・フリップフロップRSiのQ出力として得られる。
【0177】
書き込みを行う周期では書き込み原信号WECDが“0”であり、リセット・セット・フリップフロップRSiは全てリセットはされていない。よって、リセット・セット・フリップフロップRSiの出力たる期待値Eiはデコーダ出力Xiと一致する。これは書き込みを行わない周期に至って書き込み原信号WECDが“1”となるまで保持される。そして書き込み原信号WECDが“1”となることによってリセット・セット・フリップフロップRSiは全てリセットされる。
【0178】
したがって、例えばワード線WL0,WL1,WL2,WL3がこの順に選択されれば、期待値E0,E1,E2,E3の組は、(1,0,0,0)→(1,1,0,0)→(1,1,1,0)→(1,1,1,1)の順に変化し、表3に示された期待値Eiが自動的に生成される。
【0179】
(c−2)第2の手法.
実施の形態5.
第1の手法は、第1乃至第4のケースについて全てのメモリセルの故障を診断することができる点で優れているが、CAMのテスト手法には他の変形も可能である。
【0180】
図51及び図52はこの発明の第2の手法を示すフローチャートである。両図は接続子J2を介して連続する。
【0181】
図53乃至図76は第2の手法が施された場合の、スキャンフリップフロップSFF−DIjの記憶内容(入力信号DIj)と、CAM100の連想メモリセルCij(i=0,1,2,3;j=0,1,2)の記憶する内容を時系列に示す概念図であり、順次「STATE−B−p」(p=0〜23)の状態が示されている。これらの図における数字の表し方は図10乃至図39に示されたものと同様である。
【0182】
ステップ901,902,903においてはそれぞれ第1の手法のステップ801,802,803と同じ処理がなされる。つまり全ての入力信号DIjに初期値として“0”を設定し、全てのi,jについて、連想メモリセルCijの記憶内容を初期値として“0”に設定する。図53はここまでのステップ901,902が実行された状態を示す。そしてステップ903においてj=0にし、スキャンフリップフロップSFF−DIjに対する処理のための初期化を行う。
【0183】
ステップ904において、入力信号DIjを反転する。既述のように、これは図3を用いて示されたインバータINV1による帰還を行うことに対応している。よって、図53の状態に対してステップ904を実行することは値“1”をシフトインすることと等価である。
【0184】
第1の手法とは異なり、第2の手法においてはステップ904において、第0列の連想メモリセルC0jへ入力信号DIjの書き込みもが行われる。図8及び図9においてと同様に、図51及び図52においても、太枠で示されたステップ904,906,912,914では、そのステップが実行されることによって確定した列一致信号Ziをテストすることも行われる。図54はステップ904が実行された状態を示す。
【0185】
その後ステップ905によってi=1とし(列番号iの値を1増加させ)、ステップ906へと進む。ステップ906〜908の処理は第1の手法のステップ806〜808と同じであり、ある固定されたテストパターンDIjを第1列から第3列に対応するメモリセルへ順次書き込んでゆき、列一致信号Ziを得る。従って、図55乃至図57はそれぞれ図13乃至図15と同一の状態を呈している。
【0186】
その後、ステップ907において、ある固定されたテストパターンDIjが最後の列に対応するメモリセルへ書き込まれたと判断されれば、ステップ909に進む。
【0187】
ステップ909において、最終行に対応するDI(m−1)(ここではDI2)が更新の対象となったか否かが判断され、「否」と判断されればステップ910において列番号iの値を1増加させ、ステップ904へと戻る。
【0188】
ステップ904の実行によって図58、図62に示された状態が得られる。また、ステップ906の実行によって図59乃至図61、図63乃至図65に示された状態が得られる。図59乃至図61、図63乃至図65はそれぞれ図18乃至図20、図23乃至図25と同一の状態を呈している。
【0189】
ステップ904が実行された場合、入力信号DIjの更新と連想メモリセルC0jへの書き込みとが同じクロックサイクルで行われ、このときの列一致信号Z0は必ず“1”となる。よって第0列においてケース2,4における診断はなされても、ケース1,3における診断がなされることはない。他の第1乃至第3列においてはケース1,2における診断がなされる。
【0190】
ステップ911〜918においては、ある固定されたテストパターンDIjを第3列から第0列に対応するメモリセルへ順次書き込んでゆく。まずステップ911においてj=0にし、スキャンフリップフロップSFF−DIjに対する処理のための初期化を行う。但し、このときテストパターン(DIjの組)は(1,1,1)である。
【0191】
その後、ステップ912において、テストパターンの更新を行うと共に、最終列(i=n−1;ここでは3)に対応するメモリセルへその更新されたテストパターンを書き込む。ステップ912の実行によって図66、図70、図74に示された状態が得られる。
【0192】
その後、ステップ913によってi=n−2とし(列番号iの値を1減少させ)、ステップ914へと進む。ステップ914の処理はステップ906と同じであり、ある固定されたテストパターンDIjを選択された列に対応するメモリセルへ順次書き込んでゆき、列一致信号Ziを得る。但し、ステップ915,916によって、選択される列の順序はステップ906〜908のそれとは逆になる。ステップ914の実行によって図67乃至図69、図71乃至図73、図75及び図76並びに図53に示された状態が得られる。
【0193】
ステップ911〜918においては、入力信号DIjの更新と連想メモリセルCjへの書き込みとが、同じクロックサイクルで行われるので、このときの列一致信号Z3は必ず“1”となる。従って、第3列においてケース2,4は診断されても、ケース1,3における診断がなされることはない。しかし他の第0乃至第2列においてはケース3,4における診断がなされる。また、ステップ903〜910においては第3列においてケース1,2における診断がなされている。
【0194】
このように第2の手法においては、テストパターンの更新とともにメモリセルへの書き込みを行うことで、第1の手法に比べて少ないクロックサイクルで診断を行うことができるが、第0列に対してケース1における診断はされず、第3列に対してケース4における診断はされない。
【0195】
そのようなケースについても診断を行う場合には、ステップ901,902において与えられる初期値を“1”にし、或いはテストパターンの更新とともに書き込まれるメモリセルがどの列に対応するかということを変更して、図51及び図52に示された処理を再度繰り返す必要がある。
【0196】
(c−2−1)第2の手法を実行するための回路.
前駆的思想において図1及び図2で示された回路でも、スキャン入力信号SIDIが適切なテストパターンを採り、シフトインすることによっても図51及び図52に示された第2の手法を行うこともできる。しかし、入力信号DIjの内容をCAM100に書き込む際にはその値を保持する必要があり、スキャンフリップフロップとしては図7に示されたホールド機能付きのものを用いることが望ましい。さもないと、ホールド動作を行うためにはクロック信号Tを適切に制御する必要がある。
【0197】
以下に示すのは、第2の手法を、適切なテストパターンを自動的に生成することで実行する回路の例である。
【0198】
実施の形態6.
図77は第2の手法を実現するCAMテスト回路の構成を示す回路図である。ここではテストされるべきCAM100が、入力信号のビット数(行の数)mが3、列の数nが4の場合を例示している。図40で示された回路と同様に、CAM100のテストに直接関係のない部分は省略されている。
【0199】
アドレス信号A0,A1はアドレスカウンタUDCNTRによって発生される。このアドレスカウンタは少なくともCAMテスト時においてはアップダウンカウント動作を行う。アドレスカウンタUDCNTRにはダウン信号DMODEが与えられ、これが“0”,“1”の値を採ることに対応して、それぞれアップカウント、ダウンカウントを行う。但し、カウント動作中であっても図示されないクロック信号Tの遷移に依らず、アドレスホールド信号HOLD−AはアドレスカウンタUDCNTRの値を保持させる。アドレスホールド信号HOLD−Aとしては、アドレスホールド原信号HLDAまたはアンド回路AND−HAの出力が、セレクタSEL4によって採用される。
【0200】
また、ここで例示されたアドレスカウンタUDCNTRはスキャンアドレス入力SIAAによってその保持する値を更新する事ができる。スキャンアドレス入力SIAAとしてはスキャンアドレス入力原信号SIAまたは書き込み原信号WECDが、セレクタSEL7によって採用される。
【0201】
最終番地検出回路LADET、初期番地検出回路FADETは、アドレス信号A0,A1を入力する。アルゴリズム上の最終番地が検出された場合には最終番地検出信号LAを“1”にし、アルゴリズム上の初期番地が検出された場合には初期番地検出信号FAを“1”にする。例えば最終番地としてA0=A1=1が、初期番地としてA0=A1=0がそれぞれ指定される。
【0202】
ライトイネーブル信号WEはライトパルスジェネレータWPGによって生成される。ライトイネーブル信号WEはスキャンフリップフロップSFFWから出力される書き込み原信号WECDが“L”である場合に、クロック信号Tに同期して遷移する。
【0203】
スキャンフリップフロップSFFWにはセレクタSEL6を介してスキャン書き込み信号SIW、または統一スキャン入力SICAMが与えられる。
【0204】
図40に示された回路と同様に、スキャンフリップフロップSFF−DI0,SFF−DI1,SFF−DI2はこの順に、スキャン出力端SOとスキャン入力端SIとが直列に接続されている。スキャンフリップフロップSFF−DI2のスキャン出力端SOはインバータINV1の入力端に接続され、スキャンフリップフロップSFF−DI0のスキャン入力端SIはセレクタSEL1,SEL8を介してインバータINV1の出力端に接続されている。
【0205】
スキャンフリップフロップSFF−DIjのいずれの端子HLDにも入力ホールド信号HOLD−DIが与えられており、これが“1”となることによってスキャンフリップフロップSFF−DIjはその記憶内容がクロック信号Tの遷移に依らずに保持される。
【0206】
入力ホールド信号HOLD−DIとしては、セレクタSEL3を介して入力ホールド原信号HLDDI、または特定番地検出信号DETを反転した信号のいずれかが採用される。特定番地検出信号DETの反転はインバータINV3によって行われる。
【0207】
特定番地検出信号DETはセレクタSEL5から出力される。セレクタ5の0−入力端には最終番地検出信号LAが、1−入力端には初期番地検出信号FAが、それぞれ与えられている。
【0208】
セレクタSEL1,SEL3,SEL4はテスト信号CAMTESTによって、セレクタSEL5はダウン信号DMODEによって、セレクタSEL6〜SEL8はスキャンパス制御信号MEMTによって、それぞれ制御される。
【0209】
ダウン信号DMODEはイクスクルーシブ・オア回路XOR1,XOR2、アンド回路AND−UPによって、テスト信号CAMTEST、入力信号DI0、セレクタSEL1の出力、リバース信号REVに基づいて生成される。
【0210】
イクスクルーシブ・オア回路XOR1には入力信号DI0、セレクタSEL1の出力とが与えられ、これらの排他的論理和がアンド回路AND−HAの一方の入力端に与えられる。
【0211】
アンド回路AND−HAの他方の入力端には特定番地検出信号DETが与えられ、イクスクルーシブ・オア回路XOR1の出力と、特定番地検出信号DETの論理積が、セレクタSEL4の1−入力端に与えられる。
【0212】
アンド回路AND−UPにはテスト信号CAMTESTと入力信号DI0とが与えられ、これらの論理積がイクスクルーシブ・オア回路XOR2の一方の入力端に与えられる。
【0213】
イクスクルーシブ・オア回路XOR2の他方の入力端にはリバース信号REVが与えられる。そしてイクスクルーシブ・オア回路XOR2の出力がダウン信号DMODEとしてセレクタSEL5及びアドレスカウンタUDCNTRに与えられる。
【0214】
リバース信号REVは、第2の手法において、列番号を増加させる手順と、列番号を減少させる手順とのいずれを先に行うかを決定するものであり、以下の説明では“1”を採るものとする。“0”を採る場合には列番号を減少させる手順が列番号を増加させる手順に先行する。
【0215】
表4は図77に示された回路動作をクロック信号Tの周期毎に示す各信号の論理値表である。表4には図4で示されたデータ出力DOj、列一致信号Ziも併記されている。
【0216】
【表4】
Figure 0003816560
【0217】
図77に示された回路においても、図41に示されたタイミングチャートに基づいて動作する。
【0218】
ステップ901,902における動作はステップ801,802と同様である。そしてテスト信号CAMTESTが“0”を採る場合には、スキャンパス制御信号MEMTが“1”であればアドレスカウンタUDCNTRはスキャンアドレス入力SIAAによって決定されるアドレス信号A1,A0を出力し、書き込み原信号WECDとしてはセレクタSEL6、スキャンフリップフロップSFFWを介してスキャン書き込み信号SIWが採用され、スキャンフリップフロップSFF−DI0へのシフト入力にはセレクタSEL1を介してスキャン入力信号SIDIが採用される。従って、第0周期乃至第8周期までの信号の論理値は、表1のそれと同一である。ステップ901,902が実行された後の状態が図53に示されている。
【0219】
勿論、図77に示された回路においても、図40に示された回路と同様にして、スキャンパス制御信号MEMTが“0”である場合に一つのスキャンパスが形成され、統一スキャン入力SICAMによって必要な論理値を伝達させることができる。
【0220】
次にステップ903の準備が第9及び第10周期において行われる。まだテスト信号CAMTESTは“0”であり、スキャン書き込み信号SIWとして“1”が設定され、ライトイネーブル信号WEが“0”であってCAM100への書き込みが禁止されている。入力ホールド原信号HLDDIがセレクタSEL3によって入力ホールド信号HOLD−DIとして各スキャンフリップフロップSFF−DIjに与えられており、その値は“1”に設定されてテストパターンの更新は許可されていない。このような状態で、スキャン信号SIAとして順次“1”(第9周期),“0”(第10周期)を与え、第1列目のワード線WL1を選択する。
【0221】
このように、初期番地とすべき値(ステップ903にいう、j=0)よりも1だけ大きな番地を予め指定するのは以下の理由による。
【0222】
ステップ903〜910では列番号iを順次増加させるフローであり、ステップ911〜918では列番号iを順次減少させるフローである。従って、これらのフローを回路の動作によって実現する場合、列番号iを増加させるフローと、減少させるフローとを交互に実行するように当該回路が構成される。換言すれば、列番号iを増加させるフローの直前においては(初期状態を設定する時点では)列番号iを減少させる回路動作が行われる。このような事情に鑑みて第9及び第10周期においてはアドレス信号A1,A0をそれぞれ“0”,“1”に設定している。
【0223】
第11周期乃至第35周期においてCAM100のテストが行われる。テスト信号CAMTESTは、CAM100のテストを行う場合には“1”をとる。第2の手法においては全てのクロックサイクルにおいてCAM100への書き込みが行われるので、スキャン書き込み信号SIWは常に“0”を採っている。
【0224】
今リバース信号REVの値を“1”としているので、イクスクルーシブ・オア回路XOR2の出力であるダウン信号DMODEは、アンド回路AND−UPの出力とは逆の論理値を採る。アンド回路AND−UPの出力は、テスト信号CAMTESTが“1”の場合においては入力信号DI0の値を伝達する。よって、第11周期乃至第35周期の全てにおいて、ダウン信号DMODEは入力信号DI0とは逆の論理値を採る。つまり、入力信号DI0が“1”であればアドレスカウンタUDCNTRはアップカウンタとして機能して列番号iを増加させ、入力信号DI0が“0”であればアドレスカウンタUDCNTRはダウンカウンタとして機能して列番号iを減少させる。
【0225】
そして、セレクタSEL5の選択により、列番号iが増加している際には初期番地検出信号FAが検出されたか、列番号iが減少している際には最終番地検出信号LAが検出されたかが、特定番地検出信号DETによって判断される。よって特定番地検出信号DETが“1”になったということは、ある特定のテストパターンが全ての列に対応するメモリセルに書き込まれたことを意味している。
【0226】
ある特定のテストパターンが全てのメモリセルに書き込まれたのであれば、テストパターンの更新を行う(第11周期、第15期、第19周期、第23周期、第27周期、第31周期、第35周期)。スキャンフリップフロップSFF−DIjの更新の許可/禁止を決定すべく、特定番地検出信号DETをインバータINV3によって論理を反転した入力ホールド信号HOLD−DIがスキャンフリップフロップSFF−DIjに与えられる。
【0227】
イクスクルーシブ・オア回路XOR1の出力は、入力信号DI0のある時点での値と、次に更新されるべき値とが一致していない場合において“1”となる。換言すれば、ある時点におけるテストパターンの値が(1,x,1)または(0,x,0)である場合に“1”となる。アンド回路AND−HAの出力は特定番地検出信号DETとイクスクルーシブ・オア回路XOR1の出力との論理積を採り、これがアドレスホールド信号HOLD−AとしてセレクタSEL4において選択されるので、以下の2つの場合においてのみ、アドレスカウンタUDCNTRのアドレス信号A1,A0の更新が禁止される。
【0228】
・“1”がスキャンフリップフロップSFF−DIjにシフトインされる場合において、テストパターンが(1,1,1)となり、且つ最終番地LAが検出された場合(第23周期)。
【0229】
・“0”がスキャンフリップフロップSFF−DIjにシフトインされる場合において、テストパターンが(0,0,0)となり、且つ初期番地FAが検出された場合(第35周期)。
【0230】
このようなアドレス信号A1,A0の更新の禁止によって、ステップ907においてi=n−1と判断された後、引き続いてステップ912において第(n−1)列に対する書き込みを行うことができる。
【0231】
第12周期乃至第15周期はステップ904及び図54乃至図57に、第16周期乃至第23周期はステップ906及び図58乃至図65に、第24周期乃至第27周期はステップ912及び図66乃至図69に、第28周期乃至第35周期はステップ914並びに図70乃至図76及び図53に、それぞれ対応している。第11周期は第35周期と同一である。
【0232】
図78は第2の手法を実現するCAMテスト回路の他の構成を示す回路図である。ここでは最終番地検出信号LAを、最終番地検出回路LADETを用いて得るのではなく、最終番地に相当する列、ここでは第3列のワード線WL3に与えられる値から得ている。また初期番地検出信号FAを、初期番地検出回路FADETを用いて得るのではなく、初期番地に相当する列、ここでは第0列のワード線WLに与えられる値から得ている。またこのようにしても図77に示された回路と同様の動作を行うことは明白である。
【0233】
第1の手法の場合と類似して、アドレスカウンタUDCNTRとしてはバイナリアップダウンカウンタやフィードバックシフトレジスタ型アップダウンカウンタを用いることができる。またグレイコードカウンタを用いることもできる。
【0234】
図79はアドレスカウンタUDCNTRとしてバイナリアップダウンカウンタを採用した場合の構成を例示する回路図である。図79に示された構成は、図43で示されたバイナリカウンタの増加回路85を増減回路41に置換した構成を有しており、増減回路41は増加回路85にイクスクルーシブ・オア回路を追加した構成を有している。このイクスクルーシブ・オア回路の一方の入力端にはダウン信号DMODEが与えられる。
【0235】
テスト信号CAMTESTが“1”の場合には増減回路41へとスキャンフリップフロップ82,84から経路が開かれる。ダウン信号DMODEが“0”の場合には増減回路41は増加回路85と同様に動作し、クロック信号Tに同期してアドレスが増加する。ここでアドレスXi(i=2・A1+A0)としては、順次デコーダDCDRの出力X0,X1,X2,X3が得られる。
【0236】
ダウン信号DMODEが“1”の場合には増減回路41のイクスクルーシブ・オア回路はインバータとして機能するので、クロック信号Tに同期してアドレスが減少し、順次デコーダDCDRの出力X3,X2,X1,X0が得られる。
【0237】
従って、デコーダDCDRからの出力Xiはそれぞれワード線WLiと接続すればよい。図80はそのような場合のデコーダDCDRとワード線WLiとの接続関係を示している。
【0238】
図78と同様にして、最終番地検出信号LAはワード線WL3に与えられる信号から得ている。また、初期番地検出信号FAはワード線WL0に与えられる信号から得ている。図44において示されたのと同様に、最終番地検出信号LAをワード線WL3に与えられている信号そのものではなく、ワード線ドライバWLDに関してデコーダDCDR側にある出力X3から採っている。また、これと類似して初期番地検出信号FAをワード線WL0に与えられている信号そのものではなく、ワード線ドライバWLDに関してデコーダDCDR側にある出力X0から採っている。このような信号の採取の理由は、各ワード線WL0,WL3において故障が生じていても、正常な最終番地検出信号LA、初期番地検出信号FAを得ることができるようにするためである。
【0239】
図81はアドレスカウンタUDCNTRとして2ビットのフィードバックシフトレジスタ型カウンタを採用した場合の構成を例示する回路図である。図81に示された構成は、図79で示されたバイナリカウンタの増減回路41を増減回路42に置換した構成を有している。増減回路42は、いずれもダウン信号DMODEによって制御される2つのセレクタと、2つのインバータとから構成されている。
【0240】
ダウン信号DMODEが“0”を採る場合にはテスト信号CAMTESTの採る値に拘らず、スキャンフリップフロップ82のスキャン出力端SOがスキャンフリップフロップ84のスキャン入力端SIに接続される。よって、この場合には増減回路42は増加回路86と同様に動作する。即ち、テスト信号CAMTESTが“1”の場合にはクロック信号Tに同期して順次デコーダDCDRの出力X0,X2,X3,X1が択一的に活性化する。
【0241】
逆にダウン信号DMODEが“1”を採る場合、テスト信号CAMTESTが“1”であればクロック信号Tに同期して順次デコーダDCDRの出力X0,X2,X3,X1が択一的に活性化する。
【0242】
第2の手法においても第1の手法と同様に、どの列のメモリセルから順にアクセスしなければならないということはない。しかし、第0乃至第3列へとこの順にアクセスするのであれば、図82に示されるように、デコーダDCDRの出力X0,X2,X3,X1が、それぞれワード線WL0,WL1,WL2,WL3をドライブするように接続すればよい。この場合、最終番地は“1”であり、これが第3列に対応する。また、初期番地の次に増加する番地は“2”である。従って、アドレスカウンタUDCNTRとして図81のフィードバックシフトレジスタ型カウンタを採用した場合、表4の第9及び第10周期においてはアドレス信号A1,A0としてそれぞれ“1”,“0”を与える必要がある。
【0243】
第2の手法においても、第の手法と同様に、16列のメモリセルを有するCAMにおいても適用することができる。その際にはデコーダDCDRには4ビットのアドレス信号A3,A2,A1,A0が与えられる。
【0244】
図83は4ビットのアドレス信号A3,A2,A1,A0を生成するフィードバックシフトレジスタ型カウンタの構成を例示する回路図である。セレクタ81,31,32,33,34、スキャンフリップフロップ51,52,53,54及び増減回路43が図のように接続されている。スキャンフリップフロップ51,52,53,54はいずれも図7(b)に示された構成を採ることができる。セレクタ81はテスト信号CAMTESTによって制御され、テスト信号CAMTESTが“1”となるとスキャンフリップフロップ51,52,53,54及び増減回路43がセレクタ31,32,33,34を介して互いに接続される。セレクタ31,32,33,34はいずれもダウン信号DMODEによって制御される。
【0245】
ダウン信号DMODEが“0”の場合にはスキャンフリップフロップ51のスキャン出力端SOをスキャンフリップフロップ52のスキャン入力端SIに、スキャンフリップフロップ52のスキャン出力端SOをスキャンフリップフロップ53のスキャン入力端SIに、スキャンフリップフロップ53のスキャン出力端SOをスキャンフリップフロップ54のスキャン入力端SIに、それぞれ接続する。このとき増減回路43は増加回路75と同等の機能を果たし、アドレス信号A3,A2,A1,A0に基づき、デコーダDCDRからは出力X0,X8,X12,X14,X15,X7,X11,X5,X10,X13,X6,X3,X9,X4,X2,X1(Xk:k=8・A3+4・A2+2・A1+A0)が順次に択一的に活性化する。
【0246】
ダウン信号DMODEが“1”の場合にはスキャンフリップフロップ54のスキャン出力端SOをスキャンフリップフロップ53のスキャン入力端SIに、スキャンフリップフロップ53のスキャン出力端SOをスキャンフリップフロップ52のスキャン入力端SIに、スキャンフリップフロップ52のスキャン出力端SOをスキャンフリップフロップ51のスキャン入力端SIに、それぞれ接続する。このとき生成されるアドレス信号A3,A2,A1,A0に基づき、デコーダDCDRからは出力X1,X2,X4,X9,X3,X6,X13,X10,X5,X11,X7,X15,X14,X12,X8,X0が順次に択一的に活性化する。
【0247】
このような場合においても隣接するワード線WLiが順次活性化するためには、図84に示すようにデコーダDCDRとワード線WLiと接続する。デコーダDCDRの出力X0,X8,X12,X14,X15,X7,X11,X5,X10,X13,X6,X3,X9,X4,X2,X1がそれぞれワード線WL0,WL1,WL2,…WL15をドライブするように接続すればよい。この場合、最終番地は“1”であり、これが第15列に対応する。また、初期番地の次に増加する番地は“8”である。従って、アドレスカウンタUDCNTRとして図81のフィードバックシフトレジスタ型カウンタを採用した場合、テスト信号CAMTESTを“1”にする直前において、アルゴリズム上では第8番地を設定しておく必要がある。
【0248】
(c−2−2)期待値の生成.
実施の形態7.
第2の手法に対応する期待値を、列一致信号Ziの生成と同期して得るための技術を説明する。実施の形態3と同様、列数nが4の場合を例に採って説明する。
【0249】
表5は各状態における期待値E0,E1,E2,E3を時系列に纏めた論理値表である。これらの内容は列一致信号Z0,Z1,Z2,Z3として図53乃至図76に既に示されている。表中の矢印は、状態が循環する事を示している。
【0250】
【表5】
Figure 0003816560
【0251】
図85は期待値E0,E1,E2,E3を生成する期待値生成回路62の構成を図示している。ここでは図77に示された特定番地検出信号DETを得る部分及びライトイネーブル信号WEをも併せて示している。また、期待値E0,E1,E2,E3と列一致信号Z0,Z1,Z2,Z3とを比較するための比較回路70も示している。なお、最終番地検出回路LADET,初期番地検出回路FADETの代わりにワード線WL3,WL0に対応するデコーダ出力を用いても良い。
【0252】
期待値生成回路62はフリップフロップFF1と、期待値生成回路61と、オア回路ORE0,ORE3と、インバータINV6とから構成されている。期待値生成回路61は図50において説明されたものと同一である。
【0253】
リセット・セット・フリップフロップRSiのセット端には出力Xiが与えられる(既述のようにデコーダDCDRとして図80に記載されたものを用いるのであれば、図81に示されるように出力Xiとワード線WLiとの接続関係を変更する)。また、全てのリセット・セット・フリップフロップRSiのリセット端にはリセット信号RSTとして特定番地検出信号DETをフリップフロップFF1でクロックサイクル1つ分遅らせた信号が与えられる。
【0254】
オア回路ORE0の一方の入力端にはダウン信号DMODEの反転が、他方の入力端にはリセット・セット・フリップフロップRS0のQ出力が、それぞれ与えられる。またオア回路ORE3の一方の入力端にはダウン信号DMODEが、他方の入力端にはリセット・セット・フリップフロップRS3のQ出力が、それぞれ与えられる。そして期待値E0,E1,E2,E3はそれぞれオア回路ORE0の出力、リセット・セット・フリップフロップRS1のQ出力、リセット・セット・フリップフロップRS2のQ出力、オア回路ORE3の出力として得ることができる。
【0255】
期待値生成回路62の構成上、ワード線WL0,WL1,WL2,WL3はこの順に択一的に活性化することが望ましいので、アドレスカウンタUDCNTRとして図81に記載されたものを用いる場合には、リセット・セット・フリップフロップRS0,RS1,RS2,RS3のそれぞれのセット端にはそれぞれ出力X0,X2,X3,X1が与えられる。以下では簡単のため、アドレスカウンタUDCNTRとして図79に記載されたものを用いるとして説明するが、上記のようにアドレスカウンタUDCNTRとして図81に記載されたものを用いても、ワード線WLiの接続を適切に行えばよい。
【0256】
オア回路ORE0及びインバータINV6はアドレスカウンタUDCNTRがアップカウントを行う際(DMODE=0)に期待値E0を強制的に“1”にする為に設けられている。またオア回路ORE3はアドレスカウンタUDCNTRがダウンカウントを行う際(DMODE=1)にE3を強制的に“1”にする為にもうけられている。
【0257】
テスト信号CAMTESTが“1”になる直前には初期番地の次の番地が指定されている(第10周期)。ここではアドレス信号A,A0としてそれぞれ“0”,“1”が与えられていたので、特定番地検出信号DETは“0”であって、フリップフロップFF1には値“0”が与えられている。従って、テスト信号CAMTESTが“1”になった直後(第11周期)では、リセット信号RSTが与えられない。このため、表5におけるSTATE−B−0での期待値を第11周期で得ることはできない。STATE−B−0での期待値を得る状態については後述する。
【0258】
しかし、STATE−B−1以降での期待値を得ることは、以下のようにして可能である。第11周期において入力信号DI0は“0”であり、リバース信号REVが“1”の場合ではダウン信号DMODEは“1”となる。よってセレクタSEL5は特定番地検出信号DETとして初期番地検出信号FAを出力する。そしてこのときには初期番地が指定されるので、特定番地検出信号DETが“1”となり、これはフリップフロップFF1に記憶される。
【0259】
特定番地検出信号DETが“1”となった次のクロックサイクルでリセット信号RSTが“1”となるので、リセット・セット・フリップフロップRSiは全てリセットされ、それぞれの出力は“0”となる。つまり、第12周期においてSTATE−B−1での期待値を得ることができる。
【0260】
第12周期において入力信号DI0は“1”であり、ダウン信号DMODEは“0”となる。従って、次に入力信号DI0は“0”になるまでは、インバータINV6の機能によってE0は“0”の値を取り続ける。
【0261】
リセット信号RSTが“0”を採るクロックサイクルでは、選択されたワード線WLiに対応するリセット・セット・フリップフロップRSiの出力Eiが1になり、次にリセット信号RSTが“1”となってリセットされるまで保持される。
【0262】
例えば、ワード線がWL0→WL1→WL2→WL3の順でアクセスされた場合、期待値の組(E0,E1,E2,E3)の値は(1,0,0,0)→(1,1,0,0)→(1,1,1,0)→(1,1,1,1)の順で変化する。逆にワード線がWL→WL2→WL1→WL0の順でアクセスされた場合、期待値の組(E0,E1,E2,E3)の値は(0,0,0,1)→(0,0,1,1)→(0,1,1,1)→(1,1,1,1)の順で変化する。このようにして表5に示された期待値Eiのうち、STATE−B−1〜23までに対応するものが自動的に生成される。そして、STATE−B−23に示された状態の次にはSTATE−B−0に示された状態が得られることになり、結局表5に示された期待値Eiが全て自動的に生成されることになる。
【0263】
図86は期待値E0,E1,E2,E3を生成する他の期待値生成回路63の構成を図示している。ここでは図77に示された特定番地検出信号DETを得る部分及びライトイネーブル信号WEをも併せて示している。また、期待値E0,E1,E2,E3と列一致信号Z0,Z1,Z2,Z3とを比較するための比較回路70も示している。なお、最終番地検出回路LADET、初期番地検出回路FADETの代わりにワード線WL3,WL0に対応するデコーダ出力を用いても良い。
【0264】
期待値生成回路63はフリップフロップFF1と、期待値生成回路61と、インバータINVE0,INVE3とから構成されている。リセット・セット・フリップフロップRSiのセット端には出力Xiが与えられる(既述のようにデコーダDCDRとして図80に記載されたものを用いるのであれば、図81に示されるように出力Xiとワード線WLiとの接続関係を変更する)。また、全てのリセット・セット・フリップフロップRSiのリセット端にはリセット信号RSTとして特定番地検出信号DETをフリップフロップFF1でクロックサイクル1つ分遅らせた信号が与えられる。
【0265】
インバータINVE0,INVE3の入力端にはそれぞれリセット・セット・フリップフロップRS0,RS3のQバー出力が与えられ、期待値E0,E1,E2,E3はそれぞれインバータINVE0の出力、リセット・セット・フリップフロップRS1のQ出力、リセット・セット・フリップフロップRS2のQ出力、インバータINVE3の出力として得られる。
【0266】
ダウン信号DMODEが“0”の場合、最終番地検出信号LAが“1”(例えばWL3が選択されるべく出力X3が“1”となる場合。以下同様にして、主としてデコーダDCDRとして図79に記載されたものを用いる場合について説明するが、図80に記載されたものを用いることもできる。その場合には既述のように図81に示されるように出力Xiとワード線WLiとの接続関係を変更することになる。)となった次のクロックサイクルではリセット信号RSTが“1”となってリセット・セット・フリップフロップRS1,RS2,RS3がリセットされる。また、出力X0が“1”であるのでリセット・セット・フリップフロップRS0のQ出力及びQバー出力は共に“0”となる。よって期待値E0,E1,E2,E3の組は(1,0,0,0)となる。
【0267】
ダウン信号DMODEが“1”の場合、初期番地検出信号FAが“1”となった(出力X0が“1”となった)次のクロックサイクルではリセット信号RSTが“1”となってリセット・セット・フリップフロップRS0,RS1,RS2がリセットされる。また出力X3が“1”であるのでリセット・セット・フリップフロップRS3のQ出力及びQバー出力は共に“0”となる。よって期待値E0,E1,E2,E3の組は(0,0,0,1)となる。
【0268】
このように、ここで示されている技術においては、本来は禁止されているような、リセット・セット・フリップフロップRS0,RS3のリセット端Rとセット端Sとを“1”にするような用い方をする。そして、セット処理よりもリセット処理を優先するために、単にリセット・セット・フリップフロップRS0,RS3のQ出力をそのまま期待値E0,E3として採用するのではなく、インバータINVE0,INVE3にQバー出力を反転させて得られた値を採用しているのである。
【0269】
リセット信号RSTが“0”であるクロックサイクルでは、選択されたデコーダ出力Xiに対応してEiが1になり、リセット信号RSTが“1”になるまで保持される。従って、図85に示された回路と同様に、表5に示された期待値Eiが全て自動的に生成されることになる。
【0270】
(c−2−3)第2の手法の変形
実施の形態8.
図87は図51と相まって、第2の手法の変形を示すフローチャートである。第2の手法の変形は、第2の手法のうちの接続子J2以前の処理と同一の処理を接続子J2以前において行う。接続子J2以前の処理によっては、第0列においてケース2,4における診断はなされても、ケース1,3における診断がなされることはない。他の第1乃至第3列においてはケース1,2における診断がなされる。
【0271】
第2の手法のうち、図52において示された接続子J2以降のフローの実行によっては、テストパターンが(1,1,1),(0,1,1),(0,0,1)の場合のそれぞれにおいて、列番号の大きなものから小さなものへと各列に書き込み及び読み出しがなされてゆく。
【0272】
これに対して第2の手法の変形では、上記のテストパターンと同一のテストパターンのそれぞれにおいて、列番号の小さなものから大きなものへと各列に書き込み及び読み出しがなされてゆく。従って、接続子J2以降の処理によっても第0列においてケース2,4における診断はなされても、ケース1,3における診断がなされることはない。一方、他の第1乃至第3列においてはケース3,4における診断がなされる。
【0273】
従って、第2の手法とは異なり、第3列についても全てのケース1〜4における故障診断が可能である。しかし、第0列についてはケース1,3における故障診断が為されることはない。
【0274】
よって、全てのケースについての故障診断を行うのであれば、書き込みの順序が列番号の大きなものから小さなものへと移るようにして、図51及び図87のステップ904,906,920,923を実行するフローを、更に実行する必要がある。
【0275】
(c−3)第3の手法.
実施の形態9.
第1の手法は、第1乃至第4のケースについて全てのメモリセルの故障を診断することができる点で優れているが、CAMのテスト手法には他の変形も可能である。
【0276】
図88及び図89はこの発明の第3の手法を示すフローチャートである。両図は接続子J3,J4を介して連続する。第3の手法は一列ずつ順番にメモリセルのテストを行うことを特徴としている。
【0277】
図90乃至図137は第3の手法が施された場合の、スキャンフリップフロップSFF−DIjの記憶内容(入力信号DIj)と、CAM100の連想メモリセルCij(i=0,1,2,3;j=0,1,2)の記憶する内容を時系列に示す概念図であり、順次「STATE−C−p」(p=0〜47)の状態が示されている。これらの図における数字の表し方は図10乃至図39に示されたものと同様である。
【0278】
ステップ1001,1002においてはそれぞれ第1の手法のステップ801,802と同じ処理がなされる。つまり全ての入力信号DIjに初期値として“0”を設定し、全てのi,jについて、連想メモリセルCijの記憶内容を初期値として“0”に設定する。図90はここまでのステップ1001,1002が実行された状態を示す。そしてステップ1003において列番号を初期化するここでは第0列が選択されている。そしてステップ1004においてj=0にし、スキャンフリップフロップSFF−DIjに対する処理のための初期化を行う。
【0279】
ステップ1005において、入力信号DIjが反転される。既述のように、これは図3を用いて示されたインバータINV1による帰還を行うことに対応している。よって、図90の状態に対してステップ1005を実行することは値“1”をシフトインすることと等価である。
【0280】
図8及び図9においてと同様に、図88及び図89においても、太枠で示されたステップ1005,1006,1010,1011では、そのステップが実行されることによって確定した列一致信号Ziをテストすることも行われる。図91はステップ1005が実行された状態を示す。このとき、連想メモリセルC00についてケース1の故障診断を行うことができる。
【0281】
その後ステップ1006を実行し、第0列にテストパターン(1,0,0)を書き込む(図92)。このとき、連想メモリセルC00についてケース2の故障診断を行うことができる。
【0282】
そしてステップ1007,1008で更に次の行へと移り、ステップ1005によって新たに“1”をシフトインする(図93)。このとき、連想メモリセルC01についてケース1の故障診断を行うことができる。そしてステップ1006が実行されて第0列にテストパターン(1,1,0)を書き込む(図94)。このとき、連想メモリセルC01についてケース2の故障診断を行うことができる。
【0283】
以下同様にしてステップ1005,1006が順次繰り返され、最終行に対応するる行番号jが(m−1)(=3−1=2)に至るまで連想メモリセルC0jについてケース1,2の故障診断を行うことができる(図95及び図96)。
【0284】
次にステップ1009によって行番号が再度初期化される。ステップ1009〜ステップ1013はステップ1004〜1008と同様の処理を続ける。但し、既に入力信号DI2が“1”を採っているので、シフトインされる値は“0”である。
【0285】
よってステップ1009〜1013の実行によって連想メモリセルC0jについてケース3,4の故障診断を行うことができる(図97乃至図102)。
【0286】
そして第(m−1)行までのシフトインが終了すれば、即ちテストパターンが(0,0,0)となって、これの第0列への書き込みが(ステップ1011)が行われれば、ステップ1014,1015によって、書き込みの対象となる列が更新される。図102の状態に関してみれば、列番号iがいままで“0”であったので、ステップ1015によって第1列が書き込み対象となる。そして接続子J4を介してステップ1004へ戻り、新たなテストパターン(1,0,0)の第1列の連想メモリセルC1jへの書き込みがステップ1005によって行われる。図103乃至図108は第1列の連想メモリセルC1jについてケース1,2の故障診断を行う状態を、図109乃至図114はケース3,4の故障診断を行う状態を、それぞれ示している。
【0287】
同様にして、書き込み対象となる列が順次更新され、図115乃至図120は第2列の連想メモリセルC2jについてケース1,2の故障診断を行う状態を、図121乃至図126はケース3,4の故障診断を行う状態を、それぞれ示している。また、図127乃至図132は第3列の連想メモリセルC3jについてケース1,2の故障診断を行う状態を、図133乃至図137及び図90はケース3,4の故障診断を行う状態を、それぞれ示している。
【0288】
このように第3の手法においては、第の手法と同様に、全てのメモリセルに対して、ケース1〜4の全ての場合における故障診断を行うことができる。
【0289】
(c−3−1)第3の手法を実行するための回路.
前駆的思想において図1及び図2で示された回路でも、スキャン入力信号SIDIが適切なテストパターンを採り、シフトインすることによっても図88及び図89に示された第3の手法を行うこともできる。しかし、入力信号DIjの内容をCAM100に書き込む際にはその値を保持する必要があり、スキャンフリップフロップとしては図7に示されたホールド機能付きのものを用いることが望ましい。さもないと、ホールド動作を行うためにはクロック信号Tを適切に制御する必要がある。
【0290】
以下に示すのは、第3の手法を、適切なテストパターンを自動的に生成することで実行する回路の例である。
【0291】
実施の形態10.
図138は第3の手法を実現するCAMテスト回路の構成を示す回路図である。ここではテストされるべきCAM100が、入力信号のビット数(行の数)mが3、列の数nが4の場合を例示している。図40で示された回路と同様に、CAM100のテストに直接関係のない部分は省略されている。
【0292】
アドレス信号A0,A1はアドレスカウンタCNTRによって発生される。このアドレスカウンタは少なくともCAMテスト時においてはカウント動作を行う。但し、カウント動作中であっても図示されないクロック信号Tの遷移に依らず、アドレスホールド信号HOLD−AはアドレスカウンタCNTRの値を保持させる。アドレスホールド信号HOLD−Aとしては、アドレスホールド原信号HLDAまたは信号ALL0Wが、セレクタSEL4によって採用される。
【0293】
アドレスカウンタCNTRはスキャンアドレス入力SIAAによってその保持する値を更新する事ができる。スキャンアドレス入力SIAAとしてはスキャンアドレス入力原信号SIAまたは書き込み原信号WECDが、セレクタSEL7によって採用される。
【0294】
図138に示された構成において、セレクタSEL1〜SEL4,SEL8と、フリップフロップSFF−DIjと、インバータINV1と、アドレスカウンタCNTRと、スキャンフリップフロップSFFWと、ライトパルスジェネレータWPGとの接続関係、及びこれらに対してスキャンパス制御信号MEMT、テスト信号CAMTEST、スキャン入力信号SIDI、入力ホールド原信号HLDDI、スキャン信号SOA、統一スキャン入力SICAMが与えられる箇所は図40に示された構成と同一である。
【0295】
但し、セレクタSEL3の1−入力端には書き込み原信号WECDが与えられている。また、セレクタSEL2の1−入力端にはインバータINV4の出力端が接続されており、書き込み原信号WECDを反転した信号が与えられている。そして最終番地検出回路LADETは設けられてはいない。
【0296】
信号All0Wはオア回路OR1,OR2によって、書き込み原信号WECDと、入力信号DIjの論理和として生成される。
【0297】
表6及び表7は図138に示された回路動作をクロック信号Tの周期毎に示す各信号の論理値表である。表6及び表7には図4で示されたデータ出力DOj、列一致信号Ziも併記されている。
【0298】
【表6】
Figure 0003816560
【0299】
【表7】
Figure 0003816560
【0300】
図138に示された回路においても、図41に示されたタイミングチャートに基づいて動作する。
【0301】
ステップ1001,1002における動作はステップ801,802と同様である。そしてテスト信号CAMTESTが“0”を採る場合には、スキャンパス制御信号MEMTが“1”であればアドレスカウンタCNTRはスキャンアドレス入力SIAAによって決定されるアドレス信号A1,A0を出力し、書き込み原信号WECDとしてはセレクタSEL6、スキャンフリップフロップSFFWを介してスキャン書き込み信号SIWが採用され、スキャンフリップフロップSFF−DI0へのシフト入力にはセレクタSEL1を介してスキャン入力信号SIDIが採用される。従って、第0周期乃至第8周期までの信号の論理値は、表1のそれと同一である。ステップ1001,1002が実行された後の状態が図90に示されている。
【0302】
勿論、図138に示された回路においても、図40に示された回路と同様にして、スキャンパス制御信号MEMTが“0”である場合に一つのスキャンパスが形成され、統一スキャン入力SICAMによって必要な論理値を伝達させることができる。
【0303】
次にステップ1003の準備が第9及び第10周期において行われる。まだテスト信号CAMTESTは“0”であり、スキャン書き込み信号SIWとして“1”が設定され、ライトイネーブル信号WEが“0”であってCAM100への書き込みが禁止されている。入力ホールド原信号HLDDIがセレクタSEL3によって入力ホールド信号HOLD−DIとして各スキャンフリップフロップSFF−DIjに与えられており、その値は“1”に設定されてテストパターンの更新は許可されていない。このような状態で、スキャン信号SIAとして順次“1”(第9周期),“1”(第10周期)を与え、最終列のワード線WL3を選択する。従って、第9周期乃至第10周期までの信号の論理値も、表1のそれと同一である。
【0304】
更に、第11周期においてはアドレスホールド原信号HLDAが“1”に設定され、既にいずれも“1”に設定されたアドレス信号A1,A0の値が保持される。従って、スキャンアドレス入力信号SIAの値は特定されない。スキャン書き込み信号SIWの値が“0”に設定され、スキャンフリップフロップSFFWには値“0”が記憶される。従って、第11周期の信号の論理値も、表1のそれと同一である。
【0305】
第12周期乃至第59周期においてはCAMテストが実行される。この周期においてはテスト信号CAMTESTは“1”に設定される。よってテスト信号CAMTESTによって制御されるセレクタSEL1〜SEL4の0−入力端に与えられていたスキャン入力信号SIDI、スキャン書き込み信号SIW、入力ホールド原信号HLDDI、アドレスホールド原信号HLDAの値は特定される必要がない。更に、テスト信号CAMTESTが“1”となることにより、アドレスカウンタCNTRはカウント機能を発揮するので、スキャンアドレス入力信号SIAの値も特定されない。
【0306】
表1を用いて説明したのと同様に、第12周期の開始となるクロック信号Tの遷移においてアドレスホールド信号HOLD−Aも“0”となり、アドレスカウンタCNTRのカウント動作が許可され、アドレス信号A1,A0の値が(1,1)から(0,0)へと更新される。その一方、インバータINV4の機能により、第11周期において“0”となっていた書き込み原信号WECDが反転され、値“1”がセレクタSEL2,SEL6を経由して書き込み原信号WECDとして採用される。よって、ライトイネーブル信号WEが“0”となっている。第12周期においては連想メモリセルC00,C01,C02への書き込みは禁止される。
【0307】
表1を用いて示されたのと同様に、第12周期の開始となるクロック信号Tの遷移によって、即ちアドレス信号A1,A0の値が(1,1)から(0,0)へ更新される(この更新はクロック信号TによってアドレスカウンタCNTRが動作した後に行われる)よりも以前にスキャンフリップフロップSFF−DIjの記憶内容が更新される。従ってテストパターンは(0,0,0)から(1,0,0)へと更新され、図91に示された状態を実現することができる。
【0308】
第13周期においては、インバータINV4の機能により、書き込み原信号WECDとして“0”が採用される。よって、ライトイネーブル信号WEが“1”となって、図92に示されたように連想メモリセルC0jへの書き込みが行われる。
【0309】
このように、書き込み原信号WECDはインバータINV4の機能によってクロックサイクル毎に0と1を交互に繰り返す。つまり、CAM100には2回に一回、書き込み動作が行われる。そして書き込みが行われない場合にはインバータINV1によってシフトインが実行される。
【0310】
この後、テストパターンが(0,0,0)となるまでの更新と第0列の連想メモリセルC0jへの書き込みが交互に行われる。これはステップ1015が実行されるまでのステップ1005,1006,1010,1011の実行に対応する(第12周期乃至第23周期)。
【0311】
テストパターンが(0,0,0)となるまで、書き込み対象となるメモリセルの列番号を変更させないため、オア回路OR1によってテストパターンが監視されている。そしてテストパターンが(0,0,0)となる場合のみ0−一致信号ALL0を“0”にする。この結果、信号ALL0Wは“1”となり、アドレスホールド信号HOLD−Aも“1”となってカウンタCNTRによるアドレス更新は禁止される。
【0312】
第1の手法を説明する際に示したように、CAMへの書き込みを行うことにより、必要なテストパターン数を減少させることができ、必要なのは※で示された6つのパターンであり、(1,0,1),(0,1,0)という、両端の値が等しく、かつそれ以外の値が両端の値とは異なるというパターンは必要ない。従って、オア回路OR1は入力信号DI0,DI2のいずれもが“0”となったか否かを検出すれば良く、入力信号DI1の値を考慮する必要はない。図138においてはオア回路OR1の入力端のうち、入力信号DI1に接続されたものを破線で示しているのは、上記事情に鑑みて、省略可能であることを意味している。
【0313】
但し、第22周期において、テストパターンが(0,0,0)となっても、まだ第0列の連想メモリセルC0jの書き込みが終了していない(図101)。そして列番号の更新は連想メモリセルC0jの書き込みが終了してから行わなければならない。そのような制御を行うためオア回路OR2が設けられ、0−一致信号ALL0が“0”であるのみならず、書き込み原信号WECDもが“0”となって書き込みが行われる場合(図102)に、信号ALL0Wが“0”となる。そして信号ALL0WがセレクタSEL4を介してカウンタCNTRのアドレス更新を許可する(値“0”を採る。第23周期)。
【0314】
これ以降、第12周期乃至第23周期と同様の動作(図91乃至図102)が列番号を更新しつつ(ステップ1015)繰り返される(第24周期乃至第35周期:図103乃至図114、第36周期乃至第47周期:図115乃至図126、第48周期乃至第59周期:図127乃至図137及び図90)。このようにして第3の手法が実行される。
【0315】
(c−3−2)期待値の生成.
実施の形態11.
第1及び第2の手法と同様に、第3の手法によって得られた列一致信号Ziから故障を判断するためには、期待値を得ることが必要である。以下ではかかる期待値を列一致信号Ziの生成と同期して得るための技術を説明する。実施の形態3と同様、列数nが4の場合を例に採って説明する。
【0316】
表8は各状態における期待値E0,E1,E2,E3を時系列に纏めた論理値表である。これらの内容は列一致信号Z0,Z1,Z2,Z3として図90乃至図137に既に示されている。表中の矢印は、状態が循環する事を示している。
【0317】
【表8】
Figure 0003816560
【0318】
図139は期待値E0,E1,E2,E3を生成する期待値生成回路64の構成を図示している。ここでは図138に示されたライトパルスジェネレータWPG及びこれに入力する書き込み原信号WECDと、0−一致信号ALL0、書き込み原信号WECDを反転させるインバータINV4をも併せて示している。また、期待値E0,E1,E2,E3と列一致信号Z0,Z1,Z2,Z3とを比較するための比較回路70も示している。
【0319】
期待値生成回路64は期待値生成回路61、オア回路ORR、リセット・パルス発生回路RPG、セレクタSELE0,SELE1,SELE2,SELE3から構成されている。
【0320】
期待値生成回路61の有するリセット・セット・フリップフロップRSiのセット端Sにはそれぞれ出力Xiが与えられる。また、全てのリセット・セット・フリップフロップRSiのリセット端Rにはリセット・パルス発生回路RPGからリセット信号RSTが与えられる。
【0321】
セレクタSELEiの1−入力端及び0−入力端には、それぞれリセット・セット・フリップフロップRSiのQ出力及びQバー出力が与えられる。また、全てのセレクタSELEiは0−一致信号ALL0によって制御され、その出力がそれぞれ期待値Eiとして採用される。
【0322】
オア回路ORRは0−一致信号ALL0とインバータINV4の出力との論理和をとってリセット・パルス発生回路RPGに与える。
【0323】
書き込み原信号WECDが“1”であり、且つ0−一致信号ALL0が“0の場合のみ、リセットパルスは発生されない(STATE−C−11,23,35,47に相当する)。その他の場合、即ち書き込み原信号WECDが“0”(インバータINV4の出力が“1”)又は0−一致信号ALL0が1の場合、リセット・パルスRSTは“1”を採る。
【0324】
従って、0−一致信号ALL0が“0”となる、表6の第22周期に相当するSTATE−C−11の直前(STATE−C−10)までは、リセット・セット・フリップフロップRSiは書き込み原信号WECDが“0”となる度(STATE−C−1,3,5,7,9)にリセットされ、期待値Eiは全て“0”となる。そのほかはワード線WL0が選択されている状態であるので、リセット・セット・フリップフロップRS0がセットされる。そしてセレクタSELEiはその1−入力端に与えられた信号を出力するので、STATE−C−2,4,6,8,10において期待値の組(E0,E1,E2,E3)は(1,0,0,0)となる。
【0325】
各クロックサイクルでワード線WLi対応のデコーダ出力がリセット・セット・フリップフロップの最終保持データを決定するため、早めにリセットパルスRSTが立ち下がるようにリセット・パルス発生回路RPGが設計される。
【0326】
その後、表6の第22周期に相当するSTATE−C−11においては0−一致信号ALL0が“0”となり、書き込み原信号WECDが“1”となるので、リセット・セット・フリップフロップRSiのリセットは行われない。そしてこのときセレクタSELEiはその0−入力端に与えられた信号を出力するので、リセット・セット・フリップフロップRSiのQバー出力が期待値Eiとして採用される。従って、STATE−C−11における期待値の組(E0,E1,E2,E3)は、STATE−C−2,4,6,8,10における期待値の組(E0,E1,E2,E3)と相補的な値(0,1,1,1)を採る。
【0327】
そして表6の第23周期に相当するSTATE−C−11においては0−一致信号ALL0が“0”ではあるが、書き込み原信号WECDが“0”となるので、リセット・セット・フリップフロップRSiのリセットが行われる。この場合もリセット・セット・フリップフロップRSiのQバー出力が期待値Eiとして採用されるので、期待値の組(E0,E1,E2,E3)は、(1,1,1,1)となる。
【0328】
この後は同様にして、第13周期(表6)乃至第58周期(表7)において期待値が生成される(STATE−C−24〜47)。なお、STATE−C−0の期待値については第59周期(表7)において生成される。
【0329】
図140は期待値E0,E1,E2,E3を生成する他の期待値生成回路65の構成を図示している。期待値生成回路65は、イクスクルーシブ・オア回路XORWと、アンド回路ANDX0,ANDX1,ANDX2,ANDX3と、イクスクルーシブ・ノア回路XNOR0,XNOR1,XNOR2,XNOR3とから構成されている。
【0330】
イクスクルーシブ・オア回路XORWは、書き込み原信号WECDと0−一致信号ALL0との排他的論理和を、全てのアンド回路ANDXiの一方の入力端に与える。アンド回路ANDXiの他方の入力端には、ワード線WLiを選択するデコーダの出力Xiがそれぞれ与えられている。全てのイクスクルーシブ・ノア回路XNORiの一方の入力端には0−一致信号ALL0が与えられ、イクスクルーシブ・ノア回路XNORiの他方の入力端には、それぞれアンド回路ANDXiの出力が与えられる。期待値Eiはそれぞれイクスクルーシブ・ノア回路XNORiの出力として与えられる。
【0331】
STATE−C−10に対応する表6の第21周期までは、0−一致信号ALL0が“1”であり、書き込み原信号WECDの“1”,“0”に対応して、イクスクルーシブ・オア回路XORWの出力はそれぞれ“0”,“1”となる。STATE−C−10までは、ワード線WL0が選択されているので、アンド回路ANDX0の他方の入力端には“1”が与えられ、アンド回路ANDX1,ANDX2,ANDX3の他方の入力端には“0”が与えられる。よって、アンド回路ANDX0,ANDX1,ANDX2,ANDX3の出力の組は、書き込み原信号WECDの“1”,“0”に対応してそれぞれ(0,0,0,0)、(1,0,0,0)となる。そして0−一致信号ALL0が“1”であるのでイクスクルーシブ・ノア回路XNORiはアンド回路ANDXiの出力をそのまま伝搬させる。よって期待値の組(E0,E1,E2,E3)の値も書き込み原信号WECDの“1”,“0”に対応してそれぞれ(0,0,0,0)、(1,0,0,0)となる。
【0332】
STATE−C−11に対応する第22周期において、0−一致信号ALL0が“0”であり、書き込み原信号WECDが“1”である。よってアンド回路ANDXiはワード線WLiを選択するデコーダDCDRの出力Xiをそのまま伝搬させる。一方、0−一致信号ALL0が“0”であるのでイクスクルーシブ・ノア回路XNORiはアンド回路ANDXiの出力を反転させる。よって期待値の組(E0,E1,E2,E3)の値は(1,0,0,0)と相補的な値の組(0,1,1,1)となる。
【0333】
STATE−C−12に対応する第23周期において、0−一致信号ALL0は“0”であるが、書き込み原信号WECDも“0”であるので、イクスクルーシブ・オア回路XORWの出力は“0”となり、アンド回路ANDXiの出力は全て“0”となる。そしてイクスクルーシブ・ノア回路XNORiはアンド回路ANDXiの出力を反転させ、期待値の組(E0,E1,E2,E3)の値は(1,1,1,1)となる。
【0334】
上記と同様の動作の繰り返しにより、図139に示された回路と同様に、図140に示された回路も第3の手法に関する期待値を自動的に生成することができる。
【0335】
D.列一致信号を受けるスキャンパス.
図1において示されたように、列一致信号Ziをスキャンパスで受け、これをシフトさせてスキャン信号SOZとして順次得ることができる。また、列一致信号Ziからヒット信号HITを得ることもできる。以下ではそのようなスキャンパス及びこれを構成するスキャンフリップフロップの例について説明する。以下で示すスキャンフリップフロップは既述の第1乃至第3の手法の何れに対しても適用することができる。
【0336】
(d−1)実施の形態12.
図141は列一致信号Ziと期待値Eiとを受けるスキャンパスの構成を示す回路図であり、図142は当該スキャンパスを構成するスキャンフリップフロップSFF−Ziの構成を示す回路図である。
【0337】
スキャンフリップフロップSFF−Ziは直列に接続され、そのD端子には列一致信号Ziを、その端子EXPには期待値Eiを、それぞれ入力する。またQ出力として信号QZiが、端子Gからは信号Giが、それぞれ出力される。
【0338】
また、スキャン出力端子SOは次段のスキャンフリップフロップのスキャン入力端子SIに接続される。つまり、スキャンフリップフロップSFF−Z0のスキャン入力端子SIにはスキャン信号SIZが与えられ、スキャンフリップフロップSFF−Z1,SFF−Z2,SFF−Z3のスキャン入力端子SIにはそれぞれスキャンフリップフロップSFF−Z0,SFF−Z1,SFF−Z2のスキャン出力信号SOZ0,SOZ1,SOZ2が与えられる。スキャンフリップフロップSFF−Z3のスキャン出力信号SOZ3はスキャン信号SOZとして得られる。
【0339】
信号Giは後述するように、その対応する列に故障(異常)が検出されたか否かを示し、異常/正常に対応してそれぞれ“0”/“1”をとる。また信号QZiは後述するように、列一致信号Ziを与える。信号Giと信号QZiはアンド回路ANDZiによってその論理積が採られ、全てのアンド回路ANDZiの出力はオア回路ORHに入力されるので、故障のあった列に対応する列一致信号はヒット信号HITの生成には寄与しない。これによってCAMを用いるシステム側では故障個所を避ける事ができる。
【0340】
全てのスキャンフリップフロップSFF−Ziには比較許可信号CMPEN、出力ホールド信号HOLD−Z、シフトモード信号SM、フリップフロップ挿入信号INSFFが共通して与えられている。
【0341】
スキャンフリップフロップSFF−Ziは端子EXPとD端子に接続された2入力端のイクスクルーシブ・オア回路XORHi列一致信号Ziと期待値Eiとを比較して、不一致/一致に対応してそれぞれ“1”/“0”を採る判定信号Hiを出力する。かかる機能は比較回路70におけるイクスクルーシブ・オア回路XORHiと同一であるので同一の符号を用いている。勿論、イクスクルーシブ・オア回路XORHiを比較回路70とスキャンフリップフロップSFF−Ziとで共用することもできるし、それぞれ個別に設けることもできる。
【0342】
出力ホールド信号HOLD−ZはセレクタSELZHiの制御を行う。セレクタSELZHiの0−入力端にはスキャン入力端子SIが接続されている。セレクタSELZHiの出力端はセレクタSELZSiの1−入力端に接続され、セレクタSELZSiの0−入力端にはD端子が接続されている。セレクタSELZSiの出力端にはフリップフロップZFFiのD端子が接続され、そのQ出力はインバータによって反転されて信号Giとなる。
【0343】
フリップフロップZFFiのQ出力は、スキャン出力端子SOに与えられると共に、判定信号Hiは比較許可信号CMPENとの論理積と、論理和が採られ、その結果がセレクタSELZHiの1−入力端に与えられる。
【0344】
セレクタSELZFiの0−入力端にはD端子が接続され、1−入力端にはフリップフロップZFFのQ出力が与えられる。そしてこの2つの何れかが、フリップフロップ挿入信号INSFFに基づいて、スキャンフリップフロップSFF−ZiのQ出力として採用される。
【0345】
まず、列一致信号Ziを取り込む(通常の)動作では、シフトモード信号SMを“0”に設定する。図143はこのときのクロック信号T、シフトモード信号SM、列一致信号Zi、フリップフロップZFFiのQ出力の値(スキャン出力端子SOに与えられる値)の関係を示すタイミングチャートである。
【0346】
これによりD端子に与えられた列一致信号ZiがフリップフロップZFFiを介してセレクタSELZFiの1−入力端に与えられる。よってフリップフロップ挿入信号INSFFを“1”に設定することにより、スキャンフリップフロップSFF−Ziは通常のフリップフロップとして(実質的にはフリップフロップZFFiの機能によって)動作する。
【0347】
もしも、このフリップフロップとしての動作すら必要でなく、単に列一致信号Ziを通過させるだけであれば、フリップフロップ挿入信号INSFFを“0”に設定すればよい。もしもスキャンフリップフロップSFF−Ziを通常のフリップフロップとして動作させる必要がなく、常に列一致信号Ziを通過させるのであれば、セレクタSELZFiは不要であり、スキャンフリップフロップSFF−ZiのD端子を直接に自身のQ出力とすることもできる。
【0348】
上記のような通常の動作においても信号Giは出力されている。そして既述のように、対応する列が故障している場合には列一致信号Ziたる信号QZiをヒット信号HITの生成には寄与させなくするのである。
【0349】
そのような信号Giは以下のようにして生成される。図144はこのような信号Giの生成を行うときの動作を示すタイミングチャートである。シフトモード信号SM、出力ホールド信号HOLD−Z、比較許可信号CMPENを全て“1”に設定する。これにより、判定信号HiはフリップフロップZFFiのQ出力と論理和が採られ、その結果がフリップフロップZFFiに与えられる。
【0350】
もしも列一致信号Ziと期待値Eiとが一致していれば判定信号Hiは“0”となり、これと比較許可信号CMPENとの論理積は“0”となる。よってフリップフロップZFFiが以前に記憶していた値が更新されることはない。しかし、列一致信号Ziと期待値Eiとが一致しなければ、即ち対応する列に故障が生じている場合には、判定信号Hiは“1”となり、フリップフロップZFFiはそれが以前に記憶していた値によらず“1”を記憶することになる。
【0351】
換言すれば、第1乃至第3の手法を用いて各連想メモリCijの故障を検出する事により、一つでも判定信号Hiが“1”となるようなテストパターンが存在すれば、その他のテストパターンにおいて判定信号が“0”となろうとも、フリップフロップZFFiには値“1”が記憶され、通常動作において信号Giが値“0”を採ることになる。
【0352】
このような動作を確実にするためには予め、フリップフロップZFFiには値“0”を記憶させておく必要がある。これには値“0”をスキャンインすればよい。具体的にはシフトモード信号SMを“1”に、出力ホールド信号HOLD−Zを“0”にそれぞれ設定する。図145はこのようなシフト動作を示すタイミングチャートである。これによってスキャン入力端子SIに与えられた値がフリップフロップZFFiに伝達される。しかもフリップフロップZFFiのQ出力はスキャン出力端子SOに与えられるので、スキャン信号SIZに“0”を与えて、これを順次シフトさせることによって、全てのフリップフロップZFFiに値“0”を記憶させることができる。
【0353】
勿論、シフトモード信号SM及び出力ホールド信号HOLD−Zを“1”に、比較許可信号CMPENを“0”にそれぞれ設定することにより、スキャンフリップフロップSFF−Ziにホールド動作をさせることも可能である。図146はホールド動作をさせる場合を示すタイミングチャートである。
【0354】
これにより、フリップフロップZFFiに記憶された故障の存否を保持させ、その後にシフト動作をおこなうことによって順次テスト結果を得ることができる。
【0355】
(d−2)実施の形態13.
図147はスキャンフリップフロップSFF−Ziの他の構成を示す回路図である。実施の形態12において図142を用いて示された構成に対して、アンド回路ANDZiを付加した構成を採っている。
【0356】
アンド回路ANDZiは実施の形態12において図14を用いて示されたものと同一であり、各スキャンフリップフロップSFF−Ziの内部において信号QZiとなるべき列一致信号Ziと信号Giとの論理積を採る。但し、その論理積はセレクタSELZFiの0−入力端に与えられるので、フリップフロップ挿入信号INSFFが“1”である場合、即ち通常動作時のみ故障がマスクされることになる。
【0357】
図148は図147に示されたスキャンフリップフロップSFF−Ziを用いた場合の、スキャンパスの構成を示す回路図である。アンド回路ANDZiがスキャンフリップフロップSFF−Ziに内蔵されたため、図148には表れてこない。
【0358】
(d−3)実施の形態14.
図149はスキャンフリップフロップSFF−Ziの他の構成を示す回路図である。実施の形態13において図147を用いて示された構成に対して、故障情報保持用のレジスタFRiが付加されている。このレジスタFRiはレジスタ専用クロック信号TREG、リセット信号RED−RSTで制御されており、フリップフロップZFFiのQ出力を入力してこれを記憶する。端子Gはインバータを介してレジスタFRiの出力を受ける。
【0359】
フリップフロップZFFiが記憶する、故障の存否を示す信号(テスト結果)をこのレジスタFRiが取り込み、保持する事ができる。従って、シフト動作によってフリップフロップZFFiからテスト結果を読み出しても、故障の存否に関するファイル情報が失われる事はない。なお、リセット信号RED−RSTは省略してもよい。
【0360】
図150は図149に示されたスキャンフリップフロップSFF−Ziを用いた場合の、スキャンパスの構成を示す回路図である。実施の形態13において図148を用いて示された構成に比べ、全てのスキャンフリップフロップSFF−Ziにレジスタ専用クロック信号TREGが与えられている点で異なっている。
【0361】
(d−4)実施の形態15.
図151はスキャンフリップフロップSFF−Ziの他の構成を示す回路図である。実施の形態13において図149を用いて示された構成に対して、アンド回路ANDZiを省略した構成を採っている。即ちセレクタSELZFiの0−入力端にはD端子が直結されている。換言すれば、図151に示された構成は、実施の形態12において図142を用いて示された構成に対して、フリップフロップZFFiのQ出力と信号Giを出力するインバータとの間に、故障情報保持用のレジスタFRiが付加された構成を有している。
【0362】
このように構成されたスキャンフリップフロップSFF−Ziも、図150に示されたスキャンパスを構成することができることは明白である。
【0363】
E.冗長機能付き連想メモリ回路.
故障が発見された連想メモリの行、または列が存在する場合、これらに代替する連想メモリの行、列を備える、いわゆる冗長機能付きの連想メモリ回路を構成することができる。
【0364】
(e−1)実施の形態16.
図152は、それぞれm行に配された連想メモリセルを含む第0乃至第(n−1)列の連想メモリセル群と、m行に配された連想メモリセルを有する第n列の連想メモリセル群とを有する連想メモリ回路の構成を示す回路図である。ここで、m=3,n=4に選択される。第0乃至第3列に配された連想メモリセルC0j〜C3jの、いずれか一つの列に対応する連想メモリセルに故障が生じた場合、第4列に配された連想メモリセルC40,C41,C42が代替機能を有する。
【0365】
そして故障している連想メモリセルの列を避けて、例えば入力信号DIjによって得られる検査データが列に配された連想メモリセルにおいて記憶されているか否か、が判断される。図163を用いて説明されたように、各列毎に列一致信号Ziが、一致出力Uijの論理和の反転として得られる。
【0366】
出力部Z−SCANは、第0列乃至第4列の連想メモリセル群の良/否に応じて活性/非活性をそれぞれ示す第0乃至第4の良否データである信号G0〜G4を記憶している。そして、第0列乃至第4列の連想メモリセル群が記憶する比較データと、検査データとが一致するか否かをそれぞれ示す第0乃至第4の一致判定信号候補である信号QZ0〜QZ4を出力する。この出力部Z−SCANは、実施の形態12,13,14においてそれぞれ図141、図148、図150を用いて示されたスキャンパスの構成から、オア回路ORHを除いた構成で実現することができる。例として、図149に示されたスキャンフリップフロップSFF−Ziを用いた場合に構成可能な出力部Z−SCANの構成を図153に示す。
【0367】
全ての列に故障が生じていないとは限らない。そして一致判定信号候補QZ0〜QZ4のうち、故障の生じていないもののみが、第0乃至第3の一致判定信号ZZ0〜ZZ3として得られる。
【0368】
第0乃至第3の一致判定信号ZZ0〜ZZ3は、第0乃至第3の良否データG0〜G3と、前記第0乃至第4の一致判定信号候補QZ0〜QZ4とから、ゲート群141とセレクタ群142によって生成される。
【0369】
ゲート群141は第0乃至第3の制御信号F0〜F3を出力する。第0の良否データG0は第0の制御信号F0として採用される。そして、第1の良否データG1と、第0の制御信号F0との論理積が第1の制御信号F1として採用される。同様にして、第2の良否データG2と、第1の制御信号F1との論理積が第2の制御信号F2として、第3の良否データG3と、第2の制御信号F2との論理積が第3の制御信号F3として、それぞれ採用される。
【0370】
セレクタ群142においては、第iの制御信号Fiの活性/非活性に対応して、隣接する2つの列に対応する一致判定信号候補QZi,QZ(i+1)の何れかが、第iの一致判定信号ZZiとして出力される。
【0371】
デコーダDCDRの出力は、ここでは出力Xiがワード線WLiを選択するものであるとして説明する。デコーダDCDRの出力と選択するワード線との関係が図46、図48に示されるような関係にある場合にはそのような関係に基づいて出力とワード線ドライバWLDとの接続関係をアレンジすればよい。
【0372】
セレクタ群143aは第0乃至第3の制御信号F0〜F3と、デコーダ出力X0〜X3とを入力し、第1乃至第4の列指定信号候補H1〜H4を出力する。制御信号F0の非活性/活性に基づいて、それぞれ出力X0,X1が第1の列指定信号候補H1として採用される。同様にして、制御信号F1の非活性/活性に基づいて、それぞれ出力X1,X2が第2の列指定信号候補H2として、制御信号F2の非活性/活性に基づいて、それぞれ出力X2,X3が第3の列指定信号候補H3として、それぞれ採用される。また、制御信号F3が非活性の場合には出力X3が第4の列指定信号候補H4として採用されるが、制御信号F3が活性化している場合には第4の列指定信号候補H4の値は“0”となる。
【0373】
ゲート群144は、第0乃至第3の良否データG0〜G3と、第0乃至第4の列指定信号候補H0〜H4とを入力して、ワード線WL0〜WL4のいずれを選択すべきかを決定する。但し、第0の列指定信号候補H0としてはデコーダの出力X0が採用される。
【0374】
第iの列指定信号候補Hiと第iの良否データGiの論理積が活性化する場合にはワード線WLiが選択される。但し、前記第4の列指定信号候補H4が活性化する場合にはワード線WL4が選択される。
【0375】
表9は図152に示された回路において、第0乃至第3の良否データG0〜G3、第0乃至第3の制御信号F0〜F3、ワード線WL0〜WL4、第0乃至第3の一致判定信号ZZ0〜ZZ3の採る値を対応づける論理値表である。
【0376】
【表9】
Figure 0003816560
【0377】
第0乃至第3列の連想メモリセルにおいて故障がない場合には全ての良否データG0〜G3は全て値“1”を採るので、全ての制御信号F0〜F3も値“1”を採る。その結果、第4の列指定信号候補H4は値“0”を採り、冗長機能は発揮されていない。
【0378】
しかし、第0乃至第3列の連想メモリセルのうちの一つに故障が存在していた場合には、その列に対応する良否データGb(0≦b≦3)が0となる。その結果、出力X0〜X3の相互の順序は異ならせることなく、故障が存在していた列を回避し、これに代わって第4列のメモリセルを用いてワード線を選択することができる。
【0379】
また、第0乃至第3の一致判定信号ZZ0〜ZZ3として、選択されたワード線に対応して第0乃至第4の一致判定信号候補QZ0〜QZ4の中の4つが採用されるので、故障の存在する一つの列を回避して3行4列の連想メモリ回路として機能することができる。
【0380】
なお、第3の制御信号F3によって制御されるセレクタは、より簡単な論理ゲートで代替することができる。図154はそのような代替を行った場合のセレクタ群143bの構成を示す回路図である。第3の制御信号F3の反転と出力X3との論理積を第4の列指定信号候補H4として出力する論理ゲートを用いることにより、セレクタ143bは図152に示されたセレクタ143aと同等の機能を果たすことができる。
【0381】
(e−2)実施の形態17.
図155及び図156は両者相まって、それぞれn列に配された連想メモリセルを含む第0乃至第(m−1)行の連想メモリセル群と、n列行に配された連想メモリセルを有する第m行の連想メモリセル群とを有する連想メモリ回路の構成を示す回路図である。ここで、m=3,n=4に選択される。第0乃至第2行に配された連想メモリセルCi0〜Ci2の、いずれか一つの行に対応する連想メモリセルに故障が生じた場合、第3行に配された連想メモリセルC03〜C33が代替機能を有する。
【0382】
そして故障している連想メモリセルの行を避けて、例えば入力信号DIjによって得られる検査データが列に配された連想メモリセルにおいて記憶されているか否か、が判断される。これに先立ち、まず連想メモリセルCijの有するメモリセルMijの故障の判断、及び第1乃至第3の手法を用いた連想メモリ回路のテストが行われる。
【0383】
なお、これらの図においては煩雑さを避けるため、列を選択するデコーダDCDRや、シフトモード信号SM、入力ホールド信号HOLD−DI、比較許可信号CMPEN、出力ホールド信号HOLD−Z、フリップフロップ挿入信号INSFFなどは示していない。
【0384】
図157は出力スキャンフリップフロップSFF−DO0,SFF−DO1,SFF−DO2,SFF−DO3の接続近辺の詳細を示す回路図である。出力スキャンフリップフロップSFF−DOjはデータ出力DOjと、期待値EXjとを受け、両者を比較してその一致/不一致を信号SOQjとして出力する。
【0385】
図158は出力スキャンフリップフロップSFF−DOjの構成を示す回路図である。この構成は、図142において示された構成から、信号Gを生成するためのインバータを削除した構成となっている。但し、出力スキャンフリップフロップSFF−DOjは列に対応してではなく、行に対応して設けられるので、図158においては添え字が“i”から“j”に替えられている。
【0386】
まず、メモリセルMijの故障が判断される。出力スキャンフリップフロップSFF−DOjのD端子にはセンスアンプSAからデータ出力DOjが与えられ、端子EXPには期待値EXjが与えられる。連想メモリ回路の故障を行毎に調べる場合には、例えば全ての連想メモリセルCijに特定の値“1”を書き込んで置き(これによってメモリセルMijに特定の値“1”が書き込まれる)、その後に読み出しを行ってデータ出力DOjを得るということが行われる。よって、データ出力DOjの期待値EXjとしては同一の値“1”を採ることができる。この様な場合では全ての出力スキャンフリップフロップSFF−DOjの端子EXPを共通に接続してもよい。
【0387】
比較許可信号CMPENを“1”にすることにより、データ出力DOjと期待値EXjとの一致/不一致がセレクタSELZHiの1−入力端に与えられる。よって、出力ホールド信号HOLD−Z及びシフトモード信号SMを“1”にすることによって、対応する行における連想メモリセルに故障が存在するか否かを示すデータがフリップフロップZFFjに与えられることになる。実施の形態12において図142を用いて説明されたように、一旦不良と判断された行は、対応するフリップフロップZFFjに“1”が記憶され続ける。
【0388】
このようにして得られた信号SOQjは、それぞれレジスタREGjに記憶される。これらのレジスタREGjは、リセット信号RED−RSTによって一斉にリセットすることができる。信号SOQjをスキャンアウトしない場合には、レジスタREG0〜REG3を省略することができる。
【0389】
良否データKjはそれぞれ信号SOQjの論理反転を採ることによって得られる。即ち、良否データKqの値が“0”であれば、第q行に配された連想メモリセルCqjの少なくとも一つが故障していることを示している。
【0390】
ゲート群145は良否データK0〜K3を入力して制御信号L1〜L3を出力する。ゲート群145は、実施の形態16において図152を用いて示されたゲート群141と同様の構成を有しており、図152において示された良否データG0〜G3、制御信号F1〜F3を、それぞれ良否データK0〜K3、制御信号L1〜L3と読み替えれば、ゲート群145の構成が得られる。
【0391】
表10は、良否データK0〜K3、制御信号L1〜L3、並びに後述する原入力信号DDI0〜DDI3及び出力信号XDO0〜XDO2が採る値を対応づける論理値表である。
【0392】
【表10】
Figure 0003816560
【0393】
セレクタ群146は、3種の入力信号候補XDI0〜XDI2と制御信号L0〜L3とに基づいて、原入力信号DDI0〜DDI3を生成する。但し制御信号L0としては良否データK0が採用される。原入力信号DDI0は制御信号L0が“0”,“1”の値を採るのに対応して、それぞれ値φ、入力信号候補XDI0の値のいずれかを採る。また、原入力信号DDI3は制御信号L3が“0”,“1”の値を採るのに対応して、それぞれ入力信号候補XDI2の値、値φのいずれかを採る。ここで値φは“1”,“0”のいずれでも良いことを示す。
【0394】
原入力信号DDI1は制御信号L1が“0”,“1”の値を採るのに対応して、それぞれ入力信号候補XDI0,XDI1のいずれかの値を採る。同様にして、原入力信号DDI2は制御信号L2が“0”,“1”の値を採るのに対応して、それぞれ入力信号候補XDI1,XDI2のいずれかを採る。
【0395】
この様にして得られた原入力信号DDIjはそれぞれ良否データKjと共に入力スキャンフリップフロップSFF−DKjに与えられる。
【0396】
図159は図155で示される回路において用いられる入力スキャンフリップフロップSFF−DKjの構成を示す回路図である。ここで用いられる入力スキャンフリップフロップSFF−DKjは、図7で示された構成に対し、更に良否データKjに基づいて出力を切り換えるセレクタ94を追加した構成が必要とされる。
【0397】
つまり、ここで示された入力スキャンフリップフロップSFF−DKjではそのQ出力と、スキャン出力端SOから得られる入力信号DIjとが一致するとは限らない。セレクタ94の1−入力端にはフリップフロップ92のQ出力が与えられ、0−入力端にはセレクタ90,91を介してスキャン入力端SIが接続されている。そしてセレクタ94の選択を制御する端子Kには良否データKjが与えられる。
【0398】
次に連想メモリ回路としてのテストが行われる。例として第0行における故障が、上記のメモリセルMijの故障の判断によって判明した場合を想定すると、K0が値“0”を採り、その他の良否データKjはすべて値“1”を採る。よって表10から解るように原入力信号DDI0は値φを採る。しかし第0行に対応する入力スキャンフリップフロップSFF−DK0においてはセレクタ94がフリップフロップ92を介さずに、スキャン入力端子SIとスキャン出力端子SOとを接続するので、第1乃至第3の手法で説明されたテストパターンのシフトインに関しては入力スキャンフリップフロップSFF−DK0が素通りされることになる。他の第1行乃至第3行に関しても同様である。
【0399】
そしてこのとき、故障が存在する行からの読み出しは行われない。サーチドライバSDKは良否データKjが値“1”を採る場合にのみ、図4に示されたサーチドライバSDとしての機能を果たすからである。
【0400】
図160はサーチドライバSDKの構成を示す回路図である。図6で示されたサーチドライバSDと比較して、サーチイネーブル信号SEのみならず、良否データKjもが値“1”を採らなければサーチ動作は行われない。
【0401】
従って、故障が存在する行が一つ存在した場合には、その行を回避して第1乃至第3の手法を用いて連想メモリ回路のテストを行うことができる。
【0402】
更に、連想メモリ回路としての通常の動作を行う場合には、SFF−DOjのQ出力である出力信号候補QDO0〜QDO3の内、故障していない行に対応するもの3つが出力信号XDO0〜XDO2として採用される。セレクタ群147は制御信号L0〜L3に基づいて行選択信号XDO0〜XDO2を生成する。制御信号Ljが値“1”,“0”を採ることに対応して、それぞれ出力信号XDOjとして出力信号候補QDOj,QDO(j+1)が採用される。これによって、故障した行を避けて連想メモリ回路を使用することができる。
【0403】
このように行の回避が行われるので、表10に示されるように、原入力信号DDI0が値φを採ったり、原入力信号DDIq,DDI(q+1)(q=0,1,2)が互いに等しい値を採っても通常の動作には影響しない。また、全く故障が存在しない場合でも第4行は選択されないので、これに対応した信号DDI3が値φを採っても通常の動作には影響しない。換言すれば、原入力信号の中にはダミーとなるべきものが生成されることとなる。
【0404】
但し、いずれの行においても故障が存在しない場合には連想メモリ回路のテストのテストパターンは4ビットのパターンで行う必要がある。いずれの入力スキャンフリップフロップSFF−DKjも素通りされないためである。
【0405】
図161及び図162は入力スキャンフリップフロップSFF−DKjの他の構成を示す回路図である。良否データKjが値“0”を採る場合において、スキャン出力端子SOとスキャン入力端子SIとを接続すればよい。従って、図161及び図162がそれぞれ示すように、セレクタ94の0−入力端にはセレクタ90の出力端が接続されても良いし、スキャン入力端子SIが直接に接続されても良い。
【0406】
【発明の効果】
この発明のうち請求項1にかかる連想メモリ回路のテスト方法によれば、テストパターンが所定の規則に則って更新される。例えばm=3の場合に、初期化されたテストパターンが(0,0,0)であったとすれば、更新によって得られるテストパターンは順次(1,0,0)→(1,1,0)→(1,1,1)→(0,1,1)→(0,0,1)→(0,0,0)→…となる。本発明のテストパターンは、上記のようにして更新されるので、第0の入力信号と第(m−1)の入力信号とが等しい値を採る場合に、それ以外の入力信号がその値と異なることはない。よって本発明で得られるテストパターンの種類は2m よりも少ない。
【0407】
しかし、連想メモリセルに対して或るテストパターンが書き込まれ、このテストパターン或いは次に更新されたテストパターンと、連想メモリセルの保持する内容とが比較される。連想メモリセルの保持する内容とテストパターンとが、一致する場合及び一致しない場合のいずれもが発生し、これらの場合における連想メモリセルのテストを、少ない種類のテストパターンで行うことができる。
【0408】
この発明のうち請求項2にかかる連想メモリ回路のテスト方法によれば、連想メモリセルの保持する内容と入力信号の組み合わせの全てに関してテストを行うことができる。
【0409】
この発明のうち請求項3にかかる連想メモリ回路のテスト方法によれば、請求項2にかかる連想メモリ回路のテスト方法よりも少ないステップ数で連想メモリ回路のテストを行うことができる。
【0410】
この発明のうち請求項4にかかる連想メモリ回路のテスト方法によれば、連想メモリセルの保持する内容と入力信号の組み合わせの全てに関してテストを行うことができる。
【0411】
この発明のうち請求項5にかかる連想メモリ回路のテスト回路によれば、インバータの機能に依って、第0の入力スキャンフリップフロップへは、一つ前のクロックサイクルにおいて第(m−1)の入力スキャンフリップフロップの保持していた内容がシフトインされる。そして第p(1≦p≦m−1)の入力スキャンフリップフロップへは一つ前のクロックサイクルにおいて第(p−1)の入力スキャンフリップフロップが保持していた内容がシフトインされる。このようにして順次更新される第0乃至第(m−1)の入力スキャンフリップフロップが保持する内容の全体は、テストパターンとして把握される。連想メモリセルに対して或るテストパターンが書き込まれ、このテストパターン或いは次に更新されたテストパターンと、連想メモリセルの保持する内容とが比較される。
【0412】
本発明のテストパターンは、第0乃至第(m−1)の入力スキャンフリップフロップにおいて上記のようにして生成されるので、請求項1記載の連想メモリ回路のテスト方法において用いられるテストパターンと同一であり、その種類は2m よりも少ない。しかし、連想メモリセルの保持する内容とテストパターンとが一致する場合及び一致しない場合のいずれもが発生し、これらの場合における連想メモリセルのテストを、少ない種類のテストパターンで行うことができる。
【0413】
この発明のうち請求項6にかかる連想メモリ回路のテスト回路によれば、第(n−1)列が選択されるまでは最終番地検出信号が非活性化しているので、列番号iがカウンタによって更新され、しかも連想メモリ回路への書き込みが可能である。更に入力ホールド信号が活性化されているので、このときの入力信号は更新されない。よって全ての列に対して書き込みが行われるまでの間、テストパターンは更新されない。
【0414】
そして第(n−1)列が選択されることにより、最終番地検出信号が活性化するが、アドレスホールド信号が1クロックサイクル遅れてカウンタのカウント機能を停止させるので、一旦第0列が選択されたのち、その次のクロックサイクルにおいて列番号i=0がカウンタにおいて保持される。一方、第(n−1)列が選択されることにより、入力ホールド信号が非活性化されるので入力信号の値を更新することができる。よって、請求項2記載の連想メモリ回路のテスト方法を実行する事ができる。
【0415】
この発明のうち請求項7にかかる連想メモリ回路のテスト回路によれば、例えば第0の入力信号が値“0”,“1”を採る場合に、カウント方向信号がそれぞれ値“1”,“0”を採る(勿論、逆に対応させてもよい)。よって、まずテストパターンが、例えば第jの入力信号の全てが“0”であるように初期化されれば、第1のインバータの機能によって第0の入力信号が“1”を採り、カウント方向信号が値“0”を採る。テストパターンが第jの入力信号の全てが“1”である状態に更新されず、あるいは第(n−1)列が選択されるまではアドレスホールド信号は非活性である。したがって、カウンタはアップカウンタとして機能し、列番号iが増加しつつ更新される。
【0416】
更に入力ホールド信号が活性化されているので、増加途中、即ち第0乃至第(n−2)列が選択されている場合には入力信号は更新されない。よって全ての列に対して書き込みが行われるまでの間、テストパターンは更新されない。そして第(n−1)列が選択されることにより、最終番地検出信号が活性化する。カウント方向信号が値“0”を採っており、セレクタは最終番地検出信号を出力し、入力ホールド信号は非活性化しテストパターンが更新される。
【0417】
このように或るテストパターンに対して列番号iが増加する方向に連想メモリ回路のテストを行い、そしてそのテストパターンが更新されてゆく。
【0418】
しかし、テストパターンが、テストパターンが第jの入力信号の全てが“1”である状態に更新され、しかもそのテストパターンに対して全ての列の連想メモリセルのテストが行われれば(第(n−1)列が選択されれば)、第2の論理回路の出力であるアドレスホールド信号は活性化し、カウンタのカウント機能が一旦停止する。
【0419】
一方テストパターンは更新され、第0の入力信号の値は“1”から“0”へと遷移する。このためカウント方向信号が値“1”を採る。そしてアドレスホールド信号は非活性化し、カウンタはダウンカウンタとして機能する。そして、テストパターンが、第jの入力信号の全てが“0”である状態に更新されるまで、或るテストパターンに対して列番号iが減少する方向に連想メモリ回路のテストを行い、そしてそのテストパターンが更新されてゆく。
【0420】
テストパターンが、第jの入力信号の全てが“0”である状態に更新され、しかもそのテストパターンに対して全ての列の連想メモリセルのテストが行われれば(第0列が選択されれば)、第2の論理回路の出力であるアドレスホールド信号は活性化し、カウンタのカウント機能が一旦停止する。この後は、上記の動作が繰り返される。
【0421】
従って、請求項3記載の連想メモリ回路のテスト方法を、第0乃至第(m−1)の入力信号が全て同一の値を採ることを契機として工程(d)において列番号iを更新する方向を逆転させ、その際列番号iを初期化しないような態様で実行する事ができる。
【0422】
この発明のうち請求項8にかかる連想メモリ回路によれば、クロック信号の遷移に際して、書き込み許可信号が交互に活性/非活性する。そしてこれにそれぞれ対応して入力ホールド信号が非活性/活性する。アドレスホールド信号は、入力信号が特定の論理値(例えば全て“0”)であって、かつ書き込み許可信号が非活性の場合のみ活性化するので、テストパターンがその全てのパターンを更新しつくすまで、列番号iの更新は為されない。従って、請求項4記載の連想メモリ回路のテスト方法を実行する事ができる。
【0423】
この発明のうち請求項9にかかる連想メモリ回路のテスト回路によれば、テストパターンは請求項1記載の連想メモリ回路のテスト方法において用いられるそれと同一であり、かかるテストパターンにおいては、入力信号が特定の論理値を採るか否かを、前記第0の入力信号と前記第(m−1)の入力信号とを吟味すれば足りる。従って、その他の入力信号を検出することなく、アドレスホールド信号の活性/非活性を決定することができる。
【0424】
この発明のうち請求項10にかかる連想メモリ回路によれば、請求項6にかかる連想メモリ回路の期待値を発生させることができる。
【0425】
この発明のうち請求項11にかかる連想メモリ回路によれば、請求項6にかかる連想メモリ回路の期待値を発生させることができる。
【0426】
この発明のうち請求項12にかかる連想メモリ回路によれば、請求項7にかかる連想メモリ回路の期待値を発生させることができる。
【0427】
この発明のうち請求項13にかかる連想メモリ回路によれば、請求項7にかかる連想メモリ回路の期待値を発生させることができる。
【0428】
この発明のうち請求項14にかかる連想メモリ回路によれば、請求項8にかかる連想メモリ回路の期待値を発生させることができる。
【0429】
この発明のうち請求項15にかかる連想メモリ回路によれば、請求項8にかかる連想メモリ回路の期待値を発生させることができる。
【図面の簡単な説明】
【図1】 本発明の前駆的思想を示す回路図である。
【図2】 本発明の前駆的思想を示す回路図である。
【図3】 本発明の実施の形態1を示す回路図である。
【図4】 本発明の実施の形態1を示す回路図である。
【図5】 本発明の実施の形態1を示す回路図である。
【図6】 本発明の実施の形態1を示す回路図である。
【図7】 本発明の実施の形態1を示す回路図である。
【図8】 図9と相まってこの発明の実施の形態2を示すフローチャートである。
【図9】 図8と相まってこの発明の実施の形態2を示すフローチャートである。
【図10】 第1の手法が施された途中経過を順に示す概念図である。
【図11】 第1の手法が施された途中経過を順に示す概念図である。
【図12】 第1の手法が施された途中経過を順に示す概念図である。
【図13】 第1の手法が施された途中経過を順に示す概念図である。
【図14】 第1の手法が施された途中経過を順に示す概念図である。
【図15】 第1の手法が施された途中経過を順に示す概念図である。
【図16】 第1の手法が施された途中経過を順に示す概念図である。
【図17】 第1の手法が施された途中経過を順に示す概念図である。
【図18】 第1の手法が施された途中経過を順に示す概念図である。
【図19】 第1の手法が施された途中経過を順に示す概念図である。
【図20】 第1の手法が施された途中経過を順に示す概念図である。
【図21】 第1の手法が施された途中経過を順に示す概念図である。
【図22】 第1の手法が施された途中経過を順に示す概念図である。
【図23】 第1の手法が施された途中経過を順に示す概念図である。
【図24】 第1の手法が施された途中経過を順に示す概念図である。
【図25】 第1の手法が施された途中経過を順に示す概念図である。
【図26】 第1の手法が施された途中経過を順に示す概念図である。
【図27】 第1の手法が施された途中経過を順に示す概念図である。
【図28】 第1の手法が施された途中経過を順に示す概念図である。
【図29】 第1の手法が施された途中経過を順に示す概念図である。
【図30】 第1の手法が施された途中経過を順に示す概念図である。
【図31】 第1の手法が施された途中経過を順に示す概念図である。
【図32】 第1の手法が施された途中経過を順に示す概念図である。
【図33】 第1の手法が施された途中経過を順に示す概念図である。
【図34】 第1の手法が施された途中経過を順に示す概念図である。
【図35】 第1の手法が施された途中経過を順に示す概念図である。
【図36】 第1の手法が施された途中経過を順に示す概念図である。
【図37】 第1の手法が施された途中経過を順に示す概念図である。
【図38】 第1の手法が施された途中経過を順に示す概念図である。
【図39】 第1の手法が施された途中経過を順に示す概念図である。
【図40】 この発明の実施の形態3を示す回路図である。
【図41】 この発明の実施の形態3を示すタイミングチャートである。
【図42】 この発明の実施の形態3を示す回路図である。
【図43】 この発明の実施の形態3を示す回路図である。
【図44】 この発明の実施の形態3を示す回路図である。
【図45】 この発明の実施の形態3を示す回路図である。
【図46】 この発明の実施の形態3を示す回路図である。
【図47】 この発明の実施の形態3を示す回路図である。
【図48】 この発明の実施の形態3を示す回路図である。
【図49】 この発明の実施の形態4を示す回路図である。
【図50】 この発明の実施の形態4を示す回路図である。
【図51】 図52と相まってこの発明の実施の形態5を示すフローチャートである。
【図52】 図51と相まってこの発明の実施の形態5を示すフローチャートである。
【図53】 第2の手法が施された途中経過を順に示す概念図である。
【図54】 第2の手法が施された途中経過を順に示す概念図である。
【図55】 第2の手法が施された途中経過を順に示す概念図である。
【図56】 第2の手法が施された途中経過を順に示す概念図である。
【図57】 第2の手法が施された途中経過を順に示す概念図である。
【図58】 第2の手法が施された途中経過を順に示す概念図である。
【図59】 第2の手法が施された途中経過を順に示す概念図である。
【図60】 第2の手法が施された途中経過を順に示す概念図である。
【図61】 第2の手法が施された途中経過を順に示す概念図である。
【図62】 第2の手法が施された途中経過を順に示す概念図である。
【図63】 第2の手法が施された途中経過を順に示す概念図である。
【図64】 第2の手法が施された途中経過を順に示す概念図である。
【図65】 第2の手法が施された途中経過を順に示す概念図である。
【図66】 第2の手法が施された途中経過を順に示す概念図である。
【図67】 第2の手法が施された途中経過を順に示す概念図である。
【図68】 第2の手法が施された途中経過を順に示す概念図である。
【図69】 第2の手法が施された途中経過を順に示す概念図である。
【図70】 第2の手法が施された途中経過を順に示す概念図である。
【図71】 第2の手法が施された途中経過を順に示す概念図である。
【図72】 第2の手法が施された途中経過を順に示す概念図である。
【図73】 第2の手法が施された途中経過を順に示す概念図である。
【図74】 第2の手法が施された途中経過を順に示す概念図である。
【図75】 第2の手法が施された途中経過を順に示す概念図である。
【図76】 第2の手法が施された途中経過を順に示す概念図である。
【図77】 この発明の実施の形態6を示す回路図である。
【図78】 この発明の実施の形態6を示す回路図である。
【図79】 この発明の実施の形態6を示す回路図である。
【図80】 この発明の実施の形態6を示す回路図である。
【図81】 この発明の実施の形態6を示す回路図である。
【図82】 この発明の実施の形態6を示す回路図である。
【図83】 この発明の実施の形態6を示す回路図である。
【図84】 この発明の実施の形態6を示す回路図である。
【図85】 この発明の実施の形態7を示す回路図である。
【図86】 この発明の実施の形態7を示す回路図である。
【図87】 図51と相まって、この発明の実施の形態8を示すフローチャートである。
【図88】 図89と相まってこの発明の実施の形態9を示すフローチャートである。
【図89】 図88と相まってこの発明の実施の形態9を示すフローチャートである。
【図90】 第3の手法が施された途中経過を順に示す概念図である。
【図91】 第3の手法が施された途中経過を順に示す概念図である。
【図92】 第3の手法が施された途中経過を順に示す概念図である。
【図93】 第3の手法が施された途中経過を順に示す概念図である。
【図94】 第3の手法が施された途中経過を順に示す概念図である。
【図95】 第3の手法が施された途中経過を順に示す概念図である。
【図96】 第3の手法が施された途中経過を順に示す概念図である。
【図97】 第3の手法が施された途中経過を順に示す概念図である。
【図98】 第3の手法が施された途中経過を順に示す概念図である。
【図99】 第3の手法が施された途中経過を順に示す概念図である。
【図100】 第3の手法が施された途中経過を順に示す概念図である。
【図101】 第3の手法が施された途中経過を順に示す概念図である。
【図102】 第3の手法が施された途中経過を順に示す概念図である。
【図103】 第3の手法が施された途中経過を順に示す概念図である。
【図104】 第3の手法が施された途中経過を順に示す概念図である。
【図105】 第3の手法が施された途中経過を順に示す概念図である。
【図106】 第3の手法が施された途中経過を順に示す概念図である。
【図107】 第3の手法が施された途中経過を順に示す概念図である。
【図108】 第3の手法が施された途中経過を順に示す概念図である。
【図109】 第3の手法が施された途中経過を順に示す概念図である。
【図110】 第3の手法が施された途中経過を順に示す概念図である。
【図111】 第3の手法が施された途中経過を順に示す概念図である。
【図112】 第3の手法が施された途中経過を順に示す概念図である。
【図113】 第3の手法が施された途中経過を順に示す概念図である。
【図114】 第3の手法が施された途中経過を順に示す概念図である。
【図115】 第3の手法が施された途中経過を順に示す概念図である。
【図116】 第3の手法が施された途中経過を順に示す概念図である。
【図117】 第3の手法が施された途中経過を順に示す概念図である。
【図118】 第3の手法が施された途中経過を順に示す概念図である。
【図119】 第3の手法が施された途中経過を順に示す概念図である。
【図120】 第3の手法が施された途中経過を順に示す概念図である。
【図121】 第3の手法が施された途中経過を順に示す概念図である。
【図122】 第3の手法が施された途中経過を順に示す概念図である。
【図123】 第3の手法が施された途中経過を順に示す概念図である。
【図124】 第3の手法が施された途中経過を順に示す概念図である。
【図125】 第3の手法が施された途中経過を順に示す概念図である。
【図126】 第3の手法が施された途中経過を順に示す概念図である。
【図127】 第3の手法が施された途中経過を順に示す概念図である。
【図128】 第3の手法が施された途中経過を順に示す概念図である。
【図129】 第3の手法が施された途中経過を順に示す概念図である。
【図130】 第3の手法が施された途中経過を順に示す概念図である。
【図131】 第3の手法が施された途中経過を順に示す概念図である。
【図132】 第3の手法が施された途中経過を順に示す概念図である。
【図133】 第3の手法が施された途中経過を順に示す概念図である。
【図134】 第3の手法が施された途中経過を順に示す概念図である。
【図135】 第3の手法が施された途中経過を順に示す概念図である。
【図136】 第3の手法が施された途中経過を順に示す概念図である。
【図137】 第3の手法が施された途中経過を順に示す概念図である。
【図138】 この発明の実施の形態10を示す回路図である。
【図139】 この発明の実施の形態11を示す回路図である。
【図140】 この発明の実施の形態11を示す回路図である。
【図141】 この発明の実施の形態12を示す回路図である。
【図142】 この発明の実施の形態12を示す回路図である。
【図143】 この発明の実施の形態12を示すタイミングチャートである。
【図144】 この発明の実施の形態12を示すタイミングチャートである。
【図145】 この発明の実施の形態12を示すタイミングチャートである。
【図146】 この発明の実施の形態12を示すタイミングチャートである。
【図147】 この発明の実施の形態13を示す回路図である。
【図148】 この発明の実施の形態13を示す回路図である。
【図149】 この発明の実施の形態14を示す回路図である。
【図150】 この発明の実施の形態14を示す回路図である。
【図151】 この発明の実施の形態15を示す回路図である。
【図152】 この発明の実施の形態16を示す回路図である。
【図153】 この発明の実施の形態16を示す回路図である。
【図154】 この発明の実施の形態16を示す回路図である。
【図155】 この発明の実施の形態17を示す回路図である。
【図156】 この発明の実施の形態17を示す回路図である。
【図157】 この発明の実施の形態17を示す回路図である。
【図158】 この発明の実施の形態17を示す回路図である。
【図159】 この発明の実施の形態17を示す回路図である。
【図160】 この発明の実施の形態17を示す回路図である。
【図161】 この発明の実施の形態17を示す回路図である。
【図162】 この発明の実施の形態17を示す回路図である。
【図163】 従来の技術を示す回路図である。
【図164】 従来の技術を示す回路図である。
【符号の説明】
C00〜42 連想メモリセル、T クロック信号、WL0〜4 ワード線、SFF−DI0〜2,SFF−DK0〜3 入力スキャンフリップフロップ、SFFW スキャンフリップフロップ、FF1,92 フリップフロップ、RS0〜RS3 リセット・セット・フリップフロップ、DI0〜3 入力信号、SMシフトモード信号、HOLD−A アドレスホールド信号、HOLD−DI 入力ホールド信号、CNTR,UDCNTR アドレスカウンタ、WECD 書き込み原信号、WE ライトイネーブル信号、WPG ライトパルスジェネレータ、DMODE ダウン信号、FA 初期番地検出信号、LA 最終番地検出信号、LADET 最終番地検出回路、FADET 初期番地検出回路、DET 特定番地検出信号、E0〜E3,EX0〜EX3 期待値、60〜65 期待値発生回路、DCDR デコーダ、Xi デコーダの出力、RST リセット信号、RPG リセット・パルス発生回路、ALL0 0−一致信号、K0〜3,G0〜3 良否データ、Z0〜4 列一致信号、QZ0〜QZ4 一致判定信号候補、Z−SCAN 出力部、L0〜3,F0〜3 制御信号、41〜43 増減回路、ZZ0〜ZZ3 一致判定信号、H0〜4 列指定信号候補、DDI0〜3 原入力信号、XDO0〜2 出力信号、DO0〜DO3 データ出力、QDO0〜QDO3 出力信号候補、SI スキャン入力端子、SO スキャン出力端子、94 セレクタ、145 ゲート群、146,147 セレクタ群、XDI0〜2 入力信号候補、SDK サーチドライバ、INV1〜6,INVE0〜3 インバータ、AND−UP,AND−HA,AND0〜3,ANDX0〜3 アンド回路、OR1〜2,ORJ1〜2,ORE0,ORE3 オア回路、XOR1〜2,XORW イクスクルーシブ・オア回路、XNOR0〜3 イクスクルーシブ・ノア回路。

Claims (15)

  1. 第i列(0≦i≦n−1)と第j行(0≦j≦m−1)の交点にそれぞれ配された連想メモリセルを有する連想メモリ回路をテストする、連想メモリ回路のテスト方法であって、
    (a)前記連想メモリセルの全てを初期化する工程と、
    (b)第0乃至第(m−1)の入力信号からなるテストパターンを初期化する工程と、
    (c)前記テストパターンを、行番号jを更新しつつ前記第jの入力信号のみを論理反転させて更新する工程と、
    (d)前記テストパターンを列番号iを更新しつつ前記第i列に配された前記連想メモリセルに書き込む工程と、
    (e)第k列(0≦k≦n−1)毎に、第j行に配された前記連想メモリセルの保持する内容を、前記第jの入力信号と比較する工程と
    を備える連想メモリ回路のテスト方法。
  2. 前記工程(c)において行番号jが更新される毎に、前記工程(d),(e)が対となって繰り返される、請求項1記載の連想メモリ回路のテスト方法。
  3. 前記工程(c),(e)が、また、前記工程(d),(e)が、それぞれ対となって実行される、請求項1記載の連想メモリ回路のテスト方法。
  4. 前記工程(d)において列番号iが更新される毎に、前記工程(c),(e)が対となって繰り返される、請求項1記載の連想メモリ回路のテスト方法。
  5. 第i列(0≦i≦n−1)と第j行(0≦j≦m−1)の交点にそれぞれ配された連想メモリセルを有する連想メモリ回路をテストする、連想メモリ回路のテスト回路であって、
    入力端及び出力端を有する第1のインバータと、
    前記第j行に配された前記連想メモリセルに対応して設けられ、その各々がスキャン入力端とスキャン出力端とを有し、いずれも同一のクロック信号によって制御される第jの入力スキャンフリップフロップと
    を備え、
    前記第0の入力スキャンフリップフロップの前記入力端には前記第1のインバータの前記出力端が接続され、
    前記第p(1≦p≦m−1)の入力スキャンフリップフロップの前記入力端には前記第(p−1)の入力スキャンフリップフロップの前記出力端が接続され、
    前記第(m−1)の入力スキャンフリップフロップの前記出力端には前記第1のインバータの前記入力端が接続され、
    前記第jの入力スキャンフリップフロップの保持する第jの入力信号は、前記第j行に配された前記連想メモリセルに対して、前記第i列に配された前記連想メモリセル毎に書き込まれ、
    第k列(0≦k≦n−1)毎に、前記第j行に配された前記連想メモリセルの保持する内容が、それぞれ前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較される、連想メモリ回路のテスト回路。
  6. 前記第(n−1)列に配された前記連想メモリセルが選択されたことを検出する最終番地検出信号に基づいて、前記第jの入力スキャンフリップフロップの全てに対して前記第jの入力信号を保持させる入力ホールド信号の活性/非活性が決定され、
    アドレスホールド信号の非活性/活性に対応して、それぞれ前記クロック信号に基くカウント機能を実行/停止し、前記カウント機能によって列番号iの更新をするカウンタと、
    前記最終番地検出信号を、前記クロック信号に基づいて保持し、1クロックサイクル後に前記アドレスホールド信号として出力するスキャンフリップフロップと、
    前記アドレスホールド信号が非活性である場合に、前記クロック信号に基づいて、前記連想メモリセルへの前記入力信号の書き込みを許可する書き込み許可信号を発生する書き込み許可信号発生部と
    を更に備える、請求項5記載の連想メモリ回路のテスト回路。
  7. アドレスホールド信号の非活性/活性に対応して、それぞれ前記クロック信号に基くカウント機能を実行/停止し、前記カウント機能によって列番号iの更新をし、前記カウント機能が働く際にはカウント方向信号の非活性/活性に対応して、それぞれアップカウント/ダウンカウントするカウンタと、
    第(n−1)列に配された前記連想メモリセルが選択されたことを検出する最終番地検出信号が与えられる第1入力端と、第0列に配された前記連想メモリセルが選択されたことを検出する初期番地検出信号が与えられる第2入力端と、前記カウント方向信号の非活性/活性に対応して、それぞれ自身の前記第1入力端及び自身の前記第2入力端に与えられた値を特定番地検出信号として出力する出力端とを有するセレクタと、
    前記第0の入力信号に基づいて、前記カウント方向信号を生成する第1の論理回路と、
    前記第(m−1)の入力スキャンフリップフロップの前記出力端から得られる論理を反転した値と前記第0の入力信号との排他的論理和と、前記セレクタの出力との論理積を、前記アドレスホールド信号として出力する第2の論理回路と
    を更に備え、
    前記特定番地検出信号に基づいて、前記第jの入力スキャンフリップフロップの全てに対してその保持する前記第jの入力信号を保持させる入力ホールド信号の活性/非活性が決定される、請求項5記載の連想メモリ回路のテスト回路。
  8. アドレスホールド信号の非活性/活性に対応して、それぞれ前記クロック信号に基くカウント機能を実行/停止し、前記カウント機能によって列番号iの更新をするカウンタと、
    入力端と、前記クロック信号に基づいて自身の前記入力端に与えられた値を保持し、1クロックサイクル後にこれを出力するスキャンフリップフロップと、
    前記スキャンフリップフロップの前記出力端に接続された入力端と、前記スキャンフリップフロップの前記入力端に接続された出力端とを有する第2のインバータと、
    前記スキャンフリップフロップの出力が非活性である場合に、前記クロック信号に基づいて、前記連想メモリセルへの前記入力信号の書き込みを許可する書き込み許可信号を発生する書き込み許可信号発生部と
    を更に備え、
    前記アドレスホールド信号は、前記第jの入力信号がそれぞれ特定の論理値を採り、かつ前記スキャンフリップフロップの出力が非活性である場合に活性化し、
    前記スキャンフリップフロップの出力は、前記第jの入力スキャンフリップフロップの全てに対して前記第jの入力信号を保持させる入力ホールド信号として機能する、請求項5記載の連想メモリ回路のテスト回路。
  9. 前記第0及び前記第(m−1)の入力信号、並びに前記スキャンフリップフロップの出力を入力し、前記アドレスホールド信号を出力する論理回路を更に備える、請求項8記載の連想メモリ回路のテスト回路。
  10. 前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、
    前記連想メモリ回路のテスト回路は
    前記スキャンフリップフロップの出力と、前記第0乃至第(n−1)のデコード出力を受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容を前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路
    を更に備え、
    前記期待値生成回路は
    前記第q乃至第(n−1)のデコード出力(0≦q≦n−2)の論理和を出力する第qのOR回路と、
    前記第qのOR回路の出力と、前記スキャンフリップフロップの出力の論理反転とを入力して前記第q列に対応する第qの期待値を出力する第qのAND回路と、
    前記第(n−1)のデコード出力と、前記スキャンフリップフロップの出力とを入力して前記第(n−1)列に対応する第(n−1)の期待値を出力する第(n−1)のAND回路と
    を有し、
    前記期待値群は前記第0乃至第(n−1)の期待値の集合である、請求項6記載の連想メモリ回路のテスト回路。
  11. 前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、
    前記連想メモリ回路のテスト回路は
    前記スキャンフリップフロップの出力と、前記第0乃至第(n−1)のデコード出力を受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容を前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路
    を更に備え、
    前記期待値生成回路は、前記スキャンフリップフロップの出力が与えられるリセット端と、前記第iのデコード出力が与えられるセット端と、前記第i列に対応する第iの期待値を出力する出力端とをそれぞれが含む、第iのリセット・セット・フリップフロップを有し、
    前記期待値群は前記第0乃至第(n−1)の期待値の集合である、請求項6記載の連想メモリ回路のテスト回路。
  12. 前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、
    前記連想メモリ回路のテスト回路は
    前記特定番地検出信号と、前記カウント方向信号と、前記第0乃至第(n−1)のデコード出力とを受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容を前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路
    を更に備え、
    前記期待値生成回路は
    前記特定番地検出信号が与えられ、前記クロック信号に基づいて動作するフリップフロップと、
    前記フリップフロップの出力が与えられるリセット端と、前記第iのデコード出力が与えられるセット端と、をそれぞれが含む、第iのリセット・セット・フリップフロップと、
    前記カウント方向信号の論理反転と、前記第0のリセット・セット・フリップフロップの出力との論理和を、前記第0列に対応する第0の期待値として出力する第1のOR回路と、
    前記カウント方向信号と、前記第(n−1)のリセット・セット・フリップフロップの出力との論理和を、前記第(n−1)列に対応する第(n−1)の期待値として出力する第2のOR回路と
    を有し、
    前記第1乃至第(n−2)列にそれぞれ対応する第2乃至第(n−2)の期待値として前記第1乃至第(n−2)のリセット・セット・フリップフロップの出力が採用され、
    前記期待値群は前記第0乃至第(n−1)の期待値の集合である、請求項7記載の連想メモリ回路のテスト回路。
  13. 前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、
    前記連想メモリ回路のテスト回路は
    前記特定番地検出信号と、前記第0乃至第(n−1)のデコード出力とを受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容を前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路
    を更に備え、
    前記期待値生成回路は
    前記特定番地検出信号が与えられ、前記クロック信号に基づいて動作するフリップフロップと、
    前記フリップフロップの出力が与えられるリセット端と、前記第iのデコード出力が与えられるセット端と、非反転出力端と、反転出力端とをそれぞれが含む、第iのリセット・セット・フリップフロップと、
    前記第0のリセット・セット・フリップフロップの前記反転出力端に接続された入力端と、前記第0列に対応する第0の期待値を出力する出力端とを含む第1のインバータと、
    前記第(n−1)のリセット・セット・フリップフロップの前記反転出力端に接続された入力端と、前記第(n−1)列に対応する第(n−1)の期待値を出力する出力端とを含む第2のインバータと
    を有し、
    前記第1乃至第(n−2)列にそれぞれ対応する第2乃至第(n−2)の期待値として前記第1乃至第(n−2)のリセット・セット・フリップフロップの前記非反転出力端に出力される値が採用され、
    前記期待値群は前記第0乃至第(n−1)の期待値の集合である、請求項7記載の連想メモリ回路のテスト回路。
  14. 前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、
    前記連想メモリ回路のテスト回路は
    前記第jの入力信号がそれぞれ特定の論理値を採る場合を検出する入力値検出回路と、
    前記入力値検出回路の出力と、前記スキャンフリップフロップの出力と、前記第0乃至第(n−1)のデコード出力とを受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容を前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路
    を更に備え、
    前記期待値生成回路は
    前記入力値検出回路の出力と前記スキャンフリップフロップの出力との論理和に基づいてリセット信号を出力するリセット・パルス発生回路と、
    前記リセット信号が与えられるリセット端と、前記第iのデコード出力が与えられるセット端と、非反転出力端と、反転出力端とをそれぞれが含む、第iのリセット・セット・フリップフロップと、
    前記第iのリセット・セット・フリップフロップの前記反転出力端及び前記非反転出力端がそれぞれ接続された第1及び第2入力端と、前記入力値検出回路の出力に基づいて自身の前記第1及び第2入力端に与えられた値を、前記第i列に対応する第iの期待値として出力する出力端とを、それぞれが含む第iのセレクタと
    を有し、
    前記期待値群は前記第0乃至第(n−1)の期待値の集合である、請求項8記載の連想メモリ回路のテスト回路。
  15. 前記連想メモリ回路は、前記カウンタの出力をデコードして前記第i列に配された前記連想メモリセルを選択する第iのデコード出力を出力するデコーダを更に有し、
    前記連想メモリ回路のテスト回路は
    前記第jの入力信号がそれぞれ特定の論理値を採る場合を検出する入力値検出回路と、
    前記入力値検出回路の出力と、前記スキャンフリップフロップの出力と、前記第0乃至第(n−1)のデコード出力とを受け、前記連想メモリセルが正常な場合に、前記連想メモリセルの保持する内容を前記第jの前記入力スキャンフリップフロップの保持する入力信号と比較した結果である期待値群を生成する期待値生成回路
    を更に備え、
    前記期待値生成回路は
    前記入力値検出回路の出力と前記スキャンフリップフロップの出力とを入力するイクスクルーシブ・オア回路と、
    前記イクスクルーシブ・オア回路の出力と、前記第iのデコード出力とをそれぞれが入力する、第iのAND回路と、
    前記第iのAND回路の出力と、前記入力値検出回路の出力とをそれぞれ入力し、前記第i列に対応する第iの期待値として出力する第iのイクスクルーシブ・ノア回路と
    を有し、
    前記期待値群は前記第0乃至第(n−1)の期待値の集合である、請求項8記載の連想メモリ回路のテスト回路。
JP33706495A 1995-12-25 1995-12-25 連想メモリ回路のテスト方法及び連想メモリ回路のテスト回路 Expired - Fee Related JP3816560B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP33706495A JP3816560B2 (ja) 1995-12-25 1995-12-25 連想メモリ回路のテスト方法及び連想メモリ回路のテスト回路
US08/649,281 US5848074A (en) 1995-12-25 1996-05-17 Method and device for testing content addressable memory circuit and content addressable memory circuit with redundancy function
DE19630746A DE19630746A1 (de) 1995-12-25 1996-07-30 Verfahren und Vorrichtung zum Testen einer Assoziativspeicherschaltung und einer Assoziativspeicherschaltung mit redundanter Funktion
KR1019960033313A KR100232991B1 (en) 1995-12-25 1996-08-10 Method and device for testing content addressable memory circuit and content addressable memory circuit with redundancy function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33706495A JP3816560B2 (ja) 1995-12-25 1995-12-25 連想メモリ回路のテスト方法及び連想メモリ回路のテスト回路

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005319677A Division JP2006054052A (ja) 2005-11-02 2005-11-02 冗長機能付き連想メモリ回路

Publications (2)

Publication Number Publication Date
JPH09180498A JPH09180498A (ja) 1997-07-11
JP3816560B2 true JP3816560B2 (ja) 2006-08-30

Family

ID=18305096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33706495A Expired - Fee Related JP3816560B2 (ja) 1995-12-25 1995-12-25 連想メモリ回路のテスト方法及び連想メモリ回路のテスト回路

Country Status (4)

Country Link
US (1) US5848074A (ja)
JP (1) JP3816560B2 (ja)
KR (1) KR100232991B1 (ja)
DE (1) DE19630746A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2345976B (en) 1999-01-22 2003-06-25 Sgs Thomson Microelectronics Test circuit for memory
US6286116B1 (en) * 1999-03-26 2001-09-04 Compaq Computer Corporation Built-in test method for content addressable memories
JP4618829B2 (ja) * 1999-06-11 2011-01-26 ルネサスエレクトロニクス株式会社 半導体集積回路装置
JP2001014899A (ja) 1999-06-28 2001-01-19 Mitsubishi Electric Corp 半導体装置
US6477673B1 (en) 1999-07-30 2002-11-05 Stmicroelectronics, Inc. Structure and method with which to generate data background patterns for testing random-access-memories
JP4428489B2 (ja) * 1999-08-23 2010-03-10 パナソニック株式会社 集積回路装置及びそのテスト方法
US6392910B1 (en) 1999-09-10 2002-05-21 Sibercore Technologies, Inc. Priority encoder with multiple match function for content addressable memories and methods for implementing the same
US6542391B2 (en) * 2000-06-08 2003-04-01 Netlogic Microsystems, Inc. Content addressable memory with configurable class-based storage partition
US6249467B1 (en) 1999-10-18 2001-06-19 Netlogic Microsystems, Inc Row redundancy in a content addressable memory
US6275426B1 (en) * 1999-10-18 2001-08-14 Netlogic Microsystems, Inc. Row redundancy for content addressable memory
US6543016B1 (en) 1999-11-04 2003-04-01 Agere Systems Inc. Testing content-addressable memories
ATE493733T1 (de) * 2000-06-08 2011-01-15 Netlogic Microsystems Inc Unterteilte inhaltsadressierbare speicherschaltung
JP2002260389A (ja) * 2001-03-01 2002-09-13 Kawasaki Microelectronics Kk 連想メモリ
US7200793B1 (en) * 2002-03-22 2007-04-03 Altera Corporation Error checking and correcting for content addressable memories (CAMs)
US20040153911A1 (en) * 2002-12-24 2004-08-05 Alon Regev Testing of a CAM
JP2004288347A (ja) * 2003-03-03 2004-10-14 Renesas Technology Corp 連想メモリ
JP4552689B2 (ja) * 2005-02-28 2010-09-29 株式会社日立製作所 半導体記憶装置
JP4861012B2 (ja) 2005-03-31 2012-01-25 ルネサスエレクトロニクス株式会社 Cam装置
WO2007051147A2 (en) * 2005-10-26 2007-05-03 Capso Vision, Inc. Onboard data storage and method
US7495993B2 (en) * 2005-10-26 2009-02-24 Capso Vision, Inc. Onboard data storage and method
KR100723517B1 (ko) * 2005-12-14 2007-05-30 삼성전자주식회사 카운팅 값을 유지한 후 출력하는 카운터 및 상기 카운터를 구비하는 위상 고정 루프
JP2008034081A (ja) * 2006-07-07 2008-02-14 Elpida Memory Inc 半導体記憶装置
JP2008165887A (ja) * 2006-12-27 2008-07-17 Rohm Co Ltd メモリリード回路、それを用いたメモリ装置
JP5262955B2 (ja) * 2009-04-23 2013-08-14 富士通株式会社 不良セル検出装置、不良セル検出方法、および不良セル検出プログラム
US10268948B2 (en) * 2015-07-23 2019-04-23 The Boeing Company Data driven classification and troubleshooting system and method using associative memory and a machine learning algorithm to improve the accuracy and performance of the associative memory
CN112905402A (zh) * 2021-03-25 2021-06-04 长春捷翼汽车零部件有限公司 导引电路模拟装置以及导引电路兼容性测试方法
US11940493B1 (en) * 2022-09-16 2024-03-26 Nvidia Corp. Flexible one-hot decoding logic for clock controls

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4296475A (en) * 1978-12-19 1981-10-20 U.S. Philips Corporation Word-organized, content-addressable memory
US4532606A (en) * 1983-07-14 1985-07-30 Burroughs Corporation Content addressable memory cell with shift capability
DE3525994A1 (de) * 1985-07-20 1987-01-29 Philips Patentverwaltung Elektronenstrahl-aufzeichnungstraeger
DE3751002T2 (de) * 1986-10-20 1995-10-05 Nippon Telegraph & Telephone Halbleiterspeicher.
US4959811A (en) * 1986-11-03 1990-09-25 Texas Instruments Incorporated Content addressable memory including comparison inhibit and shift register circuits
JPH0346194A (ja) * 1989-07-14 1991-02-27 Mitsubishi Electric Corp 内容アドレスメモリセル
JP2829905B2 (ja) * 1989-08-31 1998-12-02 安藤電気株式会社 期待パターンの後半反転回路
GB9213821D0 (en) * 1992-06-30 1992-08-12 Inmos Ltd Content addressable memory
JPH0676583A (ja) * 1992-07-06 1994-03-18 Mitsubishi Electric Corp 内容番地付記憶装置および一致ワード不要化方法
GB9417590D0 (en) * 1994-09-01 1994-10-19 Inmos Ltd Scan latch
JP3216449B2 (ja) * 1994-10-31 2001-10-09 安藤電気株式会社 半導体メモリの故障自己診断装置

Also Published As

Publication number Publication date
DE19630746A1 (de) 1997-06-26
JPH09180498A (ja) 1997-07-11
KR100232991B1 (en) 1999-12-01
KR970049605A (ko) 1997-07-29
US5848074A (en) 1998-12-08

Similar Documents

Publication Publication Date Title
JP3816560B2 (ja) 連想メモリ回路のテスト方法及び連想メモリ回路のテスト回路
US5325367A (en) Memory device containing a static ram memory that is adapted for executing a self-test, and integrated circuit containing such a device as an embedded static ram memory
EP0716421B1 (en) A method for testing an array of Random Access Memories (RAMs)
US6085346A (en) Method and apparatus for built-in self test of integrated circuits
US5663965A (en) Apparatus and method for testing a memory array
US4872168A (en) Integrated circuit with memory self-test
US5719889A (en) Programmable parity checking and comparison circuit
US6216241B1 (en) Method and system for testing multiport memories
US20090300440A1 (en) Data controlling in the mbist chain architecture
JPH10241399A (ja) 組込みメモリ用のプロセッサ・ベースのbist
US6563751B1 (en) System and method for testing TDM sRAMs
JP2001325800A (ja) 半導体集積回路装置および製造方法
JPH04302899A (ja) 埋め込み型sram用にモジュール化された自己テスト装置及び方法
JP3431761B2 (ja) メモリ・アレイ組込み自己テスト回路及びそのための方法
JPH0820967B2 (ja) 集積回路
Hamdioui et al. Opens and delay faults in cmos ram address decoders
US5440714A (en) Method and system configuration for simplifying the decoding system for access to an register file with overlapping windows
US6941494B1 (en) Built-in test for multiple memory circuits
US5537632A (en) Method and system for fault coverage testing memory
Franklin et al. Testing reconfigured RAM's and scrambled address RAM's for pattern sensitive faults
JP2001043698A (ja) 内蔵メモリアレイの自己検査回路および自己検査方法
JP2006054052A (ja) 冗長機能付き連想メモリ回路
Chung et al. Reducing test time and area overhead of an embedded memory array built-in repair analyzer with optimal repair rate
JP2004512630A (ja) at−speedでのマルチポートCsRAMの組み込み自己検査
US6629275B1 (en) Reinstate apparatus and method to recreate data background for testing SRAM

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051102

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060608

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130616

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees