(57)【要約】【課題】より多くのテストモードを組み込むことができるＪＴＡＧ対応半導体装置を提供する。【解決手段】バウンダリスキャン方式のテスト回路を備える半導体装置において、テスト回路は、ｎビット（ここにｎは自然数）の命令が入力される命令レジスタと、命令レジスタから受け取った命令を基に（ｎ＋ｍ）ビット（ここにｍは自然数）の信号を出力する命令デコーダとを有する。この命令デコーダは、命令レジスタから（ｎ＋ｉ−１）ビット（ここにｉは１からｍまでの自然数）の特定の命令を受け取ると、この特定の命令を受ける前の信号と異なるレベル信号を発生して命令デコーダの（ｎ＋ｉ）ビット入力に出力する複数の信号発生回路を有する。【選択図】  図２
2004294397.tif 000002
【特許請求の範囲】
【請求項１】
バウンダリスキャン方式のテスト回路を備える半導体装置であって、前記テスト回路は、
ｎビット（ここにｎは自然数）の命令が入力される命令レジスタと、
前記命令レジスタから受け取った命令を基に（ｎ＋ｍ）ビット（ここにｍは自然数）の信号を出力する命令デコーダとを有し、
前記命令デコーダは、命令レジスタから（ｎ＋ｉ−１）ビット（ここにｉは１からｍまでの自然数）の特定の命令を受け取ると、前記特定の命令を受ける前の信号と異なるレベル信号を発生して命令デコーダの（ｎ＋ｉ）ビット入力に出力する信号発生回路を含むことを特徴とする半導体装置。
【請求項２】
前記の特定の命令は、（ｎ＋１）ビットから（ｎ＋ｍ−１）ビットまでレベル“１”の命令であることを特徴とする、請求項１に記載された半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）バウンダリスキャン方式を採用した半導体装置に関するものである。
【０００２】
【従来の技術】
ＪＴＡＧバウンダリスキャン方式を採用した半導体装置（ＪＴＡＧ対応半導体装置）では、デバイス本来の機能を行う内部ロジックと各デバイスピンとの間に、セルと呼ばれるシフトレジスタ（バウンダリスキャンレジスタ）を配置し、さらに、これを制御するＪＴＡＧ回路を内蔵する。ＪＴＡＧ回路に信号を与えて制御することにより、セルを通過する信号を監視したり、任意データを注入したりできる。こうして、ＪＴＡＧ回路は、物理的なテストプローブを用いずにピン接続をテストできる。
【０００３】
ＪＴＡＧバウンダリスキャン方式においてＪＴＡＧ固有の命令が存在する。ＳＲＡＭの場合、ＪＴＡＧ命令は３ビットで構成されることが多い。ＪＴＡＧ命令は、命令レジスタに命令をセットすることにより実行される。命令デコーダは３ビットのＪＴＡＧ命令を受け取り、指定された命令を実施する。任意の３ビットの命令を入力することでＪＴＡＧ命令を実行できる。
【０００４】
３ビットの命令には８通りの組み合わせがあり、８種類の命令を実行することができる。一般的にＳＲＡＭではこのうち５種類の命令が予約されており、３種類の命令は空きになっている。このため、空いているＪＴＡＧ命令を利用して、テストモードを組み込むことができる（たとえば特開平１１‐７２５４１号公報参照）。
【０００５】
【特許文献１】
特開平１１‐７２５４１号公報（図４）
【０００６】
【発明が解決しようとする課題】
バウンダリスキャン方式を採用した半導体装置において、ＪＴＡＧの命令数は限られており、たとえばＳＲＡＭでは８個である。このため未使用のコードも限られている。未使用のコードはテストモードへのエントリ手段として使用できるが、当然その数も限られている。したがって、ＪＴＡＧを利用したテストモードは特定の数（ＳＲＡＭの場合、一般的に３つまで）しか組み込むことができず、それ以上のテストモードを組み込むことができないという問題点があった。
【０００７】
なお、特開平１１‐７２５４１号公報に記載されたＪＴＡＧ回路では、専用ピンを増やすことなく、ＪＴＡＧ命令の拡張を行うことが記載されている。後で説明するように、本発明はこれとは別の手法でテストモードの数を増加する。
【０００８】
この発明の目的は、より多くのテストモードを組み込むことができる、バウンダリスキャン方式のテスト回路を備える半導体装置を提供することである。
【０００９】
【課題を解決するための手段】
本発明に係る半導体装置は、バウンダリスキャン方式のテスト回路を備える半導体装置である。テスト回路は、ｎビット（ここにｎは自然数）の命令が入力される命令レジスタと、前記命令レジスタから受け取った命令を基に（ｎ＋ｍ）ビット（ここにｍは自然数）の信号を出力する命令デコーダとを有する。命令デコーダは、命令レジスタから（ｎ＋ｉ−１）ビット（ここにｉは１からｍまでの自然数）の特定の命令を受け取ると、前記特定の命令を受ける前の信号と異なるレベル信号を発生して命令デコーダの（ｎ＋ｉ）ビット入力に出力する信号発生回路を含む。前記の特定の命令は、たとえば、空き命令または（ｎ＋１）ビットから最上位ビットまでレベル“１”の命令である。
【００１０】
【発明の実施の形態】
以下、添付の図面を参照して本発明の実施の形態を説明する。
【００１１】
図１は、ＪＴＡＧバウンダリスキャン方式を採用した半導体装置の１例を図式的に示す。ＪＴＡＧ対応半導体装置は、半導体装置本来の機能を行う内部ロジック１０と各デバイスピン１１との間に、セル１２と呼ばれるシフトレジスタ（バウンダリスキャンレジスタ）を配置し、さらに、これを制御するＪＴＡＧ回路１３を内蔵する。この半導体装置はＳＲＡＭである。
【００１２】
ＪＴＡＧ回路１３をさらに説明すると、図２に示すＪＴＡＧ回路において、命令レジスタである３ビットのシフトレジスタ１は、上位ビットの出力ＳＯが下位ビットの入力ＳＩに繋がっており、最上位ビットの入力が信号ＴＤＩ、最下位ビットの出力が信号ＴＤＯに接続されている。ＴＤＩは命令レジスタへの直列入力であり、ＴＤＯは命令レジスタからの直列出力である。なお、ＴＤＩ／ＴＤＯはＪＴＡＧに一般的に備わる信号であり、詳細はＩＥＥＥ  Ｓｔｄ  １１４９．１−２００１に記述されている。シフトレジスタ１は初期値レジスタ３から初期値を端子Ｄより取り込む。出力ラッチ２は、シフトレジスタ１からセットした内容を、出力ＰＯより命令デコーダ４に送信する。命令デコーダ４はこの内容を受け取り、指定された命令を実施する。また、ＴＡＰコントローラ５は、ＪＴＡＧ回路におけるステートを制御するステートマシンである。
【００１３】
図３は、３ビットのレジスタ１における各ビットの構成を示す。図２のシフトレジスタ１はセレタタ１Ａとシフトレジスタ１Ｂに対応し、図２の出力ラッチ２はリセット付きラッチ２に対応する。セレクタ１Ａにおいて、Ｓはセレクト入力、ＯはＳ＝０の時に選択される入力、ＩはＳ＝１の時に選択される入力、Ｏは出力を表わす。シフトレジスタ１Ｂにおいて、Ｃはクロック入力、Ｄはデータ入力、Ｑはデータ出力を表わす。ラッチ２において、Ｃはクロック入力、Ｄはデータ入力、Ｒはリセット入力、Ｑはデータ出力を表わす。ここで、ＳｈｉｆｔＩＲ／ＣｌｏｃｋＩＲ／ＵｐｄａｔｅＩＲはＪＴＡＧのＴＡＰコントローラ５から出力される既定の信号であり、詳細はＩＥＥＥ  Ｓｔｄ  １１４９．１−２００１に記述されている。
【００１４】
このＪＴＡＧ回路の構成において、従来と異なるのは、命令デコータ４に入力されるビットを１ビット増して、４ビットとしている点である。すなわち、命令レジスタに入力される３ビット命令の上位に１ビットを追加し、命令レジスタのビット数を３ビットから４ビットに拡張する。命令デコーダ４の出力信号の１つであるセット信号Ｓを命令デコーダ４への入力の１ビットとして用いる。ここで、最上位ビットに、命令デコーダ４が生成したセット信号Ｓが入力される。この最上位ビットは、通常はレベル“０”（正論理ではＬレベル）であるが、命令デコーダ４は、特定の拡張用命令を実行した場合にレベル“１”（正論理ではＨレベル）が立つようにする。
【００１５】
セット信号Ｓのデータを“１”にするために、ＪＴＡＧの空き命令の１つ（たとえば、予約されていない命令“０１１”）を割り付ける。すなわち、３ビット目、２ビット目、１ビット目の出力ラッチ２の出力をそれぞれＰＯ２、ＰＯ１、ＰＯ０と表わすと、ＰＯ２＝“０”、ＰＯ１＝“１”、ＰＯ０＝“１”とすることにより、信号Ｓを“１”として、テストモード用に切り替える。この“０１１”の組み合わせはＪＴＡＧ命令として通常使用されていない組み合わせである。その命令が実行された時に信号Ｓが“１”となり、命令デコーダ４の最上位ビットを立てる。これにより、命令数をさらに８個増やすことができ、任意のテストモードに割り当てることができる。
【００１６】
次に動作について簡単に説明する。ＴＡＰコントローラ５のＣａｐｔｕｒｅ‐ＩＲステートにおいて、ＳｈｉｆｔＩＲ＝“０”，ＣｌｏｃｋＩＲ＝ＣＬＫとなり、初期値Ｄがレジスタ１−Ｂに取り込まれる。Ｓｈｉｆｔ−ＩＲステートにおいて、ＳｈｉｆｔＩＲ＝“１”，ＣｌｏｃｋＩＲ＝ＣＬＫとなり、シリアル入力ＳＩがシリアル出力ＳＯにシフトされる。Ｕｐｄａｔｅ−ＩＲステートにおいて、ＵｐｄａｔｅＩＲ＝ＣＬＫとなり、シリアル出力ＳＯがパラレル出力ＰＯにラッチされる。これとは別に、Ｔｅｓｔ‐Ｌｏｇｉｃ−ＲｅｓｅｔステートにおいてＲｅｓｅｔ信号が入力され、ＰＯはリセットされる。なお、ＴＡＰコントローラ５の各ステートについては、詳細はＩＥＥＥ  Ｓｔｄ  １１４９．１−２００１に記述されている。
【００１７】
図４は、命令デコーダ４内の出力信号Ｓの発生回路の１例である。この例では、先に説明したように、ＪＴＡＧ命令として使用されていない命令（空き命令）“０１１”が出力信号Ｓの発生に割り当てられている。即ち、命令レジスタの出力ラッチ３ビット（ＰＯ２，ＰＯ１，ＰＯ０）が（０，１，１）である時に各信号が選択状態となるように論理回路が組まれており、そのときに信号Ｓを“１”とする。なお、この回路では、信号Ｓが一旦“１”となると、リセットがかかるまで常に“１”となるようになっている。
【００１８】
具体的には、出力ラッチ２からの信号／ＰＯ２，ＰＯ１，ＰＯ０がＡＮＤゲート４１に入力され、ＡＮＤゲート４１の出力Ｒが、信号ＳとともにＯＲゲート４２に入力される。ＯＲゲート４２の出力Ｔは、／ＲｅｓｅｔとともにＡＮＤゲート４３に入力され、信号Ｓを発生する。したがって、命令“０１１”が入力され、／Ｒｅｓｅｔが出力されていないとき、信号Ｓは“１”となる。発生された信号Ｓは、ＯＲゲート４２に入力され、さらに、信号ＰＯ２，ＰＯ１，ＰＯ０と並列に命令信号生成回路４４に入力される。命令信号生成回路４４は、４ビットの命令信号を出力する。
【００１９】
以上に説明したように、ＪＴＡＧの空き命令の１つ（“０１１”）を割り当てることにより、命令デコーダ４の最上位ビットに“１”を立てることができる。従来の命令は命令デコーダ４の最上位ビットが“０”の場合に実行される。最上位ビットが“１”の時には別の命令を割り付けることができる。空き命令“０１１”（４ビットの命令では“００１１”）でＳ＝“１”にセットされるので、この命令“０１１”を実行すると、“１０００”〜“１１１１”の８個の新しい命令を実行できるようになる。よって、新しい８種類の命令が追加できるので、３ビットの場合３種類だった空き命令が２＋８＝１０種類になり、その分だけ余分にテストモードを組み込むことができる。
【００２０】
図４により具体的動作を説明すると、命令“０１１”が実行されるということは、／ＰＯ２＝ＰＯ１＝ＰＯ０＝“１”となることである。この時、出力Ｒ＝“１”となり、Ｓに関係なく出力Ｔ＝“１”となるので、リセットされていない状態（／Ｒｅｓｅｔ＝“１”）では信号Ｓ＝“１”となって、デコーダの最上位ビットを立てることができる。一旦Ｓ＝“１”となると、Ｒに関係なくＴ＝“１”となるため、他の命令を実行しても命令デコーダ４の最上位ビットは立ったままであり、“１０００”〜“１１１１”の新しい命令が実行できる。なお、ＪＴＡＧ回路にリセットが掛かった時はＳ＝“０”とする必要があるが、この回路では、／Ｒｅｓｅｔ＝“０”となると、Ｔに関係なくＳ＝“０”とできる。なお、このとき同時に命令レジスタの出力はＩＤＣＯＤＥ命令“００１”がセットされるため、ＰＯ２＝“０”、ＰＯ１＝“０”、ＰＯ０＝“１”となり、Ｒ＝“０”となるので、／Ｒｅｓｅｔ＝“１”に戻ってもＳ＝“０”の状態が維持される。
【００２１】
さらに、拡張ビット数を増やすことにより、任意の数のテストモード命令を持つことができる。図５は、第２の実施の形態のＪＴＡＧ回路を示す。このＪＴＡＧ回路では、命令デコーダ４’のビット数をさらに１ビット増して５ビットとしている。まず、第１の実施形態と同様に、ＪＴＡＧの空き命令の１つを使用して命令デコーダ４’からの信号Ｓ１を“１”とする。これによって命令デコーダ４’の４ビット目に“１”を立てて、命令を８種類拡張する。これは、第１の実施の形態のＪＴＡＧ回路と同様である。さらに、拡張された命令の内１つを使用して命令デコーダからの信号Ｓ２を“１”とする。これにより命令デコーダ４’の５ビット目に“１”を立てて、さらに命令を８種類拡張できる。例として、従来の空き命令“０１１”（５ビットの命令では“０００１１”）でＳ１＝“１”にセットされるようにすれば、本命令を実行後、“０１０００”〜“０１１１１”の新しい命令を実行できるようになる。さらに、例えば、“０１０００”を実行した時Ｓ２＝“１”がセットされるようにすれば、本命令を実行後、“１１０００”〜“１１１１１”の新しい命令を実行できるようになる。よって、空き命令の合計は２＋７＋８＝１７種類となり、さらに多くのテストモードを追加できる。このように、空き命令と、拡張された命令を用いることにより、命令のビット数を増加して、命令の数を効率的に拡張できる。
【００２２】
図６は、この時の命令デコーダ４’の内部の信号発生回路の例を示す。図６の左側に示す信号Ｓ１の発生回路は、図４に示した信号Ｓの発生回路と同様である。また、図６の右側に示す信号Ｓ２の発生回路は信号Ｓ１が“１”のとき（ＰＯ２，ＰＯ１，ＰＯ０）＝（０，０，０）で“１”の信号Ｓ２が立つように作成されている。
【００２３】
具体的に説明すると、信号／ＰＯ２，ＰＯ１，ＰＯ０がＡＮＤゲート５１に入力され、ＡＮＤゲート５１の出力が、信号Ｓ１とともにＯＲゲート５２に入力される。ＯＲゲート５２の出力Ｔは、／ＲｅｓｅｔとともにＡＮＤゲート５３に入力され、信号Ｓ１を発生する。したがって、特定の命令“０１１”が入力され、／Ｒｅｓｅｔが出力されていないとき、信号Ｓ１は“１”となる。発生された信号Ｓ１は、ＯＲゲート５２に入力され、さらに、信号／ＰＯ２，ＰＯ１，ＰＯ０と並列に命令信号生成回路５７に入力される。また、信号／ＰＯ２，／ＰＯ１，／ＰＯ０およびＳ１がＡＮＤゲート５４に入力され、ＡＮＤゲート５４の出力が、信号Ｓ１とともにＯＲゲート５５に入力される。ＯＲゲート５５の出力Ｔは、／ＲｅｓｅｔとともにＡＮＤゲート５６に入力され、信号Ｓ２を発生する。したがって、特定の命令“０００”が入力され、／Ｒｅｓｅｔが出力されていないとき、信号Ｓ２は“１”となる。発生された信号Ｓ２は、ＯＲゲート５５に入力され、さらに、信号／ＰＯ２，／ＰＯ１，／ＰＯ０，Ｓ１と並列に命令信号生成回路５７に入力される。命令信号生成回路５７は、５ビットの命令信号を生成する。
【００２４】
第２の実施の形態では、５ビットの命令まで拡張するＪＴＡＧ回路を説明した。なお、同様の方法で命令デコーダのビットを３＋ｎまで拡張することができ、この場合空き命令の合計は２＋７（ｎ−１）＋８＝７ｎ＋３となる。一般的に説明すれば、この拡張を繰り返して、命令デコーダの（ｎ＋ｍ）ビットに“１”をセットすることにより、新しい命令が認識可能となる。そのようなＪＴＡＧ回路は、一般的には、ｎビットの命令レジスタと、命令レジスタからの命令を受け取って（ｎ＋ｍ）ビットの命令を出力する命令デコーダとを備える。この命令デコーダは、命令レジスタから（ｎ＋ｉ−１）ビットの特定の命令を受け取ると、”１”の信号Ｓｉを発生して命令デコーダの（ｎ＋ｉ）ビット入力に出力する複数の信号発生回路を備える。（ここで、ｎ，ｍは自然数であり、ｉは１からｍまでの整数である。）この特定の命令は、（ｎ＋１）ビットから（ｎ＋ｍ−１）ビットまで“１”であり、上述の実施形態でも説明したように、ＪＴＡＧのｎビットの空き命令を利用して設定されていくものである。
【００２５】
【発明の効果】
ＪＴＡＧのｎビットの入力命令をデコードして、その命令のビット数より多いビット数（（ｎ＋１）ビット以上のビット数）の命令を発生できるので、テストモードの数を拡張できる。これにより、ＪＴＡＧの空き命令の数にかかわらず、テストモードの数そのものを増やすことができ、任意の数だけテストモードを用意できる。
【図面の簡単な説明】
【図１】ＪＴＡＧバウンダリスキャン方式を採用した半導体装置の図
【図２】第１の実施の形態のＪＴＡＧ回路の図
【図３】１ビットについての回路構成を示す図
【図４】命令デコーダ内のセット信号Ｓの発生回路の図
【図５】第２の実施の形態のＪＴＡＧ回路の図
【図６】命令デコーダ内のセット信号Ｓ１，Ｓ２の発生回路の図
【符号の説明】
１  シフトレジスタ、    ２  出力ラッチ、    ４、４’  命令デコーダ、  ５  ＴＡＰコントローラ、    １０  内部ロジック、    １１  デバイスピン、    １２  セル、    １３  ＪＴＡＧ回路。
【図１】
2004294397.tif 000003
【図２】
2004294397.tif 000004
【図３】
2004294397.tif 000005
【図４】
2004294397.tif 000006
【図５】
2004294397.tif 000007
【図６】
2004294397.tif 000008