(57)【要約】  【課題】  テスト端子の数を削減する。  【解決手段】  ユーザが使用するユーザロジック回路２０と、そのユーザロジック回路２０に対するテストモード選択信号ＴＭを生成するテストモード生成回路３０を有する半導体集積回路である。テストモード生成回路３０は、テスト端子１１に印加されたテスト信号Ｔ０のアサート期間だけクロックＣＬＫをカウントアップするテスト用カウンタ３１と、そのテスト用カウンタ３１の最終カウント値Ｃ０によってテストモード選択信号ＴＭを生成するテストモードデコーダ３３と、リセット信号ＲＳＴＮがクロック信号ＣＬＫのクロック数「Ｌ＋Ｎ」（Ｌはユーザロジック回路２０がリセット信号ＲＳＴＮによりリセットされるに要する前記クロック信号ＣＬＫのクロック数、Ｎは１以上の任意の整数）の期間だけアサートされるとテスト用カウンタ３１をリセットするリセット信号生成回路３２を持つ。【選択図】  図１
2005274357.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが使用する通常回路と、該通常回路に対するテストモード選択信号を生成するテストモード生成回路を有する半導体集積回路であって、
前記テストモード生成回路は、テスト端子に印加されたテスト信号のアサート期間の長短に応じて前記テストモード選択信号を生成することを特徴とする半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
前記テストモード生成回路は、前記テスト信号のアサート期間中クロック信号をカウントアップするテスト用カウンタと、該テスト用カウンタの最終カウント値をデコードするテストモードデコーダとを具備し、該テストモードデコーダによって前記テストモード選択信号を生成することを特徴とする半導体集積回路。
【請求項３】
請求項２に記載の半導体集積回路において、
前記テストモード生成回路は、リセット信号によって前記テスト用カウンタをリセットするリセット信号生成回路を有することを特徴とする半導体集積回路。
【請求項４】
請求項３に記載の半導体集積回路において、
前記リセット信号生成回路は、前記リセット信号が前記クロック信号のクロック数「Ｌ＋Ｎ」（Ｌは前記通常回路が前記リセット信号によりリセットされるに要する前記クロック信号のクロック数、Nは１以上の任意の整数）の期間だけアサートされると前記テスト用カウンタをリセットすることを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストモード設定のための端子数の削減を図った半導体集積回路（ＬＳＩ）に関するものである。
【背景技術】
【０００２】
半導体集積回路のテストにおいては、一般的に、ユーザが使用する通常モードとは別にテストモードが用意される。テストモードは、通常モードとは独立して排他的に用意される必要があり、通常はテスト端子によって設定される。
【０００３】
例えばテスト端子としてテストモード／通常モード切替端子が１本（Ｔ０とする）とテスト設定端子が１本（Ｔ１とする）存在した場合、端子Ｔ０とＴ１の組合せにより、図４(a)に示すように、３通りの動作モードを設定可能であり、図５(a)に示す論理ゲートＧ１，Ｇ２からなるデコーダでそれらの各動作モードを設定できる。
【０００４】
また、上記と同様に２本のテスト端子の設定値をデコードすることにより、図４(b)に示すように、４通りの動作モードを設定可能であり、図５(b)に示す論理ゲートＧ３〜Ｇ５からなるデコーダでそれらの動作モードを設定できる。
【０００５】
以上のように、一般的にテスト端子がｎ本存在すると、上記のようなデコーダにより設定可能な動作モード数は２nとなる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、近年の半導体集積回路の微細化、高集積化により同一チップ上に様々な回路部品やＩＰ（機能ブロック）等が集積されるようになり、それに伴ってより多くのテストモードが必要とされてきている。しかし、上記したように、多数のテストモードを設定するには多くのテスト端子を必要とし、限られた端子数の中で多くのテストモードを用意するのが困難となりつつある。
【０００７】
本発明の目的は、テスト端子の数を削減しながらも設定可能なテストモードの数を飛躍的に増大できるようにした半導体集積回路を提供することである。
【課題を解決するための手段】
【０００８】
請求項１にかかる発明は、ユーザが使用する通常回路と、該通常回路に対するテストモード選択信号を生成するテストモード生成回路を有する半導体集積回路であって、前記テストモード生成回路は、テスト端子に印加されたテスト信号のアサート期間の長短に応じて前記テストモード選択信号を生成することを特徴とする。
【０００９】
請求項２にかかる発明は、請求項１に記載の半導体集積回路において、前記テストモード生成回路は、前記テスト信号のアサート期間中クロック信号をカウントアップするテスト用カウンタと、該テスト用カウンタの最終カウント値をデコードするテストモードデコーダとを具備し、該テストモードデコーダによって前記テストモード選択信号を生成することを特徴とする。
【００１０】
請求項３にかかる発明は、請求項２に記載の半導体集積回路において、前記テストモード生成回路は、リセット信号によって前記テスト用カウンタをリセットするリセット信号生成回路を有することを特徴とする。
【００１１】
請求項４にかかる発明は、請求項３に記載の半導体集積回路において、前記リセット信号生成回路は、前記リセット信号が前記クロック信号のクロック数「Ｌ＋Ｎ」（Ｌは前記通常回路が前記リセット信号によりリセットされるに要する前記クロック信号のクロック数、Ｎは１以上の任意の整数）の期間だけアサートされると前記テスト用カウンタをリセットすることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、テスト端子に入力するテスト信号のアサート期間の長短を制御することによって、各種テストモードを設定可能であるので、半導体集積回路の各種テストモード設定に際し必要とされるテスト端子の数を大幅に削減することが可能となる。
【発明を実施するための最良の形態】
【００１３】
本発明では、通常の半導体集積回路には必ず設けられるクロック端子とリセット端子を利用し、テスト用カウンタを設けることによって、テスト端子数を削減する。テスト用カウンタはテスト端子の信号がアサート（有効状態）されている期間のクロック数をカウントし、テスト端子がネゲート（無効状態）されるとそのカウントを停止して、その値を保持しつづける。テスト用カウンタに保持されたカウント値はテストモードデコーダによってデコードされ、これによってテストモードがいずれかのモードに決定される。テスト用カウンタのビット数ｍは、必要とされるテストモード数によって決定する。例えば、必要なテストモード数をａとすると、
ｍ＞log2ａ
を満たす最小の整数ｍになる。
【００１４】
また本発明では、テストモードを変更せずに通常回路を初期化する場合、およびテストモードを含めて回路全体を初期化する場合を考慮して、テスト用カウンタへのリセット信号生成回路を設けている。このリセット信号生成回路では、通常回路の初期化に必要なクロック＋数クロック分だけ継続するリセット信号を検知して、テスト用カウンタへのリセット信号を生成する。以下、詳しく説明する。
【実施例】
【００１５】
図１は本発明の１つの実施例の半導体集積回路の要部を示すブロック図である。１０は半導体集積回路、２０は通常回路としてのユーザロジック回路、３０はテストモード生成回路である。テストモード生成回路３０は、テスト用カウンタ３１、そのテスト用カウンタ３１用のリセット信号Ｒ０を生成するカウンタからなるリセット信号生成回路３２、テスト用カウンタ３１のカウント出力値Ｃ０を取り込みデコードしてユーザロジック回路２０に対するテストモード選択信号ＴＭを生成するテストモードデコーダ３３を具備する。半導体集積回路１０はテスト信号Ｔ０を入力するテスト端子１１、クロック信号ＣＬＫを入力するクロック端子１２、リセット信号ＲＳＴＮを入力するリセット端子１３、データ入力端子１４、データ出力端子１５を具備する。テストモード生成回路３０はテスト端子１１、クロック端子１２、リセット端子１３、ユーザロジック回路２０に接続され、ユーザロジック回路２０はクロック端子１２、リセット端子１３、データ入力端子１４、データ出力端子１５に接続されている。
【００１６】
テスト用カウンタ３１の動作波形を図２に示す。テスト用カウンタ３１のビット数は、例えば必要なテストモードの数が６である場合、３ビットとなる。テスト信号Ｔ０がアサートされると、テスト用カウンタ３１はクロック信号ＣＬＫに同期してカウントアップを行う。図２では、テスト信号Ｔ０が３クロック幅アサートされ、最終カウント値Ｃ０が「３」になっていく様子を示している。テスト信号Ｔ０がネゲートされるとカウンタ３１はカウントアップを停止し、そのときのカウント値Ｃ０を保持する。このカウント値Ｃ０がテストモードデコーダ３３でデコードされ、そのデコード信号がテストモード選択信号ＴＭとしてユーザロジック回路２０に取り込まれる。なお、カウント値Ｃ０が保持されているテスト用カウンタ３１の初期化方法については後で述べる。
【００１７】
このように、テスト信号Ｔ０がアサートされている状態になっている期間をテスト用カウンタ３１で測定して、その最終カウント値Ｃ０に応じてテストモードデコーダ３３でテストモード選択信号ＴＭを生成してユーザロジック回路２０にテストモードを設定することにより、従来手法と比較してテスト端子の数を大幅に削減することが可能となる。
【００１８】
この手法は、既に端子数や端子配置が決定している半導体集積回路において、機能追加・修正により更なるテストモードの追加が必要となった場合にも応用可能である。例えば、従来手法によって、図６(a)に示すように、テスト信号Ｔａ、Ｔｂ、Ｔｃを入力する３本のテスト端子で７つのテストモードが存在した半導体集積回路において、改版によりさらに多くのテストモードが必要となったにもかかわらず端子数や配置が変更できないような場合、図６(b)に示すように、３本のテスト信号Ｔａ、Ｔｂ、Ｔｃのうちテスト信号Ｔｃの端子を上記テスト信号Ｔ０の端子として扱い、本実施例によりテスト信号Ｔａ、Ｔｂで設定される３つのテストモードの内の１つにテスト信号Ｔ０のアサート期間で決まるサブテストモードを設けることによって、テストモード数の飛躍的な拡張が可能となる。
【００１９】
次に、テスト用カウンタ３１をリセットするリセット信号生成回路３２について説明する。テスト用カウンタ３１のカウント値Ｃ０によりユーザロジック回路２０があるテストモードに設定されているとき、テストモードを変更せずにユーザロジック回路２０を初期化したい場合と、設定したテストモードを含めて半導体集積回路１０の全体を初期化したい場合が存在する。これらに対応するために、リセット信号生成回路３２でテスト用カウンタ３１のリセットＲ０を制御する。
【００２０】
図３にその波形図を示す。ユーザロジック回路２０に対する初期化信号は、リセット信号ＲＳＴＮである。リセット信号ＲＳＴＮによるユーザロジック回路２０の初期化のために、例えばクロック信号ＣＬＫのＬサイクル分の時間が必要であるとする。リセット信号生成回路３２はリセット信号ＲＳＴＮを検知するとカウントアップを開始し、リセット信号ＲＳＴＮがアサートされている期間中クロック信号ＣＬＫをカウントする。そして「Ｌ＋Ｎ」（Ｎは１以上の任意の整数）個のクロック信号ＣＬＫをカウントした時点でテスト用カウンタ３１のリセット信号Ｒ０をアサートし、そのテスト用カウンタ３１をリセットしてテストモードを初期化する。図３ではＲ０が１サイクル期間アサートされる例を示している。
【００２１】
こうすることにより、設定したテストモードはそのままの状態でユーザロジック回路２０のみを初期化したい場合は、リセット信号ＲＳＴＮをＬサイクルと同じかより長く、且つ「Ｌ＋Ｎ」サイクルより短いクロック期間だけアサートすればよい。したがってＮはあまり小さくない値が好ましい。また、テスト用カウンタ３１とユーザロジック回路２０、つまり半導体集積回路１０の全体を初期化したい場合は、リセット信号ＲＳＴＮを「Ｌ＋Ｎ」サイクルより長くアサートすればよい。
【００２２】
テストモードを変更したい場合は、半導体集積回路１０の全体を初期化した上で再度テスト信号Ｔ０のアサート期間を制御し、所望のテストモードに設定すればよい。さらにユーザロジック回路２０のリセット期間中にテストモードの設定を実施したい場合は、図３のようにＲ０が１サイクル期間アサートされるケースでは、リセット信号ＲＳＴＮをアサートして「Ｌ＋Ｎ＋１」サイクル以上経過後にテスト信号Ｔ０をアサートし、所望のテストモード設定後にリセット信号ＲＳＴＮをネゲートすればよい。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施例の半導体集積回路のブロック図である。
【図２】本発明の実施例の半導体集積回路内のテスト用カウンタのカウント動作の波形図である。
【図３】本発明の実施例の半導体集積回路内のテスト用カウンタのリセット動作の波形図である。
【図４】(a)、(b)は従来のテスト端子を使用する場合のモード数の説明図である。
【図５】(a)、(b)は従来のテスト端子を使用する場合の動作モードデコーダの回路図である。
【図６】(a)、(b)は本発明の実施例の半導体集積回路により動作モードを増大させる説明図である。
【符号の説明】
【００２４】
１０：半導体集積回路、１１：テスト端子、１２：クロック端子、１３：リセット端子、１４：データ入力端子、１５：データ出力端子
２０：ユーザロジック回路（通常回路）
３０：テストモード生成回路、３１：テスト用カウンタ、３２：リセット信号生成回路、３３：テストモードデコーダ
【図１】
2005274357.tif 000003
【図２】
2005274357.tif 000004
【図３】
2005274357.tif 000005
【図４】
2005274357.tif 000006
【図５】
2005274357.tif 000007
【図６】
2005274357.tif 000008