(57)【要約】【課題】スキャンテストの実行に関わる不都合又は弊害の抑制に寄与する。【解決手段】ロジック回路と、ロジック回路の入力データ又は出力データを保持し、ロジック回路のスキャンテストを行うためのスキャンチェーンを形成可能な複数のスキャンフリップフロップ回路と、を備えた半導体集積回路において、各スキャンフリップフロップ回路（１００）は、スキャンテストのためのスキャンデータ（ＳＤ）の入力を受けるスキャンデータ入力部（１０３）と、スキャンデータと異なる通常データ（Ｄ）の入力を受ける通常データ入力部（１０１）と、通常データとスキャンデータを別個に保持可能なデータ保持部（１２０、１３０）と、を備える。【選択図】図４
2020165780.tif 000002
【特許請求の範囲】
【請求項１】
ロジック回路と、
前記ロジック回路の入力データ又は出力データを保持し、前記ロジック回路のスキャンテストを行うためのスキャンチェーンを形成可能な複数のスキャンフリップフロップ回路と、を備えた半導体集積回路において、
各スキャンフリップフロップ回路は、
前記スキャンテストのためのスキャンデータの入力を受けるスキャンデータ入力部と、
前記スキャンデータと異なる通常データの入力を受ける通常データ入力部と、
前記通常データと前記スキャンデータを別個に保持可能なデータ保持部と、を備える
ことを特徴とする半導体集積回路。
【請求項２】
前記スキャンテストの際に前記スキャンチェーンに供給されるテストパターンデータを生成するとともに、各スキャンフリップフロップ回路に対して入力選択信号及び出力選択信号を供給するテストパターン生成回路を更に備え、
各スキャンフリップフロップ回路は、
前記入力選択信号に基づき前記通常データ又は前記スキャンデータを選択して出力する入力選択回路と、
前記入力選択回路からのデータを第１クロック信号に基づき取り込んで保持する第１保持回路と、
前記入力選択回路からのデータを第２クロック信号に基づき取り込んで保持する第２保持回路と、
前記出力選択信号に基づき前記第１保持回路の保持データ又は前記第２保持回路の保持データを選択して出力する出力選択回路と、を備える
ことを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
各スキャンフリップフロップ回路において、前記入力選択信号に基づき前記入力選択回路にて前記スキャンデータが選択され、且つ、前記第１保持回路及び前記第２保持回路の内、前記スキャンデータを保持するための保持回路の保持データが前記出力選択信号に基づき前記出力選択回路にて選択されることで、前記スキャンチェーンが形成される
ことを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記複数のスキャンフリップフロップ回路は、前記ロジック回路への入力データを保持する第１スキャンフリップフロップ群と、前記ロジック回路からの出力データを保持する第２スキャンフリップフロップ群と、から成り、
前記第１スキャンフリップフロップ群を構成する各スキャンフリップフロップ回路に対して前記通常データが供給するデータ入力回路が更に設けられ、
前記データ入力回路からの前記通常データが前記第１スキャンフリップフロップ群を通じて前記ロジック回路に供給されることで、前記データ入力回路からの前記通常データに基づく通常動作が実行され、
各スキャンフリップフロップ回路において、前記第１保持回路及び前記第２保持回路の内、何れか一方の保持回路にて前記通常動作における前記通常データが保持され、他方の保持回路にて前記スキャンデータが保持される
ことを特徴とする請求項２又は３に記載の半導体集積回路。
【請求項５】
間隔をおいてＮ回の通常動作が順次実行される過程において、第１回目の通常動作の実行区間と第Ｎ回目の通常動作の実行区間との間に存在する（Ｎ−１）個の間隔を用い、前記スキャンテストにおける動作を分散して実行する（Ｎは３以上の整数）
ことを特徴とする請求項４に記載の半導体集積回路。
【請求項６】
周期的に信号レベルが第１及び第２レベル間で変化する基準クロック信号に基づき、前記第１及び第２クロック信号を生成するクロック信号生成回路を更に備え、
前記クロック信号生成回路は、前記第１クロック信号の信号レベルが前記第１及び第２レベル間で変化する第１区間と、前記第２クロック信号の信号レベルが前記第１及び第２レベル間で変化する第２区間と、を互いに分離して設ける
ことを特徴とする請求項２〜５の何れかに記載の半導体集積回路。
【請求項７】
各スキャンフリップフロップ回路において、
前記第１保持回路は、前記第１区間内における前記第１クロック信号の所定のレベル変化に応じて、前記入力選択回路からのデータを取り込んで保持し、
前記第２保持回路は、前記第２区間内における前記第２クロック信号の所定のレベル変化に応じて、前記入力選択回路からのデータを取り込んで保持する
ことを特徴とする請求項６に記載の半導体集積回路。
【請求項８】
前記スキャンテストの実行タイミングを制御するためのテスト制御信号を生成するテスト制御回路を更に備え、
前記テストパターン生成回路は、前記テスト制御信号に基づいて、前記スキャンチェーンに対して前記テストパターンデータを供給するとともに各スキャンフリップフロップ回路に対して前記入力選択信号及び前記出力選択信号を供給し、
前記クロック信号生成回路は、前記テスト制御信号に基づいて、前記基準クロック信号から前記第１及び第２クロック信号を生成する
ことを特徴とする請求項６又は７に記載の半導体集積回路。
【請求項９】
各スキャンフリップフロップ回路において、
前記第１保持回路は、前記通常動作における前記入力選択回路からの前記通常データを前記第１クロック信号に基づき取り込んで保持する一方、前記第２保持回路は、前記スキャンチェーンが形成されているときに前記入力選択回路からの前記スキャンデータを前記第２クロック信号に基づき取り込んで保持する
ことを特徴とする請求項４又は５に記載の半導体集積回路。
【請求項１０】
第１状態及び第２状態を切り替える切り替え制御部を更に備え、
前記第１状態では、
各スキャンフリップフロップ回路において、前記第１保持回路が前記通常動作における前記入力選択回路からの前記通常データを前記第１クロック信号に基づき取り込んで保持し、且つ、前記第２保持回路が前記スキャンチェーンが形成されているときに前記入力選択回路からの前記スキャンデータを前記第２クロック信号に基づき取り込んで保持し、
前記第２状態では、
各スキャンフリップフロップ回路において、前記第１保持回路が前記スキャンチェーンが形成されているときに前記入力選択回路からの前記スキャンデータを前記第１クロック信号に基づき取り込んで保持し、且つ、前記第２保持回路が前記通常動作における前記入力選択回路からの前記通常データを前記第２クロック信号に基づき取り込んで保持する
ことを特徴とする請求項４又は５に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関する。
【背景技術】
【０００２】
テスト容易化設計技術を用いた半導体集積回路の故障診断技術（故障検査技術）として、スキャンテストが知られている。図１３に、スキャンテストが可能に構成された半導体集積回路としてのデータ処理装置９０１の構成を示す。データ処理装置９０１には、ロジック回路９１２への入力データを保持するスキャンフリップフロップ回路群９１１と、ロジック回路９１２からの出力データを保持するスキャンフリップフロップ回路群９１３と、が設けられる。回路群９１１及び９１３の夫々は、複数のスキャンフリップフロップ回路（以下、ＳＦＦと称する）から成る。回路群９１１及び９１３を構成する各ＳＦＦはクロック信号ＣＬＫ’に同期してデータのラッチ動作を行う。
【０００３】
テストパターン生成回路９２０は、スキャンテストにおいて各ＳＦＦに必要な信号を供給することで複数のＳＦＦがシリアル接続されたスキャンチェーンを形成し、スキャンチェーンにテストパターンデータを供給する。テストパターンデータはロジック回路９１２の故障の有無の診断に有益なデータである。テストパターンデータを構成するデータはスキャンデータとして、スキャンチェーンの初段に送られる。
【０００４】
スキャンテストでは、回路群９１１から成るスキャンチェーンにシフト動作を行わせることでテストパターンデータを当該スキャンチェーンに保持させる。その後、テストパターンデータをロジック回路９１２に入力したときのロジック回路９１２の出力データを回路群９１３に取り込ませるキャプチャ動作を行う。続いて、回路群９１３から成るスキャンチェーンにシフト動作を行わせることで、スキャンテストによるロジック回路９１２の出力データ、即ちテストパターンデータに基づくロジック回路９１２の出力データをテスト結果評価回路９３０に送る。テスト結果評価回路９３０は、スキャンチェーンから供給されたデータを期待データと比較することで、ロジック回路９１２の故障の有無を判断する。
【０００５】
スキャンテストが行われていない区間では、通常動作が行われる。通常動作では、各ＳＦＦは通常のＤ型フリップフロップ回路として機能し、各ＳＦＦのデータ入力端子に供給された通常データの取り込み及び保持動作を行う。図１４に示す如く、各ＳＦＦは、通常データ又はスキャンデータを選択する入力選択回路９５１と、入力選択回路９５１による選択データをクロック信号ＣＬＫ’に同期して取り込んで保持するＤ型フリップフロップ回路９５２と、から成る。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−１０９５２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図１３のデータ処理装置９０１では、一旦、スキャンテストの動作が開始されると、スキャンテストによる一連の動作が完了するまで通常動作を行うことができない。このため、故障診断に必要な時間分だけ通常動作を停止できないアプリケーション（例えば通信制御系のアプリケーション）には、スキャンテストを適用できない。
【０００８】
また、スキャンテストの動作を行うことで、回路内におけるそれまでのラッチデータが破棄されることになるため、スキャンテストの動作の完了後には、通常動作を初期状態から開始する必要がある。つまり、スキャンテストの動作を行うたびに通常動作がリセットされる。これは、通常動作のリセットが許可されるようなタイミングでしかスキャンテストを実行できないことを意味し、定期的に故障診断を行う方策として図１３の構成は不向きである。
【０００９】
本発明は、スキャンテストの実行に関わる不都合又は弊害の抑制に寄与する半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る半導体集積回路は、ロジック回路と、前記ロジック回路の入力データ又は出力データを保持し、前記ロジック回路のスキャンテストを行うためのスキャンチェーンを形成可能な複数のスキャンフリップフロップ回路と、を備えた半導体集積回路において、各スキャンフリップフロップ回路は、前記スキャンテストのためのスキャンデータの入力を受けるスキャンデータ入力部と、前記スキャンデータと異なる通常データの入力を受ける通常データ入力部と、前記通常データと前記スキャンデータを別個に保持可能なデータ保持部と、を備える構成（第１の構成）である。
【００１１】
上記第１の構成に係る半導体集積回路において、前記スキャンテストの際に前記スキャンチェーンに供給されるテストパターンデータを生成するとともに、各スキャンフリップフロップ回路に対して入力選択信号及び出力選択信号を供給するテストパターン生成回路が更に備えられ、各スキャンフリップフロップ回路は、前記入力選択信号に基づき前記通常データ又は前記スキャンデータを選択して出力する入力選択回路と、前記入力選択回路からのデータを第１クロック信号に基づき取り込んで保持する第１保持回路と、前記入力選択回路からのデータを第２クロック信号に基づき取り込んで保持する第２保持回路と、前記出力選択信号に基づき前記第１保持回路の保持データ又は前記第２保持回路の保持データを選択して出力する出力選択回路と、を備える構成（第２の構成）であっても良い。
【００１２】
上記第２の構成に係る半導体集積回路に係り、各スキャンフリップフロップ回路において、前記入力選択信号に基づき前記入力選択回路にて前記スキャンデータが選択され、且つ、前記第１保持回路及び前記第２保持回路の内、前記スキャンデータを保持するための保持回路の保持データが前記出力選択信号に基づき前記出力選択回路にて選択されることで、前記スキャンチェーンが形成される構成（第３の構成）であっても良い。
【００１３】
上記第２又は第３の構成に係る半導体集積回路において、前記複数のスキャンフリップフロップ回路は、前記ロジック回路への入力データを保持する第１スキャンフリップフロップ群と、前記ロジック回路からの出力データを保持する第２スキャンフリップフロップ群と、から成り、前記第１スキャンフリップフロップ群を構成する各スキャンフリップフロップ回路に対して前記通常データが供給するデータ入力回路が更に設けられ、前記データ入力回路からの前記通常データが前記第１スキャンフリップフロップ群を通じて前記ロジック回路に供給されることで、前記データ入力回路からの前記通常データに基づく通常動作が実行され、各スキャンフリップフロップ回路において、前記第１保持回路及び前記第２保持回路の内、何れか一方の保持回路にて前記通常動作における前記通常データが保持され、他方の保持回路にて前記スキャンデータが保持される構成（第４の構成）であっても良い。
【００１４】
上記第４の構成に係る半導体集積回路に係り、間隔をおいてＮ回の通常動作が順次実行される過程において、第１回目の通常動作の実行区間と第Ｎ回目の通常動作の実行区間との間に存在する（Ｎ−１）個の間隔を用い、前記スキャンテストにおける動作を分散して実行する（Ｎは３以上の整数）構成（第５の構成）であっても良い。
【００１５】
上記第２〜第５の構成の何れかに係る半導体集積回路において、周期的に信号レベルが第１及び第２レベル間で変化する基準クロック信号に基づき、前記第１及び第２クロック信号を生成するクロック信号生成回路を更に備え、前記クロック信号生成回路は、前記第１クロック信号の信号レベルが前記第１及び第２レベル間で変化する第１区間と、前記第２クロック信号の信号レベルが前記第１及び第２レベル間で変化する第２区間と、を互いに分離して設ける構成（第６の構成）であっても良い。
【００１６】
上記第６の構成に係る半導体集積回路に係り、各スキャンフリップフロップ回路において、前記第１保持回路は、前記第１区間内における前記第１クロック信号の所定のレベル変化に応じて、前記入力選択回路からのデータを取り込んで保持し、前記第２保持回路は、前記第２区間内における前記第２クロック信号の所定のレベル変化に応じて、前記入力選択回路からのデータを取り込んで保持する構成（第７の構成）であっても良い。
【００１７】
上記第６又は第７の構成に係る半導体集積回路において、前記スキャンテストの実行タイミングを制御するためのテスト制御信号を生成するテスト制御回路が更に備えられ、前記テストパターン生成回路は、前記テスト制御信号に基づいて、前記スキャンチェーンに対して前記テストパターンデータを供給するとともに各スキャンフリップフロップ回路に対して前記入力選択信号及び前記出力選択信号を供給し、前記クロック信号生成回路は、前記テスト制御信号に基づいて、前記基準クロック信号から前記第１及び第２クロック信号を生成する構成（第８の構成）であっても良い。
【００１８】
上記第４又は第５の構成に係る半導体集積回路に係り、各スキャンフリップフロップ回路において、前記第１保持回路は、前記通常動作における前記入力選択回路からの前記通常データを前記第１クロック信号に基づき取り込んで保持する一方、前記第２保持回路は、前記スキャンチェーンが形成されているときに前記入力選択回路からの前記スキャンデータを前記第２クロック信号に基づき取り込んで保持する構成（第９の構成）であっても良い。
【００１９】
上記第４又は第５の構成に係る半導体集積回路において、第１状態及び第２状態を切り替える切り替え制御部が更に備えられ、前記第１状態では、各スキャンフリップフロップ回路において、前記第１保持回路が前記通常動作における前記入力選択回路からの前記通常データを前記第１クロック信号に基づき取り込んで保持し、且つ、前記第２保持回路が前記スキャンチェーンが形成されているときに前記入力選択回路からの前記スキャンデータを前記第２クロック信号に基づき取り込んで保持し、前記第２状態では、各スキャンフリップフロップ回路において、前記第１保持回路が前記スキャンチェーンが形成されているときに前記入力選択回路からの前記スキャンデータを前記第１クロック信号に基づき取り込んで保持し、且つ、前記第２保持回路が前記通常動作における前記入力選択回路からの前記通常データを前記第２クロック信号に基づき取り込んで保持する構成（第１０の構成）であっても良い。
【発明の効果】
【００２０】
本発明によれば、スキャンテストの実行に関わる不都合又は弊害の抑制に寄与する半導体集積回路を提供することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１実施形態に係るデータ処理装置の構成図である。
【図２】本発明の第１実施形態に係り、３つのクロック信号の関係を示す図である。
【図３】本発明の第１実施形態に係り、スキャンフリップフロップ回路についてのデータ及び信号の入出力に関わる構成図である。
【図４】本発明の第１実施形態に係り、スキャンフリップフロップ回路の内部構成を示す図である。
【図５】本発明の第１実施形態に係り、テスト動作の構成を示す図である。
【図６】本発明の第１実施形態に係り、複数の通常動作とテスト動作の実行タイミングの関係例を示す図である。
【図７】本発明の第１実施形態に係り、複数の通常動作の実行タイミングの例を示す図である。
【図８】本発明の第１実施形態に係り、スキャンフリップフロップ回路に関わる動作例のタイミングチャートである。
【図９】本発明の第２実施形態に係るスキャンフリップフロップ回路の構成図である。
【図１０】図９のマスタラッチ回路におけるスルー状態及びホールド状態の概念図である。
【図１１】図９のスレーブラッチ回路におけるスルー状態及びホールド状態の概念図である。
【図１２】本発明の第３実施形態に係るテスト制御回路の構成図である。
【図１３】従来技術に係り、スキャンテストが可能に構成されたデータ処理装置の構成図である。
【図１４】従来のスキャンフリップフロップ回路の構成図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態の例を、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。尚、本明細書では、記述の簡略化上、情報、信号、物理量、素子又は部位等を参照する記号又は符号を記すことによって、該記号又は符号に対応する情報、信号、物理量、素子又は部位等の名称を省略又は略記することがある。例えば、後述の“ＳＥＬ”によって参照される出力選択信号は（図３参照）、出力選択信号ＳＥＬと表記されることもあるし、信号ＳＥＬと略記されることもあり得るが、それらは全て同じものを指す。
【００２３】
まず、本発明の実施形態の記述にて用いられる幾つかの用語について説明を設ける。本発明の実施形態において、ＩＣとは集積回路（Integrated Circuit）の略称である。レベルとは電位のレベルを指し、任意の信号又は電圧についてハイレベルはローレベルよりも高い電位を有する。或る任意の注目した信号について、注目した信号がハイレベルであるとき、当該注目した信号の反転信号はローレベルをとり、注目した信号がローレベルであるとき、当該注目した信号の反転信号はハイレベルをとる。任意の信号又は電圧において、ローレベルからハイレベルへの切り替わりをアップエッジと称し、ハイレベルからローレベルへの切り替わりをダウンエッジと称する。
【００２４】
＜＜第１実施形態＞＞
本発明の第１実施形態を説明する。図１は、本発明の第１実施形態に係るデータ処理装置１の構成図である。データ処理装置１は半導体集積回路として構成される。データ処理装置１は、デジタル処理回路２、テストパターン生成回路３、データ入力回路４、データ利用回路５、テスト制御回路６、及び、クロック信号生成回路７及びテスト結果評価回路８を備える。尚、ここでは、データ処理装置１の構成要素の内、本発明に関連する要部のみに注目しており、符号２〜８によって参照される構成要素とは異なる他の構成要素もデータ処理装置１には含まれうるが、他の構成要素の図示及び説明は省略する。
【００２５】
クロック信号生成回路７は、基準クロック信号ＣＬＫを生成及び出力する基準クロック信号生成回路７ａと、テスト制御回路６からのテスト制御信号に基づいて、基準クロック信号ＣＬＫからクロック信号ＣＬＫ１及びＣＬＫ２を生成及び出力するクロック選択出力回路７ｂと、を備える。
【００２６】
図２（ａ）に、基準クロック信号ＣＬＫとクロック信号ＣＬＫ１及びＣＬＫ２との関係例を示す。基準クロック信号ＣＬＫは所定の周波数（例えば２ＭＨｚ）を有する矩形波信号であり、故に基準クロック信号ＣＬＫの信号レベルは周期的にローレベル及びハイレベル間で切り替わる。テスト制御信号に基づきクロック選択出力回路７ｂにおいて第１クロック区間と第２クロック区間が設定される。第１クロック区間と第２クロック区間は互いに重複しない区間である。つまり、第１クロック区間と第２クロック区間は互いに分離して設けられる。
【００２７】
第１クロック区間において、クロック信号ＣＬＫ１は基準クロック信号ＣＬＫと同じ信号レベルを有するが、クロック信号ＣＬＫ２の信号レベルはローレベルで固定される。即ち、第１クロック区間においては、クロック信号ＣＬＫ１が基準クロック信号ＣＬＫに同期してローレベル及びハイレベル間で変化する一方、クロック信号ＣＬＫ２の信号レベルはローレベルで固定される。一方、第２クロック区間において、クロック信号ＣＬＫ２は基準クロック信号ＣＬＫと同じ信号レベルを有するが、クロック信号ＣＬＫ１の信号レベルはローレベルで固定される。即ち、第２クロック区間においては、クロック信号ＣＬＫ２が基準クロック信号ＣＬＫに同期してローレベル及びハイレベル間で変化する一方、クロック信号ＣＬＫ１の信号レベルはローレベルで固定される。
【００２８】
図２（ｂ）に、クロック選択出力回路７ｂの構成例を示す。図２（ｂ）において、信号ＳＥＬＣは、テスト制御信号に含められるクロック選択信号を表している。クロック選択信号ＳＥＬＣは１ビットのデジタル信号であって、ローレベル又はハイレベルの信号レベルをとる。図２（ｂ）のクロック選択出力回路７ｂは、クロック選択信号ＳＥＬＣの反転信号と基準クロック信号ＣＬＫとの論理積信号をクロック信号ＣＬＫ１として出力するＡＮＤ回路７ｂ＿１と、クロック選択信号ＳＥＬＣと基準クロック信号ＣＬＫとの論理積信号をクロック信号ＣＬＫ２として出力するＡＮＤ回路７ｂ＿２と、を備える。故に、クロック選択信号ＳＥＬＣがローレベルである時点は第１クロック区間に属し、クロック選択信号ＳＥＬＣがハイレベルである時点は第２クロック区間に属することになる。
【００２９】
クロック信号ＣＬＫ１及びＣＬＫ２はデジタル処理回路２に供給される。尚、特に図示しないが、テストパターン生成回路３及びテスト結果評価回路８に対して基準クロック信号ＣＬＫが与えられ、回路３及び８は基準クロック信号ＣＬＫに同期して動作する。データ入力回路４、データ利用回路５及びテスト制御回路６は、基準クロック信号ＣＬＫに同期して動作して良いし、基準クロック信号ＣＬＫとは別のクロック信号に同期して動作しても良い。
【００３０】
データ入力回路４は、データＤＡ［１］〜ＤＡ［ＭＡ］をデジタル処理回路２に供給する。ここで、ＭＡは２以上の任意の整数である。データＤＡ［１］〜ＤＡ［ＭＡ］は、データ入力回路４及びデジタル処理回路２間に設けられたＭＡ本の配線を介して同時にデジタル処理回路２に入力される。
【００３１】
デジタル処理回路２はフリップフロップ回路を複数個備える。デジタル処理回路２に設けられた各フリップフロップ回路は、スキャンチェーンを構成可能なスキャンフリップフロップ回路である。以下では、デジタル処理回路２に設けられた各フリップフロップ回路をＤＳＦＦと称する。“ＤＳＦＦ”は “Dual Scan Flip-Flop”の略称である。デジタル処理回路２に設けられた各フリップフロップ回路がＤＳＦＦと称される所以は、後述の説明から明らかとなる。
【００３２】
具体的には、デジタル処理回路２は、ロジック回路２０と、ロジック回路２０の前段側に配置された計ＭＡ個のＤＳＦＦ１０と、ロジック回路２０の後段側に配置された計ＭＢ個のＤＳＦＦ３０と、を備える。ＭＢは２以上の任意の整数である。ＭＡ及びＭＢは互いに一致する値を有していても良いし、互いに異なる値を有していても良い。ＭＡ個のＤＳＦＦ１０を互いに区別する必要がある場合、ＭＡ個のＤＳＦＦ１０を符号“１０［１］〜１０［ＭＡ］”によって参照する。ＭＢ個のＤＳＦＦ３０を互いに区別する必要がある場合、ＭＢ個のＤＳＦＦ３０を符号“３０［１］〜３０［ＭＢ］”によって参照する。ＤＳＦＦ１０［１］〜１０［ＭＡ］及びＤＳＦＦ３０［１］〜３０［ＭＢ］は、互いに同じ構成を有する。
【００３３】
テストパターン生成回路３は、テスト制御回路６の制御の下、具体的にはテスト制御回路６から供給されるテスト制御信号に基づき、ＤＳＦＦ１０［１］及び３０［１］に対してデータＳＤを供給すると共に、ＤＳＦＦ１０［１］〜１０［ＭＡ］及び３０［１］〜３０［ＭＢ］の夫々に対して入力選択信号ＳＣ及び出力選択信号ＳＥＬを出力する。
【００３４】
図３に、１つのＤＳＦＦ１００における、データ及び信号の入出力に関わる構成を示す。ＤＳＦＦ１００を、ＤＳＦＦ１０［１］〜１０［ＭＡ］及びＤＳＦＦ３０［１］〜３０［ＭＢ］の夫々として用いることができる。
【００３５】
ＤＳＦＦ１００は、２種類のデータの入力端子として２つの入力部１０１及び１０３を備える。入力部１０１へ入力されるデータを通常データと称し、通常データを符号“Ｄ”にて参照する。このため、入力部１０１を通常データ入力部と称することができる。入力部１０３へ入力されるデータはスキャンテストを実現するためのデータであって、スキャンデータ（又はスキャン入力データ）と称される。スキャンデータを符号“ＳＤ”にて参照する。入力部１０３をスキャンデータ入力部と称することができる。
【００３６】
ＤＳＦＦ１００は、更に、ＤＳＦＦ１００の出力データＱが現れるデータ出力部１０２と、データ入力切替信号とも称されるべき入力選択信号ＳＣの入力を受ける入力選択信号入力部１０４と、出力選択信号ＳＥＬの入力を受ける出力選択信号入力部１０５と、クロック信号ＣＬＫ１の入力を受ける第１クロック入力部１０６と、クロック信号ＣＬＫ２の入力を受ける第２クロック入力部１０７と、を備える。
【００３７】
図１のデータ処理装置１において、ＤＳＦＦ１０［１］〜１０［ＭＡ］にとっての通常データＤは夫々データＤＡ［１］〜ＤＡ［ＭＡ］であり、ＤＳＦＦ１０［１］〜１０［ＭＡ］にとっての出力データＱは夫々データＱＡ［１］〜ＱＡ［ＭＡ］である。図１のデータ処理装置１において、ＤＳＦＦ３０［１］〜３０［ＭＢ］にとっての通常データＤは夫々データＤＢ［１］〜ＤＢ［ＭＢ］であり、ＤＳＦＦ３０［１］〜３０［ＭＢ］にとっての出力データＱは夫々データＱＢ［１］〜ＱＢ［ＭＢ］である。データＤＡ［１］〜ＤＡ［ＭＡ］、ＱＡ［１］〜ＱＡ［ＭＡ］、ＤＢ［１］〜ＤＢ［ＭＢ］及びＱＢ［１］〜ＱＢ［ＭＢ］の夫々は１ビットのデジタルデータである。
【００３８】
ロジック回路２０に対してＤＳＦＦ１０［１］〜１０［ＭＡ］の出力データＱＡ［１］〜ＱＡ［ＭＡ］が入力される。ロジック回路２０は、組み合わせ回路を含み、出力データＱＡ［１］〜ＱＡ［ＭＡ］に基づく所定の信号処理（論理演算）を行って、その信号処理の結果をデータＤＢ［１］〜ＤＢ［ＭＢ］として出力する。ロジック回路２０からのデータＤＢ［１］〜ＤＢ［ＭＢ］が夫々ＤＳＦＦ３０［１］〜３０［ＭＢ］に入力される。
【００３９】
ＤＳＦＦ３０［１］〜３０［ＭＢ］の出力データＱＢ［１］〜ＱＢ［ＭＢ］はデータ利用回路５に供給される。データ利用回路５は、自身に供給されたデータに基づいて所定の処理を実行する。尚、デジタル処理回路２においてＤＳＦＦ３０［１］〜３０［ＭＢ］の出力データＱＢ［１］〜ＱＢ［ＭＢ］に対し更に他の信号処理を施し、これによって得られるデータをデータ利用回路５に供給するようにしても良い。
【００４０】
図１のテストパターン生成回路３は、ＤＳＦＦ１０［１］及び３０［１］のスキャンデータ入力部１０３に接続され、ＤＳＦＦ１０［１］及び３０［１］のスキャンデータ入力部１０３の夫々に対してスキャンデータＳＤを供給できる。
【００４１】
各ＤＳＦＦにおいて、データ出力部１０２からの出力データＱはスキャン出力データＳＯとしても機能する（図３参照）。
“１≦ｉ≦ＭＡ−１”を満たす任意の整数ｉについて、ＤＳＦＦ１０［ｉ］のデータ出力部１０２はＤＳＦＦ１０［ｉ＋１］のスキャンデータ入力部１０３に接続され、故に、ＤＳＦＦ１０［ｉ］からのスキャン出力データＳＯはＤＳＦＦ１０［ｉ＋１］へのスキャンデータＳＤとなる。ＤＳＦＦ１０［ＭＡ］からのスキャン出力データＳＯはテスト結果評価回路８に与えられる。
“１≦ｉ≦ＭＢ−１”を満たす任意の整数ｉについて、ＤＳＦＦ３０［ｉ］のデータ出力部１０２はＤＳＦＦ３０［ｉ＋１］のスキャンデータ入力部１０３に接続され、故に、ＤＳＦＦ３０［ｉ］からのスキャン出力データＳＯはＤＳＦＦ３０［ｉ＋１］へのスキャンデータＳＤとなる。ＤＳＦＦ３０［ＭＢ］からのスキャン出力データＳＯはテスト結果評価回路８に与えられる。
【００４２】
スキャンテストはテスト動作により実現される。データ処理装置１では、通常動作と、テスト動作とを、時分割で行うことができる。
【００４３】
テスト動作が行われる際には、必要なタイミングにおいて、ＤＳＦＦ１０［１］〜１０［ＭＡ］がシリアル接続されることでＤＳＦＦ１０［１］〜１０［ＭＡ］により第１シフトレジスタとして機能する第１スキャンチェーンが形成され、ＤＳＦＦ３０［１］〜３０［ＭＢ］がシリアル接続されることでＤＳＦＦ３０［１］〜３０［ＭＢ］により第２シフトレジスタとして機能する第２スキャンチェーンが形成される。第１及び第２スキャンチェーンを用いてスキャンテストが行われる。
【００４４】
通常動作は、データ入力回路４からのデータＤＡ［１］〜ＤＡ［ＭＡ］に基づき出力データＱＡ［１］〜ＱＡ［ＭＡ］を生成する動作と、その動作によってロジック回路２０から出力されたデータＤＢ［１］〜ＤＢ［ＭＢ］に基づき出力データＱＢ［１］〜ＱＢ［ＭＢ］を生成する動作と、を含む。通常動作では上記第１及び第２スキャンチェーンは形成されずに、ＤＳＦＦ１０［１］〜１０［ＭＡ］及び３０［１］〜３０［ＭＢ］の夫々が独立したフリップフロップ回路として機能する。
【００４５】
ＤＳＦＦ１０［１］〜１０［ＭＡ］はロジック回路２０への入力データを保持する第１スキャンフリップフロップ群を構成し、ＤＳＦＦ３０［１］〜３０［ＭＢ］はロジック回路２０の出力データを保持する第２スキャンフリップフロップ群を構成している。但し、各ＤＳＦＦは、通常動作にて保持すべきデータと、テスト動作にて保持すべきデータとを、別個に保持することが可能に構成されている。
【００４６】
図４にＤＳＦＦ１００の内部ブロック図を示す。ＤＳＦＦ１００は、入力選択回路１１０と、Ｄ型のフリップフロップ回路１２０及び１３０と、出力選択回路１４０と、を備える。Ｄ型のフリップフロップ回路を以下、ＤＦＦと表記する。ここでは、ＤＦＦ１２０及び１３０の夫々は、ポジティブエッジトリガ型のＤＦＦであるとする。ＤＦＦ１２０及び１３０は第１及び第２保持回路の例であり、ＤＦＦ１２０及び１３０にて、通常データＤとスキャンデータＳＤを別個に保持可能なデータ保持部が形成される。
【００４７】
入力選択回路１１０は、通常データ入力部１０１に接続された第１入力端と、スキャンデータ入力部１０３に接続された第２入力端と、出力端と、を有し、入力選択信号ＳＣに基づいて、第１及び第２入力端の何れか一方を選択して出力端に接続する。上述の如く、入力部１０１には通常データＤが入力され且つ入力部１０３にはスキャンデータＳＤが入力されるので、入力選択回路１１０は、入力選択信号ＳＣに基づいて通常データＤ及びスキャンデータＳＤの何れか一方を選択し、選択したデータを自身の出力端から出力する（換言すれば、入力選択信号ＳＣに基づき入力部１０１及び１０３の何れか一方を選択して、選択した入力部におけるデータを自身の出力端から出力する）ことになる。
【００４８】
入力選択信号ＳＣは１ビットのデジタル信号であって、ローレベル又はハイレベルの信号レベルをとる。ここでは、入力選択信号ＳＣの信号レベルがハイレベルであるときに、入力選択信号ＳＣが“１”の値を持ち、入力選択回路１１０にてスキャンデータＳＤが選択される一方、入力選択信号ＳＣの信号レベルがローレベルであるときに、入力選択信号ＳＣが“０”の値を持ち、入力選択回路１１０にて通常データＤが選択されるものとする。
【００４９】
入力選択回路１１０の出力端は、ＤＦＦ１２０のデータ入力端１２０Ｄ及びＤＦＦ１３０のデータ入力端１３０Ｄに共通接続される。故に、入力選択回路１１０による選択データは、ＤＦＦ１２０のデータ入力端１２０Ｄ及びＤＦＦ１３０のデータ入力端１３０Ｄに共通入力されることになる。
【００５０】
ＤＦＦ１２０は、クロック信号ＣＬＫ１のアップエッジに同期してデータ入力端１２０Ｄにおけるデータ（即ち入力選択回路１１０の出力データ）を取り込んで保持する。ＤＦＦ１２０にて保持されているデータは、ＤＦＦ１２０のデータ出力端１２０Ｑから出力される。ＤＦＦ１２０は、クロック信号ＣＬＫ１のアップエッジが生じない限り、現在、自身が保持しているデータを変化させずに保持し続けることができる。
【００５１】
ＤＦＦ１３０は、クロック信号ＣＬＫ２のアップエッジに同期してデータ入力端１３０Ｄにおけるデータ（即ち入力選択回路１１０の出力データ）を取り込んで保持する。ＤＦＦ１３０にて保持されているデータは、ＤＦＦ１３０のデータ出力端１３０Ｑから出力される。ＤＦＦ１３０は、クロック信号ＣＬＫ２のアップエッジが生じない限り、現在、自身が保持しているデータを変化させずに保持し続けることができる。
【００５２】
出力選択回路１４０は、データ出力端１２０Ｑに接続された第１入力端と、データ出力端１３０Ｑに接続された第２入力端と、出力端と、を有し、出力選択信号ＳＥＬに基づいて、第１及び第２入力端の何れか一方を選択して出力端に接続する。故に、出力選択回路１４０は、出力選択信号ＳＥＬに基づいて、ＤＦＦ１２０の出力データ（即ちＤＦＦ１２０の保持データ）及びＤＦＦ１３０の出力データ（即ちＤＦＦ１３０の保持データ）の何れか一方を選択し、選択したデータを自身の出力端から出力することになる。出力選択回路１４０の出力端は、データ出力部１０２に接続される又はデータ出力部１０２に相当する。
【００５３】
出力選択信号ＳＥＬは１ビットのデジタル信号であって、ローレベル又はハイレベルの信号レベルをとる。ここでは、出力選択信号ＳＥＬの信号レベルがハイレベルであるときに、出力選択信号ＳＥＬが“１”の値を持ち、出力選択回路１４０にてＤＦＦ１３０の出力データ（即ちＤＦＦ１３０の保持データ）が選択される一方、出力選択信号ＳＥＬの信号レベルがローレベルであるときに、出力選択信号ＳＥＬが“０”の値を持ち、出力選択回路１４０にてＤＦＦ１２０の出力データ（即ちＤＦＦ１３０の保持データ）が選択されるものとする。
【００５４】
次に、通常動作のみが継続的に実行されているときの各回路の挙動を説明する。通常動作のみが継続的に実行される区間を、便宜上、通常継続区間と称する。通常継続区間では第２クロック区間が存在せず、全て第１クロック区間となる（図２（ａ）参照）。つまり、通常継続区間において、クロック信号ＣＬＫ１は基準クロック信号ＣＬＫと全く同じ信号となる一方で、クロック信号ＣＬＫ２は常にローレベルとなる。故に、通常継続区間では、ＤＦＦ１２０の保持データがクロック信号ＣＬＫ１に同期して順次更新されてゆくが、ＤＦＦ１３０による保持データに変化は生じない。
【００５５】
また、通常継続区間では、入力選択信号ＳＣ及び出力選択信号ＳＥＬの値が共に“０”に固定される。このため、通常継続区間では、ＤＦＦ１２０により通常データＤが取り込まれて保持され且つＤＦＦ１２０の保持データが出力データＱとして出力される動作が、クロック信号ＣＬＫ１に同期して繰り返し実行される。
【００５６】
ＤＳＦＦ１０［ｉ］に注目すれば、通常継続区間において、ＤＳＦＦ１０［ｉ］のＤＦＦ１２０にてデータＤＡ［ｉ］が通常データＤとして取り込まれて保持され且つＤＳＦＦ１０［ｉ］におけるＤＦＦ１２０の保持データ（ＤＡ［ｉ］）がＤＳＦＦ１０［ｉ］の出力データＱＡ［ｉ］として出力される動作が、クロック信号ＣＬＫ１に同期して繰り返し実行される。同様に、
ＤＳＦＦ３０［ｉ］に注目すれば、通常継続区間において、ＤＳＦＦ３０［ｉ］のＤＦＦ１２０にてデータＤＢ［ｉ］が通常データＤとして取り込まれて保持され且つＤＳＦＦ１０［ｉ］におけるＤＦＦ１２０の保持データ（ＤＢ［ｉ］）がＤＳＦＦ３０［ｉ］の出力データＱＢ［ｉ］として出力される動作が、クロック信号ＣＬＫ１に同期して繰り返し実行される。
ｉは任意の整数である。
【００５７】
このように、ＤＳＦＦ１０［１］〜１０［ＭＡ］及び３０［１］〜３０［ＭＢ］の夫々において、通常動作における通常データＤがＤＦＦ１２０にて保持される。ＤＦＦ１２０にて保持される通常動作における通常データＤとは、ＤＳＦＦ１０［ｉ］にとっては、データ入力回路４からのデータＤＡ［ｉ］に相当し、ＤＳＦＦ３０［ｉ］にとっては、データ入力回路４からのデータＤＡ［１］〜ＤＡ［ＭＡ］に基づいてロジック回路２０から出力されるデータＤＢ［ｉ］に相当する。データ入力回路４からの通常データＤ（ＤＡ［１］〜ＤＡ［ＭＡ］）がＤＳＦＦ１０［１］〜１０［ＭＡ］を通じてロジック回路２０に供給されることで、データ入力回路４からの通常データＤ（ＤＡ［１］〜ＤＡ［ＭＡ］）に基づく通常動作が実行されることになる。
【００５８】
次に、テスト動作のみが継続的に実行されているときの各回路の挙動を説明する。テスト動作のみが継続的に実行される区間を、便宜上、テスト継続区間と称する。テスト継続区間では第１クロック区間が存在せず、全て第２クロック区間となる（図２（ａ）参照）。つまり、テスト継続区間においては、クロック信号ＣＬＫ２が基準クロック信号ＣＬＫと全く同じ信号となる一方で、クロック信号ＣＬＫ１はローベルに固定される。故に、テスト継続区間では、ＤＦＦ１３０の保持データがクロック信号ＣＬＫ２に同期して順次更新されてゆくが、ＤＦＦ１２０による保持データに変化は生じない。
【００５９】
また、テスト継続区間では、基本的に、入力選択信号ＳＣ及び出力選択信号ＳＥＬの値が共に“１”に固定される。ここで、“基本的に”と述べたのは、テスト継続区間であっても、テスト動作に含まれる後述のキャプチャ動作の実行時に限っては、ＤＳＦＦ３０［１］〜３０［ＭＢ］に対する入力選択信号ＳＣの値が“０”とされるからである。入力選択信号ＳＣ及び出力選択信号ＳＥＬの値が共に“１”に固定されているとき、ＤＦＦ１３０にてスキャンデータＳＤが取り込まれて保持され且つＤＦＦ１３０の保持データが出力データＱとして出力される動作が、クロック信号ＣＬＫ２に同期して繰り返し実行される。
【００６０】
テスト動作の詳細について説明する。テスト動作は、図５に示す如く、スキャンイン動作、キャプチャ動作及びスキャンアウト動作から成る。１回のスキャンイン動作と１回のキャプチャ動作と１回のスキャンアウト動作とで、１回分のテスト動作が完了する。１回分のテスト動作において、スキャンイン動作、キャプチャ動作及びスキャンアウト動作が、この順番で実行される。
【００６１】
スキャンイン動作は、ＤＳＦＦ１０［１］〜１０［ＭＡ］に所定のテストパターンデータをラッチ（保持）させるための動作であり、第１シフト動作とも称される。テストパターンデータは、ロジック回路２０の故障の有無の診断に有効なデータであり、テストパターン生成回路３にて生成される。各ＤＳＦＦに対するスキャンデータＳＤはテストパターンデータに基づくデータである。テストパターンデータに基づくデータは各ＤＳＦＦのＤＦＦ１３０に保持される。
【００６２】
スキャンイン動作が実行される区間では、ＤＳＦＦ１０［１］〜１０［ＭＡ］及び３０［１］〜３０［ＭＢ］の内、少なくともＤＳＦＦ１０［１］〜１０［ＭＡ］に対して“１”の信号ＳＣ及びＳＥＬが供給される。ＤＳＦＦ１０［１］〜１０［ＭＡ］に対して“１”の信号ＳＣ及びＳＥＬが供給されることで、ＤＳＦＦ１０［１］〜１０［ＭＡ］がシリアル接続されて第１スキャンチェーンが形成される。第１スキャンチェーンは、ＤＳＦＦ１０［１］〜１０［ＭＡ］における計ＭＡ個のＤＦＦ１３０から成る第１シフトレジスタに相当する。第１シフトレジスタにおいては、ＤＳＦＦ１０［１］〜１０［ＭＡ］における計ＭＡ個のＤＦＦ１３０が各入力選択回路１１０及び各出力選択回路１４０を通じてシリアル接続され、クロック信号ＣＬＫ２に同期してデータのシフト動作が行われる。
【００６３】
スキャンイン動作において、テストパターン生成回路３は、基準クロック信号ＣＬＫ又はクロック信号ＣＬＫ２に同期して、テストパターンデータを構成するデータを１ビットずつスキャンデータＳＤとしてＤＳＦＦ１０［１］に供給する動作を繰り返し、これによってＤＳＦＦ１０［１］〜１０［ＭＡ］における計ＭＡ個のＤＦＦ１３０にＭＡビット分のテストパターンデータを保持（ラッチ）させる。
【００６４】
このように、ＤＳＦＦ１０［１］〜１０［ＭＡ］に注目した場合、ＤＳＦＦ１０［１］〜１０［ＭＡ］の夫々において、入力選択信号ＳＣに基づき入力選択回路１１０にてスキャンデータＳＤが選択され、且つ、テストパターンデータに基づくデータ（スキャンデータＳＤ）を保持するＤＦＦ１３０の保持データが出力選択信号ＳＥＬに基づき出力選択回路１４０にて選択されることで、第１スキャンチェーンが形成される。
【００６５】
キャプチャ動作では、ＤＳＦＦ１０［１］〜１０［ＭＡ］における計ＭＡ個のＤＦＦ１３０に保持（ラッチ）されたテストパターンデータを出力データＱＡ［１］〜ＱＡ［ＭＡ］としてロジック回路２０に供給し、これによってロジック回路２０から出力されるデータＤＢ［１］〜ＤＢ［ＭＢ］をＤＳＦＦ３０［１］〜３０［ＭＢ］における計ＭＢ個のＤＦＦ１３０にラッチさせる（即ち取り込ませて保持させる）。
【００６６】
これが実現されるよう、キャプチャ動作において、テストパターン生成回路３は、ＤＳＦＦ３０［１］〜３０［ＭＢ］に対する信号ＳＣのレベルを制御する。即ち、テストパターンデータに基づくデータＤＢ［１］〜ＤＢ［ＭＢ］がロジック回路２０から出力されるタイミングにおいてＤＳＦＦ３０［１］〜３０［ＭＢ］への信号ＳＣの値を“０”とし、これによってテストパターンデータに基づくデータＤＢ［１］〜ＤＢ［ＭＢ］をＤＳＦＦ３０［１］〜３０［ＭＢ］のＤＦＦ１３０に供給する。そして、テストパターンデータに基づくデータＤＢ［１］〜ＤＢ［ＭＢ］がＤＳＦＦ３０［１］〜３０［ＭＢ］のＤＦＦ１３０に供給されているときに、クロック信号ＣＬＫ２のアップエッジが生じると、テストパターンデータに基づくデータＤＢ［１］〜ＤＢ［ＭＢ］がＤＳＦＦ３０［１］〜３０［ＭＢ］のＤＦＦ１３０に取り込まれて保持される。
【００６７】
スキャンアウト動作は、ＤＳＦＦ３０［１］〜３０［ＭＢ］における計ＭＢ個のＤＦＦ１３０にて保持（ラッチ）された、テストパターンデータに基づくデータＤＢ［１］〜ＤＢ［ＭＢ］をテスト結果評価回路８に引き出すための動作であり、第２シフト動作とも称される。スキャンアウト動作が実行される区間では、ＤＳＦＦ１０［１］〜１０［ＭＡ］及び３０［１］〜３０［ＭＢ］の内、少なくともＤＳＦＦ３０［１］〜３０［ＭＢ］に対して“１”の信号ＳＣ及びＳＥＬが供給される。ＤＳＦＦ３０［１］〜３０［ＭＢ］に対して“１”の信号ＳＣ及びＳＥＬが供給されることで、ＤＳＦＦ３０［１］〜３０［ＭＢ］がシリアル接続されて第２スキャンチェーンが形成される。第２スキャンチェーンは、ＤＳＦＦ３０［１］〜３０［ＭＢ］における計ＭＢ個のＤＦＦ１３０から成る第２シフトレジスタに相当する。第２シフトレジスタにおいては、ＤＳＦＦ３０［１］〜３０［ＭＢ］における計ＭＢ個のＤＦＦ１３０が各入力選択回路１１０及び各出力選択回路１４０を通じてシリアル接続され、クロック信号ＣＬＫ２に同期してデータのシフト動作が行われる。
【００６８】
スキャンアウト動作では、ＤＳＦＦ３０［１］〜３０［ＭＢ］のＤＦＦ１３０にて保持された、テストパターンデータに基づくデータＤＢ［１］〜ＤＢ［ＭＢ］が、クロック信号ＣＬＫ２に同期してＤＳＦＦ３０［ＭＢ］から１ビットずつスキャン出力データＳＯとしてテスト結果評価回路８に出力される。
【００６９】
このように、ＤＳＦＦ３０［１］〜３０［ＭＢ］に注目した場合、ＤＳＦＦ３０［１］〜３０［ＭＢ］の夫々において、入力選択信号ＳＣに基づき入力選択回路１１０にてスキャンデータＳＤが選択され、且つ、テストパターンデータに基づくデータを保持するＤＦＦ１３０の保持データが出力選択信号ＳＥＬに基づき出力選択回路１４０にて選択されることで、第２スキャンチェーンが形成される。ＤＳＦＦ３０［１］〜３０［ＭＢ］のＤＦＦ１３０に保持される、テストパターンデータに基づくデータとは、キャプチャ動作により取り込まれた、テストパターンデータに基づくデータＤＢ［１］〜ＤＢ［ＭＢ］であって、キャプチャ動作を除けばスキャンデータＳＤに相当する。
【００７０】
以下、テストパターンデータに基づくデータＤＢ［１］〜ＤＢ［ＭＢ］を、ＭＢビットのテスト結果データと称する。テスト結果評価回路８は、供給されたテスト結果データに基づいて、ロジック回路２０の故障の有無を判断する。具体的には、テスト結果評価回路８は、図１に示す如く、応答圧縮回路８ａ及び結果比較回路８ｂから成る。応答圧縮回路８ａは、スキャンアウト動作により得られたＭＢビットのテスト結果データを所定の圧縮処理により圧縮することで、ＭＢ’ビットのテスト結果データに変換する。ＭＢ’はＭＢの値よりも小さな所定値を持つ。結果比較回路８ｂは、応答圧縮回路８ａにて得られたＭＢ’ビットのテスト結果データを、所定の期待データと比較することで、ロジック回路２０の故障の有無を判断する。
【００７１】
また、スキャンアウト動作が実行される区間では、ＤＳＦＦ１０［１］〜１０［ＭＡ］に対しても“１”の信号ＳＣ及びＳＥＬが供給されて良い。これにより、スキャンイン動作の実行区間にてＤＳＦＦ１０［１］〜１０［ＭＡ］のＤＦＦ１３０にラッチされたデータ（理想的にはテストパターンデータと一致）が、スキャンアウト動作の実行区間においてＤＳＦＦ１０［ＭＡ］からスキャン出力データＳＯとしてテスト結果評価回路８に供給される。ここで供給されたデータ（即ち、スキャンイン動作の実行区間にてＤＳＦＦ１０［１］〜１０［ＭＡ］にラッチされたデータ）も応答圧縮回路８ａにて圧縮され、当該圧縮後のデータに基づき、結果比較回路８ｂは、ＤＳＦＦ１０［１］〜１０［ＭＡ］の故障の有無を判断することができる。
【００７２】
尚、図１に示す如く、タイミング制御回路６からテストパターン生成回路３、クロック信号生成回路７及びテスト結果評価回路８に対して、スキャンテストの実行タイミングを制御及び指定するテスト制御信号（換言すれば、テスト動作の実行タイミングを制御及び指定するテスト制御信号）が供給されており、テスト制御信号に基づいて各回路の動作の同期がとられる。即ち、テスト結果評価回路８はテスト制御信号を参照することで圧縮すべきデータを認識する。テストパターン生成回路３は、テスト制御信号に基づいて、第１スキャンチェーンに対してテストパターンデータを供給すると共に各ＤＳＦＦに対して入力選択信号ＳＣ及び出力選択信号ＳＥＬを供給する（換言すれば、テスト制御信号に基づいて信号ＳＣ及びＳＥＬの信号レベルを制御する）。クロック信号生成回路７は、テスト制御信号に基づいて、基準クロック信号ＣＬＫからクロック信号ＣＬＫ１及びＣＬＫ２を生成する。
【００７３】
図１３の従来構成との対比において本実施形態に係る構成の有益性を説明する。図１３を参照して説明したように、従来構成では、一旦、スキャンテストの動作が開始されると、スキャンテストによる一連の動作が完了するまで通常動作を行うことができず、故に、故障診断に必要な時間分だけ通常動作を停止できないアプリケーション（例えば通信制御系のアプリケーション）には、スキャンテストを適用できないといった事情（以下、第１事情と称する）がある。また、従来構成では、スキャンテストの動作を行うたびに通常動作がリセットされるといった事情（以下、第２事情と称する）もある。これは、通常動作のリセットが許可されるようなタイミングでしかスキャンテストを実行できないことを意味し、定期的に故障診断を行う方策として図１３の構成は不向きである。
【００７４】
これに対し、本実施形態の構成では、ＤＳＦＦにより通常データＤとスキャンデータＳＤを別個に保持可能とされているため、これらの事情に関わる懸念を全て解消することができる。
【００７５】
単純な例として、図６に示す如く、タイミングｔＡ１及びｔＡ２間に通常動作６１１が実行され、タイミングｔＡ２及びｔＡ３間では通常動作の実行が不要であり、その後のタイミングｔＡ３及びｔＡ４間で通常動作６１２が実行される場合を考える。タイミングｔＡ２及びｔＡ３間の時間長さは、１回分のテスト動作を完了するために必要な時間よりも短いものとする。この場合でも、データ処理装置１では、タイミングｔＡ２及びｔＡ３間にテスト動作の前半部分だけを実行し、タイミングｔＡ４の後、テスト動作の後半部分を実行するといったことが可能となる。
【００７６】
タイミングｔＡ３でテスト動作が一旦中断されることになるが、中断時のデータ状態を各ＤＳＦＦのＤＦＦ１３０に保持しておくことができるため、タイミングｔＡ４の後、中断時のデータ状態からテスト動作を再開できる。故に、上述の第１事情に関わる懸念は解消される。
【００７７】
加えて、通常動作６１１でのデータと通常動作６１２でのデータとの間に関連性があり、通常動作６１２の開始時点で通常動作６１１の終了直前のデータがデジタル処理回路２内に保持され続けている必要があるケースも多い。例えば、通常動作６１１及び６１２にて一連の通常動作が形成されているが、通常動作６１１及び６１２間に時間的な隙間が有るケースが上記のケースに相当する。本実施形態に係るデータ処理装置１では、タイミングｔＡ２及びｔＡ３間にテスト動作を実行したとしても、通常動作６１１の終了直前のデータが各ＤＳＦＦのＤＦＦ１２０に保持され続けているので、通常動作６１１の終了直前のデータを基準に通常動作６１２を再開することができる。つまり、テスト動作が行われるたびに通常動作がリセットされることはなく、上述の第２事情に関わる懸念も解消される。
【００７８】
図７を参照し、一般化して述べると、次のように言える。デジタル処理回路２において、通常動作６２０［１］、６２０［２］、６２０［３］、・・・、及び６２０［Ｎ］が実行されるとする。Ｎは３以上の任意の整数である。任意の整数ｉに関し、通常動作６２０［ｉ］の後に通常動作６２０［ｉ＋１］が実行され、通常動作６２０［ｉ］の実行区間と通常動作６２０［ｉ＋１］の実行区間との間には間隔６３０［ｉ］が存在する。間隔６３０［１］〜６３０［Ｎ−１］の夫々は、１回分のテスト動作を完了するために必要な時間である所定のテスト時間ＴＴＥＳＴよりも短いが、間隔６３０［１］〜６３０［Ｎ−１］の合計は、テスト時間ＴＴＥＳＴ以上であるとする。この場合、データ処理装置１では、通常動作６２０［１］〜６２０［Ｎ］が実行される過程において、通常動作６２０［１］の実行区間と通常動作６２０［Ｎ］の実行区間との間に存在する計（Ｎ−１）の間隔６３０［１］〜６３０［Ｎ−１］を用い、テスト動作（スキャンテストにおける動作）を分散して実行する（これを、テスト動作の分散実行と称する）。即ち、１回分のテスト動作の全体を（Ｎ−１）分割し、間隔６３０［１］〜６３０［Ｎ−１］の夫々において分割された動作を１つずつ行うことで、間隔６３０［１］〜６３０［Ｎ−１］の全体に亘って１回分のテスト動作を完了する。
【００７９】
通常動作６２０［１］〜６２０［Ｎ］の各実行区間は第１クロック区間とされ（図２（ａ）参照）、通常動作６２０［１］〜６２０［Ｎ］の各実行区間において、各ＤＳＦＦにおけるＤＦＦ１２０の保持データがクロック信号ＣＬＫ１に同期して更新される。間隔６３０［１］〜６３０［Ｎ−１］の夫々は第２クロック区間とされ（図２（ａ）参照）、間隔６３０［１］〜６３０［Ｎ−１］の夫々において、各ＤＳＦＦにおけるＤＦＦ１３０の保持データがクロック信号ＣＬＫ２に同期して更新される。
【００８０】
テスト動作は、テスト制御回路６の制御の下、テストパターン生成回路３及びデジタル処理回路２によって実行される。尚、テスト結果評価回路８によるデジタル回路２０の故障の有無の判断処理もテスト動作に含まれると解することも可能であり、この場合、テスト動作の実行主体には、テストパターン生成回路３及びデジタル処理回路２に加えてテスト結果評価回路８も更に含まれることになる。
【００８１】
間隔６３０［１］〜６３０［Ｎ−１］の夫々は通常動作の休止区間に相当する。以下、間隔６３０［１］〜６３０［Ｎ−１］を、夫々、休止区間６３０［１］〜６３０［Ｎ−１］と称することがある。
【００８２】
通常動作の実行区間及び休止区間のタイミングを特定する情報をタイミング情報と称する。タイミング情報により、通常動作６２０［１］〜６２０［Ｎ］の各実行区間の開始及び終了タイミングが特定され、休止区間６３０［１］〜６３０［Ｎ−１］の夫々の開始タイミング及び終了タイミングが特定される。タイミング情報は、データ処理装置１内に含まれる、図示されない上位システム回路にて生成及び管理される。データ入力回路４は、上位システム回路の制御の下で、データＤＡ［１］〜ＤＡ［ＭＡ］の出力及び更新を行う。テスト制御回路６は、上位システム回路の制御の下、タイミング情報に基づくテスト制御信号を回路３、７及び８に出力することで、テスト動作の分散実行を実現する。尚、テスト制御回路６自体が上位システム回路に相当していても良い。
【００８３】
例えば、通常動作は、データ処理装置１に設けられたＣＰＵ（Central Processing Unit）の割込み処理であっても良い。当該ＣＰＵはデジタル処理回路２を含み又はデジタル処理回路２に接続され、データ処理装置１に設けられた周辺回路（不図示）から所定の割り込み要求を受けたときに通常動作を実行する。或る通常動作が完了した後、次に割り込み要求が生じるまでは休止区間となる。このような休止区間が発生したときにテスト動作を実行すれば良い。１つの休止区間の長さがテスト時間ＴＴＥＳＴ以上であったならば、当該１つの休止区間にて１回分のテスト動作が完了されるが、テスト動作の開始後、テスト動作の完了前に次の通常動作が行われる際には、テスト動作を中断し、該次の通常動作の完了後に中断時点からテスト動作を再開する。
【００８４】
１回目のテスト動作が完了した後、休止区間が発生したならば、即時、２回目のテスト動作を開始して良い。これにより、略リアルタイムに、ロジック回路２０の故障の有無を診断し続けることができる。或いは、１回目のテスト動作が完了した後、所定時間の経過を待ってから、休止区間の発生を条件に２回目のテスト動作を開始するようにしても良い。
【００８５】
図８は、ＤＳＦＦ１００に関わる動作例のタイミングチャートである。図８の動作例は、通常動作の合間にスキャンチェーンによるシフト動作が挿入される動作の例である。図８において、上方から下方に向けて並ぶ領域６５１〜６５８には、夫々、当該動作例に係るＤＳＦＦ１００についての基準クロック信号ＣＬＫ、クロック信号ＣＬＫ１、ＤＦＦ１２０の出力データ（即ちデータ出力端１２０Ｑでのデータ）、クロック信号ＣＬＫ２、入力選択信号ＳＣ、ＤＦＦ１３０の出力データ（即ちデータ出力端１３０Ｑでのデータ）、出力選択信号ＳＥＬ、及び、出力データＱの時系列変化が示されている。
【００８６】
説明の具体化のためタイミングｔＢ１〜ｔＢ２２に注目して図８のタイミングチャートを説明する。任意の整数ｉについて、タイミングｔＢｉ及びｔＢ（ｉ＋２）間の長さは、基準クロック信号ＣＬＫの１周期分の長さと一致する。ここでは、基準クロック信号ＣＬＫのデューティが５０％であるとし、故に、タイミングｔＢｉ及びｔＢ（ｉ＋１）間の長さは、基準クロック信号ＣＬＫの１周期の１／２の長さと一致する。
【００８７】
整数ｉが奇数であるときのタイミングｔＢｉにおいて基準クロック信号ＣＬＫのアップエッジが生じ、整数ｉが偶数であるときのタイミングｔＢｉにおいて基準クロック信号ＣＬＫのダウンエッジが生じる。タイミングｔＢ１からタイミングｔＢ２２までの区間において、タイミングｔＢ１及びｔＢ６間の区間と、タイミングｔＢ９及びｔＢ１４間の区間と、タイミングｔＢ１７及びｔＢ２２間の区間は第１クロック区間に属し、それ以外の区間は第２クロック区間に属する。
【００８８】
故に、タイミングｔＢ１、ｔＢ３、ｔＢ５、ｔＢ９、ｔＢ１１、ｔＢ１３、ｔＢ１７、ｔＢ１９及びｔＢ２１の夫々においてクロック信号ＣＬＫ１にアップエッジが生じ、タイミングｔＢ２、ｔＢ４、ｔＢ６、ｔＢ１０、ｔＢ１２、ｔＢ１４、ｔＢ１８、ｔＢ２０及びｔＢ２２の夫々においてクロック信号ＣＬＫ１にダウンエッジが生じる。クロック信号ＣＬＫ１において、タイミングｔＢ６でのダウンエッジの後、タイミングｔＢ９でのアップエッジまでの区間と、タイミングｔＢ１４でのダウンエッジの後、タイミングｔＢ１７でのアップエッジまでの区間とでは、クロック信号ＣＬＫ１はローレベルとされる。
一方、タイミングｔＢ７及びｔＢ１５の夫々においてクロック信号ＣＬＫ２にアップエッジが生じ、タイミングｔＢ８及びｔＢ１６の夫々においてクロック信号ＣＬＫ２にダウンエッジが生じる。クロック信号ＣＬＫ２において、タイミングｔＢ７でのアップエッジが生じるまでの区間と、タイミングｔＢ８でのダウンエッジの後、タイミングｔＢ１５でのアップエッジが生じるまでの区間と、タイミングｔＢ１６でのダウンエッジが生じた後の区間とでは、クロック信号ＣＬＫ２はローレベルとされる。
【００８９】
タイミングｔＢ５及びｔＢ１３の夫々において入力選択信号ＳＣ及び出力選択信号ＳＥＬの夫々にアップエッジが生じ、タイミングｔＢ７及びｔＢ１５の夫々において入力選択信号ＳＣ及び出力選択信号ＳＥＬの夫々にダウンエッジが生じる。入力選択信号ＳＣ及び出力選択信号ＳＥＬにおいて、タイミングｔＢ５でのアップエッジが生じるまでの区間と、タイミングｔＢ７でのダウンエッジの後、タイミングｔＢ１３でのアップエッジが生じるまでの区間と、タイミングｔＢ１５でのダウンエッジが生じた後の区間とでは、入力選択信号ＳＣ及び出力選択信号ＳＥＬはローレベルとされる。
【００９０】
領域６５３での図示の如く、ＤＦＦ１２０の出力データ（即ちデータ出力端１２０Ｑでのデータ）はクロック信号ＣＬＫ１のアップエッジに同期して更新される。厳密には、クロック信号ＣＬＫ１にてアップエッジが生じるタイミングの直前における入力選択回路１１０の出力データがＤＦＦ１２０に取り込まれて保持（ラッチ）される。例えば、タイミングｔＢ３でのクロック信号ＣＬＫ１のアップエッジに応答してＤＦＦ１２０は入力選択回路１１０にて選択された通常データＤ（タイミングｔＢ３の直前における入力選択回路１１０の出力データ）を取り込んで保持し、タイミングｔＢ５でのクロック信号ＣＬＫ１のアップエッジに応答してＤＦＦ１２０は入力選択回路１１０にて選択された通常データＤ（タイミングｔＢ５の直前における入力選択回路１１０の出力データ）を取り込んで保持する。このように、クロック信号ＣＬＫ１にてアップエッジが生じるタイミングの直前における入力選択回路１１０の出力データは通常データＤであるので、ＤＦＦ１２０では通常データＤがクロック信号ＣＬＫ１に同期して順次更新されつつ保持される。
【００９１】
領域６５６での図示の如く、ＤＦＦ１３０の出力データ（即ちデータ出力端１３０Ｑでのデータ）はクロック信号ＣＬＫ２のアップエッジに同期して更新される。厳密には、クロック信号ＣＬＫ２にてアップエッジが生じるタイミングの直前における入力選択回路１１０の出力データがＤＦＦ１３０に取り込まれて保持（ラッチ）される。例えば、タイミングｔＢ７でのクロック信号ＣＬＫ２のアップエッジに応答してＤＦＦ１３０は入力選択回路１１０にて選択されたスキャンデータＳＤ（タイミングｔＢ７の直前における入力選択回路１１０の出力データ）を取り込んで保持する。このように、クロック信号ＣＬＫ２にてアップエッジが生じるタイミングの直前における入力選択回路１１０の出力データはスキャンデータＳＤであるので、ＤＦＦ１３０ではスキャンデータＳＤがクロック信号ＣＬＫ２に同期して順次更新されつつ保持される。
【００９２】
ＤＦＦ１２０及び１３０は、夫々に、自身の保持データを出力選択回路１４０に出力する。図８の動作例に係る出力選択信号ＳＥＬに基づき、タイミングｔＢ１からタイミングｔＢ２２までの区間において、タイミングｔＢ５及びｔＢ７間の区間とタイミングｔＢ１３及びｔＢ１５間の区間とで出力データＱはＤＦＦ１３０の出力データ（故にスキャンデータＳＤ）と一致し、それ以外の区間での出力データＱはＤＦＦ１２０の出力データ（故に通常データＤ）と一致している。図８に示される２つの楕円のポイント（即ちタイミングｔＢ７及びｔＢ１５）の夫々にて、スキャンチェーンにおけるシフト動作（スキャンシフト）が行われる。
【００９３】
＜＜第２実施形態＞＞
本発明の第２実施形態を説明する。第２実施形態並びに後述の第３及び第４実施形態は第１実施形態を基礎とする実施形態であり、第２〜第４実施形態において特に述べない事項に関しては、矛盾の無い限り、第１実施形態の記載が第２〜第４実施形態にも適用される。第２実施形態の記載を解釈するにあたり、第１及び第２実施形態間で矛盾する事項については第２実施形態の記載が優先されて良い（後述の第３及び第４実施形態についても同様）。矛盾の無い限り、第１〜第４実施形態の内、任意の複数の実施形態を組み合わせても良い。
【００９４】
図４に示されるＤＦＦ１２０及び１３０の夫々は、マスタスレーブ型のフリップフロップ回路として構成されていて良い。マスタスレーブ型のフリップフロップ回路は、マスタラッチ回路と、マスタラッチ回路の後段に設けられたスレーブラッチ回路と、を備える。ＤＦＦ１２０及び１３０は、個別にマスタラッチ回路及びスレーブラッチ回路を有していて良い。但し、ＤＦＦ１２０及び１３０間でマスタラッチ回路を共用化することもできる。これにより、回路面積の削減が図られる。以下、第２実施形態では、ＤＦＦ１２０及び１３０間でマスタラッチ回路を共用化する方法を説明する。
【００９５】
図９は、第２実施形態に係るＤＳＦＦ２００の内部構成図である。ＤＳＦＦ２００を図３及び図４に示すＤＳＦＦ１００として用いることができる。即ち、ＤＳＦＦ２００を、図１のＤＳＦＦ１０［１］〜１０［ＭＡ］及びＤＳＦＦ３０［１］〜３０［ＭＢ］の夫々として用いることができる。
【００９６】
ＤＳＦＦ２００は、入力選択回路２２０、マスタラッチ回路２３０、２つのスレーブラッチ回路２４０、出力選択回路２５０、及び、インバータ回路２６０を備える。ＤＳＦＦ２００は、所謂マスタスレーブ型のフリップフロップ回路として構成されているが、マスタラッチ回路２３０の後段側に、マスタラッチ回路２３０に対して並列に２つのスレーブラッチ回路２４０が設けられている。２つのスレーブラッチ回路２４０を互いに区別する必要がある場合、２つのスレーブラッチ回路２４０の内の一方を符号“２４０＿１”によって参照し、他方を符号“２４０＿２”によって参照する。入力選択回路２２０及び出力選択回路２５０は、夫々、図４の入力選択回路１１０及び出力選択回路１４０に相当する。マスタラッチ回路２３０とスレーブラッチ回路２４０＿１との組み合わせが図４のＤＦＦ１２０に相当し、マスタラッチ回路２３０とスレーブラッチ回路２４０＿２との組み合わせが図４のＤＦＦ１３０に相当する。
【００９７】
入力選択回路２２０は、通常データ入力部１０１及びスキャンデータ入力部１０３に接続され、入力選択信号ＳＣに基づき、入力部１０１及び１０３の何れか一方をマスタラッチ回路２３０の入力端に接続する。具体的には、入力選択回路２２０は、インバータタイプのトライステートバッファ２２１及び２２２を備える。トライステートバッファ２２１の状態は入力選択信号ＳＣの反転信号ＳＣＢに基づいて制御され、トライステートバッファ２２２の状態は入力選択信号ＳＣに基づいて制御される。そして、入力選択信号ＳＣがハイレベルであるとき、入力選択回路２２０は、入力部１０３に加わるスキャンデータＳＤを示す信号の反転信号を、トライステートバッファ２２２を通じマスタ入力データＤＭを示す信号としてマスタラッチ回路２３０に供給する。一方、入力選択信号ＳＣがローレベルであるとき、入力選択回路２２０は、入力部１０１に加わる通常データＤを示す信号の反転信号を、トライステートバッファ２２１を通じマスタ入力データＤＭを示す信号としてマスタラッチ回路２３０に供給する。
【００９８】
マスタ入力データＤＭを示す信号はマスタラッチ回路２３０の入力端に供給され、マスタ入力データＤＭに応じたマスタ出力データＱＭを示す信号がマスタラッチ回路２３０の出力端から出力される。マスタ出力データＱＭを示す信号はスレーブ入力データＤＳを示す信号として各スレーブラッチ回路２４０の入力端に供給される。各スレーブラッチ回路２４０は、スレーブ入力データＤＳに応じたスレーブ出力データＱＳを生成してスレーブ出力データＱＳを示す信号を自身の出力端から出力する。出力選択回路２５０は、出力選択信号ＳＥＬに基づき、２つのスレーブラッチ回路２４０からの２つのスレーブ出力データＱＳの何れか一方を選択し、選択したスレーブ出力データＱＳを示す信号を出力する。インバータ回路２６０は、出力選択回路２５０にて選択及び出力されたスレーブ出力データＱＳを示す信号の反転信号を、出力データＱを示す信号として生成する。出力データＱを示す信号はデータ出力部１０２から出力される。
【００９９】
通常データＤを示す信号、スキャンデータＳＤを示す信号、マスタ入力データＤＭを示す信号、マスタ出力データＱＭを示す信号、スレーブ入力データＤＳを示す信号、スレーブ出力データＱＳを示す信号、及び、出力データＱを示す信号は、夫々に、ローレベル又はハイレベルの信号レベルをとる１ビットのデジタル信号である。
【０１００】
ここでは、通常データＤ、スキャンデータＳＤ、マスタ出力データＱＭ、スレーブ入力データＤＳ及び出力データＱは正論理にて定義され、マスタ入力データＤＭ及びスレーブ出力データＱＳは負論理にて定義されるものとする。即ち、データＤ、ＳＤ、ＱＭ、ＤＳ又はＱである注目データを示す信号の信号レベルがハイレベル、ローレベルであるとき、当該注目データは、夫々、“１”、“０”の論理値を有するものとする。逆に、データＤＭ又はＱＳである注目データを示す信号の信号レベルがハイレベル、ローレベルであるとき、当該注目データは、夫々、“０”、“１”の論理値を有するものとする。
【０１０１】
任意のラッチ回路又は選択回路について、或るデータを示す信号の当該回路への入力は、或るデータの当該回路への入力と同義であり、或るデータを示す信号の当該回路からの出力は、或るデータの当該回路からの出力と同義である。故に、以下では例えば、マスタラッチ回路２３０に対してマスタ入力データＤＭを示す信号が入力されることを、マスタラッチ回路２３０に対するマスタ入力データＤＭの入力と表現したり、マスタラッチ回路２３０からマスタ出力データＱＭを示す信号が出力されることを、マスタラッチ回路２３０からのマスタ出力データＱＭの出力と表現したりすることがある。
【０１０２】
マスタラッチ回路２３０に対しては基準クロック信号ＣＬＫが供給され、スレーブラッチ回路２４０＿１、２４０＿２に対しては、夫々、クロック信号ＣＬＫ１、ＣＬＫ２が供給される。このため、第２実施形態では、クロック信号ＣＬＫ１及びＣＬＫ２に加えて基準クロック信号ＣＬＫもデジタル処理回路２に供給される。或いは、基準クロック信号ＣＬＫをデジタル処理回路２に供給し、クロック選択出力回路７ｂをデジタル処理回路２に含めておいても良い。この際、クロック選択出力回路７ｂは各ＤＳＦＦに設けられていても良い。
【０１０３】
マスタラッチ回路２３０は、基準クロック信号ＣＬＫのレベル変化に応答して、データＤＭの取り込み及び保持（ラッチ）を行う。スレーブラッチ回路２４０＿１は、クロック信号ＣＬＫ１のレベル変化に応答して、データＤＳの取り込み及び保持（ラッチ）を行う。スレーブラッチ回路２４０＿２は、クロック信号ＣＬＫ２のレベル変化に応答して、データＤＳの取り込み及び保持（ラッチ）を行う。マスタラッチ回路２３０、スレーブラッチ回路２４０及び出力選択回路２５０の構成及び動作について詳説する。
【０１０４】
マスタラッチ回路２３０は、スイッチ２３１及び２３２と、インバータ回路２３３及び２３４と、を備える。スイッチ２３１及び２３２を含む任意のスイッチは、双方向スイッチとしてのアナログスイッチであり、例えば、ＣＭＯＳ（Complementary Metal-Oxide-Semiconductor）の電界効果トランジスタを用いて構成されたトランスミッションゲートであって良い。スイッチ２３１及び２３２を含む任意のスイッチは、第１端、第２端及び制御端を有し、制御端に供給される信号のレベルに応じて、第１端及び第２端が導通状態又は非導通状態（遮断状態）となる。第１端及び第２端が導通状態となることをオン状態と称し、第１端及び第２端が非導通状態（遮断状態）となることをオフ状態と称する。ここでは、スイッチ２３１及び２３２を含む任意のスイッチについて、制御端への信号のレベルがハイレベルであるときに当該スイッチはオン状態となり、制御端への信号のレベルがローレベルであるときに当該スイッチはオフ状態となるものとする。
【０１０５】
スイッチ２３１の第１端には入力選択回路２２０からマスタ入力データＤＭを示す信号が入力され、スイッチ２３１の第２端はノード２３５に接続される。インバータ回路２３３の入力端はノード２３５に接続される。インバータ回路２３３は自身の入力端に加わる信号の反転信号を自身の出力端から出力する。インバータ回路２３３の出力信号がマスタ出力データＱＭを示す信号となる。インバータ回路２３３の出力端はインバータ回路２３４の入力端に接続される。インバータ回路２３４は自身の入力端に加わる信号の反転信号を自身の出力端から出力する。故に、マスタ出力データＱＭを示す信号の反転信号がインバータ回路２３４の出力端から出力される。スイッチ２３２の第１端はインバータ回路２３４の出力端に接続され、スイッチ２３２の第２端はノード２３５に接続される。
【０１０６】
スイッチ２３２の制御端には基準クロック信号ＣＬＫが入力され、スイッチ２３１の制御端には基準クロック信号ＣＬＫの反転信号ＣＬＫＢが入力される。このため、基準クロック信号ＣＬＫがローレベルであるときには、スイッチ２３１がオン状態且つスイッチ２３２がオフ状態となることでマスタラッチ回路２３０はスルー状態（マスタスルー状態）となり、基準クロック信号ＣＬＫがハイレベルであるときには、スイッチ２３１がオフ状態且つスイッチ２３２がオン状態となることでマスタラッチ回路２３０はホールド状態（マスタホールド状態）となる。図１０（ａ）、（ｂ）に、マスタラッチ回路２３０のスルー状態、ホールド状態を模式的に示す。
【０１０７】
マスタラッチ回路２３０は、マスタ入力データＤＭに応じたマスタ出力データＱＭを出力可能なマスタ出力回路、及び、マスタ出力データＱＭをマスタ出力回路の入力側に帰還可能なマスタ帰還回路を備えている、と考えることができる。図９のマスタラッチ回路２３０において、マスタ出力回路は、インバータ回路２３３により或いはスイッチ２３１及びインバータ回路２３３により構成され、マスタ帰還回路は、インバータ回路２３４により或いはスイッチ２３２及びインバータ回路２３４により構成される。マスタ帰還回路による帰還とは、マスタ出力データＱＭに基づくインバータ回路２３４の出力信号をノード２３５に供給することを意味する。
【０１０８】
マスタラッチ回路２３０において、スルー状態（マスタスルー状態）では、マスタ帰還回路による帰還が行われることなく現在のマスタ入力データＤＭに基づき現在のマスタ出力データＱＭが生成される。マスタラッチ回路２３０において、ホールド状態（マスタホールド状態）では、現在のマスタ入力データＤＭに関係なくマスタ帰還回路による帰還データ（インバータ回路２３４の出力データ）に基づき現在のマスタ出力データＱＭが生成される。
【０１０９】
スレーブラッチ回路２４０＿１及び２４０＿２は互いに同じ構成を有し、各スレーブラッチ回路２４０は、スイッチ２４１及び２４２と、インバータ回路２４３及び２４４と、を備える。スレーブラッチ回路２４０＿１及び２４０＿２の夫々において、スイッチ２４１の第１端には、マスタラッチ回路２３０からのマスタ出力データＱＭを示す信号がスレーブ入力データＤＳを示す信号として入力される。
【０１１０】
各スレーブラッチ回路２４０において、スイッチ２４１の第２端はノード２４５に接続され、インバータ回路２４３の入力端はノード２４５に接続される。インバータ回路２４３は自身の入力端に加わる信号の反転信号を自身の出力端から出力する。インバータ回路２４３の出力信号がスレーブ出力データＱＳを示す信号となる。各スレーブラッチ回路２４０において、インバータ回路２４３の出力端はインバータ回路２４４の入力端に接続される。インバータ回路２４４は自身の入力端に加わる信号の反転信号を自身の出力端から出力する。故に、各スレーブラッチ回路２４０において、スレーブ出力データＱＳを示す信号の反転信号がインバータ回路２４４の出力端から出力される。各スレーブラッチ回路２４０において、スイッチ２４２の第１端はインバータ回路２４４の出力端に接続され、スイッチ２４２の第２端はノード２４５に接続される。
【０１１１】
各スレーブラッチ回路２４０において、スイッチ２４１の制御端にはクロック信号が入力され、スイッチ２４２の制御端にはクロック信号の反転信号が入力される。ここで、スレーブラッチ回路２４０＿１におけるクロック信号はクロック信号ＣＬＫ１であり、スレーブラッチ回路２４０＿２におけるクロック信号はクロック信号ＣＬＫ２である。故に、スレーブラッチ回路２４０＿１において、スイッチ２４１の制御端にはクロック信号ＣＬＫ１が入力される一方でスイッチ２４２の制御端にはクロック信号ＣＬＫ１の反転信号ＣＬＫ１Ｂが入力される。スレーブラッチ回路２４０＿２において、スイッチ２４１の制御端にはクロック信号ＣＬＫ２が入力される一方でスイッチ２４２の制御端にはクロック信号ＣＬＫ２の反転信号ＣＬＫ２Ｂが入力される。
【０１１２】
このため、クロック信号ＣＬＫ１がハイレベルであるときには、スレーブラッチ回路２４０＿１においてスイッチ２４１がオン状態且つスイッチ２４２がオフ状態となることでスレーブラッチ回路２４０＿１はスルー状態（スレーブスルー状態）となる。クロック信号ＣＬＫ１がローレベルであるときには、スレーブラッチ回路２４０＿１においてスイッチ２４１がオフ状態且つスイッチ２４２がオン状態となることでスレーブラッチ回路２４０＿１はホールド状態（スレーブホールド状態）となる。
これに類似し、クロック信号ＣＬＫ２がハイレベルであるときには、スレーブラッチ回路２４０＿２においてスイッチ２４１がオン状態且つスイッチ２４２がオフ状態となることでスレーブラッチ回路２４０＿２はスルー状態（スレーブスルー状態）となる。クロック信号ＣＬＫ２がローレベルであるときには、スレーブラッチ回路２４０＿２においてスイッチ２４１がオフ状態且つスイッチ２４２がオン状態となることでスレーブラッチ回路２４０＿２はホールド状態（スレーブホールド状態）となる。
図１１（ａ）、（ｂ）に、１つのスレーブラッチ回路２４０のスルー状態、ホールド状態を模式的に示す。
【０１１３】
スレーブラッチ回路２４０＿１及び２４０＿２の夫々は、スレーブ入力データＤＳに応じたスレーブ出力データＱＳを出力可能なスレーブ出力回路、及び、スレーブ出力データＱＳをスレーブ出力回路の入力側に帰還可能なスレーブ帰還回路を備えている、と考えることができる。図９の各スレーブラッチ回路２４０において、スレーブ出力回路は、インバータ回路２４３により或いはスイッチ２４１及びインバータ回路２４３により構成され、スレーブ帰還回路は、インバータ回路２４４により或いはスイッチ２４２及びインバータ回路２４４により構成される。スレーブ帰還回路による帰還とは、スレーブ出力データＱＳに基づくインバータ回路２４４の出力信号をノード２４５に供給することを意味する。
【０１１４】
各スレーブラッチ回路２４０において、スルー状態（スレーブスルー状態）では、スレーブ帰還回路による帰還が行われることなく現在のスレーブ入力データＤＳに基づき現在のスレーブ出力データＱＳが生成される。各スレーブラッチ回路２４０において、ホールド状態（スレーブホールド状態）では、現在のスレーブ入力データＤＳに関係なくスレーブ帰還回路による帰還データ（インバータ回路２４４の出力データ）に基づき現在のスレーブ出力データＱＳが生成される。
【０１１５】
以下、必要に応じ、スレーブラッチ回路２４０＿１、２４０＿２により生成及び出力されるスレーブ出力データＱＳを、夫々、符号“ＱＳ＿１”、“ＱＳ＿２”により参照する。
【０１１６】
出力選択回路２５０は、スイッチ２５１及び２５２を備える。スイッチ２５１の第１端はスレーブラッチ回路２４０＿１の出力端に接続される一方で、スイッチ２５２の第１端はスレーブラッチ回路２４０＿２の出力端に接続される。故に、スイッチ２５１の第１端にはスレーブラッチ回路２４０＿１からのスレーブ出力データＱＳ＿１を示す信号が入力され、スイッチ２５２の第１端にはスレーブラッチ回路２４０＿２からのスレーブ出力データＱＳ＿２を示す信号が入力される。スイッチ２５１及び２５２の各第２端は出力選択回路２５０の出力端に相当するノード２５３にて共通接続される。出力選択回路２５０の出力端（即ちノード２５３）はインバータ回路２６０の入力端に接続される。
【０１１７】
出力選択回路２５０は、出力選択信号ＳＥＬに基づき、スレーブ出力データＱＳ＿１及びＱＳ＿２の何れか一方を選択する。選択されたデータはインバータ回路２６０を通じ、出力データＱとしてデータ出力部１０２から出力される。
【０１１８】
スイッチ２５２の制御端には出力選択信号ＳＥＬが入力され、スイッチ２５１の制御端には出力選択信号ＳＥＬの反転信号ＳＥＬＢが入力される。このため、出力選択信号ＳＥＬがローレベルであるときには、スイッチ２５１がオン状態且つスイッチ２５２がオフ状態となってスレーブ出力データＱＳ＿１が出力選択回路２５０にて選択されることになり、結果、スレーブ出力データＱＳ＿１を示す信号の反転信号がインバータ回路２６０の出力端から出力される（つまり、スレーブ出力データＱＳ＿１が出力データＱとなる）。一方、出力選択信号ＳＥＬがハイレベルであるときには、スイッチ２５１がオフ状態且つスイッチ２５２がオン状態となってスレーブ出力データＱＳ＿２が出力選択回路２５０にて選択されることになり、結果、スレーブ出力データＱＳ＿２を示す信号の反転信号がインバータ回路２６０の出力端から出力される（つまり、スレーブ出力データＱＳ＿２が出力データＱとなる）。
【０１１９】
上述の如く構成されたＤＳＦＦ２００において、マスタラッチ回路２３０では、入力選択信号ＳＣに基づき通常データＤ及びスキャンデータの何れかが入力され且つ保持されることになる。但し、スレーブラッチ回路２４０＿１に取り込まれて保持（ラッチ）されるデータはクロック信号ＣＬＫ１に基づき通常動作における通常データＤに限定され、スレーブラッチ回路２４０＿２に取り込まれて保持（ラッチ）されるデータはクロック信号ＣＬＫ２に基づきテストパターンデータに基づくデータ（キャプチャ動作時を除けばスキャンデータＳＤ）に限定される。
【０１２０】
＜＜第３実施形態＞＞
本発明の第３実施形態を説明する。第１及び第２実施形態に係る各ＤＳＦＦは第１保持回路と第２保持回路を備えている。第１実施形態に係る構成において（図４参照）、第１保持回路はＤＦＦ１２０に相当し、第２保持回路はＤＦＦ１３０に相当する。第２実施形態に係る構成において（図９参照）、第１保持回路はマスタラッチ回路２３０とスレーブラッチ回路２４０＿１の組み合わせに相当し、第２保持回路はマスタラッチ回路２３０とスレーブラッチ回路２４０＿２の組み合わせに相当する。
【０１２１】
第１及び第２実施形態において、各ＤＳＦＦの第１保持回路（例えばＤＦＦ１２０）は、通常動作における入力選択回路（例えば１１０）からの通常データＤを取り込んで保持する第１機能を有し、各ＤＳＦＦの第２保持回路（例えばＤＦＦ１３０）は、スキャンチェーンが形成されているときに入力選択回路（例えば１１０）からのスキャンデータＳＤを取り込んで保持する第２機能を有する。第１保持回路はクロック信号ＣＬＫ１に基づいて通常データＤの取り込み及び保持を行い、第２保持回路はクロック信号ＣＬＫ２に基づいてスキャンデータＳＤの取り込み及び保持を行う。
【０１２２】
スキャンテストは、主としてロジック回路２０の故障診断を行うためのものであるが、ＤＳＦＦ１０又は３０に故障が発生していてもデジタル処理回路２の正常動作は担保されない。このため、スキャンテストにおいて、ＤＳＦＦ１０又は３０の故障の有無も診断された方が好ましい。但し、上述の如く第１保持回路に割り当てられる機能を第１機能に固定すると共に第２保持回路に割り当てられる機能を第２機能に固定した場合、テスト結果評価回路８に供給されるデータは第１保持回路の動作に依存しないデータとなるため、スキャンテストにおいて第１保持回路の故障の有無を診断することができない。
【０１２３】
これを解消すべく、図１２に示すように、第１及び第２保持回路に割り当てられる機能を切り替えるための切り替え制御部６ａをデータ処理装置１に設けておいても良い。ここでは、切り替え制御部６ａがテスト制御回路６の構成要素に含まれるものとする。但し、テスト制御回路６とは別に切り替え制御部６ａが設けられていても良い。
【０１２４】
第１及び第２保持回路に対する機能の割り当て状態には、第１、第２保持回路に対して夫々第１、第２機能が割り当てられる第１割り当て状態と、第１、第２保持回路に対して夫々第２、第１機能が割り当てられる第２割り当て状態と、がある。
【０１２５】
第１割り当て状態における各ＤＳＦＦの動作は第１又は第２実施形態で示した通りである。即ち、第１割り当て状態において、各ＤＳＦＦの第１保持回路（例えばＤＦＦ１２０）は、通常動作における入力選択回路（例えば１１０）からの通常データＤを第１クロック信号（ＣＬＫ１）に基づき取り込んで保持し、各ＤＳＦＦの第２保持回路（例えばＤＦＦ１３０）は、スキャンチェーンが形成されているときに入力選択回路（例えば１１０）からのスキャンデータＳＤを第２クロック信号（ＣＬＫ２）に基づき取り込んで保持する。
【０１２６】
これに対し、第２割り当て状態では、第１割り当て状態を基準として、第１及び第２保持回路に割り当てられる機能が逆とされる。これを実現すべく、第２割り当て状態では、基準クロック信号ＣＬＫとクロック信号ＣＬＫ１及びＣＬＫ２との関係を、第１割り当て状態を基準として逆転させる。
【０１２７】
つまり、第２割り当て状態では、通常動作が行われる区間においてクロック信号ＣＬＫ２が基準クロック信号ＣＬＫと同じ信号レベルを有すると共にクロック信号ＣＬＫ１がローレベルで固定されるよう、且つ、テスト動作が行われる区間においてクロック信号ＣＬＫ１が基準クロック信号ＣＬＫと同じ信号レベルを有すると共にクロック信号ＣＬＫ２がローレベルで固定されるよう、クロック選択信号ＳＥＬＣ（図２（ｂ）参照）を含むテスト制御信号を、切り替え制御部６ａ（テスト制御回路６）からクロック選択出力回路７ｂに対し供給すれば良い。
【０１２８】
更に、第２割り当て状態では、第１割り当て状態を基準として、出力選択信号ＳＥＬの信号レベルをローレベル及びハイレベル間で逆転させる。これの実現を指示する信号を含むテスト制御信号を、切り替え制御部６ａ（テスト制御回路６）からテストパターン生成回路３に供給すれば良い。第１割り当て状態を基準とした出力選択信号ＳＥＬの信号レベルの逆転により、通常動作における通常データＤが出力データＱとなるべき区間において出力選択信号ＳＥＬはハイレベル（値は“１”）とされ、スキャンチェーンが形成されてスキャンデータＳＤが出力データＱとなるべき区間において出力選択信号ＳＥＬはローレベル（値は“０”）とされる。
【０１２９】
結果、第２割り当て状態においては、スキャンチェーンが形成されているときにクロック信号ＣＬＫ１が基準クロック信号ＣＬＫと一致するため、各ＤＳＦＦの第１保持回路（例えばＤＦＦ１２０）は、スキャンチェーンが形成されているときの入力選択回路（例えば１１０）からのスキャンデータＳＤを第１クロック信号（ＣＬＫ１）に基づき取り込んで保持することになる。このとき、出力選択信号ＳＥＬはローレベル（値は“０”）とされているので、スキャンチェーンによるシフト動作が実現される。第２割り当て状態において、第１スキャンチェーンはＤＳＦＦ１０［１］〜１０［ＭＡ］における計ＭＡ個のＤＦＦ１２０にて形成され、第２スキャンチェーンはＤＳＦＦ３０［１］〜３０［ＭＢ］における計ＭＢ個のＤＦＦ１２０にて形成されることになる。
【０１３０】
また、第２割り当て状態においては、通常動作が行われる区間でクロック信号ＣＬＫ２が基準クロック信号ＣＬＫと一致するため、各ＤＳＦＦの第２保持回路（例えばＤＦＦ１３０）は、通常動作における入力選択回路（例えば１１０）からの通常データＤを第２クロック信号（ＣＬＫ２）に基づき取り込んで保持するようになる。このとき、出力選択信号ＳＥＬはハイレベル（値は“１”）とされているので、通常データＤが出力データＱとなる。
【０１３１】
切り替え制御部６ａは、所定のタイミングにおいて、第１及び第２保持回路に対する機能の割り当て状態を、第１割り当て状態から第２割り当て状態へと、或いは、第２割り当て状態から第１割り当て状態へと切り替えることができる。例えば、１回分のテスト動作が完了するたびに、又は、２以上の所定回数分のテスト動作が完了するたびに、第１割り当て状態及び第２割り当て状態間の切り替えを行って良い。このような切り替えを行うことで、ＤＳＦＦの故障を含めた故障診断を行うことが可能となる。
【０１３２】
＜＜第４実施形態＞＞
本発明の第４実施形態を説明する。第４実施形態では、第１〜第３実施形態に対する補足事項、応用技術、変形技術等を説明する。
【０１３３】
図８の動作例は本発明に適用可能な１つの動作例に過ぎない。基準クロック信号ＣＬＫの１周期ごとに、通常動作とテスト動作を交互に切り替え実行するといった方法も採用可能である。例えば、本来、２００ｋＨｚに相当する速度で通常動作による信号処理を行うべきデジタル処理回路がある場合、基準クロック信号ＣＬＫを４００ｋＨｚとした上で上記方法を採用すれば、２００ｋＨｚに相当する速度での通常動作と、２００ｋＨｚに相当する速度でのテスト動作とが、デジタル処理回路２にて並列実行されることになる。
【０１３４】
ＤＦＦ１２０及び１３０がポジティブエッジトリガ型のＤＦＦであることを想定して具体的な説明を行ったが、ＤＦＦ１２０及び１３０をネガティブエッジトリガ型のＤＦＦとして構成するようにしても良い。
【０１３５】
ＤＳＦＦ１０［ＭＡ］のデータ出力部１０２をＤＳＦＦ３０［１］のスキャンデータ入力部１０３に接続する変形も可能である。この場合、ＤＳＦＦ１０［１］〜１０［ＭＡ］及び３０［１］〜３０［ＭＢ］から成る単一のスキャンチェーン（単一のシフトレジスタ）を構成してテスト動作を行うことができる。
【０１３６】
説明の簡単化のため、デジタル処理回路２内の１つのロジック回路２０に注目したが、デジタル処理回路２内には、組み合わせ回路を含むロジック回路が複数設けられていて良く、各ロジック回路の前段及び後段の夫々にスキャンチェーンを形成可能な複数のスキャンフリップフロップ回路が設けられていて良い。各スキャンフリップフロップ回路をＤＳＦＦとして構成しておくことができる。複数のロジック回路に第１及び第２ロジック回路が含まれていて、第１ロジック回路がロジック回路２０に相当する場合、第２ロジック回路はＤＳＦＦ３０［１］〜３０［ＭＢ］の出力データＱＢ［１］〜ＱＢ［ＭＢ］に基づく信号処理を行い、第２ロジック回路の出力データを受けて保持するための複数のＤＳＦＦが第２ロジック回路の後段に配置される。
【０１３７】
データ処理装置１は半導体集積回路の形態で形成され、当該半導体集積回路を、樹脂にて構成された筐体（パッケージ）内に封入することで半導体装置を構成して良い。半導体装置は、例えば、ＣＰＵ（Central Processing Unit）であっても良いし、電源回路を構成するための電源ＩＣ、モータを駆動するためのモータドライバＩＣ、又は、ＬＥＤ（発光ダイオード）を駆動するためのＬＥＤドライバＩＣであっても良い。
【０１３８】
データ処理装置１を含む半導体集積回路（換言すれば半導体装置）は、任意の機器に搭載可能であり、任意の用途に利用される。例えば、自動車等の車両に当該半導体集積回路を搭載することができる。車載用途では、故障診断のリアルタイム性が要求されることが多く、この点において、本発明に係る構成は有益である。
【０１３９】
本発明の実施形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。以上の実施形態は、あくまでも、本発明の実施形態の例であって、本発明ないし各構成要件の用語の意義は、以上の実施形態に記載されたものに制限されるものではない。上述の説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。
【符号の説明】
【０１４０】
１  データ処理装置
２  デジタル処理回路
３  テストパターン生成回路
４  データ入力回路
５  データ利用回路
６  テスト制御回路
７  クロック信号生成回路
８  テスト結果評価回路
１０、３０、１００、２００  ＤＳＦＦ
２０  ロジック回路
１０１  通常データ入力部
１０２  データ出力部
１０３  スキャンデータ入力部
１０４  入力選択信号入力部
１０５  出力選択信号入力部
１０６  第１クロック入力部
１０７  第２クロック入力部
１１０、２２０  入力選択回路
１２０、１３０  ＤＦＦ
１４０、２５０  出力選択回路
２３０  マスタラッチ回路
２４０  スレーブラッチ回路
【図１】
2020165780.tif 000003
【図２】
2020165780.tif 000004
【図３】
2020165780.tif 000005
【図４】
2020165780.tif 000006
【図５】
2020165780.tif 000007
【図６】
2020165780.tif 000008
【図７】
2020165780.tif 000009
【図８】
2020165780.tif 000010
【図９】
2020165780.tif 000011
【図１０】
2020165780.tif 000012
【図１１】
2020165780.tif 000013
【図１２】
2020165780.tif 000014
【図１３】
2020165780.tif 000015
【図１４】
2020165780.tif 000016