半導体集積回路のスキャンテスト回路の設計方法、スキャンテスト回路、およびスキャンテスト方法
【課題】半導体集積回路にスキャンパスを組み込んでスキャンテストを行う際に、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、シングルサイクルパスの実動作速度によるテストを可能にすること。
【解決手段】実動作モードでタイミング解析を行い、マルチサイクルパスを抽出する。次に、シングルサイクルパスとマルチサイクルパスの分岐点と、シングルサイクルパスとマルチサイクルパスの合流点を抽出する。そして、上記分岐点から出力側のマルチサイクルパス側の経路上と、上記合流点から入力側のマルチサイクルパス側の経路上に、出力固定回路を挿入する。但し、出力固定回路は、マルチサイクルテスト時には、入力と同じ信号を出力し、シングルサイクルテスト時には、任意の固定値を出力する回路である。
【解決手段】実動作モードでタイミング解析を行い、マルチサイクルパスを抽出する。次に、シングルサイクルパスとマルチサイクルパスの分岐点と、シングルサイクルパスとマルチサイクルパスの合流点を抽出する。そして、上記分岐点から出力側のマルチサイクルパス側の経路上と、上記合流点から入力側のマルチサイクルパス側の経路上に、出力固定回路を挿入する。但し、出力固定回路は、マルチサイクルテスト時には、入力と同じ信号を出力し、シングルサイクルテスト時には、任意の固定値を出力する回路である。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路のスキャンテスト回路の設計方法、スキャンテスト回路、およびスキャンテスト方法に関する。特に、本発明は、マルチサイクルパスを有する半導体集積回路において、シングルサイクルテスト及びマルチサイクルテストを行う半導体集積回路のスキャンテスト回路の設計方法、スキャンテスト回路、およびスキャンテスト方法に関する。
【背景技術】
【0002】
半導体集積回路のテスト容易化のために最も広く使用される技術の一つが、スキャンパスを半導体集積回路に組み込むスキャン設計技術である。具体的には、論理回路中のフリップフロップのデータ入力にセレクタを付加し、そのフリップフロップを直列に接続してスキャンパスを構成する。本明細書では、以降、上記したように、セレクタを付加してスキャンパスを構成したフリップフロップを「スキャンフリップフロップ」という。また、スキャンフリップフロップをSFFと表記することもある。上記したスキャンパスは巨大なシフトレジスタとして機能する。そして、論理回路のテストの際には、スキャンパスを利用して論理回路中のスキャンフリップフロップに直接に値を書き込んで、論理回路の動作を検証する。
【0003】
スキャンパスを用いたスキャンテスト方法において重要な点の一つが実使用時の動作速度と同じ動作速度でのテストを実現することである。これは、半導体集積回路には、論理的には正しく回路が構成されているにもかかわらず、回路の遅延が不適切である不良が存在するからである。このような不良は実動作速度によるテストによってのみ検出することが可能である。
【0004】
従って、マルチサイクルパスを含む論理回路では、マルチサイクルパスはマルチサイクルパスの実動作速度でテストを行い、シングルサイクルパスはシングルサイクルパスの実動作速度でテストを行う必要がある。
【0005】
特許文献1には、マルチサイクルパスとシングルサイクルパスを含む論理回路において、マルチサイクルパスに対してマルチサイクルでの実動作検査を行い、シングルサイクルパスに対してはシングルサイクルでの実動作検査を行うことが可能なテスト方法が開示されている。
【0006】
図21は、特許文献1に記載されたマルチサイクルパスを含む半導体集積回路である。図21における論理回路40において、第1の記憶素子11の出力qから第2の記憶素子21の入力dまでの経路は、マルチサイクルパスである。また、第1の記憶素子11の出力qから第3の記憶素子31の入力dまでの経路は、シングルサイクルパスである。
【0007】
特許文献1に開示されたテスト方法は、マルチサイクルテストステップとシングルサイクルテストステップとを含んでいる。マルチサイクルテストステップでは、データを出す側の第1の記憶素子11でデータをホールドして、マルチサイクルパスに対し実動作速度でのテストを行う。一方、シングルサイクルテストステップでは、シングルサイクルパスに対し実動作速度でのテストを行い、マルチサイクルパスに関してはデータをキャプチャさせない構成としている。このようなテスト方法により、第1の記憶素子11の出力qから第2の記憶素子21の入力dまでのマルチサイクルパス、及び、第1の記憶素子11の出力qから第3の記憶素子31の入力dまでのシングルサイクルパスに対して、各々、実動作でのテストを可能にしている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2005−201821号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
以下の分析は、本発明により与えられる。
【0010】
特許文献1に記載されたテスト方法は、図21の論理回路40のマルチサイクルパス及びシングルサイクルパスに対しては、各々、実動作速度でのテストが可能である。しかしながら、このテスト方法を、図23に示す論理回路211に適用した場合、以下に示す問題が生ずる。図23において、SFF2201の出力qから分岐点221を通ってSFF2203の入力dまでの経路はシングルサイクルパス(シングルサイクルパス91とする)である。また、SFF2201の出力qから分岐点221、合流点231を通ってSFF2204の入力dまでの経路はマルチサイクルパス(マルチサイクルパス92とする)である。もし、論理回路211が上記のシングルサイクルパス91及びマルチサイクルパス92のみを有しているとした場合には、論理回路211は、図21の論理回路40と同じ構成になるので、特許文献1に記載された方法により、実動作速度でのシングルサイクルパス、及びマルチサイクルパスのテストが可能である。
【0011】
次に、図23の論理回路211において、シングルサイクルパス91、マルチサイクルパス92の他に、さらに、SFF2202の出力qから分岐点222、合流点231を通ってSFF2204の入力dまでを経路とするシングルサイクルパス(シングルサイクルパス93とする)が追加された場合を考えてみる。ここで、特許文献1に記載されたテスト方法を適用した場合、まず、マルチサイクルテストステップでは、SFF2203は実動作よりも遅い2サイクルでデータを取り込み、SFF2204は実動作と同じ2サイクルでデータを取り込む。一方、シングルサイクルテストステップでは、SFF2203は実動作と同じ1サイクルでデータを取り込むが、SFF2204は、「ホールド」状態となり、データを取り込まない。
【0012】
このように、シングルサイクルパス93は、マルチサイクルテストモード時には実動作よりも遅い2サイクルでのテストとなり、シングルサイクルテストモード時にはデータの取り込みが行われない。従って、シングルサイクルパス93は、実動作速度でのテストを行うことができないという問題が生じる。また、図23には、SFF2202の出力qから分岐点222を通ってSFF2205の入力dまでを経路とするマルチサイクルパス(マルチサイクルパス94とする)を含んでいるが、このマルチサイクルパス94に対しては、特許文献1に記載されたテスト方法で、マルチサイクルパスの動作速度でのテストが可能である。
【0013】
以上説明したように、特許文献1に記載された方法では、一般に、受ける側のSFFがシングルサイクルパスとマルチサイクルパスの両方を含んでいる場合(図23のSFF2204の場合)には、シングルサイクルパスの実動作速度でのテストができないという問題がある。従って、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、上記した問題を解消し、実動作速度でのシングルサイクルテストを可能にする方法が望まれている。
【課題を解決するための手段】
【0014】
本発明の第1の視点による半導体集積回路のスキャンテスト回路の設計方法は、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路の設計方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、を含む。
【0015】
本発明の第2の視点による半導体集積回路のスキャンテスト回路は、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路であって、テスト対象の論理回路に対して、テストデータを供給する始点スキャンフリップフロップと、前記始点スキャンフリップフロップの出力から、前記論理回路内の経路を通ったデータを受け取る終点スキャンフリップフロップと、前記論理回路内の異なるサイクル数のパスに分岐する分岐点と前記分岐点を含むマルチサイクルパスの終点スキャンフリップフロップ間の経路上、及び、前記論理回路内の異なるサイクル数のパスが合流する合流点と前記合流点を含むマルチサイクルパスの始点スキャンフリップフロップ間の経路上に挿入された出力固定回路と、マルチサイクルテストモードと、シングルサイクルテストモードのいずれかを選択するモード選択部と、を備え、前記モード選択部が前記マルチサイクルテストモードを選択している場合には、前記出力固定回路は入力データをそのまま出力し、前記モード選択部が前記シングルサイクルテストモードを選択している場合には、前記出力固定回路は任意の一定値を出力する。
【0016】
本発明の第3の視点による半導体集積回路のスキャンテスト方法は、マルチサイクルパスを含む半導体集積回路のテスト方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、シングルサイクルテストモードと、マルチサイクルテストモードのいずれかを選択するステップと、前記シングルサイクルテストモードが選択された場合に実施されるシングルサイクルテストステップと、前記マルチサイクルテストモードが選択された場合に実施されるマルチサイクルテストステップと、を含み、前記シングルサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するシングルサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作と同じクロック周波数で、前記論理回路による前記テストデータの応答をキャプチャするシングルサイクルキャプチャステップと、前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すシングルサイクルシフトアウトステップと、を含み、前記マルチサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するマルチサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作のクロック周波数の1/Nのクロック周波数(ここで、Nはマルチサイクル数)で、前記論理回路による前記テストデータの応答をキャプチャするマルチサイクルキャプチャステップと、前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すマルチサイクルシフトアウトステップと、を含む。
【発明の効果】
【0017】
本発明の半導体集積回路のスキャンテスト回路の設計方法によれば、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能なスキャンテスト回路の設計方法を提供することができる。
【0018】
本発明の半導体集積回路のスキャンテスト回路によれば、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能なスキャンテスト回路を提供することができる。
【0019】
本発明の半導体集積回路のスキャンテスト方法によれば、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能なスキャンテスト方法を提供することができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施例1に係るスキャンテスト回路の回路図である。
【図2】本発明の実施例1に係るスキャンテスト回路を説明するための回路図である。
【図3】本発明の実施例1における出力固定回路のブロック図である。
【図4】本発明の実施例1に係るスキャンテスト回路の設計方法を示すフローチャートである。
【図5】本発明の実施例1に係るスキャンテスト回路の設計方法において、始点SFF及び終点SFFを抽出した情報の一例である。
【図6】本発明の実施例1に係るスキャンテスト回路の設計方法において、分岐点を抽出した情報の一例である。
【図7】本発明の実施例1に係るスキャンテスト回路の設計方法において、合流点を抽出した情報の一例である。
【図8】図1に示したスキャンテスト回路の波形図である。
【図9】本発明の実施例2に係るスキャンテスト回路の回路図である。
【図10】本発明の実施例2に係るスキャンテスト回路を説明するための回路図である。
【図11】本発明の実施例2に係るスキャンテスト回路の設計方法を示すフローチャートである。
【図12】本発明の実施例2に係るスキャンテスト回路の設計方法において、出力固定回路を抽出した情報の一例である。
【図13】本発明の実施例3に係るスキャンテスト回路である。
【図14】本発明の実施例3に係るスキャンテスト回路の設計方法を示すフローチャートである。
【図15】本発明の実施例3に係るスキャンテスト回路の設計方法におけるタイミング解析結果を示す情報の一例である。
【図16】本発明の実施例4に係るスキャンテスト回路である。
【図17】本発明の実施例4に係るスキャンテスト回路を説明するための回路図である。
【図18】本発明の実施例4に係るスキャンテスト回路の設計方法において、始点SFF及び終点SFFを抽出した情報の一例である。
【図19】本発明の実施例4に係るスキャンテスト回路の設計方法において、分岐点を抽出した情報の一例である。
【図20】本発明の実施例4に係るスキャンテスト回路の設計方法において、合流点を抽出した情報の一例である。
【図21】従来の半導体集積回路の構成を示すブロック図である。
【図22】シフト状態、キャプチャ状態、ホールド状態を有するSFF回路を示す図である。
【図23】従来のスキャンテスト回路の一例である。
【図24】図21に示したスキャンテスト回路の波形図である。
【発明を実施するための形態】
【0021】
本発明の実施形態について、必要に応じて図面を参照して説明する。なお、実施形態の説明において引用する図面及び図面の符号は実施形態の一例として示すものであり、それにより本発明による実施形態のバリエーションを制限するものではない。
【0022】
本発明による第1の実施形態の半導体集積回路のスキャンテスト回路の設計方法は、図4に示すように、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路の設計方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップS11と、タイミング解析に基づいて、論理回路内のマルチサイクルパスを抽出するステップS12と、論理回路内の異なるサイクル数のパスに分岐する分岐点と、論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップS13と、分岐点を含むマルチサイクルパスの分岐点より出力側の経路上と、合流点を含むマルチサイクルパスの合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップS15と、を含む。
【0023】
本発明による第2の実施形態の半導体集積回路のスキャンテスト回路は、図1に示すように、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路であって、テスト対象の論理回路211に対して、テストデータを供給する始点スキャンフリップフロップ(201、202)と、始点スキャンフリップフロップ(201、202)の出力から、論理回路211内の経路を通ったデータを受け取る終点スキャンフリップフロップ(203、204、205)と、論理回路211内の異なるサイクル数のパスに分岐する分岐点(221、222)と分岐点(221、222)を含むマルチサイクルパスの終点スキャンフリップフロップ間の経路上、及び、論理回路内211の異なるサイクル数のパスが合流する合流点231と合流点231を含むマルチサイクルパスの始点スキャンフリップフロップ間の経路上に挿入された出力固定回路(271、272)と、マルチサイクルテストモードと、シングルサイクルテストモードのいずれかを選択するモード選択部280と、を備え、モード選択部280がマルチサイクルテストモードを選択している場合には、出力固定回路(271、272)は入力データをそのまま出力し、モード選択部280がシングルサイクルテストモードを選択している場合には、出力固定回路(271、272)は任意の一定値を出力する。
【0024】
本発明による第3の実施形態の半導体集積回路のスキャンテスト方法は、図4に示すように、マルチサイクルパスを含む半導体集積回路のテスト方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップS11と、タイミング解析に基づいて、論理回路内のマルチサイクルパスを抽出するステップS12と、論理回路内の異なるサイクル数のパスに分岐する分岐点と、論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップS13と、分岐点を含むマルチサイクルパスの分岐点より出力側の経路上と、合流点を含むマルチサイクルパスの合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップS15と、シングルサイクルテストモードと、マルチサイクルテストモードのいずれかを選択するステップと、シングルサイクルテストモードが選択された場合に実施されるシングルサイクルテストステップと、マルチサイクルテストモードが選択された場合に実施されるマルチサイクルテストステップと、を含み、シングルサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するシングルサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を論理回路に接続し、実動作と同じクロック周波数で、論理回路によるテストデータの応答をキャプチャするシングルサイクルキャプチャステップと、終点スキャンフリップフロップによりスキャンチェーンを構成し、キャプチャしたデータを取り出すシングルサイクルシフトアウトステップと、を含み、マルチサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するマルチサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を論理回路に接続し、実動作のクロック周波数の1/Nのクロック周波数(ここで、Nはマルチサイクル数)で、論理回路による前記テストデータの応答をキャプチャするマルチサイクルキャプチャステップと、終点スキャンフリップフロップによりスキャンチェーンを構成し、キャプチャしたデータを取り出すマルチサイクルシフトアウトステップと、を含む。
【0025】
以下、実施例について、図面を参照して詳しく説明する。
【実施例1】
【0026】
[実施例1の構成]
図1は、本発明の実施例1に係るスキャンテスト回路の回路図であり、論理回路211に対して、実動作速度でのシングルサイクルパスのテストを可能にする対策を施した回路を示している。また、図2は、図1に示すスキャンテスト回路において対策を適用する前のスキャンテスト回路であり、論理回路211、始点SFF(201、202)、終点SFF(203、204、205)のみを示したものである。ここで、SFF201、202は、論理回路211に対してテストデータをシフト入力する「始点スキャンフリップフロップ」(以降、始点SFFという)である。一方、SFF203、204、205は、論理回路211によるテストデータの応答をキャプチャし、キャプチャした結果をシフトアウトする「終点スキャンフリップフロップ」(以降、終点SFFという)である。実施例1において、全ての始点SFF、終点SFFは、図22(e)に記載された回路が用いられる。
【0027】
図2に示す論理回路211内において、始点SFF201のデータ出力qから論理回路211内の分岐点221を通って終点SFF203のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス1という)である。また、始点SFF201のデータ出力qから論理回路211内の分岐点221、合流点231を通って終点SFF204のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの2サイクル分必要なマルチサイクルパス(以降、マルチサイクルパス2という)である。また、始点SFF202のデータ出力qから論理回路211内の分岐点222、合流点231を通って終点SFF204のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス3という)である。また、始点SFF202のデータ出力qから論理回路211内の分岐点222を通って終点SFF205のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの2サイクル分必要なマルチサイクルパス(以降、マルチサイクルパス4という)である。
【0028】
次に、図3は、実施例1において、図2の論理回路211内に挿入する出力固定回路330を示している。図3において、mは選択信号であり、選択信号mが「0」の場合は、入力端子dに入力されたデータがそのまま出力端子qから出力され、選択信号mが「1」の場合は、入力端子dに入力されるデータの値によらず、「0」または「1」の任意の固定値334が出力端子qから出力される。図3の右側に示した表は、上記した入出力関係を示している。ここで、固定値334を「0」、「1」のいずれにするかは、出力固定回路330を挿入するときに設定すればよい。
【0029】
また、図3は出力固定回路の一例であり、選択信号mが「1」の場合に、データパスの値を保持するフリップフロップで構成することも可能である。
【0030】
次に、図1は、図2に示す論理回路211内に、実動作速度でのシングルサイクルパスのテストを可能にする対策を施した回路を示している。2つの出力固定回路271、272を、各々、マルチサイクルパス2、マルチサイクルパス4の経路に挿入している。これらの出力固定回路の挿入の詳細については、後に詳述する。また、出力固定回路271、272の各々のm端子には、モード選択部280の出力信号であるマルチサイクルテストイネーブル信号mcte273が供給される。
【0031】
図1において、複数の始点SFF(201、202)に対して1つのスキャンチェーンが構成される。具体的には、テストデータは、ランダムパターン生成部(PRPG)286からsi1信号として始点SFF201のsi端子に供給される。また、始点SFF201のq端子は始点SFF202のsi端子と接続される。このようにして、テストデータが始点SFF(201、202)にシフト入力されるように構成されている。また、始点SFF202のq端子は、圧縮器(MISR)282に接続される。始点SFF(201、202)の出力データはシフトアウトされながら、SO1信号としてMISR282に取り込まれる。
【0032】
また、図1において、複数の終点SFF(203、204、205)に対してもう1つのスキャンチェーンが構成される。具体的には、テストデータは、ランダムパターン生成部(PRPG)286からsi2信号として終点SFF203のsi端子に供給される。終点SFF203のq端子は終点SFF204のsi端子と接続される。また、終点SFF204のq端子は終点SFF205のsi端子と接続される。このようにしてテストデータが終点SFF(203、204、205)にシフト入力されるように構成される。また、終点SFF205のq端子は、圧縮器(MISR)282に接続される。複数の終点SFF(203、204、205)の出力データはシフトアウトされながら、SO2信号としてMISR282に取り込まれる。
【0033】
また、図1のモード選択部280は、従来技術のスキャンテスト回路を示す図21のマルチサイクルテストイネーブル生成部107と同様の機能を有している。モード選択部280は、マルチサイクルでのテストを行う「マルチサイクルテストモード」と、シングルサイクルでのテストを行う「シングルサイクルテストモード」を選択し、選択信号としてマルチサイクルテストイネーブル信号(mcte)273を出力する。mcte273は、マルチサイクルテストモードの場合には「0」が出力され、シングルサイクルテストモードの場合には「1」が出力される。
【0034】
また、図1のクロック周波数変換部288は、mcte=「0」の場合(すなわち、マルチサイクルテストモードの場合)、システムクロックck0の周波数を1/Nに落としたクロック信号ckを出力する。但し、Nはマルチサイクルパスのマルチサイクル数である。図1の論理回路211では、2つのマルチサイクルパス(マルチサイクルパス2、マルチサイクルパス4)のマルチサイクル数は、2であり、N=2となる。一方、mcte=「1」の場合(すなわち、シングルサイクルテストモードの場合)、クロック周波数変換部288は、システムクロックck0をそのままクロック信号ckとして出力する。クロック信号ckは、始点SFF(201、202)、及び終点SFF(203、204、205)のck端子と、論理回路211内の不図示のck端子に供給される。
【0035】
以上の構成により、論理回路211、始点SFF(201、202)、及び終点SFF(203、204、205)は、シングルサイクルテストモードの場合、実動作と同じクロック周波数で動作し、マルチサイクルテストモードの場合、実動作のクロック周波数の1/N(図1の回路では、1/2)のクロック周波数で動作する。
【0036】
また、スキャンイネーブル生成部284は、スキャンイネーブル信号seを出力する。スキャンイネーブル信号seは、始点SFF(201、202)、終点SFF(203、204、205)のse端子に供給される。始点SFF及び終点SFFは、スキャンイネーブル信号seが「0」の場合、キャプチャ動作を行い、スキャンイネーブル信号seが「1」の場合、シフト動作を行う。
【0037】
また、本発明の実施例1では、SFFのホールド動作は行わないため、図21の従来のスキャンテスト回路におけるクロックイネーブル生成部104は不要である。
【0038】
[実施例1の動作]
図4は、本発明の実施例1に係るスキャンテスト回路の設計方法を示すフローチャートである。以下、図4を参照しながら実施例1のスキャンテスト回路の設計方法を詳細に説明する。
【0039】
まず、図2の論理回路211の論理合成を行う(ステップS10)。ここで、論理合成は、一般的なCAD設計ツールで行われる。次に、CAD設計ツールで、実動作モードでのタイミング解析を実行する(ステップS11)。
【0040】
次に、実動作モードにおけるタイミング解析結果から、論理回路211内のマルチサイクルパスを抽出する(ステップS12)。図5は、ステップS12で抽出したマルチサイクルパスと、シングルサイクルパスを示している。図5に示すように、論理回路211内のパスは、始点SFFと終点SFFの組み合わせに対応付けされて、始点SFF、終点SFF、サイクル数からなる対応テーブルとして生成される。図5において、抽出された論理回路211内のパスは、以下のように表されている。始点SFF201から終点SFF203のパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス1)である。また、始点SFF201から終点SFF204のパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス2)である。また、始点SFF202から終点SFF204のパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス3)である。また、始点SFF202から終点SFF205のパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス4)である。
【0041】
次に、図4において、異なるサイクル数のパスに分岐する分岐点、及び、異なるサイクル数のパスが合流する合流点を抽出する(ステップS13)。次に、抽出した分岐点、合流点の情報に基づいて、「分岐点と終点SFFの対応テーブル」の生成と、「合流点と始点SFFの対応テーブル」の生成を行う(ステップS18)。
【0042】
ここで、上記した異なるサイクル数のパスに分岐する分岐点は、シングルサイクルパスとマルチサイクル数がM1のマルチサイクルパスに分岐する分岐点、或いは、マルチサイクル数がM1のマルチサイクルパスとマルチサイクル数がM2のマルチサイクルパスに分岐する分岐点が考えられる(但し、M1、M2は2以上の整数で、M1≠M2)。図2の論理回路211の場合は、マルチサイクルパスのマルチサイクル数は2のみであるため、シングルサイクルパスとマルチサイクル数が2のマルチサイクルパスに分岐する分岐点を抽出する。
【0043】
また、上記した異なるサイクル数のパスが合流する合流点は、シングルサイクルパスとマルチサイクル数がM1のマルチサイクルパスが合流する合流点、或いは、マルチサイクル数がM1のマルチサイクルパスとマルチサイクル数がM2のマルチサイクルパスが合流する合流点が考えられる(但し、M1、M2は2以上の整数で、M1≠M2)。図2の論理回路211の場合は、マルチサイクルパスのマルチサイクル数は2のみであるため、シングルサイクルパスとマルチサイクル数が2のマルチサイクルパスが合流する合流点を抽出する。
【0044】
図6(A)は、ステップS18で生成された分岐点と終点SFFの対応テーブルを示す。図6(A)は、論理回路211において、2つの分岐点221、222が抽出されたことを示している。まず、分岐点221は、分岐数が2である。分岐点221の入力側の始点SFFは201であり、分岐点221の出力側の終点SFFは203、204である。分岐点221から終点SFF203のパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス1)であり、分岐点221から終点SFF204のパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス2)である。
【0045】
次に、分岐点222は、分岐数が2である。分岐点222の入力側の始点SFFは202であり、分岐点222の出力側の終点SFFは204、205である。分岐点222から終点SFF204のパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス3)であり、分岐点222から終点SFF205のパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス4)である。
【0046】
そして、分岐点を含むマルチサイクルパスの分岐点より出力側に、出力固定回路を挿入する挿入候補位置が、設定される。図6(A)では、出力側を終点SFFの情報で表しており、実際には、分岐点と分岐点を含むマルチサイクルパスに接続した終点SFF間の経路が、挿入候補位置として設定される。論理回路211では、分岐点221と終点SFF204間の経路が、出力固定回路の第1の挿入候補となる。また、分岐点222と終点SFF205間の経路が、出力固定回路の第2の挿入候補となる。図6(A)に示すように、分岐点と終点SFFの対応テーブルの最右列に、出力固定回路挿入フラグを設けておき、挿入候補として判別された経路を、0に初期化する。
【0047】
図7(A)は、ステップS18で生成された合流点と始点SFFの対応テーブルを示す。図7(A)は、論理回路211において、1つの合流点231が抽出されたことを示している。合流点231は、合流数が2である。合流点231の入力側の始点SFFは201、202であり、合流点の出力側の終点SFFは204である。始点SFF201から合流点231のパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス2)であり、始点SFF202から合流点231のパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス3)である。
【0048】
そして、合流点を含むマルチサイクルパスの分岐点より入力側に、出力固定回路を挿入する挿入候補位置が設定される。図7(A)では、入力側を始点SFFの情報で表しており、実際には、合流点と合流点を含むマルチサイクルパスに接続した始点SFF間の経路が、挿入候補位置として設定される。論理回路211では、合流点231と始点SFF201間の経路が、出力固定回路の第3の挿入候補となる。図7(A)に示すように、合流点と始点SFFの対応テーブルの最右列に、出力固定回路挿入フラグを設けておき、挿入候補として判別された経路を、0に初期化する。
【0049】
次に、図4に戻って、フローチャートの説明を続ける。ステップS18で生成した分岐点と終点SFFの対応テーブル、及び合流点と始点SFFの対応テーブルを参照し、第1の挿入候補の出力固定回路が未挿入か否かを判定する(ステップS14)。具体的には、まず、分岐点と終点SFFの対応テーブルを参照し、第1の挿入候補の出力固定回路挿入フラグが「0」であることを検出する。ここで、出力固定回路挿入フラグが「0」は、初期化された状態のままであり、未挿入であることを意味している。そこで、ステップS14で、YESと判定され、ステップS15に進む。
【0050】
第1の挿入候補位置(すなわち、分岐点221と終点SFF204間の経路上)に、出力固定回路271を挿入する(ステップS15)。上記の挿入は、自動的に行われるようにしてもよいし、CAD設計ツールを使用するユーザが、例えば、「出力固定回路挿入コマンド」を操作画面で指示することによって挿入するようにしてもよい。次に、出力固定回路挿入フラグを更新する(ステップS17)。具体的には、図6(B)に示すように、第1の挿入候補が、挿入済みであることを示す「1」に書き換える。
【0051】
次に、挿入候補は全て処理済みか否かを判定する(ステップS16)。未だ、第2、第3の挿入候補が未処理であるため、ステップS16ではNOと判定され、ステップS14に戻る。次に、第2の挿入候補の出力固定回路が未挿入か否かを判定する(ステップS14)。具体的には、まず、分岐点と終点SFFの対応テーブルを参照し、第2の挿入候補の出力固定回路挿入フラグが「0」であることを検出する。そこで、ステップS14で、YESと判定され、ステップS15に進む。
【0052】
第2の挿入候補位置(すなわち、分岐点222と終点SFF205間の経路上)に、出力固定回路272を挿入する(ステップS15)。次に、出力固定回路挿入フラグを更新する(ステップS17)。具体的には、図6(C)に示すように、第2の挿入候補が、挿入済みであることを示す「1」に書き換える。
【0053】
次に、挿入候補は全て処理済みか否かを判定する(ステップS16)。未だ、第3の挿入候補が未処理であるため、ステップS16ではNOと判定され、ステップS14に戻る。次に、第3の挿入候補の出力固定回路が未挿入か否かを判定する(ステップS14)。具体的には、まず、合流点と始点SFFの対応テーブルを参照し、第3の挿入候補の出力固定回路挿入フラグが「0」であることを検出する。しかしながら、第3の挿入候補位置(すなわち、合流点231と始点SFF201間の経路上)には、既に、第1の挿入候補の処理で出力固定回路271が挿入されていることが検知され、ステップS14は、NOと判定される。そして、出力固定回路の挿入は行わず、ステップS17に進む。そして、出力固定回路挿入フラグを更新する(ステップS17)。具体的には、図7(B)に示すように、第3の挿入候補における出力固定回路挿入フラグを「2」に書き換える。「2」は、挿入候補の処理は済んでおり、挿入されなかったことを示す値である。
【0054】
次に、挿入候補は全て処理済みか否かを判定する(ステップS16)。全ての挿入候補の処理が終了しているため、ステップS16ではYESと判定され、処理を終了する。以上、図4のフローチャートで説明したスキャンテスト回路の設計方法によって、図2の論理回路211は、図1で示すように、出力固定回路271、272が挿入された状態となる。
【0055】
次に、図1に示すスキャンテスト回路によるスキャンテスト方法について、図8を参照しながら説明する。図8は、図1に示したスキャンテスト回路の波形図である。図8の右側は、モード選択部280がシングルサイクルテストモードを選択した場合で、マルチサイクルテストイネーブル信号(mcte)273は「1」である。図8の左側は、モード選択部280がマルチサイクルテストを選択した場合で、マルチサイクルテストイネーブル信号(mcte)273は、「0」である。図8において、上から、クロック周波数変換部288の出力であるクロック信号ck、スキャンイネーブル信号se、マルチサイクルテストイネーブル信号mcteの3つの制御信号を示す。次に、図1の始点SFF(201、202)、終点SFF(203、204)の動作状態を示す。次に、始点SFF(201、202)、終点SFF(203、204)における各々のq出力の波形を示す。尚、図1の終点SFF205の動作状態とq出力については、図8では省略している。
【0056】
図8に示すように、図1のスキャンテスト回路による半導体集積回路のスキャンテスト方法では、シングルサイクルテストモード、マルチサイクルテストモードのいずれかが選択される。まず、マルチサイクルテストモードの動作について以下に説明する。システムクロックck0は、クロック周波数変換部288で、周波数を1/Nに落としたクロック信号ckに変換される。ここで、Nは、マルチサイクル数であり、図8では、マルチサイクル数が2であるため、N=2に設定される。すなわち、マルチサイクルテストモードでは、実動作のクロック周波数の1/2のクロック周波数が、マルチサイクルテストモードのクロック周波数となる。マルチサイクルテストモードでは、マルチサイクルテストイネーブル信号(mcte)273は、「0」に設定される。
【0057】
マルチサイクルテストモードでは、クロック信号ckの立ち上がりエッジのタイミング(図8のtm0、tm1、tm2、tm3)で、SFFは状態を更新する。まず、tm0、tm1のタイミングで、「マルチサイクルスキャン」が行われる。スキャンイネーブル信号seは「1」であり、始点SFF201、202はシフト状態(図8では「S」と表示)となる。シフト状態「S」では、始点SFF(201、202)でスキャンチェーンが構成され、図1のランダムパターン発生器(PRPG)286から、si1信号としてテストデータが、シフト入力される。
【0058】
次に、tm2のタイミングで、「マルチサイクルキャプチャ」が行われる。tm2において、スキャンイネーブル信号seは「0」に切り替わっており、全ての始点SFF、終点SFFは、キャプチャ状態(図8では「C」と表示)となる。キャプチャ状態「C」では、終点SFFの内部では、si端子とd端子のうち、d端子が選択入力される。従って、論理回路211によるテストデータの応答が、論理回路211に接続された終点SFFのd端子から、マルチサイクルテストモードのクロック周波数で、キャプチャされることになる。
【0059】
次に、tm3のタイミングで、「マルチサイクルシフトアウト」が行われる。tm3において、スキャンイネーブル信号seは「1」に切り替わっており、全ての始点SFF、終点SFFは、シフト状態「S」になる。シフト状態「S」では、終点SFF(203、204、205)でスキャンチェーンが構成され、キャプチャされたデータが、シフトアウトされ、SFF205のデータ出力qから、SO2信号として圧縮器MISR282に取り込まれる。
【0060】
尚、図8に示した波形図において、マルチサイクルスキャン、マルチサイクルキャプチャ、及びマルチサイクルシフトアウトは、いずれも、実動作のクロック周波数の1/N(図8では、N=2)のクロック周波数で駆動した場合について例示している。しかしながら、実動作のクロック周波数の1/N、すなわち、実動作と同じ動作速度でマルチサイクルテストを行う必要があるのは、マルチサイクルキャプチャの動作だけである。すなわち、図8に示した「全SFFのキャプチャポイント」〜「全SFFの最終シフト」の時間のみが、実動作のクロック周波数の1/Nの周波数のクロック信号の1周期になっていればよく、他のシフト動作「S」は、テストデータの入出力をしているだけであるため、動作速度は任意でよい。
【0061】
ここで、マルチサイクルスキャンのタイミングと、マルチサイクルキャプチャのタイミングについて、図8を参照しながら、以下に考察する。図8に示すように、tm1のタイミングで、キャプチャ動作前の全SFFの最終シフトが行われている。すなわち、始点SFF(201、202)の出力qは、tm1のタイミングで、キャプチャ前に更新されている。論理回路211内のマルチサイクルパス2は、始点SFF201のデータ出力qが更新されてから、システムクロックの2サイクル後(マルチサイクルテストモードのクロックでは、1クロック後)に、終点SFF204のデータ入力dが確定する。また、マルチサイクルパス4は、始点SFF202のデータ出力qが更新されてから、システムクロックの2サイクル後(マルチサイクルテストモードのクロックでは、1クロック後)に、終点SFF205のデータ入力dが確定する。図8に示すように、全SFFのキャプチャポイントは、全SFFのキャプチャ前の最終シフトに対して、システムクロックの2サイクル後のタイミングになっているから、マルチサイクルパス2、4共に終点SFFのデータ入力dが確定しているため、論理回路211によるテストデータの応答を、正しくキャプチャすることができる。
【0062】
また、論理回路211のシングルサイクルパス1においては、始点SFF201のデータ出力qが更新されてから、システムクロックの1サイクルで終点SFF203のデータ入力dが確定するので、明らかに、マルチサイクルキャプチャで、論理回路211によるテストデータの応答を、正しくキャプチャすることができる。また、シングルサイクルパス3(始点SFF202から終点SFF204)においては、合流点231にマルチサイクルパス2のデータが合流するため、終点SFF204のデータ入力dが確定するまでにシステムクロックの2サイクルを要するが、tm2のタイミングまでには確定しているので、正しくキャプチャすることができる。
【0063】
上記のマルチサイクルテストモードのテストは、マルチサイクルパス2、4に対しては、実動作と同じタイミングでのテストが行われている。しかしながら、シングルサイクルパス1、3に対しては、実動作より遅いタイミングでのテストとなっている。
【0064】
次に、シングルサイクルテストモードの動作について以下に説明する。シングルサイクルテストモードでは、実動作のクロック周波数が、そのまま、シングルサイクルテストモードのクロック周波数となる。また、シングルサイクルテストモードでは、マルチサイクルテストイネーブル信号(mcte)273は、「1」に設定される。
【0065】
シングルサイクルテストモードでは、クロック信号ckの立ち上がりエッジのタイミング(図8のts0、ts1、ts2、ts3)で、SFFは状態を更新する。まず、ts0、ts1のタイミングで、「シングルサイクルスキャン」が行われる。スキャンイネーブル信号seは「1」であり、始点SFF(201、202)はシフト状態となる。シフト状態「S」では、始点SFF201、202でスキャンチェーンが構成され、図1のランダムパターン発生器(PRPG)286から、si1信号としてテストデータが、シフト入力される。
【0066】
次に、ts2のタイミングで、「シングルサイクルキャプチャ」が行われる。ts2において、スキャンイネーブル信号seは「0」に切り替わっており、全ての始点SFF、終点SFFは、キャプチャ状態となる。キャプチャ状態「C」では、終点SFFの内部では、si端子とd端子のうち、d端子が選択入力される。従って、論理回路211によるテストデータの応答が、論理回路211に接続された終点SFFのd端子から、シングルサイクルテストモードのクロック周波数で、キャプチャされることになる。
【0067】
次に、ts3のタイミングで、「シングルサイクルシフトアウト」が行われる。ts3において、スキャンイネーブル信号seは「1」に切り替わっており、全ての始点SFF、終点SFFは、シフト状態「S」になる。シフト状態「S」では、終点SFF203、204、205でスキャンチェーンが構成され、キャプチャされたデータが、シフトアウトされ、SFF205のデータ出力qから、SO2信号として圧縮器MISR282に取り込まれる。
【0068】
尚、図8に示した波形図において、シングルサイクルスキャン、シングルサイクルキャプチャ、及びシングルサイクルシフトアウトは、いずれも、実動作のクロック周波数で駆動した場合について例示している。しかしながら、実動作のクロック周波数、すなわち、実動作と同じ動作速度でシングルサイクルテストを行う必要があるのは、シングルサイクルキャプチャの動作だけである。すなわち、図8に示した「全SFFのキャプチャポイント」〜「全SFFの最終シフト」の時間のみが、実動作のクロック周波数の1周期になっていればよく、他のシフト動作「S」は、テストデータの入出力をしているだけであるため、動作速度は任意でよい。
【0069】
ここで、シングルサイクルテストモードにおいて、シングルサイクルスキャンのタイミングと、シングルサイクルキャプチャのタイミングについて、図8を参照しながら、以下に考察する。図8に示すように、ts1のタイミングで、キャプチャ動作前の全SFFの最終シフトが行われている。すなわち、始点SFF201の出力qは、ts1のタイミングで、キャプチャ前に更新されている。論理回路211内のシングルサイクルパス1は、始点SFF201データ出力qが更新されてから、システムクロックレートの1サイクル後に、終点SFF203のデータ入力dが確定する。図8に示すように、全SFFのキャプチャポイントは、全SFFのキャプチャ前の最終シフトに対して、システムクロックレートの1サイクル後のタイミングには、シングルサイクルパス1の終点SFF203のデータ入力dが確定しているため、論理回路211によるテストデータの応答を、正しくキャプチャすることができる。
【0070】
また、シングルサイクルパス3(始点SFF202から終点SFF204)においては、始点SFF202の出力qは、ts1のタイミングで更新されると、システムクロックレートの1サイクル後に、終点SFF204のデータ入力dが確定する。しかしながら、合流点231からマルチサイクルパス2のデータが合流するため、マルチサイクルパス2から合流点231へ入ってくる信号は、終点SFF204のデータ入力dが確定するまでにシステムクロックの2サイクルを要することになる。そのため、シングルサイクルパス3においては、図2に示す出力固定回路を挿入していない状態では、ts2のタイミングにおいて、不確定なデータをキャプチャしてしまう。
【0071】
そこで、図1に示すように出力固定回路271が挿入された場合には、シングルサイクルテストモード時には、出力固定回路271は固定値を出力する。従って、マルチサイクルパス2から合流点231に入ってくる信号は、出力固定回路271による固定値になるので、マルチパス2から合流されるデータが、ts2のタイミングで確定しないという問題を解消することができる。
【0072】
また、論理回路211内のマルチサイクルパス2、マルチサイクルパス4は共に、始点SFFのデータ出力qが更新されてから、終点SFFのデータ入力dが確定するまで、システムクロックで2サイクル必要である。図8に示すキャプチャポイントts2の時点では、始点SFFの最終シフトが行われてから1サイクルしか経っておらず、出力固定回路271、272を挿入していない状態では、不確定なデータをキャプチャしてしまう。
【0073】
そこで、図1に示すように、出力固定回路271、272を挿入した状態では、出力固定回路271、272は、シングルサイクルテストモード時には、mcte273が「1」となり、固定値を出力する。従って、出力固定回路271から終点SFF204の経路と、出力固定回路272から終点SFF205の経路は、どちらも固定値を出力し続ける。従って、図8のts2のタイミングで終点SFF(204、205)のデータ入力dが不確定になる問題を解消することができる。
【0074】
以下に、実施例1の効果について纏める。実施例1によるスキャンテスト回路を用いたスキャンテスト方法によれば、シングルサイクルテストモードにおいて、シングルサイクルパスを実動作速度でテストすることが可能であるという効果が得られる。特に、図21に示した従来のスキャンテスト回路では、図2のシングルサイクルパス3(始点SFF202から終点SFF204)をテストする場合、実動作速度でのテストができないという問題があったが、実施例1では、上記したように、実動作速度でのテストが可能である。また、マルチサイクルパスに対しては固定値をキャプチャすることで不確定なデータをキャプチャする問題を回避している。
【0075】
以上により、実施例1によるスキャンテスト回路を用いたスキャンテスト方法によれば、マルチサイクルパスに対しては、マルチサイクルテストモードで実動作速度でのテストが可能であり、シングルサイクルパスに対しは、シングルサイクルテストモードで実動作速度でのテストが可能であるという効果が得られる。
【0076】
また、図21に示す従来のスキャンテスト回路では、第1の記憶素子11は図22(a)の回路、第2の記憶素子21は図22(b)の回路、第3の記憶素子31は図22(e)の回路が使用されており、場所によりタイプの異なるSFFを使用せざるを得ず、複雑な構成になっている。一方、実施例1のスキャンテスト回路は、全てのSFFに対し、図22(e)の回路を使用しており、図21に示す従来のスキャンテスト回路に比べて、簡素な構成にできるという効果が得られる。
【0077】
また、実施例1によるスキャンテスト回路に使用している出力固定回路は、簡単な構成の回路であり、チップサイズの増大につながることはない。また、出力固定回路の挿入は、図4のフローチャートで示した設計方法により、自動的に実行することが可能であり、スキャンテスト回路を設計するユーザの負荷にはならない。
【実施例2】
【0078】
次に、本発明の実施例2に係るスキャンテスト回路について、必要に応じて図面を参照しながら説明を行う。図9は、本発明の実施例2に係るスキャンテスト回路であり、冗長な出力固定回路の削除を行った後のスキャンテスト回路を示している。図9において、モード選択部980、圧縮器(MISR)982、スキャンイネーブル生成部984、ランダムパターン発生器(PRPG)986、クロック周波数変換部988については、実施例1と同様の機能であるため、説明は省略する。また、始点SFF、終点SFFについては、始点SFFが2つから3つに増えた点を除けば(実施例2では始点SFFは901、902、906の3つで構成されている)、それ以外は同じであるため、説明は省略する。
【0079】
図10は、図9のスキャンテスト回路において、論理回路941、始点SFF(901、902、906)、及び終点SFF(903、904、905)のみを示している。また、図10は、実施例1に係るスキャンテスト回路の設計方法で、論理回路941内に出力固定回路(931、932、933)を挿入した状態を示している。実施例2に係るスキャンテスト回路の設計方法は、実施例1に係るスキャンテスト回路の設計方法に対して、冗長な出力固定回路を削除する機能を追加している。
【0080】
図10に示す論理回路941内において、始点SFF901のデータ出力qから論理回路941内の分岐点911を通って終点SFF903のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス5という)である。また、始点SFF901のデータ出力qから論理回路941内の分岐点911、合流点921、922を通って終点SFF904のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの2サイクル分必要なマルチサイクルパス(以降、マルチサイクルパス6という)である。また、始点SFF902のデータ出力qから論理回路941内の合流点921、922を通って終点SFF904のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス7という)である。また、始点SFF906のデータ出力qから論理回路941内の分岐点912、合流点922を通って終点SFF904のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス8という)である。また、始点SFF906のデータ出力qから論理回路941内の分岐点912を通って終点SFF905のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの2サイクル分必要なマルチサイクルパス(以降、マルチサイクルパス9という)である。
【0081】
図11は、実施例2に係るスキャンテスト回路の設計方法を示すフローチャートである。図11において、ステップS16までは、図4に示すフローチャートと同じであり、説明は省略する。ステップS16までにより、図10に示すように、出力固定回路(931、932)が挿入された状態になっている。ステップS16の次に、ステップS21に進む。ここで、論理回路941内の出力固定回路を抽出する(ステップS21)。具体的には、ステップS15で挿入した出力固定回路は分かっているので、それにより、図12に示す出力固定回路を抽出した情報を得ることができる。図12は、ステップS15で挿入した3つの出力固定回路(931、932、933)を、始点SFF、終点SFF、及びサイクル数の情報で対応付けた表になっている。図12に示す表は、始点SFF901から終点SFF904の経路に、出力固定回路931、932があり、始点SFF902から終点SFF904の経路に、出力固定回路932があり、始点SFF906から終点SFF905の経路に、出力固定回路933があることを示している。
【0082】
図11のフローチャートに戻り、説明を続ける。ステップS21で抽出した出力固定回路に対して、冗長出力固定回路を削除する(ステップS22)。具体的には、図12に示す表において、同一経路上に、複数の出力固定回路が存在していないかどうかを調べる。図12の表を参照すると、始点SFF901から終点SFF904の経路に2つの出力固定回路931、932が存在していることを検出する。上記2つの出力固定回路のうち、出力固定回路932は、別の経路(始点SFF902から終点SFF904の経路)にも存在するので、削除することができない。一方、出力固定回路931は、始点SFF901から終点SFF904の経路にのみ存在するので、削除することができると判定される。そして、出力固定回路931は削除される。図9は、冗長出力固定回路931が削除された回路図である。
【0083】
実施例2に係るスキャンテスト回路の設計方法によれば、出力固定回路が複数存在する経路を抽出し、冗長な出力固定回路を削除することにより、無駄な回路規模の増加を回避することができるという効果が得られる。
【実施例3】
【0084】
次に、本発明の実施例3に係るスキャンテスト回路について、必要に応じて図面を参照しながら説明を行う。図13は、実施例3に係るスキャンテスト回路の回路図である。実施例3による図13のスキャンテスト回路が、実施例1による図1のスキャンテスト回路と違う点は、論理回路211内に挿入する出力固定回路のみである。尚、図13において、図1と実質的に同じ機能を有する構成要素に対しては、同じ参照符号を付与している。
【0085】
図14は、実施例3に係るスキャンテスト回路の設計方法を示すフローチャートである。図14において、ステップS16までは、実施例1と同じである。ステップS16までにより、実施例1と同様に、図1に示す回路が得られた状態になっている。そして、ステップS16の後、ステップS31に進む。図1の論理回路211に対して、タイミング解析を行う(ステップS31)。次に、タイミングMETパスの出力固定回路を削除する(ステップS32)。
【0086】
ここで、ステップS32について、以下に、より詳細に説明する。図1の回路において、マルチテストイネーブル信号(mcte)273を「1」にしてタイミング解析を行い、出力固定回路を挿入したマルチサイクルパスが、シングルサイクルテストモードのレートでデータを受け渡す場合のタイミングエラーの有無を抽出する。その抽出した結果を図15に示す。図15において、出力固定回路271が挿入された始点SFF201から終点SFF204の経路は、シングルサイクルテストモードのレートで、タイミングエラーが有ることを示している。また、出力固定回路272が挿入された始点SFF202から終点SFF205の経路は、シングルサイクルテストモードのレートで、タイミングエラーが無いことを示している。
【0087】
上記のタイミングエラーの解析により、始点SFF202から終点SFF205の経路は、シングルサイクルでタイミングを満たす(すなわち、タイミングMETパスである)ため、出力固定回路272を削除することができると判定され、出力固定回路272は削除される。図13は、出力固定回路272が削除された回路を示している。
【0088】
実施例3に係るスキャンテスト回路の設計方法によれば、マルチサイクルパス中に挿入した出力固定回路を通る経路がシングルサイクルで動作することが可能であれば、出力固定回路を削除することにより、無駄な回路規模の増加を回避することができるという効果が得られる。
【実施例4】
【0089】
次に、本発明の実施例4に係るスキャンテスト回路について、必要に応じて図面を参照しながら説明を行う。図16は、実施例4に係るスキャンテスト回路の回路図である。図16において、モード選択部1580、圧縮器(MISR)1582、スキャンイネーブル生成部1584、ランダムパターン発生器(PRPG)1586、クロック周期変換部1588については、実施例1と同様の機能を有しているため、説明は省略する。
【0090】
図17は、図16のスキャンテスト回路において、論理回路1511、始点SFF1501、及び終点SFF1502のみを示している。図17において、論理回路1511内において、始点SFF1501のデータ出力qから論理回路1511内の分岐点1521、経路1531、合流点1541を通って終点SFF1502のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス10という)である。また、始点SFF1501のデータ出力qから論理回路1511内の分岐点1521、経路1532、合流点1541を通って終点SFF1502のデータ入力dに到達する経路は、そのデータ転送に、システムクロックレートの2サイクル分必要なマルチサイクルパス(以降、マルチサイクルパス11という)である。上記した論理回路1511に対して、実施例1で示したスキャンテスト回路の設計方法を、以下に示すように適用する。
【0091】
図4のフローチャートのステップS12により、論理回路1511内のマルチサイクルパスを抽出する。図18は、抽出したマルチサイクルパス及びシングルサイクルパスを示している。始点SFF1501から終点SFF1502には、シングルサイクルパス(シングルサイクルパス10)と、マルチサイクルパス(マルチサイクルパス11)が存在していることを示している。
【0092】
次に図4のフローチャートのステップS13により、異なるサイクル数のパスに分岐する分岐点、及び異なるサイクル数のパスが合流する合流点を抽出する。ここで、図17の論理回路1511において、マルチサイクルパスのマルチサイクル数は2のみであるため、シングルサイクルパスとマルチサイクル数が2のマルチサイクルパスに分岐する分岐点、及び、シングルサイクルパスとマルチサイクル数が2のマルチサイクルパスが合流する合流点を抽出する。その結果、分岐点1521、合流点1541が抽出される。次に図4のフローチャートのステップS14により、図19(A)に示す分岐点と終点SFFの対応テーブルと、図20(A)に示す合流点と始点SFFの対応テーブルが生成される。図19(A)は、論理回路1511において、1つの分岐点1521が抽出されたことを示している。まず、分岐点1521は、分岐数が2である。分岐点1521の入力側の始点SFFは1501であり、分岐点1521の出力側の2つの終点SFFは、どちらも1502である。また、始点SFF1501から終点SFF1502の1つのパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス10)であり、始点SFF1501から終点SFF1502のもう1つのパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス11)であることを示している。分岐点1521と分岐点1521を含むマルチサイクルパスに接続した終点SFF1502間の経路が、出力固定回路の第1の挿入候補であり、その出力固定回路挿入フラグは「0」に初期化される。
【0093】
また、図20(A)は、論理回路1511において、1つの合流点1541が抽出されたことを示している。合流点1541は、合流数が2である。合流点1541における2つの入力側の始点SFFは、どちらも1501であり、合流点の出力側の終点SFFは1502である。また、始点SFF1501から終点SFF1502の1つのパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス10)であり、始点SFF1501から終点SFF1502のもう1つのパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス11)であることを示している。合流点1541と合流点1541を含むマルチサイクルパスに接続した始点SFF1501間の経路が、出力固定回路の第2の挿入候補であり、その出力固定回路挿入フラグは0に初期化される。
【0094】
次に、図4のステップS14、S15、S17、S16により、第1の挿入候補の位置に、出力固定回路1533が挿入される。出力固定回路1533が挿入された後、分岐点と終点SFFの対応テーブルは、図19(B)に示すように、第1の挿入候補の出力固定回路挿入フラグは、挿入が行われたことを示す「1」に書き換わる。また、第2の挿入候補は、図20(B)に示すように、第2の挿入候補の経路上に、既に出力固定回路1533が挿入されているので、新たな挿入は行われない。そして、第2の挿入候補の出力固定回路挿入フラグは、挿入は行われずに、処理済みであることを示す「2」に書き換わる。
【0095】
図16は、出力固定回路1533が挿入されたスキャンテスト回路を示している。図16に示すスキャンテスト回路において、テストを行う場合のテスト方法について以下に説明する。まず、モード選択部1580で、マルチサイクルテストモードが選択された場合、マルチサイクルテストイネーブル信号(mcte)1573は「0」が出力される。この場合、クロック周波数変換部1588により、実動作のクロック周波数の1/2のクロック周波数で、全てのSFF(1501、1502)及び論理回路1511は動作する。出力固定回路1533の入力端子dに入力されたデータは、出力端子qからそのまま出力される。終点SFF1502は、経路1531(シングルサイクルパス10)を通ったデータを、実動作より遅いシステムクロックの2サイクルでデータをキャプチャする。また、終点SFF1502は、経路1532(マルチサイクルパス11)を通ったデータを、実動作と同じシステムクロックの2サイクルでデータをキャプチャする。
【0096】
次に、モード選択部1580で、シングルサイクルテストモードが選択された場合、マルチサイクルテストイネーブル信号(mcte)1573は「1」が出力される。この場合、クロック周波数変換部1588により、実動作のクロック周波数と同じクロック周波数で、全てのSFF(1501、1502)及び論理回路1511は動作する。終点SFF1502は、経路1531(シングルサイクルパス10)を通ったデータを、実動作と同じシステムクロックの1サイクルでキャプチャする。また、終点SFF1502は、経路1532(マルチサイクルパス11)を通ったデータに対して、出力固定回路1533によって固定されたデータをキャプチャする。ここで、図21に示す従来技術のスキャンテスト回路では、経路1531(シングルサイクルパス10)を通ったデータを、実動作と同じシステムクロックの1サイクルでキャプチャすることはできない。
【0097】
以上説明したように、本発明のスキャンテスト回路によるスキャンテスト方法によれば、同一の始点SFFと同一の終点SFFに複数の経路がある場合において、経路毎にサイクル数を抽出して、出力固定回路を挿入することによって、マルチサイクルパスに対しては、マルチサイクルテストモードで実動作速度でのテストが可能であり、シングルサイクルパスに対しては、シングルサイクルテストモードで実動作速度でのテストが可能であるという効果が得られる。
【0098】
[比較例]
ここで、比較例として、特許文献1に記載された半導体集積回路のスキャンテスト方法について、以下に詳細に説明する。図21は従来のマルチサイクルパスを含む半導体集積回路であり、図22(a)〜(c)に示すSFFを用いてキャプチャ、ホールド、及びシフトの動作を実現している。例えば、図22(a)のSFF700は、ディレイフリップフロップ(DFF)710のデータ入力に接続されるセレクタ720と、このセレクタ720に接続されたセレクタ730とを有している。また、DFF710は、クロック入力CKと、データ出力Qを有している。セレクタ720は、入力データd又はセレクタ730の出力信号733をスキャンイネーブル信号seに応じて選択する。セレクタ730は、スキャン入力信号si又はDFF710の出力信号713をクロックイネーブル信号ceに応じて選択する。従って、クロックイネーブル信号ceの値によって、SFF700がシフトされるかホールドされるかが決められる。クロックイネーブル信号ceを用いてSFFの値をホールドさせることで、テスト時のSFFの動作を実動作でのクロックレートよりも落とすことができる。また、図22(b)、(c)に示すSFF740、750を用いることによっても、図22(a)に示すSFF700と同様の動作を実現することができる。尚、図22(d)は、図22(a)〜(c)のSFFを表すのに用いられる。また、図22(e)は、クロックイネーブル信号を持たないSFFを表す。
【0099】
以下、特許文献1に記載された従来技術の半導体集積回路の動作及びそのテスト方法について説明する。従来技術による半導体集積回路は、マルチサイクルパスを含む半導体集積回路であって、この半導体集積回路は、クロック信号のエッジで動作し、データ入力とデータ出力を有するスキャン可能な第1の記憶素子と、その第1の記憶素子のデータから、システムクロックレートの1サイクルより長いマルチサイクルで動作する論理回路中のパスを通ったデータをデータ入力として受け入れ、クロック信号のエッジで動作し、データ出力からデータを出力する少なくとも1個以上のスキャン可能な第2の記憶素子と、第1の記憶素子の出力から、システムクロックレートの1サイクルで動作する論理回路中のシングルサイクルパスを通ったデータをデータ入力として受け取り、クロック信号のエッジで動作し、データ出力からデータを出力する少なくとも1個以上のスキャン可能な第3の記憶素子と、を備える。
【0100】
そのテスト方法には、マルチサイクルテストステップと、シングルサイクルテストステップが含まれる。マルチサイクルテストステップは、第1、第2、第3の記憶素子のデータ入力と、他のスキャン可能な記憶素子のデータ出力を接続してスキャンチェーンを構成し、スキャンチェーン可能な記憶素子に対して、テストクロックレートで検査パターンをシリアルにシフトするスキャンステップと、第1の記憶素子に対して、第1の記憶素子のデータ出力から、第2の記憶素子のデータ入力までのマルチサイクル数と同一又はそれ以上のサイクル数の間、キャプチャ動作の前又はスキャンステップ中にデータをホールドするマルチサイクルホールドステップと、第1、第2、第3の記憶素子のデータ入力を、論理回路に接続し、その論理回路に対する検査パターンの応答を、記憶素子のデータ入力から取り込むマルチサイクルキャプチャステップと、第1、第2、第3の記憶素子のデータ入力と、他のスキャン可能な記憶素子のデータ出力を接続してスキャンチェーンを構成し、記憶素子からデータをシフトアウトするシフトアウトステップと、を含む。
【0101】
一方、シングルサイクルテストステップは、スキャンステップと、第1、第2、第3の記憶素子のデータ入力を、論理回路に接続し、第2の記憶素子については、データをホールドし、第2の記憶素子を除く記憶素子については、論理回路に対する検査パターンの応答を、記憶素子のデータ入力から取り込むシングルサイクルキャプチャステップと、シフトアウトステップと、を含む。
【0102】
次に、図21の従来のスキャンテスト回路の動作について、図24に示す波形図を参照しながら説明する。図24の左側に示すマルチサイクルテストモードについて説明する。時刻tm0では、信号se1、se2が「1」で、ce1が「1」であるため、第1の記憶素子11はシフト状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態となり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【0103】
時刻tm1では、信号se1、se2が「1」で、ce1が「0」であるため、第1の記憶素子11はホールド状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態となり、時刻tm0でシフトされた第1の記憶素子11の値がホールドされ、記憶素子21および31は、スキャン入力からの値がスキャン入力データとしてシフトされる。
【0104】
時刻tm2では、信号se1、se2が「0」で、信号ce1が「1」であるため、第1の記憶素子11はキャプチャ状態、第2の記憶素子21はキャプチャ状態、第3の記憶素子はキャプチャ状態となり、データ入力からの値を取り込む。
【0105】
第2のスキャン可能な記憶素子21では、時刻tm0で値が確定した第1の記憶素子11の値を、その2クロック後の時刻tm2で取り込むため、実動作での2サイクルのマルチサイクルと同一のタイミングで、データを取り込むことができる。
【0106】
第3の記憶素子31では、時刻tm0で値が確定した第1の記憶素子11の値を、その2クロック後のtm2で取り込むため、実動作での1サイクルのシングルサイクルとは異なるタイミングでデータを取り込むことになる。
【0107】
時刻tm3では、信号se1、se2が「1」で、信号ce1が「0」であるため、第1の記憶素子11はホールド状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態となり、時刻tm2でキャプチャされた第1の記憶素子11の値はホールドされ、記憶素子21および31は時刻tm2でキャプチャした値をシフトアウトする。
【0108】
図24の右側に示すシングルサイクルテストモードについて説明する。時刻ts0では、信号se1、se2が「1」で、信号ce1が「1」であるため、第1の記憶素子11はシフト状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態となり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【0109】
時刻ts1では、信号se1、se2が「1」で、信号ce1が「0」であるが、信号mcteが「1」のために第1の記憶素子11のce入力には「1」が入力される。そのため、第1の記憶素子11はシフト状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態となり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【0110】
時刻ts2では、信号se1、se2が「0」で、信号ce1が「1」であるが、信号mcteが「1」のために第2の記憶素子21のce入力には「0」が入力される。そのため、第1の記憶素子11はキャプチャ状態、第2の記憶素子21はホールド状態、第3の記憶素子31はキャプチャ状態となり、第1および第3の記憶素子11および31は、そのデータ入力から値を取り込み、第2の記憶素子21はデータをホールドする。
【0111】
第2の記憶素子21では、時刻ts1で値が確定した第1の記憶素子11の値を、その1クロック後の時刻ts2で取り込むと、実動作では2サイクルのマルチサイクルのために、正しくデータが取り込めないが、データをホールドすることで、第1の記憶素子11の値を取り込まないようにする。
【0112】
第3の記憶素子31では、時刻ts1で値が確定した第1の記憶素子11の値を、その1クロック後の時刻ts2で取り込むため、実動作での1サイクルのシングルサイクルと同一のタイミングでデータを取り込むことができる。
【0113】
時刻ts3では、信号se1、se2が「1」で、信号ce1が「0」であるため、第1の記憶素子11はシフト状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態であり、時刻ts2でキャプチャした値をシフトアウトする。
【0114】
以上説明したように、図21に示す論理回路40をテストする場合には、第1の記憶素子11から第2の記憶素子21までのマルチサイクルパスに対しては、実動作速度と同じマルチサイクルテストモードでテストを行い、第1の記憶素子11から第3の記憶素子31までのシングルサイクルパスに対しては、実動作速度と同じシングルサイクルテストモードでテストを行い、シングルサイクルテストモードで第2の記憶素子21はキャプチャしないようにすることで、問題なくテストを行うことが可能である。
【0115】
次に、図23は、従来技術の回路構成の一例である。図23に示す論理回路211は、前述したように、もし、シングルサイクルパス91(始点SFF2201から終点SFF2203)、マルチサイクルパス92(始点SFF2201から終点SFF2204)の2つのパスのみであった場合には、図21の論理回路40と同様になり、問題は生じない。しかしながら、シングルサイクルパス93(始点SFF2202から終点SFF2204)が加わると、シングルサイクルパス93をシングルサイクルテストモードでテストしようとした場合、終点SFF2204は、キャプチャされない。従来技術で、このようにキャプチャしないようにしたのは、合流点231にマルチサイクルパス92からデータが入ってきて、終点SFF2204の入力dで確定するまでに、システムクロックの2サイクル必要であり、1サイクルでは、不確定なためである。このように、図23に示す論理回路211のような構成の場合、従来技術では、シングルサイクルパスに対し、実動作速度でのテストができないという問題がある。
【0116】
一方、本発明の実施例1〜4によるスキャンテスト回路の設計方法で、スキャンテスト回路を設計し、各々の実施例で開示したスキャンテスト方法でテストを行うことにより、シングルマルチサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能となる効果が得られる。
【産業上の利用可能性】
【0117】
本発明は、スキャンパスを組み込む半導体集積回路のスキャンテスト回路に適用可能である。
【0118】
なお、本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0119】
11:第1の記憶素子
21:第2の記憶素子
31:第3の記憶素子
40、211、941、1511:論理回路
50、2251:OR回路
60、2252:インバータ
100:BISTコントローラ
101:テストアクセスポート(TAP)
102:制御部
103、284、984、1584:スキャンイネーブル生成部
104:クロックイネーブル生成部
105、286、986、1586:ランダムパターン発生器(PRPG)
106、282、982、1582:圧縮器(MISR)
107:マルチサイクルテストイネーブル生成部
201、202、901、902、906、1501、2201、2202:始点SFF
203、204、205、903、904、905、1502、2203、2204、2205:終点SFF
221、222、911、912、1521:分岐点
231、921、922、1541:合流点
271、272、330、931、932、933、1533:出力固定回路
273、973、1573、2242:マルチサイクルテストイネーブル信号(mcte)
280、980、1580:モード選択部
288、988、1588:クロック周波数変換部
332、720、730:セレクタ
334:固定値
700、740、750:スキャンフリップフロップ(SFF)
710:ディレイフリップフロック(DFF)
713:DFF710の出力信号
733:セレクタ730の出力信号
1531、1532:経路
2241:クロックイネーブル信号(ce1)
【技術分野】
【0001】
本発明は、半導体集積回路のスキャンテスト回路の設計方法、スキャンテスト回路、およびスキャンテスト方法に関する。特に、本発明は、マルチサイクルパスを有する半導体集積回路において、シングルサイクルテスト及びマルチサイクルテストを行う半導体集積回路のスキャンテスト回路の設計方法、スキャンテスト回路、およびスキャンテスト方法に関する。
【背景技術】
【0002】
半導体集積回路のテスト容易化のために最も広く使用される技術の一つが、スキャンパスを半導体集積回路に組み込むスキャン設計技術である。具体的には、論理回路中のフリップフロップのデータ入力にセレクタを付加し、そのフリップフロップを直列に接続してスキャンパスを構成する。本明細書では、以降、上記したように、セレクタを付加してスキャンパスを構成したフリップフロップを「スキャンフリップフロップ」という。また、スキャンフリップフロップをSFFと表記することもある。上記したスキャンパスは巨大なシフトレジスタとして機能する。そして、論理回路のテストの際には、スキャンパスを利用して論理回路中のスキャンフリップフロップに直接に値を書き込んで、論理回路の動作を検証する。
【0003】
スキャンパスを用いたスキャンテスト方法において重要な点の一つが実使用時の動作速度と同じ動作速度でのテストを実現することである。これは、半導体集積回路には、論理的には正しく回路が構成されているにもかかわらず、回路の遅延が不適切である不良が存在するからである。このような不良は実動作速度によるテストによってのみ検出することが可能である。
【0004】
従って、マルチサイクルパスを含む論理回路では、マルチサイクルパスはマルチサイクルパスの実動作速度でテストを行い、シングルサイクルパスはシングルサイクルパスの実動作速度でテストを行う必要がある。
【0005】
特許文献1には、マルチサイクルパスとシングルサイクルパスを含む論理回路において、マルチサイクルパスに対してマルチサイクルでの実動作検査を行い、シングルサイクルパスに対してはシングルサイクルでの実動作検査を行うことが可能なテスト方法が開示されている。
【0006】
図21は、特許文献1に記載されたマルチサイクルパスを含む半導体集積回路である。図21における論理回路40において、第1の記憶素子11の出力qから第2の記憶素子21の入力dまでの経路は、マルチサイクルパスである。また、第1の記憶素子11の出力qから第3の記憶素子31の入力dまでの経路は、シングルサイクルパスである。
【0007】
特許文献1に開示されたテスト方法は、マルチサイクルテストステップとシングルサイクルテストステップとを含んでいる。マルチサイクルテストステップでは、データを出す側の第1の記憶素子11でデータをホールドして、マルチサイクルパスに対し実動作速度でのテストを行う。一方、シングルサイクルテストステップでは、シングルサイクルパスに対し実動作速度でのテストを行い、マルチサイクルパスに関してはデータをキャプチャさせない構成としている。このようなテスト方法により、第1の記憶素子11の出力qから第2の記憶素子21の入力dまでのマルチサイクルパス、及び、第1の記憶素子11の出力qから第3の記憶素子31の入力dまでのシングルサイクルパスに対して、各々、実動作でのテストを可能にしている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2005−201821号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
以下の分析は、本発明により与えられる。
【0010】
特許文献1に記載されたテスト方法は、図21の論理回路40のマルチサイクルパス及びシングルサイクルパスに対しては、各々、実動作速度でのテストが可能である。しかしながら、このテスト方法を、図23に示す論理回路211に適用した場合、以下に示す問題が生ずる。図23において、SFF2201の出力qから分岐点221を通ってSFF2203の入力dまでの経路はシングルサイクルパス(シングルサイクルパス91とする)である。また、SFF2201の出力qから分岐点221、合流点231を通ってSFF2204の入力dまでの経路はマルチサイクルパス(マルチサイクルパス92とする)である。もし、論理回路211が上記のシングルサイクルパス91及びマルチサイクルパス92のみを有しているとした場合には、論理回路211は、図21の論理回路40と同じ構成になるので、特許文献1に記載された方法により、実動作速度でのシングルサイクルパス、及びマルチサイクルパスのテストが可能である。
【0011】
次に、図23の論理回路211において、シングルサイクルパス91、マルチサイクルパス92の他に、さらに、SFF2202の出力qから分岐点222、合流点231を通ってSFF2204の入力dまでを経路とするシングルサイクルパス(シングルサイクルパス93とする)が追加された場合を考えてみる。ここで、特許文献1に記載されたテスト方法を適用した場合、まず、マルチサイクルテストステップでは、SFF2203は実動作よりも遅い2サイクルでデータを取り込み、SFF2204は実動作と同じ2サイクルでデータを取り込む。一方、シングルサイクルテストステップでは、SFF2203は実動作と同じ1サイクルでデータを取り込むが、SFF2204は、「ホールド」状態となり、データを取り込まない。
【0012】
このように、シングルサイクルパス93は、マルチサイクルテストモード時には実動作よりも遅い2サイクルでのテストとなり、シングルサイクルテストモード時にはデータの取り込みが行われない。従って、シングルサイクルパス93は、実動作速度でのテストを行うことができないという問題が生じる。また、図23には、SFF2202の出力qから分岐点222を通ってSFF2205の入力dまでを経路とするマルチサイクルパス(マルチサイクルパス94とする)を含んでいるが、このマルチサイクルパス94に対しては、特許文献1に記載されたテスト方法で、マルチサイクルパスの動作速度でのテストが可能である。
【0013】
以上説明したように、特許文献1に記載された方法では、一般に、受ける側のSFFがシングルサイクルパスとマルチサイクルパスの両方を含んでいる場合(図23のSFF2204の場合)には、シングルサイクルパスの実動作速度でのテストができないという問題がある。従って、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、上記した問題を解消し、実動作速度でのシングルサイクルテストを可能にする方法が望まれている。
【課題を解決するための手段】
【0014】
本発明の第1の視点による半導体集積回路のスキャンテスト回路の設計方法は、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路の設計方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、を含む。
【0015】
本発明の第2の視点による半導体集積回路のスキャンテスト回路は、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路であって、テスト対象の論理回路に対して、テストデータを供給する始点スキャンフリップフロップと、前記始点スキャンフリップフロップの出力から、前記論理回路内の経路を通ったデータを受け取る終点スキャンフリップフロップと、前記論理回路内の異なるサイクル数のパスに分岐する分岐点と前記分岐点を含むマルチサイクルパスの終点スキャンフリップフロップ間の経路上、及び、前記論理回路内の異なるサイクル数のパスが合流する合流点と前記合流点を含むマルチサイクルパスの始点スキャンフリップフロップ間の経路上に挿入された出力固定回路と、マルチサイクルテストモードと、シングルサイクルテストモードのいずれかを選択するモード選択部と、を備え、前記モード選択部が前記マルチサイクルテストモードを選択している場合には、前記出力固定回路は入力データをそのまま出力し、前記モード選択部が前記シングルサイクルテストモードを選択している場合には、前記出力固定回路は任意の一定値を出力する。
【0016】
本発明の第3の視点による半導体集積回路のスキャンテスト方法は、マルチサイクルパスを含む半導体集積回路のテスト方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、シングルサイクルテストモードと、マルチサイクルテストモードのいずれかを選択するステップと、前記シングルサイクルテストモードが選択された場合に実施されるシングルサイクルテストステップと、前記マルチサイクルテストモードが選択された場合に実施されるマルチサイクルテストステップと、を含み、前記シングルサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するシングルサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作と同じクロック周波数で、前記論理回路による前記テストデータの応答をキャプチャするシングルサイクルキャプチャステップと、前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すシングルサイクルシフトアウトステップと、を含み、前記マルチサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するマルチサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作のクロック周波数の1/Nのクロック周波数(ここで、Nはマルチサイクル数)で、前記論理回路による前記テストデータの応答をキャプチャするマルチサイクルキャプチャステップと、前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すマルチサイクルシフトアウトステップと、を含む。
【発明の効果】
【0017】
本発明の半導体集積回路のスキャンテスト回路の設計方法によれば、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能なスキャンテスト回路の設計方法を提供することができる。
【0018】
本発明の半導体集積回路のスキャンテスト回路によれば、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能なスキャンテスト回路を提供することができる。
【0019】
本発明の半導体集積回路のスキャンテスト方法によれば、シングルサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能なスキャンテスト方法を提供することができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施例1に係るスキャンテスト回路の回路図である。
【図2】本発明の実施例1に係るスキャンテスト回路を説明するための回路図である。
【図3】本発明の実施例1における出力固定回路のブロック図である。
【図4】本発明の実施例1に係るスキャンテスト回路の設計方法を示すフローチャートである。
【図5】本発明の実施例1に係るスキャンテスト回路の設計方法において、始点SFF及び終点SFFを抽出した情報の一例である。
【図6】本発明の実施例1に係るスキャンテスト回路の設計方法において、分岐点を抽出した情報の一例である。
【図7】本発明の実施例1に係るスキャンテスト回路の設計方法において、合流点を抽出した情報の一例である。
【図8】図1に示したスキャンテスト回路の波形図である。
【図9】本発明の実施例2に係るスキャンテスト回路の回路図である。
【図10】本発明の実施例2に係るスキャンテスト回路を説明するための回路図である。
【図11】本発明の実施例2に係るスキャンテスト回路の設計方法を示すフローチャートである。
【図12】本発明の実施例2に係るスキャンテスト回路の設計方法において、出力固定回路を抽出した情報の一例である。
【図13】本発明の実施例3に係るスキャンテスト回路である。
【図14】本発明の実施例3に係るスキャンテスト回路の設計方法を示すフローチャートである。
【図15】本発明の実施例3に係るスキャンテスト回路の設計方法におけるタイミング解析結果を示す情報の一例である。
【図16】本発明の実施例4に係るスキャンテスト回路である。
【図17】本発明の実施例4に係るスキャンテスト回路を説明するための回路図である。
【図18】本発明の実施例4に係るスキャンテスト回路の設計方法において、始点SFF及び終点SFFを抽出した情報の一例である。
【図19】本発明の実施例4に係るスキャンテスト回路の設計方法において、分岐点を抽出した情報の一例である。
【図20】本発明の実施例4に係るスキャンテスト回路の設計方法において、合流点を抽出した情報の一例である。
【図21】従来の半導体集積回路の構成を示すブロック図である。
【図22】シフト状態、キャプチャ状態、ホールド状態を有するSFF回路を示す図である。
【図23】従来のスキャンテスト回路の一例である。
【図24】図21に示したスキャンテスト回路の波形図である。
【発明を実施するための形態】
【0021】
本発明の実施形態について、必要に応じて図面を参照して説明する。なお、実施形態の説明において引用する図面及び図面の符号は実施形態の一例として示すものであり、それにより本発明による実施形態のバリエーションを制限するものではない。
【0022】
本発明による第1の実施形態の半導体集積回路のスキャンテスト回路の設計方法は、図4に示すように、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路の設計方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップS11と、タイミング解析に基づいて、論理回路内のマルチサイクルパスを抽出するステップS12と、論理回路内の異なるサイクル数のパスに分岐する分岐点と、論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップS13と、分岐点を含むマルチサイクルパスの分岐点より出力側の経路上と、合流点を含むマルチサイクルパスの合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップS15と、を含む。
【0023】
本発明による第2の実施形態の半導体集積回路のスキャンテスト回路は、図1に示すように、マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路であって、テスト対象の論理回路211に対して、テストデータを供給する始点スキャンフリップフロップ(201、202)と、始点スキャンフリップフロップ(201、202)の出力から、論理回路211内の経路を通ったデータを受け取る終点スキャンフリップフロップ(203、204、205)と、論理回路211内の異なるサイクル数のパスに分岐する分岐点(221、222)と分岐点(221、222)を含むマルチサイクルパスの終点スキャンフリップフロップ間の経路上、及び、論理回路内211の異なるサイクル数のパスが合流する合流点231と合流点231を含むマルチサイクルパスの始点スキャンフリップフロップ間の経路上に挿入された出力固定回路(271、272)と、マルチサイクルテストモードと、シングルサイクルテストモードのいずれかを選択するモード選択部280と、を備え、モード選択部280がマルチサイクルテストモードを選択している場合には、出力固定回路(271、272)は入力データをそのまま出力し、モード選択部280がシングルサイクルテストモードを選択している場合には、出力固定回路(271、272)は任意の一定値を出力する。
【0024】
本発明による第3の実施形態の半導体集積回路のスキャンテスト方法は、図4に示すように、マルチサイクルパスを含む半導体集積回路のテスト方法であって、実動作モードでテスト対象の論理回路のタイミング解析を行うステップS11と、タイミング解析に基づいて、論理回路内のマルチサイクルパスを抽出するステップS12と、論理回路内の異なるサイクル数のパスに分岐する分岐点と、論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップS13と、分岐点を含むマルチサイクルパスの分岐点より出力側の経路上と、合流点を含むマルチサイクルパスの合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップS15と、シングルサイクルテストモードと、マルチサイクルテストモードのいずれかを選択するステップと、シングルサイクルテストモードが選択された場合に実施されるシングルサイクルテストステップと、マルチサイクルテストモードが選択された場合に実施されるマルチサイクルテストステップと、を含み、シングルサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するシングルサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を論理回路に接続し、実動作と同じクロック周波数で、論理回路によるテストデータの応答をキャプチャするシングルサイクルキャプチャステップと、終点スキャンフリップフロップによりスキャンチェーンを構成し、キャプチャしたデータを取り出すシングルサイクルシフトアウトステップと、を含み、マルチサイクルテストステップは、始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するマルチサイクルスキャンステップと、終点スキャンフリップフロップのデータ入力を論理回路に接続し、実動作のクロック周波数の1/Nのクロック周波数(ここで、Nはマルチサイクル数)で、論理回路による前記テストデータの応答をキャプチャするマルチサイクルキャプチャステップと、終点スキャンフリップフロップによりスキャンチェーンを構成し、キャプチャしたデータを取り出すマルチサイクルシフトアウトステップと、を含む。
【0025】
以下、実施例について、図面を参照して詳しく説明する。
【実施例1】
【0026】
[実施例1の構成]
図1は、本発明の実施例1に係るスキャンテスト回路の回路図であり、論理回路211に対して、実動作速度でのシングルサイクルパスのテストを可能にする対策を施した回路を示している。また、図2は、図1に示すスキャンテスト回路において対策を適用する前のスキャンテスト回路であり、論理回路211、始点SFF(201、202)、終点SFF(203、204、205)のみを示したものである。ここで、SFF201、202は、論理回路211に対してテストデータをシフト入力する「始点スキャンフリップフロップ」(以降、始点SFFという)である。一方、SFF203、204、205は、論理回路211によるテストデータの応答をキャプチャし、キャプチャした結果をシフトアウトする「終点スキャンフリップフロップ」(以降、終点SFFという)である。実施例1において、全ての始点SFF、終点SFFは、図22(e)に記載された回路が用いられる。
【0027】
図2に示す論理回路211内において、始点SFF201のデータ出力qから論理回路211内の分岐点221を通って終点SFF203のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス1という)である。また、始点SFF201のデータ出力qから論理回路211内の分岐点221、合流点231を通って終点SFF204のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの2サイクル分必要なマルチサイクルパス(以降、マルチサイクルパス2という)である。また、始点SFF202のデータ出力qから論理回路211内の分岐点222、合流点231を通って終点SFF204のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス3という)である。また、始点SFF202のデータ出力qから論理回路211内の分岐点222を通って終点SFF205のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの2サイクル分必要なマルチサイクルパス(以降、マルチサイクルパス4という)である。
【0028】
次に、図3は、実施例1において、図2の論理回路211内に挿入する出力固定回路330を示している。図3において、mは選択信号であり、選択信号mが「0」の場合は、入力端子dに入力されたデータがそのまま出力端子qから出力され、選択信号mが「1」の場合は、入力端子dに入力されるデータの値によらず、「0」または「1」の任意の固定値334が出力端子qから出力される。図3の右側に示した表は、上記した入出力関係を示している。ここで、固定値334を「0」、「1」のいずれにするかは、出力固定回路330を挿入するときに設定すればよい。
【0029】
また、図3は出力固定回路の一例であり、選択信号mが「1」の場合に、データパスの値を保持するフリップフロップで構成することも可能である。
【0030】
次に、図1は、図2に示す論理回路211内に、実動作速度でのシングルサイクルパスのテストを可能にする対策を施した回路を示している。2つの出力固定回路271、272を、各々、マルチサイクルパス2、マルチサイクルパス4の経路に挿入している。これらの出力固定回路の挿入の詳細については、後に詳述する。また、出力固定回路271、272の各々のm端子には、モード選択部280の出力信号であるマルチサイクルテストイネーブル信号mcte273が供給される。
【0031】
図1において、複数の始点SFF(201、202)に対して1つのスキャンチェーンが構成される。具体的には、テストデータは、ランダムパターン生成部(PRPG)286からsi1信号として始点SFF201のsi端子に供給される。また、始点SFF201のq端子は始点SFF202のsi端子と接続される。このようにして、テストデータが始点SFF(201、202)にシフト入力されるように構成されている。また、始点SFF202のq端子は、圧縮器(MISR)282に接続される。始点SFF(201、202)の出力データはシフトアウトされながら、SO1信号としてMISR282に取り込まれる。
【0032】
また、図1において、複数の終点SFF(203、204、205)に対してもう1つのスキャンチェーンが構成される。具体的には、テストデータは、ランダムパターン生成部(PRPG)286からsi2信号として終点SFF203のsi端子に供給される。終点SFF203のq端子は終点SFF204のsi端子と接続される。また、終点SFF204のq端子は終点SFF205のsi端子と接続される。このようにしてテストデータが終点SFF(203、204、205)にシフト入力されるように構成される。また、終点SFF205のq端子は、圧縮器(MISR)282に接続される。複数の終点SFF(203、204、205)の出力データはシフトアウトされながら、SO2信号としてMISR282に取り込まれる。
【0033】
また、図1のモード選択部280は、従来技術のスキャンテスト回路を示す図21のマルチサイクルテストイネーブル生成部107と同様の機能を有している。モード選択部280は、マルチサイクルでのテストを行う「マルチサイクルテストモード」と、シングルサイクルでのテストを行う「シングルサイクルテストモード」を選択し、選択信号としてマルチサイクルテストイネーブル信号(mcte)273を出力する。mcte273は、マルチサイクルテストモードの場合には「0」が出力され、シングルサイクルテストモードの場合には「1」が出力される。
【0034】
また、図1のクロック周波数変換部288は、mcte=「0」の場合(すなわち、マルチサイクルテストモードの場合)、システムクロックck0の周波数を1/Nに落としたクロック信号ckを出力する。但し、Nはマルチサイクルパスのマルチサイクル数である。図1の論理回路211では、2つのマルチサイクルパス(マルチサイクルパス2、マルチサイクルパス4)のマルチサイクル数は、2であり、N=2となる。一方、mcte=「1」の場合(すなわち、シングルサイクルテストモードの場合)、クロック周波数変換部288は、システムクロックck0をそのままクロック信号ckとして出力する。クロック信号ckは、始点SFF(201、202)、及び終点SFF(203、204、205)のck端子と、論理回路211内の不図示のck端子に供給される。
【0035】
以上の構成により、論理回路211、始点SFF(201、202)、及び終点SFF(203、204、205)は、シングルサイクルテストモードの場合、実動作と同じクロック周波数で動作し、マルチサイクルテストモードの場合、実動作のクロック周波数の1/N(図1の回路では、1/2)のクロック周波数で動作する。
【0036】
また、スキャンイネーブル生成部284は、スキャンイネーブル信号seを出力する。スキャンイネーブル信号seは、始点SFF(201、202)、終点SFF(203、204、205)のse端子に供給される。始点SFF及び終点SFFは、スキャンイネーブル信号seが「0」の場合、キャプチャ動作を行い、スキャンイネーブル信号seが「1」の場合、シフト動作を行う。
【0037】
また、本発明の実施例1では、SFFのホールド動作は行わないため、図21の従来のスキャンテスト回路におけるクロックイネーブル生成部104は不要である。
【0038】
[実施例1の動作]
図4は、本発明の実施例1に係るスキャンテスト回路の設計方法を示すフローチャートである。以下、図4を参照しながら実施例1のスキャンテスト回路の設計方法を詳細に説明する。
【0039】
まず、図2の論理回路211の論理合成を行う(ステップS10)。ここで、論理合成は、一般的なCAD設計ツールで行われる。次に、CAD設計ツールで、実動作モードでのタイミング解析を実行する(ステップS11)。
【0040】
次に、実動作モードにおけるタイミング解析結果から、論理回路211内のマルチサイクルパスを抽出する(ステップS12)。図5は、ステップS12で抽出したマルチサイクルパスと、シングルサイクルパスを示している。図5に示すように、論理回路211内のパスは、始点SFFと終点SFFの組み合わせに対応付けされて、始点SFF、終点SFF、サイクル数からなる対応テーブルとして生成される。図5において、抽出された論理回路211内のパスは、以下のように表されている。始点SFF201から終点SFF203のパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス1)である。また、始点SFF201から終点SFF204のパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス2)である。また、始点SFF202から終点SFF204のパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス3)である。また、始点SFF202から終点SFF205のパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス4)である。
【0041】
次に、図4において、異なるサイクル数のパスに分岐する分岐点、及び、異なるサイクル数のパスが合流する合流点を抽出する(ステップS13)。次に、抽出した分岐点、合流点の情報に基づいて、「分岐点と終点SFFの対応テーブル」の生成と、「合流点と始点SFFの対応テーブル」の生成を行う(ステップS18)。
【0042】
ここで、上記した異なるサイクル数のパスに分岐する分岐点は、シングルサイクルパスとマルチサイクル数がM1のマルチサイクルパスに分岐する分岐点、或いは、マルチサイクル数がM1のマルチサイクルパスとマルチサイクル数がM2のマルチサイクルパスに分岐する分岐点が考えられる(但し、M1、M2は2以上の整数で、M1≠M2)。図2の論理回路211の場合は、マルチサイクルパスのマルチサイクル数は2のみであるため、シングルサイクルパスとマルチサイクル数が2のマルチサイクルパスに分岐する分岐点を抽出する。
【0043】
また、上記した異なるサイクル数のパスが合流する合流点は、シングルサイクルパスとマルチサイクル数がM1のマルチサイクルパスが合流する合流点、或いは、マルチサイクル数がM1のマルチサイクルパスとマルチサイクル数がM2のマルチサイクルパスが合流する合流点が考えられる(但し、M1、M2は2以上の整数で、M1≠M2)。図2の論理回路211の場合は、マルチサイクルパスのマルチサイクル数は2のみであるため、シングルサイクルパスとマルチサイクル数が2のマルチサイクルパスが合流する合流点を抽出する。
【0044】
図6(A)は、ステップS18で生成された分岐点と終点SFFの対応テーブルを示す。図6(A)は、論理回路211において、2つの分岐点221、222が抽出されたことを示している。まず、分岐点221は、分岐数が2である。分岐点221の入力側の始点SFFは201であり、分岐点221の出力側の終点SFFは203、204である。分岐点221から終点SFF203のパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス1)であり、分岐点221から終点SFF204のパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス2)である。
【0045】
次に、分岐点222は、分岐数が2である。分岐点222の入力側の始点SFFは202であり、分岐点222の出力側の終点SFFは204、205である。分岐点222から終点SFF204のパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス3)であり、分岐点222から終点SFF205のパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス4)である。
【0046】
そして、分岐点を含むマルチサイクルパスの分岐点より出力側に、出力固定回路を挿入する挿入候補位置が、設定される。図6(A)では、出力側を終点SFFの情報で表しており、実際には、分岐点と分岐点を含むマルチサイクルパスに接続した終点SFF間の経路が、挿入候補位置として設定される。論理回路211では、分岐点221と終点SFF204間の経路が、出力固定回路の第1の挿入候補となる。また、分岐点222と終点SFF205間の経路が、出力固定回路の第2の挿入候補となる。図6(A)に示すように、分岐点と終点SFFの対応テーブルの最右列に、出力固定回路挿入フラグを設けておき、挿入候補として判別された経路を、0に初期化する。
【0047】
図7(A)は、ステップS18で生成された合流点と始点SFFの対応テーブルを示す。図7(A)は、論理回路211において、1つの合流点231が抽出されたことを示している。合流点231は、合流数が2である。合流点231の入力側の始点SFFは201、202であり、合流点の出力側の終点SFFは204である。始点SFF201から合流点231のパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス2)であり、始点SFF202から合流点231のパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス3)である。
【0048】
そして、合流点を含むマルチサイクルパスの分岐点より入力側に、出力固定回路を挿入する挿入候補位置が設定される。図7(A)では、入力側を始点SFFの情報で表しており、実際には、合流点と合流点を含むマルチサイクルパスに接続した始点SFF間の経路が、挿入候補位置として設定される。論理回路211では、合流点231と始点SFF201間の経路が、出力固定回路の第3の挿入候補となる。図7(A)に示すように、合流点と始点SFFの対応テーブルの最右列に、出力固定回路挿入フラグを設けておき、挿入候補として判別された経路を、0に初期化する。
【0049】
次に、図4に戻って、フローチャートの説明を続ける。ステップS18で生成した分岐点と終点SFFの対応テーブル、及び合流点と始点SFFの対応テーブルを参照し、第1の挿入候補の出力固定回路が未挿入か否かを判定する(ステップS14)。具体的には、まず、分岐点と終点SFFの対応テーブルを参照し、第1の挿入候補の出力固定回路挿入フラグが「0」であることを検出する。ここで、出力固定回路挿入フラグが「0」は、初期化された状態のままであり、未挿入であることを意味している。そこで、ステップS14で、YESと判定され、ステップS15に進む。
【0050】
第1の挿入候補位置(すなわち、分岐点221と終点SFF204間の経路上)に、出力固定回路271を挿入する(ステップS15)。上記の挿入は、自動的に行われるようにしてもよいし、CAD設計ツールを使用するユーザが、例えば、「出力固定回路挿入コマンド」を操作画面で指示することによって挿入するようにしてもよい。次に、出力固定回路挿入フラグを更新する(ステップS17)。具体的には、図6(B)に示すように、第1の挿入候補が、挿入済みであることを示す「1」に書き換える。
【0051】
次に、挿入候補は全て処理済みか否かを判定する(ステップS16)。未だ、第2、第3の挿入候補が未処理であるため、ステップS16ではNOと判定され、ステップS14に戻る。次に、第2の挿入候補の出力固定回路が未挿入か否かを判定する(ステップS14)。具体的には、まず、分岐点と終点SFFの対応テーブルを参照し、第2の挿入候補の出力固定回路挿入フラグが「0」であることを検出する。そこで、ステップS14で、YESと判定され、ステップS15に進む。
【0052】
第2の挿入候補位置(すなわち、分岐点222と終点SFF205間の経路上)に、出力固定回路272を挿入する(ステップS15)。次に、出力固定回路挿入フラグを更新する(ステップS17)。具体的には、図6(C)に示すように、第2の挿入候補が、挿入済みであることを示す「1」に書き換える。
【0053】
次に、挿入候補は全て処理済みか否かを判定する(ステップS16)。未だ、第3の挿入候補が未処理であるため、ステップS16ではNOと判定され、ステップS14に戻る。次に、第3の挿入候補の出力固定回路が未挿入か否かを判定する(ステップS14)。具体的には、まず、合流点と始点SFFの対応テーブルを参照し、第3の挿入候補の出力固定回路挿入フラグが「0」であることを検出する。しかしながら、第3の挿入候補位置(すなわち、合流点231と始点SFF201間の経路上)には、既に、第1の挿入候補の処理で出力固定回路271が挿入されていることが検知され、ステップS14は、NOと判定される。そして、出力固定回路の挿入は行わず、ステップS17に進む。そして、出力固定回路挿入フラグを更新する(ステップS17)。具体的には、図7(B)に示すように、第3の挿入候補における出力固定回路挿入フラグを「2」に書き換える。「2」は、挿入候補の処理は済んでおり、挿入されなかったことを示す値である。
【0054】
次に、挿入候補は全て処理済みか否かを判定する(ステップS16)。全ての挿入候補の処理が終了しているため、ステップS16ではYESと判定され、処理を終了する。以上、図4のフローチャートで説明したスキャンテスト回路の設計方法によって、図2の論理回路211は、図1で示すように、出力固定回路271、272が挿入された状態となる。
【0055】
次に、図1に示すスキャンテスト回路によるスキャンテスト方法について、図8を参照しながら説明する。図8は、図1に示したスキャンテスト回路の波形図である。図8の右側は、モード選択部280がシングルサイクルテストモードを選択した場合で、マルチサイクルテストイネーブル信号(mcte)273は「1」である。図8の左側は、モード選択部280がマルチサイクルテストを選択した場合で、マルチサイクルテストイネーブル信号(mcte)273は、「0」である。図8において、上から、クロック周波数変換部288の出力であるクロック信号ck、スキャンイネーブル信号se、マルチサイクルテストイネーブル信号mcteの3つの制御信号を示す。次に、図1の始点SFF(201、202)、終点SFF(203、204)の動作状態を示す。次に、始点SFF(201、202)、終点SFF(203、204)における各々のq出力の波形を示す。尚、図1の終点SFF205の動作状態とq出力については、図8では省略している。
【0056】
図8に示すように、図1のスキャンテスト回路による半導体集積回路のスキャンテスト方法では、シングルサイクルテストモード、マルチサイクルテストモードのいずれかが選択される。まず、マルチサイクルテストモードの動作について以下に説明する。システムクロックck0は、クロック周波数変換部288で、周波数を1/Nに落としたクロック信号ckに変換される。ここで、Nは、マルチサイクル数であり、図8では、マルチサイクル数が2であるため、N=2に設定される。すなわち、マルチサイクルテストモードでは、実動作のクロック周波数の1/2のクロック周波数が、マルチサイクルテストモードのクロック周波数となる。マルチサイクルテストモードでは、マルチサイクルテストイネーブル信号(mcte)273は、「0」に設定される。
【0057】
マルチサイクルテストモードでは、クロック信号ckの立ち上がりエッジのタイミング(図8のtm0、tm1、tm2、tm3)で、SFFは状態を更新する。まず、tm0、tm1のタイミングで、「マルチサイクルスキャン」が行われる。スキャンイネーブル信号seは「1」であり、始点SFF201、202はシフト状態(図8では「S」と表示)となる。シフト状態「S」では、始点SFF(201、202)でスキャンチェーンが構成され、図1のランダムパターン発生器(PRPG)286から、si1信号としてテストデータが、シフト入力される。
【0058】
次に、tm2のタイミングで、「マルチサイクルキャプチャ」が行われる。tm2において、スキャンイネーブル信号seは「0」に切り替わっており、全ての始点SFF、終点SFFは、キャプチャ状態(図8では「C」と表示)となる。キャプチャ状態「C」では、終点SFFの内部では、si端子とd端子のうち、d端子が選択入力される。従って、論理回路211によるテストデータの応答が、論理回路211に接続された終点SFFのd端子から、マルチサイクルテストモードのクロック周波数で、キャプチャされることになる。
【0059】
次に、tm3のタイミングで、「マルチサイクルシフトアウト」が行われる。tm3において、スキャンイネーブル信号seは「1」に切り替わっており、全ての始点SFF、終点SFFは、シフト状態「S」になる。シフト状態「S」では、終点SFF(203、204、205)でスキャンチェーンが構成され、キャプチャされたデータが、シフトアウトされ、SFF205のデータ出力qから、SO2信号として圧縮器MISR282に取り込まれる。
【0060】
尚、図8に示した波形図において、マルチサイクルスキャン、マルチサイクルキャプチャ、及びマルチサイクルシフトアウトは、いずれも、実動作のクロック周波数の1/N(図8では、N=2)のクロック周波数で駆動した場合について例示している。しかしながら、実動作のクロック周波数の1/N、すなわち、実動作と同じ動作速度でマルチサイクルテストを行う必要があるのは、マルチサイクルキャプチャの動作だけである。すなわち、図8に示した「全SFFのキャプチャポイント」〜「全SFFの最終シフト」の時間のみが、実動作のクロック周波数の1/Nの周波数のクロック信号の1周期になっていればよく、他のシフト動作「S」は、テストデータの入出力をしているだけであるため、動作速度は任意でよい。
【0061】
ここで、マルチサイクルスキャンのタイミングと、マルチサイクルキャプチャのタイミングについて、図8を参照しながら、以下に考察する。図8に示すように、tm1のタイミングで、キャプチャ動作前の全SFFの最終シフトが行われている。すなわち、始点SFF(201、202)の出力qは、tm1のタイミングで、キャプチャ前に更新されている。論理回路211内のマルチサイクルパス2は、始点SFF201のデータ出力qが更新されてから、システムクロックの2サイクル後(マルチサイクルテストモードのクロックでは、1クロック後)に、終点SFF204のデータ入力dが確定する。また、マルチサイクルパス4は、始点SFF202のデータ出力qが更新されてから、システムクロックの2サイクル後(マルチサイクルテストモードのクロックでは、1クロック後)に、終点SFF205のデータ入力dが確定する。図8に示すように、全SFFのキャプチャポイントは、全SFFのキャプチャ前の最終シフトに対して、システムクロックの2サイクル後のタイミングになっているから、マルチサイクルパス2、4共に終点SFFのデータ入力dが確定しているため、論理回路211によるテストデータの応答を、正しくキャプチャすることができる。
【0062】
また、論理回路211のシングルサイクルパス1においては、始点SFF201のデータ出力qが更新されてから、システムクロックの1サイクルで終点SFF203のデータ入力dが確定するので、明らかに、マルチサイクルキャプチャで、論理回路211によるテストデータの応答を、正しくキャプチャすることができる。また、シングルサイクルパス3(始点SFF202から終点SFF204)においては、合流点231にマルチサイクルパス2のデータが合流するため、終点SFF204のデータ入力dが確定するまでにシステムクロックの2サイクルを要するが、tm2のタイミングまでには確定しているので、正しくキャプチャすることができる。
【0063】
上記のマルチサイクルテストモードのテストは、マルチサイクルパス2、4に対しては、実動作と同じタイミングでのテストが行われている。しかしながら、シングルサイクルパス1、3に対しては、実動作より遅いタイミングでのテストとなっている。
【0064】
次に、シングルサイクルテストモードの動作について以下に説明する。シングルサイクルテストモードでは、実動作のクロック周波数が、そのまま、シングルサイクルテストモードのクロック周波数となる。また、シングルサイクルテストモードでは、マルチサイクルテストイネーブル信号(mcte)273は、「1」に設定される。
【0065】
シングルサイクルテストモードでは、クロック信号ckの立ち上がりエッジのタイミング(図8のts0、ts1、ts2、ts3)で、SFFは状態を更新する。まず、ts0、ts1のタイミングで、「シングルサイクルスキャン」が行われる。スキャンイネーブル信号seは「1」であり、始点SFF(201、202)はシフト状態となる。シフト状態「S」では、始点SFF201、202でスキャンチェーンが構成され、図1のランダムパターン発生器(PRPG)286から、si1信号としてテストデータが、シフト入力される。
【0066】
次に、ts2のタイミングで、「シングルサイクルキャプチャ」が行われる。ts2において、スキャンイネーブル信号seは「0」に切り替わっており、全ての始点SFF、終点SFFは、キャプチャ状態となる。キャプチャ状態「C」では、終点SFFの内部では、si端子とd端子のうち、d端子が選択入力される。従って、論理回路211によるテストデータの応答が、論理回路211に接続された終点SFFのd端子から、シングルサイクルテストモードのクロック周波数で、キャプチャされることになる。
【0067】
次に、ts3のタイミングで、「シングルサイクルシフトアウト」が行われる。ts3において、スキャンイネーブル信号seは「1」に切り替わっており、全ての始点SFF、終点SFFは、シフト状態「S」になる。シフト状態「S」では、終点SFF203、204、205でスキャンチェーンが構成され、キャプチャされたデータが、シフトアウトされ、SFF205のデータ出力qから、SO2信号として圧縮器MISR282に取り込まれる。
【0068】
尚、図8に示した波形図において、シングルサイクルスキャン、シングルサイクルキャプチャ、及びシングルサイクルシフトアウトは、いずれも、実動作のクロック周波数で駆動した場合について例示している。しかしながら、実動作のクロック周波数、すなわち、実動作と同じ動作速度でシングルサイクルテストを行う必要があるのは、シングルサイクルキャプチャの動作だけである。すなわち、図8に示した「全SFFのキャプチャポイント」〜「全SFFの最終シフト」の時間のみが、実動作のクロック周波数の1周期になっていればよく、他のシフト動作「S」は、テストデータの入出力をしているだけであるため、動作速度は任意でよい。
【0069】
ここで、シングルサイクルテストモードにおいて、シングルサイクルスキャンのタイミングと、シングルサイクルキャプチャのタイミングについて、図8を参照しながら、以下に考察する。図8に示すように、ts1のタイミングで、キャプチャ動作前の全SFFの最終シフトが行われている。すなわち、始点SFF201の出力qは、ts1のタイミングで、キャプチャ前に更新されている。論理回路211内のシングルサイクルパス1は、始点SFF201データ出力qが更新されてから、システムクロックレートの1サイクル後に、終点SFF203のデータ入力dが確定する。図8に示すように、全SFFのキャプチャポイントは、全SFFのキャプチャ前の最終シフトに対して、システムクロックレートの1サイクル後のタイミングには、シングルサイクルパス1の終点SFF203のデータ入力dが確定しているため、論理回路211によるテストデータの応答を、正しくキャプチャすることができる。
【0070】
また、シングルサイクルパス3(始点SFF202から終点SFF204)においては、始点SFF202の出力qは、ts1のタイミングで更新されると、システムクロックレートの1サイクル後に、終点SFF204のデータ入力dが確定する。しかしながら、合流点231からマルチサイクルパス2のデータが合流するため、マルチサイクルパス2から合流点231へ入ってくる信号は、終点SFF204のデータ入力dが確定するまでにシステムクロックの2サイクルを要することになる。そのため、シングルサイクルパス3においては、図2に示す出力固定回路を挿入していない状態では、ts2のタイミングにおいて、不確定なデータをキャプチャしてしまう。
【0071】
そこで、図1に示すように出力固定回路271が挿入された場合には、シングルサイクルテストモード時には、出力固定回路271は固定値を出力する。従って、マルチサイクルパス2から合流点231に入ってくる信号は、出力固定回路271による固定値になるので、マルチパス2から合流されるデータが、ts2のタイミングで確定しないという問題を解消することができる。
【0072】
また、論理回路211内のマルチサイクルパス2、マルチサイクルパス4は共に、始点SFFのデータ出力qが更新されてから、終点SFFのデータ入力dが確定するまで、システムクロックで2サイクル必要である。図8に示すキャプチャポイントts2の時点では、始点SFFの最終シフトが行われてから1サイクルしか経っておらず、出力固定回路271、272を挿入していない状態では、不確定なデータをキャプチャしてしまう。
【0073】
そこで、図1に示すように、出力固定回路271、272を挿入した状態では、出力固定回路271、272は、シングルサイクルテストモード時には、mcte273が「1」となり、固定値を出力する。従って、出力固定回路271から終点SFF204の経路と、出力固定回路272から終点SFF205の経路は、どちらも固定値を出力し続ける。従って、図8のts2のタイミングで終点SFF(204、205)のデータ入力dが不確定になる問題を解消することができる。
【0074】
以下に、実施例1の効果について纏める。実施例1によるスキャンテスト回路を用いたスキャンテスト方法によれば、シングルサイクルテストモードにおいて、シングルサイクルパスを実動作速度でテストすることが可能であるという効果が得られる。特に、図21に示した従来のスキャンテスト回路では、図2のシングルサイクルパス3(始点SFF202から終点SFF204)をテストする場合、実動作速度でのテストができないという問題があったが、実施例1では、上記したように、実動作速度でのテストが可能である。また、マルチサイクルパスに対しては固定値をキャプチャすることで不確定なデータをキャプチャする問題を回避している。
【0075】
以上により、実施例1によるスキャンテスト回路を用いたスキャンテスト方法によれば、マルチサイクルパスに対しては、マルチサイクルテストモードで実動作速度でのテストが可能であり、シングルサイクルパスに対しは、シングルサイクルテストモードで実動作速度でのテストが可能であるという効果が得られる。
【0076】
また、図21に示す従来のスキャンテスト回路では、第1の記憶素子11は図22(a)の回路、第2の記憶素子21は図22(b)の回路、第3の記憶素子31は図22(e)の回路が使用されており、場所によりタイプの異なるSFFを使用せざるを得ず、複雑な構成になっている。一方、実施例1のスキャンテスト回路は、全てのSFFに対し、図22(e)の回路を使用しており、図21に示す従来のスキャンテスト回路に比べて、簡素な構成にできるという効果が得られる。
【0077】
また、実施例1によるスキャンテスト回路に使用している出力固定回路は、簡単な構成の回路であり、チップサイズの増大につながることはない。また、出力固定回路の挿入は、図4のフローチャートで示した設計方法により、自動的に実行することが可能であり、スキャンテスト回路を設計するユーザの負荷にはならない。
【実施例2】
【0078】
次に、本発明の実施例2に係るスキャンテスト回路について、必要に応じて図面を参照しながら説明を行う。図9は、本発明の実施例2に係るスキャンテスト回路であり、冗長な出力固定回路の削除を行った後のスキャンテスト回路を示している。図9において、モード選択部980、圧縮器(MISR)982、スキャンイネーブル生成部984、ランダムパターン発生器(PRPG)986、クロック周波数変換部988については、実施例1と同様の機能であるため、説明は省略する。また、始点SFF、終点SFFについては、始点SFFが2つから3つに増えた点を除けば(実施例2では始点SFFは901、902、906の3つで構成されている)、それ以外は同じであるため、説明は省略する。
【0079】
図10は、図9のスキャンテスト回路において、論理回路941、始点SFF(901、902、906)、及び終点SFF(903、904、905)のみを示している。また、図10は、実施例1に係るスキャンテスト回路の設計方法で、論理回路941内に出力固定回路(931、932、933)を挿入した状態を示している。実施例2に係るスキャンテスト回路の設計方法は、実施例1に係るスキャンテスト回路の設計方法に対して、冗長な出力固定回路を削除する機能を追加している。
【0080】
図10に示す論理回路941内において、始点SFF901のデータ出力qから論理回路941内の分岐点911を通って終点SFF903のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス5という)である。また、始点SFF901のデータ出力qから論理回路941内の分岐点911、合流点921、922を通って終点SFF904のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの2サイクル分必要なマルチサイクルパス(以降、マルチサイクルパス6という)である。また、始点SFF902のデータ出力qから論理回路941内の合流点921、922を通って終点SFF904のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス7という)である。また、始点SFF906のデータ出力qから論理回路941内の分岐点912、合流点922を通って終点SFF904のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス8という)である。また、始点SFF906のデータ出力qから論理回路941内の分岐点912を通って終点SFF905のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの2サイクル分必要なマルチサイクルパス(以降、マルチサイクルパス9という)である。
【0081】
図11は、実施例2に係るスキャンテスト回路の設計方法を示すフローチャートである。図11において、ステップS16までは、図4に示すフローチャートと同じであり、説明は省略する。ステップS16までにより、図10に示すように、出力固定回路(931、932)が挿入された状態になっている。ステップS16の次に、ステップS21に進む。ここで、論理回路941内の出力固定回路を抽出する(ステップS21)。具体的には、ステップS15で挿入した出力固定回路は分かっているので、それにより、図12に示す出力固定回路を抽出した情報を得ることができる。図12は、ステップS15で挿入した3つの出力固定回路(931、932、933)を、始点SFF、終点SFF、及びサイクル数の情報で対応付けた表になっている。図12に示す表は、始点SFF901から終点SFF904の経路に、出力固定回路931、932があり、始点SFF902から終点SFF904の経路に、出力固定回路932があり、始点SFF906から終点SFF905の経路に、出力固定回路933があることを示している。
【0082】
図11のフローチャートに戻り、説明を続ける。ステップS21で抽出した出力固定回路に対して、冗長出力固定回路を削除する(ステップS22)。具体的には、図12に示す表において、同一経路上に、複数の出力固定回路が存在していないかどうかを調べる。図12の表を参照すると、始点SFF901から終点SFF904の経路に2つの出力固定回路931、932が存在していることを検出する。上記2つの出力固定回路のうち、出力固定回路932は、別の経路(始点SFF902から終点SFF904の経路)にも存在するので、削除することができない。一方、出力固定回路931は、始点SFF901から終点SFF904の経路にのみ存在するので、削除することができると判定される。そして、出力固定回路931は削除される。図9は、冗長出力固定回路931が削除された回路図である。
【0083】
実施例2に係るスキャンテスト回路の設計方法によれば、出力固定回路が複数存在する経路を抽出し、冗長な出力固定回路を削除することにより、無駄な回路規模の増加を回避することができるという効果が得られる。
【実施例3】
【0084】
次に、本発明の実施例3に係るスキャンテスト回路について、必要に応じて図面を参照しながら説明を行う。図13は、実施例3に係るスキャンテスト回路の回路図である。実施例3による図13のスキャンテスト回路が、実施例1による図1のスキャンテスト回路と違う点は、論理回路211内に挿入する出力固定回路のみである。尚、図13において、図1と実質的に同じ機能を有する構成要素に対しては、同じ参照符号を付与している。
【0085】
図14は、実施例3に係るスキャンテスト回路の設計方法を示すフローチャートである。図14において、ステップS16までは、実施例1と同じである。ステップS16までにより、実施例1と同様に、図1に示す回路が得られた状態になっている。そして、ステップS16の後、ステップS31に進む。図1の論理回路211に対して、タイミング解析を行う(ステップS31)。次に、タイミングMETパスの出力固定回路を削除する(ステップS32)。
【0086】
ここで、ステップS32について、以下に、より詳細に説明する。図1の回路において、マルチテストイネーブル信号(mcte)273を「1」にしてタイミング解析を行い、出力固定回路を挿入したマルチサイクルパスが、シングルサイクルテストモードのレートでデータを受け渡す場合のタイミングエラーの有無を抽出する。その抽出した結果を図15に示す。図15において、出力固定回路271が挿入された始点SFF201から終点SFF204の経路は、シングルサイクルテストモードのレートで、タイミングエラーが有ることを示している。また、出力固定回路272が挿入された始点SFF202から終点SFF205の経路は、シングルサイクルテストモードのレートで、タイミングエラーが無いことを示している。
【0087】
上記のタイミングエラーの解析により、始点SFF202から終点SFF205の経路は、シングルサイクルでタイミングを満たす(すなわち、タイミングMETパスである)ため、出力固定回路272を削除することができると判定され、出力固定回路272は削除される。図13は、出力固定回路272が削除された回路を示している。
【0088】
実施例3に係るスキャンテスト回路の設計方法によれば、マルチサイクルパス中に挿入した出力固定回路を通る経路がシングルサイクルで動作することが可能であれば、出力固定回路を削除することにより、無駄な回路規模の増加を回避することができるという効果が得られる。
【実施例4】
【0089】
次に、本発明の実施例4に係るスキャンテスト回路について、必要に応じて図面を参照しながら説明を行う。図16は、実施例4に係るスキャンテスト回路の回路図である。図16において、モード選択部1580、圧縮器(MISR)1582、スキャンイネーブル生成部1584、ランダムパターン発生器(PRPG)1586、クロック周期変換部1588については、実施例1と同様の機能を有しているため、説明は省略する。
【0090】
図17は、図16のスキャンテスト回路において、論理回路1511、始点SFF1501、及び終点SFF1502のみを示している。図17において、論理回路1511内において、始点SFF1501のデータ出力qから論理回路1511内の分岐点1521、経路1531、合流点1541を通って終点SFF1502のデータ入力dに到達する経路は、そのデータ転送に、システムクロックの1サイクル分必要なシングルサイクルパス(以降、シングルサイクルパス10という)である。また、始点SFF1501のデータ出力qから論理回路1511内の分岐点1521、経路1532、合流点1541を通って終点SFF1502のデータ入力dに到達する経路は、そのデータ転送に、システムクロックレートの2サイクル分必要なマルチサイクルパス(以降、マルチサイクルパス11という)である。上記した論理回路1511に対して、実施例1で示したスキャンテスト回路の設計方法を、以下に示すように適用する。
【0091】
図4のフローチャートのステップS12により、論理回路1511内のマルチサイクルパスを抽出する。図18は、抽出したマルチサイクルパス及びシングルサイクルパスを示している。始点SFF1501から終点SFF1502には、シングルサイクルパス(シングルサイクルパス10)と、マルチサイクルパス(マルチサイクルパス11)が存在していることを示している。
【0092】
次に図4のフローチャートのステップS13により、異なるサイクル数のパスに分岐する分岐点、及び異なるサイクル数のパスが合流する合流点を抽出する。ここで、図17の論理回路1511において、マルチサイクルパスのマルチサイクル数は2のみであるため、シングルサイクルパスとマルチサイクル数が2のマルチサイクルパスに分岐する分岐点、及び、シングルサイクルパスとマルチサイクル数が2のマルチサイクルパスが合流する合流点を抽出する。その結果、分岐点1521、合流点1541が抽出される。次に図4のフローチャートのステップS14により、図19(A)に示す分岐点と終点SFFの対応テーブルと、図20(A)に示す合流点と始点SFFの対応テーブルが生成される。図19(A)は、論理回路1511において、1つの分岐点1521が抽出されたことを示している。まず、分岐点1521は、分岐数が2である。分岐点1521の入力側の始点SFFは1501であり、分岐点1521の出力側の2つの終点SFFは、どちらも1502である。また、始点SFF1501から終点SFF1502の1つのパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス10)であり、始点SFF1501から終点SFF1502のもう1つのパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス11)であることを示している。分岐点1521と分岐点1521を含むマルチサイクルパスに接続した終点SFF1502間の経路が、出力固定回路の第1の挿入候補であり、その出力固定回路挿入フラグは「0」に初期化される。
【0093】
また、図20(A)は、論理回路1511において、1つの合流点1541が抽出されたことを示している。合流点1541は、合流数が2である。合流点1541における2つの入力側の始点SFFは、どちらも1501であり、合流点の出力側の終点SFFは1502である。また、始点SFF1501から終点SFF1502の1つのパスは、サイクル数1のシングルサイクルパス(シングルサイクルパス10)であり、始点SFF1501から終点SFF1502のもう1つのパスは、サイクル数2のマルチサイクルパス(マルチサイクルパス11)であることを示している。合流点1541と合流点1541を含むマルチサイクルパスに接続した始点SFF1501間の経路が、出力固定回路の第2の挿入候補であり、その出力固定回路挿入フラグは0に初期化される。
【0094】
次に、図4のステップS14、S15、S17、S16により、第1の挿入候補の位置に、出力固定回路1533が挿入される。出力固定回路1533が挿入された後、分岐点と終点SFFの対応テーブルは、図19(B)に示すように、第1の挿入候補の出力固定回路挿入フラグは、挿入が行われたことを示す「1」に書き換わる。また、第2の挿入候補は、図20(B)に示すように、第2の挿入候補の経路上に、既に出力固定回路1533が挿入されているので、新たな挿入は行われない。そして、第2の挿入候補の出力固定回路挿入フラグは、挿入は行われずに、処理済みであることを示す「2」に書き換わる。
【0095】
図16は、出力固定回路1533が挿入されたスキャンテスト回路を示している。図16に示すスキャンテスト回路において、テストを行う場合のテスト方法について以下に説明する。まず、モード選択部1580で、マルチサイクルテストモードが選択された場合、マルチサイクルテストイネーブル信号(mcte)1573は「0」が出力される。この場合、クロック周波数変換部1588により、実動作のクロック周波数の1/2のクロック周波数で、全てのSFF(1501、1502)及び論理回路1511は動作する。出力固定回路1533の入力端子dに入力されたデータは、出力端子qからそのまま出力される。終点SFF1502は、経路1531(シングルサイクルパス10)を通ったデータを、実動作より遅いシステムクロックの2サイクルでデータをキャプチャする。また、終点SFF1502は、経路1532(マルチサイクルパス11)を通ったデータを、実動作と同じシステムクロックの2サイクルでデータをキャプチャする。
【0096】
次に、モード選択部1580で、シングルサイクルテストモードが選択された場合、マルチサイクルテストイネーブル信号(mcte)1573は「1」が出力される。この場合、クロック周波数変換部1588により、実動作のクロック周波数と同じクロック周波数で、全てのSFF(1501、1502)及び論理回路1511は動作する。終点SFF1502は、経路1531(シングルサイクルパス10)を通ったデータを、実動作と同じシステムクロックの1サイクルでキャプチャする。また、終点SFF1502は、経路1532(マルチサイクルパス11)を通ったデータに対して、出力固定回路1533によって固定されたデータをキャプチャする。ここで、図21に示す従来技術のスキャンテスト回路では、経路1531(シングルサイクルパス10)を通ったデータを、実動作と同じシステムクロックの1サイクルでキャプチャすることはできない。
【0097】
以上説明したように、本発明のスキャンテスト回路によるスキャンテスト方法によれば、同一の始点SFFと同一の終点SFFに複数の経路がある場合において、経路毎にサイクル数を抽出して、出力固定回路を挿入することによって、マルチサイクルパスに対しては、マルチサイクルテストモードで実動作速度でのテストが可能であり、シングルサイクルパスに対しては、シングルサイクルテストモードで実動作速度でのテストが可能であるという効果が得られる。
【0098】
[比較例]
ここで、比較例として、特許文献1に記載された半導体集積回路のスキャンテスト方法について、以下に詳細に説明する。図21は従来のマルチサイクルパスを含む半導体集積回路であり、図22(a)〜(c)に示すSFFを用いてキャプチャ、ホールド、及びシフトの動作を実現している。例えば、図22(a)のSFF700は、ディレイフリップフロップ(DFF)710のデータ入力に接続されるセレクタ720と、このセレクタ720に接続されたセレクタ730とを有している。また、DFF710は、クロック入力CKと、データ出力Qを有している。セレクタ720は、入力データd又はセレクタ730の出力信号733をスキャンイネーブル信号seに応じて選択する。セレクタ730は、スキャン入力信号si又はDFF710の出力信号713をクロックイネーブル信号ceに応じて選択する。従って、クロックイネーブル信号ceの値によって、SFF700がシフトされるかホールドされるかが決められる。クロックイネーブル信号ceを用いてSFFの値をホールドさせることで、テスト時のSFFの動作を実動作でのクロックレートよりも落とすことができる。また、図22(b)、(c)に示すSFF740、750を用いることによっても、図22(a)に示すSFF700と同様の動作を実現することができる。尚、図22(d)は、図22(a)〜(c)のSFFを表すのに用いられる。また、図22(e)は、クロックイネーブル信号を持たないSFFを表す。
【0099】
以下、特許文献1に記載された従来技術の半導体集積回路の動作及びそのテスト方法について説明する。従来技術による半導体集積回路は、マルチサイクルパスを含む半導体集積回路であって、この半導体集積回路は、クロック信号のエッジで動作し、データ入力とデータ出力を有するスキャン可能な第1の記憶素子と、その第1の記憶素子のデータから、システムクロックレートの1サイクルより長いマルチサイクルで動作する論理回路中のパスを通ったデータをデータ入力として受け入れ、クロック信号のエッジで動作し、データ出力からデータを出力する少なくとも1個以上のスキャン可能な第2の記憶素子と、第1の記憶素子の出力から、システムクロックレートの1サイクルで動作する論理回路中のシングルサイクルパスを通ったデータをデータ入力として受け取り、クロック信号のエッジで動作し、データ出力からデータを出力する少なくとも1個以上のスキャン可能な第3の記憶素子と、を備える。
【0100】
そのテスト方法には、マルチサイクルテストステップと、シングルサイクルテストステップが含まれる。マルチサイクルテストステップは、第1、第2、第3の記憶素子のデータ入力と、他のスキャン可能な記憶素子のデータ出力を接続してスキャンチェーンを構成し、スキャンチェーン可能な記憶素子に対して、テストクロックレートで検査パターンをシリアルにシフトするスキャンステップと、第1の記憶素子に対して、第1の記憶素子のデータ出力から、第2の記憶素子のデータ入力までのマルチサイクル数と同一又はそれ以上のサイクル数の間、キャプチャ動作の前又はスキャンステップ中にデータをホールドするマルチサイクルホールドステップと、第1、第2、第3の記憶素子のデータ入力を、論理回路に接続し、その論理回路に対する検査パターンの応答を、記憶素子のデータ入力から取り込むマルチサイクルキャプチャステップと、第1、第2、第3の記憶素子のデータ入力と、他のスキャン可能な記憶素子のデータ出力を接続してスキャンチェーンを構成し、記憶素子からデータをシフトアウトするシフトアウトステップと、を含む。
【0101】
一方、シングルサイクルテストステップは、スキャンステップと、第1、第2、第3の記憶素子のデータ入力を、論理回路に接続し、第2の記憶素子については、データをホールドし、第2の記憶素子を除く記憶素子については、論理回路に対する検査パターンの応答を、記憶素子のデータ入力から取り込むシングルサイクルキャプチャステップと、シフトアウトステップと、を含む。
【0102】
次に、図21の従来のスキャンテスト回路の動作について、図24に示す波形図を参照しながら説明する。図24の左側に示すマルチサイクルテストモードについて説明する。時刻tm0では、信号se1、se2が「1」で、ce1が「1」であるため、第1の記憶素子11はシフト状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態となり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【0103】
時刻tm1では、信号se1、se2が「1」で、ce1が「0」であるため、第1の記憶素子11はホールド状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態となり、時刻tm0でシフトされた第1の記憶素子11の値がホールドされ、記憶素子21および31は、スキャン入力からの値がスキャン入力データとしてシフトされる。
【0104】
時刻tm2では、信号se1、se2が「0」で、信号ce1が「1」であるため、第1の記憶素子11はキャプチャ状態、第2の記憶素子21はキャプチャ状態、第3の記憶素子はキャプチャ状態となり、データ入力からの値を取り込む。
【0105】
第2のスキャン可能な記憶素子21では、時刻tm0で値が確定した第1の記憶素子11の値を、その2クロック後の時刻tm2で取り込むため、実動作での2サイクルのマルチサイクルと同一のタイミングで、データを取り込むことができる。
【0106】
第3の記憶素子31では、時刻tm0で値が確定した第1の記憶素子11の値を、その2クロック後のtm2で取り込むため、実動作での1サイクルのシングルサイクルとは異なるタイミングでデータを取り込むことになる。
【0107】
時刻tm3では、信号se1、se2が「1」で、信号ce1が「0」であるため、第1の記憶素子11はホールド状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態となり、時刻tm2でキャプチャされた第1の記憶素子11の値はホールドされ、記憶素子21および31は時刻tm2でキャプチャした値をシフトアウトする。
【0108】
図24の右側に示すシングルサイクルテストモードについて説明する。時刻ts0では、信号se1、se2が「1」で、信号ce1が「1」であるため、第1の記憶素子11はシフト状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態となり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【0109】
時刻ts1では、信号se1、se2が「1」で、信号ce1が「0」であるが、信号mcteが「1」のために第1の記憶素子11のce入力には「1」が入力される。そのため、第1の記憶素子11はシフト状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態となり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【0110】
時刻ts2では、信号se1、se2が「0」で、信号ce1が「1」であるが、信号mcteが「1」のために第2の記憶素子21のce入力には「0」が入力される。そのため、第1の記憶素子11はキャプチャ状態、第2の記憶素子21はホールド状態、第3の記憶素子31はキャプチャ状態となり、第1および第3の記憶素子11および31は、そのデータ入力から値を取り込み、第2の記憶素子21はデータをホールドする。
【0111】
第2の記憶素子21では、時刻ts1で値が確定した第1の記憶素子11の値を、その1クロック後の時刻ts2で取り込むと、実動作では2サイクルのマルチサイクルのために、正しくデータが取り込めないが、データをホールドすることで、第1の記憶素子11の値を取り込まないようにする。
【0112】
第3の記憶素子31では、時刻ts1で値が確定した第1の記憶素子11の値を、その1クロック後の時刻ts2で取り込むため、実動作での1サイクルのシングルサイクルと同一のタイミングでデータを取り込むことができる。
【0113】
時刻ts3では、信号se1、se2が「1」で、信号ce1が「0」であるため、第1の記憶素子11はシフト状態、第2の記憶素子21はシフト状態、第3の記憶素子31はシフト状態であり、時刻ts2でキャプチャした値をシフトアウトする。
【0114】
以上説明したように、図21に示す論理回路40をテストする場合には、第1の記憶素子11から第2の記憶素子21までのマルチサイクルパスに対しては、実動作速度と同じマルチサイクルテストモードでテストを行い、第1の記憶素子11から第3の記憶素子31までのシングルサイクルパスに対しては、実動作速度と同じシングルサイクルテストモードでテストを行い、シングルサイクルテストモードで第2の記憶素子21はキャプチャしないようにすることで、問題なくテストを行うことが可能である。
【0115】
次に、図23は、従来技術の回路構成の一例である。図23に示す論理回路211は、前述したように、もし、シングルサイクルパス91(始点SFF2201から終点SFF2203)、マルチサイクルパス92(始点SFF2201から終点SFF2204)の2つのパスのみであった場合には、図21の論理回路40と同様になり、問題は生じない。しかしながら、シングルサイクルパス93(始点SFF2202から終点SFF2204)が加わると、シングルサイクルパス93をシングルサイクルテストモードでテストしようとした場合、終点SFF2204は、キャプチャされない。従来技術で、このようにキャプチャしないようにしたのは、合流点231にマルチサイクルパス92からデータが入ってきて、終点SFF2204の入力dで確定するまでに、システムクロックの2サイクル必要であり、1サイクルでは、不確定なためである。このように、図23に示す論理回路211のような構成の場合、従来技術では、シングルサイクルパスに対し、実動作速度でのテストができないという問題がある。
【0116】
一方、本発明の実施例1〜4によるスキャンテスト回路の設計方法で、スキャンテスト回路を設計し、各々の実施例で開示したスキャンテスト方法でテストを行うことにより、シングルマルチサイクルパスとマルチサイクルパスが混在している論理回路において、実動作速度でのシングルサイクルテストが可能となる効果が得られる。
【産業上の利用可能性】
【0117】
本発明は、スキャンパスを組み込む半導体集積回路のスキャンテスト回路に適用可能である。
【0118】
なお、本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0119】
11:第1の記憶素子
21:第2の記憶素子
31:第3の記憶素子
40、211、941、1511:論理回路
50、2251:OR回路
60、2252:インバータ
100:BISTコントローラ
101:テストアクセスポート(TAP)
102:制御部
103、284、984、1584:スキャンイネーブル生成部
104:クロックイネーブル生成部
105、286、986、1586:ランダムパターン発生器(PRPG)
106、282、982、1582:圧縮器(MISR)
107:マルチサイクルテストイネーブル生成部
201、202、901、902、906、1501、2201、2202:始点SFF
203、204、205、903、904、905、1502、2203、2204、2205:終点SFF
221、222、911、912、1521:分岐点
231、921、922、1541:合流点
271、272、330、931、932、933、1533:出力固定回路
273、973、1573、2242:マルチサイクルテストイネーブル信号(mcte)
280、980、1580:モード選択部
288、988、1588:クロック周波数変換部
332、720、730:セレクタ
334:固定値
700、740、750:スキャンフリップフロップ(SFF)
710:ディレイフリップフロック(DFF)
713:DFF710の出力信号
733:セレクタ730の出力信号
1531、1532:経路
2241:クロックイネーブル信号(ce1)
【特許請求の範囲】
【請求項1】
マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路の設計方法であって、
実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、
前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、
前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、
前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、
を含むことを特徴とする半導体集積回路のスキャンテスト回路の設計方法。
【請求項2】
前記出力固定回路を挿入するステップは、
前記分岐点と前記分岐点を含むマルチサイクルパスに接続した終点スキャンフリップフロップ間の経路上と、前記合流点と前記合流点を含むマルチサイクルパスに接続した始点スキャンフリップフロップ間の経路上と、に前記出力固定回路を挿入することを特徴とする請求項1に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項3】
前記分岐点毎に、前記分岐点を含むマルチサイクルパスに接続した終点スキャンフリップフロップの情報を格納した分岐点と終点スキャンフリップフロップの対応テーブルを生成し、
前記合流点毎に、前記合流点を含むマルチサイクルパスに接続した始点スキャンフリップフロップの情報を格納した合流点と始点スキャンフリップフロップの対応テーブルを生成し、
前記分岐点と終点スキャンフリップフロップの対応テーブル、及び、前記合流点と始点スキャンフリップフロップの対応テーブルに基づいて、前記出力固定回路を挿入するステップを行うことを特徴とする請求項2に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項4】
前記出力固定回路が複数存在する経路を抽出するステップと、
前記抽出された複数の出力固定回路のうち、冗長な前記出力固定回路を削除するステップと、をさらに含むことを特徴とする請求項1乃至3のいずれか1項に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項5】
挿入した前記出力固定回路を通る経路がシングルサイクルで動作可能か否かのタイミング解析を行うステップと、
前記タイミング解析により、タイミングエラーのない経路の前記出力固定回路を削除するステップと、をさらに含むことを特徴とする請求項1乃至4のいずれか1項に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項6】
マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路であって、
テスト対象の論理回路に対して、テストデータを供給する始点スキャンフリップフロップと、
前記始点スキャンフリップフロップの出力から、前記論理回路内の経路を通ったデータを受け取る終点スキャンフリップフロップと、
前記論理回路内の異なるサイクル数のパスに分岐する分岐点と前記分岐点を含むマルチサイクルパスの終点スキャンフリップフロップ間の経路上、及び、前記論理回路内の異なるサイクル数のパスが合流する合流点と前記合流点を含むマルチサイクルパスの始点スキャンフリップフロップ間の経路上に挿入された出力固定回路と、
マルチサイクルテストモードと、シングルサイクルテストモードのいずれかを選択するモード選択部と、
を備え、
前記モード選択部が前記マルチサイクルテストモードを選択している場合には、前記出力固定回路は入力データをそのまま出力し、
前記モード選択部が前記シングルサイクルテストモードを選択している場合には、前記出力固定回路は任意の一定値を出力することを特徴とする半導体集積回路のスキャンテスト回路。
【請求項7】
前記始点及び終点スキャンフリップフロップに対し、スキャン動作、キャプチャ動作のいずれかを設定するスキャンイネーブル信号を供給することを特徴とする請求項6に記載の半導体集積回路のスキャンテスト回路。
【請求項8】
前記始点及び終点スキャンフリップフロップと前記論理回路に供給されるクロック信号を、前記モード選択部が前記マルチサイクルテストモードを選択している場合には、前記シングルサイクルテストモードを選択している場合の1/Nの周波数(ここで、Nはマルチサイクル数)に設定することを特徴とする請求項6または7に記載の半導体集積回路のスキャンテスト回路。
【請求項9】
マルチサイクルパスを含む半導体集積回路のテスト方法であって、
実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、
前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、
前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、
前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、
シングルサイクルテストモードと、マルチサイクルテストモードのいずれかを選択するステップと、
前記シングルサイクルテストモードが選択された場合に実施されるシングルサイクルテストステップと、
前記マルチサイクルテストモードが選択された場合に実施されるマルチサイクルテストステップと、
を含み、
前記シングルサイクルテストステップは、
始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するシングルサイクルスキャンステップと、
終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作と同じクロック周波数で、前記論理回路による前記テストデータの応答をキャプチャするシングルサイクルキャプチャステップと、
前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すシングルサイクルシフトアウトステップと、
を含み、
前記マルチサイクルテストステップは、
始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するマルチサイクルスキャンステップと、
終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作のクロック周波数の1/Nのクロック周波数(ここで、Nはマルチサイクル数)で、前記論理回路による前記テストデータの応答をキャプチャするマルチサイクルキャプチャステップと、
前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すマルチサイクルシフトアウトステップと、
を含むことを特徴とする半導体集積回路のスキャンテスト方法。
【請求項1】
マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路の設計方法であって、
実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、
前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、
前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、
前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、
を含むことを特徴とする半導体集積回路のスキャンテスト回路の設計方法。
【請求項2】
前記出力固定回路を挿入するステップは、
前記分岐点と前記分岐点を含むマルチサイクルパスに接続した終点スキャンフリップフロップ間の経路上と、前記合流点と前記合流点を含むマルチサイクルパスに接続した始点スキャンフリップフロップ間の経路上と、に前記出力固定回路を挿入することを特徴とする請求項1に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項3】
前記分岐点毎に、前記分岐点を含むマルチサイクルパスに接続した終点スキャンフリップフロップの情報を格納した分岐点と終点スキャンフリップフロップの対応テーブルを生成し、
前記合流点毎に、前記合流点を含むマルチサイクルパスに接続した始点スキャンフリップフロップの情報を格納した合流点と始点スキャンフリップフロップの対応テーブルを生成し、
前記分岐点と終点スキャンフリップフロップの対応テーブル、及び、前記合流点と始点スキャンフリップフロップの対応テーブルに基づいて、前記出力固定回路を挿入するステップを行うことを特徴とする請求項2に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項4】
前記出力固定回路が複数存在する経路を抽出するステップと、
前記抽出された複数の出力固定回路のうち、冗長な前記出力固定回路を削除するステップと、をさらに含むことを特徴とする請求項1乃至3のいずれか1項に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項5】
挿入した前記出力固定回路を通る経路がシングルサイクルで動作可能か否かのタイミング解析を行うステップと、
前記タイミング解析により、タイミングエラーのない経路の前記出力固定回路を削除するステップと、をさらに含むことを特徴とする請求項1乃至4のいずれか1項に記載の半導体集積回路のスキャンテスト回路の設計方法。
【請求項6】
マルチサイクルパスを含む半導体集積回路をテストするスキャンテスト回路であって、
テスト対象の論理回路に対して、テストデータを供給する始点スキャンフリップフロップと、
前記始点スキャンフリップフロップの出力から、前記論理回路内の経路を通ったデータを受け取る終点スキャンフリップフロップと、
前記論理回路内の異なるサイクル数のパスに分岐する分岐点と前記分岐点を含むマルチサイクルパスの終点スキャンフリップフロップ間の経路上、及び、前記論理回路内の異なるサイクル数のパスが合流する合流点と前記合流点を含むマルチサイクルパスの始点スキャンフリップフロップ間の経路上に挿入された出力固定回路と、
マルチサイクルテストモードと、シングルサイクルテストモードのいずれかを選択するモード選択部と、
を備え、
前記モード選択部が前記マルチサイクルテストモードを選択している場合には、前記出力固定回路は入力データをそのまま出力し、
前記モード選択部が前記シングルサイクルテストモードを選択している場合には、前記出力固定回路は任意の一定値を出力することを特徴とする半導体集積回路のスキャンテスト回路。
【請求項7】
前記始点及び終点スキャンフリップフロップに対し、スキャン動作、キャプチャ動作のいずれかを設定するスキャンイネーブル信号を供給することを特徴とする請求項6に記載の半導体集積回路のスキャンテスト回路。
【請求項8】
前記始点及び終点スキャンフリップフロップと前記論理回路に供給されるクロック信号を、前記モード選択部が前記マルチサイクルテストモードを選択している場合には、前記シングルサイクルテストモードを選択している場合の1/Nの周波数(ここで、Nはマルチサイクル数)に設定することを特徴とする請求項6または7に記載の半導体集積回路のスキャンテスト回路。
【請求項9】
マルチサイクルパスを含む半導体集積回路のテスト方法であって、
実動作モードでテスト対象の論理回路のタイミング解析を行うステップと、
前記タイミング解析に基づいて、前記論理回路内のマルチサイクルパスを抽出するステップと、
前記論理回路内の異なるサイクル数のパスに分岐する分岐点と、前記論理回路内の異なるサイクル数のパスが合流する合流点を抽出するステップと、
前記分岐点を含むマルチサイクルパスの前記分岐点より出力側の経路上と、前記合流点を含むマルチサイクルパスの前記合流点より入力側の経路上に、マルチサイクルテスト時には入力データをそのまま出力し、シングルサイクルテスト時には任意の一定値を出力する出力固定回路を挿入するステップと、
シングルサイクルテストモードと、マルチサイクルテストモードのいずれかを選択するステップと、
前記シングルサイクルテストモードが選択された場合に実施されるシングルサイクルテストステップと、
前記マルチサイクルテストモードが選択された場合に実施されるマルチサイクルテストステップと、
を含み、
前記シングルサイクルテストステップは、
始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するシングルサイクルスキャンステップと、
終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作と同じクロック周波数で、前記論理回路による前記テストデータの応答をキャプチャするシングルサイクルキャプチャステップと、
前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すシングルサイクルシフトアウトステップと、
を含み、
前記マルチサイクルテストステップは、
始点スキャンフリップフロップによりスキャンチェーンを構成し、テストデータをシフト入力するマルチサイクルスキャンステップと、
終点スキャンフリップフロップのデータ入力を前記論理回路に接続し、実動作のクロック周波数の1/Nのクロック周波数(ここで、Nはマルチサイクル数)で、前記論理回路による前記テストデータの応答をキャプチャするマルチサイクルキャプチャステップと、
前記終点スキャンフリップフロップによりスキャンチェーンを構成し、前記キャプチャしたデータを取り出すマルチサイクルシフトアウトステップと、
を含むことを特徴とする半導体集積回路のスキャンテスト方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2012−189451(P2012−189451A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−53389(P2011−53389)
【出願日】平成23年3月10日(2011.3.10)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願日】平成23年3月10日(2011.3.10)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
[ Back to top ]