(57)【特許請求の範囲】
【請求項１】
アドレス信号の入力によりデータの読み出しおよび書き込みが可能な複数の記憶回路を備えた半導体集積回路装置であって、
前記複数の記憶回路のうち一部の記憶回路は、アドレス信号により指定されるメモリセルからのデータの読み出しおよび書き込みが可能なメモリアレイと、
アドレス信号をデコードしてメモリセルを選択する信号を生成するアドレスデコーダと、
前記メモリアレイに書き込まれたデータと前記メモリアレイから読み出されたデータとを比較する比較手段と、
前記アドレスデコーダに供給されるアドレス信号を前記比較手段における比較結果に基づいて変換する可変アドレス変換手段と、
前記メモリアレイから読み出されたデータを保持可能なデータ保持手段と、
前記データ保持手段に保持されているデータを前記アドレスデコーダの入力側に帰還させる帰還経路と、
入力アドレス信号または前記帰還経路を介して供給される前記データ保持手段の出力信号を切り替えて前記可変アドレス変換手段に供給可能なスイッチマトリックスと、
前記スイッチマトリックス内の各スイッチの制御情報を記憶する記憶手段と、を備え、
前記複数の記憶回路のうち一部の記憶回路は、前記記憶回路の読み出しデータが前記入力信号に対して期待される論理出力信号となるように前記記憶回路にデータが書き込まれることにより当該記憶回路が所望の論理機能を有する論理回路として動作可能に構成されている
ことを特徴とする半導体集積回路装置。
【請求項２】
前記可変アドレス変換手段は、
複数のメモリセルを含むメモリアレイと、
入力アドレス信号に基づいて前記メモリアレイ内のメモリセルを選択するアドレスデコーダと、
前記メモリアレイから読み出された信号を増幅する読出し手段と、
制御信号に基づいて前記入力アドレス信号を更新する手段と、
により構成されていることを特徴とする請求項１に記載の半導体集積回路装置。
【請求項３】
複数の記憶回路とこれらの記憶回路にアドレス信号を供給する第１の信号線群と、これらの記憶回路の書込みデータ信号および読出しデータ信号を伝達する第２の信号線群とを備え、
前記複数の記憶回路は、
アドレス信号により指定されるメモリセルからのデータの読み出しおよび書き込みが可能なメモリアレイと、
アドレス信号をデコードして前記メモリアレイ内のメモリセルを選択する信号を生成するアドレスデコーダと、
前記メモリアレイから読み出されたデータを前記アドレスデコーダの入力側に帰還させる帰還経路と、
入力アドレス信号または前記帰還経路を介して帰還された信号を切り替えて前記アドレスデコーダに供給可能なスイッチマトリックスと、
該スイッチマトリックス内の各スイッチの制御情報を記憶する記憶手段と、を備え、
前記第１の信号線群の信号線と第２の信号線群の信号線との間を任意に接続可能なスイッチマトリックス回路および前記スイッチマトリックス回路内の各スイッチの制御情報を記憶する記憶手段が設けられていることを特徴とする半導体集積回路装置。
【請求項４】
テスト用のインタフェース回路としてテスト・アクセス・ポートをさらに備え、
テスト回路が構成される記憶回路は前記テスト・アクセス・ポートを介して外部の装置と信号の入出力が可能にされることを特徴とする請求項１、２または３に記載の半導体集積回路装置。
【請求項５】
前記記憶回路は揮発性メモリであることを特徴とする請求項１、２、３または４に記載の半導体集積回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路装置およびその製造技術に関し、特に半導体集積回路装置においてテスト回路を搭載することによるオーバヘッドを低減できるテスト容易化設計手法に関し、例えばＲＡＭ（Random Access Memory）を内蔵したシステムＬＳＩ（大規模集積回路）などの半導体集積回路に適用して有効な技術に関する。
【０００２】
【従来の技術】
従来一般に、ＲＡＭやＣＰＵ等を搭載したシステムＬＳＩと呼ばれる論理ＬＳＩでのテスト容易化設計手法としては、内部論理回路を構成するフリップフロップをシリアルに接続してテストデータを入れ、内部論理回路を動作させて論理の状態を検査するスキャンパス方式が良く使われている。この技術は、ＬＳＳＤ（Level Sensitive Scan Design）手法として提言されてから１０年以上も経過しているが、ハードウェアのオーバヘッドが３５％程度もあるとともに、不良検出率が８５％程度しかなく、それ以上検出率を上げるためには多大な努力が必要であるという問題点がある。
【０００３】
また、不良検出率を上げるにはテスタに設けられているテストパターン発生器のパターン容量を著しく大きくしなければならず、テスタの価格を大幅に引き上げている原因となっている。また、テストデータをシリアルデータとして入力しなくてはならないため、そのテストパターンの入力にも多大な時間を要しており、テスト時間の５０％以上がテストパターンの入力時間となり、テスタの有効稼動率を下げる原因にもなっている。
【０００４】
上記スキャンパス方式以外に、ランダムパターン発生器とシグネチャ圧縮器をテスト回路としてチップに搭載したＢＩＳＴ（Built−In Self Test）方式があるが、ＢＩＳＴ方式は、スキャンパス方式で用いられる不良検出アルゴリズムに従って生成されたテストパターンによる論理検証とは異なり、ランダムなテストパターンを用いるものである。そのため、適切な不良検出率が維持されているかは大きな問題であり、適切な手法となるためにはさまざまな技術展開を必要としている。
【０００５】
さらに、ＢＩＳＴ方式を採用した場合においても、スキャンパス方式で用いられているような高速、高機能のテスタと接続してテスタからの制御に従って測定を行なう必要があり、ＢＩＳＴ回路によるテストでは高価なテスタを単なる待ち時間処理として待機させることが多いために、テストコストの低減にはならない。これを解決しようとしたのが、本発明者らが以前に提案した、チップ内にロジックテスタを構築して自己テストさせる、いわゆる「テスト機能付きロジック」と呼ぶ技術であり、ＢＩＳＴとは違ったテスト回路をチップ内に内蔵させて測定する手法である。この手法では、高価なテスタを使用する必要がないため大幅なテストコストの削減が可能になるものの、ＢＩＳＴ方式と同様に、ハードウェアのオーバーヘッドが大きく、チップに搭載したテスト回路自身の不良によって製品歩留まりが低下するという問題も抱えている。
【０００６】
この問題を解決するため、本発明者らは先に、チップ上にＦＰＧＡ（Field Programmable Gate Array）を設け、このＦＰＧＡによりＡＬＰＧ（Algorithmic Pattern Generator）を構築して所定のアルゴリズムに従ってテストパターンを発生させてテストを行なえるようにするとともに、テスト終了後はＦＰＧＡに通常のロジック回路を再構成するようにしたいわゆる「オーバヘッドなしテスト手法」と呼ぶ技術を提案した（国際公開ＷＯ００／６２３３９）。この技術は、自らの不良を検出可能ないわゆる自己検証型ＦＰＧＡと呼ぶ回路をユーザロジック回路に内蔵させて、それにテスト回路を構成して自己テストさせて、最後にＦＰＧＡにユーザ回路を搭載することでテスト回路搭載に伴なうハードウェアのオーバヘッドを低減するものである。この手法においては、ＦＰＧＡを自己検証型回路としているため、不良被爆を自ら検出してその不良箇所の情報を外部へ出力して、テスタＨＤＬ（Hardware Description Language）によるＦＰＧＡへのロジックテスタの構築やユーザ回路の構成の際に、その不良箇所を除いて回路を構成することができるため、歩留まりの低下を回避できる特徴を備えている。
【０００７】
【発明が解決しようとする課題】
ところで、前記のようないわゆる「オーバヘッドなしテスト手法」と呼ぶ技術について、その後さらに本発明者が検討した結果、以下のような不具合があることが明らかとなった。たとえば、この手法では、ＦＰＧＡという新規デバイスプロセスの導入が必要であり、ＦＰＧＡもしくはそれを搭載した製品を市場に提供している半導体メーカはわずかなプロセスの変更により実現できるものであるが、一般的な半導体メーカはＦＰＧＡもしくはそれを搭載した製品を製造していないのが通常で、この手法の展開にはＦＰＧＡの設計およびそれを半導体チップ上に形成するための新規プロセスの開発が必要になるという壁がある。
【０００８】
また、本発明者らは以前に、上記テスト容易化設計技術とは別に、メモリデバイスの救済に関して、いわゆる「自己構成チップ」と呼ぶ技術を提案している。この技術は、メモリに組合わせ回路の真理値データを書き込み、アドレスを入力として出力に所定の論理結果を出力させることでメモリを可変論理回路として利用するものであり、メモリの出力を入力にフイードバックすることによって組合せ論理のみならず順序回路を構成することができるため、任意の論理を構成することができるいわゆる「自己構成チップ」を実現できることを見出し先に出願した。本発明者は、さらにこの「自己構成チップ」の技術を前記「オーバヘッドなしテスト手法」適用することで、ＦＰＧＡが不要になり、ＦＰＧＡの設計およびそのプロセスの開発という課題が解決できることを考えついた。
【０００９】
本発明の目的は、ＦＰＧＡという新規デバイスプロセスの導入をすることなく、チップ内にテスト回路を構成してチップ内のロジック回路をテストするオーバヘッドの少ないロジックテストを実現することができる半導体集積回路装置およびその製造方法を提供することにある。
【００１０】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【００１１】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
【００１２】
すなわち、本発明に係る半導体集積回路装置は、アドレス信号の入力によりデータの読み出しおよび書き込みが可能な記憶回路と、前記記憶回路から読み出されたデータに応じた信号を前記アドレス信号の入力端子側に帰還させる帰還経路とを備え、論理回路の入力信号が上記記憶回路へアドレス信号として入力されるとともに、上記記憶回路の読み出しデータが上記入力信号に対して期待される論理出力信号となるように上記記憶回路にデータが書き込まれることにより当該記憶回路が所望の論理機能を有する論理回路として動作可能に構成されているものである。
【００１３】
上記した手段によれば、半導体集積回路装置に設けられている記憶回路を論理回路として利用することができるので、かかる記憶回路に半導体チップ内の他の回路を検査するテスト回路を構成することができるため、ＦＰＧＡという新規デバイスプロセスの導入をことなくチップ内にロジックテスト回路を構成することができるとともに、テスト終了後はテスト回路を構成した記憶回路を通常の記憶回路として使用できるため、ハードウェアのオーバーヘッドの少ないテスト回路を実現することができる。
【００１４】
また、望ましくは、前記アドレス信号の入力端子への入力信号と前記記憶回路から読み出され前記帰還経路を介して帰還された信号を切り替えて前記記憶回路に供給可能なスイッチマトリックスと、該スイッチマトリックス内の各スイッチの制御情報を記憶する記憶手段とを設ける。これにより、任意の論理機能を有する組合せ回路のみならず直前の状態によって出力が異なる順序回路も前記記憶回路に構成することができ、より複雑な論理機能を、記憶回路を用いて実現することができる。しかも、スイッチマトリックスと、該スイッチマトリックス内の各スイッチの制御情報を記憶する記憶手段とを設けているため、記憶手段に記憶される制御情報を書き換えることで、記憶回路に任意の順序回路を構成したり、通常の記憶回路を構成することが極めて容易に行なえる。
【００１５】
本出願の他の発明に係る半導体集積回路装置は、アドレス信号の入力によりデータの読み出しおよび書き込みが可能な複数の記憶回路を備え、前記複数の記憶回路のうち一部の記憶回路は、アドレス信号により指定されるメモリセルからのデータの読み出しおよび書き込みが可能なメモリアレイと、アドレス信号をデコードしてメモリセルを選択する信号を生成するアドレスデコーダと、前記メモリアレイに書き込まれたデータと前記メモリアレイから読み出されたデータとを比較する比較手段と、前記アドレスデコーダに供給されるアドレス信号を前記比較手段における比較結果に基づいて変換する可変アドレス変換手段とを備え、前記記憶回路の読み出しデータが前記入力信号に対して期待される論理出力信号となるように前記記憶回路にデータが書き込まれることにより当該記憶回路が所望の論理機能を有する論理回路として動作可能に構成されているものである。
【００１６】
上記した手段によれば、アドレス変換回路を備えているため、記憶回路内の不良箇所を回避して所望の論理出力信号が得られるように記憶回路にデータを書き込んでおくことができ、これによって歩留まりの向上を図ることができる。
【００１７】
また、望ましくは、前記メモリアレイから読み出されたデータを保持可能なデータ保持手段と、前記データ保持手段に保持されているデータを前記アドレスデコーダの入力側に帰還させる帰還経路と、入力アドレス信号または前記帰還経路を介して供給される前記データ保持手段の出力信号を切り替えて前記可変アドレス変換手段に供給可能なスイッチマトリックスと、前記スイッチマトリックス内の各スイッチの制御情報を記憶する記憶手段とを設ける。これにより、任意の論理機能を有する組合せ回路のみならず直前の状態によって出力が異なる順序回路も前記記憶回路に構成することができ、より複雑な論理機能を、記憶回路を用いて実現することができる。
【００１８】
さらに、前記可変アドレス変換手段は、複数のメモリセルを含むメモリアレイと、入力アドレス信号に基づいて前記メモリアレイ内のメモリセルを選択するアドレスデコーダと、前記メモリアレイから読み出された信号を増幅する読出し手段と、制御信号に基づいて前記入力アドレス信号を更新する手段とにより構成する。これにより、新規な回路を設計することなく記憶回路を用いて可変アドレス変換回路を実現することができ、設計者の負担が軽減される。
【００１９】
本出願のさらに他の発明に係る半導体集積回路装置は、複数の記憶回路とこれらの記憶回路にアドレス信号を供給する第１の信号線群と、これらの記憶回路の書込みデータ信号および読出しデータ信号を伝達する第２の信号線群とを備え、前記複数の記憶回路は、アドレス信号により指定されるメモリセルからのデータの読み出しおよび書き込みが可能なメモリアレイと、アドレス信号をデコードして前記メモリアレイ内のメモリセルを選択する信号を生成するアドレスデコーダと、前記メモリアレイから読み出されたデータを前記アドレスデコーダの入力側に帰還させる帰還経路と、入力アドレス信号または前記帰還経路を介して帰還された信号を切り替えて前記アドレスデコーダに供給可能なスイッチマトリックスと、該スイッチマトリックス内の各スイッチの制御情報を記憶する記憶手段とを備え、前記第１の信号線群の信号線と第２の信号線群の信号線との間を任意に接続可能なスイッチマトリックスおよび前記スイッチマトリックス内の各スイッチの制御情報を記憶する記憶手段を設けたものである。
【００２０】
上記した手段によれば、半導体集積回路装置に設けられている複数の記憶回路を論理回路として利用することができるので、かかる複数の記憶回路を用いて半導体チップ内の他の回路を検査するテスト回路を構成することができるため、ＦＰＧＡという新規デバイスプロセスの導入をことなくチップ内にロジックテスト回路を構成することができるとともに、テスト終了後はテスト回路を構成した記憶回路を通常の記憶回路として使用できるため、ハードウェアのオーバーヘッドの少ないテスト回路を実現することができる。
【００２１】
望ましくは、テスト用のインタフェース回路としてテスト・アクセス・ポートをさらに備え、前記テスト回路が構成される記憶回路は前記テスト・アクセス・ポートを介して外部の装置と信号の入出力が可能に構成する。これにより、本発明の適用に伴なうテスト用の端子数の増加は僅かで済み、半導体集積回路装置全体のピン数を少なくすることができる。
【００２２】
なお、前記記憶回路は書き換え可能な不揮発性メモリでも揮発性メモリでも良いが、望ましくは揮発性メモリを用いる。不揮発性メモリはその書込みのために昇圧回路など周辺回路を多く必要とするとともに書込み時間も揮発性メモリに比べて長いが、揮発性メモリを用いることにより占有面積の増大や書込み時間が長くなるのを回避することができる。
【００２３】
本出願のさらに他の発明に係る半導体集積回路装置の製造方法は、複数のロジック回路と、複数の記憶回路を含み、前記複数の記憶装置のうち一部の記憶回路は、アドレス信号により指定されるメモリセルからのデータの読み出しおよび書き込みが可能なメモリアレイと、アドレス信号をデコードして前記メモリアレイ内のメモリセルを選択する信号を生成するアドレスデコーダと、前記メモリアレイから読み出されたデータを前記アドレスデコーダの入力側に帰還させる帰還経路と、入力アドレス信号または前記帰還経路を介して帰還された信号を切り替えて前記アドレスデコーダに供給可能なスイッチマトリックスと、該スイッチマトリックス内の各スイッチの制御情報を記憶する記憶手段とを備え前記メモリアレイへの書込みデータにより任意の論理を構成可能な記憶回路である半導体集積回路装置において、前記任意の論理を構成可能な記憶回路に他の記憶回路もしくはロジック回路を検査するテスト回路を構成する工程と、前記テスト回路により前記他の記憶回路や前記ロジック回路をテストする工程と、前記他の記憶回路や前記ロジック回路のテスト終了後に、前記記憶回路を通常の記憶回路として動作するように再構成する工程とを含むようにしたものである。
【００２４】
上記した手段によれば、高機能のテスト装置を用いなくてもチップ内部の記憶回路に構成したテスト回路で自己テストを行なうことができるため、同時に多数の半導体集積回路装置のテストを行なうことができ、製造コストを大幅に下げることができるとともに、テストに要する時間も短縮することができる。
【００２５】
また、望ましくは、前記他の記憶回路が不良メモリセルを予備のメモリセルに置き換える冗長回路を備える場合に、前記記憶回路のテスト終了後にテスト工程により検出された不良メモリセルを予備のメモリセルに置き換える救済処理工程をさらに含むようにする。これにより、チップ上の記憶回路に構成されたテスト回路により、他の記憶回路のテストはもちろん不良メモリセルの救済をも行なうことができるため、外部のテスト装置の負担がさらに軽減され、テストに要するコストを大幅に下げることができる。
【００２６】
さらに、望ましくは、前記テスト回路によるテスト工程は、当該テスト回路が構成された記憶回路以外の記憶回路に前記テスト回路によるテスト結果を格納させるようにする。これにより、外部の装置はテスト回路によるテスト中、半導体集積回路装置の外部端子から出力されるテスト結果を示す信号を常時監視している必要はなく、テスト終了後に一括して内部の記憶回路からテスト結果を読み出すことができ、テストの効率が大幅に向上する。
【００２７】
さらに、前記任意の論理を構成可能な記憶回路にテスト回路を構成する工程は、ハードウェア記述言語で記述された機能レベルの設計データを制御手段で解読して、前記記憶回路の論理構成を決定する信号を前記制御手段から前記記憶回路に与えることにより所望の論理機能を有する論理回路を構成する。
【００２８】
これにより、自己構成型の記憶回路としてのＳＲＡＭにＨＤＬ記述に基づいてテスト回路を構成できるため、チップ内へのテスト回路の構築をコンピュータを用いて容易に行なうことができるとともに、通常のテスタで使用されているテストプログラムが使用可能となり、テスト回路のためのデバッグが不要となるので、テスト設計の工数を大幅に低減できる半導体集積回路装置を実現することが可能となる。
【００２９】
【発明の実施の形態】
以下、本発明の好適な実施例を図面に基づいて説明する。
図１は、本発明を適用したシステムＬＳＩの一実施例のブロック図で、公知の半導体集積回路の製造技術により単結晶シリコンのような１個の半導体チップ１００上に構成される。
【００３０】
図１の符号１１０〜１７０は上記半導体チップ１００上に構成された内部回路、１８０はこれらの内部回路と外部装置との間の信号の入出力を行なうインタフェース回路、１９０は上記内部回路１１０〜１７０相互間およびインタフェース回路１８０との間を接続する内部バスである。上記内部回路１１０〜１７０のうち、１１０はユーザが要求する論理機能を構成するユーザ論理回路のようなカスタム論理回路、１２０はプログラムの命令を解読して対応する処理や演算を実行するＣＰＵ（中央処理ユニット）、１３０および１４０はスタティックＲＡＭ（ランダム・アクセス・メモリ）、１５０〜１７０はダイナミックＲＡＭである。インタフェース回路１８０は、特に制限されるものでないが、５Ｖ系のＬＳＩとの間の信号の送受信を行なうインタフェース回路５ＶＩ／Ｆと、３．３Ｖ系のＬＳＩとの間の信号の送受信を行なうインタフェース回路３．３ＶＩ／Ｆとを含む。
【００３１】
さらに、この実施例のシステムＬＳＩには、特に制限されるものでないが、内部回路のテスト時に外部のテスタとの間の信号の入出力を行なうため、ＩＥＥＥ１１４９．１規格で規定されているＴＡＰ（Test Access Port）２００がテスト用のインタフェース回路として設けられている。本実施例の半導体集積回路にＴＡＰ２００を介して接続されるテスタは、従来の論理ＬＳＩやメモリのテスタのような高機能のものでなくデータの書き込みと読み出しおよび簡単なデータ処理が行なえるものでよく、パーソナルコンピュータを用いることも可能である。
【００３２】
上記スタティックＲＡＭ１３０，１４０およびダイナミックＲＡＭ１５０〜１７０は、内部バス１９０を介してアドレス信号が与えられたときに対応するメモリセルを選択するアドレスデコーダ等のメモリ周辺回路を含む。さらに、ダイナミックＲＡＭ１５０〜１７０は、非アクセス時間が長くなってもメモリセルの情報電荷が失われないように周期的に疑似選択するリフレッシュ制御回路を含む。また、特に制限されるものでないが、この実施例では、ダイナミックＲＡＭ１５０〜１７０には、メモリアレイ内に欠陥ビットがあった場合にその欠陥ビットを含むメモリ行もしくはメモリ列を予備のメモリ行１５１〜１７１もしくは予備のメモリ列１５２〜１７２と置き替えるいわゆる冗長回路がそれぞれ設けられている。そして、この実施例においては、一方のＲＡＭ１３０の一部に任意の論理を構成可能な自己構成回路３００が設けられている。
【００３３】
図２には、図1のＳＲＡＭ１３０の一部に設けられている自己構成回路の一構成例のブロック図が示されている。
【００３４】
図２において、１０は公知の汎用ＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）もしくはＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）とほぼ同様な構成を有する読み出しおよび書き込み可能なメモリ回路である。
【００３５】
すなわち、メモリ回路１０は、複数のメモリセルがマトリックス状に配置されるとともに、複数のワード線と複数のデータ線が格子状に配置され、同一の行のメモリセルはそれぞれ対応するワード線に接続され、同一の列のメモリセルはそれぞれ対応するデータ線に接続されてなるメモリアレイ１１と、供給されたアドレス信号をデコードしてメモリアレイ１１内の対応する1本のワード線を選択レベルにするアドレス・デコーダ１２と、選択されたワード線に接続されたメモリセルからデータ線に読み出された電位を増幅するセンスアンプ回路１３と、チップ選択信号ＣＥおよび書込み制御信号ＷＥに基づいて上記センスアンプ回路１３などの動作タイミングを制御する書込み・読出し制御回路１４などから構成されている。
【００３６】
この実施例の自己構成回路には、上記メモリ回路１０の他、チップ外部から入力された書込みデータを取り込んでセンスアンプ回路１３へ渡したり、メモリ回路１０から読み出されたデータをチップ外部へ出力したり、読出しデータとチップ外部から入力されたデータとを比較したりする比較器２０と、チップ外部からアドレス入力端子４１に入力されたアドレス信号を上記比較器２０における比較結果に応じて変換し上記アドレス・デコーダ１２に供給する可変アドレス変換手段としての自己構成マトリックス３０と、前記比較器２０とデータ入出力端子４２との間に設けられメモリ回路１０から読み出されたデータもしくはデータ入出力端子４２より入力された前回の入力データを保持するデータストレージ６０と、上記データストレージ６０に保持されているデータを入力アドレス信号に代えて自己構成マトリックス３０へ供給するためのスイッチマトリックス７０とが設けられている。
【００３７】
図３には、図２の実施例の自己構成回路に含まれるスイッチマトリックス７０の具体例が示されている。
【００３８】
スイッチマトリックス７０は、図３（Ａ）に示されているように、アドレス入力端子４１に入力されたアドレス信号がのる複数の信号線７１とデータストレージ６０からのフィードバック信号（Ｄｎ）がのる信号線７２とが互いに交差するように格子状に配置され、信号線７１と７２の各交点に切替えスイッチ回路７３が配置されてなる。これとともに、各切替えスイッチ回路７３の制御情報を記憶するＲＡＭ７４が設けられている。
【００３９】
上記切替えスイッチ回路７３は、図３（Ｂ）に示されているように、アドレス入力端子４１より入力されたアドレス信号またはデータストレージ６０の出力信号を選択して出力させるため信号線７１と７２との間に接続され相補的にオン、オフ状態にされる一対のＭＯＳＦＥＴからなるスイッチ素子ＳＷ１，ＳＷ２により構成されている。そして、各スイッチ素子ＳＷ１，ＳＷ２のゲート端子がＲＡＭ７４内に記憶されている制御情報に従って制御されるように構成されている。ただし、ＲＡＭ７４を設ける代わりに、図３（Ｃ）のように、信号線７１と信号線７２の各交点にそれぞれＳＲＡＭセルと同様なスタティック型メモリセルＭＣと切替えスイッチＣＳＷとを設けた構成としても良い。このスイッチＣＳＷは、図３（Ｂ）のスイッチ素子ＳＷ１，ＳＷ２を統合して表わしたものである。
【００４０】
図４には、自己構成回路に含まれるデータストレージ回路６０の具体例が示されている。なお、図４には、メモリアレイ１１から読み出されたデータを出力する経路のみ示されており、メモリアレイ１１への書込みデータの経路は省略されている。
【００４１】
データストレージ回路６０は、図４に示されているように、メモリ回路１０内のメモリアレイ１１の２本ずつのデータ線に対応して設けられたフリップフロップＦＦ１，ＦＦ２，……ＦＦｎと、各フリップフロップのラッチ用クロックを形成するためのＡＮＤゲートＧ１，Ｇ２，……Ｇｎとから構成されている。
【００４２】
そして、各フリップフロップＦＦｉ（ｉ＝０〜ｎ）は、対をなすデータ線の一方の信号（ｄｉ）がデータ入力端子Ｄに入力される。また、対をなすデータ線の他方の信号（Ａｉ）はシステムクロック信号ＣＬＫとともにＡＮＤゲートＧｉに入力されている。そして、このＡＮＤゲートＧｉの出力信号が対応するフリップフロップＦＦｉのクロック端子ＣＫに入力され、クロック端子ＣＫへの信号の立ち下がりまたは立ち上がりに同期してデータ端子Ｄへの入力信号が当該フリップフロップＦＦｉに取り込まれるように構成されている。
【００４３】
図４の回路においては、信号Ａｉがロウレベルにされていると、ＡＮＤゲートＧｉの出力がロウレベルに固定されるため、システムクロックＣＬＫが変化しても対応するフリップフロップＦＦｉはラッチ動作を行なわない。つまり、この実施例では、信号ＡｉをフリップフロップＦＦｉへのデータの取込みを行なうか否か制御する信号（以下、アクティブビットと称する）として使用している。
【００４４】
上記のような動作特性を有するデータストレージ６０を用いることにより、ある入力状態に応じてメモリ回路１０から読み出されたデータを選択的に保持し、これをスイッチマトリックス７０を介して自己構成マトリックス３０へ供給することで前回の出力データで次の入力状態を制御することができる。つまり、これによって、順序回路を構成することができるようになることが容易に理解できる。
【００４５】
図５には、図２の実施例の自己構成回路に含まれる比較器２０の具体例が示されている。
【００４６】
図５に示されているように、比較器２０は、センスアンプ回路１３の出力端子に接続された信号線５１とデータ入出力端子４２に接続された信号線５２との間に設けられ上記書込み・読出し制御回路１４から供給される比較指示信号ＣＣにより制御されるスイッチ手段２１と、センスアンプ回路１３からの読出し信号と上記書込み・読出し制御回路１４から供給される比較指示信号ＣＣとを入力信号とするＮＡＮＤゲート回路２２と、該ＮＡＮＤゲート回路２２の出力信号と上記データ入出力端子４２より入力された信号とを入力とするイクスクルーシブＯＲゲート回路２３と、複数のイクスクルーシブＯＲゲート回路２３の出力信号を入力とするＯＲゲート回路２４とから構成されている。
【００４７】
すなわち、上記スイッチ手段２１とＮＡＮＤゲート回路２２とイクスクルーシブＯＲゲート回路２３とからなる比較回路が、各データ入出力端子４２ごとに設けられ、各比較回路のイクスクルーシブＯＲゲート回路２３の出力信号が上記ＯＲゲート回路２４に入力され、ＯＲゲート回路２４の出力信号が比較結果信号ＣＭとして前記自己構成マトリックス３０に供給されるように構成されている。なお、図示しないが、信号線５２側にはデータ入出力端子４２に共通に接続された入力バッファと出力バッファが設けられていても良い。
【００４８】
図６には、図２の実施例の自己構成回路に含まれる自己構成マトリックス３０の具体例がブロック図で示されている。この自己構成マトリックス３０は、図２のメモリ回路１０とほぼ同様な回路構成を有している。
【００４９】
すなわち、自己構成マトリックス３０は、複数のメモリセルがマトリックス状に配置されるとともに、複数のワード線と複数のデータ線が格子状に配置され、同一の行のメモリセルはそれぞれ対応するワード線に接続され、同一の列のメモリセルはそれぞれ対応するデータ線に接続されてなるメモリアレイ３１と、外部より入力端子４１に供給されたアドレス信号をデコードしてメモリアレイ３１内の対応する1本のワード線を選択レベルにするアドレス・デコーダ３２と、選択されたワード線に接続されたメモリセルからデータ線に読み出された電位を増幅するセンスアンプ回路３３と、上記比較器２０からの比較結果信号ＣＭに基づいて上記センスアンプ回路３３の動作タイミングを制御する書込み読出し制御回路３４などから構成されている。
【００５０】
図示しないが、上記アドレス・デコーダ３２は、アドレスをデコードするデコード回路と、デコードされるアドレスを上記比較結果信号ＣＭに基づいてインクリメントもしくは更新するインクリメンタもしくは演算器を含んでいる。
【００５１】
次に、上記実施例の自己構成回路における変換アドレスの変更の仕方を、図７に示されているフローチャートを用いて説明する。なお、図７に示されているフローチャートが開始される以前に、初期設定処理等により自己構成マトリックス３０においては、メモリアレイ３１内の各番地にメモリ回路１０の各番地に対応したアドレスが格納されている。
【００５２】
外部よりアドレス入力端子４１へアドレス信号が入力されると、自己構成マトリックス３０のアドレスデコーダ３２はそのアドレス信号をデコードしてメモリアレイ３１内の対応するワード線を選択レベルにして予め格納されているアドレスデータを出力、すなわちアドレス変換を行なう（ステップＳ１１）。読み出されたアドレスデータは、センスアンプ３３により増幅されてメモリ回路１０のアドレスデコーダ１２に供給される。アドレスデコーダ１２は供給されたアドレスをデコードしてメモリアレイ１１内の対応するワード線を選択レベルにし、そのとき比較器２０を介して外部より入力されているデータを選択メモリセルに書き込む（ステップＳ１２）。
【００５３】
次に、メモリアレイ１１から当該書込みデータの読出しを行なう（ステップＳ１３）。読み出されたデータはセンスアンプ１３により増幅されて比較器２０に供給される。このとき、データ入出力端子４１にはデータ書込み時に入力された書込みデータが入力されている。これによって、比較器２０はメモリアレイ１１から読み出されたデータとデータ入出力端子４１に入力されている書込みデータとを比較し、一致または不一致を示す比較結果信号ＣＭを自己構成マトリックス３０の書込み読出し制御回路３４へ出力する。
【００５４】
すると、書込み読出し制御回路３４は、比較結果信号ＣＭを見て書込みが正常に行なわれたか否か判定する（ステップＳ１４）。ここで、書込み読出し制御回路３４が書込み失敗と判定すると、アドレスデコーダ３２へ信号を送って内部のインクリメンタを動作させ、メモリ回路１０へ供給される入力アドレス信号を更新（インクリメント）させる（ステップＳ１５）。すると、この更新されたアドレスは、アドレスデコーダ１２に供給されてデコードされ、メモリアレイ１１内の次のワード線が選択レベルにされる。そして、ステップＳ１２へ戻ってそのワード線に接続されている選択メモリセルに、比較器２０を介して外部より入力されているデータが書き込まれる。
【００５５】
次に、再びメモリアレイ１１から当該書込みデータの読出しを行ない、比較器２０により外部からデータ入出力端子４２へ入力されているデータとの比較を行なう。そして、一致すると書込み読出し制御回路３４は外部へ書込み終了信号ＷＦを出力して、一つのアドレスに対するデータの書込み動作が終了する（ステップＳ１６）。外部の制御回路は、上記書込み終了信号ＷＦを受けると次のアドレス信号を生成してアドレス入力端子４１へ入力する。これに応じて、再び図７の書込み制御フローがステップＳ１から開始され、次のアドレスに対する書込み処理が実行される。
【００５６】
上記のように、この実施例においては、データ書込み後に当該書込みデータを読み出して判定し、誤りがあればアドレスを更新して次のアドレス位置にデータを書き込むようにしている。これによって、メモリアレイ１１内に欠陥があっても自動的にそのアドレスをとばして次のアドレスにデータが書き込まれることとなる。そのため、この実施例の自己構成回路にあっては、メモリアレイ１１内のすべてのメモリセルが正常である必要がないのみならず、事前にメモリアレイに不良ビットがないかテストする必要もないという利点を有している。
【００５７】
なお、上記実施例では、メモリアレイ１１に欠陥があるか否か判定して書込みを行なう場合について説明したが、図６において自己構成マトリックス３０のセンスアンプ３３の出力信号線を、メモリ回路１０のアドレスデコーダ１２のみならず図２の比較器２０へも供給可能に構成しておく。そして、上記と同様にしてメモリアレイ３１への書込みデータの正常／異常を判定して、異常の場合にはアドレスをとばすようにする。これにより、メモリアレイ３１に関しても、すべてのメモリセルが正常である必要がないのみならず、事前にメモリアレイに不良ビットがないかテストする必要もなくなる。
【００５８】
図８には、図２に示されている自己構成回路により構成される論理回路の一例としてのフリップフロップ回路の一例とそのＨＤＬ記述が示されている。図８（Ａ）のフリップフロップ回路は、２つのＮＡＮＤゲート回路Ｇ１１，Ｇ１２の各出力端子が他方のＮＡＮＤゲート回路の一方の入力端子に接続されている。
【００５９】
このフリップフロップ回路を構成する２つのＮＡＮＤゲート回路Ｇ１１，Ｇ１２の入力信号に対応する出力信号状態を表わす真理値表は、図９のようになる。図９において、Ａ1，Ａ2はメモリ回路１０に入力に対応して記憶される前述のアクティブビットで、このアクティブビットが“１”のときだけフリップフロップの出力値は対応するＮＡＮＤゲートの真理値データを出力することを意味する。
【００６０】
図８（Ａ）に示すようなフリップフロップ回路を、図２の自己構成回路を用いて構成する場合には、先ず、４つの入力信号Ｉｎ０，Ｉｎ１，Ｉｎ２，Ｉｎ３をアドレス入力端子４１よりスイッチマトリックス７０を介して自己構成マトリックス３０に入力する。これとともに、それらの入力信号の組合せに対応した図８に示す真理値表の出力データｄ１，Ａ１，ｄ２，Ａ２をデータ入出力端子４２より入力する。これにより、上記入力信号Ｉｎ０，Ｉｎ１，Ｉｎ２，Ｉｎ３をアドレスとしてメモリ回路１０内のメモリアレイ１１の所定の番地に真理値表の出力データｄ１，Ａ１，ｄ２，Ａ２を書き込まれる。書込みが終了したら、読み出しを行なって正常に書き込まれたか否か判定し、書込みエラーのときはアドレス更新して別の番地に書込みを行なう。
【００６１】
次に、構成しようとするフリップフロップ回路の帰還ループを設定するため、データストレージ６０内の所定のフリップフロップ（例えばＦＦ１，ＦＦ２）に対する状態設定を行なう。具体的には、先ず入力信号Ｉｎ２，Ｉｎ３をそれぞれ「０」に固定して、ＮＡＮＤゲート回路Ｇ１１に着目しその入力信号Ｉｎ０，Ｉｎ１をフリップフロップＦＦ１に保持させたいデータに応じて“０，０”，“１，０”，“０，１”または“１，１”に設定してアドレス入力端子４１より入力する。
【００６２】
すると、図９のａ，ｂ，ｃ，ｄの欄にそれぞれ示されているように、入力信号Ｉｎ２，Ｉｎ３が共に「０」に固定されていると、ＮＡＮＤゲート回路Ｇ１に対応するアクティブビットＡ１として“１”が読み出される。そのため、データストレージ６０のＡＮＤゲートＧ１を通してクロックＣＬＫがフリップフロップＦＦ１に供給される。その結果、そのときの入力信号Ｉｎ０，Ｉｎ１の組合せに応じて“１”または“０”のデータｄ１がフリップフロップＦＦ１に取り込まれる。つまり、フリップフロップＦＦ１の状態が設定される。
【００６３】
次に、入力信号Ｉｎ０，Ｉｎ１をそれぞれ「０」に固定して、ＮＡＮＤゲート回路Ｇ１２に着目しその入力信号Ｉｎ２，Ｉｎ３をフリップフロップＦＦ２に保持させたいデータに応じて“０，０”，“１，０”，“０，１”または“１，１”に設定してアドレス入力端子４１より入力する。
【００６４】
すると、図９のａ，ｅ，ｉ，ｍの欄にそれぞれ示されているように、入力信号Ｉｎ０，Ｉｎ１が共に「０」に固定されていると、ＮＡＮＤゲート回路Ｇ２に対応するアクティブビットＡ２として“１”が読み出される。そのため、データストレージ６０のＡＮＤゲートＧ２を通してクロックＣＬＫがフリップフロップＦＦ２に供給される。その結果、そのときの入力信号Ｉｎ２，Ｉｎ３の組合せに応じて“１”または“０”のデータｄ２がフリップフロップＦＦ２に取り込まれる。つまり、フリップフロップＦＦ２の状態が設定される。
【００６５】
なお、図８に示すような２つのＮＡＮＤゲートからなるフリップフロップは、それぞれの出力信号が他方のＮＡＮＤゲートの一方の入力端子に帰還されているため、出力Ｏｕｔ０，Ｏｕｔ１が同時に“０”となり得ない。従って、上記データストレージ６０のフリップフロップＦＦ１，ＦＦ２の状態を設定する際には、それらの保持状態が共に“０”にならないように留意する必要がある。
【００６６】
上記のようにして、フリップフロップＦＦ１，ＦＦ２を所望の状態に設定した後に、スイッチマトリックス回路７０内の制御情報ＲＡＭ７４内の、図３（Ａ）において点線で囲まれているスイッチＣＳＷ31とＣＳＷ22に対応するメモリセルの記憶データを書き換えて、それらのスイッチを、アドレス入力端子４１側からデータストレージ６０の出力端子側へ切り替える。これによって、図８のフリップフロップの入力信号Ｉｎ１，Ｉｎ２は入力が不許可とされ、代わりにＮＡＮＤゲートＧ１１，Ｇ１２の出力Ｏｕｔ０，Ｏｕｔ１が入力信号（アドレス）として次段の自己構成マトリックス３０に供給されるようになる。つまり、これによって、フリップフロップの帰還ループが構成されたこととなる。
【００６７】
このように図２の実施例の自己構成回路を用いることにより、ＨＤＬ記述された設計データが格納されたファイルから読み出されたＨＤＬ記述に基づいて、対応する論理機能を自己構成回路３００内に構成することができる。
【００６８】
図１０には、図２の実施例の自己構成回路３００を用いＨＤＬ記述に従って所望の論理機能を有する論理回路を構成するシステムの例が示されている。
【００６９】
図１０において、４００は図８に示されているようなＨＤＬ記述された設計データが格納された記憶装置（ファイル）、５００は該ファイル４００に記憶されているＨＤＬ記述を解読して対応する論理機能を自己構成回路３００内に構成するための信号を形成し出力する制御装置である。この制御装置５００は、例えば汎用のマイクロコンピュータを用いて構成することができる。
【００７０】
次に、図１０のシステムにより、図２の実施例の自己構成回路３００を用いて、ファイル４００のＨＤＬ記述に従って図８に示されているような構成のフリップフロップ回路を論理構成する手順を説明する。
【００７１】
先ず、汎用のマイクロコンピュータなどからなる制御装置５００は、ＨＤＬ記述を解読して構成対象がフリップフロップ回路であることを認識し、例えば自己構成回路３００に供給するアドレス信号として図９の真理値表に示されている入力信号Ｉｎ０，Ｉｎ１，Ｉｎ２，Ｉｎ３の組み合わせ“０，０，０，０”，“１，０，０，０”，“０，１，０，０”……“１，１，１，１”を生成する。
【００７２】
そして、この生成したアドレス信号を自己構成回路３００のアドレス入力端子４１へ与える。これとともに、制御装置は、真理値表の出力ｄ１，ｄ２に相当するデータと対応するアクティブビット・データＡ１，Ａ２を、上記各アドレスに対応する書込みデータとして生成して、自己構成回路３００へのアドレス信号の入力と時間的に並行してデータ入出力端子４２へ与える。
【００７３】
すると、自己構成回路３００内では、図７のフローチャートを用いて説明した手順に従ってメモリ回路１０へのデータの書込みを行なう。従って、書込み終了後に、フリップフロップ回路の入力信号Ｉｎ０〜Ｉｎ３を、自己構成回路３００の所定のアドレス入力端子４１へ入力すると、メモリ回路に記憶されている対応するデータ（出力データビットｄ１，ｄ２およびアクティブ・ビットＡ１，Ａ２）が読み出される。そして、先ずアクティブ・ビットＡ１，Ａ２が“１”であるものに対応する出力データが、図４に示されているフリップフロップＦＦｉ（ｉ＝１〜ｎ）に取込まれる。これがスイッチマトリックス６０を介して自己構成マトリックス３０へ供給される。
【００７４】
これによって、前に読み出されたデータに応じて次のデータがメモリ回路１０から読み出され、フリップフロップ回路の出力Ｏｕｔ０，Ｏｕｔ１に相当する信号がデータ入出力端子４２の所定の端子から出力されるようになる。このように、図２の実施例の自己構成回路を使用すると、ＨＤＬ記述に従ったメモリ回路１０へのデータ書込みによりフリップフロップの論理を構成することができ、順序回路を含む所望の論理機能が実現されることとなる。
【００７５】
図１１は、図１に示されているＴＡＰを用いたインタフェース回路２００の具体例を示す。
【００７６】
ＴＡＰは前述したように、ＩＥＥＥ１１４９．１規格で規定されているスキャンテストやＢＩＳＴ回路のためのインタフェースおよび制御回路で、入力ポートからのテストデータを出力ポートへシフトするときに使用するバイパスレジスタ２１１、回路へ特定の信号を伝える場合に使用するデータレジスタ２１２、チップ固有の製造識別番号を設定するためのデバイスＩＤレジスタ２１３、データレジスタの選択や内部のテスト方法を制御する場合に使用するインストラクションレジスタ２１４、ＴＡＰ回路全体を制御するコントローラ２１５等により構成されている。
【００７７】
上記データレジスタ２１２はオプション扱いのレジスタである。また、インストラクションレジスタ２１４に設定される命令には、４つの必須命令と３つのオプション命令が用意されている。コントローラ２１５には、専用の３つの外部端子から、テストモードを指定するためのテストモードセレクト信号ＴＭＳ、テストクロックＴＣＫ、リセット信号ＴＲＳＴが入力されており、これらの信号に基づいて上記レジスタ２１１〜２１４やセレクタ回路２１６〜２１８に対する制御信号を形成する。
【００７８】
また、ＴＡＰにはテストデータＴＤＩの入力端子とテスト結果データＴＤＯの出力端子が設けられており、入力されたテストデータＴＤＩは上記セレクタ回路２１６を介して各レジスタ２１１〜２１４または内部のスキャンパスIscan,Bscanへ供給される。また、レジスタ２１１〜２１４の内容および内部回路からのスキャンアウトデータは、セレクタ回路２１７、２１８を介してチップ外部へ出力される。さらに、ＴＡＰには、データレジスタ２１２とインストラクションレジスタ２１４の内容に従って内部のＢＩＳＴ回路に対する信号が形成されて供給されると共に、ＢＩＳＴ回路から出力されたテスト結果を示す信号がセレクタ回路２１７、２１８を介してチップ外部へ出力可能に構成されている。
【００７９】
図１の実施例のシステムＬＳＩでは、後に詳細に説明されるように自己構成回路３００やＣＰＵ１２０上に構築される自己テスト回路をＢＩＳＴ回路とみなして、上記ＴＡＰ２００の有するＢＩＳＴ回路用の信号入出力機能を利用して、自己構成回路３００やＣＰＵ１２０に対する自己テストのための設定信号やデータを入力したり、テスト結果を出力したりするように構成されている。
【００８０】
なお、図１１において、“Iscan”は内部論理回路を構成するフリップフロップをチェーン状に結合したシフトレジスタをテストデータのスキャンパスとして使用して、内部論理回路の診断を行なうためのテストパスを意味する。また、“Bscan”は信号入出力部（図１のインタフェース回路１８０）内に設けられているフリップフロップをチェーン状に結合したシフトレジスタをスキャンパスとして使用して、他の半導体集積回路との間の接続状態の診断（バウンダリスキャンテスト）を行なうためのテストパスを意味する。ＴＡＰ２００の有するスキャンテストのための機能は、図１の実施例のシステムＬＳＩでは使用しなくてもよい。
【００８１】
このように上記実施例においては、テスト回路の構成やチップ内へのテストプログラムのロードを、ＴＡＰを介して行なうようにしているため、テスト端子が数ピン（４〜５ピン）で良い半導体集積回路装置を実現することが可能となる。すなわち、テスト回路の構成やテストプログラムのロードは、外部システムからの搭載やテストプログラム、テストパターンの搭載を必要としているが、本実施例においてはＴＡＰとして技術的に確立したプロトコルを活用することで実現できる。このＴＡＰは標準化されており、４〜５ピンのテスト端子で命令実行され得るため、本実施例の適用に伴なう端子数の増加は僅かで済み、ＬＳＩのピン数を少なくすることができる。
【００８２】
次に、図１２を用いて、図１の半導体集積回路装置の一例としてのシステムＬＳＩの製造方法の手順を説明する。
まず、ＳＲＡＭ１３０の一部に構成された自己構成回路３００に、メモリのテストパターンを発生するＡＬＰＧをＨＤＬ記述に基づいて構成させる（ステップＳｌ０１）。それにより、ＳＲＡＭ１３０および他のＳＲＡＭ１４０をテストする（ステップＳ１０２）。このＳＲＡＭ１３０，１４０のテストの結果を判定し（ステップＳ１０３）、不良であれば、その製品は不良として不良信号を生成し（ステップＳ１０４）、外部のテスタに認知させてテストを終了させる。
【００８３】
一方、ＳＲＡＭ１４０のテストの結果、良品と判定されると、自己構成回路３００にロジック回路部分をテストするテスト回路をＨＤＬ記述に基づいて構成するとともに、そのテストパターンを格納するメモリを上記ステップＳ１０２のテストの結果、良品と判定されたＳＲＡＭ１４０に構成して（ステップＳ１０５）、それにテストパターンを記述してユーザロジック回路１１０やＣＰＵｌ２０を検査する（ステップＳ１０６、Ｓ１０７）。このテストで不良であれば、その製品は不良として不良信号を生成し（ステップＳ１０４）、外部のテスタに認知させてテストを終了する。
【００８４】
さらに、ユーザロジック回路１１０やＣＰＵｌ２０のテスト結果、良品と判定されると、自己構成回路３００に、再度、ＡＬＰＧを構成し（ステップＳ１０８）、かつＣＰＵｌ２０にＤＲＡＭ１５０〜１７０の救済アルゴリズムをロードさせて（ステップＳ１０９）、ＡＬＰＧでＤＲＡＭ１５０〜１７０をテストしつつＣＰＵによりビット救済を実施する（ステップＳ１１０）。この時、救済アルゴリズムはＣＰＵｌ２０にロードせずに、テスタ言語から生成される救済アルゴリズムをテスタＨＤＬで記述してそのＨＤＬ記述に基づいて自己構成回路３００にＡＬＰＧと一体に構成して実現しても良い。
【００８５】
そして、ＤＲＡＭ１５０〜１７０のテストで不良かつ救済不可能であれば、その製品は不良と判定して不良信号を生成し（ステップＳ１０４）、外部のテスタに認知させてテストを終了する。一方、良品であれば、自己構成回路３００を通常のＳＲＡＭに再構成し、システムの記憶装置として動作させる（ステップＳ１１１）。なお、自己構成回路３００では自己構成的に不良が除去されているので、テストの必要はない。
【００８６】
以上の方法により、テスト専用の回路をチップ上に設ける必要のないいわゆる「オーバヘッドなしロジックテスト回路」を実現でき、しかも自己構成回路３００はその構成の大部分がもともとＳＲＡＭの構成に類似しているのでＲＡＭへの加工はそのオーバヘッドが微小なものであり、この手法での回路の増加は微小にとどまる。
【００８７】
すなわち、本実施の形態によれば、自己構成回路３００は通常のメモリ回路のアドレスデコーダの前段に自己構成マトリックスを設け、出力には比較器を設けて、この自己構成マトリックスと比較器の動作によって外部システムより所定のアドレッシングを行わせ、所定の書き込み／読み出し動作のできないアドレスは自己構成マトリックスの変更により他のアドレスと置換させることにより不良アドレスを迂回する手法を採っているため、自己構成的に不良が除去されることとなる。そして、この自己構成回路３００のアドレスを入力信号としてメモリ回路１０に所望の論理回路の真理値を記憶させることによって、入力に対して所定の論理を行なった信号を出力させる組み合わせ回路を構成することができる。
【００８８】
さらに、自己構成回路３００には、アドレス入力側に入力とフィードバック信号とを切替え可能なスイッチマトリックス７０を設け、かつデータ出力側にデータストレイジ６０を設けて、時分割で論理を行なうようにし、データストレイジ６０に保持された最初の論理結果をスイッチマトリックス７０を介して入力に帰還させていることにより、メモリ回路１０から出力される論理値が前の状態に依存する順序回路を実現することができる。
【００８９】
以上の説明から、本実施の形態の自己構成回路３００では組み合わせ回路の構成と順序回路の構成が可能であることが分かる。このように、仮想テスタ技術研究よりテスタＨＤＬから構成されるテスト回路は一般の論理回路であり、それは自己構成回路３００で構成され得る。つまり、通常のＳＲＡＭに自己構成マトリックスや比較器、スイッチマトリックス、データストレイジなどの周辺回路を付加することにより、不良を迂回する形でテスト回路を構成することが可能である。しかも、このとき付加される回路はメモリアレイの規模からすると小規模であり、特にデータストレイジ機能などは最近多くなってきたパイプライン構造のＳＲＡＭでは通常搭載されている機能であり、それを利用することで小規模な回路変更のみで実現可能である。
【００９０】
また、これらの回路はウェハのスクライブライン上に構成することによって、ウェハ上では存在していても実際のチップには存在しない形で実現することも可能であり、これによってハードウェアのオーバヘッドを無くすることができる。一般的にスクライブラインにテスト回路全体を構成してテスト容易化する手法は公知であるが、テスト回路の一部を構成させてオーバヘッドを低減することは公知の手法ではない。
【００９１】
さらに、この実施例の自己構成回路３００上には上記したようにテスタＨＤＬで自己構成回路３００上にテスト回路を構成でき、それは外部テスタのテストプログラムが動作可能である。つまり、前述した手法および手順でテスト回路を構成させてチップ上の他の回路をテストし、救済させることができ、最終的に自己構成回路３００を通常のＳＲＡＭとして再構成することによって製品チップの本来の機能を実現することができ、これによってテスト回路を設けたことに伴なうオーバヘッドは微小なものとなる。しかも、この実施例のＳＲＡＭは自己構成マトリックスを備え不良回避機能を有するように構成されているために、このＳＲＡＭ自身のテストは不要となるとともに、自己構成回路３００に他の回路のテスト回路を構成することができ、製品チップ全体のテストを容易化することができる。
【００９２】
なお、前記実施例においては、自己構成回路３００を構成するメモリアレイ１１の不良を自動的に回避して論理を構成できるようにするため、自己構成マトリックス３０を設けているが、メモリアレイに不良を有するチップは不良品として排除するようにするならば、自己構成マトリックス３０や比較器２０を設ける必要はない。その場合、スイッチマトリックス回路７０からの信号は直接メモリ回路１０のアドレスデコーダ１２に供給され、センスアンプ１３とデータストレージ６０とが直接接続されるように構成すればよい。
【００９３】
次に、本発明の第２の実施例を、図１３〜図２０を用いて説明する。このうち図１３は、本発明の第２の実施例を適用したシステムＬＳＩの全体構成を示す。なお、図１３において、図１と同一の回路ブロックには同一の符号を付して重複した説明は省略する。
【００９４】
図１のシステムＬＳＩとの差異は、図１３では１つの半導体チップ上にＳＲＡＭが数個ではなく数十ないし数千個設けられている点と、図１３のＳＲＡＭには自己構成マトリックスや比較器はなく通常のＳＲＡＭにスイッチマトリックスを付加した簡単な構成である点にある。なお、この実施例でいうＳＲＡＭには、レジスタファイルあるいはレジスタセットと呼ばれる数１０〜数百ビットのデータを一時的に記憶する回路が含まれる。
【００９５】
図１４には、半導体チップ上に設けられているＳＲＡＭの構成とそれらの接続関係の例が示されている。
【００９６】
特に制限されるものでないが、この実施例では、縦方向にアドレスバスを構成する複数の配線群ＡＢＬ１〜ＡＢＬ５が、また横方向にデータバスを構成する複数の配線群ＤＢＬ１〜ＤＢＬ５が格子状をなすように配設されている。そして、各格子の目に相当する部位に、通常のＳＲＡＭを構成するメモリアレイ１１とアドレスデコーダ１２とセンスアンプ１３とデータレジスタ１６とからなるメモリ回路１０およびスイッチマトリックス７０が配置されている。データレジスタ１６は、図４に示されているデータストレージような回路でなく、一般的なＳＲＡＭにおいても用いられているような単にデータを保持可能な通常のレジスタでよい。
【００９７】
この実施例では、センスアンプ１３の出力がスイッチマトリックス７０にフィードバックされるように構成されている。また、縦方向の配線群ＡＢＬ１〜ＡＢＬ５と横方向の配線群ＤＢＬ１〜ＤＢＬ５との交差部位には選択的に信号線を結合可能にするスイッチマトリックス回路３１０が設けられている。さらに、各ＳＲＡＭのアドレス入力端子を縦方向配線配線群ＡＢＬ１〜ＡＢＬ５の信号線に選択的に結合するためのスイッチマトリックス回路３２０と、各ＳＲＡＭのデータ入出力端子を横方向配線配線群ＤＢＬ１〜ＤＢＬ５の信号線に選択的に結合するためのスイッチマトリックス回路３３０とが設けられている。スイッチマトリックス回路３１０，３２０，３３０は、ＳＲＡＭ内のスイッチマトリックス回路７０と同様に、図３に例示されているような構成を有するようにされる。
【００９８】
このように、アドレスバスを構成する複数の縦方向配線群ＡＢＬ１〜ＡＢＬ５とデータバスを構成する複数の横方向配線群ＤＢＬ１〜ＤＢＬ５とがその交差部に設けられたスイッチマトリックス回路３１０により接続可能に構成されていることにより、任意の論理を有するように構成されたＳＲＡＭ同士を任意に接続することができ、これにより所望の論理機能を有しかつより規模の大きな論理集積回路を、ＨＤＬ記述に従って構成することが可能となる。
【００９９】
次に、図１４に示されているようなメモリ回路１０とスイッチマトリックス回路７０とからなるＳＲＡＭにより任意の論理を構成できることを証明するため、一例としてＮＡＮＤゲート回路とフリップフロップの構成の仕方を説明する。
【０１００】
図１５（Ａ）はＮＡＮＤゲート回路の論理記号を、（Ｂ）はこのＮＡＮＤゲート回路をメモリ回路で実現する場合のメモリアレイ１１への記憶値を、（Ｃ）は入力信号Ａ０，Ａ１とそれによって選択されるメモリアレイの番地との関係をそれぞれ示す。
【０１０１】
図１４のＳＲＡＭによりＮＡＮＤゲート回路を実現する場合には、予めデータの書込み処理を行なって図１５（Ｂ）に示されているように、メモリアレイ１１の０番地、１番地および２番地にそれぞれデータ“１”を記憶させ、３番地にデータ“０”を記憶させておく。このようにすれば、このＳＲＡＭはアドレス信号Ａ０，Ａ１として “０，０”，“１，０”，“０，１”，“１，１”が入力されたときに、図１５（Ｃ）に示すように“１”，“１”，“１”，“０”がそれぞれ出力される。図１５（Ｃ）を見れば、これは図１５（Ａ）のＮＡＮＤゲート回路の真理値表を表わしていることが分かる。つまり、ＳＲＡＭによってＮＡＮＤゲート回路が構成される。
【０１０２】
同様にして、メモリアレイ１１の０番地、１番地および２番地にそれぞれデータ“０”を記憶させ、３番地にデータ“１”を記憶させておけばＡＮＤゲート回路が、メモリアレイ１１の０番地にデータ“０”を記憶させ、１番地、２番地および３番地にそれぞれデータ“１”を記憶させておけばＯＲゲート回路が実現される。このようにして、メモリアレイ１１に記憶させるデータを変えることでＳＲＡＭによって任意の２入力論理を構成することができる。さらに、アドレス信号Ａ０〜Ａ２に対応する０番地〜７番地に所定のデータを記憶させておくことで、ＳＲＡＭによって任意の３入力論理を実現することができる。
【０１０３】
図１６（Ａ）はＤ型フリップフロップ回路の論理記号を、（Ｂ）はこのフリップフロップ回路をメモリ回路で実現する場合のメモリアレイ１１への記憶値を、（Ｃ）は（Ｂ）の等価回路をそれぞれ示す。また、図１７はＳＲＡＭでフリップフロップを構成する場合における入力信号Ａ０，Ａ１，Ａ２とそれによって選択されるメモリアレイの番地との関係を、図１８は図１６のフリップフロップ回路をラッチ動作させる際の入出力信号のタイミングをそれぞれ示す。なお、図１６（Ｃ）において、ＤＬＹは遅延素子を表わしており、これはセンスアンプ１３からスイッチマトリックス回路７０へのフィードバック経路上における遅延に相当する。メモリ回路のデコーダ１２からセンスアンプ１３の出力までの遅延時間が非常に短いとき（例えばアドレス信号Ａ０，Ａ１のずれよりも小さいようなとき）は、フィードバック経路に積極的に遅延素子をつけてタイミングを調整して、誤動作を防止するようにしてもよい。
【０１０４】
実施例において、ＳＲＡＭによりフリップフロップ回路を実現する場合には、予めデータの書込み処理を行なって図１７に示されているように、メモリアレイ１１の０番地、１番地、２番地および５番地にそれぞれデータ“０”を記憶させ、３番地、４番地、６番地および７番地にそれぞれにデータ“１”を記憶させておく。このようにした状態で、このＳＲＡＭに図１８に示すようなタイミングでアドレス信号Ａ０，Ａ１を入力させると、メモリアレイ１１からの読出しデータＤ０のフィードバック信号Ａ２とＡ０，Ａ１によって対応する番地のデータが読み出される。図１７を見れば、これは図１６（Ａ）のフリップフロップ回路の真理値表を表わしていることが分かる。つまり、ＳＲＡＭによってフリップフロップ回路を構成することができる。
【０１０５】
同様にして、メモリアレイ１１の第１列に上記記憶データの反転データを記憶させておくことで反転出力／Ｑが出力されるフリップフロップを、またメモリアレイ１１の第２列に第１の列のデータの反転データを記憶させておくことで、非反転出力Ｑと共に反転出力／Ｑが出力されるフリップフロップを構成することができる。さらに、アドレス信号を増やしてセット端子付きのフリップフロップやリセット端子付きのフリップフロップを実現することも可能である。
【０１０６】
図１９には、上記ＳＲＡＭを構成するメモリアレイ１１の具体例を示す。同図に示すように、メモリアレイ１１は、平行な複数のワード線ＷＬ１，ＷＬ２……と、該ワード線とほぼ直行する方向に配設された複数の相補データ線対ＤＬ１，／ＤＬ１；ＤＬ２，／ＤＬ２……と、ワード線ＷＬ１，ＷＬ２……と相補データ線対ＤＬ１，／ＤＬ１；ＤＬ２，／ＤＬ２……の各交点に配置された複数のメモリセルＭＣとを含んで構成される。特に制限されるものでないが、メモリセルＭＣは、互いに入力端子と出力端子とが交差結合された２個のインバータを構成する４個のＭＯＳＦＥＴ  Ｑ１，Ｑ２，Ｑ３，Ｑ４とこれらのインバータの出力端子と相補データ線ＤＬ，／ＤＬとの間にソース・ドレインが接続されゲートがワード線に接続された一対の選択用ＭＯＳＦＥＴ  Ｑ４５，Ｑ６の計６個の素子により構成されている。
【０１０７】
次に、図２０を用いて、図１３のシステムＬＳＩの製造方法の手順を説明する。
まず、ＬＳＩチップ上の一部のＳＲＡＭ１３０を用いて他のＳＲＡＭをテストするテストパターンを発生するＡＬＰＧをＨＤＬ記述に基づいて構成させる（ステップＳｌ０１）。それにより、他のＳＲＡＭ１３０をテストする（ステップＳ１０２）。そして、このＳＲＡＭ１３０のテストの結果を判定し（ステップＳ１０３）、不良であればその製品は不良として不良信号を生成し（ステップＳ１０４）、外部のテスタに認知させてテストを終了させる。
【０１０８】
一方、ＳＲＡＭ１３０のテストの結果、良品と判定した場合には、一部のＳＲＡＭと他のＳＲＡＭを用いてロジック回路部分をテストするテスト回路をＨＤＬ記述に基づいて構成するとともに、そのテストパターンを格納するメモリを上記ステップＳ１０２のテストで良品と判定されたＳＲＡＭ１３０に構成して（ステップＳ１０５）、それにテストパターンを記述してユーザロジック回路１１０やＣＰＵｌ２０を検査する（ステップＳ１０６、Ｓ１０７）。このテストで不良であれば、その製品は不良として不良信号を生成し（ステップＳ１０４）、外部のテスタに認知させてテストを終了する。
【０１０９】
さらに、ユーザロジック回路１１０やＣＰＵｌ２０のテストで良品と判定された場合には、一部のＳＲＡＭにＤＲＡＭのテストパターンを生成するＡＬＰＧを構成して（ステップＳ１０８）、かつ他のＳＲＡＭを用いてそのテスト結果を格納するフェールメモリを構成する（ステップＳ１０８ａ）。それから、ＣＰＵｌ２０にＤＲＡＭ１５０の救済アルゴリズムをロードさせて（ステップＳ１０９）、ＡＬＰＧでＤＲＡＭ１５０をテストしつつＣＰＵによりビット救済を実施する（ステップＳ１１０）。
【０１１０】
そして、ＤＲＡＭ１５０のテストで不良かつ救済不可能であれば、その製品は不良として不良信号を生成し（ステップＳ１０４）、外部のテスタに認知させてテストを終了する。一方、テストの結果、良品と判定された場合には、テスト回路を構成したＳＲＡＭを通常のＳＲＡＭに再構成し、システムの記憶装置として動作させる（ステップＳ１１１）。
【０１１１】
以上の方法により、テスト専用の回路をチップ上に設ける必要のないいわゆる「オーバヘッドなしロジックテスト回路」を実現でき、テスト回路を構成するＳＲＡＭはその構成の大部分がもともとＳＲＡＭの構成に類似しているのでＲＡＭへの加工はそのオーバヘッドが微小なものであり、この手法での回路の増加は微小にとどまる。
【０１１２】
以上、システムＬＳＩを例にとって説明したが、図１３に示すようなシステムが複数のＬＳＩにより１つのプリント基板上に構成されたシステムである場合にも本発明を適用することができ、これによって同様な効果を得ることができる。
【０１１３】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、前記実施例のような自己構成回路構造のＳＲＡＭを単にテスト回路を構成するための部位として利用することに限られるものでなく、製品チップでのエミュレーションを行なう機能を実現するための部位として活用が可能である。
【０１１４】
また、前記実施例においては、自己構成型のメモリとしてＳＲＡＭを用いたが、フラッシュメモリのような不揮発性メモリを用いることも可能である。さらに、前記実施例においては、自己構成回路３００をＳＲＡＭ１３０の一部に設けたが、ＳＲＡＭ１３０全体を自己構成型のＳＲＡＭとすることも可能である。さらに、ＳＲＡＭ１３０のアドレスデコーダを分割可能な構成すなわちメモリとして動作するときは例えば２０ビットのアドレス信号によって選択動作し、論理回路として動作するときは２０ビットのうちいずれかの２ビットあるいは数ビットの入力信号によりそれぞれ論理出力値を出力するように構成することができる。
【０１１５】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシステムＬＳＩに適用した場合について説明したが、本発明はそれに限定されるものでなく、メモリ回路（レジスタを含む）を内蔵した半導体集積回路に広く利用することができる。
【０１１６】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【０１１７】
すなわち、本発明に従うと、ＳＲＡＭのような記憶回路を備えた半導体集積回路装置において、ＳＲＡＭにテスト回路を構成して他の回路のテストを行ない、テスト後はそのＳＲＡＭを通常のＳＲＡＭとして動作させることができるので、テスト回路を搭載することに伴なうハードウェアのオーバヘッドの小さな半導体集積回路装置を実現することが可能となる。すなわち、チップに搭載される自己構成型ＳＲＡＭは、その構成が通常のＳＲＡＭに対して微小の改良にて実現できるものであり、そのオーバヘッドは微小にとどまり、かつＳＲＡＭとしての動作を阻害するものではない。このため、製品チップのテストを終了させた後、その製品のＳＲＡＭとして動作可能であり、テスト回路は最終的にチップ上に残らず、テスト回路のためのオーバヘッドが少ない半導体集積回路装置を実施できる。
【０１１８】
また、本発明においては、自己構成型の記憶回路としてのＳＲＡＭにＨＤＬ記述に基づいてテスト回路を構成できるため、チップ内へのテスト回路の構築をコンピュータを用いて容易に行なうことができるとともに、通常のテスタで使用されているテストプログラムが使用可能となり、テスト回路のためのデバッグが不要となるので、テスト設計の工数を大幅に低減できる半導体集積回路装置を実現することが可能となる。
【０１１９】
さらに、テスト回路を構成する自己構成型のＳＲＡＭに、可変アドレ回路としての自己構成マトリックスを設けることによって不良を迂回した形で回路を構成することができるので、不良被爆に強い半導体集積回路装置を実現することが可能となる。
【図面の簡単な説明】
【図１】本発明を適用したシステムＬＳＩの一実施例を示すブロック図である。
【図２】図1のＳＲＡＭ１３０の一部に設けられている自己構成回路の一構成例を示すブロック図である。
【図３】図２の実施例の自己構成回路に含まれるスイッチマトリックス７０の具体例を示す回路構成図である。
【図４】データストレージ回路６０の具体例を示す回路構成図である。
【図５】比較器２０の具体例を示す回路構成図である。
【図６】自己構成マトリックス３０の具体例を示す回路構成図である。
【図７】実施例の自己構成回路における変換アドレスの変更の手順の一例を示すフローチャートである。
【図８】図２に示されている自己構成回路により構成される論理回路の一例としてのフリップフロップ回路の構成図とそのＨＤＬ記述の例を示す説明図である。
【図９】図８（Ａ）のフリップフロップの真理値表を示す説明図である。
【図１０】図２の実施例の自己構成回路３００を用いＨＤＬ記述に従って所望の論理機能を有する論理回路を構成するシステムの例を示すブロック図である。
【図１１】図１に示されているＴＡＰを用いたインタフェース回路２００の具体例を示すブロック図である。
【図１２】図１の半導体集積回路装置の一例としてのシステムＬＳＩの製造方法の手順を示すフローチャートである。
【図１３】本発明を適用したシステムＬＳＩの他の実施例を示すブロック図である。
【図１４】図１３の実施例における半導体チップ上に設けられているＳＲＡＭの構成とそれらの接続関係を示す回路構成図である。
【図１５】図１３に示されているＳＲＡＭにより構成される論理回路の一例としてのフリップフロップ回路の論理記号図および論理構成図、アドレス信号と指定番地との関係を示す説明図である。
【図１６】図１３に示されているＳＲＡＭにより構成される論理回路の一例としてのフリップフロップ回路の論理記号図および論理構成図と等価回路図である。
【図１７】図１６のフリップフロップ回路におけるアドレス信号と指定番地との関係を示す説明図である。
【図１８】図１６のフリップフロップ回路における入出信号のタイミングを示すタイミングチャートである。
【図１９】図１３に示されているＳＲＡＭの具体的な回路例を示す回路図である。
【図２０】図１３のシステムＬＳＩの製造方法の手順を示すフローチャートである。
【符号の説明】
１００  半導体チップ
１１０  カスタム論理回路（ユーザ論理）
１２０  ＣＰＵ（中央処理ユニット）
１３０，１４０  スタティックＲＡＭ（ランダム・アクセス・メモリ）
１５０〜１７０  ダイナミックＲＡＭ
１８０  インタフェース回路
１９０  内部バス
２００  ＴＡＰ（テスト用インタフェース回路）
１０    メモリ回路
１１    メモリアレイ
１２    アドレスデコーダ
１３    センスアンプ
１４    書込み読出し制御回路
２０    比較器
３０    自己構成マトリックス
６０    データストレージ
７０    スイッチマトリックス
３１０  スイッチマトリックス
３２０  スイッチマトリックス
３３０  スイッチマトリックス
【図１】
0003980827.tif 000002
【図２】
0003980827.tif 000003
【図３】
0003980827.tif 000004
【図４】
0003980827.tif 000005
【図５】
0003980827.tif 000006
【図６】
0003980827.tif 000007
【図７】
0003980827.tif 000008
【図８】
0003980827.tif 000009
【図９】
0003980827.tif 000010
【図１０】
0003980827.tif 000011
【図１１】
0003980827.tif 000012
【図１２】
0003980827.tif 000013
【図１３】
0003980827.tif 000014
【図１４】
0003980827.tif 000015
【図１５】
0003980827.tif 000016
【図１６】
0003980827.tif 000017
【図１７】
0003980827.tif 000018
【図１８】
0003980827.tif 000019
【図１９】
0003980827.tif 000020
【図２０】
0003980827.tif 000021