(57)【要約】【課題】半導体集積回路にスキャンパスを組み込んでスキャンテストを行う際に、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、シングルサイクルパスの実動作速度によるテストを可能にすること。【解決手段】実動作モードでタイミング解析を行い、マルチサイクルパスを抽出する。次に、シングルサイクルパスとマルチサイクルパスの分岐点と、シングルサイクルパスとマルチサイクルパスの合流点を抽出する。そして、上記分岐点から出力側のマルチサイクルパス側の経路上と、上記合流点から入力側のマルチサイクルパス側の経路上に、出力固定回路を挿入する。但し、出力固定回路は、マルチサイクルテスト時には、入力と同じ信号を出力し、シングルサイクルテスト時には、任意の固定値を出力する回路である。【選択図】図１
2012189451.tif 000002
【特許請求の範囲】
【請求項１】
マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路の設計方法であって、
実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、
前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、
前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、
前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、
を含むことを特徴とする半導体集積回路のスキャンテスト回路の設計方法。
【請求項２】
前記出力固定回路を挿入するステップは、
前記分岐点と前記分岐点を含むマルチサイクルパスに接続した終点スキャンフリップフロップ間の経路上と、前記合流点と前記合流点を含むマルチサイクルパスに接続した始点スキャンフリップフロップ間の経路上と、に前記出力固定回路を挿入することを特徴とする請求項１に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項３】
前記分岐点毎に、前記分岐点を含むマルチサイクルパスに接続した終点スキャンフリップフロップの情報を格納した分岐点と終点スキャンフリップフロップの対応テーブルを生成し、
前記合流点毎に、前記合流点を含むマルチサイクルパスに接続した始点スキャンフリップフロップの情報を格納した合流点と始点スキャンフリップフロップの対応テーブルを生成し、
前記分岐点と終点スキャンフリップフロップの対応テーブル、及び、前記合流点と始点スキャンフリップフロップの対応テーブルに基づいて、前記出力固定回路を挿入するステップを行うことを特徴とする請求項２に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項４】
前記出力固定回路が複数存在する経路を抽出するステップと、
前記抽出された複数の出力固定回路のうち、冗長な前記出力固定回路を削除するステップと、をさらに含むことを特徴とする請求項１乃至３のいずれか１項に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項５】
挿入した前記出力固定回路を通る経路がシングルサイクルで動作可能か否かのタイミング解析を行うステップと、
前記タイミング解析により、タイミングエラーのない経路の前記出力固定回路を削除するステップと、をさらに含むことを特徴とする請求項１乃至４のいずれか１項に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項６】
マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路であって、
テスト対象の論理回路に対して、テストデータを供給する始点スキャンフリップフロップと、
前記始点スキャンフリップフロップの出力から、前記論理回路内の経路を通ったデータを受け取る終点スキャンフリップフロップと、
前記論理回路内の異なるサイクル数のパスに分岐する分岐点と前記分岐点を含むマルチサイクルパスの終点スキャンフリップフロップ間の経路上、及び、前記論理回路内の異なるサイクル数のパスが合流する合流点と前記合流点を含むマルチサイクルパスの始点スキャンフリップフロップ間の経路上に挿入された出力固定回路と、
マルチサイクルテストモードと、シングルサイクルテストモードのいずれかを選択するモード選択部と、
を備え、
前記モード選択部が前記マルチサイクルテストモードを選択している場合には、前記出力固定回路は入力データをそのまま出力し、
前記モード選択部が前記シングルサイクルテストモードを選択している場合には、前記出力固定回路は任意の一定値を出力することを特徴とする半導体集積回路のスキャンテスト回路。
【請求項７】
前記始点及び終点スキャンフリップフロップに対し、スキャン動作、キャプチャ動作のいずれかを設定するスキャンイネーブル信号を供給することを特徴とする請求項６に記載の半導体集積回路のスキャンテスト回路。
【請求項８】
前記始点及び終点スキャンフリップフロップと前記論理回路に供給されるクロック信号を、前記モード選択部が前記マルチサイクルテストモードを選択している場合には、前記シングルサイクルテストモードを選択している場合の１／Ｎの周波数（ここで、Ｎはマルチサイクル数）に設定することを特徴とする請求項６または７に記載の半導体集積回路のスキャンテスト回路。
【請求項９】
マルチサイクルパスを含む半導体集積回路のテスト方法であって、
実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、
前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、
前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、
前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、
シングルサイクルテストモードと、マルチサイクルテストモードのいずれかを選択するステップと、
前記シングルサイクルテストモードが選択された場合に実施されるシングルサイクルテストステップと、
前記マルチサイクルテストモードが選択された場合に実施されるマルチサイクルテストステップと、
を含み、
前記シングルサイクルテストステップは、
始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するシングルサイクルスキャンステップと、
終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作と同じクロック周波数で、前記論理回路による前記テストデータの応答をキャプチャするシングルサイクルキャプチャステップと、
前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すシングルサイクルシフトアウトステップと、
を含み、
前記マルチサイクルテストステップは、
始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するマルチサイクルスキャンステップと、
終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作のクロック周波数の１／Ｎのクロック周波数（ここで、Ｎはマルチサイクル数）で、前記論理回路による前記テストデータの応答をキャプチャするマルチサイクルキャプチャステップと、
前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すマルチサイクルシフトアウトステップと、
を含むことを特徴とする半導体集積回路のスキャンテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のスキャンテスト回路の設計方法、スキャンテスト回路、およびスキャンテスト方法に関する。特に、本発明は、マルチサイクルパスを有する半導体集積回路において、シングルサイクルテスト及びマルチサイクルテストを行う半導体集積回路のスキャンテスト回路の設計方法、スキャンテスト回路、およびスキャンテスト方法に関する。
【背景技術】
【０００２】
半導体集積回路のテスト容易化のために最も広く使用される技術の一つが、スキャンパスを半導体集積回路に組み込むスキャン設計技術である。具体的には、論理回路中のフリップフロップのデータ入力にセレクタを付加し、そのフリップフロップを直列に接続してスキャンパスを構成する。本明細書では、以降、上記したように、セレクタを付加してスキャンパスを構成したフリップフロップを「スキャンフリップフロップ」という。また、スキャンフリップフロップをＳＦＦと表記することもある。上記したスキャンパスは巨大なシフトレジスタとして機能する。そして、論理回路のテストの際には、スキャンパスを利用して論理回路中のスキャンフリップフロップに直接に値を書き込んで、論理回路の動作を検証する。
【０００３】
スキャンパスを用いたスキャンテスト方法において重要な点の一つが実使用時の動作速度と同じ動作速度でのテストを実現することである。これは、半導体集積回路には、論理的には正しく回路が構成されているにもかかわらず、回路の遅延が不適切である不良が存在するからである。このような不良は実動作速度によるテストによってのみ検出することが可能である。
【０００４】
従って、マルチサイクルパスを含む論理回路では、マルチサイクルパスはマルチサイクルパスの実動作速度でテストを行い、シングルサイクルパスはシングルサイクルパスの実動作速度でテストを行う必要がある。
【０００５】
特許文献１には、マルチサイクルパスとシングルサイクルパスを含む論理回路において、マルチサイクルパスに対してマルチサイクルでの実動作検査を行い、シングルサイクルパスに対してはシングルサイクルでの実動作検査を行うことが可能なテスト方法が開示されている。
【０００６】
図２１は、特許文献１に記載されたマルチサイクルパスを含む半導体集積回路である。図２１における論理回路４０において、第１の記憶素子１１の出力ｑから第２の記憶素子２１の入力ｄまでの経路は、マルチサイクルパスである。また、第１の記憶素子１１の出力ｑから第３の記憶素子３１の入力ｄまでの経路は、シングルサイクルパスである。
【０００７】
特許文献１に開示されたテスト方法は、マルチサイクルテストステップとシングルサイクルテストステップとを含んでいる。マルチサイクルテストステップでは、データを出す側の第１の記憶素子１１でデータをホールドして、マルチサイクルパスに対し実動作速度でのテストを行う。一方、シングルサイクルテストステップでは、シングルサイクルパスに対し実動作速度でのテストを行い、マルチサイクルパスに関してはデータをキャプチャさせない構成としている。このようなテスト方法により、第１の記憶素子１１の出力ｑから第２の記憶素子２１の入力ｄまでのマルチサイクルパス、及び、第１の記憶素子１１の出力ｑから第３の記憶素子３１の入力ｄまでのシングルサイクルパスに対して、各々、実動作でのテストを可能にしている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−２０１８２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以下の分析は、本発明により与えられる。
【００１０】
特許文献１に記載されたテスト方法は、図２１の論理回路４０のマルチサイクルパス及びシングルサイクルパスに対しては、各々、実動作速度でのテストが可能である。しかしながら、このテスト方法を、図２３に示す論理回路２１１に適用した場合、以下に示す問題が生ずる。図２３において、ＳＦＦ２２０１の出力ｑから分岐点２２１を通ってＳＦＦ２２０３の入力ｄまでの経路はシングルサイクルパス（シングルサイクルパス９１とする）である。また、ＳＦＦ２２０１の出力ｑから分岐点２２１、合流点２３１を通ってＳＦＦ２２０４の入力ｄまでの経路はマルチサイクルパス（マルチサイクルパス９２とする）である。もし、論理回路２１１が上記のシングルサイクルパス９１及びマルチサイクルパス９２のみを有しているとした場合には、論理回路２１１は、図２１の論理回路４０と同じ構成になるので、特許文献１に記載された方法により、実動作速度でのシングルサイクルパス、及びマルチサイクルパスのテストが可能である。
【００１１】
次に、図２３の論理回路２１１において、シングルサイクルパス９１、マルチサイクルパス９２の他に、さらに、ＳＦＦ２２０２の出力ｑから分岐点２２２、合流点２３１を通ってＳＦＦ２２０４の入力ｄまでを経路とするシングルサイクルパス（シングルサイクルパス９３とする）が追加された場合を考えてみる。ここで、特許文献１に記載されたテスト方法を適用した場合、まず、マルチサイクルテストステップでは、ＳＦＦ２２０３は実動作よりも遅い２サイクルでデータを取り込み、ＳＦＦ２２０４は実動作と同じ２サイクルでデータを取り込む。一方、シングルサイクルテストステップでは、ＳＦＦ２２０３は実動作と同じ１サイクルでデータを取り込むが、ＳＦＦ２２０４は、「ホールド」状態となり、データを取り込まない。
【００１２】
このように、シングルサイクルパス９３は、マルチサイクルテストモード時には実動作よりも遅い２サイクルでのテストとなり、シングルサイクルテストモード時にはデータの取り込みが行われない。従って、シングルサイクルパス９３は、実動作速度でのテストを行うことができないという問題が生じる。また、図２３には、ＳＦＦ２２０２の出力ｑから分岐点２２２を通ってＳＦＦ２２０５の入力ｄまでを経路とするマルチサイクルパス（マルチサイクルパス９４とする）を含んでいるが、このマルチサイクルパス９４に対しては、特許文献１に記載されたテスト方法で、マルチサイクルパスの動作速度でのテストが可能である。
【００１３】
以上説明したように、特許文献１に記載された方法では、一般に、受ける側のＳＦＦがシングルサイクルパスとマルチサイクルパスの両方を含んでいる場合（図２３のＳＦＦ２２０４の場合）には、シングルサイクルパスの実動作速度でのテストができないという問題がある。従って、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、上記した問題を解消し、実動作速度でのシングルサイクルテストを可能にする方法が望まれている。
【課題を解決するための手段】
【００１４】
本発明の第１の視点による半導体集積回路のスキャンテスト回路の設計方法は、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路の設計方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、を含む。
【００１５】
本発明の第２の視点による半導体集積回路のスキャンテスト回路は、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路であって、テスト対象の論理回路に対して、テストデータを供給する始点スキャンフリップフロップと、前記始点スキャンフリップフロップの出力から、前記論理回路内の経路を通ったデータを受け取る終点スキャンフリップフロップと、前記論理回路内の異なるサイクル数のパスに分岐する分岐点と前記分岐点を含むマルチサイクルパスの終点スキャンフリップフロップ間の経路上、及び、前記論理回路内の異なるサイクル数のパスが合流する合流点と前記合流点を含むマルチサイクルパスの始点スキャンフリップフロップ間の経路上に挿入された出力固定回路と、マルチサイクルテストモードと、シングルサイクルテストモードのいずれかを選択するモード選択部と、を備え、前記モード選択部が前記マルチサイクルテストモードを選択している場合には、前記出力固定回路は入力データをそのまま出力し、前記モード選択部が前記シングルサイクルテストモードを選択している場合には、前記出力固定回路は任意の一定値を出力する。
【００１６】
本発明の第３の視点による半導体集積回路のスキャンテスト方法は、マルチサイクルパスを含む半導体集積回路のテスト方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、シングルサイクルテストモードと、マルチサイクルテストモードのいずれかを選択するステップと、前記シングルサイクルテストモードが選択された場合に実施されるシングルサイクルテストステップと、前記マルチサイクルテストモードが選択された場合に実施されるマルチサイクルテストステップと、を含み、前記シングルサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するシングルサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作と同じクロック周波数で、前記論理回路による前記テストデータの応答をキャプチャするシングルサイクルキャプチャステップと、前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すシングルサイクルシフトアウトステップと、を含み、前記マルチサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するマルチサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作のクロック周波数の１／Ｎのクロック周波数（ここで、Ｎはマルチサイクル数）で、前記論理回路による前記テストデータの応答をキャプチャするマルチサイクルキャプチャステップと、前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すマルチサイクルシフトアウトステップと、を含む。
【発明の効果】
【００１７】
本発明の半導体集積回路のスキャンテスト回路の設計方法によれば、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能なスキャンテスト回路の設計方法を提供することができる。
【００１８】
本発明の半導体集積回路のスキャンテスト回路によれば、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能なスキャンテスト回路を提供することができる。
【００１９】
本発明の半導体集積回路のスキャンテスト方法によれば、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能なスキャンテスト方法を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施例１に係るスキャンテスト回路の回路図である。
【図２】本発明の実施例１に係るスキャンテスト回路を説明するための回路図である。
【図３】本発明の実施例１における出力固定回路のブロック図である。
【図４】本発明の実施例１に係るスキャンテスト回路の設計方法を示すフローチャートである。
【図５】本発明の実施例１に係るスキャンテスト回路の設計方法において、始点ＳＦＦ及び終点ＳＦＦを抽出した情報の一例である。
【図６】本発明の実施例１に係るスキャンテスト回路の設計方法において、分岐点を抽出した情報の一例である。
【図７】本発明の実施例１に係るスキャンテスト回路の設計方法において、合流点を抽出した情報の一例である。
【図８】図１に示したスキャンテスト回路の波形図である。
【図９】本発明の実施例２に係るスキャンテスト回路の回路図である。
【図１０】本発明の実施例２に係るスキャンテスト回路を説明するための回路図である。
【図１１】本発明の実施例２に係るスキャンテスト回路の設計方法を示すフローチャートである。
【図１２】本発明の実施例２に係るスキャンテスト回路の設計方法において、出力固定回路を抽出した情報の一例である。
【図１３】本発明の実施例３に係るスキャンテスト回路である。
【図１４】本発明の実施例３に係るスキャンテスト回路の設計方法を示すフローチャートである。
【図１５】本発明の実施例３に係るスキャンテスト回路の設計方法におけるタイミング解析結果を示す情報の一例である。
【図１６】本発明の実施例４に係るスキャンテスト回路である。
【図１７】本発明の実施例４に係るスキャンテスト回路を説明するための回路図である。
【図１８】本発明の実施例４に係るスキャンテスト回路の設計方法において、始点ＳＦＦ及び終点ＳＦＦを抽出した情報の一例である。
【図１９】本発明の実施例４に係るスキャンテスト回路の設計方法において、分岐点を抽出した情報の一例である。
【図２０】本発明の実施例４に係るスキャンテスト回路の設計方法において、合流点を抽出した情報の一例である。
【図２１】従来の半導体集積回路の構成を示すブロック図である。
【図２２】シフト状態、キャプチャ状態、ホールド状態を有するＳＦＦ回路を示す図である。
【図２３】従来のスキャンテスト回路の一例である。
【図２４】図２１に示したスキャンテスト回路の波形図である。
【発明を実施するための形態】
【００２１】
本発明の実施形態について、必要に応じて図面を参照して説明する。なお、実施形態の説明において引用する図面及び図面の符号は実施形態の一例として示すものであり、それにより本発明による実施形態のバリエーションを制限するものではない。
【００２２】
本発明による第１の実施形態の半導体集積回路のスキャンテスト回路の設計方法は、図４に示すように、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路の設計方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップＳ１１と、タイミング解析に基づいて、論理回路内のマルチサイクルパスを抽出するステップＳ１２と、論理回路内の異なるサイクル数のパスに分岐する分岐点と、論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップＳ１３と、分岐点を含むマルチサイクルパスの分岐点より出力側の経路上と、合流点を含むマルチサイクルパスの合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップＳ１５と、を含む。
【００２３】
本発明による第２の実施形態の半導体集積回路のスキャンテスト回路は、図１に示すように、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路であって、テスト対象の論理回路２１１に対して、テストデータを供給する始点スキャンフリップフロップ（２０１、２０２）と、始点スキャンフリップフロップ（２０１、２０２）の出力から、論理回路２１１内の経路を通ったデータを受け取る終点スキャンフリップフロップ（２０３、２０４、２０５）と、論理回路２１１内の異なるサイクル数のパスに分岐する分岐点（２２１、２２２）と分岐点（２２１、２２２）を含むマルチサイクルパスの終点スキャンフリップフロップ間の経路上、及び、論理回路内２１１の異なるサイクル数のパスが合流する合流点２３１と合流点２３１を含むマルチサイクルパスの始点スキャンフリップフロップ間の経路上に挿入された出力固定回路（２７１、２７２）と、マルチサイクルテストモードと、シングルサイクルテストモードのいずれかを選択するモード選択部２８０と、を備え、モード選択部２８０がマルチサイクルテストモードを選択している場合には、出力固定回路（２７１、２７２）は入力データをそのまま出力し、モード選択部２８０がシングルサイクルテストモードを選択している場合には、出力固定回路（２７１、２７２）は任意の一定値を出力する。
【００２４】
本発明による第３の実施形態の半導体集積回路のスキャンテスト方法は、図４に示すように、マルチサイクルパスを含む半導体集積回路のテスト方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップＳ１１と、タイミング解析に基づいて、論理回路内のマルチサイクルパスを抽出するステップＳ１２と、論理回路内の異なるサイクル数のパスに分岐する分岐点と、論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップＳ１３と、分岐点を含むマルチサイクルパスの分岐点より出力側の経路上と、合流点を含むマルチサイクルパスの合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップＳ１５と、シングルサイクルテストモードと、マルチサイクルテストモードのいずれかを選択するステップと、シングルサイクルテストモードが選択された場合に実施されるシングルサイクルテストステップと、マルチサイクルテストモードが選択された場合に実施されるマルチサイクルテストステップと、を含み、シングルサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するシングルサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を論理回路に接続し、実動作と同じクロック周波数で、論理回路によるテストデータの応答をキャプチャするシングルサイクルキャプチャステップと、終点スキャンフリップフロップによりスキャンチェーンを構成し、キャプチャしたデータを取り出すシングルサイクルシフトアウトステップと、を含み、マルチサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するマルチサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を論理回路に接続し、実動作のクロック周波数の１／Ｎのクロック周波数（ここで、Ｎはマルチサイクル数）で、論理回路による前記テストデータの応答をキャプチャするマルチサイクルキャプチャステップと、終点スキャンフリップフロップによりスキャンチェーンを構成し、キャプチャしたデータを取り出すマルチサイクルシフトアウトステップと、を含む。
【００２５】
以下、実施例について、図面を参照して詳しく説明する。
【実施例１】
【００２６】
［実施例１の構成］
図１は、本発明の実施例１に係るスキャンテスト回路の回路図であり、論理回路２１１に対して、実動作速度でのシングルサイクルパスのテストを可能にする対策を施した回路を示している。また、図２は、図１に示すスキャンテスト回路において対策を適用する前のスキャンテスト回路であり、論理回路２１１、始点ＳＦＦ（２０１、２０２）、終点ＳＦＦ（２０３、２０４、２０５）のみを示したものである。ここで、ＳＦＦ２０１、２０２は、論理回路２１１に対してテストデータをシフト入力する「始点スキャンフリップフロップ」（以降、始点ＳＦＦという）である。一方、ＳＦＦ２０３、２０４、２０５は、論理回路２１１によるテストデータの応答をキャプチャし、キャプチャした結果をシフトアウトする「終点スキャンフリップフロップ」（以降、終点ＳＦＦという）である。実施例１において、全ての始点ＳＦＦ、終点ＳＦＦは、図２２（ｅ）に記載された回路が用いられる。
【００２７】
図２に示す論理回路２１１内において、始点ＳＦＦ２０１のデータ出力ｑから論理回路２１１内の分岐点２２１を通って終点ＳＦＦ２０３のデータ入力ｄに到達する経路は、そのデータ転送に、システムクロックの１サイクル分必要なシングルサイクルパス（以降、シングルサイクルパス１という）である。また、始点ＳＦＦ２０１のデータ出力ｑから論理回路２１１内の分岐点２２１、合流点２３１を通って終点ＳＦＦ２０４のデータ入力ｄに到達する経路は、そのデータ転送に、システムクロックの２サイクル分必要なマルチサイクルパス（以降、マルチサイクルパス２という）である。また、始点ＳＦＦ２０２のデータ出力ｑから論理回路２１１内の分岐点２２２、合流点２３１を通って終点ＳＦＦ２０４のデータ入力ｄに到達する経路は、そのデータ転送に、システムクロックの１サイクル分必要なシングルサイクルパス（以降、シングルサイクルパス３という）である。また、始点ＳＦＦ２０２のデータ出力ｑから論理回路２１１内の分岐点２２２を通って終点ＳＦＦ２０５のデータ入力ｄに到達する経路は、そのデータ転送に、システムクロックの２サイクル分必要なマルチサイクルパス（以降、マルチサイクルパス４という）である。
【００２８】
次に、図３は、実施例１において、図２の論理回路２１１内に挿入する出力固定回路３３０を示している。図３において、ｍは選択信号であり、選択信号ｍが「０」の場合は、入力端子ｄに入力されたデータがそのまま出力端子ｑから出力され、選択信号ｍが「１」の場合は、入力端子ｄに入力されるデータの値によらず、「０」または「１」の任意の固定値３３４が出力端子ｑから出力される。図３の右側に示した表は、上記した入出力関係を示している。ここで、固定値３３４を「０」、「１」のいずれにするかは、出力固定回路３３０を挿入するときに設定すればよい。
【００２９】
また、図３は出力固定回路の一例であり、選択信号ｍが「１」の場合に、データパスの値を保持するフリップフロップで構成することも可能である。
【００３０】
次に、図１は、図２に示す論理回路２１１内に、実動作速度でのシングルサイクルパスのテストを可能にする対策を施した回路を示している。２つの出力固定回路２７１、２７２を、各々、マルチサイクルパス２、マルチサイクルパス４の経路に挿入している。これらの出力固定回路の挿入の詳細については、後に詳述する。また、出力固定回路２７１、２７２の各々のｍ端子には、モード選択部２８０の出力信号であるマルチサイクルテストイネーブル信号ｍｃｔｅ２７３が供給される。
【００３１】
図１において、複数の始点ＳＦＦ（２０１、２０２）に対して１つのスキャンチェーンが構成される。具体的には、テストデータは、ランダムパターン生成部（ＰＲＰＧ）２８６からｓｉ１信号として始点ＳＦＦ２０１のｓｉ端子に供給される。また、始点ＳＦＦ２０１のｑ端子は始点ＳＦＦ２０２のｓｉ端子と接続される。このようにして、テストデータが始点ＳＦＦ（２０１、２０２）にシフト入力されるように構成されている。また、始点ＳＦＦ２０２のｑ端子は、圧縮器（ＭＩＳＲ）２８２に接続される。始点ＳＦＦ（２０１、２０２）の出力データはシフトアウトされながら、ＳＯ１信号としてＭＩＳＲ２８２に取り込まれる。
【００３２】
また、図１において、複数の終点ＳＦＦ（２０３、２０４、２０５）に対してもう１つのスキャンチェーンが構成される。具体的には、テストデータは、ランダムパターン生成部（ＰＲＰＧ）２８６からｓｉ２信号として終点ＳＦＦ２０３のｓｉ端子に供給される。終点ＳＦＦ２０３のｑ端子は終点ＳＦＦ２０４のｓｉ端子と接続される。また、終点ＳＦＦ２０４のｑ端子は終点ＳＦＦ２０５のｓｉ端子と接続される。このようにしてテストデータが終点ＳＦＦ（２０３、２０４、２０５）にシフト入力されるように構成される。また、終点ＳＦＦ２０５のｑ端子は、圧縮器（ＭＩＳＲ）２８２に接続される。複数の終点ＳＦＦ（２０３、２０４、２０５）の出力データはシフトアウトされながら、ＳＯ２信号としてＭＩＳＲ２８２に取り込まれる。
【００３３】
また、図１のモード選択部２８０は、従来技術のスキャンテスト回路を示す図２１のマルチサイクルテストイネーブル生成部１０７と同様の機能を有している。モード選択部２８０は、マルチサイクルでのテストを行う「マルチサイクルテストモード」と、シングルサイクルでのテストを行う「シングルサイクルテストモード」を選択し、選択信号としてマルチサイクルテストイネーブル信号（ｍｃｔｅ）２７３を出力する。ｍｃｔｅ２７３は、マルチサイクルテストモードの場合には「０」が出力され、シングルサイクルテストモードの場合には「１」が出力される。
【００３４】
また、図１のクロック周波数変換部２８８は、ｍｃｔｅ＝「０」の場合（すなわち、マルチサイクルテストモードの場合）、システムクロックｃｋ０の周波数を１／Ｎに落としたクロック信号ｃｋを出力する。但し、Ｎはマルチサイクルパスのマルチサイクル数である。図１の論理回路２１１では、２つのマルチサイクルパス（マルチサイクルパス２、マルチサイクルパス４）のマルチサイクル数は、２であり、Ｎ＝２となる。一方、ｍｃｔｅ＝「１」の場合（すなわち、シングルサイクルテストモードの場合）、クロック周波数変換部２８８は、システムクロックｃｋ０をそのままクロック信号ｃｋとして出力する。クロック信号ｃｋは、始点ＳＦＦ（２０１、２０２）、及び終点ＳＦＦ（２０３、２０４、２０５）のｃｋ端子と、論理回路２１１内の不図示のｃｋ端子に供給される。
【００３５】
以上の構成により、論理回路２１１、始点ＳＦＦ（２０１、２０２）、及び終点ＳＦＦ（２０３、２０４、２０５）は、シングルサイクルテストモードの場合、実動作と同じクロック周波数で動作し、マルチサイクルテストモードの場合、実動作のクロック周波数の１／Ｎ（図１の回路では、１／２）のクロック周波数で動作する。
【００３６】
また、スキャンイネーブル生成部２８４は、スキャンイネーブル信号ｓｅを出力する。スキャンイネーブル信号ｓｅは、始点ＳＦＦ（２０１、２０２）、終点ＳＦＦ（２０３、２０４、２０５）のｓｅ端子に供給される。始点ＳＦＦ及び終点ＳＦＦは、スキャンイネーブル信号ｓｅが「０」の場合、キャプチャ動作を行い、スキャンイネーブル信号ｓｅが「１」の場合、シフト動作を行う。
【００３７】
また、本発明の実施例１では、ＳＦＦのホールド動作は行わないため、図２１の従来のスキャンテスト回路におけるクロックイネーブル生成部１０４は不要である。
【００３８】
［実施例１の動作］
図４は、本発明の実施例１に係るスキャンテスト回路の設計方法を示すフローチャートである。以下、図４を参照しながら実施例１のスキャンテスト回路の設計方法を詳細に説明する。
【００３９】
まず、図２の論理回路２１１の論理合成を行う（ステップＳ１０）。ここで、論理合成は、一般的なＣＡＤ設計ツールで行われる。次に、ＣＡＤ設計ツールで、実動作モードでのタイミング解析を実行する（ステップＳ１１）。
【００４０】
次に、実動作モードにおけるタイミング解析結果から、論理回路２１１内のマルチサイクルパスを抽出する（ステップＳ１２）。図５は、ステップＳ１２で抽出したマルチサイクルパスと、シングルサイクルパスを示している。図５に示すように、論理回路２１１内のパスは、始点ＳＦＦと終点ＳＦＦの組み合わせに対応付けされて、始点ＳＦＦ、終点ＳＦＦ、サイクル数からなる対応テーブルとして生成される。図５において、抽出された論理回路２１１内のパスは、以下のように表されている。始点ＳＦＦ２０１から終点ＳＦＦ２０３のパスは、サイクル数１のシングルサイクルパス（シングルサイクルパス１）である。また、始点ＳＦＦ２０１から終点ＳＦＦ２０４のパスは、サイクル数２のマルチサイクルパス（マルチサイクルパス２）である。また、始点ＳＦＦ２０２から終点ＳＦＦ２０４のパスは、サイクル数１のシングルサイクルパス（シングルサイクルパス３）である。また、始点ＳＦＦ２０２から終点ＳＦＦ２０５のパスは、サイクル数２のマルチサイクルパス（マルチサイクルパス４）である。
【００４１】
次に、図４において、異なるサイクル数のパスに分岐する分岐点、及び、異なるサイクル数のパスが合流する合流点を抽出する（ステップＳ１３）。次に、抽出した分岐点、合流点の情報に基づいて、「分岐点と終点ＳＦＦの対応テーブル」の生成と、「合流点と始点ＳＦＦの対応テーブル」の生成を行う（ステップＳ１８）。
【００４２】
ここで、上記した異なるサイクル数のパスに分岐する分岐点は、シングルサイクルパスとマルチサイクル数がＭ１のマルチサイクルパスに分岐する分岐点、或いは、マルチサイクル数がＭ１のマルチサイクルパスとマルチサイクル数がＭ２のマルチサイクルパスに分岐する分岐点が考えられる（但し、Ｍ１、Ｍ２は２以上の整数で、Ｍ１≠Ｍ２）。図２の論理回路２１１の場合は、マルチサイクルパスのマルチサイクル数は２のみであるため、シングルサイクルパスとマルチサイクル数が２のマルチサイクルパスに分岐する分岐点を抽出する。
【００４３】
また、上記した異なるサイクル数のパスが合流する合流点は、シングルサイクルパスとマルチサイクル数がＭ１のマルチサイクルパスが合流する合流点、或いは、マルチサイクル数がＭ１のマルチサイクルパスとマルチサイクル数がＭ２のマルチサイクルパスが合流する合流点が考えられる（但し、Ｍ１、Ｍ２は２以上の整数で、Ｍ１≠Ｍ２）。図２の論理回路２１１の場合は、マルチサイクルパスのマルチサイクル数は２のみであるため、シングルサイクルパスとマルチサイクル数が２のマルチサイクルパスが合流する合流点を抽出する。
【００４４】
図６（Ａ）は、ステップＳ１８で生成された分岐点と終点ＳＦＦの対応テーブルを示す。図６（Ａ）は、論理回路２１１において、２つの分岐点２２１、２２２が抽出されたことを示している。まず、分岐点２２１は、分岐数が２である。分岐点２２１の入力側の始点ＳＦＦは２０１であり、分岐点２２１の出力側の終点ＳＦＦは２０３、２０４である。分岐点２２１から終点ＳＦＦ２０３のパスは、サイクル数１のシングルサイクルパス（シングルサイクルパス１）であり、分岐点２２１から終点ＳＦＦ２０４のパスは、サイクル数２のマルチサイクルパス（マルチサイクルパス２）である。
【００４５】
次に、分岐点２２２は、分岐数が２である。分岐点２２２の入力側の始点ＳＦＦは２０２であり、分岐点２２２の出力側の終点ＳＦＦは２０４、２０５である。分岐点２２２から終点ＳＦＦ２０４のパスは、サイクル数１のシングルサイクルパス（シングルサイクルパス３）であり、分岐点２２２から終点ＳＦＦ２０５のパスは、サイクル数２のマルチサイクルパス（マルチサイクルパス４）である。
【００４６】
そして、分岐点を含むマルチサイクルパスの分岐点より出力側に、出力固定回路を挿入する挿入候補位置が、設定される。図６（Ａ）では、出力側を終点ＳＦＦの情報で表しており、実際には、分岐点と分岐点を含むマルチサイクルパスに接続した終点ＳＦＦ間の経路が、挿入候補位置として設定される。論理回路２１１では、分岐点２２１と終点ＳＦＦ２０４間の経路が、出力固定回路の第１の挿入候補となる。また、分岐点２２２と終点ＳＦＦ２０５間の経路が、出力固定回路の第２の挿入候補となる。図６（Ａ）に示すように、分岐点と終点ＳＦＦの対応テーブルの最右列に、出力固定回路挿入フラグを設けておき、挿入候補として判別された経路を、０に初期化する。
【００４７】
図７（Ａ）は、ステップＳ１８で生成された合流点と始点ＳＦＦの対応テーブルを示す。図７（Ａ）は、論理回路２１１において、１つの合流点２３１が抽出されたことを示している。合流点２３１は、合流数が２である。合流点２３１の入力側の始点ＳＦＦは２０１、２０２であり、合流点の出力側の終点ＳＦＦは２０４である。始点ＳＦＦ２０１から合流点２３１のパスは、サイクル数２のマルチサイクルパス（マルチサイクルパス２）であり、始点ＳＦＦ２０２から合流点２３１のパスは、サイクル数１のシングルサイクルパス（シングルサイクルパス３）である。
【００４８】
そして、合流点を含むマルチサイクルパスの分岐点より入力側に、出力固定回路を挿入する挿入候補位置が設定される。図７（Ａ）では、入力側を始点ＳＦＦの情報で表しており、実際には、合流点と合流点を含むマルチサイクルパスに接続した始点ＳＦＦ間の経路が、挿入候補位置として設定される。論理回路２１１では、合流点２３１と始点ＳＦＦ２０１間の経路が、出力固定回路の第３の挿入候補となる。図７（Ａ）に示すように、合流点と始点ＳＦＦの対応テーブルの最右列に、出力固定回路挿入フラグを設けておき、挿入候補として判別された経路を、０に初期化する。
【００４９】
次に、図４に戻って、フローチャートの説明を続ける。ステップＳ１８で生成した分岐点と終点ＳＦＦの対応テーブル、及び合流点と始点ＳＦＦの対応テーブルを参照し、第１の挿入候補の出力固定回路が未挿入か否かを判定する（ステップＳ１４）。具体的には、まず、分岐点と終点ＳＦＦの対応テーブルを参照し、第１の挿入候補の出力固定回路挿入フラグが「０」であることを検出する。ここで、出力固定回路挿入フラグが「０」は、初期化された状態のままであり、未挿入であることを意味している。そこで、ステップＳ１４で、ＹＥＳと判定され、ステップＳ１５に進む。
【００５０】
第１の挿入候補位置（すなわち、分岐点２２１と終点ＳＦＦ２０４間の経路上）に、出力固定回路２７１を挿入する（ステップＳ１５）。上記の挿入は、自動的に行われるようにしてもよいし、ＣＡＤ設計ツールを使用するユーザが、例えば、「出力固定回路挿入コマンド」を操作画面で指示することによって挿入するようにしてもよい。次に、出力固定回路挿入フラグを更新する（ステップＳ１７）。具体的には、図６（Ｂ）に示すように、第１の挿入候補が、挿入済みであることを示す「１」に書き換える。
【００５１】
次に、挿入候補は全て処理済みか否かを判定する（ステップＳ１６）。未だ、第２、第３の挿入候補が未処理であるため、ステップＳ１６ではＮＯと判定され、ステップＳ１４に戻る。次に、第２の挿入候補の出力固定回路が未挿入か否かを判定する（ステップＳ１４）。具体的には、まず、分岐点と終点ＳＦＦの対応テーブルを参照し、第２の挿入候補の出力固定回路挿入フラグが「０」であることを検出する。そこで、ステップＳ１４で、ＹＥＳと判定され、ステップＳ１５に進む。
【００５２】
第２の挿入候補位置（すなわち、分岐点２２２と終点ＳＦＦ２０５間の経路上）に、出力固定回路２７２を挿入する（ステップＳ１５）。次に、出力固定回路挿入フラグを更新する（ステップＳ１７）。具体的には、図６（Ｃ）に示すように、第２の挿入候補が、挿入済みであることを示す「１」に書き換える。
【００５３】
次に、挿入候補は全て処理済みか否かを判定する（ステップＳ１６）。未だ、第３の挿入候補が未処理であるため、ステップＳ１６ではＮＯと判定され、ステップＳ１４に戻る。次に、第３の挿入候補の出力固定回路が未挿入か否かを判定する（ステップＳ１４）。具体的には、まず、合流点と始点ＳＦＦの対応テーブルを参照し、第３の挿入候補の出力固定回路挿入フラグが「０」であることを検出する。しかしながら、第３の挿入候補位置（すなわち、合流点２３１と始点ＳＦＦ２０１間の経路上）には、既に、第１の挿入候補の処理で出力固定回路２７１が挿入されていることが検知され、ステップＳ１４は、ＮＯと判定される。そして、出力固定回路の挿入は行わず、ステップＳ１７に進む。そして、出力固定回路挿入フラグを更新する（ステップＳ１７）。具体的には、図７（Ｂ）に示すように、第３の挿入候補における出力固定回路挿入フラグを「２」に書き換える。「２」は、挿入候補の処理は済んでおり、挿入されなかったことを示す値である。
【００５４】
次に、挿入候補は全て処理済みか否かを判定する（ステップＳ１６）。全ての挿入候補の処理が終了しているため、ステップＳ１６ではＹＥＳと判定され、処理を終了する。以上、図４のフローチャートで説明したスキャンテスト回路の設計方法によって、図２の論理回路２１１は、図１で示すように、出力固定回路２７１、２７２が挿入された状態となる。
【００５５】
次に、図１に示すスキャンテスト回路によるスキャンテスト方法について、図８を参照しながら説明する。図８は、図１に示したスキャンテスト回路の波形図である。図８の右側は、モード選択部２８０がシングルサイクルテストモードを選択した場合で、マルチサイクルテストイネーブル信号（ｍｃｔｅ）２７３は「１」である。図８の左側は、モード選択部２８０がマルチサイクルテストを選択した場合で、マルチサイクルテストイネーブル信号（ｍｃｔｅ）２７３は、「０」である。図８において、上から、クロック周波数変換部２８８の出力であるクロック信号ｃｋ、スキャンイネーブル信号ｓｅ、マルチサイクルテストイネーブル信号ｍｃｔｅの３つの制御信号を示す。次に、図１の始点ＳＦＦ（２０１、２０２）、終点ＳＦＦ（２０３、２０４）の動作状態を示す。次に、始点ＳＦＦ（２０１、２０２）、終点ＳＦＦ（２０３、２０４）における各々のｑ出力の波形を示す。尚、図１の終点ＳＦＦ２０５の動作状態とｑ出力については、図８では省略している。
【００５６】
図８に示すように、図１のスキャンテスト回路による半導体集積回路のスキャンテスト方法では、シングルサイクルテストモード、マルチサイクルテストモードのいずれかが選択される。まず、マルチサイクルテストモードの動作について以下に説明する。システムクロックｃｋ０は、クロック周波数変換部２８８で、周波数を１／Ｎに落としたクロック信号ｃｋに変換される。ここで、Ｎは、マルチサイクル数であり、図８では、マルチサイクル数が２であるため、Ｎ＝２に設定される。すなわち、マルチサイクルテストモードでは、実動作のクロック周波数の１／２のクロック周波数が、マルチサイクルテストモードのクロック周波数となる。マルチサイクルテストモードでは、マルチサイクルテストイネーブル信号（ｍｃｔｅ）２７３は、「０」に設定される。
【００５７】
マルチサイクルテストモードでは、クロック信号ｃｋの立ち上がりエッジのタイミング（図８のｔｍ０、ｔｍ１、ｔｍ２、ｔｍ３）で、ＳＦＦは状態を更新する。まず、ｔｍ０、ｔｍ１のタイミングで、「マルチサイクルスキャン」が行われる。スキャンイネーブル信号ｓｅは「１」であり、始点ＳＦＦ２０１、２０２はシフト状態（図８では「Ｓ」と表示）となる。シフト状態「Ｓ」では、始点ＳＦＦ（２０１、２０２）でスキャンチェーンが構成され、図１のランダムパターン発生器（ＰＲＰＧ）２８６から、ｓｉ１信号としてテストデータが、シフト入力される。
【００５８】
次に、ｔｍ２のタイミングで、「マルチサイクルキャプチャ」が行われる。ｔｍ２において、スキャンイネーブル信号ｓｅは「０」に切り替わっており、全ての始点ＳＦＦ、終点ＳＦＦは、キャプチャ状態（図８では「Ｃ」と表示）となる。キャプチャ状態「Ｃ」では、終点ＳＦＦの内部では、ｓｉ端子とｄ端子のうち、ｄ端子が選択入力される。従って、論理回路２１１によるテストデータの応答が、論理回路２１１に接続された終点ＳＦＦのｄ端子から、マルチサイクルテストモードのクロック周波数で、キャプチャされることになる。
【００５９】
次に、ｔｍ３のタイミングで、「マルチサイクルシフトアウト」が行われる。ｔｍ３において、スキャンイネーブル信号ｓｅは「１」に切り替わっており、全ての始点ＳＦＦ、終点ＳＦＦは、シフト状態「Ｓ」になる。シフト状態「Ｓ」では、終点ＳＦＦ（２０３、２０４、２０５）でスキャンチェーンが構成され、キャプチャされたデータが、シフトアウトされ、ＳＦＦ２０５のデータ出力ｑから、ＳＯ２信号として圧縮器ＭＩＳＲ２８２に取り込まれる。
【００６０】
尚、図８に示した波形図において、マルチサイクルスキャン、マルチサイクルキャプチャ、及びマルチサイクルシフトアウトは、いずれも、実動作のクロック周波数の１／Ｎ（図８では、Ｎ＝２）のクロック周波数で駆動した場合について例示している。しかしながら、実動作のクロック周波数の１／Ｎ、すなわち、実動作と同じ動作速度でマルチサイクルテストを行う必要があるのは、マルチサイクルキャプチャの動作だけである。すなわち、図８に示した「全ＳＦＦのキャプチャポイント」〜「全ＳＦＦの最終シフト」の時間のみが、実動作のクロック周波数の１／Ｎの周波数のクロック信号の１周期になっていればよく、他のシフト動作「Ｓ」は、テストデータの入出力をしているだけであるため、動作速度は任意でよい。
【００６１】
ここで、マルチサイクルスキャンのタイミングと、マルチサイクルキャプチャのタイミングについて、図８を参照しながら、以下に考察する。図８に示すように、ｔｍ１のタイミングで、キャプチャ動作前の全ＳＦＦの最終シフトが行われている。すなわち、始点ＳＦＦ（２０１、２０２）の出力ｑは、ｔｍ１のタイミングで、キャプチャ前に更新されている。論理回路２１１内のマルチサイクルパス２は、始点ＳＦＦ２０１のデータ出力ｑが更新されてから、システムクロックの２サイクル後（マルチサイクルテストモードのクロックでは、1クロック後）に、終点ＳＦＦ２０４のデータ入力ｄが確定する。また、マルチサイクルパス４は、始点ＳＦＦ２０２のデータ出力ｑが更新されてから、システムクロックの２サイクル後（マルチサイクルテストモードのクロックでは、1クロック後）に、終点ＳＦＦ２０５のデータ入力ｄが確定する。図８に示すように、全ＳＦＦのキャプチャポイントは、全ＳＦＦのキャプチャ前の最終シフトに対して、システムクロックの２サイクル後のタイミングになっているから、マルチサイクルパス２、４共に終点ＳＦＦのデータ入力ｄが確定しているため、論理回路２１１によるテストデータの応答を、正しくキャプチャすることができる。
【００６２】
また、論理回路２１１のシングルサイクルパス１においては、始点ＳＦＦ２０１のデータ出力ｑが更新されてから、システムクロックの１サイクルで終点ＳＦＦ２０３のデータ入力ｄが確定するので、明らかに、マルチサイクルキャプチャで、論理回路２１１によるテストデータの応答を、正しくキャプチャすることができる。また、シングルサイクルパス３（始点ＳＦＦ２０２から終点ＳＦＦ２０４）においては、合流点２３１にマルチサイクルパス２のデータが合流するため、終点ＳＦＦ２０４のデータ入力ｄが確定するまでにシステムクロックの２サイクルを要するが、ｔｍ２のタイミングまでには確定しているので、正しくキャプチャすることができる。
【００６３】
上記のマルチサイクルテストモードのテストは、マルチサイクルパス２、４に対しては、実動作と同じタイミングでのテストが行われている。しかしながら、シングルサイクルパス１、３に対しては、実動作より遅いタイミングでのテストとなっている。
【００６４】
次に、シングルサイクルテストモードの動作について以下に説明する。シングルサイクルテストモードでは、実動作のクロック周波数が、そのまま、シングルサイクルテストモードのクロック周波数となる。また、シングルサイクルテストモードでは、マルチサイクルテストイネーブル信号（ｍｃｔｅ）２７３は、「１」に設定される。
【００６５】
シングルサイクルテストモードでは、クロック信号ｃｋの立ち上がりエッジのタイミング（図８のｔｓ０、ｔｓ１、ｔｓ２、ｔｓ３）で、ＳＦＦは状態を更新する。まず、ｔｓ０、ｔｓ１のタイミングで、「シングルサイクルスキャン」が行われる。スキャンイネーブル信号ｓｅは「１」であり、始点ＳＦＦ（２０１、２０２）はシフト状態となる。シフト状態「Ｓ」では、始点ＳＦＦ２０１、２０２でスキャンチェーンが構成され、図１のランダムパターン発生器（ＰＲＰＧ）２８６から、ｓｉ１信号としてテストデータが、シフト入力される。
【００６６】
次に、ｔｓ２のタイミングで、「シングルサイクルキャプチャ」が行われる。ｔｓ２において、スキャンイネーブル信号ｓｅは「０」に切り替わっており、全ての始点ＳＦＦ、終点ＳＦＦは、キャプチャ状態となる。キャプチャ状態「Ｃ」では、終点ＳＦＦの内部では、ｓｉ端子とｄ端子のうち、ｄ端子が選択入力される。従って、論理回路２１１によるテストデータの応答が、論理回路２１１に接続された終点ＳＦＦのｄ端子から、シングルサイクルテストモードのクロック周波数で、キャプチャされることになる。
【００６７】
次に、ｔｓ３のタイミングで、「シングルサイクルシフトアウト」が行われる。ｔｓ３において、スキャンイネーブル信号ｓｅは「１」に切り替わっており、全ての始点ＳＦＦ、終点ＳＦＦは、シフト状態「Ｓ」になる。シフト状態「Ｓ」では、終点ＳＦＦ２０３、２０４、２０５でスキャンチェーンが構成され、キャプチャされたデータが、シフトアウトされ、ＳＦＦ２０５のデータ出力ｑから、ＳＯ２信号として圧縮器ＭＩＳＲ２８２に取り込まれる。
【００６８】
尚、図８に示した波形図において、シングルサイクルスキャン、シングルサイクルキャプチャ、及びシングルサイクルシフトアウトは、いずれも、実動作のクロック周波数で駆動した場合について例示している。しかしながら、実動作のクロック周波数、すなわち、実動作と同じ動作速度でシングルサイクルテストを行う必要があるのは、シングルサイクルキャプチャの動作だけである。すなわち、図８に示した「全ＳＦＦのキャプチャポイント」〜「全ＳＦＦの最終シフト」の時間のみが、実動作のクロック周波数の１周期になっていればよく、他のシフト動作「Ｓ」は、テストデータの入出力をしているだけであるため、動作速度は任意でよい。
【００６９】
ここで、シングルサイクルテストモードにおいて、シングルサイクルスキャンのタイミングと、シングルサイクルキャプチャのタイミングについて、図８を参照しながら、以下に考察する。図８に示すように、ｔｓ１のタイミングで、キャプチャ動作前の全ＳＦＦの最終シフトが行われている。すなわち、始点ＳＦＦ２０１の出力ｑは、ｔｓ１のタイミングで、キャプチャ前に更新されている。論理回路２１１内のシングルサイクルパス１は、始点ＳＦＦ２０１データ出力ｑが更新されてから、システムクロックレートの１サイクル後に、終点ＳＦＦ２０３のデータ入力ｄが確定する。図８に示すように、全ＳＦＦのキャプチャポイントは、全ＳＦＦのキャプチャ前の最終シフトに対して、システムクロックレートの１サイクル後のタイミングには、シングルサイクルパス１の終点ＳＦＦ２０３のデータ入力ｄが確定しているため、論理回路２１１によるテストデータの応答を、正しくキャプチャすることができる。
【００７０】
また、シングルサイクルパス３（始点ＳＦＦ２０２から終点ＳＦＦ２０４）においては、始点ＳＦＦ２０２の出力ｑは、ｔｓ１のタイミングで更新されると、システムクロックレートの１サイクル後に、終点ＳＦＦ２０４のデータ入力ｄが確定する。しかしながら、合流点２３１からマルチサイクルパス２のデータが合流するため、マルチサイクルパス２から合流点２３１へ入ってくる信号は、終点ＳＦＦ２０４のデータ入力ｄが確定するまでにシステムクロックの２サイクルを要することになる。そのため、シングルサイクルパス３においては、図２に示す出力固定回路を挿入していない状態では、ｔｓ２のタイミングにおいて、不確定なデータをキャプチャしてしまう。
【００７１】
そこで、図１に示すように出力固定回路２７１が挿入された場合には、シングルサイクルテストモード時には、出力固定回路２７１は固定値を出力する。従って、マルチサイクルパス２から合流点２３１に入ってくる信号は、出力固定回路２７１による固定値になるので、マルチパス２から合流されるデータが、ｔｓ２のタイミングで確定しないという問題を解消することができる。
【００７２】
また、論理回路２１１内のマルチサイクルパス２、マルチサイクルパス４は共に、始点ＳＦＦのデータ出力ｑが更新されてから、終点ＳＦＦのデータ入力ｄが確定するまで、システムクロックで２サイクル必要である。図８に示すキャプチャポイントｔｓ２の時点では、始点ＳＦＦの最終シフトが行われてから１サイクルしか経っておらず、出力固定回路２７１、２７２を挿入していない状態では、不確定なデータをキャプチャしてしまう。
【００７３】
そこで、図１に示すように、出力固定回路２７１、２７２を挿入した状態では、出力固定回路２７１、２７２は、シングルサイクルテストモード時には、ｍｃｔｅ２７３が「１」となり、固定値を出力する。従って、出力固定回路２７１から終点ＳＦＦ２０４の経路と、出力固定回路２７２から終点ＳＦＦ２０５の経路は、どちらも固定値を出力し続ける。従って、図８のｔｓ２のタイミングで終点ＳＦＦ（２０４、２０５）のデータ入力ｄが不確定になる問題を解消することができる。
【００７４】
以下に、実施例１の効果について纏める。実施例１によるスキャンテスト回路を用いたスキャンテスト方法によれば、シングルサイクルテストモードにおいて、シングルサイクルパスを実動作速度でテストすることが可能であるという効果が得られる。特に、図２１に示した従来のスキャンテスト回路では、図２のシングルサイクルパス３（始点ＳＦＦ２０２から終点ＳＦＦ２０４）をテストする場合、実動作速度でのテストができないという問題があったが、実施例１では、上記したように、実動作速度でのテストが可能である。また、マルチサイクルパスに対しては固定値をキャプチャすることで不確定なデータをキャプチャする問題を回避している。
【００７５】
以上により、実施例１によるスキャンテスト回路を用いたスキャンテスト方法によれば、マルチサイクルパスに対しては、マルチサイクルテストモードで実動作速度でのテストが可能であり、シングルサイクルパスに対しは、シングルサイクルテストモードで実動作速度でのテストが可能であるという効果が得られる。
【００７６】
また、図２１に示す従来のスキャンテスト回路では、第１の記憶素子１１は図２２（ａ）の回路、第２の記憶素子２１は図２２（ｂ）の回路、第３の記憶素子３１は図２２（ｅ）の回路が使用されており、場所によりタイプの異なるＳＦＦを使用せざるを得ず、複雑な構成になっている。一方、実施例１のスキャンテスト回路は、全てのＳＦＦに対し、図２２（ｅ）の回路を使用しており、図２１に示す従来のスキャンテスト回路に比べて、簡素な構成にできるという効果が得られる。
【００７７】
また、実施例１によるスキャンテスト回路に使用している出力固定回路は、簡単な構成の回路であり、チップサイズの増大につながることはない。また、出力固定回路の挿入は、図４のフローチャートで示した設計方法により、自動的に実行することが可能であり、スキャンテスト回路を設計するユーザの負荷にはならない。
【実施例２】
【００７８】
次に、本発明の実施例２に係るスキャンテスト回路について、必要に応じて図面を参照しながら説明を行う。図９は、本発明の実施例２に係るスキャンテスト回路であり、冗長な出力固定回路の削除を行った後のスキャンテスト回路を示している。図９において、モード選択部９８０、圧縮器（ＭＩＳＲ）９８２、スキャンイネーブル生成部９８４、ランダムパターン発生器（ＰＲＰＧ）９８６、クロック周波数変換部９８８については、実施例１と同様の機能であるため、説明は省略する。また、始点ＳＦＦ、終点ＳＦＦについては、始点ＳＦＦが２つから３つに増えた点を除けば（実施例２では始点ＳＦＦは９０１、９０２、９０６の３つで構成されている）、それ以外は同じであるため、説明は省略する。
【００７９】
図１０は、図９のスキャンテスト回路において、論理回路９４１、始点ＳＦＦ（９０１、９０２、９０６）、及び終点ＳＦＦ（９０３、９０４、９０５）のみを示している。また、図１０は、実施例１に係るスキャンテスト回路の設計方法で、論理回路９４１内に出力固定回路（９３１、９３２、９３３）を挿入した状態を示している。実施例２に係るスキャンテスト回路の設計方法は、実施例１に係るスキャンテスト回路の設計方法に対して、冗長な出力固定回路を削除する機能を追加している。
【００８０】
図１０に示す論理回路９４１内において、始点ＳＦＦ９０１のデータ出力ｑから論理回路９４１内の分岐点９１１を通って終点ＳＦＦ９０３のデータ入力ｄに到達する経路は、そのデータ転送に、システムクロックの１サイクル分必要なシングルサイクルパス（以降、シングルサイクルパス５という）である。また、始点ＳＦＦ９０１のデータ出力ｑから論理回路９４１内の分岐点９１１、合流点９２１、９２２を通って終点ＳＦＦ９０４のデータ入力ｄに到達する経路は、そのデータ転送に、システムクロックの２サイクル分必要なマルチサイクルパス（以降、マルチサイクルパス６という）である。また、始点ＳＦＦ９０２のデータ出力ｑから論理回路９４１内の合流点９２１、９２２を通って終点ＳＦＦ９０４のデータ入力ｄに到達する経路は、そのデータ転送に、システムクロックの１サイクル分必要なシングルサイクルパス（以降、シングルサイクルパス７という）である。また、始点ＳＦＦ９０６のデータ出力ｑから論理回路９４１内の分岐点９１２、合流点９２２を通って終点ＳＦＦ９０４のデータ入力ｄに到達する経路は、そのデータ転送に、システムクロックの１サイクル分必要なシングルサイクルパス（以降、シングルサイクルパス８という）である。また、始点ＳＦＦ９０６のデータ出力ｑから論理回路９４１内の分岐点９１２を通って終点ＳＦＦ９０５のデータ入力ｄに到達する経路は、そのデータ転送に、システムクロックの２サイクル分必要なマルチサイクルパス（以降、マルチサイクルパス９という）である。
【００８１】
図１１は、実施例２に係るスキャンテスト回路の設計方法を示すフローチャートである。図１１において、ステップＳ１６までは、図４に示すフローチャートと同じであり、説明は省略する。ステップＳ１６までにより、図１０に示すように、出力固定回路（９３１、９３２）が挿入された状態になっている。ステップＳ１６の次に、ステップＳ２１に進む。ここで、論理回路９４１内の出力固定回路を抽出する（ステップＳ２１）。具体的には、ステップＳ１５で挿入した出力固定回路は分かっているので、それにより、図１２に示す出力固定回路を抽出した情報を得ることができる。図１２は、ステップＳ１５で挿入した３つの出力固定回路（９３１、９３２、９３３）を、始点ＳＦＦ、終点ＳＦＦ、及びサイクル数の情報で対応付けた表になっている。図１２に示す表は、始点ＳＦＦ９０１から終点ＳＦＦ９０４の経路に、出力固定回路９３１、９３２があり、始点ＳＦＦ９０２から終点ＳＦＦ９０４の経路に、出力固定回路９３２があり、始点ＳＦＦ９０６から終点ＳＦＦ９０５の経路に、出力固定回路９３３があることを示している。
【００８２】
図１１のフローチャートに戻り、説明を続ける。ステップＳ２１で抽出した出力固定回路に対して、冗長出力固定回路を削除する（ステップＳ２２）。具体的には、図１２に示す表において、同一経路上に、複数の出力固定回路が存在していないかどうかを調べる。図１２の表を参照すると、始点ＳＦＦ９０１から終点ＳＦＦ９０４の経路に２つの出力固定回路９３１、９３２が存在していることを検出する。上記２つの出力固定回路のうち、出力固定回路９３２は、別の経路（始点ＳＦＦ９０２から終点ＳＦＦ９０４の経路）にも存在するので、削除することができない。一方、出力固定回路９３１は、始点ＳＦＦ９０１から終点ＳＦＦ９０４の経路にのみ存在するので、削除することができると判定される。そして、出力固定回路９３１は削除される。図９は、冗長出力固定回路９３１が削除された回路図である。
【００８３】
実施例２に係るスキャンテスト回路の設計方法によれば、出力固定回路が複数存在する経路を抽出し、冗長な出力固定回路を削除することにより、無駄な回路規模の増加を回避することができるという効果が得られる。
【実施例３】
【００８４】
次に、本発明の実施例３に係るスキャンテスト回路について、必要に応じて図面を参照しながら説明を行う。図１３は、実施例３に係るスキャンテスト回路の回路図である。実施例３による図１３のスキャンテスト回路が、実施例１による図１のスキャンテスト回路と違う点は、論理回路２１１内に挿入する出力固定回路のみである。尚、図１３において、図１と実質的に同じ機能を有する構成要素に対しては、同じ参照符号を付与している。
【００８５】
図１４は、実施例３に係るスキャンテスト回路の設計方法を示すフローチャートである。図１４において、ステップＳ１６までは、実施例１と同じである。ステップＳ１６までにより、実施例１と同様に、図１に示す回路が得られた状態になっている。そして、ステップＳ１６の後、ステップＳ３１に進む。図１の論理回路２１１に対して、タイミング解析を行う（ステップＳ３１）。次に、タイミングＭＥＴパスの出力固定回路を削除する（ステップＳ３２）。
【００８６】
ここで、ステップＳ３２について、以下に、より詳細に説明する。図１の回路において、マルチテストイネーブル信号（ｍｃｔｅ）２７３を「１」にしてタイミング解析を行い、出力固定回路を挿入したマルチサイクルパスが、シングルサイクルテストモードのレートでデータを受け渡す場合のタイミングエラーの有無を抽出する。その抽出した結果を図１５に示す。図１５において、出力固定回路２７１が挿入された始点ＳＦＦ２０１から終点ＳＦＦ２０４の経路は、シングルサイクルテストモードのレートで、タイミングエラーが有ることを示している。また、出力固定回路２７２が挿入された始点ＳＦＦ２０２から終点ＳＦＦ２０５の経路は、シングルサイクルテストモードのレートで、タイミングエラーが無いことを示している。
【００８７】
上記のタイミングエラーの解析により、始点ＳＦＦ２０２から終点ＳＦＦ２０５の経路は、シングルサイクルでタイミングを満たす（すなわち、タイミングＭＥＴパスである）ため、出力固定回路２７２を削除することができると判定され、出力固定回路２７２は削除される。図１３は、出力固定回路２７２が削除された回路を示している。
【００８８】
実施例３に係るスキャンテスト回路の設計方法によれば、マルチサイクルパス中に挿入した出力固定回路を通る経路がシングルサイクルで動作することが可能であれば、出力固定回路を削除することにより、無駄な回路規模の増加を回避することができるという効果が得られる。
【実施例４】
【００８９】
次に、本発明の実施例４に係るスキャンテスト回路について、必要に応じて図面を参照しながら説明を行う。図１６は、実施例４に係るスキャンテスト回路の回路図である。図１６において、モード選択部１５８０、圧縮器（ＭＩＳＲ）１５８２、スキャンイネーブル生成部１５８４、ランダムパターン発生器（ＰＲＰＧ）１５８６、クロック周期変換部１５８８については、実施例１と同様の機能を有しているため、説明は省略する。
【００９０】
図１７は、図１６のスキャンテスト回路において、論理回路１５１１、始点ＳＦＦ１５０１、及び終点ＳＦＦ１５０２のみを示している。図１７において、論理回路１５１１内において、始点ＳＦＦ１５０１のデータ出力ｑから論理回路１５１１内の分岐点１５２１、経路１５３１、合流点１５４１を通って終点ＳＦＦ１５０２のデータ入力ｄに到達する経路は、そのデータ転送に、システムクロックの１サイクル分必要なシングルサイクルパス（以降、シングルサイクルパス１０という）である。また、始点ＳＦＦ１５０１のデータ出力ｑから論理回路１５１１内の分岐点１５２１、経路１５３２、合流点１５４１を通って終点ＳＦＦ１５０２のデータ入力ｄに到達する経路は、そのデータ転送に、システムクロックレートの２サイクル分必要なマルチサイクルパス（以降、マルチサイクルパス１１という）である。上記した論理回路１５１１に対して、実施例１で示したスキャンテスト回路の設計方法を、以下に示すように適用する。
【００９１】
図４のフローチャートのステップＳ１２により、論理回路１５１１内のマルチサイクルパスを抽出する。図１８は、抽出したマルチサイクルパス及びシングルサイクルパスを示している。始点ＳＦＦ１５０１から終点ＳＦＦ１５０２には、シングルサイクルパス（シングルサイクルパス１０）と、マルチサイクルパス（マルチサイクルパス１１）が存在していることを示している。
【００９２】
次に図４のフローチャートのステップＳ１３により、異なるサイクル数のパスに分岐する分岐点、及び異なるサイクル数のパスが合流する合流点を抽出する。ここで、図１７の論理回路１５１１において、マルチサイクルパスのマルチサイクル数は２のみであるため、シングルサイクルパスとマルチサイクル数が２のマルチサイクルパスに分岐する分岐点、及び、シングルサイクルパスとマルチサイクル数が２のマルチサイクルパスが合流する合流点を抽出する。その結果、分岐点１５２１、合流点１５４１が抽出される。次に図４のフローチャートのステップＳ１４により、図１９（Ａ）に示す分岐点と終点ＳＦＦの対応テーブルと、図２０（Ａ）に示す合流点と始点ＳＦＦの対応テーブルが生成される。図１９（Ａ）は、論理回路１５１１において、１つの分岐点１５２１が抽出されたことを示している。まず、分岐点１５２１は、分岐数が２である。分岐点１５２１の入力側の始点ＳＦＦは１５０１であり、分岐点１５２１の出力側の２つの終点ＳＦＦは、どちらも１５０２である。また、始点ＳＦＦ１５０１から終点ＳＦＦ１５０２の１つのパスは、サイクル数１のシングルサイクルパス（シングルサイクルパス１０）であり、始点ＳＦＦ１５０１から終点ＳＦＦ１５０２のもう１つのパスは、サイクル数２のマルチサイクルパス（マルチサイクルパス１１）であることを示している。分岐点１５２１と分岐点１５２１を含むマルチサイクルパスに接続した終点ＳＦＦ１５０２間の経路が、出力固定回路の第１の挿入候補であり、その出力固定回路挿入フラグは「０」に初期化される。
【００９３】
また、図２０（Ａ）は、論理回路１５１１において、１つの合流点１５４１が抽出されたことを示している。合流点１５４１は、合流数が２である。合流点１５４１における２つの入力側の始点ＳＦＦは、どちらも１５０１であり、合流点の出力側の終点ＳＦＦは１５０２である。また、始点ＳＦＦ１５０１から終点ＳＦＦ１５０２の１つのパスは、サイクル数１のシングルサイクルパス（シングルサイクルパス１０）であり、始点ＳＦＦ１５０１から終点ＳＦＦ１５０２のもう１つのパスは、サイクル数２のマルチサイクルパス（マルチサイクルパス１１）であることを示している。合流点１５４１と合流点１５４１を含むマルチサイクルパスに接続した始点ＳＦＦ１５０１間の経路が、出力固定回路の第２の挿入候補であり、その出力固定回路挿入フラグは０に初期化される。
【００９４】
次に、図４のステップＳ１４、Ｓ１５、Ｓ１７、Ｓ１６により、第１の挿入候補の位置に、出力固定回路１５３３が挿入される。出力固定回路１５３３が挿入された後、分岐点と終点ＳＦＦの対応テーブルは、図１９（Ｂ）に示すように、第１の挿入候補の出力固定回路挿入フラグは、挿入が行われたことを示す「１」に書き換わる。また、第２の挿入候補は、図２０（Ｂ）に示すように、第２の挿入候補の経路上に、既に出力固定回路１５３３が挿入されているので、新たな挿入は行われない。そして、第２の挿入候補の出力固定回路挿入フラグは、挿入は行われずに、処理済みであることを示す「２」に書き換わる。
【００９５】
図１６は、出力固定回路１５３３が挿入されたスキャンテスト回路を示している。図１６に示すスキャンテスト回路において、テストを行う場合のテスト方法について以下に説明する。まず、モード選択部１５８０で、マルチサイクルテストモードが選択された場合、マルチサイクルテストイネーブル信号（ｍｃｔｅ）１５７３は「０」が出力される。この場合、クロック周波数変換部１５８８により、実動作のクロック周波数の１／２のクロック周波数で、全てのＳＦＦ（１５０１、１５０２）及び論理回路１５１１は動作する。出力固定回路１５３３の入力端子ｄに入力されたデータは、出力端子ｑからそのまま出力される。終点ＳＦＦ１５０２は、経路１５３１（シングルサイクルパス１０）を通ったデータを、実動作より遅いシステムクロックの２サイクルでデータをキャプチャする。また、終点ＳＦＦ１５０２は、経路１５３２（マルチサイクルパス１１）を通ったデータを、実動作と同じシステムクロックの２サイクルでデータをキャプチャする。
【００９６】
次に、モード選択部１５８０で、シングルサイクルテストモードが選択された場合、マルチサイクルテストイネーブル信号（ｍｃｔｅ）１５７３は「１」が出力される。この場合、クロック周波数変換部１５８８により、実動作のクロック周波数と同じクロック周波数で、全てのＳＦＦ（１５０１、１５０２）及び論理回路１５１１は動作する。終点ＳＦＦ１５０２は、経路１５３１（シングルサイクルパス１０）を通ったデータを、実動作と同じシステムクロックの１サイクルでキャプチャする。また、終点ＳＦＦ１５０２は、経路１５３２（マルチサイクルパス１１）を通ったデータに対して、出力固定回路１５３３によって固定されたデータをキャプチャする。ここで、図２１に示す従来技術のスキャンテスト回路では、経路１５３１（シングルサイクルパス１０）を通ったデータを、実動作と同じシステムクロックの１サイクルでキャプチャすることはできない。
【００９７】
以上説明したように、本発明のスキャンテスト回路によるスキャンテスト方法によれば、同一の始点ＳＦＦと同一の終点ＳＦＦに複数の経路がある場合において、経路毎にサイクル数を抽出して、出力固定回路を挿入することによって、マルチサイクルパスに対しては、マルチサイクルテストモードで実動作速度でのテストが可能であり、シングルサイクルパスに対しては、シングルサイクルテストモードで実動作速度でのテストが可能であるという効果が得られる。
【００９８】
［比較例］
ここで、比較例として、特許文献１に記載された半導体集積回路のスキャンテスト方法について、以下に詳細に説明する。図２１は従来のマルチサイクルパスを含む半導体集積回路であり、図２２（ａ）〜（ｃ）に示すＳＦＦを用いてキャプチャ、ホールド、及びシフトの動作を実現している。例えば、図２２（ａ）のＳＦＦ７００は、ディレイフリップフロップ（ＤＦＦ）７１０のデータ入力に接続されるセレクタ７２０と、このセレクタ７２０に接続されたセレクタ７３０とを有している。また、ＤＦＦ７１０は、クロック入力ＣＫと、データ出力Ｑを有している。セレクタ７２０は、入力データｄ又はセレクタ７３０の出力信号７３３をスキャンイネーブル信号ｓｅに応じて選択する。セレクタ７３０は、スキャン入力信号ｓｉ又はＤＦＦ７１０の出力信号７１３をクロックイネーブル信号ｃｅに応じて選択する。従って、クロックイネーブル信号ｃｅの値によって、ＳＦＦ７００がシフトされるかホールドされるかが決められる。クロックイネーブル信号ｃｅを用いてＳＦＦの値をホールドさせることで、テスト時のＳＦＦの動作を実動作でのクロックレートよりも落とすことができる。また、図２２（ｂ）、（ｃ）に示すＳＦＦ７４０、７５０を用いることによっても、図２２（ａ）に示すＳＦＦ７００と同様の動作を実現することができる。尚、図２２（ｄ）は、図２２（ａ）〜（ｃ）のＳＦＦを表すのに用いられる。また、図２２（ｅ）は、クロックイネーブル信号を持たないＳＦＦを表す。
【００９９】
以下、特許文献１に記載された従来技術の半導体集積回路の動作及びそのテスト方法について説明する。従来技術による半導体集積回路は、マルチサイクルパスを含む半導体集積回路であって、この半導体集積回路は、クロック信号のエッジで動作し、データ入力とデータ出力を有するスキャン可能な第１の記憶素子と、その第１の記憶素子のデータから、システムクロックレートの１サイクルより長いマルチサイクルで動作する論理回路中のパスを通ったデータをデータ入力として受け入れ、クロック信号のエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第２の記憶素子と、第１の記憶素子の出力から、システムクロックレートの１サイクルで動作する論理回路中のシングルサイクルパスを通ったデータをデータ入力として受け取り、クロック信号のエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第３の記憶素子と、を備える。
【０１００】
そのテスト方法には、マルチサイクルテストステップと、シングルサイクルテストステップが含まれる。マルチサイクルテストステップは、第１、第２、第３の記憶素子のデータ入力と、他のスキャン可能な記憶素子のデータ出力を接続してスキャンチェーンを構成し、スキャンチェーン可能な記憶素子に対して、テストクロックレートで検査パターンをシリアルにシフトするスキャンステップと、第１の記憶素子に対して、第１の記憶素子のデータ出力から、第２の記憶素子のデータ入力までのマルチサイクル数と同一又はそれ以上のサイクル数の間、キャプチャ動作の前又はスキャンステップ中にデータをホールドするマルチサイクルホールドステップと、第１、第２、第３の記憶素子のデータ入力を、論理回路に接続し、その論理回路に対する検査パターンの応答を、記憶素子のデータ入力から取り込むマルチサイクルキャプチャステップと、第１、第２、第３の記憶素子のデータ入力と、他のスキャン可能な記憶素子のデータ出力を接続してスキャンチェーンを構成し、記憶素子からデータをシフトアウトするシフトアウトステップと、を含む。
【０１０１】
一方、シングルサイクルテストステップは、スキャンステップと、第１、第２、第３の記憶素子のデータ入力を、論理回路に接続し、第２の記憶素子については、データをホールドし、第２の記憶素子を除く記憶素子については、論理回路に対する検査パターンの応答を、記憶素子のデータ入力から取り込むシングルサイクルキャプチャステップと、シフトアウトステップと、を含む。
【０１０２】
次に、図２１の従来のスキャンテスト回路の動作について、図２４に示す波形図を参照しながら説明する。図２４の左側に示すマルチサイクルテストモードについて説明する。時刻ｔｍ０では、信号ｓｅ１、ｓｅ２が「１」で、ｃｅ１が「１」であるため、第１の記憶素子１１はシフト状態、第２の記憶素子２１はシフト状態、第３の記憶素子３１はシフト状態となり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【０１０３】
時刻ｔｍ１では、信号ｓｅ１、ｓｅ２が「１」で、ｃｅ１が「０」であるため、第１の記憶素子１１はホールド状態、第２の記憶素子２１はシフト状態、第３の記憶素子３１はシフト状態となり、時刻ｔｍ０でシフトされた第１の記憶素子１１の値がホールドされ、記憶素子２１および３１は、スキャン入力からの値がスキャン入力データとしてシフトされる。
【０１０４】
時刻ｔｍ２では、信号ｓｅ１、ｓｅ２が「０」で、信号ｃｅ１が「１」であるため、第１の記憶素子１１はキャプチャ状態、第２の記憶素子２１はキャプチャ状態、第３の記憶素子はキャプチャ状態となり、データ入力からの値を取り込む。
【０１０５】
第２のスキャン可能な記憶素子２１では、時刻ｔｍ０で値が確定した第１の記憶素子１１の値を、その２クロック後の時刻ｔｍ２で取り込むため、実動作での２サイクルのマルチサイクルと同一のタイミングで、データを取り込むことができる。
【０１０６】
第３の記憶素子３１では、時刻ｔｍ０で値が確定した第１の記憶素子１１の値を、その２クロック後のｔｍ２で取り込むため、実動作での１サイクルのシングルサイクルとは異なるタイミングでデータを取り込むことになる。
【０１０７】
時刻ｔｍ３では、信号ｓｅ１、ｓｅ２が「１」で、信号ｃｅ１が「０」であるため、第１の記憶素子１１はホールド状態、第２の記憶素子２１はシフト状態、第３の記憶素子３１はシフト状態となり、時刻ｔｍ２でキャプチャされた第１の記憶素子１１の値はホールドされ、記憶素子２１および３１は時刻ｔｍ２でキャプチャした値をシフトアウトする。
【０１０８】
図２４の右側に示すシングルサイクルテストモードについて説明する。時刻ｔｓ０では、信号ｓｅ１、ｓｅ２が「１」で、信号ｃｅ１が「１」であるため、第１の記憶素子１１はシフト状態、第２の記憶素子２１はシフト状態、第３の記憶素子３１はシフト状態となり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【０１０９】
時刻ｔｓ１では、信号ｓｅ１、ｓｅ２が「１」で、信号ｃｅ１が「０」であるが、信号ｍｃｔｅが「１」のために第１の記憶素子１１のｃｅ入力には「１」が入力される。そのため、第１の記憶素子１１はシフト状態、第２の記憶素子２１はシフト状態、第３の記憶素子３１はシフト状態となり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【０１１０】
時刻ｔｓ２では、信号ｓｅ１、ｓｅ２が「０」で、信号ｃｅ１が「１」であるが、信号ｍｃｔｅが「１」のために第２の記憶素子２１のｃｅ入力には「０」が入力される。そのため、第１の記憶素子１１はキャプチャ状態、第２の記憶素子２１はホールド状態、第３の記憶素子３１はキャプチャ状態となり、第１および第３の記憶素子１１および３１は、そのデータ入力から値を取り込み、第２の記憶素子２１はデータをホールドする。
【０１１１】
第２の記憶素子２１では、時刻ｔｓ１で値が確定した第１の記憶素子１１の値を、その１クロック後の時刻ｔｓ２で取り込むと、実動作では２サイクルのマルチサイクルのために、正しくデータが取り込めないが、データをホールドすることで、第１の記憶素子１１の値を取り込まないようにする。
【０１１２】
第３の記憶素子３１では、時刻ｔｓ１で値が確定した第１の記憶素子１１の値を、その１クロック後の時刻ｔｓ２で取り込むため、実動作での１サイクルのシングルサイクルと同一のタイミングでデータを取り込むことができる。
【０１１３】
時刻ｔｓ３では、信号ｓｅ１、ｓｅ２が「１」で、信号ｃｅ１が「０」であるため、第１の記憶素子１１はシフト状態、第２の記憶素子２１はシフト状態、第３の記憶素子３１はシフト状態であり、時刻ｔｓ２でキャプチャした値をシフトアウトする。
【０１１４】
以上説明したように、図２１に示す論理回路４０をテストする場合には、第１の記憶素子１１から第２の記憶素子２１までのマルチサイクルパスに対しては、実動作速度と同じマルチサイクルテストモードでテストを行い、第１の記憶素子１１から第３の記憶素子３１までのシングルサイクルパスに対しては、実動作速度と同じシングルサイクルテストモードでテストを行い、シングルサイクルテストモードで第２の記憶素子２１はキャプチャしないようにすることで、問題なくテストを行うことが可能である。
【０１１５】
次に、図２３は、従来技術の回路構成の一例である。図２３に示す論理回路２１１は、前述したように、もし、シングルサイクルパス９１（始点ＳＦＦ２２０１から終点ＳＦＦ２２０３）、マルチサイクルパス９２（始点ＳＦＦ２２０１から終点ＳＦＦ２２０４）の２つのパスのみであった場合には、図２１の論理回路４０と同様になり、問題は生じない。しかしながら、シングルサイクルパス９３（始点ＳＦＦ２２０２から終点ＳＦＦ２２０４）が加わると、シングルサイクルパス９３をシングルサイクルテストモードでテストしようとした場合、終点ＳＦＦ２２０４は、キャプチャされない。従来技術で、このようにキャプチャしないようにしたのは、合流点２３１にマルチサイクルパス９２からデータが入ってきて、終点ＳＦＦ２２０４の入力ｄで確定するまでに、システムクロックの２サイクル必要であり、１サイクルでは、不確定なためである。このように、図２３に示す論理回路２１１のような構成の場合、従来技術では、シングルサイクルパスに対し、実動作速度でのテストができないという問題がある。
【０１１６】
一方、本発明の実施例１〜４によるスキャンテスト回路の設計方法で、スキャンテスト回路を設計し、各々の実施例で開示したスキャンテスト方法でテストを行うことにより、シングルマルチサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能となる効果が得られる。
【産業上の利用可能性】
【０１１７】
本発明は、スキャンパスを組み込む半導体集積回路のスキャンテスト回路に適用可能である。
【０１１８】
なお、本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１１９】
１１：第１の記憶素子
２１：第２の記憶素子
３１：第３の記憶素子
４０、２１１、９４１、１５１１：論理回路
５０、２２５１：ＯＲ回路
６０、２２５２：インバータ
１００：ＢＩＳＴコントローラ
１０１：テストアクセスポート（ＴＡＰ）
１０２：制御部
１０３、２８４、９８４、１５８４：スキャンイネーブル生成部
１０４：クロックイネーブル生成部
１０５、２８６、９８６、１５８６：ランダムパターン発生器（ＰＲＰＧ）
１０６、２８２、９８２、１５８２：圧縮器（ＭＩＳＲ）
１０７：マルチサイクルテストイネーブル生成部
２０１、２０２、９０１、９０２、９０６、１５０１、２２０１、２２０２：始点ＳＦＦ
２０３、２０４、２０５、９０３、９０４、９０５、１５０２、２２０３、２２０４、２２０５：終点ＳＦＦ
２２１、２２２、９１１、９１２、１５２１：分岐点
２３１、９２１、９２２、１５４１：合流点
２７１、２７２、３３０、９３１、９３２、９３３、１５３３：出力固定回路
２７３、９７３、１５７３、２２４２：マルチサイクルテストイネーブル信号（ｍｃｔｅ）
２８０、９８０、１５８０：モード選択部
２８８、９８８、１５８８：クロック周波数変換部
３３２、７２０、７３０：セレクタ
３３４：固定値
７００、７４０、７５０：スキャンフリップフロップ（ＳＦＦ）
７１０：ディレイフリップフロック（ＤＦＦ）
７１３：ＤＦＦ７１０の出力信号
７３３：セレクタ７３０の出力信号
１５３１、１５３２：経路
２２４１：クロックイネーブル信号（ｃｅ１）
【図１】
2012189451.tif 000003
【図２】
2012189451.tif 000004
【図３】
2012189451.tif 000005
【図４】
2012189451.tif 000006
【図５】
2012189451.tif 000007
【図６】
2012189451.tif 000008
【図７】
2012189451.tif 000009
【図８】
2012189451.tif 000010
【図９】
2012189451.tif 000011
【図１０】
2012189451.tif 000012
【図１１】
2012189451.tif 000013
【図１２】
2012189451.tif 000014
【図１３】
2012189451.tif 000015
【図１４】
2012189451.tif 000016
【図１５】
2012189451.tif 000017
【図１６】
2012189451.tif 000018
【図１７】
2012189451.tif 000019
【図１８】
2012189451.tif 000020
【図１９】
2012189451.tif 000021
【図２０】
2012189451.tif 000022
【図２１】
2012189451.tif 000023
【図２２】
2012189451.tif 000024
【図２３】
2012189451.tif 000025
【図２４】
2012189451.tif 000026