(57)【要約】【課題】ＩＰコアを短時間でテストする。【解決手段】ＩＰコアのテストのために設けられて上記ＩＰコアとともにＪＴＡＧデバイスを構成するバウンダリスキャン回路において、上記ＩＰコアを構成するフラッシュコントローラ１０１の入力に設けられた入力バウンダリ・スキャン・セルＢＳＣＩと、フラッシュコントローラ１０１の出力と上記ＩＰコアを構成するフラッシュメモリ１０２の入力の間に設けられ、ＢＳＣＩとともにバウンダリ・スキャン・レジスタＢＳＲ［１］を構成する出力バウンダリ・スキャン・セルＢＳＣＯ［１］と、上記ＢＳＲ［１］を制御するＴＡＰインターフェース［１］とを備え、ＢＳＣＯ［１］のラッチフリップフロップのラッチ動作を、ＴＤＩから入力された命令コードに従って有効または無効にする。【選択図】　図１
2004045244.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰコアのテストのために設けられて上記ＩＰコアとともにＪＴＡＧデバイスを構成するバウンダリスキャン回路において、
上記ＩＰコアを構成する第１の回路の入力に設けられた１つまたは複数の入力バウンダリ・スキャン・セルと、
上記第１の回路の出力と上記ＩＰコアを構成する第２の回路の入力の間に設けられ、上記入力バウンダリ・スキャン・セルとともにバウンダリ・スキャン・レジスタを構成する１つまたは複数の出力バウンダリ・スキャン・セルと、
上記バウンダリ・スキャン・レジスタを制御するＴＡＰインターフェースとを備え、
上記出力バウンダリ・スキャン・セルのラッチフリップフロップのラッチ動作を、入力された命令コードに従って有効または無効にする
ことを特徴とするバウンダリスキャン回路。
【請求項２】
請求項１記載のバウンダリスキャン回路において、
上記ＴＡＰインターフェースは、ラッチクロックおよびこのラッチクロックを有効または無効にするためのラッチイネーブルを上記出力バウンダリ・スキャン・セルに供給し、
上記出力バウンダリ・スキャン・セルは、上記ラッチクロックおよび上記ラッチイネーブルのアンドゲート出力を、ラッチフリップフロップのクロック入力とする
ことを特徴とするバウンダリスキャン回路。
【請求項３】
請求項１記載のバウンダリスキャン回路において、
上記出力バウンダリ・スキャン・セルのシフトフリップフロップは、ネガティブエッジトリガのフリップフロップであり、
上記ＴＡＰインターフェースは、上記第１の回路を動作させるシステムクロックと同じクロックツリーで構成したシフトクロックを上記シフトフリップフロップのクロック入力に供給する
ことを特徴とするバウンダリスキャン回路。
【請求項４】
請求項１記載のバウンダリスキャン回路において、
上記出力バウンダリ・スキャン・セルのラッチフリップフロップは、データセット入力またはデータリセット付きのフリップフロップであり、
上記ＴＡＰインターフェースは、テストの初期動作において、上記ラッチフリップフロップにデータセット／リセットを入力する
ことを特徴とするバウンダリスキャン回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＪＴＡＧ（Ｊｏｉｎｔ　Ｔｅｓｔ　Ａｃｔｉｏｎ　Ｇｒｏｕｐ）デバイスに関し、特にＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ　Ｐｒｏｐｅｒｔｙ）コアにバウンダリスキャン回路を設けたＪＴＡＧデバイスに関するものである。
【０００２】
【従来の技術】
ＩＰコアにバウンダリスキャン回路を設けてＪＴＡＧデバイスを構成することによって、半導体チップに内蔵されたＩＰコアを容易にテストすることが可能になる。
【０００３】
図１０は従来のＪＴＡＧデバイスの構成図である。図１０のＪＴＡＧデバイスは、フラッシュコントローラ１０１およびフラッシュメモリ１０２によって構成されたＩＰコアのフラッシュコントローラ１０１にバウンダリスキャン回路を設けたものである。
【０００４】
従来のバウンダリスキャン回路は、バウンダリ・スキャン・レジスタＢＳＲと、ＴＡＰ（Ｔｅｓｔ　Ａｃｃｅｓｓ　Ｐｏｒｔ）（ＴＤＩ（Ｔｅｓｔ　Ｄａｔａ　Ｉｎ），ＴＣＫ（Ｔｅｓｔ　ＣｌｏｃＫ），ＴＭＳ（Ｔｅｓｔ　Ｍｏｄｅ　Ｓｅｌｅｃｔ），ＴＤＯ（Ｔｅｓｔ　Ｄａｔａ　Ｏｕｔ））と、ＴＡＰインターフェースＴＡＰＩＦとを備えている。
【０００５】
バウンダリ・スキャン・レジスタＢＳＲは、入力バウンダリ・スキャン・セルＢＳＣＩ（バウンダリ・スキャン・セルＢＳＣ１，ＢＳＣ２）と、出力バウンダリ・スキャン・セルＢＳＣＯ（バウンダリ・スキャン・セルＢＳＣ３，ＢＳＣ４）とによって構成されている。
【０００６】
ＴＤＩは、ＢＳＣ１のシリアルデータ入力ＳＩおよびＴＡＰＩＦに接続され、ＴＣＫ，ＴＭＳは、ＴＡＰＩＦに接続され、ＢＳＣ４のシリアルデータ出力ＳＯおよびＴＡＰＩＦの出力は、ＴＤＯに接続されている。また、ＢＳＣＩ（ＢＳＣ１，ＢＳＣ２）のデータ出力ＤＯは、フラッシュコントローラ１０１の入力に接続され、フラッシュコントローラ１０１の出力は、ＢＳＣＯ（ＢＳＣ３，ＢＳＣ４）のデータ入力ＤＩに接続され、ＢＳＣＯ（ＢＳＣ３，ＢＳＣ４）のデータ出力ＤＯは、フラッシュメモリ１０２の入力に接続されている。また、ＢＳＣ１のシリアルデータ出力ＳＯは、ＢＳＣ２のシリアルデータ入力ＳＩに接続され、ＢＳＣ２のシリアルデータ出力ＳＯは、ＢＳＣ３のシリアルデータ入力ＳＩに接続され、ＢＳＣ３のシリアルデータ出力ＳＯは、ＢＳＣ４のシリアルデータ入力ＳＩに接続されている。
【０００７】
図１１は従来の出力セルＢＳＣＯの回路構成図である。出力セルＢＳＣＯは、入力マルチプレクサＭＵＸ１と、出力マルチプレクサＭＵＸ２と、データ・シフト・フリップ・フロップＦＦ１と、データ・ラッチ・フリップ・フロップＦＦ２とを備えている。また、ＢＳＣＯは、データ入力ＤＩと、データ出力ＤＯと、シフトデータ入力ＳＩと、シフトデータ出力ＳＯと、シフトセレクトＳｈｉｆｔ−ＤＲの入力と、データシフトクロックＣｌｏｃｋ−ＤＲの入力と、データラッチクロックＵｐｄａｔｅ−ＤＲの入力と、モードセレクトＭｏｄｅの入力とを備えている。
【０００８】
ＤＩはＭＵＸ１の入力ＡおよびＭＵＸ２の入力Ａに接続され、ＳＩはＭＵＸ１の入力Ｂに接続され、ＭＵＸ１の出力ＹはＦＦ１のデータ入力Ｄに接続され、ＦＦ１のデータ出力ＱはＳＯおよびＦＦ２のデータ入力Ｄに接続され、ＦＦ２のデータ出力ＱはＭＵＸ２のデータ入力Ｂに接続され、ＭＵＸ２の出力ＹはＤＯに接続されている。また、シフトセレクトＳｈｉｆｔ−ＤＲはＭＵＸ１のセレクト入力Ｓに接続され、データシフトクロックＣｌｏｃｋ−ＤＲはＦＦ１のクロック入力ＣＫに接続され、データラッチクロックＵｐｄａｔｅ−ＤＲはＦＦ２のクロック入力ＣＫに接続され、モードセレクトＭｏｄｅはＭＵＸ２のセレクト入力Ｓに接続されている。
【０００９】
図１２は従来のＴＡＰインターフェースＴＡＰＩＦの構成図である。ＴＡＰＩＦは、ＴＡＰコントローラＴＡＰＣと、命令レジスタＩＲと、命令デコーダＩＤと、マルチプレサＭＵＸと、出力バッファＢＵＦとを備えている。なお、ＴＡＰＣの構成および制御方法に関しては、ＩＥＥＥ１１４９．１（Ｓｔａｎａｒｄ　Ｔｅｓｔ　Ａｃｃｅｓｓ　Ｐｏｒｔ　ａｎｄ　Ｂｏｕｎｄａｒｙ−Ｓｃａｎ　Ａｒｃｈｉｔｅｃｔｕｒｅ）に準ずるものとする。
【００１０】
フラッシュコントローラ１０１のテスト手順について以下に説明する。ＴＣＫおよびＴＭＳによってＴＡＰコントローラＴＡＰＣのステートを制御し、ＴＤＩから命令レジスタＩＲに命令コード（例えばＩＮＴＥＳＴ命令のコード）をシリアル入力する。
【００１１】
また、同様にＴＡＰＣのステートを制御し、ＳＨＩＦＴ−ＤＲステートで、ＴＤＩからバウンダリ・スキャン・レジスタＢＳＲの入力セルＢＳＣＩにテストデータをシリアル入力して、シフトセレクトＳｈｉｆｔ−ＤＲおよびシフトクロックＣｌｏｃｋ−ＤＲによって入力セルＢＳＣＩのシフトフリップフロップＦＦ１にテストデータを取り込み、ＣＡＰＴＵＲＥ−ＤＲステートで、ラッチクロックＵｐｄａｔｅ−ＤＲおよびモードセレクトＭｏｄｅによってＢＳＣＩのラッチフリップフロップＦＦ２およびマルチプレクサＭＵＸ２を介してデータ出力ＤＯからフラッシュコントローラ１０１に上記テストデータを入力する。これによって、フラッシュコントローラ１０１の内部テストが開始される。
【００１２】
上記のテストによるフラッシュコントローラ１０１の出力データは、ＣＡＰＴＵＲＥ−ＤＲステートで、シフトセレクトＳｈｉｆｔ−ＤＲ（ＭＵＸ１の入力Ａをセレクト）およびシフトクロックＣｌｏｃｋ−ＤＲによって出力セルＢＳＣＯのシフトフリップフロップＦＦ１に取り込まれ、ＳＨＩＦＴ−ＤＲステートで、シフトセレクトＳｈｉｆｔ−ＤＲ（ＭＵＸ１の入力Ｂをセレクト）およびシフトクロックＣｌｏｃｋ−ＤＲによってＦＦ１からシフトアウトされ、ＴＤＯからシリアル出力される。
【００１３】
図１３は従来のＪＴＡＧデバイスにおいてのクロックのタイミングチャートである。従来のＪＴＡＧデバイスでは、フラッシュコントローラ１０１を動作させるクロック（システムクロック）ＣＬＫと、入力セルＢＳＣＩおよび出力セルＢＳＣＯのシフトフリップフロップＦＦ１のクロック入力ＣＫ（シフトクロックＣｌｏｃｋ−ＤＲＣｌｏｃｋ−ＤＲ）とは、異なるクロックツリーで構成されている。
【００１４】
【発明が解決しようとする課題】
しかしながら、上記従来のＪＴＥＧデバイスにおいては、フラッシュコントローラ１０１から出力されたデータが出力セルＢＳＣＯを介して被テスト回路でないフラッシュメモリ１０２に伝播するために、フラッシュコントローラ１０１とフラッシュメモリ１０２を個別に独立してテストしなければならず、テスト時間の短縮が困難であるという課題と、フラッシュコントローラ１０１のテスト中にフラッシュメモリ１０２に無用なアクセスを生じる可能性があった。
【００１５】
また、上記従来のＪＴＥＧデバイスにおいては、フラッシュコントローラ１０１を動作させるシステムクロックＣＬＫと、入力セルＢＳＣＩおよび出力セルＢＳＣＯのシフトフリップフロップＦＦ１のクロック入力ＣＫに供給するシフトクロックＣｌｏｃｋ−ＤＲＣｌｏｃｋ−ＤＲとが、別々のクロックツリーで構成されているために、これら複数のクロック間のタイミングを調整してクロックマージンを設計することが困難であり、このことが高速テスト動作の妨げになるという課題があった。
【００１６】
本発明は、このような従来の課題を解決するためになされたものであり、ＩＰコアを短時間でテストできるバウンダリスキャン回路を提供することを目的とするものである。
【００１７】
【課題を解決するための手段】
本発明のバウンダリスキャン回路は、
ＩＰコアのテストのために設けられて上記ＩＰコアとともにＪＴＡＧデバイスを構成するバウンダリスキャン回路において、
上記ＩＰコアを構成する第１の回路の入力に設けられた１つまたは複数の入力バウンダリ・スキャン・セルと、
上記第１の回路の出力と上記ＩＰコアを構成する第２の回路の入力の間に設けられ、上記入力バウンダリ・スキャン・セルとともにバウンダリ・スキャン・レジスタを構成する１つまたは複数の出力バウンダリ・スキャン・セルと、
上記バウンダリ・スキャン・レジスタを制御するＴＡＰインターフェースとを備え、
上記出力バウンダリ・スキャン・セルのラッチフリップフロップのラッチ動作を、入力された命令コードに従って有効または無効する
ことを特徴とする。
【００１８】
【発明の実施の形態】
実施の形態１
図１は本発明の実施の形態１のＪＴＡＧデバイスの構成図である。図１のＪＴＡＧデバイスは、フラッシュコントローラ１０１およびフラッシュメモリ１０２によって構成されたＩＰコアのフラッシュコントローラ１０１にバウンダリスキャン回路を設けたものである。
【００１９】
なお、この実施の形態１の説明（図を含む）において、図１０の従来のものと同じものには同じ符号で表記し、従来のものに相当しかつ異なるものには、従来のものの表記に［１］を付して表記してある。
【００２０】
実施の形態１のバウンダリスキャン回路は、バウンダリ・スキャン・レジスタＢＳＲ［１］と、ＴＡＰ（Ｔｅｓｔ　Ａｃｃｅｓｓ　Ｐｏｒｔ）（テストデータ入力ＴＤＩ，テストクロックＴＣＫ，テストモードセレクトＴＭＳ，テストデータ出力ＴＤＯのポート）と、ＴＡＰインターフェースＴＡＰＩＦ［１］とを備えている。このように、実施の形態１のバウンダリスキャン回路は、従来のバウンダリスキャン回路において、バウンダリ・スキャン・レジスタＢＳＲをＢＳＲ［１］に変更し、ＴＡＰインターフェースＴＡＰＩＦをＴＡＰＩＦ［１］に変更したものである。
【００２１】
実施の形態１のバウンダリ・スキャン・レジスタＢＳＲ［１］は、入力バウンダリ・スキャン・セルＢＳＣＩ（バウンダリ・スキャン・セルＢＳＣ１，ＢＳＣ２）と、出力バウンダリ・スキャン・セルＢＳＣＯ［１］（バウンダリ・スキャン・セルＢＳＣ３［１］，ＢＳＣ４［１］）とによって構成されている。このように、実施の形態１のＢＳＲ［１］は、従来のＢＳＲ（図１０参照）において、ＢＳＣＯ（ＢＳＣ３，ＢＳＣ４）をＢＳＣＯ［１］（ＢＳＣ３［１］，ＢＳＣ４［１］）に変更したものである。
【００２２】
図２は実施の形態１の出力セルＢＳＣＯ［１］の回路構成図である。実施の形態１の出力セルＢＳＣＯ［１］は、入力マルチプレクサＭＵＸ１と、出力マルチプレクサＭＵＸ２と、シフトフリップフロップＦＦ１と、ラッチフリップフロップＦＦ２とアンドゲートＡＮＤとを備えている。また、実施の形態１のＢＳＣＯ［１］は、データ入力ＤＩと、データ出力ＤＯと、シフトデータ入力ＳＩと、シフトデータ出力ＳＯと、データ・レジスタ・シフト・セレクトＳｈｉｆｔ−ＤＲの入力と、データ・レジスタ・シフト・クロックＣｌｏｃｋ−ＤＲの入力と、データ・レジスタ・ラッチ・クロックＵｐｄａｔｅ−ＤＲの入力と、データ・レジスタ・ラッチ・イネーブルＵｐｄａｔｅ−Ｅｎと、モードセレクトＭｏｄｅの入力とを備えている。
【００２３】
このように実施の形態１の出力セルＢＳＣＯ［１］は、従来の出力セルＢＳＣＯ（図１１参照）において、ラッチイネーブルＵｐｄａｔｅ−Ｅｎの入力およびアンドゲートＡＮＤを設けたものである。アンドゲートＡＮＤには、ラッチクロックＵｐｄａｔｅ−ＤＲおよびラッチイネーブルＵｐｄａｔｅ−Ｅｎが入力され、アンドゲートＡＮＤの出力は、ラッチフリップフロップＦＦ２のクロック入力ＣＫに接続されている。
【００２４】
図３は実施の形態１のＴＡＰインターフェースＴＡＰＩＦ［１］の構成図である。実施の形態１のＴＡＰＩＦ［１］は、ＴＡＰコントローラＴＡＰＣと、命令レジスタＩＲと、命令デコーダＩＤ［１］と、マルチプレサＭＵＸと、バッファＢＵＦとを備えている。このように、実施の形態１のＴＡＰＩＦ［１］は、従来のＴＡＰインターフェースＴＡＰＩＦ（図１２参照）において、命令デコーダＩＤをＩＤ［１］に変更したものである。
【００２５】
ＴＡＰＣは、テストクロックＴＣＫの立上りエッジでテストモードセレクトＴＭＳをサンプリングし、ＴＭＳの値に従ってそのステートを遷移する。そして、遷移したステートに応じて、データ・レジスタ・シフト・セレクトＳｈｉｆｔ−ＤＲ，データ・レジスタ・シフト・ロックＣｌｏｃｋ−ＤＲ，データ・レジスタ・ラッチ・クロックＵｐｄａｔｅ−ＤＲを生成してバウンダリ・スキャン・レジスタＢＳＲ１に供給し、インストラクション・レジスタ・シフト・セレクトＳｈｉｆｔ−ＩＲ，インストラクション・レジスタ・シフト・クロックＣｌｏｃｋ−ＩＲ，インストラクション・レジスタ・ラッチ・クロックＵｐｄａｔｅ−ＩＲを生成して命令レジスタＩＲ１に供給し、出力セレクトＳｅｌｅｃｔをマルチプレサＭＵＸに供給し、出力イネーブルＥｎａｂｌｅをバッファＢＵＦに供給する。
【００２６】
命令レジスタＩＲは、４ビットのレジスタであり、Ｓｈｉｆｔ−ＩＲ，Ｃｌｏｃｋ−ＩＲ，Ｕｐｄａｔｅ−ＩＲに従って、ＴＤＩから入力された命令コードをラッチし、その命令コードを命令デコーダＩＤ１にパラレル出力し、またはその命令コードをマルチプレクサＭＵＸにシリアル出力する。なお、上記の命令コードには、パブリック命令（必須命令およびオプション命令）のコードの他に、プライベート命令のコードを設定できる。
【００２７】
実施の形態１の命令デコーダＩＤ［１］は、命令レジスタＩＲから入力された命令コードをデコードし、命令コードに従って、データ・レジスタ・ラッチ・イネーブルＵｐｄａｔｅ−ＥｎおよびモードセレクトＭｏｄｅをＢＳＲ［１］に供給する。この実施の形態１のＩＤ［１］は、従来の命令デコーダＩＤ（図１２参照）において、命令コードに従ってＵｐｄａｔｅ−Ｅｎを生成する手段を設けたものである。なお、ＩＤ１は、バイパスレジスタやその他のオプションレジスタ、およびこれらのレジスタの出力も併せて制御する。
【００２８】
マルチプレサＭＵＸは、ＢＳＲ１の出力またはＩＲの出力のいずれかを、出力セレクトＳｅｌｅｃｔに従って出力する。また、バッファＢＵＦは、出力イネーブルＥｎａｂｌｅによってイネーブルになったときに、マルチプレサＭＵＸの出力をＴＤＯに出力する。
【００２９】
図４はＴＡＰコントローラＴＡＰＣのステートの遷移を説明するフローチャートである。図４において、ＴＥＳＴ　ＬＯＧＩＣ　ＲＥＳＥＴ，ＲＵＮ−ＴＥＳＴ／ＩＤＥＬＥ，ＳＥＬＥＣＴ−ＤＲ−ＳＣＡＮ，ＣＡＰＴＵＲＥ−ＤＲ，ＳＨＩＦＴ−ＤＲ，ＥＸＩＴ１−ＤＲ，ＰＡＵＳＥ−ＤＲ，ＥＸＩＴ２−ＤＲ，ＵＰＤＡＴＥ−ＤＲ，ＳＥＬＥＣＴ−ＩＲ−ＳＣＡＮ，ＣＡＰＴＵＲＥ−ＩＲ，ＳＨＩＦＴ−ＩＲ，ＥＸＩＴ１−ＩＲ，ＰＡＵＳＥ−ＩＲ，ＥＸＩＴ２−ＩＲ，ＵＰＤＡＴＥ−ＩＲは、ＴＡＰＣのステート名であり、計１６ステートある。
【００３０】
上記１６ステートの内、ＳＥＬＥＣＴ−ＤＲ−ＳＣＡＮ、ＣＡＰＴＵＲＥ−ＤＲ，ＳＨＩＦＴ−ＤＲ，ＥＸＩＴ１−ＤＲ，ＰＡＵＳＥ−ＤＲステート，ＥＸＩＴ２−ＤＲ，ＵＰＤＡＴＥ−ＤＲは、データパス（データレジスタ（バウンダリ・スキャン・レジスタやオプションのレジスタ）についてのステートのパス）を構成しており、ＳＥＬＥＴ−ＩＲ−ＳＣＡＮステート，ＣＡＰＴＵＲＥ−ＩＲ，ＳＨＩＦＴ−ＩＲ，ＥＸＩＴ１−ＩＲ，ＰＡＵＳＥ−ＩＲ，ＥＸＩＴ２−ＩＲは、インストラクションパス（命令レジスタについてのステートのパス）を構成している。
【００３１】
図４において、０，１はＴＭＳの値であり、ＴＡＰＣはＴＣＫの立上りエッジにおいてのＴＭＳの値に従ってステートを遷移させる。
【００３２】
ＴＡＰＣの１６のステートの内、特にＣＡＰＴＵＲＥ（ＣＡＰＴＵＲＥ−ＤＲ，ＣＡＰＴＵＲＥ−ＩＲ）ステート，ＳＨＩＦＴ（ＳＨＩＦＴ−ＤＲ，ＳＨＩＦＴ−ＩＲ）ステート，ＵＰＤＡＴＥ（ＵＰＤＡＴＥ−ＤＲ，ＵＰＤＡＴＥ−ＩＲ）ステートでの動作が重要であり、その他のステートは、流れを切り換えるためのステートである。
【００３３】
ＣＡＰＴＵＲＥ−ＤＲステートでは、バウンダリ・スキャン・レジスタＢＳＲ１の入力セルＢＳＣＩおよび出力セルＢＳＣＯ［１］において、シフトセレクトＳｈｉｆｔ−ＤＲによって入力マルチプレクサＭＵＸ１の入力Ａがセレクトされ、ＤＩから入力されたデータがシフトクロックＣｌｏｃｋ−ＤＲによってシフトフリップフロップＦＦ１に取り込まれる。ＤＩのデータは、入力セルＢＳＣＩではフラッシュコントローラ１０１に入力されるデータであり、出力セルＢＳＣＯ［１］ではフラッシュコントローラ１０１から出力されたデータである。なお、ＣＡＰＴＵＲＥ−ＩＲステートでは、Ｓｈｉｆｔ−ＩＲおよびＣｌｏｃｋ−ＩＲによってＩＲステータスワード（固定のデータ）が命令レジスタＩＲに取り込まれる。
【００３４】
ＳＨＩＦＴ−ＤＲステートでは、バウンダリ・スキャン・レジスタＢＳＲ１の入力セルＢＳＣＩおよび出力セルＢＳＣＯ［１］において、シフトセレクトＳｈｉｆｔ−ＤＲによって入力マルチプレクサＭＵＸ１の入力Ｂがセレクトされ、シフトクロックＣｌｏｃｋ−ＤＲによって、シフトフリップフロップＦＦ１のデータがシフトデータ出力ＳＯからシフトアウトされて、ＴＤＩあるいは前段のＢＳＣＩまたはＢＳＣＯ［１］のＳＯからシフトデータ入力ＳＩに入力されたデータがシフトフリップフロップＦＦ１にシフトインされる。つまり、セルＢＳＣ−０，ＢＳＣ−１，ＢＳＣ１−２，ＢＳＣ１−３のＦＦ１で構成されたシフトレジスタのデータが１ビットシフトされる。なお、ＳＨＩＦＴ−ＩＲステートでは、命令レジスタＩＲのデータが１ビットシフトされる。
【００３５】
ＵＰＤＡＴＥ−ＤＲステートでは、ＢＳＲ１の入力セルＢＳＣＩおよび出力セルＢＳＣＯ［１］において、シフトフリップフロップＦＦ１のデータがラッチクロックＵｐｄａｔｅ−ＤＲによってラッチフリップフロップＦＦ２に取り込まれ、モードセレクトＭｏｄｅによって出力マルチプレクサＭＵＸ２の入力Ｂがセレクトされる。つまり、シフトフリップフロップＦＦ１のデータがＦＦ２およびＭＵＸ２を介してＤＯに出力される。ただし、出力セルＢＳＣＯ［１］においては、ラッチイネーブルＵｐｄａｔｅ−Ｅｎ＝１のときにのみ、ＦＦ１のデータがＦＦ２に取り込まれてＤＯに出力され、Ｕｐｄａｔｅ−Ｅｎ＝０のときには、アンドゲートＡＮＤによってＵｐｄａｔｅ−ＤＲがＦＦ２のクロック入力ＣＫに入力されないので、ＦＦ２はラッチ動作をせず、ＦＦ１のデータはＤＯに出力されない。なお、ＵＰＤＡＴＥ−ＩＲステートでは、命令レジスタＩＲの４ビットデータがＵｐｄａｔｅ−ＩＲによって命令デコーダＩＤにパラレル出力される。
【００３６】
図５は本発明の実施の形態１の動作を説明するタイミングチャート、図６は本発明の実施の形態１の動作を説明するフローチャートである。図５および図６を用いて、実施の形態１の特徴となる動作を以下に説明する。
【００３７】
［ステップ１−１１］
ＴＡＰコントローラＴＡＰＣは、ステップ１でＲＵＮ−ＴＥＳＴ／ＩＤＥＬＥ（図５の表記ではＩｄｌｅ）ステートであり、ステップ２でＳＥＬＥＣＴ−ＤＲ−ＳＣＡＮ（Ｓｅｌｅ）ステートになり、ステップ３でＳＥＬＥＣＴ−ＩＲ−ＳＣＡＮ（Ｓｅｌｅ）ステートになり、ステップ４でＣＡＰＴＵＲＥ−ＩＲ（Ｃａｐ）ステートになり、ステップ５−８でＳＨＩＦＴ−ＩＲ（ｓｈｉｆｔ）ステートになり、ステップ９でＥＸＩＴ１−ＩＲ（Ｅｘｉｔ）モードになり、ステップ１０でＵＰＤＡＴＥ−ＩＲ（Ｕｐｄ）ステートなり、ステップ１１でＲＵＮ−ＴＥＳＴ／ＩＤＥＬＥ（Ｉｄｌｅ）ステートに戻る。
【００３８】
上記ステップ５−８のＳＨＩＦＴ−ＩＲステートで、ＴＤＩから命令レジスタＩＤに、出力セルＢＳＣＯ［１］においてラッチクロックＵｐｄａｔｅ−ＤＲが有効となるＡ命令コード（例えばプライベート命令のコード）を入力し、上記ステップ１０のＵＰＤＡＴＥ−ＩＲで、上記のＡ命令コードを命令レジスタＩＤから命令デコーダＩＤに出力させる。これによって、命令デコーダＩＤから出力セルＢＳＣＯ［１］に供給されるラッチイネーブルＵｐｄａｔｅ−Ｅｎの値は１となり、バウンダリ・スキャン・レジスタＢＳＲ１は、出力セルＢＳＣＯ［１］においてのラッチクロックＵｐｄａｔｅ−ＤＲが有効な設定になる。
【００３９】
［ステップ１２−１５］
ＴＡＰＣは、ステップ１２でＳＥＬＥＣＴ−ＤＲ−ＳＣＡＮ（Ｓｅｌｅ）ステートになり、ステップ１３でＣＡＰＴＵＲＥ−ＤＲ（Ｃａｐ）ステートになり、ステップ１４でＥＸＩＴ１−ＤＲ（Ｅｘｉｔ）モードになり、ステップ１５でＵＰＤＡＴＥ−ＤＲ（Ｕｐｄ）ステートなり、ステップ１１でＲＵＮ−ＴＥＳＴ／ＩＤＥＬＥ（Ｉｄｌｅ）ステートに戻る。
【００４０】
上記ステップ１３になる前に、フラッシュコントローラ１０１は、フラッシュメモリ１０２を制御するための任意のデータ（例えばフラッシュメモリ１０２を不活性にするデータ）を出力している。
【００４１】
上記ステップ１３のＣＡＰＴＵＲＥ−ＤＲステートでは、シフトセレクトＳｈｉｆｔ−ＤＲによって入力マルチプレクサＭＵＸ１の入力Ｂをセレクトし、シフトクロックＣｌｏｃｋ−ＤＲによってフラッシュコントローラ１０１から出力された上記任意の制御データ（例えばフラッメモリをが非活性にするデータ）をＢＳＣＯ［１］のシフトフリップフロップＦＦ１に取り込む。
【００４２】
上記ステップ１５のＵＰＤＡＴＥ−ＤＲステートでは、シフトフリップフロップＦＦ１に取り込んだ上記任意の制御データをラッチクロックＵｐｄａｔｅ−ＤＲ（ラッチイネーブルＵｐｄａｔｅ−Ｅｎ＝１であってＵｐｄａｔｅ−ＤＲは有効になっている）によってＢＳＣＯ［１］のラッチフリップフロップＦＦ２に取り込み、モードセレクトＭｏｄｅによって出力マルチプレクサＭＵＸ２の入力Ｂをセレクトし、上記任意の制御データをデータ出力ＤＯからフラッシュメモリ１０２に出力する。
【００４３】
なお、フラッシュメモリ１０２を制御するための任意のデータ（例えばフラッシュメモリ１０２を不活性にするデータ）をＴＤＩから入力し、上記ステップ１３のＣＡＰＴＵＲＥ−ＤＲステートに代えて、ＳＨＩＦＴ−ＤＲステートによってシフトフリップフロップＦＦ１に取り込むことも可能である。
【００４４】
［ステップ１７−２６］
ＴＡＰＣは、ステップ１７でＳＥＬＥＣＴ−ＤＲ−ＳＣＡＮ（Ｓｅｌｅ）ステートになり、ステップ１８でＳＥＬＥＣＴ−ＩＲ−ＳＣＡＮ（Ｓｅｌｅ）ステートになり、ステップ１９でＣＡＰＴＵＲＥ−ＩＲ（Ｃａｐ）ステートになり、ステップ２０−２３でＳＨＩＦＴ−ＩＲ（ｓｈｉｆｔ）ステートになり、ステップ２４でＥＸＩＴ１−ＩＲ（Ｅｘｉｔ）モードになり、ステップ２５でＵＰＤＡＴＥ−ＩＲ（Ｕｐｄ）ステートなり、ステップ２６でＲＵＮ−ＴＥＳＴ／ＩＤＥＬＥ（Ｉｄｌｅ）ステートに戻る。
【００４５】
上記ステップ２０−２３のＳＨＩＦＴ−ＩＲステートで、ＴＤＩから命令レジスタＩＤに、出力セルＢＳＣＯ［１］においてラッチクロックＵｐｄａｔｅ−ＤＲが無効となるＢ命令コード（例えばプライベート命令のコード）を入力し、上記ステップ２５のＵＰＤＡＴＥ−ＩＲで、上記のＢ命令コードを命令レジスタＩＤから命令デコーダＩＤに出力させる。
【００４６】
これによって、命令デコーダＩＤから出力セルＢＳＣＯ［１］に供給されるラッチイネーブルＵｐｄａｔｅ−Ｅｎの値は０となり、バウンダリ・スキャン・レジスタＢＳＲ１は、出力セルＢＳＣＯ［１］においてのラッチクロックＵｐｄａｔｅ−ＤＲが無効な設定になる。従って、出力セルＢＳＣＯ［１］のデータ出力ＤＯからフラッシュメモリ１０２に出力されるデータは、上記任意の制御データ（例えばフラッシュメモリ１０２を非活性にするデータ）に保持される。これ以降、フラッシュメモリ１０２に誤り書き込みなどの無用なアクセスをすることなく、フラッシュコントローラの１０１のテストが可能になる。
【００４７】
［ステップ２７−３３］
ＴＡＰＣは、ステップ２７でＳＥＬＥＣＴ−ＤＲ−ＳＣＡＮ（Ｓｅｌｅ）ステートになり、ステップ２８でＣＡＰＴＵＲＥ−ＤＲ（Ｃａｐ）ステートになり、ステップ２９−３２でＳＨＩＦＴ−ＤＲ（ｓｈｉｆｔ）ステートになり、ステップ３３でＥＸＩＴ１−ＩＲ（Ｅｘｉｔ）モードになる。
【００４８】
上記ステップ２８になる前に、フラッシュコントローラ１０１には、テストのためのデータが入力され、そのテストによるデータがフラッシュコントローラ１０１から出力されている。
【００４９】
上記ステップ２８のＣＡＰＴＵＲＥ−ＤＲステートでは、シフトセレクトＳｈｉｆｔ−ＤＲによって入力マルチプレクサＭＵＸ１の入力Ａをセレクトし、ＤＩから入力されたデータをシフトクロックＣｌｏｃｋ−ＤＲによってシフトフリップフロップＦＦ１に取り込む。これによって、出力セルＢＳＣＯ［１］では、上記のテストによってフラッシュコントローラ１０１から出力されたデータがシフトフリップフロップＦＦ１に取り込まれる。
【００５０】
上記ステップ２９−３２のＳＨＩＦＴ−ＤＲステートでは、シフトセレクトＳｈｉｆｔ−ＤＲによって入力マルチプレクサＭＵＸ１の入力Ｂをセレクトし、シフトクロックＣｌｏｃｋ−ＤＲによって、シフトフリップフロップＦＦ１のデータをシフトデータ出力ＳＯからシフトアウトする。これによって、上記のテストによるフラッシュコントローラ１０１の出力データがＴＤＯからシリアル出力される。以上で最初のテストが完了し、次のテストが開始される。
【００５１】
以上のように実施の形態１によれば、ラッチクロックＵｐｄａｔｅ−ＤＲと、このＵｐｄａｔｅ−ＤＲの有効または無効にするためのラッチイネーブルＵｐｄａｔｅ−ＥｎとのアンドゲートＡＮＤの出力を、出力セルＢＳＣＯ［１］のラッチフリップフロップＦＦ２のクロック入力ＣＫに供給することにより、出力セルＢＳＣＯ［１］からフラッシュメモリ１０２に入力するデータを任意の制御データに固定したままで、フラッシュコントローラ１０１の同時テストが可能となるので、誤書き込みなどの無用なアクセスによるフラッシュメモリ１０２のテスト時間の短縮が図れる。
【００５２】
実施の形態２
図７は本発明の実施の形態２のＪＴＡＧデバイスにおいての出力セルＢＳＣＯ［２］の回路構成図である。
【００５３】
この実施の形態２のＪＴＡＧデバイスは、上記実施の形態１のＪＴＡＧデバイス（図１参照）において、バウンダリ・スキャン・レジスタＢＳＲ［１］の出力セルＢＳＣＯ［１］（図２参照）を図７のＢＳＣＯ［２］に変更し、入力セルＢＳＣＩをＢＳＣＩ［２］に変更し、ＴＡＰインターフェースＴＡＰＩＦ［１］のＴＡＰコントローラＴＡＰＣ（図３参照）をＴＡＰＣ［２］に変更したものである。
【００５４】
なお、この実施の形態１の説明（図を含む）において、図１−図３の上記実施の形態１のものと同じものには同じ符号で表記し、上記実施の形態１のものに相当しかつ異なるものには、上記実施の形態１のものの表記に［２］を付してまたは［１］を［２］に変えて表記してある。
【００５５】
実施の形態２の出力セルＢＳＣＯ［２］は、上記実施の形態１の出力セルＢＳＣＯ［１］（図２参照）において、シフトフリップフロップＦＦ１をＦＦ１［２］に変更したものである。また、実施の形態２の入力セルＢＳＣＩ［２］は、上記実施の形態１の入力セルＢＳＣＩにおいて、シフトフリップフロップＦＦ１をＦＦ１［２］に変更したものである。
【００５６】
実施の形態２のシフトフリップフロップＦＦ１［２］は、入力クロックのネガティブエッジ（立下り）で動作するネガティブエッジトリガーフリップフロップで構成されている。シフトクロックＣｌｏｃｋ−ＤＲは、このネガティブエッジトリガーのＦＦ１［２］のクロック入力ＣＫＮに入力される。
【００５７】
図８は本発明の実施の形態２のＪＴＡＧデバイスにおいてのクロックのタイミングチャートである。実施の形態２のＪＴＡＧデバイスでは、フラッシュコントローラ１０１を動作させるクロック（システムクロック）ＣＬＫと、入力セルＢＳＣＩ［２］および出力セルＢＳＣＯ［２］のシフトフリップフロップＦＦ１［２］（ネガティブエッジトリガーのフリップフロップのクロック入力ＣＫＮ（シフトクロックＣｌｏｃｋ−ＤＲ）とは、同じクロックツリーで構成されている。
【００５８】
実施の形態２のＴＡＰコントローラＴＡＰＣ［２］は、上記実施の形態１のＴＡＰＣにおいて、シフトクロックＣｌｏｃｋ−ＤＲをシステムクロックＣＬＫと同じクロックツリーで生成する構成にしたものである。
【００５９】
この実施の形態２では、システムクロックＣＬＫのポジティブエッジ（立上り）で、フラッシュコントローラ１０１から出力され、出力セルＢＳＣＯ［２］のデータ入力ＤＩおよび入力マルチプレクサＭＵＸ１を介してシフトフリップフロップＦＦ１［２］の入力Ｄに入力されたデータが、シフトクロックＣｌｏｃｋ−ＤＲのネガティブエッジ（＝システムクロックＣＬＫのネガティブエッジ）で、シフトフリップフロップＦＦ１［２］に取り込まれ、ＦＦ１［２］の出力Ｑからシフトデータ出力ＳＯにシフト出力される。
【００６０】
以上のように実施の形態２によれば、上記実施の形態１のシフトフリップフロップＦＦ１を、ネガティブエッジトリガーのシフトフリップフロップＦＦ１［１］に置き換え、このＦＦ１［１］にシステムクロック（フラッシュコントローラ１０１の動作クロック）と同じクロックツリーで構成したシフトクロックＣｌｏｃｋ−ＤＲを入力することにより、シフトフリップフロップのデータ入力Ｄにおいてのセットアップタイムおよびホールドタイムを確実に確保でき、フラッシュコントローラ１０１とバウンダリスキャン回路の複数のクロック間のタイミングを気にせずにＪＴＥＧデバイスを設計できるので、クロックサイクルをより高速にでき、上記実施の形態１よりも高速なテスト動作が可能になる。
【００６１】
実施の形態３
図９は本発明の実施の形態３のＪＴＡＧデバイスにおいての出力セルＢＳＣＯ［３］の回路構成図である。
【００６２】
この実施の形態３のＪＴＡＧデバイスは、上記実施の形態２のＪＴＡＧデバイスにおいて、出力セルＢＳＣＯ［２］（図７参照）を図９のＢＳＣＯ［３］に変更し、命令デコーダＩＲ［１］（図３参照）をＩＲ［３］に変更したものである。
【００６３】
なお、この実施の形態１の説明（図を含む）において、図１−図３の上記実施の形態１のものまたは図７の上記実施の形態２のものと同じものには同じ符号で表記し、上記実施の形態１または上記実施の形態２のものに相当しかつ異なるものには、上記実施の形態１または上記実施の形態２のもの表記に［３］を付してまたは［１］，［２］を［３］に変えて表記してある。
【００６４】
実施の形態３の出力セルＢＳＣＯ［３］は、上記実施の形態２の出力セルＢＳＣＯ［２］（図７参照）において、ラッチフリップフロップＦＦ２をＦＦ２［３］に変更したものである。
【００６５】
実施の形態３のラッチフリップフロップＦＦ２［３］は、データセット入力またはデータリセット入力付きのフリップフロップで構成されている。このＦＦ２［３］のデータセット入力Ｓまたはデータリセット入力Ｒには、命令デコーダＩＲ［３］からデータセット／リセットＳｅｔ−ｏｒ−Ｒｅｓｅｔが入力される。
【００６６】
実施の形態３の命令デコーダＩＲ［３］は、上記実施の形態１および上記実施の形態２の命令デコーダＩＲ［１］において、命令コードに従ってデータセット／リセットＳｅｔ−ｏｒ−Ｒｅｓｅｔを生成する手段を設けたものである。
【００６７】
この実施の形態３では、テストの初期動作（フラッシュメモリ１０２に任意の制御データ（例えばフラッシュメモリ１０２を不活性にするデータ）を出力する動作）において、命令デコーダＩＲ［３］からラッチフリップフロップＦＦ２［３］のデータセット入力Ｓまたはリデータセット入力Ｒにデータセット／リセットＳｅｔ−ｏｒ−Ｒｅｓｅｔを入力することによって上記任意の制御データをＦＦ２［３］に設定し、モードセレクトＭｏｄｅによって出力マルチプレクサＭＵＸ２の入力Ｂをセレクトし、Ｂ命令コードを命令レジスタＩＲにセットすることによって、ラッチクロックＵｐｄａｔｅ−ＤＲを無効にして、出力セルＢＳＣＯ［３］のデータ出力ＤＯを上記任意の制御データに固定する。
【００６８】
例えば、上記任意の制御データを値１に固定するＦＦ２［３］は、データセット入力付きのフリップフロップで構成し、上記任意の制御データを値０に固定するＦＦ２［３］は、データリセット入力付きのフリップフロップで構成する。
【００６９】
以上のように実施の形態３によれば、上記実施の形態２のラッチフリップフロップＦＦ２を、データセット入力またはデータリセット付きのラッチフリップフロップＦＦ２［３］に置き換え、テストの初期動作において、このＦＦ２［３］にデータセット／リセットＳｅｔ−ｏｒ−Ｒｅｓｅｔを入力することにより、Ａ命令コードのセットおよびフラッシュコントローラ１０１の出力についてのＣＡＰＴＵＲＥ−ＤＲ（Ｃａｐ）ステートおよびＵＰＤＡＴＥ−ＤＲ（Ｕｐｄ）ステート（図５のステップ１３およびステップ１５）の制御をせずに、フラッシュメモリ１０２の入力を任意の制御データで固定にすることができるので、テストサイクルを削減でき、上記実施の形態２よりも高速なテスト動作が可能になる。
【００７０】
【発明の効果】
以上説明したように本発明によれば、出力バウンダリ・スキャン・セルから第２の回路に出力されるデータを固定したまま、第１の回路の同時テストができるので、ＩＰコアのテスト時間の短縮が図れるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態１のＪＴＡＧデバイスの構成図である。
【図２】図１のＪＴＡＧデバイスにおいての出力バウンダリ・スキャン・セルの回路構成図である。
【図３】図１のＪＴＡＧデバイスにおいてのＴＡＰインターフェースの構成図である。
【図４】ＴＡＰコントローラのステートの遷移を説明するフローチャートである。
【図５】図１のＪＴＡＧデバイスの動作を説明するタイミングチャートである。
【図６】図１のＪＴＡＧデバイスの動作を説明するフローチャートである。
【図７】本発明の実施の形態２のＪＴＡＧデバイスにおいての出力バウンダリ・スキャン・セルの回路構成図である。
【図８】本発明の実施の形態２のＪＴＡＧデバイスにおいてのクロックのタイミングチャートである。
【図９】本発明の実施の形態３のＪＴＡＧデバイスにおいての出力バウンダリ・スキャン・セルの回路構成図である。
【図１０】従来のＪＴＡＧデバイスの構成図である。
【図１１】図１０のＪＴＡＧデバイスにおいての出力バウンダリ・スキャン・セルの回路構成図である。
【図１２】図１０のＪＴＡＧデバイスにおいてのＴＡＰインターフェースの構成図である。
【図１３】図１０のＪＴＡＧデバイスにおいてのクロックのタイミングチャートである。
【符号の説明】
１０１　フラッシュコントローラ、　１０２　フラッシュメモリ、　ＢＳＲ　バウンダリ・スキャン・レジスタ、　ＢＳＣＩ　入力バウンダリ・スキャン・セル、　ＢＳＣＯ　出力バウンダリ・スキャン・セル、　ＭＵＸ１　入力マルチプレクサ、　ＭＵＸ２　出力マルチプレクサ、　ＦＦ１　シフトフリップフロップ、　ＦＦ２　ラッチフリップフロップ、　ＴＡＰＩＦ　ＴＡＰインターフェース、　ＴＡＰＣ　ＴＡＰコントローラ、　ＩＲ　命令レジスタ、　ＩＤ　命令デコーダ、　ＭＵＸ　マルチプレクサ、　ＢＵＦ　出力バッファ。
【図１】
2004045244.tif 000003
【図２】
2004045244.tif 000004
【図３】
2004045244.tif 000005
【図４】
2004045244.tif 000006
【図５】
2004045244.tif 000007
【図６】
2004045244.tif 000008
【図７】
2004045244.tif 000009
【図８】
2004045244.tif 000010
【図９】
2004045244.tif 000011
【図１０】
2004045244.tif 000012
【図１１】
2004045244.tif 000013
【図１２】
2004045244.tif 000014
【図１３】
2004045244.tif 000015