(57)【特許請求の範囲】
【請求項１】
第１のシステムデータ入力と第１のスキャンデータ入力とを有し、前記第１のシステムデータ入力から入力された第１のシステムデータ又は前記第１のスキャンデータ入力から入力されたスキャンデータを保持し、前記第１のシステムデータ又は前記スキャンデータを第１のスキャンデータとして出力する第１のマスタラッチと、
第２のシステムデータ入力と前記第１のマスタラッチが出力する前記第１のスキャンデータが入力される第２のスキャンデータ入力とを有し、前記第２のシステムデータ入力から入力された第２のシステムデータ又は前記第１のスキャンデータを保持し、前記第２のシステムデータ又は前記第１のスキャンデータを第２のスキャンデータとして出力する第２のマスタラッチと、
第３のシステムデータ入力と前記第２のマスタラッチが出力する前記第２のスキャンデータが入力される第３のスキャンデータ入力とを有し、前記第３のシステムデータ入力から入力された第３のシステムデータ又は前記第２のスキャンデータを保持する第３のマスタラッチと、
前記第３のマスタラッチに接続され、前記第３のシステムデータ又は前記第２のスキャンデータを第３のスキャンデータとして出力するスレーブラッチと、
第４のシステムデータ入力と前記スレーブラッチが出力する前記第３のスキャンデータが入力される第４のスキャンデータ入力とを有し、前記第４のシステムデータ入力から入力された第４のシステムデータ又は前記第３のスキャンデータを保持する第４のマスタラッチと、を有し、
前記第１、第２、第３及び第４のマスタラッチが保持するデータをそれぞれ出力する第１、第２、第３及び第４のシステムデータ出力を有し、
前記スレーブラッチには第１のクロックが接続され、前記第３のマスタラッチには前記第１のクロックから遅延する第２のクロックが接続され、前記第２のマスタラッチには前記第２のクロックから遅延する第３のクロックが接続され、前記第１のマスタラッチ及び前記第４のマスタラッチには前記第３のクロックから遅延する第４のクロックが接続され、
前記第１のクロックがオンになる場合、前記第３のマスタラッチは前記第３のスキャンデータを前記スレーブラッチに出力し、前記スレーブラッチは前記第３のスキャンデータを保持し、
前記第２のクロックがオンになる場合、前記第２のマスタラッチは前記第２のスキャンデータを前記第３のマスタラッチに出力し、前記第３のマスタラッチは前記第２のスキャンデータを保持し、
前記第３のクロックがオンになる場合、前記第１のマスタラッチは前記第１のスキャンデータを前記第２のマスタラッチに出力し、前記第２のマスタラッチは前記第１のスキャンデータを保持し、
前記第４のクロックがオンになる場合、前記第１のマスタラッチは前記第１のスキャンデータ入力から入力されたスキャンデータを保持し、前記スレーブラッチは保持している前記第３のスキャンデータを前記第４のマスタラッチに出力し、前記第４のマスタラッチは前記第３のスキャンデータを保持することを特徴とするフリップフロップ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩのフリップフロップ回路、制御方法及びクロック生成方法に関する。
【背景技術】
【０００２】
ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）試験のためのスキャンシフトを行うためには、マスタラッチとスレーブラッチとを有するマスタ−スレーブ型のフリップフロップ回路が必要である。ロジック回路内の順序回路としては、マスタ−スレーブ型のフリップフロップ回路が多用されている。
【０００３】
スキャンシフトでは、マスタを制御するクロックと、スレーブを制御するクロックとを交互にＯＮすることで、フリップフロップ回路のＳＩ（Ｓｃａｎ  Ｉｎ）入力端子からＬＳＩ外部から供給されるスキャンデータを入力する。当該フリップフロップ回路のＳＯ（Ｓｃａｎ  Ｏｕｔ）出力端子から出力されたスキャンデータを新たなフリップフロップ回路のＳＩ入力端子に入力することを繰り返すことにより、スキャンチェーンが構成される。そして、最後に接続されたフリップフロップ回路からの出力をＬＳＩ外部に取り出す。当該出力を測定することで、ＬＳＩに不良があるか否かを解析することができる。
【０００４】
ここで、ＬＳＩの回路規模の増大に伴い、スキャンチェーンを構成するフリップフロップ回路の数も増加して、当該スキャンチェーンの消費電力も増加している。
【０００５】
先行技術文献としては下記のものがある。
【特許文献１】特開平０７−１９８７８７号公報
【特許文献２】特開２０００−２１４２２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の課題は、スキャンシフトにおいて、フリップフロップ回路の消費電力を低下させることである。
【課題を解決するための手段】
【０００７】
本発明は、フリップフロップ回路は、第１のシステムデータ入力と第１のスキャンデータ入力とを有し、前記第１のシステムデータ入力から入力された第１のシステムデータ又は前記第１のスキャンデータ入力から入力されたスキャンデータを保持し、前記スキャンデータを出力する第１のマスタラッチと、第２のシステムデータ入力と前記第１のマスタラッチが出力する前記スキャンデータが入力される第２のスキャンデータ入力とを有し、前記第２のシステムデータ入力から入力された第２のシステムデータ又は前記スキャンデータを保持し、前記スキャンデータを出力する第２のマスタラッチと、前記第２のマスタラッチの前記スキャンデータが出力される出力に接続される入力を有し、前記スキャンデータを保持し、前記スキャンデータを出力するスレーブラッチとを有することを特徴とする。
【０００８】
また、本発明は、フリップフロップ回路は、第１のシステムデータ入力と第１のスキャンデータ入力とを有し、前記第１のシステムデータ入力から入力された第１のシステムデータ又は前記第１のスキャンデータ入力から入力されたスキャンデータを保持し、前記第１のシステムデータ又は前記スキャンデータを第１のスキャンデータとして出力する第１のマスタラッチと、第２のシステムデータ入力と前記第１のマスタラッチが出力する前記第１のスキャンデータが入力される第２のスキャンデータ入力とを有し、前記第２のシステムデータ入力から入力された第２のシステムデータ又は前記第１のスキャンデータを保持し、前記第２のシステムデータ又は前記第１のスキャンデータを第２のスキャンデータとして出力する第２のマスタラッチと、第３のシステムデータ入力と前記第２のマスタラッチが出力する前記第２のスキャンデータが入力される第３のスキャンデータ入力とを有し、前記第３のシステムデータ入力から入力された第３のシステムデータ又は前記第２のスキャンデータを保持する第３のマスタラッチと、前記第３のマスタラッチに接続され、前記第３のシステムデータ又は前記第２のスキャンデータを第３のスキャンデータとして出力するスレーブラッチとを有することを特徴とする。
【０００９】
また、本発明は、前記フリップフロップ回路は、前記第１、第２及び第３のマスタラッチが保持するデータをそれぞれ出力する第１、第２及び第３のシステムデータ出力を有することを特徴とする。
【００１０】
また、本発明は、前記第３のマスタラッチは、クロックが入力されるクロック入力を有し、前記クロック入力からクロックが入力された場合に、前記第３のマスタラッチが保持するデータを前記スレーブラッチに転送することを特徴とする。
【００１１】
また、本発明は、前記第１のマスタラッチには第１のクロックが接続され、前記第２のマスタラッチには第２のクロックが接続され、前記第３のマスタラッチには第３のクロックが接続され、前記スレーブラッチには第４のクロックが接続され、前記第１のクロックがオンになる場合、前記第１のマスタラッチは、前記第１のスキャンデータ入力から入力されたスキャンデータを保持し、前記スレーブラッチは保持している前記第３のスキャンデータを出力し、前記第２のクロックがオンになる場合、前記第２のマスタラッチは、前記第２のスキャンデータ入力から入力された第１のスキャンデータを保持し、前記第３のクロックがオンになる場合、前記第３のマスタラッチは、前記第３のスキャンデータ入力から入力された第２のスキャンデータを保持し、前記第４のクロックがオンになる場合、前記スレーブラッチは、前記第３のマスタラッチから転送された第２のスキャンデータを保持することを特徴とする。
【００１２】
また、本発明は、前記第１乃至第４のクロックは、テストクロックを入力とするクロック生成回路により生成され、前記クロック生成回路は、前記テストクロックが入力され、前記テストクロックを２分周する第１の分周回路と、前記テストクロックが入力され、前記テストクロックを４分周する第２の分周回路と、前記テストクロックが入力され、前記テストクロックを８分周する第３の分周回路と、前記第１の分周回路の出力、前記第２の分周回路の反転出力及び前記第３の分周回路の反転出力をそれぞれ論理積演算することにより、前記第１のクロックを出力する第１の論理積回路と、前記第１の分周回路の出力、前記第２の分周回路の出力及び前記第３の分周回路の反転出力をそれぞれ論理積演算することにより、前記第２のクロックを出力する第２の論理積回路と、前記第１の分周回路の出力、前記第２の分周回路の反転出力及び前記第３の分周回路の出力をそれぞれ論理積演算することにより、前記第３のクロックを出力する第３の論理積回路と、前記第１の分周回路の出力、前記第２の分周回路の出力及び前記第３の分周回路の出力をそれぞれ論理積演算することにより、前記第４のクロックを出力する第４の論理積回路を有することを特徴とする。
【００１３】
また、本発明は、前記第１乃至第４のクロックは、テストクロックを入力とするクロック生成回路により生成され、前記クロック生成回路は、前記テストクロックが入力され、前記テストクロックを２逓倍して逓倍クロックを出力する逓倍回路と、前記逓倍クロックが入力され、前記逓倍クロックを２分周する第１の分周回路と、前記逓倍クロックが入力され、前記逓倍クロックを４分周する第２の分周回路と、前記第１の分周回路の出力と前記第２の分周回路の反転出力を論理積演算したものの立ち上がりを検出して、前記第１のクロックを出力する第１のチョッパ回路と、前記第１の分周回路の反転出力と前記第２の分周回路の出力を論理積演算したものの立ち上がりを検出して、前記第２のクロックを出力する第２のチョッパ回路と、前記第１の分周回路の出力と前記第２の分周回路の出力を論理積演算したものの立ち上がりを検出して、前記第３のクロックを出力する第３のチョッパ回路と、前記第１の分周回路の反転出力と前記第２の分周回路の反転出力を論理積演算したものの立ち上がりを検出して、前記第４のクロックを出力する第４のチョッパ回路を有することを特徴とする。
【００１４】
また、本発明は、第１のシステムデータ入力と第１のスキャンデータ入力とを有する第１のマスタラッチと、第２のシステムデータ入力と前記第１のマスタラッチが出力する前記第１のスキャンデータが入力される第２のスキャンデータ入力とを有する第２のマスタラッチと、第３のシステムデータ入力と前記第２のマスタラッチが出力する前記第２のスキャンデータが入力される第３のスキャンデータ入力とを有する第３のマスタラッチと前記第３のマスタラッチが保持するデータが転送されるスレーブラッチを有するフリップフロップ回路の制御方法において、前記第１のシステムデータ入力から入力された第１のシステムデータ又は前記第１のスキャンデータ入力から入力されたスキャンデータを前記第１のマスタラッチに保持し、前記保持された前記第１のシステムデータ又は前記スキャンデータを第１のスキャンデータとして出力するステップと、前記第２のシステムデータ入力から入力された第２のシステムデータ又は前記第１のスキャンデータを前記第２のマスタラッチに保持し、前記保持された前記第２のシステムデータ又は前記第１のスキャンデータを第２のスキャンデータとして出力するステップと、前記第３のシステムデータ入力から入力された第３のシステムデータ又は前記第２のスキャンデータを前記第３のマスタラッチに保持するステップと、前記第３のマスタラッチに保持された前記第３のシステムデータ又は前記第２のスキャンデータをスレーブラッチに転送し、前記スレーブラッチから第３のスキャンデータとして出力するステップとを有することを特徴とする。
【００１５】
また、本発明は、第１のクロックが入力される第１のマスタラッチと、第２のクロックが入力される第２のマスタラッチと、第３のクロックが入力される第３のマスタラッチと、第４のクロックが入力されるスレーブラッチとを有するフリップフロップ回路に対する前記第１乃至第４のクロックを生成するクロック生成方法において、テストクロックを入力し、前記テストクロックを２分周した２分周クロック及び反転２分周クロックを出力するステップと、前記テストクロックを入力し、前記テストクロックを４分周した４分周クロック及び反転４分周クロックを出力するステップと、前記テストクロックを入力し、前記テストクロックを８分周した８分周クロック及び反転８分周クロックを出力するステップと、前記２分周クロック、前記反転４分周クロック及び前記反転８分周クロックをそれぞれ論理積演算することにより、前記第１のクロックを出力するステップと、前記２分周クロック、前記４分周クロック及び前記反転８分周クロックをそれぞれ論理積演算することにより、前記第２のクロックを出力するステップと、前記２分周クロック、前記反転４分周クロック及び前記８分周クロックをそれぞれ論理積演算することにより、前記第３のクロックを出力するステップと、前記２分周クロック、前記４分周クロック及び前記８分周クロックをそれぞれ論理積演算することにより、前記第４のクロックを出力するステップを有することを特徴とする。
【００１６】
また、本発明は、第１のクロックが入力される第１のマスタラッチと、第２のクロックが入力される第２のマスタラッチと、第３のクロックが入力される第３のマスタラッチと、第４のクロックが入力されるスレーブラッチとを有するフリップフロップ回路に対する前記第１乃至第４のクロックを生成するクロック生成方法において、テストクロックを入力し、前記テストクロックを２逓倍して逓倍クロック及び反転逓倍クロックを出力するステップと、前記逓倍クロックが入力され、前記逓倍クロックを２分周して２分周クロック及び反転２分周クロックを出力するステップと、前記逓倍クロックが入力され、前記逓倍クロックを４分周して４分周クロック及び反転４分周クロックを出力するステップと、前記２分周クロックと前記反転４分周クロックを論理積演算したものの立ち上がりを検出して出力することにより、前記第１のクロックを出力するステップと、前記反転２分周クロックと前記４分周クロックを論理積演算したものの立ち上がりを検出して出力することにより、前記第２のクロックを出力するステップと、前記２分周クロックと前記４分周クロックを論理積演算したものの立ち上がりを検出して出力することにより、前記第３のクロックを出力するステップと、前記反転２分周クロックと前記反転４分周クロックを論理積演算したものの立ち上がりを検出して出力することにより、前記第４のクロックを出力するステップを有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、スキャンチェーンを構成する際に、一部のマスタラッチ同士を接続してスキャンチェーンを構成する。そのため、全体の回路量を削減して、スキャンチェーンの消費電力を低下させることができる。さらに、消費電力を低下させることで、ラッチ回路に流れる電流を低減することができる。当該電流を低減することにより、エレクトロマイグレーション（電子の流れにより配線の金属イオンが時間経過とともにシリコン基板に移動して、短絡や抵抗増大、開放などの不良を起こす現象）の発生による半導体の物理的な劣化を防止することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下に図面を用いて本実施形態について説明する。
【００１９】
図１は、本実施形態におけるＬＳＩ試験回路の一例を表す。ＬＳＩ試験回路は、例えば、第一のマスタラッチ１１０、第二のマスタラッチ１２０及び第三のマスタラッチ１３０、スレーブラッチ１４０等から構成される。本実施形態では、クロック信号がハイレベル又はローレベルの間は入力端子から入力されるデータが出力端子へ筒抜け（透過）し、クロック信号をローレベル又はハイレベルにするとその時点におけるデータが保持されるとともに出力端子から出力される透過型ラッチ回路のマスタラッチに接続されるスレーブラッチを削減して、ＬＳＩ試験回路を構成する。図２に、透過型ラッチ回路を表す。透過型ラッチ回路は、マスタラッチ１０及びスレーブラッチ２０から構成される。マスタラッチ１０は、インバータ１２とインバータ１４とから構成される。インバータ１２の出力は、イネーブル端子付きインバータ６に入力される。イネーブル端子付きインバータ６は、外部からクロック信号の入力があった場合は、インバータ１２からの出力をインバータ２２に入力する。スレーブラッチ２０は、インバータ２２とインバータ２４とから構成される。インバータ２２の出力は、インバータ２４の入力に接続される。インバータ２４の出力は、インバータ２２の入力及びインバータ２６の入力に接続される。インバータ２６は、インバータ２４からの入力を出力する。
【００２０】
マスタラッチ１０には、トランスファーゲート３、クリアスイッチ２、イネーブル端子付きインバータ４及びインバータ１６が接続される。トランスファーゲート３には、インバータ１が接続される。さらに、インバータ１には、Ｎ型トランジスタ５が接続される。
【００２１】
インバータ１には、データ（Ｄ）（システムデータ）が入力される。インバータ１は、入力されたデータをトランスファーゲート３に出力する。トランスファーゲート３は、互いに反対極性のパストランジスタ２個から構成され、外部からクロック信号の入力があった場合は、インバータ１から出力されたデータをマスタラッチ１０に出力する。Ｎ型トランジスタ５は、インバータ１のグランドから出力へのパスを切断する。クリアスイッチ２は、電源電位に短絡することによりマスタラッチ１０等が保持しているデータをクリアする。イネーブル端子付きインバータ４は、スキャンインデータ（ＳＩデータ）が入力される。イネーブル端子付きインバータ４は、外部からクロック信号の入力があった場合は、入力されたＳＩデータをインバータ１２に入力する。インバータ１６には、インバータ１４の出力が入力され、マスタラッチ１０が保持しているデータをフリップフロップ回路の外に出力する。そのため、クロックのアップエッジを待つことなく信号を得ることができる。
【００２２】
図１に戻り、マスタラッチ１１０は、インバータ１１２とインバータ１１４とから構成される。インバータ１１２の出力はインバータ１１４の入力に接続される。そして、インバータ１１４の出力はインバータ１１２の入力に接続され、ラッチ回路が構成される。
【００２３】
イネーブル端子付きインバータ１０４には、スキャンインデータＳＩが入力される。イネーブル端子付きインバータ１０４は、第一のスキャンデータ入力として機能する。インバータ１０４のイネーブル端子には、第一の制御信号であるクロック信号（ＤＣＫ）が入力される。インバータ１０４は、入力データＳＩを反転して出力する。インバータ１０４の出力は、インバータ１１２の入力に接続される。マスタラッチ１１０は、クロック信号（ＤＣＫ）を入力タイミング信号として、クロック信号（ＤＣＫ）がハイレベルとなった時のインバータ１０４の出力をラッチする。インバータ１１２の出力は、イネーブル端子付きインバータ１０５に入力される。
【００２４】
マスタラッチ１１０には、トランスファーゲート１６０及びクリアスイッチ１６２及びインバータ１５１が接続される。トランスファーゲート１６０には、インバータ１０１が接続される。さらに、インバータ１０１には、Ｎ型トランジスタ１６１が接続される。
【００２５】
インバータ１０１には、保持対象データであるデータ（Ｄ０）が入力される。インバータ１０１は、第一のシステムデータ入力として機能する。インバータ１０１は、入力されたデータを反転してトランスファーゲート１６０に出力する。トランスファーゲート１６０は、外部からクロック信号の入力があった場合は、インバータ１０１から出力されたデータをマスタラッチ１１０に出力する。Ｎ型トランジスタ１６１は、インバータ１０１のグランドから出力へのパスを切断する。クリアスイッチ１６２は、マスタラッチ１１０等が保持しているデータを電源電位に短絡することによりクリアする。インバータ１５１には、インバータ１１４の出力が入力され、マスタラッチ１１０が保持しているデータをフリップフロップ回路外に出力する。そのため、クロックのアップエッジを待つことなく信号を得ることができる。
【００２６】
マスタラッチ１２０は、インバータ１２２とインバータ１２４とから構成される。インバータ１２２の出力はインバータ１２４の入力に接続される。そして、インバータ１２４の出力はインバータ１２２の入力に接続され、ラッチ回路が構成される。
【００２７】
イネーブル端子付きインバータ１０５には、インバータ１１２の出力が入力される。イネーブル端子付きインバータ１０５は、第二のスキャンデータ入力として機能する。インバータ１０５のイネーブル端子には、第二の制御信号であるクロック信号（ＣＣＫ）が入力される。インバータ１０５は、インバータ１１２の出力を反転して出力する。インバータ１０５の出力は、インバータ１２２の入力に接続される。マスタラッチ１２０は、クロック信号（ＣＣＫ）を入力タイミング信号として、クロック信号（ＣＣＫ）がハイレベルとなった時のインバータ１０５の出力をラッチする。インバータ１２２の出力は、イネーブル端子付きインバータ１０６に入力される。
【００２８】
マスタラッチ１２０には、トランスファーゲート１６４、クリアスイッチ１６５及びインバータ１５２が接続される。トランスファーゲート１６４には、インバータ１０２が接続される。さらに、インバータ１０２には、Ｎ型トランジスタ１６３が接続される。
【００２９】
インバータ１０２には、保持対象データであるデータ（Ｄ１）が入力される。インバータ１０２は、第二のシステムデータ入力として機能する。インバータ１０２は、入力されたデータをトランスファーゲート１６４に出力する。トランスファーゲート１６４は、外部からクロック信号の入力があった場合は、インバータ１０２から出力されたデータをマスタラッチ１２０に出力する。Ｎ型トランジスタ１６３は、インバータ１０２のグランドから出力へのパスを切断する。クリアスイッチ１６５は、マスタラッチ１２０等が保持しているデータを電源電位に短絡することによりクリアする。インバータ１５２には、インバータ１２４の出力が入力され、マスタラッチ１２０が保持しているデータをフリップフロップ回路外に出力する。そのため、クロックのアップエッジを待つことなく信号を得ることができる。
【００３０】
マスタラッチ１３０は、インバータ１３２とインバータ１３４とから構成される。インバータ１３２の出力はインバータ１３４の入力に接続される。そして、インバータ１３４の出力はインバータ１３２の入力に接続され、ラッチ回路が構成される。
【００３１】
イネーブル端子付きインバータ１０６には、インバータ１２２の出力が入力される。イネーブル端子付きインバータ１０６は、第三のスキャンデータ入力として機能する。インバータ１０６のイネーブル端子には、第三の制御信号であるクロック信号（ＢＣＫ）が入力される。インバータ１０６は、インバータ１２２の出力を反転して出力する。インバータ１０６の出力は、インバータ１３２の入力に接続される。マスタラッチ１３０は、クロック信号（ＢＣＫ）を入力タイミング信号として、クロック信号（ＢＣＫ）がハイレベルとなった時のインバータ１０６の出力をラッチする。インバータ１３２の出力は、イネーブル端子付きインバータ１０７に入力される。
【００３２】
マスタラッチ１３０には、トランスファーゲート１６７、クリアスイッチ１６７及びインバータ１５３が接続される。トランスファーゲート１６７には、インバータ１０３が接続される。さらに、インバータ１０３には、Ｎ型トランジスタ１６６が接続される。
【００３３】
インバータ１０３には、保持対象データであるデータ（Ｄ２）が入力される。インバータ１０３は、第三のシステムデータ入力として機能する。インバータ１０３は、入力されたデータをトランスファーゲート１６７に出力する。トランスファーゲート１６７は、外部からクロック信号の入力があった場合は、インバータ１０３から出力されたデータをマスタラッチ１３０に出力する。Ｎ型トランジスタ１６６は、インバータ１０３のグランドから出力へのパスを切断する。クリアスイッチ１６５は、マスタラッチ１２０が保持しているデータを電源電位に短絡することによりクリアする。インバータ１５３には、インバータ１３４の出力が入力され、マスタラッチ１３０が保持しているデータをフリップフロップ回路外に出力する。そのため、クロックのアップエッジを待つことなく信号を得ることができる。
【００３４】
スレーブラッチ１４０は、インバータ１４２とインバータ１４４とから構成される。インバータ１４２の出力はインバータ１４４の入力に接続される。そして、インバータ１４４の出力はインバータ１４２の入力に接続され、ラッチ回路が構成される。
【００３５】
イネーブル端子付きインバータ１０７には、インバータ１３２の出力が入力される。インバータ１０７のイネーブル端子には、第四の制御信号であるクロック信号（ＡＣＫ）が入力される。インバータ１０７は、インバータ１３２の出力を反転して出力する。インバータ１０７の出力は、インバータ１３２の入力に接続される。スレーブラッチ１４０は、クロック信号（ＡＣＫ）を入力タイミング信号として、クロック信号（ＡＣＫ）がハイレベルとなった時のインバータ１０７の出力をラッチする。インバータ１５４は、インバータ１４４の出力を反転して出力する。インバータ１５４の出力は出力データＳＯとなる。
【００３６】
このように、本実施形態におけるＬＳＩ試験回路では、マスタラッチが保持しているデータをフリップフロップの外部への出力を有する透過型マスタラッチにはスレーブラッチを接続せず、当該透過型マスタラッチ同士を接続してスキャンチェーンを構成する。マスタラッチが正常に動作することを保証できれば、マスタラッチに保持されるデータは当該出力から正常に出力できることも保証できるからである。また、信号出力の高速化を要求されないマスタラッチに対しては、スレーブラッチを接続してスキャンチェーンを構成する。
【００３７】
ここで、本実施形態におけるＬＳＩのスキャンチェーンの構造の一例を図３に表す。また、スキャンチェーンの動作の一例を図４に表す。図３に表したように、ここでは、スキャンチェーンは、例えば、マスタラッチ１１０、１２０、１３０、１５０、１６０及び１７０と、スレーブラッチ１４０及び１８０から構成されている。スレーブラッチ１４０及び１８０を制御するクロック信号ＡＣＫと、マスタラッチ１３０及び１７０を制御するクロック信号ＢＣＫと、マスタラッチ１２０及び１６０を制御するクロック信号ＣＣＫと、マスタラッチ１１０及び１５０を制御するクロック信号ＤＣＫとを交互にＯＮすることで、マスタラッチ１１０に入力した入力データＳＩをスレーブラッチ１８０から出力データＳＯとして取り出す。
【００３８】
図４に表したように、ＡＣＫ、ＢＣＫ、ＣＣＫ及びＤＣＫの全てがローレベルの時は、マスタラッチ１１０、１２０、１３０、１５０、１６０及び１７０と、スレーブラッチ１４０及び１８０は、それぞれデータを保持する。ＡＣＫのみがハイレベルの時は、スレーブラッチ１４０はマスタラッチ１３０の出力をラッチし、スレーブラッチ１８０はマスタラッチ１７０の出力をラッチする。ＢＣＫのみがハイレベルの時は、マスタラッチ１３０はマスタラッチ１２０の出力をラッチし、マスタラッチ１７０はマスタラッチ１６０の出力をラッチする。
【００３９】
図５に表したように、ＡＣＫ、ＢＣＫ、ＣＣＫ及びＤＣＫの全てがローレベルの時は、マスタラッチ１１０、１２０、１３０、１５０、１６０及び１７０と、スレーブラッチ１４０及び１８０は、それぞれデータを保持する。ＣＣＫのみがハイレベルの時は、マスタラッチ１２０はマスタラッチ１１０の出力をラッチし、マスタラッチ１６０はマスタラッチ１５０の出力をラッチする。ＤＣＫのみがハイレベルの時は、マスタラッチ１１０はＳＩ入力をラッチし、マスタラッチ１５０はスレーブラッチ１４０の出力をラッチし、スレーブラッチ１８０は、保持したデータを出力データＳＯとして出力する。
【００４０】
これによれば、システム動作時には使用することのないスレーブラッチをスキャンシフトのために回路に接続する必要がなくなり、スレーブラッチの数を大幅に削減することができる。ゆえに、回路規模を縮小することができ、ＬＳＩの消費電力を低下させることができる。さらに、回路規模の縮小により、配線長を短縮することができ、動作電力の削減やディレイタイムの短縮を実現することができる。また、スキャンチェーンの消費電力を低下させることで、当該スキャンチェーンを構成するラッチ回路に流れる電流を低減して、エレクトロマイグレーションの発生によるＬＳＩの故障を防止することができる。また、さらに、ＬＳＩの消費電力を低下させることで、ＬＳＩの冷却を簡単に行うことができる。
【００４１】
図６は、ステートマシンを用いたクロック生成回路の例である。フリップフロップ回路３０２は、外部テストクロックＴＣＫを入力タイミング信号としてインバータ３０８の出力をラッチする。フリップフロップ回路３０４は、ＴＣＫを入力タイミング信号としてＸＯＲ（ｅＸｃｌｕｓｉｖｅ−ＯＲ：排他的論理和）回路３１０の出力をラッチする。フリップフロップ回路３０６は、ＴＣＫを入力タイミング信号としてＸＯＲ回路３１４の出力をラッチする。
【００４２】
インバータ３０８は、フリップフロップ回路３０２の出力を反転する。インバータ３０８の出力は、フリップフロップ回路３０２の入力に接続される。ＸＯＲ回路３１０は、フリップフロップ回路３０２の出力と、フリップフロップ回路３０４の出力とを排他的論理和演算して出力する。ＸＯＲ回路３１０の出力は、フリップフロップ回路３０４の入力に接続される。ＡＮＤ（論理積）回路３１２は、フリップフロップ回路３０２の出力と、フリップフロップ回路３０４の出力とを論理積演算を行って出力する。ＡＮＤ回路３１２の出力は、ＸＯＲ回路３１４の入力に接続される。ＸＯＲ回路３１４は、フリップフロップ回路３０６の出力と、ＡＮＤ回路３１２の出力とを排他的論理和演算を行って出力する。ＸＯＲ回路３１４の出力は、フリップフロップ回路３０６の入力に接続される。このようにして、ＴＣＫを分周する分周回路が構成されている。
【００４３】
ＡＮＤ回路３１６は、フリップフロップ回路３０２の出力と、フリップフロップ回路３０４の出力の反転と、フリップフロップ回路３０６の出力の反転とを論理積演算を行い、クロック信号ＡＣＫとして出力する。ＡＮＤ回路３１８は、フリップフロップ回路３０２の出力と、フリップフロップ回路３０４の出力と、フリップフロップ回路３０６の出力の反転とを論理積演算を行い、クロック信号ＢＣＫとして出力する。ＡＮＤ回路３２０は、フリップフロップ回路３０２の出力と、フリップフロップ回路３０４の出力の反転と、フリップフロップ回路３０６の出力とを論理積演算を行い、クロック信号ＣＣＫとして出力する。ＡＮＤ回路３２２は、フリップフロップ回路３０２の出力と、フリップフロップ回路３０４の出力と、フリップフロップ回路３０６の出力とを論理積演算を行い、クロック信号ＤＣＫとして出力する。
【００４４】
図７は、ステートマシンを用いて生成したクロック信号の波形を表す。図７の一段目の波形はＴＣＫを表している。
【００４５】
図７の二段目の波形は、フリップフロップ回路３０２のＱ端子の出力信号の波形を表している。ＴＣＫの１個目のパルスの立ち上がり時に、フリップフロップ回路３０２は、Ｄ端子の信号レベルのデータをラッチする。フリップフロップ回路３０２は、ハイレベルのデータをラッチし、ハイレベルの信号をＱ端子から出力する。次に、ＴＣＫの２個目のパルスの立ち上がり時に、フリップフロップ回路３０２は、Ｄ端子に入力される信号レベルのデータをラッチする。フリップフロップ回路３０２は、ローレベルのデータをラッチし、ローレベルの信号をＱ端子から出力する。フリップフロップ回路３０２がＱ端子から出力した信号は、ＡＮＤ回路３１６、３１８、３２０、３２２にそれぞれ入力される。
【００４６】
図７の三段目の波形は、フリップフロップ回路３０４のＱ端子の出力信号の波形を表している。ＴＣＫの２個目のパルスの立ち上がり時に、フリップフロップ回路３０４は、Ｄ端子に入力される信号レベルのデータをラッチする。フリップフロップ回路３０４は、ハイレベルの信号をラッチし、ハイレベルの信号をＱ端子から出力する。次に、ＴＣＫの４個目のパルスの立ち上がり時に、フリップフロップ回路３０４は、Ｄ端子に入力される信号レベルのデータをラッチする。フリップフロップ回路３０４は、ローレベルの信号をラッチし、ローレベルの信号をＱ端子から出力する。フリップフロップ回路３０４がＱ端子から出力した信号は、ＡＮＤ回路３１８、３２２にそれぞれ入力される。また、Ｑ端子から出力した信号は、反転されてＡＮＤ回路３１６、３２０にそれぞれ入力される。
【００４７】
図７の四段目の波形は、フリップフロップ回路３０６のＱ端子の出力を表している。ＴＣＫの４個目のパルスの立ち上がり時に、フリップフロップ回路３０４は、Ｄ端子に入力される信号レベルのデータをラッチする。フリップフロップ回路３０６は、ハイレベルのデータをラッチし、ハイレベルの信号をＱ端子から出力する。次に、ＴＣＫの８個目のパルスの立ち上がり時に、フリップフロップ回路３０６は、Ｄ端子に入力される信号レベルのデータをラッチする。フリップフロップ回路３０６は、ローレベルのデータをラッチし、ローレベルの信号をＱ端子から出力する。フリップフロップ回路３０６がＱ端子から出力した信号は、ＡＮＤ回路３２０、３２２にそれぞれ入力される。また、Ｑ端子から出力した信号は、反転されてＡＮＤ回路３１６、３１８にそれぞれ入力される。
【００４８】
図７の五段目の波形はＡＮＤ回路３１６の出力信号（ＡＣＫ）の波形を表している。図７の二段目に表した出力と、図７の三段目に表した出力を反転したものと、図７の四段目に表した出力を反転したものとを論理積演算すると、図７の五段目に表したような出力信号（ＡＣＫ）の波形となる。ＡＣＫは、ＴＣＫの１個目のパルスの立ち上がり時に、ハイレベルとなり、ＴＣＫの２個目のパルスの立ち上がり時に、ローレベルになる。そして、ＡＣＫは、ＴＣＫの９個目のパルスの立ち上がり時に、再びハイレベルとなり、ＴＣＫの１０個目のパルスの立ち上がり時に、ローレベルになる。以下、これを繰り返す。
【００４９】
図７の六段目の波形はＡＮＤ回路３１８の出力信号（ＢＣＫ）の波形を表している。図７の二段目に表した出力と、図７の三段目に表した出力と、図７の四段目に表した出力を反転したものとを論理積演算すると、図７の六段目の波形に表したような出力となる。ＢＣＫは、ＴＣＫの３個目のパルスの立ち上がり時に、ハイレベルとなり、ＴＣＫの４個目のパルスの立ち上がり時に、ローレベルになる。そして、ＢＣＫは、ＴＣＫの１１個目のパルスの立ち上がり時に、再びハイレベルとなり、ＴＣＫの１２個目のパルスの立ち上がり時に、ローレベルになる。以下、これを繰り返す。
【００５０】
図７の七段目の波形はＡＮＤ回路３２０の出力信号（ＣＣＫ）の波形を表している。図７の二段目に表した出力と、図７の三段目に表した出力を反転したものと、図７の四段目に表した出力とを論理和演算すると、図７の七段目に表したような出力となる。ＣＣＫは、ＴＣＫの５個目のパルスの立ち上がり時に、ハイレベルとなり、ＴＣＫの６個目のパルスの立ち上がり時に、ローレベルになる。そして、ＢＣＫは、ＴＣＫの１３個目のパルスの立ち上がり時に、再びハイレベルとなり、ＴＣＫの１４個目のパルスの立ち上がり時に、ローレベルになる。以下、これを繰り返す。
【００５１】
図７の八段目の波形はＡＮＤ回路３２２の出力信号（ＤＣＫ）の波形を表している。図７の二段目に表した出力と、図７の三段目に表した出力と、図７の四段目に表した出力とを論理和演算すると、図７の八段目に表したような出力となる。ＤＣＫは、ＴＣＫの７個目のパルスの立ち上がり時に、ハイレベルとなり、ＴＣＫの８個目のパルスの立ち上がり時に、ローレベルになる。そして、ＤＣＫは、ＴＣＫの１５個目のパルスの立ち上がり時に、再びハイレベルとなり、ＴＣＫの１６個目のパルスの立ち上がり時に、ローレベルになる。以下、これを繰り返す。
【００５２】
これによれば、ステートマシンを用いて、クロック信号を生成することで、多相クロックの生成に多数のＬＳＩピンを用意する必要がなくなる。さらに、ＬＳＩ内部において、多相クロック信号をＬＳＩ全面に分配する必要がなくなり、配線チャネルの圧迫を回避することができる。具体的には、ＬＳＩ内部全体に多相クロックを分配するのが困難である場合は、ＬＳＩをいくつかのブロックに分割し、それぞれのブロックにおいてステートマシンを実装し、それぞれのブロックにおいて多相クロック信号を生成すれば良い。このような場合、リセット信号とテストクロック信号とＬＳＩ全体に分配すれば良く、配線チャネル圧迫などの問題を緩和することができる。また、ステートマシンの動作クロックとして入力され、当該ステートマシンにおける各ステート間における状態遷移の期間を制御するテストクロックの周波数によりスキャンパルス幅を制御することが可能となる。そのため、スキャンシフトに不良があった場合、回路的なディレイタイムでパルス幅を生成する場合と比較して柔軟な解析が可能となる。具体的には、クロック信号のパルス幅不足か否かの切り分けが可能となる。
【００５３】
図８は、ステートマシンを用いたクロック生成回路の例である。フリップフロップ回路４０２は、ＴＣＫを入力タイミング信号としてインバータ４０６の出力をラッチする。フリップフロップ回路４０４は、ＴＣＫを入力タイミング信号としてＸＯＲ回路４０８の出力をラッチする。
【００５４】
インバータ４０６は、フリップフロップ回路４０２の出力を反転する。インバータ４０６の出力は、フリップフロップ回路４０２の入力に接続される。ＸＯＲ回路４０８は、フリップフロップ回路４０２の出力と、フリップフロップ回路４０４の出力とを排他的論理和演算を行って出力する。ＸＯＲ回路４０８の出力は、フリップフロップ回路４０４の入力に接続される。このようにして、ＴＣＫを分周する分周回路が構成されている。
【００５５】
ＡＮＤ回路４１０は、フリップフロップ回路４０２の出力と、フリップフロップ回路４０４の出力の反転とを論理積演算を行って出力する。ＡＮＤ回路４１０の出力は、ＡＮＤ回路４１８の入力に接続される。ＡＮＤ回路４１２は、フリップフロップ回路４０２の出力の反転と、フリップフロップ回路４０４の出力とを論理積演算を行って出力する。ＡＮＤ回路４１２の出力は、ＡＮＤ回路４２０の入力に接続される。ＡＮＤ回路４１４は、フリップフロップ回路４０２の出力と、フリップフロップ回路４０４の出力とを論理積演算を行って出力する。ＡＮＤ回路４１４の出力は、ＡＮＤ回路４２２の入力に接続される。ＡＮＤ回路４１６は、フリップフロップ回路４０２の出力の反転と、フリップフロップ回路４０４の出力の反転とを論理積演算を行って出力する。ＡＮＤ回路４１６の出力は、ＡＮＤ回路４２４の入力に接続される。
【００５６】
ＡＮＤ回路４１８は、ＴＣＫが一定時間遅延した信号と、ＡＮＤ回路４１０の出力とを論理積演算を行って出力する。ＡＮＤ回路４２０は、ＴＣＫが一定時間遅延した信号と、ＡＮＤ回路４１２の出力とを論理積演算を行って出力する。ＡＮＤ回路４２２は、ＴＣＫが一定時間遅延した信号と、ＡＮＤ回路４１４の出力とを論理積演算を行って出力する。ＡＮＤ回路４２４は、ＴＣＫが一定時間遅延した信号と、ＡＮＤ回路４１６の出力とを論理積演算を行って出力する。
【００５７】
図９及び図１０は、ステートマシンを用いて生成したクロック信号の波形を表す。図９の一段目の波形はＴＣＫを表している。
【００５８】
図９の二段目の波形は、フリップフロップ回路４０２のＱ端子の出力信号の波形を表している。図９の三段目の波形は、フリップフロップ回路４０４のＱ端子の出力を表している。フリップフロップ回路４０２がＱ端子から出力した信号は、ＡＮＤ回路４１０、４１４に入力される。また、Ｑ端子から出力した信号は、反転されてＡＮＤ回路４１２、４１６に入力される。フリップフロップ回路４０４がＱ端子から出力した信号は、ＡＮＤ回路４１２、４１４に入力される。また、Ｑ端子から出力した信号は、反転されてＡＮＤ回路４１０、４１６に入力される。
【００５９】
図９の四段目の波形は、ＡＮＤ回路４１０の出力信号の波形を表している。図９の二段目の波形に表した出力と、図９の三段目の波形に表した出力を反転したものとを論理積演算すると、図９の四段目の波形に表したような出力となる。ＡＮＤ回路４１０の出力は、ＡＮＤ回路４１８に入力される。
【００６０】
図９の五段目の波形は、ＡＮＤ回路４１２の出力信号の波形を表している。図９の二段目の波形に表した出力の反転と、図９の三段目の波形に表した出力とを論理積演算すると、図９の五段目の波形に表したような出力となる。ＡＮＤ回路４１２の出力は、ＡＮＤ回路４２０に入力される。
【００６１】
図９の六段目の波形は、ＡＮＤ回路４１４の出力信号の波形を表している。図９の二段目の波形に表した出力と、図９の三段目の波形に表した出力とを論理和演算すると、図９の六段目の波形に表したような出力となる。ＡＮＤ回路４１４の出力は、ＡＮＤ回路４２２に入力される。
【００６２】
図９の七段目の波形は、ＡＮＤ回路４１６の出力信号の波形を表している。図９の二段目の波形に表した出力の反転と、図９の三段目の波形に表した出力の反転とを論理和演算すると、図９の七段目の波形に表したような出力となる。ＡＮＤ回路４１６の出力は、ＡＮＤ回路４２４に入力される。
【００６３】
図１０の一段目の波形はＴＣＫ信号の波形を表している。図１０の二段目の波形はハザード防止用ディレイ４２６の出力を表している。外部テストクロックＴＣＫは、生成されるクロックのパルス幅が広いことによりスキャンシフトが正常に行われないことを防止するハザード防止用ディレイによって、一定時間遅延する。ハザード防止用ディレイ４２６の出力は、ＡＮＤ回路４１８、４２０、４２２、４２４に入力される。
【００６４】
図１０の三段目の波形はＡＮＤ回路４１８の出力信号（ＡＣＫ）の波形を表している。図９の四段目の波形に表した出力と、図１０の二段目の波形に表した出力とを論理積演算すると、図１０の三段目に表したような出力（ＡＣＫ）となる。ＡＣＫは、ＴＣＫの１個目のパルスの立ち下がり時に、ハイレベルとなり、ＴＣＫの２個目のパルスの立ち上がり時に、ローレベルになる。そして、ＡＣＫは、ＴＣＫの５個目のパルスの立ち下がり時に、再びハイレベルとなり、ＴＣＫの６個目のパルスの立ち上がり時に、ローレベルになる。以下、これを繰り返す。
【００６５】
図１０の四段目の波形はＡＮＤ回路４２０の出力信号（ＢＣＫ）の波形を表している。図９の五段目の波形に表した出力と、図１０の二段目の波形に表した出力とをＡＮＤ処理すると、図１０の四段目の波形に表したような出力（ＢＣＫ）となる。ＢＣＫは、ＴＣＫの２個目のパルスの立ち下がり時に、ハイレベルとなり、ＴＣＫの３個目のパルスの立ち上がり時に、ローレベルになる。そして、ＢＣＫは、ＴＣＫの６個目のパルスの立ち下がり時に、再びハイレベルとなり、ＴＣＫの７個目のパルスの立ち上がり時に、ローレベルになる。以下、これを繰り返す。
【００６６】
図１０の五段目の波形はＡＮＤ回路４２２の出力信号（ＣＣＫ）の波形を表している。図９の六段目の波形に表した出力と、図１０の二段目の波形に表した出力とをＡＮＤ処理すると、図１０の五段目の波形に表したような出力（ＣＣＫ）となる。ＣＣＫは、ＴＣＫの３個目のパルスの立ち下がり時に、ハイレベルとなり、ＴＣＫの４個目のパルスの立ち上がり時に、ローレベルになる。そして、ＣＣＫは、ＴＣＫの７個目のパルスの立ち下がり時に、再びハイレベルとなり、ＴＣＫの８個目のパルスの立ち上がり時に、ローレベルになる。以下、これを繰り返す。
【００６７】
図１０の六段目の波形はＡＮＤ回路４２４の出力信号（ＤＣＫ）の波形を表している。図９の七段目の波形に表した出力と、図１０の二段目の波形に表した出力とをＡＮＤ処理すると、図１０の六段目の波形に表したような出力（ＤＣＫ）となる。ＤＣＫは、ＴＣＫの４個目のパルスの立ち下がり時に、ハイレベルとなり、ＴＣＫの５個目のパルスの立ち上がり時に、ローレベルになる。そして、ＤＣＫは、ＴＣＫの８個目のパルスの立ち下がり時に、再びハイレベルとなり、ＴＣＫの９個目のパルスの立ち上がり時に、ローレベルになる。以下、これを繰り返す。
【００６８】
これによれば、テストクロックＴＣＫのアップエッジとダウンエッジの両方を使用することができ、試験時間を短くすることができる。ゆえに、ＬＳＩ外部からの信号の速度がＬＳＩ内部よりも遅いため、テストクロックのパルス数のために試験時間が長くなることを防ぐことができる。
【００６９】
図１１は、チョッパ回路とステートマシンとを用いたクロック生成回路の例である。インバータ５０２は、ＴＣＫからの入力を反転する。インバータ５０２の出力は、ＡＮＤ回路５０４の入力に接続される。さらに、インバータ５０２の出力は、ＮＯＲ（Ｎｏｔ−ＯＲ：否定的論理和）回路５０６の入力に接続される。ＡＮＤ回路５０４は、ＴＣＫからの入力と、インバータ５０２の出力とを論理積演算を行って出力する。ＡＮＤ回路５０４の出力は、ＯＲ（論理和）回路５０８の入力に接続される。ＮＯＲ回路５０６は、ＴＣＫからの入力と、インバータ５０２の出力とを否定的論理和演算して出力する。ＮＯＲ回路５０６の出力は、ＯＲ回路５０８の入力に接続される。ＯＲ回路５０８は、ＡＮＤ回路５０４の出力と、ＮＯＲ回路５０６の出力とを論理和演算する。ＯＲ回路５０８の出力は、フリップフロップ回路５１０及びフリップフロップ回路５１２の入力に接続される。インバータ５０２、ＡＮＤ回路５０４、ＮＯＲ回路５０６及びＯＲ回路５０６から逓倍回路が構成される。
【００７０】
フリップフロップ回路５１２は、ＯＲ回路５０８の出力を入力タイミング信号としてＸＯＲ回路５１４の出力をラッチする。フリップフロップ回路５１０は、ＯＲ回路５０８の出力を入力タイミング信号としてインバータ５１６の出力をラッチする。
【００７１】
ＸＯＲ回路５１４は、フリップフロップ回路５１０の出力と、フリップフロップ回路５１２の出力とを排他的論理和演算する。ＸＯＲ回路５１４の出力は、フリップフロップ回路５１２の入力に接続される。インバータ５１６は、フリップフロップ回路５１２の出力を反転する。インバータ５１６の出力は、フリップフロップ回路５１０の入力に接続される。このようにして、逓倍クロックを分周する分周回路が構成されている。
【００７２】
ＡＮＤ回路５１８は、フリップフロップ回路５１０の出力と、フリップフロップ回路５１２の出力の反転とを論理積演算する。ＡＮＤ回路５１８の出力は、インバータ５２６及びＡＮＤ回路５３４の入力に接続される。インバータ５２６及びＡＮＤ回路５３４から第一のチョッパ回路が構成される。ＡＮＤ回路５２０は、フリップフロップ回路５１０の出力の反転と、フリップフロップ回路５１２の出力とを論理積演算する。ＡＮＤ回路５１８の出力は、インバータ５２８及びＡＮＤ回路５３６の入力に接続される。インバータ５２８及びＡＮＤ回路５３６から第二のチョッパ回路が構成される。ＡＮＤ回路５２２は、フリップフロップ回路５１０の出力と、フリップフロップ回路５１２の出力とを論理積演算する。ＡＮＤ回路５２２の出力は、インバータ５３０及びＡＮＤ回路５３８の入力に接続される。インバータ５３０及びＡＮＤ回路５３８から第三のチョッパ回路が構成される。ＡＮＤ回路５２４は、フリップフロップ回路５１０の出力の反転と、フリップフロップ回路５１２の出力の反転とを論理積演算する。ＡＮＤ回路５２４の出力は、インバータ５３２及びＡＮＤ回路５４０の入力に接続される。インバータ５３２及びＡＮＤ回路５４０から第四のチョッパ回路が構成される。
【００７３】
インバータ５２６は、ＡＮＤ回路５１８の出力を反転する。インバータ５２６の出力は、ＡＮＤ回路５３４の入力に接続される。インバータ５２８は、ＡＮＤ回路５２０の出力を反転する。インバータ５２８の出力は、ＡＮＤ回路５３６の入力に接続される。インバータ５３０は、ＡＮＤ回路５２２の出力を反転する。インバータ５３０の出力は、ＡＮＤ回路５３８の入力に接続される。インバータ５３２は、ＡＮＤ回路５２４の出力を反転する。インバータ５３２の出力は、ＡＮＤ回路５４０の入力に接続される。
【００７４】
図１２、図１３、図１４及び図１５は、チョッパ回路とステートマシンを用いて生成したクロック信号の波形を表す。図１２の一段目の波形は外部テストクロックＴＣＫを表している。ＴＣＫは、インバータ５０２、ＡＮＤ回路５０４に入力される。
【００７５】
図１２の二段目の波形は、インバータ５０２の出力信号の波形を表している。インバータ５０２の出力は、ＡＮＤ回路５０４、ＮＯＲ回路５０６に入力される。
【００７６】
図１２の三段目の波形は、ＡＮＤ回路５０４の出力信号の波形を表している。図１２の一段目の波形に表した出力と、図１２の二段目の波形に表した出力とを論理積演算すると、図１２の三段目の波形に表したような出力となる。ＡＮＤ回路５０４の出力は、ＯＲ回路５０８に入力される。
【００７７】
図１２の四段目の波形は、ＮＯＲ回路５０６の出力信号の波形を表している。図１２の一段目の波形に表した出力と、図１２の二段目の波形に表した出力とを否定的論理和演算すると、図１２の四段目の波形に表したような出力となる。ＮＯＲ回路５０６の出力は、ＯＲ回路５０８に入力される。
【００７８】
図１２の五段目の波形は、ＯＲ回路５０８の出力信号の波形を表している。図１２の三段目の波形に表した出力と、図１２の四段目の波形に表した出力とをＯＲ処理すると、図１２の五段目の波形に表したような出力となる。ＯＲ回路５０８の出力は、フリップフロップ回路５１０、５１２に入力される。
【００７９】
図１３の三段目の波形は、フリップフロップ回路５１０のＱ端子の出力信号の波形を表している。図１３の四段目の波形は、フリップフロップ回路５１２のＱ端子の出力を表している。フリップフロップ回路５１０がＱ端子から出力した信号は、ＡＮＤ回路５１８、５２２に入力される。また、Ｑ端子から出力した信号は、反転されてＡＮＤ回路５２０、５２４に入力される。フリップフロップ回路５１２がＱ端子から出力した信号は、ＡＮＤ回路５２０、５２２に入力される。また、Ｑ端子から出力した信号は、反転されてＡＮＤ回路５１８、５２４に入力される。
【００８０】
図１３の五段目の波形は、ＡＮＤ回路５１８の出力信号の波形を表している。図１３の三段目の波形に表した出力と、図１３の四段目の波形に表した出力を反転したものとを論理積演算すると、図１３の五段目の波形に表したような出力となる。ＡＮＤ回路５１８の出力は、インバータ５２６及びＡＮＤ回路５３４に入力される。
【００８１】
図１３の六段目の波形は、ＡＮＤ回路５２０の出力信号の波形を表している。図１３の三段目の波形に表した出力を反転したものと、図１３の四段目の波形に表した出力とを論理積演算すると、図１３の六段目の波形に表したような出力となる。ＡＮＤ回路５２０の出力は、インバータ５２８及びＡＮＤ回路５３６に入力される。
【００８２】
図１３の七段目の波形は、ＡＮＤ回路５２２の出力信号の波形を表している。図１３の三段目の波形に表した出力と、図１３の四段目の波形に表した出力とを論理積演算すると、図１３の七段目の波形に表したような出力となる。ＡＮＤ回路５２２の出力は、インバータ５３０及びＡＮＤ回路５３８に入力される。
【００８３】
図１３の八段目の波形は、ＡＮＤ回路５２４の出力信号の波形を表している。図１３の三段目の波形に表した出力を反転したものと、図１３の四段目の波形に表した出力を反転したものとを論理積演算すると、図１３の八段目の波形に表したような出力となる。ＡＮＤ回路５２４の出力は、インバータ５３２及びＡＮＤ回路５４０に入力される。
【００８４】
図１４の二段目の波形は、インバータ５２６の出力信号の波形を表している。図１４の三段目の波形は、インバータ５２８の出力を表している。図１４の四段目の波形は、インバータ５３０の出力を表している。図１４の五段目の波形は、インバータ５３２の出力を表している。
【００８５】
図１５の二段目の波形はＡＮＤ回路５３４の出力信号（ＡＣＫ）の波形を表している。図１３の五段目の波形に表した出力と、図１４の二段目の波形に表した出力とを論理積演算すると、図１５の二段目の波形に表したような出力（ＡＣＫ）となる。ＡＣＫは、ＴＣＫの１個目のパルスの立ち上がり時に、ハイレベルとなり、ＴＣＫの３個目のパルスの立ち上がり時に、ハイレベルとなり、ＴＣＫの５個目のパルスの立ち上がり時に、ハイレベルとなる。以下、これを繰り返す。
【００８６】
図１５の三段目の波形はＡＮＤ回路５３６の出力（ＢＣＫ）を表している。図１３の六段目の波形に表した出力と、図１４の三段目の波形に表した出力とを論理積演算すると、図１５の三段目の波形に表したような出力（ＢＣＫ）となる。ＢＣＫは、ＴＣＫの１個目のパルスの立ち下がり時に、ハイレベルとなり、ＴＣＫの３個目のパルスの立ち下がり時に、ハイレベルとなり、ＴＣＫの５個目のパルスの立ち下がり時に、ハイレベルとなる。以下、これを繰り返す。
【００８７】
図１５の四段目の波形はＡＮＤ回路５３８の出力信号（ＣＣＫ）の波形を表している。図１３の七段目の波形に表した出力と、図１４の四段目の波形に表した出力とを論理積演算すると、図１５の四段目の波形に表したような出力（ＣＣＫ）となる。ＣＣＫは、ＴＣＫの２個目のパルスの立ち上がり時に、ハイレベルとなり、ＴＣＫの４個目のパルスの立ち上がり時に、ハイレベルとなり、ＴＣＫの６個目のパルスの立ち上がり時に、ハイレベルとなる。以下、これを繰り返す。
【００８８】
図１５の五段目の波形はＡＮＤ回路５４０の出力（ＤＣＫ）を表している。図１３の八段目の波形に表した出力と、図１４Ｒに表した出力とをＡＮＤ処理すると、図１５の五段目の波形に表したような出力（ＤＣＫ）となる。ＤＣＫは、ＴＣＫの２個目のパルスの立ち下がり時に、ハイレベルとなり、ＴＣＫの４個目のパルスの立ち下がり時に、ハイレベルとなり、ＴＣＫの６個目のパルスの立ち下がり時に、ハイレベルとなる。以下、これを繰り返す。
【００８９】
最後に本実施形態の有効性について説明する。例えば、図１６に表したようなフリップフロップ回路から構成されるスキャンチェーンを考える。フリップフロップ回路は、マスタラッチ７１０及びスレーブラッチ７２０とから構成される。マスタラッチ７１０は、インバータ７１２とインバータ７１４とから構成される。インバータ７１２の出力はインバータ７１４の入力に接続される。そして、インバータ７１４の出力はインバータ７１２の入力に接続され、順序回路が構成される。マスタラッチ７１０には、イネーブル端子付きインバータ７０２が接続される。イネーブル端子付きインバータ７０２にはスキャンインデータＳＩが入力される。マスタラッチ７１０には、イネーブル端子付きインバータ７０４が接続される。イネーブル端子付きインバータ７０４は、外部からクロック信号が入力された場合、インバータ７１０の出力をインバータ７２０に出力する。スレーブラッチ７２０は、インバータ７２２とインバータ７２４とから構成される。インバータ７２２の出力はインバータ７２４の入力に接続される。そして、インバータ７２４の出力はインバータ７２２の入力に接続され、ラッチ回路が構成される。インバータ７２４の出力は、インバータ７２６から出力する。マスタラッチ７１０には、トランスファーゲート７０３、クリアスイッチ７６２及びインバータ７０２が接続される。トランスファーゲート７０３には、インバータ７０１が接続される。さらに、インバータ７０１には、Ｎ型トランジスタ７６３が接続される。インバータ７０１には、保持対象データであるデータ（Ｄ）が入力される。インバータ７０１は、入力されたデータをトランスファーゲート７０３に出力する。トランスファーゲート７０３は、外部からクロック信号の入力があった場合は、インバータ７０１から出力されたデータをマスタラッチ７１０に出力する。Ｎ型トランジスタ７６３は、インバータ７０１のグランドから出力へのパスを切断する。クリアスイッチ７６２は、マスタラッチ７１０等が保持しているデータを電源電位と短絡することによりクリアする。図１７に表したように、クロックＣＫのアップエッジをトリガーに、出力Ｑが変化する。
【００９０】
スキャンチェーンの構造を図１９に表す。また、スキャンチェーンの動作を図２０に表す。図１９に表したように、ここでは、スキャンチェーンは、例えば、マスタラッチ２１０、スレーブラッチ２２０、マスタラッチ２３０、スレーブラッチ２４０、マスタラッチ２５０及びスレーブラッチ２６０から構成されている。図１８に表したように、マスタラッチ２１０、２３０及び２４０を制御するＡ−Ｃｌｏｃｋと、スレーブラッチ２２０、２４０及び２６０を制御するＢ−Ｃｌｏｃｋとを交互にＯＮすることで、ＳＩ入力からＱに信号を伝播する。Ｑの信号を次のフリップフロップ回路のＳＩに入力することで、スキャンチェーンが構成される。
【００９１】
図２０に表したように、Ａ−Ｃｌｏｃｋ及びＢ−Ｃｌｏｃｋが共にローレベルの時は、マスタラッチ２１０、２３０、２５０及び２７０、スレーブラッチ２２０、２４０、２６０及び２８０は、それぞれデータを保持する。Ａ−Ｃｌｏｃｋがハイレベル、Ｂ−Ｃｌｏｃｋがローレベルの時は、マスタラッチ２１０はＳＩ入力をラッチし、マスタラッチ２３０はスレーブラッチ２２０の出力をラッチし、マスタラッチ２５０はスレーブラッチ２４０の出力をラッチし、マスタラッチ２７０はスレーブラッチ２６０の出力をラッチし、スレーブラッチ２８０は保持した信号をＳＯとして出力する。Ａ−Ｃｌｏｃｋがローレベル、Ｂ−Ｃｌｏｃｋがハイレベルの時は、スレーブラッチ２２０はマスタラッチ２１０の出力をラッチし、スレーブラッチ２４０はマスタラッチ２３０の出力をラッチし、スレーブラッチ２６０はマスタラッチ２５０の出力をラッチし、スレーブラッチ２８０はマスタラッチ２７０の出力をラッチする。
【００９２】
これに対し、本実施形態では、システム動作に用いられるマスタラッチ２つ以上に対し、スレーブラッチを１つ持つ回路としている。本実施形態を適用したマスタラッチ３つに対してスレーブラッチ１つを持つ回路では、図１９に表した回路と比較して、（マスタラッチの数＋スレーブラッチの数）×３の計６個のラッチが必要であったのに対して、（マスタラッチ×３＋スレーブラッチ×１）の計４個であるため、回路量を２／３にすることができる。
【００９３】
また、図２１に表した回路ではテストクロックのアップエッジ、ダウンエッジからＡ−Ｃｌｏｃｋ、Ｂ−Ｃｌｏｃｋを生成する手法を用いていた。図２２の一段目の波形はテストクロックＴＣＫ１の出力を表す。図２２の二段目の波形はインバータ６０２、６０４の出力を表す。図２２の三段目の波形はインバータ６０６の出力を表す。図２２の四段目の波形はＡＮＤ回路６０８の出力であるＡ−Ｃｌｏｃｋの波形を表す。図２２の四段目の波形はＡＮＤ回路６１０の出力であるＢ−Ｃｌｏｃｋの波形を表す。しかし、クロック信号を多相にすると、テストクロックの本数を増加させなければならない。例えば、図２３に表したように４相のクロックを生成する場合、ＴＣＫ１の他に新なテストクロックＴＣＫ２を用意して、それぞれのアップエッジとダウンエッジでクロックパルスを生成する。図２４の一段目の波形は新たなＴＣＫ２の出力を表す。図２２の二段目の波形はインバータ６０２、６０４の出力を表す。図２２の三段目の波形はインバータ６０６の出力を表す。図２２の四段目の波形はＡＮＤ回路６０８の出力であるＡ−Ｃｌｏｃｋの波形を表す。図２２の四段目の波形はＡＮＤ回路６１０の出力であるＢ−Ｃｌｏｃｋの波形を表す。
【００９４】
これに対して、本実施形態では、テストクロックによって遷移するステートマシンを構成し、各ステートに応じてクロック信号を出力する構成としている。そのため、ＬＳＩ端子数の増加を回避することができる。
【００９５】
以上の実施の形態は、本発明をより良く理解させるために具体的に説明したものであって、別形態を制限するものではない。従って、発明の要旨を変更しない範囲で変更可能である。例えば、図１に表したフリップフロップ回路及びその制御方法では、マスタラッチ３つに対してスレーブラッチを１つ接続する構成にしたが、マスタラッチは任意の数でも良い。そして、マスタラッチの数に基づいて、クロック生成回路を構成すれば良い。また、例えば、図１６に表したようなフリップフロップ回路が複数接続されている回路のスレーブラッチの出力をスキャンインデータとして、図１に表したようなＬＳＩ試験回路に入力してスキャンチェーンを構成しても良い。また、例えば、図１に表したようなＬＳＩ試験回路のスレーブラッチの出力をスキャンインデータとして、図１６に表したようなフリップフロップ回路に入力してスキャンチェーンを構成しても良い。また、例えば、図１に表したようなＬＳＩ試験回路の連続するマスタラッチの間に、図１６に表したようなフリップフロップ回路を接続してスキャンチェーンを構成しても良い。
【図面の簡単な説明】
【００９６】
【図１】本実施形態におけるＬＳＩ試験回路図である。
【図２】透過型ラッチの回路図である。
【図３】本実施形態におけるスキャンチェーンの構造を表す図である。
【図４】本実施形態におけるスキャンチェーンの動作を表す図（その１）である。
【図５】本実施形態におけるスキャンチェーンの動作を表す図（その２）である。
【図６】クロック信号を生成するためのステートマシンを表す図（その１）である。
【図７】ステートマシンの動作を表す波形図（その１）である。
【図８】クロック信号を生成するためのステートマシンを表す図（その２）である。
【図９】ステートマシンの動作を表す波形図（その２）である。
【図１０】ステートマシンの動作を表す波形図（その３）である。
【図１１】クロック信号を生成するためのチョッパ回路とステートマシンを表す図である。
【図１２】チョッパ回路とステートマシンの動作を表す波形図（その１）である。
【図１３】チョッパ回路とステートマシンの動作を表す波形図（その２）である。
【図１４】チョッパ回路とステートマシンの動作を表す波形図（その３）である。
【図１５】チョッパ回路とステートマシンの動作を表す波形図（その４）である。
【図１６】フリップフロップ回路の回路図である。
【図１７】フリップフロップ回路の動作を表す波形図である。
【図１８】フリップフロップ回路のスキャンチェーン時の動作を表す波形図である。
【図１９】スキャンチェーンの構造を表す図である。
【図２０】スキャンチェーンの動作を表す図である。
【図２１】クロック信号を生成するための回路図（その１）である。
【図２２】クロック信号を生成するための回路の動作を表す波形図（その１）である。
【図２３】クロック信号を生成するための回路図（その２）である。
【図２４】クロック信号を生成するための回路の動作を表す波形図（その２）である。
【符号の説明】
【００９７】
１、４、１２、１４、１６、２２、２４、２６、１０１、１０２、１０３、１１２、１１４、１２２、１２４、１３２、１３４、１４２、１４４、１５１、１５２、１５３、１５４、２０１、２１２、２１４、２２２、２２４、２２６、３０８、４０６、５０２、５１６、５２６、５２８、５３０、５３２、６０２、６０４、６０６、６１２、６１４、６１６、７０１、７０４、７１２、７１４、７２２、７２４、７２６  インバータ
２、１６２、１６５、１６８、２６２  クリアスイッチ
３、１６０、１６４、１６７、２０３  トランスファーゲート
５、１６１、１６３、１６６、７６３  Ｎ型トランジスタ
１０、１１０、１２０、１３０、１５０、１６０、１７０、２１０、２３０、２５０、２７０、７１０  マスタラッチ
２０、１４０、１８０、２２０、２４０、２６０、２８０、７２０  スレーブラッチ
６、１０４、１０５、１０６、１０７、２０２、２０４、７０２、７０４、７２６  イネーブル端子付きインバータ
３０２、３０４、３０６、４０２、４０４、５１０、５１２  フリップフロップ回路
３１２、３１６、３１８、３２０、３２２、４１０、４１２、４１４、４１６、４１８、４２０、４２２、４２４、５０４、５１８、５２０、５２２、５２４、５３４、５３６、５３８、５４０、６０８、６１０、６１８、６２０  ＡＮＤ回路
４２６  ハザード防止用ディレイ
３１０、３１４、４０８、５１４  ＸＯＲ回路
５０６  ＮＯＲ回路
５０８  ＯＲ回路
【図１】
0004935531.tif 000002
【図２】
0004935531.tif 000003
【図３】
0004935531.tif 000004
【図４】
0004935531.tif 000005
【図５】
0004935531.tif 000006
【図６】
0004935531.tif 000007
【図７】
0004935531.tif 000008
【図８】
0004935531.tif 000009
【図９】
0004935531.tif 000010
【図１０】
0004935531.tif 000011
【図１１】
0004935531.tif 000012
【図１２】
0004935531.tif 000013
【図１３】
0004935531.tif 000014
【図１４】
0004935531.tif 000015
【図１５】
0004935531.tif 000016
【図１６】
0004935531.tif 000017
【図１７】
0004935531.tif 000018
【図１８】
0004935531.tif 000019
【図１９】
0004935531.tif 000020
【図２０】
0004935531.tif 000021
【図２１】
0004935531.tif 000022
【図２２】
0004935531.tif 000023
【図２３】
0004935531.tif 000024
【図２４】
0004935531.tif 000025