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