(57)【要約】【課題】位相のずれたクロックを用いても筒抜けが生ずることなく正確なスキャンテストを実行できるようにする。【解決手段】複数のフリップフロップ群には、それぞれのフリップフロップ群に対応し、互いにアクティブパルスの位相が相違するクロックを含む第１のクロックＣＬＫ１，２，３が供給され、ラッチ回路には、該ラッチ回路の入力側と出力側とに接続されるフリップフロップ群に供給される２つのアクティブパルスのうち、あるクロックサイクルにおいて遅いタイミングで供給されるアクティブパルスのエッジから次のクロックサイクルにおいて早いタイミングで供給されるアクティブパルスのエッジまでの期間にラッチをアクティブにする第２のクロックＧ１が供給される。半導体集積回路。【選択図】図１
2011153917.tif 000002
【特許請求の範囲】
【請求項１】
スキャンチェーンを構成する１つ以上のフリップフロップから成るフリップフロップ群を複数有し、前記複数のフリップフロップ群がラッチ回路を挟んでシリアル接続された半導体集積回路であって、
前記複数のフリップフロップ群には、それぞれの前記フリップフロップ群に対応し、互いにアクティブパルスの位相が相違するクロックを含む第１のクロックが供給され、
前記ラッチ回路には、該ラッチ回路の入力側と出力側とに接続される前記フリップフロップ群に供給される２つの前記アクティブパルスのうち、あるクロックサイクルにおいて遅いタイミングで供給される前記アクティブパルスのエッジから次のクロックサイクルにおいて早いタイミングで供給される前記アクティブパルスのエッジまでの期間にラッチをアクティブにする第２のクロックが供給される、
半導体集積回路。
【請求項２】
１つの前記クロックサイクルに複数のアクティブパルスを含む基準クロックに基づいて、前記基準クロックの各アクティブパルスに位相が対応する前記アクティブパルスを有する複数の前記第１のクロックを生成するクロックコントローラー、
を更に備える請求項１に記載の半導体集積回路。
【請求項３】
前記基準クロックの前記１つのクロックサイクルにおける前記アクティブパルスの数は、前記フリップフロップ群の数に対応している、
請求項２に記載の半導体集積回路。
【請求項４】
前記クロックコントローラーは、前記基準クロックに基づいて前記第２のクロックを生成する、
請求項２又は３に記載の半導体集積回路。
【請求項５】
前記第２のクロックは、複数の前記ラッチ回路に対して共通に供給される、
請求項１〜４のいずれか１つに記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、特にスキャンテストを実施するテスト回路に関する。
【背景技術】
【０００２】
近年の半導体集積回路の微細化、大規模化に伴い、スキャンテスト実施時における消費電力は増加する傾向にあり、更にテストコスト削減のために同時にテストするＬＳＩ数も増加している。そのため、スキャンテストの実施時における消費電力のピーク値がＬＳＩテスターの電源供給能力を超えることによる許容値以上のＩＲ−Ｄｒｏｐの発生、同時動作によるスイッチングノイズの影響等により、ＬＳＩ内部で誤動作が発生し、正しいテスト結果が得られないという問題が生じている。そのため、スキャンテスト実施時の消費電力のピーク値を小さくすることができるテスト回路の実現が求められている。
【０００３】
特許文献１において、消費電力のピーク値を低減することを目的とするテスト回路であって、それぞれ異なるクロック信号に基づいて検査データをシフトする複数のスキャンチェーンを備え、複数のスキャンチェーン間にラッチを挿入することでデータの受け渡しを行う構成が開示されている。
【０００４】
図５は、特許文献１に係る半導体集積回路装置１０１の構成を示している。この半導体集積回路装置１０１は、ｍ本（ｍは２以上の整数を示す。以下同じ。）のスキャンチェーンＳＣ１〜ＳＣｍと、検査データ供給部１１０と、データ保持部１２０と、応答データ処理部１３０と、セレクタ回路１４０とを有する。ｍ個のスキャンチェーンＳＣ１〜ＳＣｍが直列に接続されて１本のスキャンチェーンが形成され、このスキャンチェーンにおいて検査データがシリアルにシフトされる。
【０００５】
スキャンチェーンＳＣ１〜ＳＣｍは、それぞれ異なるクロックドメインに属するフリップフロップにより構成される。スキャンチェーンＳＣｎ（ｎは１からｍまでの整数を示す。以下同じ。）は、クロック信号ＣＫｎに基づいて検査データをシフトする。
【０００６】
クロック信号ＣＫ１〜ＣＫｍは、等しい周波数を有する。例えば、図５に示す半導体集積回路装置１０１には、通常の動作モードと検査モードとでクロック信号ＣＫ１〜ＣＫｍの周波数を変更できる不図示のクロック生成回路が設けられており、このクロック生成回路によって検査モードにおけるクロック信号ＣＫ１〜ＣＫｍの周波数が全て等しくなるように設定される。
【０００７】
ただし、クロック信号ＣＫ１〜ＣＫｍは、互いの周波数が一致しても、位相まで一致しているとは限らない。そのため、スキャンチェーンＳＣ１〜ＳＣｍを直列接続する検査モードにおいては、スキャンチェーン間におけるデータシフトのタイミングが後述のデータ保持部２０によって調節される。
【０００８】
スキャンチェーンＳＣ１〜ＳＣｍは、それぞれ複数個のフリップフロップを直列に接続して構成される。図５において、スキャンチェーンＳＣ１は、ｉ個のフリップフロップＦＦ１＿１〜ＦＦ１＿ｉの直列接続により形成される。スキャンチェーンＳＣ２は、ｊ個のフリップフロップＦＦ２＿１〜ＦＦ２＿ｊの直列接続により形成される。スキャンチェーンＳＣ３は、ｋ個のフリップフロップＦＦ３＿１〜ＦＦ３＿ｋの直列接続により形成される。スキャンチェーンＳＣｍは、ｐ個のフリップフロップＦＦｍ＿１〜ＦＦｍ＿ｐの直列接続により形成される。以下、スキャンチェーンＳＣｎを形成する任意のフリップフロップを「Ｆｎ」と記す場合がある。
【０００９】
例えば、データ保持部１２０は、スキャンチェーンＳＣｑ−１（ｑ＝２〜ｍ）の終段からクロック信号ＣＫｑ−１に同期して出力される検査データを、クロック信号ＣＫｑ−１より半周期程度遅れたタイミングで保持し、次段のスキャンチェーンＳＣｑに出力する。これにより、次段のスキャンチェーンＳＣｑにおいては、クロックサイクルの半周期程度だけ、スキャンチェーンＳＣｑ−１の出力データを取り込み可能な期間が延長される。これにより、クロック信号ＣＫｑ−１に対してクロック信号ＣＫｑの位相が多少遅れても、スキャンチェーンＳＣｑ−１からスキャンチェーンＳＣｑへのデータシフトが正しく行われる。
【００１０】
図６は、データ保持部１２０を介したデータシフト動作を示している。スキャンレジスタＳＣ１の最終段のフリップフロップＦ１＿ｉとスキャンレジスタＳＣ２の初段のフリップフロップＦ２＿１との間には、データ保持部１２０のラッチ回路ＬＡ１が介在している。フリップフロップＦ１＿ｉにおいてはクロック信号ＣＫ１（図６中（Ａ））の立ち上がりに同期して前段のデータがラッチされるが（図６中（Ｂ））、ラッチ回路ＬＡ１においてはクロック信号ＣＫ１の立下りに同期してフリップフロップＦ１＿ｉのデータがラッチされる（図６中（Ｃ））。ラッチ回路ＬＡ１においてデータが保持されることから、フリップフロップＦ１＿ｉに新たなクロックサイクルのデータがラッチされた後も、しばらくの間、前のクロックサイクルのデータがフリップフロップＦ２＿１に入力され続ける。つまり、フリップフロップＦ２＿１においてラッチされるべきデータが、より長い期間、フリップフロップＦ２−1に入力され続ける。例えば、クロック信号ＣＫ１のデューティー比（ハイレベル期間とローレベル期間との比）が１：１の場合、フリップフロップＦ２＿１のデータ入力期間が約２分の１周期だけ延長される。
【００１１】
以上のように、前記半導体集積回路装置１０１によれば、第２の検査モードにおいてスキャンチェーンＳＣ１〜ＳＣｍが直列に接続され、その初段のスキャンチェーンＳＣ１に検査データが供給される。供給された検査データは、各スキャンチェーンにおいて、それぞれ位相が異なるクロック信号に基づいてシフトされるが、直列接続されたスキャンチェーンの間をシフトする際には、データ保持部２０によって保持される。即ち、検査データは、スキャンチェーンの間においてクロック信号（ＣＫ１〜ＣＫｍ）のクロックサイクルの順序に従って順次にシフトするように、直列接続されたスキャンチェーンの間をシフトする途中でデータ保持部１２０により順次に保持される。具体的には、スキャンチェーンＳＣｒ（ｒ＝１〜ｍ−１）からクロック信号ＣＫｒの立ち上がりに同期して出力される検査データが、データ保持部１２０のラッチ回路ＬＡｒによってクロック信号ＣＫｒの立ち下りに同期して保持され、後段のスキャンチェーンＳＣｒ＋１に出力される。したがって、それぞれ異なるクロック信号に基づいて検査データをシフトする複数のスキャンチェーンを直列に接続する場合でも、スキャンチェーンの間でデータシフトのエラーを生じることなく適切にスキャンテストを行うことができる。
【００１２】
また、特許文献２において、スキャンテスト実施の消費電力のピーク値を抑えることを目的としたテスト回路であって、スキャンチェーンをクロック領域ごとに複数に分割し、それぞれの領域に位相が異なるクロックを供給する構成が開示されている。この構成においては、クロック領域をまたがるスキャンチェーンが発生した場合、分割したスキャンチェーン毎にテストパターン生成回路ＴＰＧと多入力符号圧縮回路ＭＩＳＲが用意される。テストパターン生成回路ＴＰＧと多入力符号圧縮回路ＭＩＳＲは、フリップフロップや多段の組合せ回路で構成される。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００９−２１６６１９号公報
【特許文献２】特開２００９−１０９１９２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
上述した通り、特許文献１に係る発明は、位相の合ったクロックを入力することを前提としたスキャンパス検査を行う技術であり、分割したスキャンチェーン毎に位相をずらしたクロックを供給することで、消費電力のピーク値を低減することができるものである。しかしながら、位相をずらしたクロックを供給すると、データの筒抜けが発生する場合がある。データの筒抜けを発生させずに正しくデータシフト動作を行うためには、回路構成を調査するための膨大な設計工数が必要となる。
【００１５】
図７は、従来技術において筒抜けが発生する場合のタイミングチャートを示している。ここでは、特許文献１に係る回路構成において各スキャンチェーンに位相が異なるクロックを供給した場合にデータの筒抜けが発生する動作が示されている。クロック信号ＣＫ１が時刻Ｔ１で立ち上がり、遅れて時刻Ｔ３１でクロック信号ＣＫ２が立ち上がるように位相をずらした場合が示されている。フリップフロップＦ１＿ｉは、クロック信号ＣＫ１の立ち上がりに同期してデータを取り込むため、時刻Ｔ１でデータＤ０からデータＤ１へ変化する。ラッチ回路ＬＡ１は、クロック信号ＣＫ１のローレベルラッチであるため、時刻Ｔ３０でフリップフロップＦ１＿ｉのデータＤ１を取り込み、時刻Ｔ２で保持する。ここで、フリップフロップＦ２＿１は、クロック信号ＣＫ２の立ち上がりに同期してデータを取り込むため、時刻Ｔ３１でラッチ回路ＬＡ１のデータＤ１が取り込まれてしまう。
【００１６】
以上説明した通り、特許文献１においては、クロック信号ＣＫ１の立ち上がりがクロック信号ＣＫ２の立ち上がりより早い場合、クロックサイクルＣ１内でフリップフロップＦ１＿ｉからフリップフロップＦ２＿１へデータが転送されるため筒抜けが発生し、正しくデータシフト動作することができないという問題がある。
【００１７】
図８は、図７に対応し、データの筒抜けが発生しない場合のタイミングチャートを示している。図７との違いは、クロック信号ＣＫ１とクロック信号ＣＫ２の位相関係が逆になっていることである。クロック信号ＣＫ２が時刻Ｔ１で立ち上がり、遅れて時刻Ｔ４０でクロック信号ＣＫ１が立ち上がるように位相をずらした場合が示されている。フリップフロップＦ１＿ｉは、時刻Ｔ４０でデータＤ０からデータＤ１へ変化する。ラッチ回路ＬＡ１は時刻Ｔ４１でフリップフロップＦ１＿ｉのデータＤ１を取り込み、時刻Ｔ５０で保持する。フリップフロップＦ２＿１は、時刻Ｔ２でラッチ回路ＬＡ１のデータＤ１を取り込む。
【００１８】
以上説明した通り、特許文献１においては、クロック信号ＣＫ２の立ち上がりがクロック信号ＣＫ１の立ち上がりより早い場合、フリップフロップＦ１＿ｉがクロックサイクルＣ１内でデータを取り込み、フリップフロップＦ２＿１がクロックサイクルＣ２内でデータを取り込むため、データの筒抜けが発生せず、正しいデータシフト動作が行われる。
【００１９】
上述したように、特許文献１においては、複数のクロック信号の位相をずらして供給した場合に、そのずらし方によっては筒抜けが発生し、正しいデータシフト動作が行われない。正しいデータシフト動作を行うためには、クロック信号ＣＫ２の立ち上がりがクロック信号ＣＫ１の立ち上がりより早くなることが必須であり、１つの組合せしか存在しない。偶然に正しい動作となる確率は、クロック信号の組み合わせ数（つまりスキャンチェーン数）の階乗分の１となる。例えば、図５に示す回路構成において、スキャンチェーン数が３２の場合、（２．６×１０３５）分の１という極めて低い確率となる。また、３２の階乗の組み合わせの中から唯一正しく動作するクロック信号の供給順番を見つけるためには、検査データＳｉｎから応答データＳｏｕｔまでのスキャンチェーンを構成する全フリップフロップとラッチ回路を抽出し、当該フリップフロップとラッチ回路に入力されるクロック信号名を調査し、クロック信号毎にスキャンチェーンＳＣ１〜ＳＣｍに分類し、スキャンチェーンＳＣ１〜ＳＣｍの接続関係を調査し、スキャンチェーンの最後段（ＳＣｍ）側から順に位相がずれたクロック信号を入力しなければならない。近年の大規模ＬＳＩでは、フリップフロップは数１０万個を超えており、且つスキャンチェーン数は圧縮スキャンを適用する場合は１０００を超える場合もあり、前記回路調査や、位相がずれたクロック信号の供給回路の設計に非常に多くの時間が必要となる。
【００２０】
また、特許文献２に係る構成においては、テストパターン生成回路ＴＰＧと多入力符号圧縮回路ＭＩＳＲがフリップフロップや多段の組合せ回路で構成されるため、スキャンパスの分割数を増やした場合には、分割数×（テストパターン生成回路ＴＰＧ＋多入力符号圧縮回路ＭＩＳＲ）分の大きな回路規模増加となる問題がある。
【課題を解決するための手段】
【００２１】
本発明の一態様は、スキャンチェーンを構成する１つ以上のフリップフロップから成るフリップフロップ群を複数有し、前記複数のフリップフロップ群がラッチ回路を挟んでシリアル接続された半導体集積回路であって、前記複数のフリップフロップ群には、それぞれの前記フリップフロップ群に対応し、互いにアクティブパルスの位相が相違するクロックを含む第１のクロックが供給され、前記ラッチ回路には、該ラッチ回路の入力側と出力側とに接続される前記フリップフロップ群に供給される２つの前記アクティブパルスのうち、あるクロックサイクルにおいて遅いタイミングで供給される前記アクティブパルスのエッジから次のクロックサイクルにおいて早いタイミングで供給される前記アクティブパルスのエッジまでの期間にラッチをアクティブにする第２のクロックが供給されるものである。
【００２２】
上記態様によれば、分割されたスキャンチェーン（複数のフリップフロップ群）に位相をずらしたクロック信号（第１のクロック）を供給し、且つ供給するクロック信号の位相をいかようにずらした場合であっても、データの筒抜けを生ずることなく、正しいデータシフト動作を行うことができる。
【発明の効果】
【００２３】
本発明によれば、位相のずれた第１のクロックを用いても筒抜けを生じさせることなく正確なスキャンテストを実行することができ、フリップフロップの同時スイッチング数の減少によるピーク時の消費電力の削減を図ることができる。更に、従来技術で必要だった全フリップフロップとラッチ回路の抽出、当該フリップフロップとラッチ回路に入力されるクロック信号名の調査、そのクロック信号毎のスキャンチェーン分類、スキャンチェーンの接続関係調査、スキャンチェーンの最後段側から順に位相がずれたクロック信号を入力するという工程が不要となるため、設計工数が削減できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態１に係る半導体集積回路の構成を示す図である。
【図２】実施の形態１に係る半導体集積回路におけるデータシフト動作を例示するタイミングチャートである。
【図３】実施の形態１に係る半導体集積回路のクロックコントローラーの構成を例示する図である。
【図４】図３に示すクロックコントローラーの動作を例示するタイミングチャートである。
【図５】従来の半導体集積回路の構成を例示する図である。
【図６】図５に示す半導体集積回路におけるスキャンチェーン間のデータシフト動作を例示するタイミングチャートである。
【図７】図５に示す半導体集積回路において各スキャンチェーンに位相が異なるクロックを供給した場合にデータの筒抜けが発生する動作を例示するタイミングチャートである。
【図８】図５に示す半導体集積回路において各スキャンチェーンに位相が異なるクロックを供給した場合に正しくデータシフトする動作を例示するタイミングチャートである。
【発明を実施するための形態】
【００２５】
実施の形態１
図１は、本発明の実施の形態１に係るスキャンテスト回路１の構成を示している。このスキャンテスト回路１は、クロックコントローラー１０、スキャンチェーンＦＦ１＿ＳＣ、スキャンチェーンＦＦ２＿ＳＣ、スキャンチェーンＦＦ３＿ＳＣ、ラッチ回路Ｌ１、ラッチ回路Ｌ２から構成される。
【００２６】
スキャンチェーンＦＦ１＿ＳＣはスキャンフリップフロップＦＦ１＿１、ＦＦ１＿２、ＦＦ１＿３を直列に接続して形成され、スキャンイン端子ＳＩＮから入力された検査データをクロック信号ＣＬＫ１に基づいてシフトする。
【００２７】
スキャンチェーンＦＦ２＿ＳＣはスキャンフリップフロップＦＦ２＿１、ＦＦ２＿２、ＦＦ２＿３を直列に接続して形成され、ラッチ回路Ｌ１から出力された検査データをクロック信号ＣＬＫ２に基づいてシフトする。
【００２８】
スキャンチェーンＦＦ３＿ＳＣはスキャンフリップフロップＦＦ３＿１、ＦＦ３＿２、ＦＦ３＿３を直列に接続して形成され、ラッチ回路Ｌ２から出力された検査データをクロック信号ＣＬＫ３に基づいてシフトし、スキャンアウト端子ＳＯＵＴに応答データとして出力する。
【００２９】
ラッチ回路Ｌ１はスキャンチェーンＦ  Ｆ１＿ＳＣとスキャンチェーンＦＦ２＿ＳＣの間に接続され、クロックコントローラー１０の出力であるゲート信号Ｇ１が入力される。
【００３０】
ラッチ回路Ｌ２はスキャンチェーンＦＦ２＿ＳＣとスキャンチェーンＦＦ３＿ＳＣの間に接続され、クロックコントローラー１０の出力であるゲート信号Ｇ１が入力される。
【００３１】
クロックコントローラー１０の出力であるクロック信号ＣＬＫ１はスキャンフリップフロップＦＦ１＿ＳＣに入力され、クロック信号ＣＬＫ２はスキャンフリップフロップＦＦ２＿ＳＣに入力され、クロック信号ＣＬＫ３はスキャンフリップフロップＦＦ３＿ＳＣに入力される。
【００３２】
クロック信号ＣＬＫは、当該スキャンテスト回路１の基準となるクロックであり、リセット信号ＲＳＴと共に、クロックコントローラー１０に入力される。尚、本発明はスキャンチェーンが増えたらラッチ回路も増える構成となるが、スキャンチェーン数やスキャンフリップフロップの数が限定されるものではない。
【００３３】
図３は、クロックコントローラー１０の回路構成を例示している。クロックコントローラー１０はクロックゲーティングセルＣＧＣ１、クロックゲーティングセルＣＧＣ２、クロックゲーティングセルＣＧＣ３、フリップフロップＣＣ＿ＦＦ１、フリップフロップＣＣ＿ＦＦ２、フリップフロップＣＣ＿ＦＦ３から構成される。
【００３４】
フリップフロップＣＣ＿ＦＦ１、ＣＣ＿Ｆ２、ＣＣ＿Ｆ３は負論理の非同期リセット付きフリップフロップである。フリップフロップＣＣ＿ＦＦ１、ＣＣ＿ＦＦ２、ＣＣ＿ＦＦ３のクロック入力にはクロック信号ＣＬＫが入力され、非同期セット、リセット入力には負論理のリセット信号ＲＳＴが入力される。フリップフロップＣＣ＿ＦＦ１の出力はゲート信号Ｇ１であり、クロックゲーティングセルＣＧＣ１、ＣＧＣ２、ＣＧＣ３の出力は、それぞれクロック信号ＣＬＫ１、ＣＬＫ２、ＣＬＫ３である。
【００３５】
フリップフロップＣＣ＿ＦＦ１は、クロック信号ＣＬＫの立ち上がりに同期してデータを取り込み、リセット信号ＲＳＴがローレベルになると、クロック信号ＣＬＫとは非同期でハイレベルを出力する。フリップフロップＣＣ＿ＦＦ２、ＣＣ＿ＦＦ３はクロック信号ＣＬＫの立ち上がりに同期してデータを取り込み、リセット信号ＲＳＴがローレベルになると、クロック信号ＣＬＫとは非同期でローレベルを出力する。更に、フリップフロップＣＣ＿ＦＦ１、ＣＣ＿ＦＦ２、ＣＣ＿ＦＦ３はスキャンチェーンに取り込まれないフリップフロップ群である。
【００３６】
クロックゲーティングセルＣＧＣ１はラッチ回路ＣＣ＿Ｌ１とＡＮＤ回路ＣＣ＿ＡＮＤ１より構成され、ラッチ回路ＣＣ＿Ｌ１の出力がＡＮＤ回路ＣＣ＿ＡＮＤ１の一方に入力され、他の一方の入力はラッチ回路ＣＣ＿Ｌ１のゲートと接続している。クロックゲーティングセルＣＧＣ２はラッチ回路ＣＣ＿Ｌ２とＡＮＤ回路ＣＣ＿ＡＮＤ２より構成され、ラッチ回路ＣＣ＿Ｌ２の出力がＡＮＤ回路ＣＣ＿ＡＮＤ２の一方に入力され、他の一方の入力はラッチ回路ＣＣ＿Ｌ２のゲートと接続している。クロックゲーティングセルＣＧＣ３はラッチ回路ＣＣ＿Ｌ３とＡＮＤ回路ＣＣ＿ＡＮＤ３より構成され、ラッチ回路ＣＣ＿Ｌ３の出力がＡＮＤ回路ＣＣ＿ＡＮＤ３の一方に入力され、他の一方の入力はラッチ回路ＣＣ＿Ｌ３のゲートと接続している。
【００３７】
フリップフロップＣＣ＿ＦＦ１の出力は、クロックゲーティングセルＣＧＣ１のラッチ回路ＣＣ＿Ｌ１とフリップフロップＣＣ＿ＦＦ２のデータに入力される。フリップフロップＣＣ＿ＦＦ２の出力は、クロックゲーティングセルＣＧＣ２のラッチ回路ＣＣ＿Ｌ２とフリップフロップＣＣ＿ＦＦ３のデータに入力される。フリップフロップＣＣ＿ＦＦ３の出力は、クロックゲーティングセルＣＧＣ３のラッチ回路ＣＣ＿Ｌ３とフリップフロップＣＣ＿ＦＦ１のデータに入力される。
【００３８】
尚、本実施の形態においては、クロックコントローラー１０から出力されるＧ１はラッチ回路Ｌ１、ラッチ回路Ｌ２に共通で入力されているが、ラッチに入力するゲート信号が、ラッチ回路の入力側と出力側に接続される２つのフリップフロップ群に供給されるアクティブパルスのうち遅いアクティブパルスのアクティブエッジから次の早いアクティブパルスのアクティブエッジまでの間の任意の期間に前記ラッチをアクティブにする構成を備えていれば、分けても良い。
【００３９】
図２は、前記半導体集積回路１においてデータシフトを行った場合の動作を示すタイミングチャートである。このタイミングチャートにおいて、クロック信号ＣＬＫ、ＣＬＫ１、ＣＬＫ２、ＣＬＫ３（第１のクロック）、ゲート信号Ｇ１（第２のクロック）、スキャンフリップフロップＦＦ１＿３の出力、ラッチＬ１の出力、スキャンフリップフロップＦＦ２＿１の出力の信号レベル変化が、クロックサイクルＣ１、Ｃ２の期間において示されている。
【００４０】
クロック信号ＣＬＫは、クロックサイクルＣ１、Ｃ２内にそれぞれ３つのアクティブパルスを持つ。前記クロックコントローラー１０は、クロック信号ＣＬＫを入力とし、前記３つのアクティブパルスをクロック信号ＣＬＫの立ち上がりで、それぞれクロック信号ＣＬＫ１〜ＣＬＫ３に分配して出力する。
【００４１】
まずクロックサイクルＣ１内の動作について説明する。時刻Ｔ１０において、クロック信号ＣＬＫ１が立ち上がることにより、フリップフロップＦＦ１＿３の出力データが変化し、ゲート信号Ｇ１が立下るため、ラッチ回路Ｌ１は、スキャンフリップフロップＦＦ１＿３の出力データを保持する。
【００４２】
時刻Ｔ１１において、クロック信号ＣＬＫ２が立ち上がることにより、フリップフロップＦＦ２＿１は、ラッチ回路Ｌ１の出力データを取り込む。
【００４３】
時刻Ｔ１２において、ゲート信号Ｇ１がアクティブとなり、ラッチ回路Ｌ１がスルー状態となるため、ラッチ回路Ｌ１がフリップフロップＦＦ１＿３の出力データを取り込む。
【００４４】
次にクロックサイクルＣ２内の動作について説明する。時刻Ｔ１３において、クロック信号ＣＬＫ１が立ち上がることにより、フリップフロップＦＦ１＿３の出力データが変化し、ゲート信号Ｇ１が立下るため、ラッチ回路Ｌ１は、スキャンフリップフロップＦＦ１＿３の出力データＤ１を保持する。
【００４５】
時刻Ｔ１４において、クロック信号ＣＬＫ２が立ち上がることにより、フリップフロップＦＦ２＿１は、ラッチ回路Ｌ１の出力データＤ１を取り込む。
【００４６】
このように、フリップフロップＦＦ１＿３の出力データＤ１がフリップフロップＦＦ２＿１に取り込まれるタイミングは、１クロックサイクル後となり、データの筒抜けを発生することなく、正しいデータシフト動作を行うことができる。
【００４７】
尚、本発明においては、スキャンチェーン数やスキャンフリップフロップの数が増加しても上記と同様の動作が行われる。
【００４８】
図４は、前記クロックコントローラー１０の動作を示すタイミングチャートである。このタイミングチャートを参照してクロックサイクルＣ１内でクロック信号ＣＬＫの３つのアクティブパルスからクロック信号ＣＬＫ１，ＣＬＫ２，ＣＬＫ３に１つずつ位相の違うアクティブパルスを分配する動作を説明する。図４において、クロック信号ＣＬＫ、ＣＬＫ１、ＣＬＫ２、ＣＬＫ３と、ゲート信号Ｇ１と、負論理のリセット信号ＲＳＴと、フリップフロップＣＣ＿ＦＦ１、ＣＣ＿ＦＦ２、ＣＣ＿ＦＦ３の出力と、ラッチ回路ＣＣ＿Ｌ１、ＣＣ＿Ｌ２、ＣＣ＿Ｌ３の出力との信号レベルの変化が、クロックサイクルＣ１の期間において示されている。
【００４９】
時刻Ｔ２０以前において、リセット信号ＲＳＴはローレベル（アクティブ）であり、フリップフロップＣＣ＿ＦＦ１のデータはハイレベル、フリップフロップＣＣ＿ＦＦ２、ＣＣ＿ＦＦ３のデータはローレベルにセットされる。また、クロック信号ＣＬＫがローレベルであるため、ラッチ回路ＣＣ＿Ｌ１の出力データは、フリップフロップＣＣ＿ＦＦ１の出力データを取り込みハイレベルとなる。ラッチ回路ＣＣ＿Ｌ２の出力データは、フリップフロップＣＣ＿ＦＦ２の出力データを取り込みローレベルとなる。ラッチ回路ＣＣ＿Ｌ３の出力データは、フリップフロップＣＣ＿Ｆ３の出力データを取り込みローレベルとなる。また、クロック信号ＣＬＫ１、ＣＬＫ２、ＣＬＫ３は、クロック信号ＣＬＫがローレベルのためローレベルとなる。時刻Ｔ２０において、リセット信号ＲＳＴが立ち上がり、時刻Ｔ１でクロックサイクルＣ１が開始となる。
【００５０】
次に時刻Ｔ２１において、クロック信号ＣＬＫの立ち上がりに同期して、フリップフロップＣＣ＿ＦＦ１はフリップフロップＣＣ＿ＦＦ３の出力データローレベルを取り込み、フリップフロップＣＣ＿ＦＦ２はフリップフロップＣＣ＿ＦＦ１の出力データハイレベルを取り込み、フリップフロップＣＣ＿ＦＦ３はフリップフロップＣＣ＿ＦＦ２の出力データローレベルを取り込む。
【００５１】
また時刻Ｔ２１において、ラッチ回路ＣＣ＿Ｌ１はフリップフロップＣＣ＿ＦＦ１の出力データハイレベルを保持し、ラッチ回路ＣＣ＿Ｌ２はフリップフロップＣＣ＿ＦＦ２の出力データローレベルを保持し、ラッチ回路ＣＣ＿Ｌ３はフリップフロップＣＣ＿ＦＦ３の出力データローレベルを保持する。
【００５２】
また時刻Ｔ２１において、ＡＮＤ回路ＣＣ＿ＡＮＤ１の２入力ラッチ回路ＣＣ＿Ｌ１の出力とクロック信号ＣＬＫが共にハイレベルとなるため、クロック信号ＣＬＫ１はハイレベルとなる。ＡＮＤ回路ＣＣ＿ＡＮＤ２の一方の入力であるラッチ回路ＣＣ＿Ｌ２がローレベルであるためクロック信号ＣＬＫ２はローレベルを維持し、ＡＮＤ回路ＣＣ＿ＡＮＤ３の一方の入力であるラッチ回路ＣＣ＿Ｌ３がローレベルであるためクロック信号ＣＬＫ３はローレベルを維持する。
【００５３】
時刻Ｔ２２において、クロック信号ＣＬＫは立ち下がるが、フリップフロップＣＣ＿ＦＦ１、ＣＣ＿ＦＦ２、ＣＣ＿ＦＦ３は立ち上がり同期のフリップフロップのためそれぞれのデータを保持する。
【００５４】
また時刻Ｔ２２において、ラッチ回路ＣＣ＿Ｌ１、ＣＣ＿Ｌ２、ＣＣ＿Ｌ３のゲートに繋がるクロック信号ＣＬＫがアクティブ（ローレベル）となるため、ラッチ回路ＣＣ＿Ｌ１、ＣＣ＿Ｌ２、ＣＣ＿Ｌ３はそれぞれフリップフロップＣＣ＿ＦＦ１、ＣＣ＿ＦＦ２、ＣＣ＿ＦＦ３の出力データを取り込む。
【００５５】
また時刻Ｔ２２において、クロック信号ＣＬＫ１、ＣＬＫ２、ＣＬＫ３はクロック信号ＣＬＫが立ち下がるため、全てローレベルとなる。
【００５６】
次に、時刻Ｔ２３では上述の時刻Ｔ２１と同様な動作が行われ、フリップフロップＣＣ＿ＦＦ１のローレベルがフリップフロップＣＣ＿ＦＦ２に取り込まれ、フリップフロップＣＣ＿ＦＦ２のハイレベルがフリップフロップＣＣ＿ＦＦ３に取り込まれ、フリップフロップＣＣ＿ＦＦ３のローレベルがフリップフロップＣＣ＿ＦＦ１に取り込まれる。ラッチ回路ＣＣ＿Ｌ１、ＣＣ＿Ｌ２、ＣＣ＿Ｌ３はそれぞれ前の値であるローレベル、ハイレベル、ローレベルを保持するため、クロック信号ＣＬＫ１、ＣＬＫ２、ＣＬＫ３はそれぞれローレベル、ハイレベル、ローレベルを出力する。
【００５７】
次に、時刻Ｔ２４では上述の時刻Ｔ２２と同様な動作が行われ、フリップフロップＣＣ＿ＦＦ１、ＣＣ＿ＦＦ２、ＣＣ＿ＦＦ３はデータが保持されたままであり、ラッチ回路ＣＣ＿Ｌ１、ＣＣ＿Ｌ２、ＣＣ＿Ｌ３のゲートに繋がるクロック信号ＣＬＫがアクティブ（ローレベル）となるため、ラッチ回路ＣＣ＿Ｌ１、ＣＣ＿Ｌ２、ＣＣ＿Ｌ３はそれぞれがスルー状態となり、フリップフロップＣＣ＿ＦＦ１、ＣＣ＿ＦＦ２、ＣＣ＿ＦＦ３の出力データを取り込み、クロック信号ＣＬＫ１、ＣＬＫ２、ＣＬＫ３はクロック信号ＣＬＫが立ち下がるため、全てローレベルとなる。
【００５８】
次に、時刻Ｔ２５では上述の時刻Ｔ２１と同様な動作が行われ、フリップフロップＣＣ＿ＦＦ１のローレベルがフリップフロップＣＣ＿ＦＦ２に取り込まれ、フリップフロップＣＣ＿ＦＦ２のローレベルがフリップフロップＣＣ＿ＦＦ３に取り込まれ、フリップフロップＣＣ＿ＦＦ３のハイレベルがフリップフロップＣＣ＿ＦＦ１に取り込まれる。ラッチ回路ＣＣ＿Ｌ１、ＣＣ＿Ｌ２、ＣＣ＿Ｌ３はそれぞれ前の値であるローレベル、ローレベル、ハイレベルを保持するため、クロック信号ＣＬＫ１、ＣＬＫ２、ＣＬＫ３はそれぞれローレベル、ローレベル、ハイレベルを出力する。
【００５９】
次に、時刻Ｔ２６では上述の時刻Ｔ２２と同様な動作が行われ、フリップフロップＣＣ＿ＦＦ１、ＣＣ＿ＦＦ２、ＣＣ＿ＦＦ３はデータが保持されたままであり、ラッチ回路ＣＣ＿Ｌ１、ＣＣ＿Ｌ２、ＣＣ＿Ｌ３のゲートに繋がるクロック信号ＣＬＫがアクティブとなるため、ラッチ回路ＣＣ＿Ｌ１、ＣＣ＿Ｌ２、ＣＣ＿Ｌ３はそれぞれがスルー状態となりフリップフロップＣＣ＿ＦＦ１、ＣＣ＿ＦＦ２、ＣＣ＿ＦＦ３の出力データを取り込み、クロック信号ＣＬＫ１、ＣＬＫ２、ＣＬＫ３はクロック信号ＣＬＫが立ち下がるため、全てローレベルとなる。ゲート信号Ｇ１はフリップフロップＣＣ＿ＦＦ１の出力と同じタイミングで動作する。
【００６０】
以上のように、本実施の形態に係るスキャンテスト回路１においては、クロックコントローラー１０が期間Ｃ１にクロック信号ＣＬＫの３つのアクティブパルスを入力とし、前記３つのアクティブパルスをそれぞれクロック信号ＣＬＫ１〜ＣＬＫ３として出力する。そして、ラッチ回路Ｌ１の入力側と出力側に接続されるスキャンフリップフロップＦＦ１＿ＳＣとＦＦ２＿ＳＣのクロックのうち、遅いアクティブパルスのアクティブエッジから、次の早いアクティブパルスのアクティブエッジまでの間の任意の期間に、ラッチ回路Ｌ１をアクティブとするようクロックコントローラー１０がゲート信号Ｇ１を供給する。
【００６１】
前記スキャンテスト回路１によれば、図２に示すように、スキャンフリップフロップＦＦ１＿ＳＣに供給されるクロック信号ＣＬＫ１が、スキャンフリップフロップＦＦ２＿ＳＣに供給されるクロック信号ＣＬＫ２より先にアクティブとなる構成であっても、予め時刻Ｔ１０でスキャンフリップフロップＦＦ１＿３のデータがラッチ回路Ｌ１により保持され、次の時刻Ｔ１１でスキャンフリップフロップＦＦ２＿１にラッチ回路Ｌ１から出力されるデータが取り込まれる。このように、スキャンチェーンＦＦ１＿ＳＣとＦＦ２＿ＳＣに供給されるクロック信号ＣＬＫ１とＣＬＫ２の順序を問わず、且つデータの筒抜けを発生させずに正しくデータシフト動作が行われる。また、当然ながらラッチ回路Ｌ２も、上述したラッチ回路Ｌ１と同様の動作である。
【００６２】
以上のように、本発明によれば、分割されたスキャンチェーンに位相をずらしたクロック信号を供給し、且つ供給するクロック信号の位相をいかようにずらした場合でも、データの筒抜けを発生させることなく、正しくデータシフト動作を行うことができる。
【００６３】
尚、本発明は、上記実施の形態に限られるものではなく、趣旨を逸脱しない範囲で適宜変更することが可能なものである。
【符号の説明】
【００６４】
１  半導体集積回路
１０  クロックコントローラー
ＦＦ１＿１〜ＦＦ１＿３，ＦＦ２＿１〜ＦＦ２＿３，ＦＦ３＿１〜ＦＦ３＿３  フリップフロップ
ＦＦ１＿ＳＣ〜ＦＦ３＿ＳＣ  フリップフロップ群
Ｌ１，Ｌ２  ラッチ回路
ＣＬＫ  （基準）クロック
ＣＬＫ１〜ＣＬＫ３  （第１の）クロック
Ｇ１  （第２の）クロック
Ｃ１，Ｃ２  クロックサイクル
【図１】
2011153917.tif 000003
【図２】
2011153917.tif 000004
【図３】
2011153917.tif 000005
【図４】
2011153917.tif 000006
【図５】
2011153917.tif 000007
【図６】
2011153917.tif 000008
【図７】
2011153917.tif 000009
【図８】
2011153917.tif 000010