(57)【要約】【課題】スキャンテスト時におけるスキャンチェーン回路のホールドマージンを設けることを、通常動作時の性能の犠牲を避けつつ実現することができるフリップフロップ回路および半導体集積回路装置の提供を図る。【解決手段】クロックＣＬＫ，ＣＬＫＢの第１エッジに基づいて動作する第１ゲートＰＧ１と、前記第１ゲートの出力を保持する第１ラッチＬＡＴ１と、前記クロックの第２エッジに基づいて動作する第２ゲートＰＧ２と、前記第２ゲートを経由した出力を保持する第２ラッチＬＡＴ２と、前記第１ラッチおよび前記第２ラッチの間に、前記第２ゲートと直列に設けられ、前記クロックを遅延した制御信号により制御される第３ゲートＰＧ３と、を有する。【選択図】図５
2016201623.tif 000002
【特許請求の範囲】
【請求項１】
クロックの第１エッジに基づいて動作する第１ゲートと、
前記第１ゲートの出力を保持する第１ラッチと、
前記クロックの第２エッジに基づいて動作する第２ゲートと、
前記第２ゲートを経由した出力を保持する第２ラッチと、
前記第１ラッチおよび前記第２ラッチの間に、前記第２ゲートと直列に設けられ、前記クロックを遅延した制御信号により制御される第３ゲートと、を有する、
ことを特徴とするフリップフロップ回路。
【請求項２】
前記第３ゲートは、ｐチャネル型ＭＯＳトランジスタおよびｎチャネル型ＭＯＳトランジスタを含むパスゲート回路である、
ことを特徴とする請求項１に記載のフリップフロップ回路。
【請求項３】
前記フリップフロップ回路は、スキャンテスト時と通常動作時を切り替えて使用されるスキャンテスト用フリップフロップ回路であり、
前記パスゲート回路は、
前記スキャンテスト時には、前記制御信号によりオン／オフ制御され、
前記通常動作時には、常にオン状態に保持される、
ことを特徴とする請求項２に記載のフリップフロップ回路。
【請求項４】
前記第３ゲートは、インバータと、前記インバータに直列接続されたｐチャネル型ＭＯＳトランジスタおよびｎチャネル型ＭＯＳトランジスタを含む複合ゲート回路である、
ことを特徴とする請求項１に記載のフリップフロップ回路。
【請求項５】
前記フリップフロップ回路は、スキャンテスト時と通常動作時を切り替えて使用されるスキャンテスト用フリップフロップ回路であり、
前記複合ゲート回路における、前記インバータに直列接続されたｐチャネル型ＭＯＳトランジスタおよびｎチャネル型ＭＯＳトランジスタは、
前記スキャンテスト時には、前記制御信号によりオン／オフ制御され、
前記通常動作時には、常にオン状態に保持される、
ことを特徴とする請求項４に記載のフリップフロップ回路。
【請求項６】
さらに、
前記クロックを受け取って、前記制御信号を生成する制御信号生成回路を有する、
ことを特徴とする請求項１乃至請求項５のいずれか１項に記載のフリップフロップ回路。
【請求項７】
請求項１乃至請求項６のいずれか１項に記載のフリップフロップ回路を少なくとも１つ含む、複数の機能ブロック回路を有する、
ことを特徴とする半導体集積回路装置。
【請求項８】
さらに、
前記クロックを受け取り、前記クロックを遅延した信号を生成して、前記機能ブロック回路に出力する遅延制御ブロックを有する、
ことを特徴とする請求項７に記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で言及する実施例は、フリップフロップ回路および半導体集積回路装置に関する。
【背景技術】
【０００２】
従来、半導体集積回路装置(ＬＳＩ)のテストを容易に行う設計手法として、例えば、ランダムロジックを対象にするスキャンテストが知られている。スキャンテストは、例えば、回路内のフリップフロップ(ＦＦ：Flip-Flop)をスキャンＦＦに置き換え、スキャンテスト時には、回路内のスキャンＦＦの入力を切り替え、直列に接続してシフトレジスタを形成する。
【０００３】
そして、このシフトレジスタにより、ＬＳＩの外部Ｉ／Ｏ端子からスキャンＦＦを制御および観測するスキャンチェーン回路を形成する。なお、通常動作時には、スキャンＦＦの入力を切り替えて、通常のＦＦとして使用する。
【０００４】
ところで、従来、スキャンＦＦ(フリップフロップ回路)としては様々なものが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０５−３１５９００号公報
【特許文献２】特開２０１０−１８３５４１号公報
【特許文献３】特開平１１−１５４８４８号公報
【特許文献４】特開２００４−０３７１８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、スキャンテスト時には、例えば、回路内のスキャンＦＦの入力を切り替えてスキャンチェーン回路を形成するが、このとき、スキャンチェーン回路のホールドマージンを確保できずに、データの突き抜けが発生する虞がある。
【０００７】
また、データの突き抜けを避けるために、例えば、スキャンテストのデータパスにも、バッファなどの遅延素子を配置することが行われるが、この場合、新たに設けたバッファが消費電力の増加や占有面積の増大を引き起こす原因になる。さらに、データの突き抜けを避けるために、データや制御信号の遅延を行うことも考えられるが、通常動作時の性能を低下させる虞がある。
【課題を解決するための手段】
【０００８】
一実施形態によれば、クロックの第１エッジに基づいて動作する第１ゲートと、前記第１ゲートの出力を保持する第１ラッチと、第２ゲートと、第２ラッチと、第３ゲートと、を有するフリップフロップ回路が提供される。
【０００９】
前記第２ゲートは、前記クロックの第２エッジに基づいて動作し、前記第２ラッチは、前記第２ゲートを経由した出力を保持する。前記第３ゲートは、前記第１ラッチおよび前記第２ラッチの間に、前記第２ゲートと直列に設けられ、前記クロックを遅延した制御信号により制御される。
【発明の効果】
【００１０】
開示のフリップフロップ回路および半導体集積回路装置は、スキャンテスト時におけるスキャンチェーン回路のホールドマージンを設けることを、通常動作時の性能の犠牲を避けつつ実現することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、フリップフロップ回路の一例を示すブロック図である。
【図２】図２は、図１に示すフリップフロップ回路の動作を説明するための図である。
【図３】図３は、図１に示すフリップフロップ回路を適用した回路の一例を示すブロック図である。
【図４】図４は、図３に示す回路における問題点を説明するためのタイミング図である。
【図５】図５は、フリップフロップ回路の第１実施例を示すブロック図である。
【図６】図６は、図５に示すフリップフロップ回路における第３ゲートの制御信号を生成する回路の一例を示す図である。
【図７】図７は、図５に示すフリップフロップ回路の動作を説明するためのタイミング図である。
【図８】図８は、図５に示すフリップフロップ回路の変形例を示すブロック図である。
【図９】図９は、フリップフロップ回路の第２実施例を示すブロック図である。
【図１０】図１０は、図９に示すフリップフロップ回路における第３ゲートの一例を示す図である。
【図１１】図１１は、半導体集積回路装置の第１実施例を示すブロック図である。
【図１２】図１２は、半導体集積回路装置の第２実施例を示す図である。
【図１３】図１３は、半導体集積回路装置の第３実施例を示す図である。
【発明を実施するための形態】
【００１２】
まず、本実施例のフリップフロップ回路および半導体集積回路装置を詳述する前に、図１〜図４を参照して、フリップフロップ回路の例およびその問題点を説明する。図１は、フリップフロップ回路の一例を示すブロック図であり、マスタスレーブ型フリップフロップの一例を示すものである。
【００１３】
図１に示されるように、フリップフロップ回路は、セレクタ(マルチプレクサ)ＳＥＬ、第１および第２ゲート(パスゲート回路)ＰＧ１およびＰＧ２、第１および第２ラッチ(ラッチ回路)ＬＡＴ１およびＬＡＴ２、並びに、インバータＩ３を含む。
【００１４】
セレクタＳＥＬは、スキャンモード信号ＳＭＣで制御されるインバータＩ１およびＩ２を含み、スキャンモード信号ＳＭＣに基づいて、通常動作時に使用する実データＤＡＴＡと、スキャンテスト時に使用するスキャンデータＳＩＮを切り替えて出力する。
【００１５】
具体的に、例えば、通常動作時には、スキャンモード信号ＳＭＣを低レベル『Ｌ』とすることでＤＡＴＡを選択し、スキャンテスト時には、ＳＭＣを高レベル『Ｈ』とすることでＳＩＮを選択する。
【００１６】
すなわち、通常動作時には、インバータＩ１を活性化(インバータＩ２をオフ)して、ＤＡＴＡを反転してパスゲート回路ＰＧ１に出力し、スキャンモード時には、Ｉ２を活性化(Ｉ１をオフ)して、ＳＩＮを反転してパスゲート回路ＰＧ１に出力する。
【００１７】
パスゲート回路(第１ゲート)ＰＧ１は、ゲートにクロックＣＬＫが入力されたｐチャネル型ＭＯＳトランジスタ(ｐＭＯＳトランジスタ)と、ゲートに反転クロックＣＬＫＢが入力されたｎチャネル型ＭＯＳトランジスタ(ｎＭＯＳトランジスタ)を含む。ここで、ＣＬＫＢは、ＣＬＫのレベルを反転した信号である。
【００１８】
パスゲート回路ＰＧ１の出力は、ラッチ回路(第１ラッチ)ＬＡＴ１に入力されて保持され、ラッチ回路ＬＡＴ１の出力は、パスゲート回路(第２ゲート)ＰＧ２を介して、ラッチ回路(第２ラッチ)ＬＡＴ２に入力されて保持される。
【００１９】
ここで、ラッチ回路ＬＡＴ１は、入出力が交差接続された２つのインバータＩ１１，Ｉ１２により形成され、また、ラッチ回路ＬＡＴ２は、入出力が交差接続された２つのインバータＩ２１，Ｉ２２により形成されている。
【００２０】
なお、パスゲート回路ＰＧ２は、パスゲート回路ＰＧ１と同様に、ｐＭＯＳトランジスタおよびｎＭＯＳトランジスタを含むが、ｐＭＯＳトランジスタのゲートにはＣＬＫＢが入力され、ｎＭＯＳトランジスタのゲートにはＣＬＫが入力されている。
【００２１】
すなわち、パスゲート回路ＰＧ１とＰＧ２は、クロックＣＬＫ(ＣＬＫＢ)により交互にオン／オフされ、マスタ側のラッチ回路ＬＡＴ１とスレーブ側のラッチ回路ＬＡＴ２に保持されるデータを、クロックＣＬＫに基づいて制御するようになっている。なお、ラッチ回路ＬＡＴ２の出力は、インバータＩ３により反転されてＱ出力として出力される。
【００２２】
図２は、図１に示すフリップフロップ回路の動作を説明するための図である。図２において、クロックＣＬＫの『↑』は、ＣＬＫの立ち上がりエッジを示し、『↓』は、ＣＬＫの立ち下がりエッジを示し、それぞれの『Ｘ』は、ドントケア(don't care)を示す。
【００２３】
図２に示されるように、図１のマスタスレーブ型フリップフロップは、通常動作時にはスキャンモード信号ＳＭＣを『Ｌ』とすることでＤＡＴＡを選択し、スキャンテスト時にはＳＭＣを『Ｈ』とすることでＳＩＮを選択する。なお、クロックＣＬＫが『↓』になると、そのときのデータが保持され、フリップフロップ回路のＱ出力として出力される。
【００２４】
さらに、クロックＣＬＫ(ＣＬＫＢ)で交互に制御されるパスゲート回路ＰＧ１，ＰＧ２により、通常動作時には、ＣＬＫの１周期ごとにＤＡＴＡがＱとして出力され、スキャンテスト時には、ＣＬＫの１周期ごとにＳＩＮがＱとして出力される。
【００２５】
図３は、図１に示すフリップフロップ回路を適用した回路の一例を示すブロック図であり、図１に示すマスタスレーブ型フリップフロップを３個(ＦＦ１〜ＦＦ３)適用した回路(論理回路)の一例を示すものである。
【００２６】
図３に示す回路は、例えば、実際に論理回路として動作する論理積回路ＡＮＤ１およびバッファＢＵＦ１を有し、ＡＮＤ１により、一方の入力に与えられたＦＦ１の出力信号Ｑと、他方の入力の信号との論理積を取るようになっている。さらに、ＡＮＤ１の出力信号は、ＢＵＦ１を介してＦＦ２のＤＡＴＡとして入力される。
【００２７】
ここで、通常動作時のデータパスは、ＦＦ１の出力(Ｑ)からＡＮＤ１，ＢＵＦ１およびＦＦ２のデータ入力ＤＡＴＡに至る経路ＤＰｎになる。また、スキャンテスト時のデータパスは、ＦＦ１の出力(Ｑ)から直接ＦＦ３のスキャン入力ＳＩＮに至る経路ＤＰｓになる。
【００２８】
すなわち、例えば、通常動作時には、前段のフリップフロップＦＦ１のＱ出力に基づいて、通常複数の論理ゲート(図３では、ＡＮＤ１)を介して、後段のフリップフロップＦＦ２のデータ入力ＤＡＴＡに接続される。
【００２９】
ここで、例えば、スキャンテスト時には、フリップフロップのチェーンを形成するが、このとき、前段のフリップフロップＦＦ１のＱ出力は、後段のフリップフロップＦＦ３スキャン入力ＳＩＮに直接接続される。すなわち、スキャンテストは、フリップフロップの機能試験を目的とするため、スキャンテストのデータパスＤＰｓには、論理ゲートの配置は不要になるためである。
【００３０】
図４は、図３に示す回路における問題点を説明するためのタイミング図であり、フリップフロップ回路におけるデータ突き抜けを説明するためのものである。
【００３１】
図４に示されるように、通常動作時において、クロックＣＬＫの立ち上がりタイミング(Ａ点)で前段のＦＦ１に取り込まれたデータ(ＤＡＴＡ)は、データパスＤＰｎで遅延を生じる。そのため、後段のＦＦ２では、Ｂ点で入力に反映され、次のクロックＣＬＫの立ち上がりタイミング(Ｃ点)で正しく、後段のＦＦ２に伝達される。
【００３２】
一方、スキャンテスト時において、スキャンのデータパスＤＰｓの遅延は小さいため、Ａ点で前段のＦＦ１に取り込まれたデータＤＡＴＡは、直ちに、Ｄ点で後段のＦＦ３のスキャン入力ＳＩＮに到達する。
【００３３】
ここで、フリップフロップ間では、クロックＣＬＫ波形のタイミングにもズレが生じるため、図４に示されるように、Ｄ点でデータの突き抜けが生じ、前段のＦＦ１に取り込まれたＤＡＴＡが、同一クロックＣＬＫでそのまま後段のＦＦ３にも取り込まれてしまう。
【００３４】
このようなデータの突き抜けを避けるために、例えば、スキャンテストのデータパスＤＰｓにも、バッファなどの遅延素子を配置することが行われるが、この場合、新たに設けたバッファが消費電力の増加や占有面積の増大を引き起こす原因になる。また、データの突き抜けを避けるために、データや制御信号の遅延を行うことも考えられるが、通常動作時の性能を低下させる虞がある。
【００３５】
以下、フリップフロップ回路および半導体集積回路装置の実施例を、添付図面を参照して詳述する。図５は、フリップフロップ回路の第１実施例を示すブロック図であり、マスタスレーブ型フリップフロップの一例を示すものである。
【００３６】
図５と前述した図１の比較から明らかなように、第１実施例のフリップフロップ回路は、図１のフリップフロップ回路に対して、第２ゲート(パスゲート回路)ＰＧ２と第２ラッチ(ラッチ回路)ＬＡＴ２の間に、第３ゲート(パスゲート回路)ＰＧ３が設けられている。
【００３７】
図５に示されるように、フリップフロップ回路は、セレクタ(マルチプレクサ)ＳＥＬ、第１および第２ゲート(パスゲート回路)ＰＧ１およびＰＧ２、第１および第２ラッチ(ラッチ回路)ＬＡＴ１およびＬＡＴ２、並びに、インバータＩ３を含む。
【００３８】
セレクタＳＥＬは、スキャンモード信号ＳＭＣで制御されるインバータＩ１およびＩ２を含み、スキャンモード信号ＳＭＣに基づいて、通常動作時に使用する実データＤＡＴＡと、スキャンテスト時に使用するスキャンデータＳＩＮを切り替えて出力する。
【００３９】
具体的に、例えば、通常動作時には、スキャンモード信号ＳＭＣを低レベル『Ｌ』とすることでＤＡＴＡを選択し、スキャンテスト時には、ＳＭＣを高レベル『Ｈ』とすることでＳＩＮを選択する。
【００４０】
すなわち、通常動作時には、インバータＩ１を活性化(インバータＩ２をオフ)して、ＤＡＴＡを反転してパスゲート回路ＰＧ１に出力し、スキャンモード時には、Ｉ２を活性化(Ｉ１をオフ)して、ＳＩＮを反転してパスゲート回路ＰＧ１に出力する。
【００４１】
パスゲート回路(第１ゲート)ＰＧ１は、ゲートにクロックＣＬＫが入力されたｐＭＯＳトランジスタと、ゲートに反転クロックＣＬＫＢが入力されたｎＭＯＳトランジスタを含む。ここで、ＣＬＫＢは、ＣＬＫのレベルを反転した信号である。
【００４２】
パスゲート回路ＰＧ１の出力は、ラッチ回路(第１ラッチ)ＬＡＴ１に入力されて、保持される。さらに、ラッチ回路ＬＡＴ１の出力は、パスゲート回路(第２ゲート)ＰＧ２およびパスゲート回路(第３ゲート)ＰＧ３を介して、ラッチ回路(第２ラッチ)ＬＡＴ２に入力されて、保持される。
【００４３】
ここで、パスゲート回路ＰＧ２は、パスゲート回路ＰＧ１と同様に、ｐＭＯＳトランジスタおよびｎＭＯＳトランジスタを含むが、ｐＭＯＳトランジスタのゲートにはＣＬＫＢが入力され、ｎＭＯＳトランジスタのゲートにはＣＬＫが入力されている。すなわち、パスゲート回路ＰＧ１とＰＧ２は、クロックＣＬＫ(ＣＬＫＢ)により交互にオン／オフされる。
【００４４】
また、パスゲート回路ＰＧ３は、パスゲート回路ＰＧ１およびＰＧ２と同様に、ｐＭＯＳトランジスタおよびｎＭＯＳトランジスタを含む。ただし、パスゲート回路ＰＧ３において、ｐＭＯＳトランジスタのゲートにはＣＬＫ２Ｂが入力され、ｎＭＯＳトランジスタのゲートにはＣＬＫ２が入力されている。なお、クロックＣＬＫ２(ＣＬＫ２Ｂ)は、クロックＣＬＫ(ＣＬＫＢ)を遅延したクロックである。
【００４５】
すなわち、パスゲート回路ＰＧ１とＰＧ２は、クロックＣＬＫ(ＣＬＫＢ)により交互にオン／オフされるが、パスゲート回路ＰＧ３は、パスゲート回路ＰＧ２よりも少し遅れてスイッチング制御される。
【００４６】
これにより、スレーブ側のラッチ回路ＬＡＴ２は、パスゲート回路ＰＧ３がオンするまで、パスゲート回路ＰＧ２の出力、すなわち、マスタ側のラッチ回路ＬＡＴ１の出力を取り込むことができず、データの突き抜けを防止することが可能になる。そして、ラッチ回路ＬＡＴ２の出力は、インバータＩ３により反転されてＱ出力として出力される。
【００４７】
なお、通常動作時において、パスゲート回路ＰＧ３は、常にオン状態に保持され、スレーブ側のラッチ回路ＬＡＴ２は、パスゲート回路ＰＧ２の出力をそのまま受け取ることになり、通常動作時における性能の低下を避けることができる。
【００４８】
図５において、ラッチ回路ＬＡＴ１およびＬＡＴ２は、入出力が交差接続された２つのインバータＩ１１，Ｉ１２およびＩ２１，Ｉ２２により形成されているが、様々な構成のものを適用することができるのはいうまでもない。
【００４９】
そして、パスゲート回路ＰＧ１とＰＧ２は、クロックＣＬＫ(ＣＬＫＢ)により交互にオン／オフされ、また、スキャンテスト時において、パスゲート回路ＰＧ３は、クロックＣＬＫ２(ＣＬＫ２Ｂ)によりパスゲート回路ＰＧ２より少し遅れてオン／オフされる。なお、通常動作時において、パスゲート回路ＰＧ３は、オン状態に保持される。
【００５０】
これにより、マスタ側のラッチ回路ＬＡＴ１とスレーブ側のラッチ回路ＬＡＴ２に保持されるデータは、スキャンテスト時のデータの突き抜けや、通常動作時の性能低下を避けつつ、クロックＣＬＫに基づいて制御される。
【００５１】
図６は、図５に示すフリップフロップ回路における第３ゲートの制御信号を生成する回路(制御信号生成回路３)の一例を示す図である。図６に示されるように、制御信号生成回路(遅延回路)３は、インバータ３１，３４、遅延部３２および否定論理積(ＮＡＮＤ)回路３３を含む。
【００５２】
インバータ３１は、クロックＣＬＫを受け取って反転し、反転クロックＣＬＫＢを生成すると共に、ＣＬＫＢを遅延部３２に入力する。遅延部３２は、複数のバッファを含み、入力されたＣＬＫＢを遅延して、ＮＡＮＤ回路３３の一方の入力に与える。
【００５３】
ＮＡＮＤ回路３３の他方の入力には、スキャンモード信号ＳＭＣが与えられ、ＣＬＫＢとＳＭＣの否定論理積を取って制御信号ＣＬＫ２を生成し、さらに、インバータ３４で反転して制御信号ＣＬＫ２Ｂを生成する。
【００５４】
ここで、制御信号生成回路３は、それぞれのフリップフロップ回路に設けてもよいが、例えば、クロックツリーの所定のノード毎に、すなわち、複数のフリップフロップ回路に対して共通に設けてもよい。また、図６に示す制御信号生成回路３は、単なる例であり、様々な変形および変更が可能なのはもちろんである。
【００５５】
図７は、図５に示すフリップフロップ回路の動作を説明するためのタイミング図であり、図７(a)は、スキャンテスト時(ＳＭＣが『Ｈ』)におけるクロック(制御信号)波形を示し、図７(b)は、通常動作時(ＳＭＣが『Ｌ』)におけるクロック波形を示す。
【００５６】
図７(a)に示されるように、スキャンテスト時において、図５に示すフリップフロップ回路のパスゲート回路(第３ゲート)ＰＧ３の制御信号ＣＬＫ２，ＣＬＫ２Ｂは、クロックＣＬＫ，ＣＬＫＢを遅延させた波形になっている。
【００５７】
このＣＬＫ２，ＣＬＫ２Ｂにより、パスゲート回路ＰＧ３は、ＣＬＫ，ＣＬＫＢで制御されるパスゲート回路ＰＧ２よりも、遅延部３２により与えられる遅延量だけ遅れたタイミングでオン／オフ動作を行う。
【００５８】
これにより、スレーブ側のラッチ回路ＬＡＴ２は、パスゲート回路ＰＧ２が既にオンしていても、パスゲート回路ＰＧ３がオンするまで、マスタ側のラッチ回路ＬＡＴ１の出力を取り込むことができない。
【００５９】
そして、パスゲート回路ＰＧ３がオンした時点からラッチ回路ＬＡＴ１の出力の、ラッチ回路ＬＡＴ２への取り込みが開始されるため、ラッチ回路ＬＡＴ１の出力変化のタイミングが遅れる。これにより、前段のＦＦ１から後段のＦＦ３へのスキャン入力ＳＩＮを遅らせることができ、スキャンテスト時のデータの突き抜けを防止することが可能になる。
【００６０】
一方、ラッチ回路ＬＡＴ１の出力の、ラッチ回路ＬＡＴ２への取り込みは、パスゲート回路ＰＧ３がオンしていてもパスゲート回路ＰＧ２が先にオフした時点で終了する。そのため、フリップフロップ回路内部でのＣＬＫ２の立下り時のデータ突き抜けを抑制することができる。
【００６１】
また、図７(b)に示されるように、通常動作時において、パスゲート回路ＰＧ３の制御信号ＣＬＫ２およびＣＬＫ２Ｂは、それぞれ『Ｈ』および『Ｌ』とされ、パスゲート回路ＰＧ３はオン状態に保持される。
【００６２】
すなわち、通常動作時において、パスゲート回路ＰＧ３がオン状態に保持されているため、スレーブ側のラッチ回路ＬＡＴ２は、パスゲート回路ＰＧ２のオン／オフ動作に従ってマスタ側のラッチ回路ＬＡＴ１の出力を取り込むことができる。
【００６３】
このように、第１実施例によれば、第３ゲートＰＧ３をフリップフロップ回路の内部に追加し、通常動作時には、第３ゲートＰＧ３を常にオン状態とすることで、クロックＣＬＫ，ＣＬＫＢをそのまま使用して第１および第２ゲートＰＧ１，ＰＧ２を制御する。これにより、通常動作時の高速動作の犠牲を避けつつスキャンテスト時の対策を実現することができる。
【００６４】
さらに、第１実施例によれば、スキャンテスト時には、第３ゲートＰＧ３を、クロックＣＬＫ，ＣＬＫＢから一定時間遅らせた制御信号ＣＬＫ２，ＣＬＫ２Ｂで制御することで、スキャンテスト時のデータ突き抜けのマージンを設けることができる。
【００６５】
すなわち、第１実施例によれば、スキャンテスト時におけるスキャンチェーン回路のホールドマージンを設けることが、通常動作時の性能の犠牲を避けつつ実現することが可能になる。この効果は、他の実施例でも同様に発揮される。
【００６６】
図８は、図５に示すフリップフロップ回路の変形例を示すブロック図である。図８と前述した図５の比較から明らかなように、本変形例は、第１実施例のフリップフロップ回路におけるパスゲート回路ＰＧ２(第２ゲート)とＰＧ３(第３ゲート)の配置を逆にしたものである。
【００６７】
すなわち、図８に示されるように、本変形例において、ラッチ回路ＬＡＴ１の出力は、パスゲート回路(第３ゲート)ＰＧ３およびパスゲート回路(第２ゲート)ＰＧ２を介して、ラッチ回路(第２ラッチ)ＬＡＴ２に入力されて、保持される。
【００６８】
ここで、パスゲート回路ＰＧ２は、ＣＬＫ，ＣＬＫＢによりスイッチング制御され、パスゲート回路ＰＧ３は、ＣＬＫ，ＣＬＫＢを遅延したＣＬＫ２，ＣＬＫ２Ｂによりスイッチング制御される。
【００６９】
従って、マスタ側のラッチ回路ＬＡＴ１の出力は、既にＰＧ２がオンしていても、ＰＧ３がオンするまで、スレーブ側のラッチ回路ＬＡＴ２に伝達されない。また、ラッチ回路ＬＡＴ１の出力の、ラッチ回路ＬＡＴ２への取り込みは、パスゲート回路ＰＧ３がオンしていてもパスゲート回路ＰＧ２が先にオフした時点で終了する。そのため、図５に示す第１実施例のフリップフロップ回路と同様の効果が得られることになる。
【００７０】
すなわち、前段のＦＦ１から後段のＦＦ３へのスキャン入力ＳＩＮを遅らせることができ、スキャンテスト時のデータの突き抜けを防止することが可能になり、また、フリップフロップ回路内部でのＣＬＫ２の立下り時のデータ突き抜けを抑制することができる。
【００７１】
なお、本変形例においても、上述した第１実施例と同様に、ＰＧ３は、通常動作時では常にオン状態に保持され、ＬＡＴ２は、ＰＧ２の出力をそのまま受け取ることになるため、通常動作時における性能の低下を避けることができる。
【００７２】
図９は、フリップフロップ回路の第２実施例を示すブロック図であり、図１０は、図９に示すフリップフロップ回路における第３ゲートの一例を示す図である。ここで、図１０(a)は、複合ゲート回路(第３ゲート)ＰＧ３’の入出力関係を示す図であり、図１０(b)は、複合ゲート回路ＰＧ３’の一例を示す回路図である。
【００７３】
図９と前述した図５の比較から明らかなように、本第２実施例は、第１実施例のフリップフロップ回路におけるパスゲート回路ＰＧ３を、複合ゲート回路ＰＧ３’としたものである。なお、図１０に示す第２実施例のフリップフロップ回路では、複合ゲート回路ＰＧ３’がインバータの機能を有しているため、例えば、図５におけるインバータＩ３が省略されている。
【００７４】
図１０に示されるように、複合ゲート回路ＰＧ３’は、ｐＭＯＳトランジスタＴｐ１，Ｔｐ２およびｎＭＯＳトランジスタＴｎ１，Ｔｎ２を含み、Ｔｐ１およびＴｎ２はインバータを形成している。
【００７５】
すなわち、複合ゲート回路ＰＧ３’は、インバータ(Ｔｐ１，Ｔｎ２)と、このインバータに直列接続されたＴｐ２およびＴｎ１を含み、Ｔｐ２のゲートにはＣＬＫ２Ｂが入力され、Ｔｎ１のゲートにはＣＬＫ２を入力されて、動作の制御が行われる。
【００７６】
ここで、ＣＬＫ２，ＣＬＫ２Ｂは、ＣＬＫ，ＣＬＫＢを遅延させた信号であるため、スキャンテスト時において、複合ゲート回路ＰＧ３’は、パスゲート回路ＰＧ２のオン／オフ動作よりも少し遅れて動作(反転動作)のオン／オフを行うようになっている。
【００７７】
また、本第２実施例においても、上述した第１実施例と同様に、通常動作時には、複合ゲート回路ＰＧ３’の制御信号ＣＬＫ２，ＣＬＫ２Ｂは、それぞれ『Ｈ』，『Ｌ』とされ、複合ゲート回路ＰＧ３’はオン状態に保持されて通常のインバータとして機能する。
【００７８】
これにより、通常動作時における性能の低下を避けつつ、スキャンテスト時におけるホールドマージンを設けてデータの突き抜けを防止することが可能になる。なお、図８を参照して説明した第１実施例の変形例と同様に、本第２実施例においても、複合ゲート回路ＰＧ３’とパスゲート回路ＰＧ２の配置を逆にすることができるのはいうまでもない。
【００７９】
また、ラッチ回路ＬＡＴ１の出力の、ラッチ回路ＬＡＴ２への取り込みは、複合ゲート回路ＰＧ３’がオンしていてもパスゲート回路ＰＧ２が先にオフした時点で終了する。そのため、第１実施例のフリップフロップ回路と同様に、フリップフロップ回路内部でのＣＬＫ２の立下り時のデータ突き抜けを抑制することができる。
【００８０】
さらに、図１０に示す複合ゲート回路ＰＧ３’において、例えば、トランジスタＴｐ２およびＴｎ１によりインバータを形成し、トランジスタＴｐ１のゲートにＣＬＫ２Ｂを入力し、トランジスタＴｎ２のゲートにＣＬＫ２を入力することもできる。
【００８１】
図１１は、半導体集積回路装置の第１実施例を示すブロック図である。図１１に示されるように、第１実施例の半導体集積回路装置は、機能ブロック１０１，１０２、および、遅延制御ブロック１０３を含む。
【００８２】
機能ブロック１０１および１０２は、それぞれフリップフロップ回路ＦＦを含む。ここで、フリップフロップ回路ＦＦは、例えば、図５，図８或いは図９に示すフリップフロップ回路であり、図６を参照して説明した第３ゲートの制御信号を生成する制御信号生成回路(遅延回路)３は、含まない。
【００８３】
図１１に示されるように、第１実施例の半導体集積回路装置は、図６に示す制御信号生成回路３に相当する遅延制御ブロック１０３を、各フリップフロップ回路ＦＦに内蔵せずに、共通の回路ブロックとして設けるようになっている。
【００８４】
すなわち、遅延制御ブロック１０３から各機能ブロック１０１，１０２(フリップフロップ回路ＦＦ)に対して、クロックＣＬＫを遅延した信号ＣＬＫ２が与えられるようになっている。
【００８５】
なお、図１１では、２個の機能ブロック１０１，１０２のみが描かれ、各機能ブロック１０１，１０２におけるフリップフロップ回路ＦＦも１個のみが描かれているが、これらはさらに多数であってもよい。
【００８６】
また、図１１では、遅延制御ブロック１０３から各機能ブロック１０１，１０２への信号は、ＣＬＫ２のみが描かれているが、ＣＬＫ２の反転信号ＣＬＫ２ＢおよびクロックＣＬＫの反転信号ＣＬＫＢ等が含まれてもよい。
【００８７】
さらに、遅延制御ブロック１０３は１つに限定されるものではなく、所定数の機能ブロックに対して遅延制御ブロック１０３を設け、結果的に、遅延制御ブロック１０３を複数設けるようになってもよい。これらは、図１２および図１３でも同様である。
【００８８】
このように、第１実施例の半導体集積回路装置によれば、遅延制御ブロック１０３により、第３ゲートの制御信号(ＣＬＫ２，ＣＬＫ２Ｂ)を複数の機能ブロック１０１，１０２(ＦＦ)に対して共通に与えることができるため、面積効率を向上させることができる。そのため、比較的大きな遅延量を発生する回路を、遅延制御ブロック内１０３に配置し、例えば、機能ブロック間で大きな調整を行うこともできる。
【００８９】
図１２は、半導体集積回路装置の第２実施例を示す図である。ここで、図１２(a)は、半導体集積回路装置のブロック図を示し、図１２(b)は、図１２(a)に示す半導体集積回路装置におけるフリップフロップ回路ＦＦ’の一例のブロック図を示す。
【００９０】
図１２(a)と上述した図１１の比較から明らかなように、第２実施例の半導体集積回路装置は、第１実施例における遅延制御ブロック１０３が省略されている。その代わりに、図１２(b)に示されるように、各機能ブロック１０１，１０２に設けられたフリップフロップ回路ＦＦ’には、それぞれ図６を参照して説明した制御信号生成回路(遅延回路)３が設けられている。
【００９１】
第２実施例の半導体集積回路装置によれば、各フリップフロップ回路ＦＦ’に設けられた遅延回路(制御信号生成回路)３により、そのＦＦ’に適した遅延量を与えた制御信号ＣＬＫ２，ＣＬＫ２Ｂを生成することが可能になる。すなわち、ＦＦ’が設けられた機能ブロック１０１，１０２における個々の経路に対して、前述した対策を施すことができる。
【００９２】
図１３は、半導体集積回路装置の第３実施例を示すブロック図である。ここで、図１３(a)は、半導体集積回路装置のブロック図を示し、図１３(b)は、図１３(a)に示す半導体集積回路装置におけるフリップフロップ回路ＦＦ’の一例のブロック図を示す。
【００９３】
図１３(a)と前述した図１１および図１２(a)の比較から明らかなように、第３実施例の半導体集積回路装置は、第２実施例において、さらに、第１実施例と同様に、遅延制御ブロック１０３が設けられたものに相当する。なお、図１３(b)は、上述した図１２(b)と同様に、遅延回路３が内蔵されたフリップフロップ回路ＦＦ’を示している。
【００９４】
すなわち、本第３実施例の半導体集積回路装置において、遅延制御ブロック１０３は、クロックＣＬＫ(ＣＬＫＢ)を受け取り、ＣＬＫ(ＣＬＫＢ)を遅延した遅延クロックＣＬＫ３(ＣＬＫ３Ｂ)を生成して、複数の機能ブロック回路１０１,１０２に共通に与える。
【００９５】
各機能ブロック１０１，１０２のフリップフロップ回路ＦＦ’では、遅延回路(制御信号生成回路)３により、遅延制御ブロック１０３からの遅延クロックＣＬＫ３，ＣＬＫ３Ｂをさらに遅延して、制御信号ＣＬＫ２，ＣＬＫ２Ｂを生成する。
【００９６】
或いは、遅延回路３により、クロックＣＬＫ，ＣＬＫＢを遅延して制御信号ＣＬＫ２，ＣＬＫ２Ｂを生成する。若しくは、遅延制御ブロック１０３からの遅延クロックＣＬＫ３，ＣＬＫ３Ｂをそのまま制御信号ＣＬＫ２，ＣＬＫ２Ｂとして使用する。
【００９７】
このように、本第３実施例の半導体集積回路装置によれば、第１実施例と同様に、例えば、比較的大きな遅延量を発生する回路を、遅延制御ブロック内１０３に配置して、機能ブロック間で大きな調整を可能とする。
【００９８】
さらに、本第３実施例の半導体集積回路装置は、第２実施例と同様に、各フリップフロップ回路ＦＦ’に遅延回路３を設けることで、そのＦＦ’に適した遅延量を与えた制御信号を生成することが可能になる。すなわち、本第３実施例の半導体集積回路装置によれば、機能ブロック間の大きな調整と、機能ブロック内の個々の経路についての対策を両立することができる。
【００９９】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【０１００】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
（付記１）
クロックの第１エッジに基づいて動作する第１ゲートと、
前記第１ゲートの出力を保持する第１ラッチと、
前記クロックの第２エッジに基づいて動作する第２ゲートと、
前記第２ゲートを経由した出力を保持する第２ラッチと、
前記第１ラッチおよび前記第２ラッチの間に、前記第２ゲートと直列に設けられ、前記クロックを遅延した制御信号により制御される第３ゲートと、を有する、
ことを特徴とするフリップフロップ回路。
【０１０１】
（付記２）
前記第３ゲートは、前記第２ゲートの出力と前記第２ラッチの入力の間に設けられる、
ことを特徴とする付記１に記載のフリップフロップ回路。
【０１０２】
（付記３）
前記第３ゲートは、前記第１ラッチの出力と前記第２ゲートの入力の間に設けられる、
ことを特徴とする付記１に記載のフリップフロップ回路。
【０１０３】
（付記４）
前記第３ゲートは、ｐチャネル型ＭＯＳトランジスタおよびｎチャネル型ＭＯＳトランジスタを含むパスゲート回路である、
ことを特徴とする付記１乃至付記３のいずれか１項に記載のフリップフロップ回路。
【０１０４】
（付記５）
前記フリップフロップ回路は、スキャンテスト時と通常動作時を切り替えて使用されるスキャンテスト用フリップフロップ回路であり、
前記パスゲート回路は、
前記スキャンテスト時には、前記制御信号によりオン／オフ制御され、
前記通常動作時には、常にオン状態に保持される、
ことを特徴とする付記４に記載のフリップフロップ回路。
【０１０５】
（付記６）
前記第３ゲートは、インバータと、前記インバータに直列接続されたｐチャネル型ＭＯＳトランジスタおよびｎチャネル型ＭＯＳトランジスタを含む複合ゲート回路である。
ことを特徴とする付記１乃至付記３のいずれか１項に記載のフリップフロップ回路。
【０１０６】
（付記７）
前記フリップフロップ回路は、スキャンテスト時と通常動作時を切り替えて使用されるスキャンテスト用フリップフロップ回路であり、
前記複合ゲート回路における、前記インバータに直列接続されたｐチャネル型ＭＯＳトランジスタおよびｎチャネル型ＭＯＳトランジスタは、
前記スキャンテスト時には、前記制御信号によりオン／オフ制御され、
前記通常動作時には、常にオン状態に保持される、
ことを特徴とする付記６に記載のフリップフロップ回路。
【０１０７】
（付記８）
さらに、
前記クロックを受け取って、前記制御信号を生成する制御信号生成回路を有する、
ことを特徴とする付記１乃至付記７のいずれか１項に記載のフリップフロップ回路。
【０１０８】
（付記９）
前記第１エッジは、前記クロックの立ち上がりおよび立ち下がりの一方のエッジであり、
前記第２エッジは、前記クロックの立ち上がりおよび立ち下がりの他方のエッジである、
ことを特徴とする付記１乃至付記８のいずれか１項に記載のフリップフロップ回路。
【０１０９】
（付記１０）
前記フリップフロップ回路は、マスタスレーブ型フリップフロップであり、
前記第１ゲートおよび前記第１ラッチは、前記マスタスレーブ型フリップフロップのマスタ側を形成し、
前記第２ゲートおよび前記第２ラッチは、前記マスタスレーブ型フリップフロップのスレーブ側を形成する、
ことを特徴とする付記９に記載のフリップフロップ回路。
【０１１０】
（付記１１）
付記１乃至付記１０のいずれか１項に記載のフリップフロップ回路を少なくとも１つ含む、複数の機能ブロック回路を有する、
ことを特徴とする半導体集積回路装置。
【０１１１】
（付記１２）
さらに、
前記クロックを受け取り、前記クロックを遅延した信号を生成して、前記機能ブロック回路に出力する遅延制御ブロックを有する、
ことを特徴とする付記１１に記載の半導体集積回路装置。
【符号の説明】
【０１１２】
３    制御信号生成回路(遅延回路)
３１，３４，Ｉ１〜Ｉ３，Ｉ１１，Ｉ１２，Ｉ２１，Ｉ２２    インバータ
３２    遅延部
３３    否定論理積(ＮＡＮＤ)回路
１００    半導体集積回路装置
１０１，１０２    機能ブロック
１０３    遅延制御ブロック
ＡＮＤ１    論理積(ＡＮＤ)回路
ＢＵＦ１〜ＢＵＦ６    バッファ
ＦＦ，ＦＦ’，ＦＦ１〜ＦＦ３    フリップフロップ回路(マスタスレーブ型フリップフロップ)
ＬＡＴ１    第１ラッチ
ＬＡＴ２    第２ラッチ
ＰＧ１    第１ゲート(パスゲート回路)
ＰＧ２    第２ゲート(パスゲート回路)
ＰＧ３    第３ゲート(パスゲート回路)
ＰＧ３’    第３ゲート(複合ゲート回路)
ＳＥＬ    セレクタ(マルチプレクサ)
【図１】
2016201623.tif 000003
【図２】
2016201623.tif 000004
【図３】
2016201623.tif 000005
【図４】
2016201623.tif 000006
【図５】
2016201623.tif 000007
【図６】
2016201623.tif 000008
【図７】
2016201623.tif 000009
【図８】
2016201623.tif 000010
【図９】
2016201623.tif 000011
【図１０】
2016201623.tif 000012
【図１１】
2016201623.tif 000013
【図１２】
2016201623.tif 000014
【図１３】
2016201623.tif 000015