CAMはエントリの数と同数のマッチ線を有する。CAMのサーチ機能のテストを行う場合、テストのために入力されるサーチデータと全エントリとを比較し、全マッチ線の出力値が期待値か否かの判定を行う必要がある。全エントリのデータ値と複数のサーチデータとの組み合わせは極めて膨大な数であり、それに対応して、全マッチ線の期待値の組み合わせも膨大な数となる。図1は、CAMのテストの問題点を説明するためのテスト構成の概念図であり、本発明者により検討されたものである。図1には、内蔵自己試験回路BISTと、CAMと、プライオリティエンコーダPRENと、それら間の接続配線が描かれている。図1において、CAMは、n+1ビットのエントリをm+1個を有し、m+1個のエントリに対応してマッチ線ML0−MLmが設けられている。内蔵自己試験回路BISTは、CANへテスト用サーチデータを入力するためのn+1本のテストデータ供給配線iTST(n+1)と、CANのマッチ線ML0−MLmからテスト結果を受け取るためのm+1本のテスト結果配線oTST(m+1)と、に接続される必要がある。さらに、n+1個の選択回路Sel(n+1)が設けられる。選択回路Sel(n+1)は、テスト動作時においてテストデータ供給配線iTST(n+1)を選択し、通常動作時においてn+1本の通常入力配線i(n+1)を選択する。この構成は、配線数(n+1本のテストデータ供給配線iTST(n+1)とm+1本のテスト結果配線oTST(m+1)とを加算した本数(2+n+m))が極めて多く、配線性が悪い。そのため、図1の構成は、半導体装置への内蔵には不向きである。
以下、実施形態、実施例、変形例、応用例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。なお、図面は説明をより明確にするため、実際の態様に比べ、各部の幅、形状等について模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。
1)テスト動作におけるサーチ時において、サーチ結果の出力はテスト対象のエントリの選択と同期して、対応するマッチ線を選択して行う。対応するマッチ線の選択は、マッチ線選択回路により行う。マッチ線選択回路は、テスト対象のエントリのワード線の選択レベルに応じて対応するマッチ線を選択する。TCAMセルを用いてエントリが記憶される場合、マッチ線選択回路は2本のワード線のいずれか一方のワード線が選択レベルとされることに応じて、対応するマッチ線を選択する。
2)テスト用サーチデータは、スキャン入力回路を用いて、サーチ線へ入力する。テスト用サーチデータは、テスト対象のエントリの格納データに対して、1ビットのミスが発生するようなデータである。1ビットのミスさせるテスト用サーチデータは、テスト対象の全エントリのサーチテストが実施された後、スキャン入力回路によってシフトされ、新たなテスト用サーチデータによって、テスト対象の全エントリに対するサーチテストが再度実施される。
実施形態によれば、ワード線のレベルに応じてマッチ線を選択し、テスト結果を出力する。そのため、テスト結果の出力のためのテスト用信号配線の数が削減可能であり、配線性の向上が可能である。また、スキャン入力回路によってテスト用サーチデータを入力するので、テストデータ(テスト用サーチデータ)の入力のためのテスト用信号の配線数が削減可能であり、配線性の向上が可能である。
[TCAMセルの構成]
図2は、実施例に係るTCAMセルの構成の一例を示す回路図である。図2を参照して、TCAMセル(メモリセルMC、または、ビットセル(bitcell)とも称する)は、2個のSRAMセル(Static Random Access Memory Cell)11,12と、データ比較部13とを含む。SRAMセル11をXセルとも称し、SRAMセル12をYセルとも称する。Xセル11は、内部の記憶ノード対ND1,ND1_nに互いに相補となる(一方が“1”のとき他方が“0”となる)1ビット(bit)のデータを記憶する。Yセル12は、内部の記憶ノード対ND2,ND2_nに互いに相補となる1ビットのデータを記憶する。
TCAMセルは、ビット線対BT,BB、サーチ線対ST,SB、マッチ線ML、およびワード線WLA,WLBと接続される。ビット線対BT,BBは、図4のTCAMセルアレイ20の列方向(Y方向)に延在し、列方向に配列された複数のTCAMセルによって共有される。サーチ線対ST,SBは、TCAMセルアレイ20の列方向(Y方向)に延在し、列方向に配列された複数のTCAMセルによって共有される。
マッチ線MLは、TCAMセルアレイ20の行方向(X方向)に延在し、行方向に配列された複数のTCAMセルによって共有される。ワード線WLA,WLBは、TCAMセルアレイ20の行方向(X方向)に延在し、行方向に配列された複数のTCAMセルによって共有される。ワード線WLA,WLBは、第1ワード線、第2ワード線という事もできる。
Xセル11は、インバータINV1,INV2と、NチャネルMOS(Metal Oxide Semiconductor)トランジスタQ1,Q2とを含む。インバータINV1は、記憶ノードND1_nから記憶ノードND1へ向かう方向が順方向となるように、記憶ノードND1と記憶ノードND1_nの間に接続される。インバータINV2は、INV1と並列かつ逆方向に接続される。MOSトランジスタQ1は、記憶ノードND1とビット線BTとの間に接続される。MOSトランジスタQ2は、記憶ノードND1_nとビット線BBとの間に接続される。MOSトランジスタQ1,Q2のゲートは、ワード線WLAと接続される。
Yセル12は、インバータINV3,INV4と、MOS(Metal Oxide Semiconductor)トランジスタQ3,Q4とを含む。インバータINV3は、記憶ノードND2_nから記憶ノードND2に向かう方向が順方向となるように、記憶ノードND2と記憶ノードND2_nの間に接続される。インバータINV4は、INV3と並列かつ逆方向に接続される。MOSトランジスタQ3は、記憶ノードND2とビット線BTとの間に接続される。MOSトランジスタQ4は、記憶ノードND2_nとビット線BBとの間に接続される。MOSトランジスタQ3,Q4のゲートは、ワード線WLBと接続される。
データ比較部13は、NチャネルMOSトランジスタQ6〜Q9を含む。MOSトランジスタQ6,Q7はマッチ線MLとの接続点であるノードND3と接地ノードGNDとの間に直列に接続される。MOSトランジスタQ8,Q9は、ノードND3と接地ノードGNDとの間に直列に、かつ、直列接続されたMOSトランジスタQ6,Q7の全体と並列に接続される。MOSトランジスタQ6,Q8のゲートは、記憶ノードND1,ND2とそれぞれ接続される。MOSトランジスタQ7,Q9のゲートは、サーチ線ST,SBとそれぞれ接続される。
なお、BCAMのメモリセルは、例えば、図2において、ワード線WLB,Yセルを削除し、MOSトランジスタQ8のゲート電極を、Xセルの記憶ノードND1_nへ接続することで構成できる。
図3は、図2のXセルおよびYセルの記憶内容とTCAMセルのデータとの対応関係を表形式で示す図である。
図2および図3を参照して、TCAMセルは、2ビットのSRAMセルを用いて、“0”、“1”、“x”(ドントケア:don't care)の3値を格納することができる。具体的に、Xセル11の記憶ノードND1に“1”が格納され、Yセル12の記憶ノードND2に“0”が格納されているとき、TCAMセルには“0”が格納されているとする。Xセル11の記憶ノードND1に“0”が格納され、Yセル12の記憶ノードND2に“1”が格納されているとき、TCAMセルには“1”が格納されているとする。Xセル11の記憶ノードND1に“0”が格納され、Yセル12の記憶ノードND2に“0”が格納されているとき、TCAMセルには“x”(ドントケア)が格納されているとする。Xセル11の記憶ノードND1に“1”が格納され、Yセル12の記憶ノードND2に“1”が格納されている場合は使用しない。
上記のTCAMセルの構成によれば、サーチデータが“1”(すなわち、サーチ線STが“1”、かつ、サーチ線SBが“0”)であり、TCAMデータが“0”(記憶ノードND1が“1”、かつ、記憶ノードND2が“0”)である場合には、MOSトランジスタQ6,Q7がオン状態となるために、プリチャージされたマッチ線MLの電位が接地電位まで引き抜かれる。サーチデータが“0”(すなわち、サーチ線STが“0”、かつ、サーチ線SBが“1”)であり、TCAMデータが“1”(記憶ノードND1が“0”、かつ、記憶ノードND2が“1”)である場合には、MOSトランジスタQ8,Q9がオン状態となるために、プリチャージされたマッチ線MLの電位が接地電位まで引き抜かれる。すなわち、サーチデータとTCAMデータとが不一致の場合には、マッチ線MLの電位は接地電位まで引き抜かれる。
逆に、入力されたサーチデータが“1”であり、かつ、TCAMデータが“1”または“x”の場合、もしくは、サーチデータが“0”であり、かつ、TCAMデータが“0”または“X”の場合(すなわち、両者が一致する場合)、プリチャージされたマッチ線MLの電位(電源電位VDDレベル)は維持される。
上記のように、TCAMでは、1つのエントリ(行)に対応するマッチ線MLに接続された全てのTCAMセルのデータが入力サーチデータと一致しない限り、マッチ線MLに蓄えられた電荷が引き抜かれる。
[アレイの構成]
図4は、実施例に係るTCAM装置の構成を示すブロック図である。図3を参照して、TCAM装置1は、TCAMマクロセル10とプライオリティエンコーダ(PREN)30とを含む。TCAMマクロセル10は、TCAMセルアレイ(CARY)20(単にセルアレイとも称する)と、書込みドライバおよび読み出し用センスアンプ(WD/SA)21とサーチ線ドライバ(SD)22と、マッチアンプ部(MA)23と、制御論理回路(CNT)24と、図2のワード線WLA,WLBを駆動するためのワード線ドライバ(WLD)25と、を含む。TCAMマクロセル10は、さらに、テストのためのマッチライン選択回路部(マッチ線出力選択部)(MLS)26と、テストのためのスキャン入力回路部(SCC)27と、を含む。
セルアレイ20は、行列状(M+1行;n+1列)に配列されたTCAMセルを含む。セルアレイ20は、行数(エントリ数)がM+1(Mは、正の整数)であり、列数(エントリのビット数)がn+1(nは、正の整数)の場合が示されている。
セルアレイ20の各列に対応して、n+1個のビット線対(BT[0],BB[0]−BT[n],BB[n])と、n+1個のサーチ線対(ST[0],SB[0]−ST[n],SB[n])とが設けられる。セルアレイ20の各行に対応して、M+1本のマッチ線(ML[0]−ML[M])と、M+1本のXセル用のワード線(WLA[0]−WLA[M])と、M+1本のYセル用のワード線(WLB[0]−WLB[M])とが設けられている。ワード線(WLA[0]−WLA[M])は第1ワード線であり、ワード線(WLB[0]−WLB[M])は第2ワード線である。
書込みドライバおよび読み出し用センスアンプ21は、書込みドライバWDと、読み出し用センスアンプSAとを含む。書込みドライバWDは、書込み時に、ビット線対BT,BBを介して各TCAMセルに書込みデータを供給する。読み出し用センスアンプSAは、読み出し時に、ビット線対BT,BBを介して各TCAMセルから読み出されたデータを増幅して出力する。
サーチ線ドライバ22は、検索時に、サーチ線対(ST[0],SB[0]−ST[n],SB[n])を介して各TCAMセルにサーチデータを供給する。
制御論理回路24は、TACMマクロセル10全体の動作を制御する。たとえば、制御論理回路24は、検索時には、サーチコマンドを受け取り、サーチ線ドライバ22と、マッチアンプ部23に制御信号を出力することによって、サーチ線ドライバ22、マッチアンプ部23、およびプリチャージ回路の動作を制御する。制御論理回路24は、書込み時には、書込みドライバWDとワード線ドライバ(WLD)25とに制御信号を出力することによって、書込みドライバWDとワード線ドライバ(WLD)25との動作を制御する。また、制御論理回路24は、読み出し時には、ワード線ドライバ(WLD)25と読み出し用センスアンプSAとに制御信号を出力することによって、ワード線ドライバ(WLD)25と読み出し用センスアンプSAとの動作を制御する。
マッチアンプ部MA23は、セルアレイの行にそれぞれ対応する複数のマッチアンプMA0−MAmを有する。マッチアンプMA0−MAmの入力は対応するマッチ線ML(ML[0]−ML[M])にそれぞれ接続され、マッチアンプMA0−MAmの出力は対応するマッチ信号出力線MLo(MLo0−MLom)にそれぞれ接続される。マッチアンプMA0−MAmは、検索時に、対応するマッチ線ML(ML[0]−ML[M])の電位に基づいて、対応するTCAMセルデータと入力サーチデータの対応部分とが一致するか否かの検出信号を生成して、対応するマッチ信号出力線MLo(MLo0−MLom)へ出力する。この例では、マッチアンプMA0−MAmは、検索時に対応するマッチ線ML[0]−ML[M]をプリチャージするためのプリチャージ回路を含む。
マッチライン選択回路部(MLS)26は、複数のマッチライン選択回路MLS0−MLSmを含む。各は、各行に対応するワード線(WLA[0]−WLA[M]、WLB[0]−WLB[M])と、各行に対応するマッチ信号出力線(MLo0−MLom)と、に接続される。各マッチライン選択回路MLS0−MLSmの出力は、マッチ読み出し線(MRL)を介して、マッチ読み出し信号MROとして出力される。例えば、マッチライン選択回路MLS0は、2本のワード線(WLA[0]、WLB[0])と1本のマッチ信号出力線MLo0に接続される。テスト時において、2本のワード線(WLA[0]、WLB[0])に接続されるエントリ0に対するテスト用サーチデータとエントリ0とサーチ動作が行われた後、2本のワード線(WLA[0]、WLB[0])のいずれかが選択レベルとされる。これにより、マッチ信号出力線ML0が選択され、マッチ信号出力線ML0の信号レベルに対応するテスト出力信号がマッチ読み出し線(MRL)を介してマッチ読み出し信号MROとして出力される。
テストのためのスキャン入力回路(SCC)27は、テスト時において、テスト用サーチデータを入力するために、設けられる。例えば、スキャン入力回路(SCC)27は、テスト時において、各エントリに対して1ビットのミスを発生させさせるような、サーチデータをサーチ線対(ST[0],SB[0]−ST[n],SB[n])へ入力するために利用される。
プライオリティエンコーダ(PREN)30は、通常動作における検索時において、複数のマッチ信号出力線MLo0−MLomの内の複数が一致を示す信号レベルとされた場合、所定の優先順位に従って、1つのマッチ信号出力線を選択するために設けられる。
図5は、実施例に係るTCAMマクロセルを概念的に示す回路図である。
TCAMマクロセル10は、行列状に配置された複数のビットセル(bitcell)と、複数のビット線対(BB[0],BT[0]−BB[n]、BT[n])と、複数のワード線(WLA[0]−WLA[M]、WLB[0]−WLB[M])と、複数のサーチ線対(ST[0],SB[0]−ST[n],SB[n])と、マッチ線(ML[0]−ML[M])と、を有する。
TCAMマクロセル10は、さらに、ビット線対(BB[0],BT[0]−BB[n]、BT[n])に書き込みデータを供給する書き込みドライバWD(本図では省略される)と、読み出しのセンスアンプ(SA0−SAn)と、複数のサーチ線対(ST[0],SB[0]−ST[n],SB[n])と、複数のサーチ線対(ST[0],SB[0]−ST[n],SB[n])を駆動するサーチ線ドライバ(SD0−SDn)と、複数のマッチ線(ML[0]−ML[M])と、を持つ。読み出しのセンスアンプ(SA0−SAn)は、センスアンプイネーブル信号SAEにより、その動作が制御される。サーチ線ドライバ(SD0−SDn)は、サーチラッチイネーブル信号SLEによってその動作が制御される。
マッチ線(ML[0]−ML[M])は、マッチアンプ部23内のマッチアンプ(MA0−MAm)に接続される。各マッチアンプ(MA0−MAm)は、マッチアンプMA0に例示されるように、ラッチトリガCP2によってサーチ結果を格納するラッチ回路LTが設けられる。なお、ラッチ回路LTは、フリップフロップにより構成されても良い。各マッチアンプ(MA0−MAm)の出力は、各マッチアンプ(MA0−MAm)の出力信号線とされるマッチ信号出力線MLo(MLo0−MLom)に供給される。
マッチライン選択回路部(MLS)26は、複数のマッチライン選択回路MLS0−MLSmを含む。各マッチライン選択回路MLS0−MLSmのおのおのは、マッチライン選択回路MLS0に例示されるように、オア回路ORと、Nチャネル型MOSトランジスタ(第1MOSトランジスタ)T1と、Nチャネル型MOSトランジスタ(第2MOSトランジスタ)T2とを含む。オア回路ORの2つの入力は、2本のワード線(WLA[0]、WLB[0])に接続される。Nチャネル型MOSトランジスタT1のゲートは、オア回路ORの出力に接続される。Nチャネル型MOSトランジスタT2のゲートは、マッチ信号出力線MLo0に接続される。Nチャネル型MOSトランジスタT1のソースドレイン経路とNチャネル型MOSトランジスタT2ソースドレイン経路とは、接地電位(GND)の様な参照電位とマッチ読み出し線(MRL)との間に、直列に接続される。マッチ読み出し線(MRL)には、センスアンプイネーブル信号SAEにより、その動作が制御されるバッファアンプBAが設けられており、バッファアンプBAの出力信号がマッチ読み出し信号MROとして出力される。
なお、上記では、Nチャネル型MOSトランジスタT2のソースは接地電位(GND)の様な参照電位に接続されるとしたが、電源電位Vddの様な参照電位へ接続しても良い。また、Nチャネル型MOSトランジスタ(第1MOSトランジスタ)T1と、Nチャネル型MOSトランジスタ(第2MOSトランジスタ)T2は、PチャネルMOSトランジスタへ変更されても良い。つまり、マッチライン選択回路(MLS0−MLSm)の回路構成は、マッチライン選択回路(MLS0−MLSm)がマッチ信号出力線MLo(MLo0−MLom)の電位レベルをマッチ読み出し線(MRL)へ伝達可能な構成であればよい。
スキャン入力回路(SCC)27は、スキャンテストモード信号STMの信号レベルに応じてスキャンイン端子SIから入力されるテスト用のサーチデータと、通常動作モードにサーチデータ入力端子SD[0]−SD[n]から供給されるサーチデータと、を選択する。スキャン入力回路(SCC)27に含まれる選択回路SE0−SEnは、スキャンテストモード信号STMがテストモードを示す時、スキャンイン端子SIから入力されるテスト用のサーチデータを選択し、フリップフロップ回路FF0−FFnの出力からサーチ線ドライバ(SD0−SDn)の入力へ供給する。一方、選択回路SE0−SEnは、スキャンテストモード信号STMが通常動作モードを示す場合、サーチ時において、サーチデータ入力端子SD[0]−SD[n]から供給されるサーチデータを選択し、サーチデータラッチであるフリップフロップ回路FF0−FFnを介してサーチ線ドライバ(SD0−SDn)へ供給する。フリップフロップ回路FF0−FFnは、サーチラッチイネーブル信号SLEによってその動作が制御される。スキャンテストモード信号STMがテストモードを示す時、スキャンイン端子SIから入力されるテスト用のサーチデータは、サーチラッチイネーブル信号SLEに従って、順次シフトされて、フリップフロップ回路FF0−FFnへスキャンインされる。SOは、スキャン出力端子である。
図5において、通常モードのサーチでは、サーチデータ入力端子SD[0]−SD[n]からサーチデータまたはサーチキーを入力し、サーチラッチイネーブル信号SLEをアサートして複数のサーチ線対(ST[0],SB[0]−ST[n],SB[n])にサーチデータを入力する。その後、各エントリとサーチデータとの一致または不一致の結果が複数のマッチ線(ML[0]−ML[M])を通してマッチアンプ(MA0−MAm)の各ラッチ回路LTに取り込まれる。マッチアンプ(MA0−MAm)の各ラッチ回路LTに取り込まれた検索結果は、マッチ信号出力線MLo(MLo0−MLom)を介してプライオリティエンコーダ(PREN)30へ入力される。
サーチデータとビットセルに格納される全エントリデータとを比較して、不一致がある場合、不一致に対応するマッチ線(ML[0]−ML[M])がプリチャージ電位から接地電位の様な“0”(ローレベル)に引き抜かれる。マッチ線(ML[0]−ML[M])の電位は、マッチアンプ(MA0−MAm)の各ラッチ回路LTに取り込まれ、マッチ信号出力線MLo(MLo0−MLom)に出力される。
本開示のテストにおいては、同じマッチ線MLにつながる複数のビットセルの内において、1ビットのみ不一致の状態を意図的に生成し、それを全エントリについて実行するテストを行う(以後、このテスト手法を、1ビットミス(1bit-Miss)テストと呼ぶこととする)。
本開示では、スキャンテストモード信号STMによって、サーチキーのエントリをスキャンパス入力SIから行った上で、そのサーチキーを用いてサーチする事が可能である。1bit-Missテストを行うには、以下の様にする。
1.全ビットセルに、“0”を記憶させる(全エントリのデータを、“00・・0”とする)。
2.その後、サーチデータラッチ(FF1−FFn)に、すべて“0”(All“0”)を入れて初期化する。
3.スキャンイン端子SIから”1”を入力して、1回だけサーチラッチイネーブル信号SLEを活性化させ、テストサーチデータを“10・・0”として、サーチ実行する。
これによって、サーチラッチイネーブル信号SLEを活性化させてサーチする毎に、“1”がサーチデータラッチ(FF1−FFn)へ順次シフトされて、1bit-Missテストが可能になる。
テスト時におけるマッチ信号出力線MLo0−MLomの出力の選択は、マッチ信号出力線MLo0−MLomの1つをワード線(WLA[0]−WLA[M]、WLB[0]−WLB[M])により選択して、マッチ読み出し信号MROとして出力する。例えば、マッチライン選択回路MLS0によってマッチ信号出力線MLo0を選択する場合、ワード線(WLA[0]またはWLB[0])を選択状態とする。それにより、マッチライン選択回路MLS0内のオア回路ORがNチャネル型MOSトランジスタT1をオン状態にさせる。マッチ信号出力線MLo0の電位が高い場合(一致)、Nチャネル型MOSトランジスタT2がオン状態にされて、例えば、マッチ読み出し線(MRL)のハイレベルのプリチャージ電位がローレベルへ放電される。マッチ信号出力線MLo0の電位が低い場合(不一致)、Nチャネル型MOSトランジスタT2がオフ状態にされて、例えば、マッチ読み出し線(MRL)のハイレベルのプリチャージ電位が維持される。
マッチ読み出し信号MROの出力のタイミングは、バッファアンプBAに入力されるタイミング信号SAEにより制御される。タイミング信号SAEは、TCAMマクロセルの読み出し動作のイネーブル信号、すなわち、センスアンプSAに供給されるセンスアンプイネーブル信号と共用化される。
TCAMセル(ビットセル)は、図2に示された様に、0/1/Xの三状態あるため、一般に2本のワード線(WLA、WLB)が接続されている。どちらのワード線でもマッチ読み出し信号MROを出力可能とするため、ワード線WLAおよびWLBの論理オア(OR回路)を利用している。ワード線WLAおよびWLBのどちらか1本に反応するようにしてもよい。この場合、OR回路はマッチライン選択回路MLSから削除され、ワード線WLAおよびWLBのどちらか1本のワード線がNチャネル型MOSトランジスタT1のゲートに入力される。なお、図4のTCAMセルがBCAMのメモリセルへ変更する場合、BCAMのメモリセルは、図2において、例えば、ワード線WLB,Yセルを削除し、MOSトランジスタQ8のゲート電極を、Xセルの記憶ノードND1_nへ接続することで構成できる。この場合も、OR回路はマッチライン選択回路MLSから削除されて、ワード線WLAがNチャネル型MOSトランジスタT1のゲートに入力される。
図6は、1bit-missテストのタイミングチャートを示す図である。同図は、通常動作モードからテストモード(BISTモード)へ遷移する状態を示している。
全エントリのデータをAll“0”とした場合の1bit-missテストのタイミングチャートである。
通常動作モードにおいては、スキャンテストモード信号STMが“0”(STM=”0”)とされており、メインクロック信号CLKをトリガーにして、サーチ時には、サーチデータ(SD)を供給した後、サーチラッチイネーブル信号SLEをハイレベルとしてサーチ動作を行い、マッチ線MLに比較結果として一致ないし不一致データが現れる。サーチデータ(SD)の入力と、サーチラッチイネーブル信号SLEのハイレベルとを順次実行してサーチ動作が行われる。図示されないが、読み出し(Read)時には、センスアンプイネーブル信号SAEを順次ハイレベルとして読み出し動作が行われる。
1bit-Missテストは、下記のステップないし手順で実行される。
なお、全ビットセルには、あらかじめ、“0”を記憶させてあるものとする(全エントリのデータは、“00・・0”とされている)。
(a)最初に、スキャンテストモード信号STMをローレベル(STM=”L”)とし、サーチデータを全ビット“0”(All“0”)にして、サーチラッチイネーブル信号SLEをハイレベルとしてサーチ動作を実行する。テスト用サーチデータの初期化が行われる。
(b)次に、スキャンテストモード信号STMをハイレベル(STM=”H”)とし、スキャン入力端子SIをハイレベル(SI=”H”)として、サーチラッチイネーブル信号SLEをハイレベルとしてサーチ動作を行う。テスト用サーチデータは、“10・・0”とされている。
(c)全アドレスを読み出して、マッチ読み出し信号MROが期待値通りであることを確認する。すなわち、対象のアドレスAddr(検査対象ワード線のアドレスまたはエントリのアドレス)を入力し、センスアンプイネーブル信号SAEをハイレベル“H”へ変化させて、検査対象アドレスに対応するマッチ信号出力線MLo(MLo0−MLom)を選択して、マッチ読み出し信号MROを読み出す。この動作を、全アドレス、すなわち、全エントリの数だけ繰り返し実施する。これにより、各エントリに対するマッチ信号出力線MLo(MLo0−MLom)の信号レベルがマッチ読み出し信号MROとして読み出しされるので、テスト用サーチデータ“10・・0”での期待値との比較が可能である。
(d)次に、スキャンテストモード信号STMがハイレベル(STM=”H”)の状態で、スキャン入力端子SI(SI=”L”)として、サーチラッチイネーブル信号SLEをハイレベルとして、サーチを実行する。テスト用サーチデータは、“01・・0”とされている。
(e)上記(c)同様に、全アドレスを読み出し、マッチ読み出し信号MROが期待値通りであることを確認する。すなわち、対象のアドレスAddr(検査対象ワード線のアドレスまたはエントリのアドレス)を入力し、センスアンプイネーブル信号SAEをハイレベル(“H”)へ変化させて、検査対象アドレスに対応するマッチ信号出力線MLo(MLo0−MLom)を選択して、マッチ読み出し信号MROを読み出す。この動作を、全アドレス、すなわち、全エントリの数だけ繰り返し実施する。これにより、各エントリに対するマッチ信号出力線MLo(MLo0−MLom)の信号レベルがマッチ読み出し信号MROとして読み出しされるので、テスト用サーチデータ“01・・0”における期待値との比較が可能である。
(f)上記(d)及び(e)を、サーチデータ幅の分、繰り返す。図5の例では、サーチデータ幅は1+nビットであり、上記(b)を含めて、1+n回繰り替えされることとなる。
なお、上記(c)及び(d)において、読み出しデータ端子Q(Q[0]−Q[n])から読み出しデータが出力されるが、この読み出しデータはテストの検証のために利用しても良いし、利用しなくても良い。
すなわち、上記(a)で、サーチデータラッチに“0”を記憶させ、上記(b)で1ビット目のサーチデータを“1”にしてサーチする。これによって、サーチデータとTCAMセルのエントリデータは、1ビット目のみが不一致、残りが一致となる。その後、上記(c)で、読み出しモード(SAE=“H”)を使ってマッチアンプ(MA0−MAm)のラッチ回路LTのデータをマッチ読み出し線(MRL)を介してマッチ読み出し信号MROとして読み出し、期待値との判定を行う。
上記(d)において、スキャンテストモード信号STMはSTM=”H”なので、サーチデータはスキャンパス(スキャン入力端子SI)から入力される。スキャン入力端子SIはSI=“L”なので、元々のサーチデータSD[0]のSD[0]=“H”がシフトし、SD[0]=”L”、SD[1]=”H”となる。そこで、サーチを実行し、マッチアンプ(MA0−MAm)のラッチ回路LTにサーチ結果を格納したら、上記(e)でマッチ読み出し信号MROとして読み出し、期待値との判定を行う。この上記(d)、(e)を繰り返すことで、全エントリおよび全エントリの全ビットに対する1bit-missテストが可能になる。
実施例によれば、テスト結果の出力のためのテスト用信号の配線数を削減し、配線性の向上が可能である。また、テストデータ(テスト用サーチデータ)の入力のためのテスト用信号の配線数を削減し、配線性の向上が可能である。また、DFT(Design For Test)のための論理回路の規模も減らす事が可能である。
[変形例1]
図7は、変形例1に係るTCAMマクロセルを概念的に示す回路図である。図7は、図5のスキャン入力回路(SCC)27の変形例を示す図面である。変形例1は、実施例へ適用可能である。
図7において、スキャン入力回路(SCC)27aは、通常入力用のサーチデータ入力端子と書き込みデータ入力端子とを兼用し、データ入力端子D[0]−D[n]からサーチデータの入力と書き込みデータの入力とを行う構成である。これにより、書き込みデータのフリップフロップとサーチデータのフリップフロップとを一つにまとめ、さらに、スキャンパスを持たせて1bit-missテストを可能とした。さらに、スキャンデータのTCAMセルへの書き込みを可能にしたことにより、様々なテストデータのパターンに対応することが可能になる。
図7が図5と異なる部分は、図7においてスキャン入力回路(SCC)27a内のフリップフロップFF0−FFnの出力が複数のサーチ線ドライバ(SD0−SDn)の入力と複数の書き込みドライバWD0−WDnの入力とに接続されている点と、サーチデータ入力端子SD[0]−SD[n]がデータ入力端子D[0]−D[n]へ変更されている点である。フリップフロップFF0−FFnは、ラッチトリガCP1によりその動作が制御される。書き込みドライバWD0−WDnは書き込みイネーブル信号WTEによって、その動作が制御される。なお、書き込みドライバWD0−WDnとサーチ線ドライバSD0−SDnとは、排他的に動作する。図7の他の構成は図5と同じであり、その説明は省略する。
変形例1によれば、書き込みデータの入力ラッチとサーチデータの入力ラッチとを共用することで、回路規模または回路面積を削減できる。
[変形例2]
図8Aおよび図8Bは、変形例2に係るTCAMマクロセルを概念的に示す回路図である。図8Aおよび図8Bは、図7の構成において、マッチアンプ部23a内の複数のラッチ回路LTにスキャンパスを設けた構成である。図8Aおよび図8Bの変形例2は、実施例および変形例1に適用可能である。
図8Aにおいて、マッチアンプ部23a内の複数のラッチ回路LTのスキャンパスは、第2スキャンインデータ端子SI2と第2スキャンアウトデータ端子SO2との間に設けられる。第2スキャンインデータ端子SI2は、選択回路SEL0の第2入力に接続される。選択回路SEL0の出力は、マッチアンプMA0のラッチ回路LTの入力に結合され、マッチアンプMA0のラッチ回路LTの出力は、選択回路SEL1の第2入力に接続される。マッチアンプMA1のラッチ回路LTの出力は、次段の図示されない選択回路SEL2の第2入力に結合される。このようにして、順次接続され、マッチアンプMAmのラッチ回路LTの出力が第2スキャンアウトデータ端子SO2に接続される。選択回路SEL0−SELmのおのおのの第1入力は、マッチ線ML[0]−ML[M]にそれぞれ接続される。選択回路SEL0−SELmの制御入力には、スキャンパスモード信号SPが供給される。スキャンパスモード信号SPのハイレベルはスキャンパスモードであり、そのローレベルは通常動作モードを示す。スキャンパスモード信号SPがハイレベルにされると、選択回路SEL0−SELmのおのおのにおいて、その第2入力がその出力に接続される。一方、スキャンパスモード信号SPがローレベルにされると、選択回路SEL0−SELmのおのおのにおいて、その第1入力がその出力に接続される。
マッチアンプ部23a内の複数のラッチ回路LTのラッチトリガは、選択回路SELCPにより供給される。選択回路SELCPの第1入力は、スキャン入力回路(SCC)27a内のフリップフロップFF0−FFnのラッチトリガCP1が供給される。選択回路SELCPの第2入力はラッチトリガCP2が供給され、選択回路SELCPの制御入力はスキャンパスモード信号SPされる。したがって、スキャンパスモード信号SPがハイレベルのスキャンパスモードを示す時、選択回路SELCPはラッチトリガとしてラッチトリガCP1を選択し、マッチアンプ部23a内の複数のラッチ回路LTへ供給する。これにより、第2スキャンインデータ端子SI2と第2スキャンアウトデータ端子SO2との間において、マッチアンプ部23a内の複数のラッチ回路LTのスキャンパスが形成されて、マッチアンプ部23a内の複数のラッチ回路LTに格納されたデータがスキャンシフトされ、第2スキャンアウトデータ端子SO2から出力されることになる。一方、スキャンパスモード信号SPがローレベルの通常モードを示す時、選択回路SELCPはラッチトリガとしてラッチトリガCP2を選択し、マッチアンプ部23a内の複数のラッチ回路LTへ供給する。この場合においては、サーチテストの結果がラッチトリガCP2によりマッチアンプ部23a内の複数のラッチ回路LTへ取り込まれることになる。なお、マッチアンプ部23a内の複数のラッチ回路LTに取り込まれたテスト結果は、前述の様に、スキャンパスモード信号SPをハイレベルとすることで、第2スキャンアウトデータ端子SO2から出力可能である。
図8Bは、図8Aの選択回路SELCPを削除し、その代わりに、フリップフロップFFSを設けたものである。図8Bにおいて、図8Aと同様に、マッチアンプ部23a内の複数のラッチ回路LTのスキャンパスは、第2スキャンインデータ端子SI2と第2スキャンアウトデータ端子SO2との間に設けられる。第2スキャンインデータ端子SI2は、初段フリップフロップFFSの入力に接続され、初段フリップフロップFFSの出力は、選択回路SEL0の第2入力に接続される。選択回路SEL0の出力は、マッチアンプMA0のラッチ回路LTの入力に結合され、マッチアンプMA0のラッチ回路LTの出力は、選択回路SEL1の第2入力に接続される。マッチアンプMA1のラッチ回路LTの出力は、次段の図示されない選択回路SEL2の第2入力に結合される。このようにして、順次接続され、マッチアンプMAmのラッチ回路LTの出力が第2スキャンアウトデータ端子SO2に接続される。選択回路SEL0−SELmのおのおのの第1入力は、マッチ線ML[0]−ML[M]にそれぞれ接続される。選択回路SEL0−SELmの制御入力には、スキャンパスモード信号SPが供給される。スキャンパスモード信号SPのハイレベルはスキャンパスモードであり、そのローレベルは通常動作モードを示す。スキャンパスモード信号SPがハイレベルにされると、選択回路SEL0−SELmのおのおのにおいて、その第2入力がその出力に接続される。一方、スキャンパスモード信号SPがローレベルにされると、選択回路SEL0−SELmのおのおのにおいて、その第1入力がその出力に接続される。
マッチアンプ部23a内の複数のラッチ回路LTのスキャンパスを設けたことに伴い、スキャン入力回路(SCC)27aのスキャンインデータ端子は第1スキャンインデータ端子SI1とされ、第1スキャンアウトデータ端子SO1がスキャン入力回路(SCC)27aに設けられる。
マッチ信号出力線MLo(MLo0−MLom)の出力を受ける後段の論理回路(例えば、プライオリティエンコーダPREN)のテストのために、マッチ信号出力線MLo(MLo0−MLom)にもスキャンフリップフロップ(SFF)を持たせることが行われる。一般的には、TCAMマクロセルの外に、スキャンフリップフロップ(SFF)を配置することが行われる。この場合、アドレス空間分(エントリ数分)に対応する数のSFFを配置する必要があり、面積デメリットと配線性の悪化を招く虞がある。
図8Bにおいては、TCAMマクロセルのマッチアンプ部23aのラッチ回路LTにスキャンパスを設けた。この構成における特徴は、第2スキャンインデータ端子SI2に接続された初段フリップフロップFFSのラッチトリガCP1と、マッチアンプ部23aのラッチ回路LTのラッチトリガCP2とを、異なるラッチトリガ信号としたことにある。
一般的に、マッチ線ML(ML0−MLm)は負荷が大きいため、サーチ開始からサーチ結果が出力されるまでの時間(遅延時間)が長くなる。従って、マッチ線ML(ML0−MLm)の出力を正しくマッチアンプ部23a内の複数のラッチ回路LTでラッチするため、ラッチトリガCP2は、ラッチトリガCP1よりも遅くアサートないし活性化される必要がある。これに対し、第2スキャンインデータ端子SI2に接続された初段フリップフロップFFSのラッチトリガとしてラッチトリガCP2を用いると、ラッチトリガCP2がアサートされるまで第2スキャンインデータ端子SI2に供給されたデータをホールドする必要があり、タイミング設計が極めて困難になる虞がある。そこで、第2スキャンインデータ端子SI2に接続される初段フリップフロップFFSのラッチトリガを、ラッチトリガCP2ではなく、ラッチトリガCP1とした。
図8Bの変形例2によれば、第2スキャンインデータ端子SI2に接続される初段フリップフロップFFSのラッチトリガを入力データラッチ(FF0−FFn)のラッチトリガCP1と共通にすることで、ラッチトリガの配線性を向上することが可能である。
図9は、変形例2に係る選択回路およびマッチアンプのラッチ回路の回路構成の一例を示す図である。図9は、図8Aまたは図8Bの選択回路SEL0,SEL1およびマッチアンプMA0、MA1のラッチ回路LTの回路構成の一例を示す。この例では、マッチアンプMA0、MA1のラッチ回路LTは、スキャンフリップフロップSFF0,SFF1へと変更されている。
選択回路SEL0は、PチャネルMOSトランジスタP10,P11、NチャネルMOSトランジスタN10,N11を含む第1クロックドインバータ回路と、PチャネルMOSトランジスタP20,P21、NチャネルMOSトランジスタN20,N21を含む第2クロックドインバータ回路と、を有する。
第1クロックドインバータ回路において、PチャネルMOSトランジスタP11とNチャネルMOSトランジスタN11のゲートは選択回路SEL0の第1入力であり、マッチ線ML[0]に接続される。PチャネルMOSトランジスタP11とNチャネルMOSトランジスタN11の共通ドレインは選択回路SEL0の出力であり、マッチアンプMA0の入力に接続される。PチャネルMOSトランジスタP11のソースは、PチャネルMOSトランジスタP10のソースドレイン経路を介して電源電位Vddへ接続される。NチャネルMOSトランジスタN11のソースは、NチャネルMOSトランジスタN10のソースドレイン経路を介して接地電位に接続される。PチャネルMOSトランジスタP10のゲートは、スキャンパスモード信号SPを受ける様に接続され、NチャネルMOSトランジスタN10のゲートは、インバータINV1を介して、スキャンパスモード信号SPの反転信号を受ける様に接続される。
第2クロックドインバータ回路において、PチャネルMOSトランジスタP21とNチャネルMOSトランジスタN21のゲートは選択回路SEL0の第2入力であり、初段フリップフロップ回路FFSの出力に接続される。PチャネルMOSトランジスタP21とNチャネルMOSトランジスタN21の共通ドレインは選択回路SEL0の出力であり、マッチアンプMA0の入力に接続される。PチャネルMOSトランジスタP21のソースは、PチャネルMOSトランジスタP20のソースドレイン経路を介して電源電位Vddへ接続される。NチャネルMOSトランジスタN21のソースは、NチャネルMOSトランジスタN20のソースドレイン経路を介して接地電位に接続される。PチャネルMOSトランジスタP20のゲートは、インバータINV1を介して、スキャンパスモード信号SPの反転信号を受ける様に接続され、NチャネルMOSトランジスタN20のゲートは、スキャンパスモード信号SPを受ける様に接続される。
選択回路SEL1は、PチャネルMOSトランジスタP30,P31、NチャネルMOSトランジスタN30,N31を含む第3クロックドインバータ回路と、PチャネルMOSトランジスタP40,P41、NチャネルMOSトランジスタN40,N41を含む第4クロックドインバータ回路と、を有する。
第3クロックドインバータ回路において、PチャネルMOSトランジスタP31とNチャネルMOSトランジスタN31のゲートは選択回路SEL1の第1入力であり、マッチ線ML[1]に接続される。PチャネルMOSトランジスタP31とNチャネルMOSトランジスタN31の共通ドレインは選択回路SEL1の出力であり、マッチアンプMA1の入力に接続される。PチャネルMOSトランジスタP31のソースは、PチャネルMOSトランジスタP30のソースドレイン経路を介して電源電位Vddへ接続される。NチャネルMOSトランジスタN31のソースは、NチャネルMOSトランジスタN30のソースドレイン経路を介して接地電位に接続される。PチャネルMOSトランジスタP30のゲートは、スキャンパスモード信号SPを受ける様に接続され、NチャネルMOSトランジスタN30のゲートは、インバータINV1を介して、スキャンパスモード信号SPの反転信号を受ける様に接続される。
第4クロックドインバータ回路において、PチャネルMOSトランジスタP41とNチャネルMOSトランジスタN41のゲートは選択回路SEL1の第2入力であり、マッチアンプMA0の出力に接続される。PチャネルMOSトランジスタP41とNチャネルMOSトランジスタN41の共通ドレインは選択回路SEL1の出力であり、マッチアンプMA1の入力に接続される。PチャネルMOSトランジスタP41のソースは、PチャネルMOSトランジスタP40のソースドレイン経路を介して電源電位Vddへ接続される。NチャネルMOSトランジスタN41のソースは、NチャネルMOSトランジスタN40のソースドレイン経路を介して接地電位に接続される。PチャネルMOSトランジスタP40のゲートは、インバータINV1を介して、スキャンパスモード信号SPの反転信号を受ける様に接続され、NチャネルMOSトランジスタN11のゲートは、スキャンパスモード信号SPを受ける様に接続される。
マッチアンプMA0は、マスターラッチ回路MLT0とスレーブラッチ回路SLT0とを含む。
マスターラッチ回路MLT0は、その入力と出力とが交差結合されたインバータINV10およびインバータ回路INV11を含む。インバータINV11の入力は、PチャネルMOSトランジスタおよびNチャネルMOSトランジスタから構成されたCMOSスイッチSW10を介して、選択回路SEL0の第2入力に接続される。インバータINV11の入力は、また、インバータINV15を介してマッチ信号出力線MLo0に接続される。インバータINV11の出力は、インバータINV14を介してスレーブラッチ回路SLT0の入力に接続される。
スレーブラッチ回路SLT0は、その入力と出力とが交差結合されたインバータINV12およびインバータ回路INV13を含む。インバータINV13の入力は、インバータINV14の出力に接続されており、インバータINV13の出力は、選択回路SEL1の第2入力に接続される。
インバータINV10、インバータINV12およびインバータINV14は、クロックドインバータ回路であり、ラッチトリガCP2及びラッチトリガCP2をインバータINV2により反転した反転信号を受ける。インバータINV10およびインバータINV14の動作は、インバータINV12の動作と逆相の動作とされている。ラッチトリガCP2がハイレベルとされる場合、インバータINV10およびインバータINV14はオフ状態とされ、インバータINV12はオン状態とされる。ラッチトリガCP2がローレベルとされる場合、インバータINV10およびインバータINV14はオン状態とされ、インバータINV12はオフ状態とされる。CMOSスイッチSW10は、ラッチトリガCP2がハイレベルとされると、オン状態とされ、ラッチトリガCP2がローレベルとされると、オフ状態とされる。
マッチアンプMA1は、マスターラッチ回路MLT1とスレーブラッチ回路SLT1とを含む。
マスターラッチ回路MLT1は、その入力と出力とが交差結合されたインバータINV20およびインバータ回路INV21を含む。インバータINV21の入力は、PチャネルMOSトランジスとおよびNチャネルMOSトランジスタから構成されたCMOSスイッチSW20を介して、選択回路SEL1の第2入力に接続される。インバータINV21の入力は、また、インバータINV25を介してマッチ信号出力線MLo1に接続される。インバータINV21の出力は、インバータINV24を介してスレーブラッチ回路SLT1の入力に接続される。
スレーブラッチ回路SLT1は、その入力と出力とが交差結合されたインバータINV22およびインバータ回路INV23を含む。インバータINV23の入力は、インバータINV24の出力に接続されており、インバータINV23の出力は、次段の選択回路の第2入力に接続される。図9では、インバータINV23の出力は、模式的に、第2スキャンアウトデータ端子SO2に接続されるとして描かれる。
インバータINV20、インバータINV22およびインバータINV24は、クロックドインバータ回路であり、ラッチトリガCP2及びラッチトリガCP2をインバータINV2により反転した反転信号を受ける。インバータINV20およびインバータINV24の動作は、インバータINV22の動作と逆相の動作とされている。ラッチトリガCP2がハイレベルとされる場合、インバータINV20およびインバータINV24はオフ状態とされ、インバータINV22はオン状態とされる。ラッチトリガCP2がローレベルとされる場合、インバータINV20およびインバータINV24はオン状態とされ、インバータINV22はオフ状態とされる。CMOSスイッチSW20は、ラッチトリガCP2がハイレベルとされると、オン状態とされ、ラッチトリガCP2がローレベルとされると、オフ状態とされる。
スキャンパスモード信号SPがローレベルとされる通常動作モードにおいて、PチャネルMOSトランジスタP10、P30およびNチャネルMOSトランジスタN10、N30はオン状態とされるので、マッチ線ML[0]およびML[1]の信号レベルは、マッチアンプMA0及び、MA1の入力へ供給される。PチャネルMOSトランジスタP20、P40およびNチャネルMOSトランジスタN20、N40はオフ状態とされる。この時、ラッチトリガCP2がハイレベルとされると、CMOSスイッチSW10およびSW20がオン状態にされ、マッチ線ML[0]およびML[1]の信号レベルに従う信号がインバータINV15,INV25を介してマッチ信号出力線MLo0及びMLo1へ供給される。この後、ラッチトリガCP2がローレベルにされると、CMOSスイッチSW10およびSW20がオフ状態にされ、インバータINV10,INV20がオン状態とされ、マスターラッチMLT0及びMLT1にマッチ線ML[0]およびML[1]の信号レベルに従うレベルが保持される。
スキャンパスモード信号SPがハイレベルとされるスキャンパスモードにおいて、PチャネルMOSトランジスタP20、P40およびNチャネルMOSトランジスタN20、N40はオン状態とされる。PチャネルMOSトランジスタP10、P30およびNチャネルMOSトランジスタN10、N30はオフ状態とされる。これにより、第2スキャンインデータ端子SI2に供給された信号を保持する初段FFSの出力が、マッチアンプMA0の入力に供給される。また、マッチアンプMA0のスレーブラッチの出力が、マッチアンプMA1の入力に供給される。
この状態において、ラッチトリガCP2がハイレベルとされると、CMOSスイッチSW10およびSW20がオン状態にされ、初段FFSの出力およびマッチアンプMA0のスレーブラッチSLT0の出力がマッチアンプMA0のマスターラッチMLT0及びマッチアンプMA1のマスターラッチMLT1へそれぞれ供給される。この時、インバータINV14およびINV24はオフ状態とされる。
その後、ラッチトリガCP2がローレベルとされると、CMOSスイッチSW10およびSW20がオフ状態にされ、マッチアンプMA0のマスターラッチMLT0及びマッチアンプMA1のマスターラッチMLT1は初段FFSの出力およびマッチアンプMA0のスレーブラッチSLT0の出力を保持する。この時、インバータINV14およびINV24はオン状態とされるので、マッチアンプMA0のスレーブラッチSLT0及びマッチアンプMA1のスレーブラッチSLT1は、マッチアンプMA0のマスターラッチMLT0及びマッチアンプMA1のマスターラッチMLT1の記憶状態を供給される。
このようにして、スキャンパスモード信号SPがハイレベルとされるスキャンパスモードにおいて、初段FFSの出力が、順次、マッチアンプMA0、マッチアンプMA1に伝達されていくことになる。
この構成によれば、初段をスキャンパスからのセレクタ(第2クロックドインバータ回路、第4クロックドインバータ回路)とし、スキャンフリップフロップSFF0,SFF1のマスターラッチMLT0,MLT1からマッチ信号出力線MLo[0],MLo[1]に信号を出力させることにより、マッチ線ML[0],ML[1]の出力の高速化が実現可能である。また、スキャンパス側はスレーブラッチSLT0,SLT1から出力することで、マスターラッチMLT0,MLT1の負荷が軽減できる。
[変形例3]
図10は、変形例3に係る出力ラッチトリガの生成方法を説明するための図である。図10は、マッチアンプ部内のラッチ回路LT(またはスキャンフリップフロップSFF)の出力ラッチトリガCP2の生成方法を説明するための図である。変形例3は、実施例、変形例1および変形例2に適用可能である。
先に述べた通り、マッチ線MLは負荷が大きいので、ラッチ回路LTの出力ラッチトリガCP2は遅らせる必要がある。コンパイルドTCAMマクロセルの場合、データ幅(1エントリのビット数)が可変に変更することが可能である。そのため、マッチ線LMの長さはデータ幅(1エントリのビット数)に対応して変更される。当然、マッチ線MLの長さが短いときは、マッチ線MLの負荷が軽いので、マッチ線MLの電位の変更は高速に行うことが出来る。その為、マッチ線MLの長さが短いときは、出力ラッチトリガCP2を高速にするのが望ましい。
変形例3では、マッチ線MLと並行方向に配置した第1負荷配線RPLMLおよび第1負荷配線BACKMLを用いることにより、データ幅をレプリカ(複製)する。これにより、最適な出力ラッチトリガCP2を生成することが可能である。
図10の(a)は、マッチ線MLと、第1負荷配線RPLMLおよび第1負荷配線BACKMLとのレイアウト的な配置関係を示す図である。図10の(b)は、ラッチトリガCP2を生成するためのラッチトリガ生成回路100の回路構成の一例を示す図である。図10の(c)は、ラッチトリガ生成回路100のタイミングを概念的に示す図である。
図10の(a)は、図4のTCAMマクロセル10のレイアウト配置を概念的に示している。ワード線ドライバ(WLD)25、TCAMセルアレイ(CARY)20、マッチアンプ部(MA)23およびマッチライン選択回路部(MLS)26はY方向に沿って順次配置される。X方向において、ワード線ドライバ(WLD)25の下側には、制御論理回路(CNT)24の形成領域が配置される。Y方向において、制御論理回路(CNT)24の右横側には、書込みドライバおよび読み出し用センスアンプ(WD/SA)21とサーチ線ドライバ(SD)22を含む入出回路領域IOが配置される。Y方向において入出力回路領域IOの右横側には、領域TPが配置される。
TCAMセルアレイCARY内には、例示的に、1本のマッチ線MLが描かれており、Y方向に沿って配置されている。TCAMセルアレイCARY内には、さらに、例示的に、Y方向に沿って配置されるワード線(WLA,WLB)と、X方向に沿って配置されるビット線対(BT,BB)と、X方向に沿って配置されるサーチ線対(ST,SB)と、が描かれる。
入出力回路領域IO内には、第1負荷配線RPLMLおよび第1負荷配線BACKMLが描かれる。第1負荷配線RPLMLおよび第1負荷配線BACKMLは、マッチ線MLと並行にY方向に沿って配置される。マッチ線ML、第1負荷配線RPLMLおよび第1負荷配線BACKMLは、ほぼ同じ長さとされている。マッチ線ML、第1負荷配線RPLMLおよび第2負荷配線BACKMLの長さは、データ幅(1エントリのビット数)に対応してその長さが決まるように構成される。すなわち、第1負荷配線RPLMLおよび第2負荷配線BACKMLは、マッチ線MLをレプリカする配線(レプリカ配線)と見做すことが出来る。マッチ線MLの寄生容量の値とほぼ同等の値の寄生容量が第1負荷配線RPLMLおよび第2負荷配線BACKMLに設けられる。
図10の(b)は、ラッチトリガCP2を生成するためのラッチトリガ生成回路の一例を示している。ラッチトリガ生成回路100は、図10の(a)の制御論理回路(CNT)24の配置領域内に形成される第1回路部分Aと、図10の(a)の入出力回路領域IOの配置領域内に形成される第2回路部分Bと、図10の(a)の領域TPで示される配置領域内に形成される第3回路部分Cと、を含む。
ラッチトリガ生成回路100は、メインクロック信号CLKから第1内部クロック信号CKFを生成する第1クロック生成回路110を含む。第1クロック生成回路110は、インバータIV10,OR回路OR10,遅延回路DLY、インバータIV11,およびセットリセットラッチ回路RSLT、バッファアンプBAを含む。
第1クロック生成回路110から生成された第1内部クロック信号CKFは、第1負荷配線RPLMLの充電および放電を行う第1充放電回路CDC1に入力される。第1充放電回路CDC1は、PチャネルMOSトランジスタP50、NチャネルMOSトランジスタN50−N55を含む。PチャネルMOSトランジスタP50は、第1内部クロック信号CKFのハイレベルに従って、第1負荷配線RPLMLの負荷容量Cを充電する。また、NチャネルMOSトランジスタN50、N51は、第1内部クロック信号CKFのローレベルに従って、第1負荷配線RPLMLの負荷容量Cを放電する。NチャネルMOSトランジスタN53のゲートはインバータIN15を介して第2テスト端子TE2に接続される。NチャネルMOSトランジスタN53がオン状態とされると、NチャネルMOSトランジスタN52及びN53により、第1負荷配線RPLMLの負荷容量Cを放電する。同様に、NチャネルMOSトランジスタN55のゲートは第1テスト端子TE1に接続される。NチャネルMOSトランジスタN55がオン状態とされると、NチャネルMOSトランジスタN54及びN55により、第1負荷配線RPLMLの負荷容量Cを放電する。第1テスト端子TE1および第2テスト端子TE2は、テスト時において、ハイレベル“H”の様な信号レベルが供給され、通常動作時において、ローレベル“L”の様な信号レベルが供給される。したがって、NチャネルMOSトランジスタN53は、テスト時には、オフ状態とされ、通常動作時には、オン状態とされる。このため、第1負荷配線RPLMLの負荷容量Cを放電する速度は、通常動作時と比べてテスト時には遅くなる。一方、NチャネルMOSトランジスタN55は、テスト時には、オン状態とされ、通常動作時には、オフ状態とされる。このため、第1負荷配線RPLMLの負荷容量Cを放電する速度は、通常動作時と比べてテスト時には速くなる。
インバータIV13は、第1負荷配線RPLMLのレベルに従って第2内部クロック信号CKRを生成する。第2内部クロック信号CKRは、第2内部クロック信号CKRに従って第2負荷配線BACKMLの充電および放電を行う第2充放電回路CDC2に入力される。
第2充放電回路CDC2は、PチャネルMOSトランジスタP60、NチャネルMOSトランジスタN60−N65を含む。PチャネルMOSトランジスタP60は、第2内部クロック信号CKRのハイレベルに従って、第2負荷配線BACKMLの負荷容量Cを充電する。また、NチャネルMOSトランジスタN60、N61は、第2内部クロック信号CKRのローレベルに従って、第2負荷配線BACKMLの負荷容量Cを放電する。
NチャネルMOSトランジスタN63のゲートは第1テスト端子TE1に接続される。NチャネルMOSトランジスタN63がオン状態とされると、NチャネルMOSトランジスタN62及びN63により、第2負荷配線BACKMLの負荷容量Cを放電する。同様に、NチャネルMOSトランジスタN65のゲートはインバータIN15を介して第2テスト端子TE2に接続される。NチャネルMOSトランジスタN65がオン状態とされると、NチャネルMOSトランジスタN64及びN65により、第2負荷配線BACKMLの負荷容量Cを放電する。なお、NチャネルMOSトランジスタN65は、テスト時には、オフ状態とされ、通常動作時には、オン状態とされる。このため、第2負荷配線BACKMLの負荷容量Cを放電する速度は、通常動作時と比べてテスト時には遅くなる。一方、NチャネルMOSトランジスタN63は、テスト時には、オン状態とされ、通常動作時には、オフ状態とされる。このため、第2負荷配線BACKMLの負荷容量Cを放電する速度は、通常動作時と比べてテスト時には速くなる。
オア回路OR14は、第2負荷配線BACKMLに結合された第1入力と、インバータIV14を介して第1内部クロック信号CKFを受ける第2入力と、を有する。オア回路OR14の出力は、リセット信号RSTとしてセットリセットラッチ回路RSLTのリセット端子に入力される。また、オア回路OR14の出力は、インバータIV12を介してラッチトリガCP2として出力される。
図10の(c)に示されるように、メインクロック信号CLKのローレベルからハイレベルへの変化に同期して、第1内部クロック信号CKFがローレベルからハイレベルへ変化する。第1内部クロック信号CKFのハイレベルにしたがって、第1負荷配線RPLMLの負荷容量Cの放電が開始される。第1負荷配線RPLMLのレベルがインバータIV13の論理閾値を超えると、第2内部クロック信号CKRがローレベルからハイレベルへ変化する。第2内部クロック信号CKRのハイレベルにしたがって、第2負荷配線BACKMLの負荷容量Cの放電が開始される。インバータIV14の出力はローレベルであり、第2負荷配線BACKMLのレベルがオア回路OR11の論理閾値を超えると、リセット信号RSTがハイレベルからローレベルへ変化する。これにより、ラッチトリガCP2がローレベルからハイレベルへ変化する。また、セットリセットラッチRSLTの出力である第1内部クロック信号CKFはハイレベルからローレベルへ変化する。それによって、リセット信号RSTがローレベルからハイレベルへ変化し、ラッチトリガCP2がハイレベルからローレベルへ変化する。
図10の(b)の回路の特徴は、下記のとおりである。
(a)メインクロック信号CLKをセットリセットラッチRSLTで受ける。
(b)セットリセットラッチRSLTの出力をCKF、RPLML、CKR、BACKMLと順次遅延させる。第1負荷配線RPLML/第2負荷配線BACKMLはマッチ線MLと並行して配置する。
(c)セットリセットラッチRSLTのリセット信号RSTは、第2負荷配線BACKMLとセットリセットラッチRSLTの出力直後の第1内部クロックCKFとのOR論理(オア回路OR11が設けられる)で行う。
上記(c)において、リセット信号RSTを第2負荷配線BACKMLからだけでなく第1内部クロックCKFとのOR論理にしたことがポイントである。これがないと、セットリセットラッチRSLTのリセット期間が長くなりすぎ、TCAMの動作周波数が遅くなる。リセット信号RSTをBACKMLに比べショートパルス化することで、TCAM動作周波数を上げることができる。
次に、第1テスト端子TE1および第2テスト端子TE2に関して説明する。
第1テスト端子TE1および第2テスト端子TE2は、以下の様にして利用することが出来る。第1テスト端子TE1では、マッチ線出力ラッチトリガCP2を高速に発生させることで、駆動力の弱いTCAMセルのテストスクリーニングをすることが出来る。また、第2テスト端子TE2では、マッチ線出力ラッチトリガCP2の発生を低速にする。TCAMのサーチ動作は、一般的に、マッチ線MLを“H”にプリチャージしたところから、”L”に引き抜くか(不一致)、“H”状態でフローティングになるか(一致)を、マッチアンプ部内のラッチ回路LTによりラッチする。従って、リーク電流の発生などがあると、フローティングになっているマッチ線MLが“H”レベルを維持できずに誤動作することになる。実使用時にリーク電流が増加することはよくある不良の1つであり、出荷テスト時に、予め、スクリーニングすることが望ましい。第2テスト端子TE2では、出力ラッチトリガCP2を遅らせ、マッチ線MLのフローティング状態の時間を長くする。これにより、小さなリーク電流が発生して不良を検出でき、信頼性の高いスクリーニングが実施できる。
この構成によれば、コンパイラに対応した最適なマッチ線出力タイミングが作成可能である。また、最適なマッチ線出力タイミングが生成できるので、TCAMマクロセルの高速化も可能である。また、スクリーニングテストにより、TCAMマクロセルの品質および信頼性を向上することが出来る。
[変形例4]
図11は、変形例4に係るTCAMマクロセルを概念的に示す回路図である。図11のTCAMマクロセルは、Y選択信号(カラム選択信号)Ynによって、ビット線対BT[0],BB[0]またはビット線対BT[1],BB[1]を可能とする構成である。Y選択信号YnがY0の場合、YスイッチYSW0がオン状態とされ、ビット線対BT[0],BB[0]がセンスアンプSA0へ接続される。一方、Y選択信号YnがY1の場合、YスイッチYSW1がオン状態とされ、ビット線対BT[1],BB[1]がセンスアンプSA0へ接続される。
また、この変更に伴い、マッチ読み出し線MRLは、第1マッチ読み出し線MRL[0]と第2マッチ読み出し線MRL[1]とにされる。Y選択信号YnがY0の場合、YスイッチYSWR0がオン状態とされ、第1マッチ読み出し線MRL[0]がバッファアンプBAに接続される。一方、Y選択信号YnがY1の場合、YスイッチYSWR1がオン状態とされ、第2マッチ読み出し線MRL[1]がバッファアンプBAに接続される。
また、この変更に伴い、マッチライン選択回路MLS0及びMLS1の構成も変更される。マッチライン選択回路MLS0は、マッチアンプMA0の出力(マッチ信号出力線MLo[0])を第2マッチ読み出し線MRL[1]へ読み出すためのNチャネルMOSトランジスタT1_0及びT2_0と、マッチアンプMA1の出力(マッチ信号出力線MLo[1])を第1マッチ読み出し線MRL[0]へ読み出すためのNチャネルMOSトランジスタT1_1及びT2_1と、を有する。また、同様に、マッチライン選択回路MLS1は、マッチアンプMA2の出力(マッチ信号出力線MLo[2])を第2マッチ読み出し線MRL[1]へ読み出すためのNチャネルMOSトランジスタT1_0及びT2_0と、マッチアンプMA3の出力(マッチ信号出力線MLo[3])を第1マッチ読み出し線MRL[0]へ読み出すためのNチャネルMOSトランジスタT1_1及びT2_1と、を有する。他の構成は、実施例と同様である。変形例4は、実施例、変形例1−3に適用可能である。
この構成によれば、Y選択信号によってビット線対およびマッチ読み出し線MRLを選択する構成であっても、実施例と同様な効果を得ることが出来る。
[変形例5]
図12は、変形例5に係るマッチライン選択回路MLSの構成の一例を示す図である。図12のマッチライン選択回路MLSは、マッチ読み出し信号MROを差動アンプDFAにより読み出し可能とするための構成であり、マッチ読み出し信号MROの読み出し安定化ないし高速化を可能とするものである。この構成は、実施例、変形例1−4へ適用可能である。
マッチ読み出し線(MRL)は、第1マッチ読み出し線MRLTと第2マッチ読み出し線MRLBとに変更され、第1マッチ読み出し線MRLTと第2マッチ読み出し線MRLBとが差動アンプDFAの入力に接続される。
この変更に伴い、マッチライン選択回路MLS0は、マッチアンプMA0の出力を第1マッチ読み出し線MRLTへ読み出すためのNチャネルMOSトランジスタT1及びT2と、マッチアンプMA0の出力を第2マッチ読み出し線MRLBへ読み出すためのインバータINV、NチャネルMOSトランジスタT1_1及びT2_1と、を有する。NチャネルMOSトランジスタT1およびT1_1のゲートはオア回路ORの出力に接続される。オア回路ORは、図5に示されるマッチライン選択回路MLS0のオア回路ORである。NチャネルMOSトランジスタT2のゲートはマッチ信号出力線MLo[0]に接続され、NチャネルMOSトランジスタT2_1のゲートはインバータINVを介してマッチ信号出力線MLo[0]に接続される。マッチライン選択回路MLS1、MLSmも、マッチライン選択回路MLS0と同様な構成とされている。
この構成によれば、マッチ読み出し信号MROの読み出しの安定化および高速化が可能である。
[応用例]
図13は、応用例に係る半導体装置の概念的なブロック図である。
半導体装置300は、中央処理装置CPUと、揮発性メモリであるスタチックランダムアクセスメモリSRAMと、不揮発性メモリとしてのフラッシュメモリFlashと、ネットワークインタフェース回路NEIFと、TCAM装置1と、周辺回路PHCKTと、バスBUSとを有する。スタチックランダムアクセスメモリSRAMは、CPUの作業領域として利用される。フラッシュメモリFlashは、中央処理装置CPUのプログラムを格納する。バスBUSは、CPU、SRAM、Flash、NEIF、TCAM装置1、PHCKTを相互に接続する。ネットワークインタフェース回路NEIFは、ネットワーク回線NELを介して、半導体装置300の外部の設けられたネットワーク装置NEDEVと通信する。ネットワークインタフェース回路NEIFは、また、TCAM装置1と接続される。TCAM装置1は、TCAM10とプライオリティエンコーダPRENを含む。TCAM10は、実施例、変形例1−5の構成を適用可能である。TCAM装置1は、ネットワーク装置NEDEVからネットワーク回線NELを介してネットワークインタフェース回路NEIFへ供給された通信パケットを受け取り、通信パケットのルーティングなどを行う。
以上、本発明者によってなされた発明を実施形態および実施例に基づき具体的に説明したが、本発明は、上記実施形態および実施例に限定されるものではなく、種々変更可能であることはいうまでもない。