(57)【要約】【課題】複数のトライステート素子がアクティブとなりデータの衝突が発生する故障を検出する。【解決手段】本発明に係るセレクタは、自身の故障を検出するテストモードを有するセレクタであって、データ出力端子１２１と、テスト出力端子１２２と、データ出力端子１２１に出力が接続される第１のトライステート素子１３１と、データ出力端子１２１に出力が接続される第２のトライステート素子１３２と、テストモード時に、データ出力端子１２１の電圧と閾値との大小に応じて、第１の論理値または第２の論理値をテスト出力端子１２２に出力するテスト部とを備え、テスト部は、テストモード時に、第１のトライステート素子１３１がＨレベルの信号を出力しようとし、かつ、第２のトライステート素子１３２がＬレベルの信号を出力しようとした場合に、データ出力端子１２１に現れる中間電位を第１の論理値に変換し、テスト出力端子１２２に出力する。【選択図】図１
2007333538.tif 000002
【特許請求の範囲】
【請求項１】
出力が同一のノードに接続された第１のトライステート素子および第２のトライステート素子のテストを行うテスト回路であって、
テスト出力端子と、
前記ノードの電圧と閾値との大小に応じて、第１の論理値または第２の論理値を前記テスト出力端子に出力するテスト手段とを備え、
前記テスト手段は、前記第１のトライステート素子がＨレベルの信号を前記ノードに出力しようとし、かつ、前記第２のトライステート素子がＬレベルの信号を前記ノードに出力しようとした場合に、前記ノードに現れる中間電位を第１の論理値に変換し、前記第１の論理値を前記テスト出力端子に出力する
ことを特徴とするテスト回路。
【請求項２】
故障を検出するテストモードを有するセレクタであって、
データ出力端子と、
テスト出力端子と、
前記データ出力端子に出力が接続される第１のトライステート素子と、
前記データ出力端子に出力が接続される第２のトライステート素子と、
テストモード時に、前記データ出力端子の電圧と閾値との大小に応じて、第１の論理値または第２の論理値を前記テスト出力端子に出力するテスト手段とを備え、
前記テスト手段は、テストモード時に、前記第１のトライステート素子がＨレベルの信号を前記データ出力端子に出力しようとし、かつ、前記第２のトライステート素子がＬレベルの信号を前記データ出力端子に出力しようとした場合に、前記データ出力端子に現れる中間電位を第１の論理値に変換し、前記第１の論理値を前記テスト出力端子に出力する
ことを特徴とするセレクタ。
【請求項３】
前記テスト手段は、
前記データ出力端子に一端が接続され、テストモード時にオンし、テストモード時以外はオフする半導体スイッチと、
前記半導体スイッチの他端に入力が接続され、前記テスト出力端子に出力が接続されるインバータとを備える
ことを特徴とする請求項２記載のセレクタ。
【請求項４】
前記第１の論理値は、論理値「１」であり、
前記インバータは、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースに電源が接続される第１のｐ型トランジスタと、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースにＧＮＤが接続される第１のｎ型トランジスタとを備え、
前記第１のｐ型トランジスタの駆動能力は、前記第１のｎ型トランジスタの駆動能力より高い
ことを特徴とする請求項３記載のセレクタ。
【請求項５】
前記第１のトライステート素子および前記第２のトライステート素子は、
前記データ出力端子にＨレベルの電圧を供給する第２のｐ型トランジスタと、
前記データ出力端子にＬレベルの電圧を供給する第２のｎ型トランジスタとを備え、
前記第２のｎ型トランジスタの駆動能力は、前記第２のｐ型トランジスタの駆動能力より高い
ことを特徴とする請求項４記載のセレクタ。
【請求項６】
前記第１の論理値は、論理値「０」であり、
前記インバータは、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースに電源が接続される第１のｐ型トランジスタと、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースにＧＮＤが接続される第１のｎ型トランジスタとを備え、
前記第１のｎ型トランジスタの駆動能力は、前記第１のｐ型トランジスタの駆動能力より高い
ことを特徴とする請求項３記載のセレクタ。
【請求項７】
前記第１のトライステート素子および前記第２のトライステート素子は、
前記データ出力端子にＨレベルの電圧を供給する第２のｐ型トランジスタと、
前記データ出力端子にＬレベルの電圧を供給する第２のｎ型トランジスタとを備え、
前記第２のｐ型トランジスタの駆動能力は、前記第２のｎ型トランジスタの駆動能力より高い
ことを特徴とする請求項６記載のセレクタ。
【請求項８】
前記第１の論理値は、論理値「１」であり、
前記インバータは、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースに電源が接続される第１のｐ型トランジスタと、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースにＧＮＤが接続される第１のｎ型トランジスタとを備え、
前記第１のｐ型トランジスタのゲート幅は、前記第１のｎ型トランジスタのゲート幅の４．４倍以上である
ことを特徴とする請求項３記載のセレクタ。
【請求項９】
前記第１のトライステート素子および前記第２のトライステート素子は、
前記データ出力端子にＨレベルの電圧を供給する第２のｐ型トランジスタと、
前記データ出力端子にＬレベルの電圧を供給する第２のｎ型トランジスタとを備え、
前記第２のｐ型トランジスタのゲート幅は、前記第２のｎ型トランジスタのゲート幅の１．１倍以下である
ことを特徴とする請求項８記載のセレクタ。
【請求項１０】
前記第１の論理値は、論理値「０」であり、
前記インバータは、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースに電源が接続される第１のｐ型トランジスタと、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースにＧＮＤが接続される第１のｎ型トランジスタとを備え、
前記第１のｐ型トランジスタのゲート幅は、前記第１のｎ型トランジスタのゲート幅の１．１倍以下である
ことを特徴とする請求項３記載のセレクタ。
【請求項１１】
前記第１のトライステート素子および前記第２のトライステート素子は、
前記データ出力端子にＨレベルの電圧を供給する第２のｐ型トランジスタと、
前記データ出力端子にＬレベルの電圧を供給する第２のｎ型トランジスタとを備え、
前記第２のｐ型トランジスタのゲート幅は、前記第２のｎ型トランジスタのゲート幅の４．４倍以上である
ことを特徴とする請求項１０記載のセレクタ。
【請求項１２】
前記テスト手段は、テストモード時に、前記第１のトライステート素子および前記第２のトライステート素子の出力がハイインピーダンスとなる場合に、前記第１の論理値を前記テスト出力端子に出力する
ことを特徴とする請求項２〜１１のいずれか１項に記載のセレクタ。
【請求項１３】
前記テスト手段は、さらに、
ゲートにテストモード時に論理値「１」となる信号が入力され、ドレインに前記半導体スイッチの他端が接続され、ソースにＧＮＤが接続される第３のｎ型トランジスタを備える
ことを特徴とする請求項４、５、８または９に記載のセレクタ。
【請求項１４】
前記テスト手段は、さらに、
ゲートにテストモード時に論理値「０」となる信号が入力され、ドレインに前記半導体スイッチの他端が接続され、ソースに電源が接続される第３のｐ型トランジスタを備える
ことを特徴とする請求項６、７、１０または１１に記載のセレクタ。
【請求項１５】
請求項２〜１４のいずれか１項に記載の複数のセレクタと、
前記複数のセレクタのうち１以上が前記テスト出力端子に前記第１の論理値を出力する場合に、第２の論理値を出力し、前記複数のセレクタ全てがテスト出力端子に前記第１の論理値と異なる第３の論理値を出力する場合に、前記第２の論理値と異なる第４の論理値を出力する論理回路とを備える
ことを特徴とする半導体集積回路。
【請求項１６】
前記半導体集積回路は、さらに、
データ入力端子が、前記論理回路の出力に接続された、スキャン対象のフリップフロップを備える
ことを特徴とする請求項１５記載の半導体集積回路。
【請求項１７】
故障を検出するテストモードを有するセレクタであって、
データ出力端子と、
テスト出力端子と、
前記データ出力端子に出力が接続される第１のトライステート素子と、
前記データ出力端子に出力が接続される第２のトライステート素子と、
前記データ出力端子に一端が接続され、テストモードであるか否かに応じてオン／オフが切り替わる半導体スイッチと、
前記半導体スイッチの他端に入力が接続され、前記テスト出力端子に出力が接続されるインバータとを備える
ことを特徴とするセレクタ。
【請求項１８】
前記第１の論理値は、論理値「１」であり、
前記インバータは、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースに電源が接続される第１のｐ型トランジスタと、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースにＧＮＤが接続される第１のｎ型トランジスタとを備え、
前記第１のｐ型トランジスタのゲート幅は、前記第１のｎ型トランジスタのゲート幅の４．４倍以上である
ことを特徴とする請求項１７記載のセレクタ。
【請求項１９】
前記第１のトライステート素子および前記第２のトライステート素子は、
前記データ出力端子にＨレベルの電圧を供給する第２のｐ型トランジスタと、
前記データ出力端子にＬレベルの電圧を供給する第２のｎ型トランジスタとを備え、
前記第２のｐ型トランジスタのゲート幅は、前記第２のｎ型トランジスタのゲート幅の１．１倍以下である
ことを特徴とする請求項１８記載のセレクタ。
【請求項２０】
前記第１の論理値は、論理値「０」であり、
前記インバータは、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースに電源が接続される第１のｐ型トランジスタと、
ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースにＧＮＤが接続される第１のｎ型トランジスタとを備え、
前記第１のｐ型トランジスタのゲート幅は、前記第１のｎ型トランジスタのゲート幅の１．１倍以下である
ことを特徴とする請求項１７記載のセレクタ。
【請求項２１】
前記第１のトライステート素子および前記第２のトライステート素子は、
前記データ出力端子にＨレベルの電圧を供給する第２のｐ型トランジスタと、
前記データ出力端子にＬレベルの電圧を供給する第２のｎ型トランジスタとを備え、
前記第２のｐ型トランジスタのゲート幅は、前記第２のｎ型トランジスタのゲート幅の４．４倍以上である
ことを特徴とする請求項２０記載のセレクタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト回路、セレクタおよび半導体集積回路に関し、特に、出力が同一のノードに接続された複数のトライステート素子のテストを行うテスト回路、および、テスト回路を含むセレクタに関する。
【背景技術】
【０００２】
近年の半導体集積回路は、年々高集積化・高速化が進んでおり、それに伴って、構成要素である個々の要素回路にも、容易に故障検出ができることを満たしつつ、高速動作を実現することが、強く求められている。
【０００３】
基本的な要素回路として、セレクタが挙げられるが、高速動作するセレクタとして、古くからトライステート素子を使用したものが知られている。しかしながら、トライステート素子を使用したセレクタには、故障検出が困難になることも同時に知られている。
【０００４】
トライステート素子を使用したセレクタの故障検出が困難になる故障として、構成するトライステート素子のうち、少なくとも１つのトライステート素子の制御信号が故障して、そのトライステート素子の出力が常にハイインピーダンス状態になってしまう故障が発生した場合（すなわち、無選択状態が発生する場合）、および、出力が常にハイインピーダンスでない状態になってしまう場合（すなわち、多重選択が発生する場合）の故障が考えられる。
【０００５】
この問題を解決するために、従来の解決方法としては、特許文献１に記載されている方法が知られている。特許文献１に記載の方法によれば、トライステート素子で構成されたセレクタの出力部分に、スキャンテスト時にのみ出力部分をプルアップまたはプルダウンする機能を有することで、通常動作時のセレクタの速度悪化を最小限に抑えつつ、制御信号が故障して無選択状態になっても、出力が論理「１」または「０」に固定されるため、正しく故障検出をすることができる構成になっている。
【０００６】
以下、図を用いて従来のトライステート素子を用いたセレクタについて説明する。
【０００７】
図７は、前述した特許文献１に示されている従来のセレクタの構成を示す図である。
【０００８】
図７に示すセレクタ１０００は、トライステート素子１００１および１００２と、トランジスタ１００３とを備える。
【０００９】
トライステート素子１００１は、データ選択端子１０２１がアクティブ時に、データ入力端子１０１１の論理値をデータ出力端子１０４０に出力する。また、トライステート素子１００１の出力は、データ選択端子１０２１がノンアクティブ時に、ハイインビーダンス状態となる。同様に、トライステート素子１００２は、データ選択端子１０２２がアクティブ時に、データ入力端子１０１２の論理値を出力する。また、トライステート素子１００２の出力は、データ選択端子１０２２がノンアクティブ時に、ハイインビーダンス状態となる。
【００１０】
トランジスタ１００３は、ＮＭＯＳＦＥＴであり、スキャンモード信号端子１０３１がアクティブの時、データ出力端子１０４０をプルダウンする機能を有する。トランジスタ１００３は、トライステート素子１００１および１００２の駆動能力に比べて十分弱い駆動能力で形成されている。
【００１１】
このような構成を取ることで、データ選択端子１０２１および１０２２のうち少なくとも一方が故障しており、トライステート素子１００１および１００２が共にハイインピーダンスになる場合、スキャンテスト時にはスキャンモード信号端子１０３１がアクティブになっており、トランジスタ１００３は、データ出力端子をプルダウンし、データ出力端子１０４０は論理値「０」を出力する。よって、データ選択端子１０２１および１０２２のうち少なくとも一方が故障した場合にも、スキャンテストによって、故障と判断することが可能となる。
【００１２】
また、通常動作時には、スキャンモード信号端子１０３１がノンアクティブになるので、動作速度への悪影響を最小限に抑えることができる構成になっている。
【特許文献１】特開平１１−５２０１９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、特許文献１に記載のセレクタは、全てのトライステート素子の出力が、ハイインピーダンスとなり、データ出力端子がハイインピーダンスとなる故障は検出することができるが、複数のトライステート素子がアクティブとなりデータの衝突が発生する故障を検出することができない。
【００１４】
そこで、本発明は、複数のトライステート素子がアクティブとなりデータの衝突が発生する故障を検出することのできるテスト回路、セレクタまたは半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明に係るテスト回路は、出力が同一のノードに接続された第１のトライステート素子および第２のトライステート素子のテストを行うテスト回路であって、テスト出力端子と、前記ノードの電圧と閾値との大小に応じて、第１の論理値または第２の論理値を前記テスト出力端子に出力するテスト手段とを備え、前記テスト手段は、前記第１のトライステート素子がＨレベルの信号を前記ノードに出力しようとし、かつ、前記第２のトライステート素子がＬレベルの信号を前記ノードに出力しようとした場合に、前記ノードに現れる中間電位を第１の論理値に変換し、前記第１の論理値を前記テスト出力端子に出力する。
【００１６】
この構成によれば、故障により、複数のトライステート素子の出力が衝突し、中間電位が出力された場合に、第１の論理値が出力される。これにより、第１の論理値と異なる論理値が期待値となる入力パターンに対するテスト回路の出力から、複数のトライステート素子がアクティブとなりデータの衝突が発生する故障を検出することができる。
【００１７】
また、本発明に係るセレクタは、故障を検出するテストモードを有するセレクタであって、データ出力端子と、テスト出力端子と、前記データ出力端子に出力が接続される第１のトライステート素子と、前記データ出力端子に出力が接続される第２のトライステート素子と、テストモード時に、前記データ出力端子の電圧と閾値との大小に応じて、第１の論理値または第２の論理値を前記テスト出力端子に出力するテスト手段とを備え、前記テスト手段は、テストモード時に、前記第１のトライステート素子がＨレベルの信号を前記データ出力端子に出力しようとし、かつ、前記第２のトライステート素子がＬレベルの信号を前記データ出力端子に出力しようとした場合に、前記データ出力端子に現れる中間電位を第１の論理値に変換し、前記第１の論理値を前記テスト出力端子に出力する。
【００１８】
この構成によれば、故障により、第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力し、データ出力端子が中間電位となった場合に、セレクタは、第１の論理値をテスト出力端子に出力する。これにより、第１の論理値と異なる論理値が期待値となる入力パターンに対するテスト出力端子に出力された論理値から、複数のトライステート素子がアクティブとなりデータの衝突が発生する故障を検出することができる。
【００１９】
また、前記テスト手段は、前記データ出力端子に一端が接続され、テストモード時にオンし、テストモード時以外はオフする半導体スイッチと、前記半導体スイッチの他端に入力が接続され、前記テスト出力端子に出力が接続されるインバータとを備えてもよい。
【００２０】
この構成によれば、通常動作時（テストモード時以外）は、半導体スイッチ（例えば、ＮＭＯＳＦＥＴ）がオフするので、データ出力端子に対する負荷容量の増加を低減することができる。すなわち、セレクタの動作速度の低減を抑えることができる。
【００２１】
また、前記第１の論理値は、論理値「１」であり、前記インバータは、ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースに電源が接続される第１のｐ型トランジスタと、ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースにＧＮＤが接続される第１のｎ型トランジスタとを備え、前記第１のｐ型トランジスタの駆動能力は、前記第１のｎ型トランジスタの駆動能力より高くてもよい。
【００２２】
この構成によれば、インバータのスイッチング電位がＶＤＤ／２（ここで、ＶＤＤは電源電圧）より高くなる。これにより、故障により、第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力し、データ出力端子が中間電位となった場合に、論理値「１」を出力することができる。
【００２３】
また、前記第１のトライステート素子および前記第２のトライステート素子は、前記データ出力端子にＨレベルの電圧を供給する第２のｐ型トランジスタと、前記データ出力端子にＬレベルの電圧を供給する第２のｎ型トランジスタとを備え、前記第２のｎ型トランジスタの駆動能力は、前記第２のｐ型トランジスタの駆動能力より高くてもよい。
【００２４】
この構成によれば、第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力する時の、データ出力端子の電位は、ＶＤＤ／２より低くなる。よって、インバータのスイッチング電位をＶＤＤ／２より必要以上に高くしなくても、故障時（第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力する場合）に安定して論理値「１」を出力することができる。また、設計の幅を広げることができる。
【００２５】
また、前記第１の論理値は、論理値「０」であり、前記インバータは、ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースに電源が接続される第１のｐ型トランジスタと、ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースにＧＮＤが接続される第１のｎ型トランジスタとを備え、前記第１のｎ型トランジスタの駆動能力は、前記第１のｐ型トランジスタの駆動能力より高くてもよい。
【００２６】
この構成によれば、インバータのスイッチング電位がＶＤＤ／２（ここで、ＶＤＤは電源電圧）より低くなる。これにより、故障により、第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力し、データ出力端子が中間電位となった場合に、論理値「０」を出力することができる。
【００２７】
また、前記第１のトライステート素子および前記第２のトライステート素子は、前記データ出力端子にＨレベルの電圧を供給する第２のｐ型トランジスタと、前記データ出力端子にＬレベルの電圧を供給する第２のｎ型トランジスタとを備え、前記第２のｐ型トランジスタの駆動能力は、前記第２のｎ型トランジスタの駆動能力より高くてもよい。
【００２８】
この構成によれば、第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力する時の、データ出力端子の電位は、ＶＤＤ／２より高くなる。よって、インバータのスイッチング電位をＶＤＤ／２より必要以上に低くしなくても、故障時（第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力する場合）に安定して論理値「１」を出力することができる。また、設計の幅を広げることができる。
【００２９】
また、前記第１の論理値は、論理値「１」であり、前記インバータは、ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースに電源が接続される第１のｐ型トランジスタと、ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースにＧＮＤが接続される第１のｎ型トランジスタとを備え、前記第１のｐ型トランジスタのゲート幅は、前記第１のｎ型トランジスタのゲート幅の４．４倍以上であってもよい。
【００３０】
この構成によれば、第１のｐ型トランジスタの駆動能力は、第１のｎ型トランジスタの駆動能力の２倍以上になる。これにより、故障により、第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力し、データ出力端子が中間電位となった場合に、論理値「１」を出力することができる。
【００３１】
また、前記第１のトライステート素子および前記第２のトライステート素子は、前記データ出力端子にＨレベルの電圧を供給する第２のｐ型トランジスタと、前記データ出力端子にＬレベルの電圧を供給する第２のｎ型トランジスタとを備え、前記第２のｐ型トランジスタのゲート幅は、前記第２のｎ型トランジスタのゲート幅の１．１倍以下であってもよい。
【００３２】
この構成によれば、第２のｎ型トランジスタの駆動能力は、第２のｐ型トランジスタの駆動能力の２倍以上になる。これにより、第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力する時の、データ出力端子の電位は、ＶＤＤ／２より低くなる。よって、インバータのスイッチング電位をＶＤＤ／２より必要以上に高くしなくても、故障時（第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力する場合）に安定して論理値「１」を出力することができる。また、設計の幅を広げることができる。
【００３３】
また、前記第１の論理値は、論理値「０」であり、前記インバータは、ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースに電源が接続される第１のｐ型トランジスタと、ゲートに前記半導体スイッチの他端が接続され、ドレインに前記テスト出力端子が接続され、ソースにＧＮＤが接続される第１のｎ型トランジスタとを備え、前記第１のｐ型トランジスタのゲート幅は、前記第１のｎ型トランジスタのゲート幅の１．１倍以下であってもよい。
【００３４】
この構成によれば、第１のｎ型トランジスタの駆動能力は、第１のｐ型トランジスタの駆動能力の２倍以上になる。これにより、故障により、第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力し、データ出力端子が中間電位となった場合に、論理値「０」を出力することができる。
【００３５】
また、前記第１のトライステート素子および前記第２のトライステート素子は、前記データ出力端子にＨレベルの電圧を供給する第２のｐ型トランジスタと、前記データ出力端子にＬレベルの電圧を供給する第２のｎ型トランジスタとを備え、前記第２のｐ型トランジスタのゲート幅は、前記第２のｎ型トランジスタのゲート幅の４．４倍以上であってもよい。
【００３６】
この構成によれば、第２のｐ型トランジスタの駆動能力は、第２のｎ型トランジスタの駆動能力の２倍以上になる。これにより、第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力する時の、データ出力端子の電位は、ＶＤＤ／２より高くなる。よって、インバータのスイッチング電位をＶＤＤ／２より必要以上に低くしなくても、故障時（第１のトライステート素子がＨレベルを出力し、第２のトライステート素子がＬレベルを出力する場合）に安定して論理値「１」を出力することができる。また、設計の幅を広げることができる。
【００３７】
また、前記テスト手段は、テストモード時に、前記第１のトライステート素子および前記第２のトライステート素子の出力がハイインピーダンスとなる場合に、前記第１の論理値を前記テスト出力端子に出力してもよい。
【００３８】
この構成によれば、テストモード時に、故障により第１のトライステート素子および第２のトライステート素子の出力がハイインビーダンス状態となった場合に、テスト出力端子に第１の論理値が出力される。これにより、第１の論理値と異なる論理値が期待値となる入力パターンに対するテスト出力端子に出力される論理値から、全てのトライステート素子が非選択となりデータ出力端子がハイインピーダンス状態となる故障を検出することができる。
【００３９】
また、前記テスト手段は、さらに、ゲートにテストモード時に論理値「１」となる信号が入力され、ドレインに前記半導体スイッチの他端が接続され、ソースにＧＮＤが接続される第３のｎ型トランジスタを備えてもよい。
【００４０】
この構成によれば、テストモード時に、故障により第１のトライステート素子および第２のトライステート素子の出力がハイインビーダンス状態となった場合に、第３のｎ型トランジスタにより、データ出力端子およびインバータの入力はプルダウンされる。よって、テスト出力端子より論理値「１」が出力される。これにより、論理値「０」が期待値となる入力パターンに対するテスト出力端子に出力される論理値から、全てのトライステート素子が非選択となりデータ出力端子がハイインピーダンス状態となる故障を検出することができる。
【００４１】
また、前記テスト手段は、さらに、ゲートにテストモード時に論理値「０」となる信号が入力され、ドレインに前記半導体スイッチの他端が接続され、ソースに電源が接続される第３のｐ型トランジスタを備えてもよい。
【００４２】
この構成によれば、テストモード時に、故障により第１のトライステート素子および第２のトライステート素子の出力がハイインビーダンス状態となった場合に、第３のｐ型トランジスタにより、データ出力端子およびインバータの入力はプルアップされる。よって、テスト出力端子より論理値「０」が出力される。これにより、論理値「１」が期待値となる入力パターンに対するテスト出力端子に出力される論理値から、全てのトライステート素子が非選択となりデータ出力端子がハイインピーダンス状態となる故障を検出することができる。
【００４３】
また、本発明に係る半導体集積回路は、複数の前記セレクタと、前記複数のセレクタのうち１以上が前記テスト出力端子に前記第１の論理値を出力する場合に、第２の論理値を出力し、前記複数のセレクタ全てがテスト出力端子に前記第１の論理値と異なる第３の論理値を出力する場合に、前記第２の論理値と異なる第４の論理値を出力する論理回路とを備える。
【００４４】
この構成によれば、複数のセレクタのうち少なくとも１つが第１の論理値を出力した場合に、論理回路は、第２の論理値を出力する。これにより、全てのセレクタの出力が第１の論理値と異なる論理値となる入力パターンを入力し、論理回路の出力をモニタすることで、複数のセレクタに故障しているセレクタが含まれているか否かをテストすることができる。これにより、各セレクタのテスト出力端子を個別にモニタする必要がないので、テストを容易に行うことができる。
【００４５】
また、前記半導体集積回路は、さらに、データ入力端子が、前記論理回路の出力に接続された、スキャン対象のフリップフロップを備えてもよい。
【００４６】
この構成によれば、複数のセレクタに対して、１つのスキャン対象のフリップフロップを設けることで、全てのセレクタの故障を検出することができる。よって、各セレクタに対しスキャン対象のフリップフロップを設ける場合に比べ、スキャン対象のフリップフロップの数を大幅に減らすことができる。これにより、スキャンシフト回数の削減、面積の削減およびクロック負荷の低減を実現することができる。
【発明の効果】
【００４７】
本発明は、複数のトライステート素子がアクティブとなりデータの衝突が発生する故障を検出することのできるテスト回路、セレクタまたは半導体集積回路を提供することができる。
【発明を実施するための最良の形態】
【００４８】
以下、本発明の実施の形態について図面を用いて説明する。
【００４９】
（第１の実施の形態）
本発明の第１の実施の形態に係るセレクタは、データ出力端子が中間電位となった場合に、論理値「１」を出力する回路を備えることで、複数のトライステート素子が同時にアクティブとなる故障を検出することができる。
【００５０】
まず、本発明の第１の実施の形態に係るセレクタの構成を説明する。
【００５１】
図１は本発明の第１の実施の形態に係るセレクタの構成を示す図である。図１に示すセレクタ１００は、自身の故障を検出するテストモードを有する３入力のセレクタである。セレクタ１００は、データ入力端子１０１〜１０３と、データ選択端子１１１〜１１３と、モード選択端子１１４と、データ出力端子１２１および１２２と、トライステートインバータ１３１、１３２および１３３と、トランジスタ１３４と、トランジスタ１３５と、インバータ１４１とを備える。
【００５２】
トライステートインバータ１３１〜１３３の出力は、データ出力端子１２１に接続される。トライステートインバータ１３１は、データ選択端子１１１が「１」の時に、データ入力端子１０１の論理値を反転しデータ出力端子１２１に出力する。また、トライステートインバータ１３１の出力は、データ選択端子１１１が「０」の時に、ハイインビーダンス状態となる。同様に、トライステートインバータ１３２は、データ選択端子１１２が「１」の時に、データ入力端子１０２の論理値を反転しデータ出力端子１２１に出力する。また、トライステートインバータ１３２の出力は、データ選択端子１１２が「０」の時に、ハイインビーダンス状態となる。トライステートインバータ１３３は、データ選択端子１１３が「１」の時に、データ入力端子１０３の論理値を反転しデータ出力端子１２１に出力する。また、トライステートインバータ１３３の出力は、データ選択端子１１３が「０」の時に、ハイインビーダンス状態となる。また、データ出力端子１２１は、通常動作時に用いられる次段の回路に接続される。
【００５３】
トランジスタ１３４は、ＮＭＯＳＦＥＴであり、ゲートにモード選択端子１１４が接続され、ドレインおよびソースのうち一方がデータ出力端子１２１と接続され、ドレインおよびソースのうち他方はインバータ１４１の入力であるノード１２３に接続される。トランジスタ１３４は、テストモードであるか否かに応じてオン／オフが切り替わる。モード選択端子１１４は、テストモード時には「１」となり、通常動作時（テストモード時以外）には「０」となる。すなわち、トランジスタ１３４は、テストモード時にデータ出力端子１２１とノード１２３とが導通状態になり、通常動作時に切断状態になる。また、トランジスタ１３４は、ゲート幅が小さなトランジスタであり、データ出力端子１２１に接続されているドレイン容量が小さくなるようにしてある。
【００５４】
トランジスタ１３５は、ＰＭＯＳＦＥＴであり、ゲートにモード選択端子１１４が接続され、ドレインがノード１２３に接続され、ソースが電源に接続される。トランジスタ１３５は、通常動作時にフローティングノードとなるノード１２３をプルアップする。
【００５５】
インバータ１４１は、ノード１２３に入力が接続され、テスト出力端子１２２に出力が接続される。インバータ１４１は、ノード１２３の論理を反転しテスト出力端子１２２に出力する。すなわち、インバータ１４１は、テストモード時に、データ出力端子１２１の電圧と閾値（インバータ１４１のスイッチング電位）との大小に応じて、論理値「１」または論理値「０」をテスト出力端子１２２に出力する。インバータ１４１は、トランジスタ１３６と、トランジスタ１３７とを備える。また、テスト出力端子１２２は、テストモード時に用いられる次段の回路に接続される。例えば、テスト出力端子１２２は、直接または１以上の論理回路を介して、スキャン対象のフリップフロップと接続される。
【００５６】
トランジスタ１３６は、ＰＭＯＳＦＥＴであり、ゲートがノード１２３に接続され、ドレインがテスト出力端子１２２に接続され、ソースが電源に接続される。トランジスタ１３７は、ＮＭＯＳＦＥＴであり、ゲートがノード１２３に接続され、ドレインがテスト出力端子１２２に接続され、ソースがＧＮＤに接続される。また、トランジスタ１３６の駆動能力は、トランジスタ１３７の駆動能力より高く設定されている。例えば、トランジスタ１３６の駆動能力は、トランジスタ１３７の駆動能力の２倍以上に設定される。すなわち、インバータ１４１のスイッチング電位が１／２×ＶＤＤ（ここで、ＶＤＤは電源電圧）よりも高く設定されている。さらに、インバータ１４１のスイッチング電位は、データ選択端子１１１〜１１３のうちいずれか２つが「１」となりデータ多重選択され、トライステートインバータ１３１〜１３３の出力データが衝突し、データ出力端子１２１が中間電位になる場合にとりうる最大の中間電位よりも高い電位に設定される。
【００５７】
また、トライステートインバータ１３１〜１３３は、「０」を駆動する駆動能力の方が、「１」を駆動する駆動能力より高く設定されている。すなわち、データ選択端子１１１〜１１３のうちいずれか２つが「１」となりデータ多重選択され、データ出力端子１２１の中間電位は、１／２×ＶＤＤより低くなる。例えば、トライステートインバータ１３１〜１３３は、データ出力端子１２１にＨレベルの電圧（論理値「１」）を供給するＰＭＯＳＦＥＴと、データ出力端子１２１にＬレベルの電圧（論理値「０」）を供給するＮＭＯＳＦＥＴとを備え、ＮＭＯＳＦＥＴの駆動能力は、ＰＭＯＳＦＥＴの駆動能力より高く設定される。例えば、ＮＭＯＳＦＥＴの駆動能力は、ＰＭＯＳＦＥＴの駆動能力の２倍以上に設定される。
【００５８】
ここで、インバータ１４１を構成するトランジスタ１３６および１３７の駆動能力の決定方法としては、トランジスタ１３６および１３７のゲート長Ｌを同一として、ゲート幅Ｌを変更する方法を用いることができる。一般に、ゲート長Ｌとゲート幅Ｗの比Ｗ／Ｌが同一の場合には、ＮＭＯＳＦＥＴとＰＭＯＳＦＥＴとの駆動能力の比は、２．２：１程度となる。よって、ＰＭＯＳＦＥＴであるトランジスタ１３６の駆動能力をＮＭＯＳＦＥＴであるトランジスタ１３７の２倍以上の駆動能力に設定するためには、トランジスタ１３６のゲート幅をトランジスタ１３７のゲート幅の４．４倍以上に設定すればよい。また、トライステートインバータ１３１〜１３３を構成するＮＭＯＳＦＥＴの駆動能力をＰＭＯＳＦＥＴの駆動能力の２倍以上にするためには、ＰＭＯＳＦＥＴのゲート幅をＮＭＯＳＦＥＴゲート幅の１．１倍以下にすればよい。
【００５９】
以上の構成により、セレクタ１００は、テストモード時に、故障により、トライステートインバータ１３１〜１３３のうちいずれか１つがＨレベルの信号をデータ出力端子１２１に出力しようとし、かつ、トライステートインバータ１３１〜１３３のうちいずれか１つががＬレベルの信号をデータ出力端子１２１に出力しようとした場合に、データ出力端子１２１に現れる中間電位を論理値「１」に変換し、テスト出力端子１２２に論理値「１」を出力する。
【００６０】
次に、図１に示すセレクタ１００の動作を説明する。
【００６１】
通常動作時には、モード選択端子１１４は「０」が入力され、トランジスタ１３４がオフになり、トランジスタ１３５がオンになることでノード１２３は「１」になり、テスト出力端子１２２からは「０」が出力される。
【００６２】
検査動作時にはモード選択端子１１４は「１」が入力されることでアクティブになり、トランジスタ１３４がオンになり、トランジスタ１３５がオフになることで、データ出力端子１２１とノード１２３とがトランジスタ１３４を介して接続され、データ出力端子１２１の電位に対応した論理値がテスト出力端子１２２から出力される（対応状態に関しては後述する）。
【００６３】
このような構成要素からなるセレクタ１００は、通常、データ選択端子１１１〜１１３のうちの１つの端子のみ「１」（アクティブ）が入力され、他の端子は「０」（ノンアクティブ）が入力される。１つの端子のみアクティブ（ワンホット）の場合には、ワンホットなデータ選択端子に対応したデータ入力端子の論理反転信号が、データ出力端子１２１から出力される。例えば、データ選択端子１１１がワンホットでアクティブな場合は、対応するデータ入力端子１０１の反転信号が選択されてデータ出力端子１２１から出力される。
【００６４】
このようなセクタ１００は、あらかじめデータ選択端子１１１〜１１３の値が確定している場合には、データ入力端子１０１〜１０３からデータ出力端子１２１までにトライステートインバータ１段のみで信号が伝播するため、高速に動作することができる。
【００６５】
以下に、データ選択端子１１１〜１１３自身の１縮退故障、または、データ選択端子１１１〜１１３へ信号を供給する外部の制御回路の故障により、データ選択端子１１１〜１１３のいずれかが１縮退故障相当の故障が発生し、データ多重選択状態になった場合の動作について説明する。ここでは、データ選択端子１１１に１縮退故障が発生して、常にアクティブになってしまう場合について説明するが、データ選択端子１１２または１１３の場合も同様である。
【００６６】
データ入力端子１０１が選択される場合（場合１）、データ選択端子１１１に「１」が入力される。よって、データ選択端子１１１は１縮退故障している場合であっても、故障していない場合と同様に、データ入力端子１０１が選択される。具体的には、データ入力端子１０２および１０３の値にかかわらず、データ入力端子１０１が「１」の場合「０」、「０」の場合「１」がデータ出力端子１２１に出力される。
【００６７】
モード入力信号１１４が「１」であるテストモード時も同様に、あたかも故障していないかのような動作を行う。すなわち、データ入力端子１０１が「１」の場合は、テスト出力端子１２２に「０」が出力され、データ入力端子１０１が「０」の場合は、テスト出力端子１２２に「１」が出力される。よって、データ入力端子１０１が選択される場合のテスト出力端子１２２の論理値から、データ選択端子１１１は１縮退故障を検出することはできない。
【００６８】
データ入力端子１０２が選択される場合（場合２）、データ選択端子１１２は「１」であり、故障によりデータ選択端子１１１は「１」となるので、トライステートインバータ１３１と１３２とのデータ多重選択が発生する。以下に、さらに場合分けをして説明する。
【００６９】
データ入力端子１０２が選択され、データ入力端子１０１に「１」が入力され、かつ、データ入力端子１０２に「１」が入力される場合（場合２．１）、トライステートインバータ１３１および１３２は共に「０」を出力するため、データ出力端子１２１から「０」が出力される。よって、あたかも故障していないかのような動作をする。
【００７０】
モード入力信号１１４が「１」のテストモード時も同様に、あたかも故障していないかのような動作をする。すなわち、故障していない場合と同様に、テスト出力端子１２２から「１」が出力される。よって、データ入力端子１０２が選択され、データ入力端子１０１に「１」が入力され、かつ、データ入力端子１０２に「１」が入力される場合のテスト出力端子１２２の論理値から、データ選択端子１１１の１縮退故障を検出することはできない。
【００７１】
データ入力端子１０２が選択され、データ入力端子１０１に「０」が入力され、かつ、データ入力端子１０２に「０」が入力される場合（場合２．２）、トライステートインバータ１３１および１３２は共に「１」を出力するため、データ出力端子１２１から「１」が出力される。よって、あたかも故障していないかのような動作をする。
【００７２】
モード入力信号１１４が「１」のテストモード時も同様に、あたかも故障していないかのような動作をする。すなわち、故障していない場合と同様に、テスト出力端子１２２から「０」が出力される。よって、データ入力端子１０２が選択され、データ入力端子１０１に「０」が入力され、かつ、データ入力端子１０２に「０」が入力される場合のテスト出力端子１２２の論理値から、データ選択端子１１１の１縮退故障を検出することはできない。
【００７３】
データ入力端子１０２が選択され、データ入力端子１０１に「１」が入力され、かつ、データ入力端子１０２に「０」が入力される場合（場合２．３）、トライステートインバータ１３１は「０」を出力し、トライステートインバータ１３２は「１」を出力するため、データ出力端子１２１から中間電位が出力される。中間電位の信号は、次段の回路のスイッチング電位に依存し、論理値「０」または「１」として伝播する。すなわち、セレクタ自身では、論理値を確定することができない。
【００７４】
モード入力信号１１４が「１」のテストモード時には、トランジスタ１３４を介してインバータ１４１の入力へデータ出力端子１２１の中間電位が伝播される。インバータ１４１は、スイッチング電位がトライステートインバータ１３１〜１３３のうち、いずれか２つがデータ多重選択された場合に、一方が「１」を出力し、他方が「０」を出力しようとして、信号が衝突し中間電位になる場合にとりうる最大の中間電位よりも高い電位に設定されているため、テスト出力端子１２２に「１」を出力する。故障していな場合には、データ入力端子１０２が「０」であるので、データ出力端子１２１に「１」が出力され、テスト出力端子１２２にデータ出力端子１２１の信号の反転信号である「０」が出力される。よって、テスト出力端子１２２に出力される論理値は、故障していない場合と異なる。これにより、データ入力端子１０２が選択され、データ入力端子１０１に「１」が入力され、かつ、データ入力端子１０２に「０」が入力される場合のテスト出力端子１２２の論理値から、データ選択端子１１１の１縮退故障を検出することができる。
【００７５】
データ入力端子１０２が選択され、データ入力端子１０１に「０」が入力され、かつ、データ入力端子１０２に「１」が入力される場合（場合２．４）、トライステートインバータ１３１は「１」を出力し、トライステートインバータ１３２は「０」を出力するため、データ出力端子１２１から中間電位が出力される。中間電位の信号は、次段の回路のスイッチング電位に依存し、論理値「０」または「１」として伝播する。すなわち、セレクタ自身では、論理値を確定することができない。
【００７６】
モード入力信号１１４が「１」のテストモード時には、トランジスタ１３４を介してインバータ１４１の入力へデータ出力端子１２１の中間電位が伝播される。インバータ１４１は、スイッチング電位がトライステートインバータ１３１〜１３３のうち、いずれか２つがデータ多重選択された場合に、一方が「１」を出力し、他方が「０」を出力しようとして、信号が衝突し中間電位になる場合にとりうる最大の中間電位よりも高い電位に設定されているため、テスト出力端子１２２に「１」を出力する。故障していな場合には、データ入力端子１０２が「１」であるので、データ出力端子１２１に「０」が出力され、テスト出力端子１２２にデータ出力端子１２１の信号の反転信号である「１」が出力される。よって、テスト出力端子１２２に出力される論理値は、故障していない場合と同じである。これにより、データ入力端子１０２が選択され、データ入力端子１０１に「１」が入力され、かつ、データ入力端子１０２に「０」が入力される場合のテスト出力端子１２２の論理値から、データ選択端子１１１の１縮退故障を検出することができない。
【００７７】
以上のように、場合２．３（データ入力端子１０２が選択され、データ入力端子１０１に「１」が入力され、かつ、データ入力端子１０２に「０」が入力される場合）のテスト出力端子１２２の論理値から、データ選択端子１１１の１縮退故障を検出することができる。例えば、場合１、２．１、２．２、２．３および２．４のパターンを入力信号として与えて、場合２．３の時のみテスト出力端子１２２の出力が期待値と一致しないということで、データ入力端子１１１が１縮退故障を起こしていることを特定することができる。
【００７８】
なお、説明は省略するが、データ入力端子１０３が選択される場合も、上述したデータ入力端子１０２が選択される場合と同様の動作となる。
【００７９】
また、同様に、データ入力端子１１２および１１３の１縮退故障を特定することもできる。
【００８０】
以上より、本実施の形態に係るセレクタ１００は、故障により中間電位が出力される場合、テストモード時に、中間電位を所定の論理値に確定させ、テスト出力端子１２２に出力することができる。よって、スキャンでテスト出力端子１２２の論理値が期待値と一致するか否かを判定することで、トライステート素子が複数選択される故障を検出することができる。すなわち、本発明に係るセレクタ１００を用いることで、半導体集積回路の故障検出率を向上させることができる。
【００８１】
また、本実施の形態に係るセレクタ１００は、通常動作時は、トランジスタ１３４がオフする。また、トランジスタ１３４は、例えば、ゲート幅を小さくすることで、データ出力端子１２１に対する負荷容量が最小になるように設定されている。これにより、通常動作時には、データ出力端子１２１に対する負荷容量の増加を低減することができる。よって、セレクタ１００の動作速度の減少を抑えることができる。
【００８２】
また、本実施の形態に係るセレクタ１００は、故障によりトライステートインバータ１３１〜１３３の出力が衝突した場合に出力される中間電位が、ＶＤＤ／２より低くなるように設定されている。これにより、インバータ１４１のスイッチング電位をＶＤＤ／２より極端に高く設定する必要がないので、設計を容易に行うことができる。また、設計の幅を広げることができる。
【００８３】
また、本実施の形態に係るセレクタ１００は、データ出力端子１２１とインバータ１４１の入力とのオン・オフを切り替えるスイッチをＮＭＯＳＦＥＴで形成している。これにより、データ出力端子１２１に低い電位（例えば、トランジスタの閾値付近または閾値以下の電位）が出力される場合でも、低い電位の信号をインバータ１４１の入力に伝播することができる。
【００８４】
なお、上記説明において、トライステートインバータ１３１〜１３３が３個の場合について説明したが、トライステートインバータの数は、２以上であればよい。
【００８５】
また、上記説明において、トライステート素子としてトライステートインバータを用いた例を示したが、これに限定されるものではない。例えば、トライステート素子としてトライステートバッファを用いてもよい。
【００８６】
また、上記説明において、トライステート素子は、制御信号が「１」の時にアクティブになる例を示したが、「０」の時にアクティブになるトライステート素子であってもよい。
【００８７】
また、スイッチとして用いているトランジスタ１３４は、ＮＭＯＳＦＥＴとしたが、ＰＭＯＳＦＥＴまたはアナログスイッチ等の半導体スイッチであってもよい。この場合、モード選択信号１１４の論理は、テストモード時にスイッチがオンし、通常動作時にオフするように設定すればよい。
【００８８】
また、上記説明において、セレクタ１００は、ＭＯＳＦＥＴで構成されているが、バイポーラトランジスタ等の他のトランジスタで形成してもよい。
【００８９】
また、上記説明において、データ出力端子１２１から、データ入力端子の反転論理を出力する構成について説明したが、同じ論理を出力する構成にしてもよい。また、上記説明において、テスト出力端子１２２から、データ入力端子と同じ論理を出力する構成について説明したが、反転論理を出力する構成にしてもよい。
【００９０】
また、上記説明において、トライステートインバータ１３１〜１３３の駆動能力は、故障によりデータ出力端子１２１に中間電位を出力する場合に、ＶＤＤ／２より低い値が出力されるように設定されるとしたが、インバータ１４１が故障によりデータ出力端子１２１に出力される中間電位を論理値「１」としてテスト出力端子１２２に出力する構成であれば、トライステートインバータ１３１〜１３３の駆動能力は任意の値でよい。これにより、セレクタ１００の動作速度等を最適化することができる。
【００９１】
また、上記説明において、トライステートインバータ１３１〜１３３を複数備えるセレクタ１００を例に説明したが、出力が同一のノードに接続された複数のトライステート素子のテストに本発明は適用することができる。例えば、トライステート素子の出力が複数接続されるバスの信号およびバスに接続されるトライステート素子をテストする回路にも本発明を応用することができる。
【００９２】
（第２の実施の形態）
上述した本発明の第１の実施の形態では、故障によりデータ出力端子１２１に中間電位が出力された場合に、論理値「１」を出力するセレクタ１００について説明したが、本発明の第２の実施の形態では、故障によりデータ出力端子に中間電位が出力された場合に、論理値「０」を出力するセレクタについて説明する。
【００９３】
まず、本発明の第２の実施の形態に係るセレクタの構成を説明する。
【００９４】
図２は本発明の第２の実施の形態に係るセレクタの構成を示す図である。図２に示すセレクタ２００は、自身の故障を検出するテストモードを有する３入力のセレクタである。セレクタ２００は、データ入力端子２０１〜２０３と、データ選択端子２１１〜２１３と、モード選択端子２１４と、データ出力端子２２１および２２２と、トライステートインバータ２３１、２３２および２３３と、トランジスタ２３４と、トランジスタ２３５と、インバータ２４１とを備える。
【００９５】
第１の実施の形態と同様に、トライステートインバータ２３１〜２３３の出力は、データ出力端子２２１に接続される。トライステートインバータ２３１は、データ選択端子２１１が「１」の時に、データ入力端子２０１の論理値を反転しデータ出力端子２２１に出力する。また、トライステートインバータ２３１の出力は、データ選択端子２１１が「０」の時に、ハイインビーダンス状態となる。同様に、トライステートインバータ２３２は、データ選択端子２１２が「１」の時に、データ入力端子２０２の論理値を反転しデータ出力端子２２１に出力する。また、トライステートインバータ２３２の出力は、データ選択端子２１２が「０」の時に、ハイインビーダンス状態となる。トライステートインバータ２３３は、データ選択端子２１３が「１」の時に、データ入力端子２０３の論理値を反転しデータ出力端子２２１に出力する。また、トライステートインバータ２３３の出力は、データ選択端子２１３が「０」の時に、ハイインビーダンス状態となる。
【００９６】
トランジスタ２３４は、ＰＭＯＳＦＥＴであり、ゲートにモード選択端子２１４が接続され、ドレインおよびソースのうち一方がデータ出力端子２２１と接続され、ドレインおよびソースのうち他方はインバータ２４１の入力であるノード２２３に接続される。トランジスタ２３４は、テストモードであるか否かに応じてオン／オフが切り替わる。モード選択端子２１４は、テストモード時には「０」となり、通常動作時（テストモード時以外）には「１」となる。すなわち、トランジスタ２３４は、テストモード時にデータ出力端子２２１とノード２２３とが導通状態になり、通常動作時に切断状態になる。また、トランジスタ２３４は、ゲート幅が小さなトランジスタであり、データ出力端子２２１に接続されているドレイン容量が小さくなるようにしてある。
【００９７】
トランジスタ２３５は、ＮＭＯＳＦＥＴであり、ゲートにモード選択端子２１４が接続され、ドレインがノード２２３に接続され、ソースがＧＮＤに接続される。トランジスタ２３５は、通常動作時にフローティングノードとなるノード２２３をプルダウンする。
【００９８】
インバータ２４１は、ノード２２３に入力が接続され、テスト出力端子２２２に出力が接続される。インバータ２４１は、ノード２２３の論理を反転しテスト出力端子２２２に出力する。すなわち、インバータ２４１は、テストモード時に、データ出力端子２２１の電圧と閾値（インバータ２４１のスイッチング電位）との大小に応じて、論理値「１」または論理値「０」をテスト出力端子２２２に出力する。インバータ２４１は、トランジスタ２３６と、トランジスタ２３７とを備える。
【００９９】
トランジスタ２３６は、ＰＭＯＳＦＥＴであり、ゲートがノード２２３に接続され、ドレインがテスト出力端子２２２に接続され、ソースが電源に接続される。トランジスタ２３７は、ＮＭＯＳＦＥＴであり、ゲートがノード２２３に接続され、ドレインがテスト出力端子２２２に接続され、ソースがＧＮＤに接続される。また、トランジスタ２３７の駆動能力は、トランジスタ２３６の駆動能力より高く設定されている。例えば、トランジスタ２３７の駆動能力を、トランジスタ２３６の駆動能力の２倍以上に設定する。すなわち、インバータ２４１のスイッチング電位が１／２×ＶＤＤ（ここで、ＶＤＤは電源電圧）よりも低く設定されている。さらに、インバータ２４１のスイッチング電位は、データ選択端子２１１〜２１３のうちいずれか２つが「１」となりデータ多重選択され、トライステートインバータ２３１〜２３３の出力データが衝突し、データ出力端子２２１が中間電位になる場合にとりうる最小の中間電位よりも低い電位に設定される。
【０１００】
また、トライステートインバータ２３１〜２３３は、「１」を駆動する駆動能力の方が、「０」を駆動する駆動能力より高く設定されている。すなわち、データ選択端子２１１〜２１３のうちいずれか２つが「１」となりデータ多重選択され、データ出力端子２２１の中間電位は、１／２×ＶＤＤより高くなる。例えば、トライステートインバータ２３１〜２３３は、データ出力端子２２１にＨレベルの電圧（論理値「１」）を供給するＰＭＯＳＦＥＴと、データ出力端子２２１にＬレベルの電圧（論理値「０」）を供給するＮＭＯＳＦＥＴとを備え、ＰＭＯＳＦＥＴの駆動能力は、ＮＭＯＳＦＥＴの駆動能力より高く設定される。例えば、ＰＭＯＳＦＥＴの駆動能力は、ＮＭＯＳＦＥＴの駆動能力の２倍以上に設定される。
【０１０１】
ここで、インバータ２４１を構成するトランジスタ２３６および２３７の駆動能力の決定方法としては、トランジスタ２３６および２３７のゲート長Ｌを同一として、ゲート幅Ｌを変更する方法を用いることができる。一般に、ゲート長Ｌとゲート幅Ｗの比Ｗ／Ｌが同一の場合には、ＮＭＯＳＦＥＴとＰＭＯＳＦＥＴとの駆動能力の比は、２．２：１程度となる。よって、ＮＭＯＳＦＥＴであるトランジスタ２３７の駆動能力をＰＭＯＳＦＥＴであるトランジスタ２３６の２倍以上の駆動能力に設定するためには、トランジスタ２３６のゲート幅をトランジスタ２３７のゲート幅の１．１倍以下に設定すればよい。また、トライステートインバータ２３１〜２３３を構成するＰＭＯＳＦＥＴの駆動能力をＮＭＯＳＦＥＴの駆動能力の２倍以上にするためには、ＰＭＯＳＦＥＴのゲート幅をＮＭＯＳＦＥＴゲート幅の４．４倍以上にすればよい。
【０１０２】
以上の構成により、セレクタ２００は、テストモード時において、故障により、トライステートインバータ２３１〜２３３のうちいずれか１つがＨレベルの信号をデータ出力端子２２１に出力しようとし、かつ、トライステートインバータ１３１〜１３３のうちいずれか１つががＬレベルの信号をデータ出力端子２２１に出力しようとした場合に、データ出力端子２２１に現れる中間電位を論理値「０」に変換し、テスト出力端子２２２に論理値「０」を出力する。
【０１０３】
次に、図２に示すセレクタ２００の動作を説明する。
【０１０４】
通常動作時には、モード選択端子２１４は「１」が入力され、トランジスタ２３４がオフになり、トランジスタ２３５がオンになることでノード２２３は「０」になり、テスト出力端子２２２からは「１」が出力される。
【０１０５】
検査動作時にはモード選択端子２１４は「０」が入力されることでアクティブになり、トランジスタ２３４がオンになり、トランジスタ２３５がオフになることで、データ出力端子２２１とノード２２３とがトランジスタ２３４を介して接続され、データ出力端子２２１の電位に対応した論理値がテスト出力端子２２２から出力される（対応状態に関しては後述する）。
【０１０６】
このような構成要素からなるセレクタ２００は、通常、データ選択端子２１１〜２１３のうちの１つの端子のみ「１」（アクティブ）が入力され、他の端子は「０」（ノンアクティブ）が入力される。１つの端子のみアクティブ（ワンホット）の場合には、ワンホットなデータ選択端子に対応したデータ入力端子の論理反転信号が、データ出力端子２２１から出力される。例えば、データ選択端子２１１がワンホットでアクティブな場合は、対応するデータ入力端子２０１の反転信号が選択されてデータ出力端子２２１から出力される。
【０１０７】
このようなセクタ２００は、あらかじめデータ選択端子２１１〜２１３の値が確定している場合には、データ入力端子２０１〜２０３からデータ出力端子２２１までにトライステートインバータ１段のみで信号が伝播するため、高速に動作することができる。
【０１０８】
以下に、データ選択端子２１１〜２１３自身の１縮退故障、または、データ選択端子２１１〜２１３へ信号を供給する外部の制御回路の故障により、データ選択端子２１１〜２１３のいずれかが１縮退故障相当の故障が発生し、データ多重選択状態になった場合の動作について説明する。ここでは、データ選択端子２１１に１縮退故障が発生して、常にアクティブになってしまう場合について説明するが、データ選択端子２１２または２１３の場合も同様である。
【０１０９】
データ入力端子２０１が選択される場合（場合１）、データ選択端子２１１に「１」が入力される。よって、データ選択端子２１１は１縮退故障している場合であっても、故障していない場合と同様に、データ入力端子２０１が選択される。具体的には、データ入力端子２０２および２０３の値にかかわらず、データ入力端子２０１が「１」の場合「０」、「０」の場合「１」がデータ出力端子２２１に出力される。
【０１１０】
モード入力信号２１４が「０」であるテストモード時も同様に、あたかも故障していないかのような動作を行う。すなわち、データ入力端子２０１が「１」の場合は、テスト出力端子２２２に「０」が出力され、データ入力端子２０１が「０」の場合は、テスト出力端子２２２に「１」が出力される。よって、データ入力端子２０１が選択される場合のテスト出力端子２２２の論理値から、データ選択端子２１１は１縮退故障を検出することはできない。
【０１１１】
データ入力端子２０２が選択される場合（場合２）、データ選択端子２１２は「１」であり、故障によりデータ選択端子２１１は「１」となるので、トライステートインバータ２３１と２３２とのデータ多重選択が発生する。以下に、さらに場合分けをして説明する。
【０１１２】
データ入力端子２０２が選択され、データ入力端子２０１に「１」が入力され、かつ、データ入力端子２０２に「１」が入力される場合（場合２．１）、トライステートインバータ２３１および２３２は共に「０」を出力するため、データ出力端子２２１から「０」が出力される。よって、あたかも故障していないかのような動作をする。
【０１１３】
モード入力信号２１４が「０」のテストモード時も同様に、あたかも故障していないかのような動作をする。すなわち、故障していない場合と同様に、テスト出力端子２２２から「１」が出力される。よって、データ入力端子２０２が選択され、データ入力端子２０１に「１」が入力され、かつ、データ入力端子２０２に「１」が入力される場合のテスト出力端子２２２の論理値から、データ選択端子２１１の１縮退故障を検出することはできない。
【０１１４】
データ入力端子２０２が選択され、データ入力端子２０１に「０」が入力され、かつ、データ入力端子２０２に「０」が入力される場合（場合２．２）、トライステートインバータ２３１および２３２は共に「１」を出力するため、データ出力端子２２１から「１」が出力される。よって、あたかも故障していないかのような動作をする。
【０１１５】
モード入力信号２１４が「０」のテストモード時も同様に、あたかも故障していないかのような動作をする。すなわち、故障していない場合と同様に、テスト出力端子２２２から「０」が出力される。よって、データ入力端子２０２が選択され、データ入力端子２０１に「０」が入力され、かつ、データ入力端子２０２に「０」が入力される場合のテスト出力端子２２２の論理値から、データ選択端子２１１の１縮退故障を検出することはできない。
【０１１６】
データ入力端子２０２が選択され、データ入力端子２０１に「１」が入力され、かつ、データ入力端子２０２に「０」が入力される場合（場合２．３）、トライステートインバータ２３１は「０」を出力し、トライステートインバータ２３２は「１」を出力するため、データ出力端子２２１から中間電位が出力される。中間電位の信号は、次段の回路のスイッチング電位に依存し、論理値「０」または「１」として伝播する。すなわち、セレクタ自身では、論理値を確定することができない。
【０１１７】
モード入力信号２１４が「０」のテストモード時には、トランジスタ２３４を介してインバータ２４１の入力へデータ出力端子２２１の中間電位が伝播される。インバータ２４１は、スイッチング電位がトライステートインバータ２３１〜２３３のうち、いずれか２つがデータ多重選択された場合に、一方が「１」を出力し、他方が「０」を出力しようとして、信号が衝突し中間電位になる場合にとりうる最小の中間電位よりも低い電位に設定されているため、テスト出力端子２２２に「０」を出力する。故障していな場合には、データ入力端子２０２が「０」であるので、データ出力端子２２１に「１」が出力され、テスト出力端子２２２にデータ出力端子２２１の信号の反転信号である「０」が出力される。よって、テスト出力端子２２２に出力される論理値は、故障していない場合と同じである。これにより、データ入力端子２０２が選択され、データ入力端子２０１に「０」が入力され、かつ、データ入力端子２０２に「１」が入力される場合のテスト出力端子２２２の論理値から、データ選択端子２１１の１縮退故障を検出することができない。
【０１１８】
データ入力端子２０２が選択され、データ入力端子２０１に「０」が入力され、かつ、データ入力端子２０２に「１」が入力される場合（場合２．４）、トライステートインバータ２３１は「１」を出力し、トライステートインバータ２３２は「０」を出力するため、データ出力端子２２１から中間電位が出力される。中間電位の信号は、次段の回路のスイッチング電位に依存し、論理値「０」または「１」として伝播する。すなわち、セレクタ自身では、論理値を確定することができない。
【０１１９】
モード入力信号２１４が「０」のテストモード時には、トランジスタ２３４を介してインバータ２４１の入力へデータ出力端子２２１の中間電位が伝播される。インバータ２４１は、スイッチング電位がトライステートインバータ２３１〜２３３のうち、いずれか２つがデータ多重選択された場合に、一方が「１」を出力し、他方が「０」を出力しようとして、信号が衝突し中間電位になる場合にとりうる最小の中間電位よりも低い電位に設定されているため、テスト出力端子２２２に「０」を出力する。故障していな場合には、データ入力端子２０２が「１」であるので、データ出力端子２２１に「０」が出力され、テスト出力端子２２２にデータ出力端子２２１の信号の反転信号である「１」が出力される。よって、テスト出力端子２２２に出力される論理値は、故障していない場合と異なる。これにより、データ入力端子２０２が選択され、データ入力端子２０１に「０」が入力され、かつ、データ入力端子２０２に「１」が入力される場合のテスト出力端子２２２の論理値から、データ選択端子２１１の１縮退故障を検出することができる。
【０１２０】
以上のように、場合２．４（データ入力端子２０２が選択され、データ入力端子２０１に「０」が入力され、かつ、データ入力端子２０２に「１」が入力される場合）のテスト出力端子２２２の論理値から、データ選択端子２１１の１縮退故障を検出することができる。例えば、場合１、２．１、２．２、２．３および２．４のパターンを入力信号として与えて、場合２．４の時のみテスト出力端子２２２の出力が期待値と一致しないということで、データ入力端子２１１が１縮退故障を起こしていることを特定することができる。
【０１２１】
なお、説明は省略するが、データ入力端子２０３が選択される場合も、上述したデータ入力端子２０２が選択される場合と同様の動作となる。
【０１２２】
また、同様に、データ入力端子２１２および２１３の１縮退故障を特定することもできる。
【０１２３】
以上より、本実施の形態に係るセレクタ２００は、故障により中間電位が出力される場合、テストモード時に、中間電位を所定の論理値に確定させ、テスト出力端子２２２に出力することができる。よって、スキャンでテスト出力端子２２２の論理値が期待値と一致するか否かを判定することで、トライステート素子が複数選択される故障を検出することができる。すなわち、本発明に係るセレクタ２００を用いることで、半導体集積回路の故障検出率を向上させることができる。
【０１２４】
また、本実施の形態に係るセレクタ２００は、通常動作時は、トランジスタ２３４がオフする。また、トランジスタ２３４は、例えば、ゲート幅を小さくすることで、データ出力端子２２１に対する負荷容量が最小になるように設定されている。これにより、通常動作時には、データ出力端子２２１に対する負荷容量の増加を低減することができる。よって、セレクタ２００の動作速度の減少を抑えることができる。
【０１２５】
また、本実施の形態に係るセレクタ２００は、故障によりトライステートインバータ２３１〜２３３の出力が衝突した場合に出力される中間電位が、ＶＤＤ／２より高くなるように設定されている。これにより、インバータ２４１のスイッチング電位をＶＤＤ／２より極端に低く設定する必要がないので、設計を容易に行うことができる。また、設計の幅を広げることができる。
【０１２６】
また、本実施の形態に係るセレクタ２００は、データ出力端子２２１とインバータ２４１の入力とのオン・オフを切り替えるスイッチをＰＭＯＳＦＥＴで形成している。これにより、データ出力端子２２１に高い電位（例えば、（ＶＤＤ−トランジスタの閾値）付近または（ＶＤＤ−トランジスタの閾値）以上の電位）が出力される場合でも、高い電位の信号をインバータ２４１の入力に伝播することができる。
【０１２７】
なお、上記説明において、トライステートインバータ２３１〜２３３が３個の場合について説明したが、トライステートインバータの数は、２以上であればよい。
【０１２８】
また、上記説明において、トライステート素子としてトライステートインバータを用いた例を示したが、これに限定されるものではない。例えば、トライステート素子としてトライステートバッファを用いてもよい。
【０１２９】
また、上記説明において、トライステート素子は、制御信号が「１」の時にアクティブになる例を示したが、「０」の時にアクティブになるトライステート素子であってもよい。
【０１３０】
また、スイッチとして用いているトランジスタ２３４は、ＰＭＯＳＦＥＴとしたが、ＮＭＯＳＦＥＴまたはアナログスイッチ等の半導体スイッチであってもよい。この場合、モード選択信号２１４の論理は、テストモード時にスイッチがオンし、通常動作時にオフするように設定すればよい。
【０１３１】
また、上記説明において、セレクタ２００は、ＭＯＳＦＥＴで構成されているが、バイポーラトランジスタ等の他のトランジスタで形成してもよい。
【０１３２】
また、上記説明において、データ出力端子２２１から、データ入力端子の反転論理を出力する構成について説明したが、同じ論理を出力する構成にしてもよい。また、上記説明において、テスト出力端子２２２から、データ入力端子と同じ論理を出力する構成について説明したが、反転論理を出力する構成にしてもよい。
【０１３３】
また、上記説明において、トライステートインバータ２３１〜２３３の駆動能力は、故障によりデータ出力端子２２１に中間電位を出力する場合に、ＶＤＤ／２より高い値が出力されるように設定されるとしたが、インバータ２４１が故障によりデータ出力端子２２１に出力される中間電位を論理値「０」としてテスト出力端子２２２に出力する構成であれば、トライステートインバータ２３１〜２３３の駆動能力は任意の値でよい。これにより、セレクタ２００の動作速度等を最適化することができる。
【０１３４】
また、上記説明において、トライステートインバータ２３１〜２３３を複数備えるセレクタ２００を例に説明したが、出力が同一のノードに接続された複数のトライステート素子のテストに本発明は適用することができる。例えば、トライステート素子の出力が複数接続されるバスの信号およびバスに接続されるトライステート素子をテストする回路にも本発明を応用することができる。
【０１３５】
（第３の実施の形態）
上述した第１の実施の形態では、トライステートインバータが多重選択される不良を検出するセレクタ１００について説明したが、第３の実施の形態では、トライステートインバータが多重選択される不良を検出する機能に加え、トライステートインバータが無選択となる不良を検出する機能を有するセレクタについて説明する。
【０１３６】
図３は本発明の第３の実施の形態に係るセレクタの構成を示す図である。図３に示すセレクタ３００は、図１に示すセレクタ１００に加えて、モード選択端子３１５と、トランジスタ３３８とを備える。なお、図１と同様の要素には同一の符号を付しており詳細な説明は省略する。
【０１３７】
トランジスタ３３８は、ＮＭＯＳＦＥＴであり、ゲートにモード選択端子３１５が接続され、ドレインにノード１２３が接続され、ソースにＧＮＤが接続される。モード選択端子３１５に印加される信号は、テストモード時に「１」となる信号である。トランジスタ３３８は、モード選択端子３１５が「１」の時に、ノード１２３をプルダウンし、「０」の時に、オフとなる動作を行う。すなわち、モード選択端子３１５が「０」の時には、第１の実施の形態とまったく同じ動作をすることになる。
【０１３８】
ここで、トランジスタ３３８の駆動能力は、トライステートインバータ１３１〜１３３の駆動能力に比べて十分弱く設定されている。また、インバータ１４１は、トライステートインバータ１３１〜１３３のうち、いずれか２つがデータ多重選択された場合に、一方が「１」を出力し、他方が「０」を出力しようとして、信号が衝突した状態で、さらに、トランジスタ１３４およびトランジスタ３３８がオンした状態の、ノード１２３のとりうる最大の中間電位よりも高い電位に、スイッチング電位が設定されている。
【０１３９】
モード選択端子３１５は、モード選択端子１１４が「１」の時にのみ「１」が印加されるように設定しておく。もし、モード選択端子１１４が「０」の時にモード選択端子３１５が「１」になると、同時にトランジスタ１３５とトランジスタ３３８がオンになり、貫通電流が流れ続けるからである。これを防止するために、例えば、モード選択端子１１４とモード選択端子３１５の論理積がトランジスタ３３８のゲートに入力する構成にしてもよい。
【０１４０】
モード選択端子３１５が「１」であり、かつ、トライステートインバータ１３１〜１３３がワンホット状態、または、いずれか２つがデータ多重選択された場合の動作については、第１の実施の形態と同じ動作を行う。これは、インバータ１４１のスイッチング電位が、トライステートインバータ１３１〜１３３のうち、いずれか２つがデータ多重選択された場合に、一方が「１」を出力し、他方が「０」を出力し、さらに、トランジスタ３３８がオンの状態において、ノード１２３がとりうる最大の中間電位よりも高い電位に、設定されているからである。
【０１４１】
すなわち、セレクタ３００は、第１の実施の形態同様、データ選択端子１１１〜１１３の１縮退故障を検出することができるセレクタとなっている。
【０１４２】
次に、データ選択端子１１１〜１１３自身の０縮退故障、または、データ選択端子１１１〜１１３へ信号を供給する外部の制御回路の故障により、データ選択端子１１１〜１１３のいずれかが０縮退故障相当の故障が発生し、データ出力端子１２１がハイインピーダンス状態になった場合の動作について述べる。
【０１４３】
この場合には、モード選択端子１１４および３１５を共に「１」に設定することで、ノード１２３を駆動するのが、トランジスタ３３８のプルダウンのみとなるため、ノード１２３は「０」になり、テスト出力端子１２２から「１」が出力される。例えば、テスト出力端子１２２に「０」が出力されるパターンを入力することで、データ選択端子１１１〜１１３の０縮退故障を検出することができる。
【０１４４】
以上のように、本実施の形態に係るセレクタ３００は、テストモード時に、トライステートインバータ１３１〜１３３の出力が全てハイインピーダンスとなる場合に、論理値「１」をテスト出力端子１２２に出力する。すなわち、本実施の形態に係るセレクタ３００は、データ選択端子１１１〜１１３のいずれかの０縮退故障時のテスト出力端子１２２の状態を定義することができる。よって、データ選択端子１１１〜１１３のいずれかの０縮退故障の故障検出を向上することができる。
【０１４５】
また、第３の実施の形態に係るセレクタ３００は、通常動作時には、トランジスタ１３４がオフとなる。これにより、通常動作時のデータ出力端子１２１に対する負荷容量は、第１の実施の形態に係るセレクタ１００と同程度となる。よって、第３の実施の形態に係るセレクタ３００は、データ出力端子１２１に対する負荷容量を増加させることなく、第１の実施の形態に係るセレクタ１００の機能に加え、データ選択端子１１１〜１１３の０縮退故障を検出することができる。
【０１４６】
なお、上記説明において、モード選択端子１１４および３１５が「１」の状態で、データ選択端子１１１〜１１３の１縮退故障を検出するとしたが、モード選択端子１１４および３１５が「１」の状態で、データ選択端子１１１〜１１３の０縮退故障を検出し、モード選択端子１１４が「１」およびモード選択端子３１５が「０」の状態で、データ選択端子１１１〜１１３の１縮退故障を検出してもよい。
【０１４７】
（第４の実施の形態）
上述した第３の実施の形態では、データ選択端子が０縮退故障の場合に、論理値「１」を出力するセレクタについて説明した。本発明の第４の実施の形態では、データ選択端子が０縮退故障の場合に、論理値「０」を出力するセレクタについて説明する。
【０１４８】
図４は本発明の第４の実施の形態に係るセレクタの構成を示す図である。図４に示すセレクタ４００は、図２に示すセレクタ２００に加えて、モード選択端子４１４と、トランジスタ４３８を備える。なお、図２と同様の要素には同一の符号を付しており詳細な説明は省略する。
【０１４９】
トランジスタ４３８は、ＰＭＯＳＦＥＴであり、ゲートにモード選択端子４１５が接続され、ドレインにノード２２３が接続され、ソースに電源が接続される。モード選択端子４１５に印加される信号は、テストモード時に「０」となる信号である。トランジスタ４３８は、モード選択端子４１５が「０」の時に、ノード２２３をプルアップし、「１」の時に、オフとなる動作を行う。すなわち、モード選択端子４１５が「１」の時には、第２の実施の形態とまったく同じ動作をすることになる。
【０１５０】
ここで、トランジスタ４３８の駆動能力は、トライステートインバータ２３１〜２３３の駆動能力に比べて十分弱く設定されている。また、インバータ２４１は、トライステートインバータ２３１〜２３３のうち、いずれか２つがデータ多重選択された場合に、一方が「１」を出力し、他方が「０」を出力しようとして、信号が衝突した状態で、さらに、トランジスタ２３４およびトランジスタ４３８がオンした状態の、ノード２２３のとりうる最小の中間電位よりも低い電位に、スイッチング電位が設定されている。
【０１５１】
モード選択端子４１５は、モード選択端子２１４が「０」の時にのみ「０」が印加されるように設定しておく。もし、モード選択端子２１４が「１」の時にモード選択端子４１５が「０」になると、同時にトランジスタ２３５とトランジスタ４３８がオンになり、貫通電流が流れ続けるからである。
【０１５２】
これを防止するために、例えば、モード選択端子２１４とモード選択端子４１５の論理積がトランジスタ４３８のゲートに入力する構成にしてもよい。
【０１５３】
モード選択端子４１５が「１」であり、かつ、トライステートインバータ２３１〜２３３がワンホット状態、または、いずれか２つがデータ多重選択された場合の動作については、第２の実施の形態と同じ動作を行う。これは、インバータ２４１のスイッチング電位が、トライステートインバータ２３１〜２３３のうち、いずれか２つがデータ多重選択された場合に、一方が「１」を出力し、他方が「０」を出力し、さらに、トランジスタ４３８がオンの状態において、ノード２２３がとりうる最小の中間電位よりも低い電位に、設定されているからである。
【０１５４】
すなわち、セレクタ４００は、第２の実施の形態同様、データ選択端子２１１〜２１３の１縮退故障を検出することができるセレクタとなっている。
【０１５５】
次に、データ選択端子２１１〜２１３自身の０縮退故障、または、データ選択端子１１１〜１１３へ信号を供給する外部の制御回路の故障により、データ選択端子２１１〜２１３のいずれかが０縮退故障相当の故障が発生し、データ出力端子２２１がハイインピーダンス状態になった場合の動作について述べる。
【０１５６】
この場合には、モード選択端子２１４および４１５を共に「０」に設定することで、ノード２２３を駆動するのが、トランジスタ４３８のプリスチャージのみとなるため、ノード２２３は「１」になり、テスト出力端子２２２から「０」が出力される。例えば、テスト出力端子２２２に「１」が出力されるパターンを入力することで、データ選択端子２１１〜２１３の０縮退故障を検出することができる。
【０１５７】
以上のように、本実施の形態に係るセレクタ４００は、テストモード時に、トライステートインバータ２３１〜２３３の出力が全てハイインピーダンスとなる場合に、論理値「０」をテスト出力端子２２２に出力する。すなわち、本実施の形態に係るセレクタ４００は、データ選択端子２１１〜２１３のいずれかの０縮退故障時のテスト出力端子２２２の状態を定義することができる。よって、データ選択端子２１１〜２１３のいずれかの０縮退故障の故障検出を向上することができる。
【０１５８】
また、第４の実施の形態に係るセレクタ４００は、通常動作時には、トランジスタ２３４がオフとなる。これにより、通常動作時のデータ出力端子２２１に対する負荷容量は、第２の実施の形態に係るセレクタ２００と同程度となる。よって、第４の実施の形態に係るセレクタ４００は、データ出力端子２２１に対する負荷容量を増加させることなく、第２の実施の形態に係るセレクタ２００の機能に加え、データ選択端子２１１〜２１３の０縮退故障を検出することができる。
【０１５９】
なお、上記説明において、モード選択端子２１４および４１５が「０」の状態で、データ選択端子２１１〜２１３の１縮退故障を検出するとしたが、モード選択端子２１４および４１５が「０」の状態で、データ選択端子２１１〜２１３の０縮退故障を検出し、モード選択端子２１４が「０」およびモード選択端子４１５が「１」の状態で、データ選択端子２１１〜２１３の１縮退故障を検出してもよい。
【０１６０】
（第５の実施の形態）
第５の実施の形態では、第１の実施の形態に係るセレクタ１００を複数備える複数ビットのセレクタの故障を一括して検出する論理回路について説明する。
【０１６１】
図５は、本発明の第５の実施の形態に係る論理回路の構成を示す図である。
【０１６２】
図５に示す論理回路５０００は、３２個のセレクタ５００〜５３１と、論理和回路５４１と、フリップフロップ５４２とを備える。
【０１６３】
セレクタ５００〜５３１は、それぞれ図１に示すセレクタ１００である。セレクタ５００〜５３１のデータ選択端子１１１には、データ選択信号５５１が供給され、データ選択端子１１２には、データ選択信号５５２が供給され、データ選択端子１１３には、データ選択信号５５３が供給される。また、セレクタ５００〜５３１のモード選択端子１１４には、モード入力信号５５４が供給される。
【０１６４】
また、セレクタ５００〜５３１のデータ入力端子１０１は、それぞれデータ入力端子５１００〜５１３１と接続され、データ入力端子１０２は、それぞれデータ入力端子５２００〜５２３１と接続され、データ入力端子１０３は、それぞれデータ入力端子５３００〜５３３１と接続される。また、セレクタ５００〜５３１のデータ出力端子１２１は、それぞれデータ出力端子５０００〜５０３１と接続される。すなわち、セレクタ５００〜５３１は、共通の制御信号にて共通の動作をする３２ビットのセレクタとして動作する。
【０１６５】
論理和回路５４１は、３２入力の論理和回路であり、入力にセレクタ５００〜５３１のテスト出力端子１２２が接続される。すなわち、論理和回路５４１は、セレクタ５００〜５３１のうち１以上がテスト出力端子１２２に論理値「１」を出力する場合に、論理値「１」を出力し、セレクタ５００〜５３１の全てがテスト出力端子１２２に論理値「０」を出力する場合に、論理値「０」を出力する。
【０１６６】
フリップフロップ５４２は、スキャン対象のフリップフロップであり、スキャンデータ入力端子ＳＩが論理和回路５４１の出力に接続される。
【０１６７】
個々のセレクタ５００〜５３１の動作については第１の実施の形態で説明しているので、ここでは説明を省略するが、モード入力信号５５４が「０」の時は通常動作、すなわち、３２ビットのセレクタとして動作し、それぞれテスト出力端子１２２からは「０」を出力する。
【０１６８】
また、モード入力信号５５４が「１」の時はテスト動作、すなわち、３２ビットのセレクタのデータ多重選択状態を検査することができるモードとなる。
【０１６９】
第１の実施の形態において説明したように、テストモード時において、セレクタ５００〜５３１は、データ選択端子１１１〜１１３のいずれかが１縮退故障しており、中間電位が出力される場合に、テスト出力端子１２２に論理値「１」を出力する。よって、故障していない場合には、テスト出力端子１２２に論理値「０」が出力されるパターンを入力することで、セレクタ５００〜５３１の１縮退故障を検出することができる。また、各セレクタ５００〜５３１のテスト出力端子１２２は、論理和回路５４１の入力と接続されている。よって、セレクタ５００〜５３１のうち１以上のセレクタのデータ選択端子１１１が１縮退故障状態になっている場合、または、データ選択信号５５１が１縮退故障状態になっている場合には、論理和回路５４１は「１」を出力する。また、全てのセレクタ５００〜５３１が正常に動作し、テスト出力端子１２２に「０」を出力した場合には、論理和回路５４１は、「０」を出力する。論理和回路５４１の出力信号は、フリップフロップ５４２のスキャンデータ入力端子ＳＩからフリップフロップ５４２に取り込まれる。
【０１７０】
以上により、第５の実施の形態に係る論理回路５０００は、フリップフロップ５４２に保持されたデータから、３２個のセレクタ５００〜５３１のいずれか１以上が、１縮退故障状態であるか否かを判定することができる。
【０１７１】
また、第５の実施の形態に係る論理回路５０００は、３２個のセレクタが１縮退故障しているか否かを論理輪回路５４１およびフリップフロップ５４２のみを配置することで実現している。すなわち、各セレクタ５００〜５３１のテスト出力端子１２２それぞれに対してスキャン対応フリップフロップを配置する場合（３２個のフリップフロップを配置する場合）に比べて、スキャン対応フリップフロップの数を大幅に減らすことができる。これにより、スキャンシフト回数の削減、面積の削減およびクロック負荷の低減等のメリットがある。
【０１７２】
また、セレクタ５００〜５３１のうちどのセレクタのデータ選択端子１１１が１縮退故障しているか、または、データ選択信号５５１自身が既に１縮退故障状況になっているかは、各セレクタへの入力信号の状態を変化させ、論理和回路５４１の出力状態をみることによって判断できる。よって、セレクタ５００〜５３１のうちどのセレクタのデータ選択端子１１１が１縮退故障しているか、または、データ選択信号５５１自身が既に１縮退故障状況になっているかを、スキャン対応フリップフロップ５４２の値を確認することで、容易に判断することができる。
【０１７３】
なお、上記説明においては、データ選択端子１１１が１縮退故障している場合について述べたが、同様にセレクタ５００〜５３１のうちいずれかのセレクタのデータ選択端子１１２または１１３の１縮退故障を検出することができる。また、データ選択信号５５２または５５３が１縮退故障状態になっていることを容易に判断することができる。
【０１７４】
また、上記説明において、論理回路５０００は、論理和回路５４１を用いているが、この構成に限定されるものではない。例えば、論理和否定回路等を用いてもよい。また、セレクタ５００〜５３１として第２の実施の形態に係るセレクタ２００を用い論理積回路または論理積否定回路等を用いてもよい。
【０１７５】
（第６の実施の形態）
第６の実施の形態では、第３の実施の形態に係るセレクタ３００を複数備える複数ビットのセレクタの故障を一括して検出する論理回路について説明する。
【０１７６】
図６は、本発明の第６の実施の形態に係る論理回路の構成を示す図である。
【０１７７】
図６に示す論理回路６０００は、３２個のセレクタ６００〜６３１と、論理和回路６４１と、フリップフロップ６４２とを備える。
【０１７８】
セレクタ６００〜６３１は、それぞれ図３に示すセレクタ３００である。セレクタ６００〜６３１のデータ選択端子１１１には、データ選択信号６５１が供給され、データ選択端子１１２には、データ選択信号６５２が供給され、データ選択端子１１３には、データ選択信号６５３が供給される。また、セレクタ６００〜６３１のモード選択端子１１４には、モード入力信号６５４が供給され、モード選択端子３１５には、モード入力信号６５５が供給される。
【０１７９】
また、セレクタ６００〜６３１のデータ入力端子１０１は、それぞれデータ入力端子６１００〜６１３１と接続され、データ入力端子１０２は、それぞれデータ入力端子６２００〜６２３１と接続され、データ入力端子１０３は、それぞれデータ入力端子６３００〜６３３１と接続される。また、セレクタ６００〜６３１のデータ出力端子１２１は、それぞれデータ出力端子６０００〜６０３１と接続される。すなわち、セレクタ６００〜６３１は、共通の制御信号にて共通の動作をする３２ビットのセレクタとして動作する。
【０１８０】
論理和回路６４１は、３２入力の論理和回路であり、入力にセレクタ６００〜６３１のテスト出力端子１２２が接続される。すなわち、論理和回路６４１は、セレクタ６００〜６３１のうち１以上がテスト出力端子１２２に論理値「１」を出力する場合に、論理値「１」を出力し、セレクタ６００〜６３１の全てがテスト出力端子１２２に論理値「０」を出力する場合に、論理値「０」を出力する。
【０１８１】
フリップフロップ６４２は、スキャン対象のフリップフロップであり、スキャンデータ入力端子ＳＩが論理和回路６４１の出力に接続される。
【０１８２】
また、セレクタ６００〜６３１のそれぞれのテスト出力端子１２２は、３２入力の論理和回路６４１の入力に接続される。論理和回路６４１の出力は、スキャン対応フリップフロップ６４２のスキャンデータ入力端子に接続される。
【０１８３】
個々のセレクタ６００〜６３１の動作については第３の実施の形態で説明しているので、ここでは説明を省略するが、モード入力信号６５４が「０」およびモード入力信号６５５が「０」の時は通常動作、すなわち、３２ビットのセレクタとして動作し、それぞれテスト出力端子１２２からは「０」を出力する。
【０１８４】
また、モード入力信号６５４が「１」およびモード入力信号６５５が「０」の時は、第５の実施の形態と同様に、テスト動作、すなわち、３２ビットのセレクタのデータ多重選択状態を検査することができるモードとなる。
【０１８５】
第５の実施の形態において説明したように、テスト動作モードにおいて、セレクタ６００〜６３１は、データ選択端子１１１〜１１３のいずれかが１縮退故障しており、中間電位が出力される場合に、テスト出力端子１２２に論理値「１」を出力する。よって、故障していない場合には、テスト出力端子１２２に論理値「０」が出力されるパターンを入力することで、セレクタ６００〜６３１の１縮退故障を検出することができる。また、各セレクタ６００〜６３１のテスト出力端子１２２は、論理和回路６４１の入力と接続されている。よって、セレクタ６００〜６３１のうち１以上のセレクタのデータ選択端子１１１が１縮退故障状態になっている場合、または、データ選択信号６５１が１縮退故障状態になっている場合には、論理和回路６４１は「１」を出力する。また、全てのセレクタ６００〜６３１が正常に動作し、テスト出力端子１２２に「０」を出力した場合には、論理和回路６４１は、「０」を出力する。論理和回路６４１の出力信号は、フリップフロップ６４２のスキャンデータ入力端子ＳＩからフリップフロップ６４２に取り込まれる。
【０１８６】
また、第３の実施の形態で説明したように、モード入力信号６５４が「１」およびモード入力信号６５５が「１」の時はデータ無選択テスト動作、すなわち、３２ビットのセレクタのデータ無選択状態を検査することができるモードとなる。
【０１８７】
データ無選択テスト動作モードにおいて、セレクタ６００〜６３１は、データ選択端子１１１が０縮退故障し、データ出力端子３２１がハイインピーダンス状態となる場合に、テスト出力端子１２２に論理値「１」を出力する。よって、故障していない場合には、テスト出力端子１２２に論理値「０」が出力されるパターンを入力することで、セレクタ６００〜６３１の０縮退故障を検出することができる。また、各セレクタ６００〜６３１のテスト出力端子１２２は、論理和回路６４１の入力と接続されている。よって、セレクタ６００〜６３１のうち１以上のセレクタのデータ選択端子１１１が０縮退故障状態になっている場合、または、データ選択信号６５１が０縮退故障状態になっている場合には、論理和回路６４１は「１」を出力する。また、全てのセレクタ６００〜６３１が正常に動作し、テスト出力端子１２２に「０」を出力した場合には、論理和回路６４１は、「０」を出力する。論理和回路６４１の出力信号は、フリップフロップ６４２のスキャンデータ入力端子ＳＩからフリップフロップ６４２に取り込まれる。
【０１８８】
以上により、第６の実施の形態に係る論理回路６０００は、フリップフロップ６４２に保持されたデータから、３２個のセレクタ６００〜６３１のいずれか１以上が、１縮退故障状態であるか否かを判定することができる。さらに、第６の実施の形態に係る論理回路６０００は、フリップフロップ６４２に保持されたデータから３２個のセレクタ６００〜６３１のいずれか１以上が、０縮退故障状態であるか否かを判定することができる。
【０１８９】
また、第６の実施の形態に係る論理回路６０００は、３２個のセレクタが１縮退故障または０縮退故障しているか否かを論理輪回路６４１およびフリップフロップ６４２のみを配置することで実現している。すなわち、各セレクタ６００〜６３１のテスト出力端子１２２それぞれに対してスキャン対応フリップフロップを配置する場合（３２個のフリップフロップを配置する場合）に比べて、スキャン対応フリップフロップの数を大幅に減らすことができる。これにより、スキャンシフト回数の削減、面積の削減およびクロック負荷の低減等のメリットがある。
【０１９０】
また、セレクタ６００〜６３１のうちどのセレクタのデータ選択端子１１１が１縮退故障しているか、または、データ選択信号６５１自身が既に１縮退故障状況になっているかは、各セレクタへの入力信号の状態を変化させることで、論理和回路６４１の出力状態をみることによって判断できる。よって、セレクタ６００〜６３１のうちいずれのセレクタのデータ選択端子１１１が１縮退故障しているか、または、データ選択信号６５１自身が既に１縮退故障状況になっているかを、スキャン対応フリップフロップ６４２の値を確認することで、容易に判断することができる。同様に、セレクタ６００〜６３１のうちどのセレクタのデータ選択端子１１１が０縮退故障しているか、または、データ選択信号６５１自身が既に０縮退故障状況になっているかは、各セレクタへの入力信号の状態を変化させることで、論理和回路６４１の出力状態をみることによって判断できる。よって、セレクタ６００〜６３１のうちどのセレクタのデータ選択端子１１１が０縮退故障しているか、または、データ選択信号６５１自身が既に０縮退故障状況になっているかを、スキャン対応フリップフロップ６４２の値を確認することで、容易に判断することができる。
【０１９１】
なお、上記説明においては、データ選択端子１１１が１縮退故障または０縮退故障している場合について述べたが、同様にセレクタ６００〜６３１のうちいずれかのセレクタのデータ選択端子１１２または１１３の１縮退故障または０縮退故障を検出することができる。また、データ選択信号６５２または６５３が１縮退故障または０縮退故障状態になっていることを容易に判断することができる。
【０１９２】
また、上記説明において、論理回路６０００は、論理和回路６４１を用いているが、この構成に限定されるものではない。例えば、論理和否定回路等を用いてもよい。また、セレクタ６００〜６３１として第４の実施の形態に係るセレクタ４００を用い論理積回路または論理積否定回路等を用いてもよい。
【産業上の利用可能性】
【０１９３】
本発明は、テスト回路、セレクタおよび半導体集積回路に適用でき、特に、高集積・高速動作を要求される半導体集積回路に用いられるセレクタおよびテスト回路に適用できる。
【図面の簡単な説明】
【０１９４】
【図１】第１の実施の形態に係るセレクタの構成を示す図である。
【図２】第２の実施の形態に係るセレクタの構成を示す図である。
【図３】第３の実施の形態に係るセレクタの構成を示す図である。
【図４】第４の実施の形態に係るセレクタの構成を示す図である。
【図５】第５の実施の形態に係る論理回路の構成を示す図である。
【図６】第６の実施の形態に係る論理回路の構成を示す図である。
【図７】従来のセレクタの構成を示す図である。
【符号の説明】
【０１９５】
１００、２００、３００、４００、１０００  セレクタ
１０１〜１０３、２０１〜２０３、１０１１、１０１２  データ入力端子
１１１〜１１３、２１１〜２１３、１０２１、１０２２  データ選択端子
１１４、２１４、３１５、４１５、１０３１  モード選択端子
１２１、２２１、１０４０  データ出力端子
１２２、２２２  テスト出力端子
１２３、２２３  ノード
１３１〜１３３、２３１〜２３３  トライステートインバータ
１３４〜１３７、２３４〜２３７、３３８、４３８、１００３  トランジスタ
１４１、２４１  インバータ
１００１、１００２  トライステートバッファ
５００〜５３１、６００〜６３１  セレクタ
５４１、６４１  論理和回路
５４２、６４２  フリップフロップ
５５１〜５５３、６５１〜６５３  データ選択信号
５５４、６５４、６５５  モード選択信号
５０００、６０００  論理回路
５１００〜５１３１、５２００〜５２３１、５３００〜５３３１、６１００〜６１３１、６２００〜６２３１、６３００〜６３３１  データ入力端子
５４００〜５４３１、６４００〜６４３１  データ出力端子
【図１】
2007333538.tif 000003
【図２】
2007333538.tif 000004
【図３】
2007333538.tif 000005
【図４】
2007333538.tif 000006
【図５】
2007333538.tif 000007
【図６】
2007333538.tif 000008
【図７】
2007333538.tif 000009