(57)【要約】【課題】ＬＳＩ開発の設計工数を少なくすることができるスキャンフリップフロップを提供することを目的とする。【解決手段】フリップフロップＦＦ５−２は、フリップフロップＦＦ４２及び遅延回路ＤＬＹ８を内蔵している。フリップフロップＦＦ４２は、データ入力端子Ｄ、データ出力端子Ｑ、クロック端子ＣＫ、スキャンインプット端子ＳＩ、スキャンイネーブル端子ＳＥを備えており、スキャンイネーブル端子ＳＥに入力されたスキャンイネーブル信号に応じてスキャンインプット端子ＳＩに入力されたスキャンデータ又はデータ入力端子Ｄに入力されたデータを選択的にデータ出力端子Ｑに出力する。遅延回路ＤＬＹ８は、フリップフロップＦＦ４２のデータ出力端子Ｑから出力されたデータをクロック信号の遅延時間よりも長い時間遅延させてスキャンアウトプット端子ＳＯに出力する。【選択図】　　　　図２
2004101460.tif 000002
【特許請求の範囲】
【請求項１】
少なくともクロック発生回路及び論理回路を備えた半導体集積回路に複数搭載され、前記論理回路を挟んで直列接続する通常動作を行う経路経路とは別に前記論理回路を介さずに直接接続することによりスキャンチェーンを構成してスキャンテストを可能にするスキャンフリップフロップであって、
データ入力端子と、スキャンデータ入力端子と、スキャンイネーブル端子と、クロック端子と、データ出力端子と、を少なくとも備え、前記クロック端子に入力された前記クロック発生回路からのクロック信号に同期して、前記スキャンイネーブル端子に入力されたスキャンイネーブル信号に応じて前記データ入力端子に入力されたデータ又は前記スキャンデータ入力端子に入力されたスキャンデータを前記データ出力端子に選択的に出力するフリップフロップと、
少なくとも前記スキャンデータ入力端子に入力されたスキャンデータが、複数の前記フリップフロップを直列接続してスキャンチェーンを構成した場合に順次後段のフリップフロップに転送されるように、前記クロック信号の遅延時間よりも長い予め定めた所定時間遅延させる遅延手段と、
を内蔵したことを特徴とするスキャンフリップフロップ。
【請求項２】
前記遅延手段は前記データ出力端子側に設けられ、かつ前記遅延手段により遅延させた遅延データを出力する遅延データ出力端子をさらに備えたことを特徴とする請求項１記載のスキャンフリップフロップ。
【請求項３】
前記遅延手段は、前記スキャンデータ入力端子側に設けられたことを特徴とする請求項１記載のスキャンフリップフロップ。
【請求項４】
前記半導体集積回路は周波数の異なるクロックを発生する複数のクロック発生回路を備えると共に、前記スキャンテスト時には前記複数のクロック発生回路のうち何れか１つのクロック発生回路から出力されたクロック信号により前記フリップフロップが動作し、
前記遅延手段は、前記データ出力端子側に設けられたことを特徴とする請求項１記載のスキャンフリップフロップ。
【請求項５】
前記半導体集積回路は周波数の異なるクロックを発生する複数のクロック発生回路を備えると共に、前記スキャンテスト時には前記複数のクロック発生回路のうち何れか１つのクロック発生回路から出力されたクロック信号により前記フリップフロップが動作し、
前記遅延手段は前記データ出力端子側に設けられ、かつ前記遅延手段からの遅延データ又は前記データ出力端子からの出力データを選択信号に応じて選択的に出力する選択手段と、前記選択信号を入力するための選択信号入力手段と、をさらに備えたことを特徴とする請求項１記載のスキャンフリップフロップ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スキャンフリップフロップに係り、より詳しくは、ＬＳＩのテストを容易化するためのスキャン設計に用いられるスキャンフリップフロップに関する。
【０００２】
【従来の技術】
従来、ＬＳＩ等の半導体集積回路中の複数のフリップフロップをシフトレジスタのように連結して（これを「スキャンチェーン」又は「スキャンパス」という）、外部端子からテスト信号を入力して、論理回路の動作結果をこのスキャンパスを介して読み出すことにより、テストの容易化を図ることができる技術が知られている（例えば特許文献１及び特許文献２参照）。
【０００３】
図１５には、スキャンチェーンを構成しない場合の半導体集積回路２０の回路構成を示した。半導体集積回路２０は、フリップフロップＦＦ１−１〜ＦＦ１−ｎ（ｎは自然数）、論理回路１０−１〜１０−（ｎ−１）、及びバッファＢＵＦ１２を備えている。
【０００４】
フリップフロップＦＦ１−１〜ＦＦ１−ｎのクロック端子ＣＫには、バッファＢＵＦ１２から所定周波数のクロック信号が入力される。フリップフロップＦＦ１−１のＤ端子にはデータが入力され、フリップフロップＦＦ１−１のＱ端子は論理回路１０−１を介して後段のフリップフロップＦＦ１−２のデータ入力端子Ｄと接続されている。同様に、フリップフロップＦＦ１−２のデータ出力端子Ｑは論理回路１０−２を介して後段のフリップフロップＦＦ１−３のデータ入力端子Ｄと接続されている。フリップフロップＦＦ１−１は、データ入力端子Ｄに入力されたデータをクロック端子ＣＫに入力されたクロック信号の立ち上がりエッジに同期してデータ出力端子Ｑに出力する。フリップフロップＦＦ１−２以降のフリップフロップも同様である。
【０００５】
ＬＳＩ等の半導体集積回路の製造テスト時には、半導体集積回路を構成する素子を全て検査する必要があるが、図１５に示したような構成では、任意のデータを任意のフリップフロップにセットするのが困難である。
【０００６】
このため、フリップフロップＦＦ１−１〜ＦＦ１−ｎを図１６に示すようなフリップフロップＦＦ３−１〜ＦＦ３−ｎに置き換えてスキャンチェーンすなわちシフトレジスタを構成し、任意のデータを任意のフリップフロップにセットしたり外部へ取り出すことによりテストするのが一般的である。
【０００７】
フリップフロップＦＦ３−１〜ＦＦ３−ｎは、データ入力端子Ｄ、データ出力端子Ｑ、及びクロック端子ＣＫに加えて、スキャンインプット端子ＳＩ及びスキャンイネーブル端子ＳＥが設けられている。スキャンインプット端子ＳＩには、任意のスキャンデータが入力される。スキャンイネーブル端子ＳＥには、データ出力端子Ｑに出力するデータを選択するためのスキャンイネーブル信号が入力される。例えばスキャンイネーブル信号がイネーブル（例えばハイレベル）の場合には、図１７に示すように、スキャンインプット端子ＳＩに入力されたスキャンデータをクロック端子ＣＫに入力されたクロック信号の立ち上がりエッジに同期してデータ出力端子Ｑに出力する。これにより、各フリップフロップのデータ出力端子Ｑが後段のフリップフロップのスキャンインプット端子ＳＩと接続され、任意のデータをセットすることができる。
【０００８】
一方、スキャンイネーブル信号がイネーブルでない場合には、図１７に示すように、データ入力端子Ｄに入力されたデータをクロック端子ＣＫに入力されたクロック信号の立ち上がりエッジに同期してデータ出力端子Ｑに出力する。なお、スキャンイネーブル信号は、スキャンテスト時には、必要に応じてローレベル又はハイレベルとなり、通常動作時には、ローレベルに固定される。
【０００９】
しかしながら、図１６に示した構成では、バッファＢＵＦ１２から各フリップフロップに供給されるクロック信号にスキュー、すなわち時間差による遅延が生じると誤動作を起こす場合がある。すなわち、図１８に示すように、例えばフリップフロップＦＦ３−２に入力されるクロック信号とフリップフロップＦＦ３−３に入力されるクロック信号との間にスキューが生じている場合、フリップフロップＦＦ３−２のデータ出力端子Ｑからデータが出力された後にフリップフロップＦＦ３−３に入力されるクロック信号が立ち上がるため、データがシフトされず、フリップフロップＦＦ３−２と同じサイクルでフリップフロップＦＦ３−３からデータが出力されてしまうという異常動作を起こしてしまう。
【００１０】
このため、図１９に示すように、フリップフロップＦＦ３−２のデータ出力端子ＱとフリップフロップＦＦ３−３のスキャンインプット端子ＳＩとの間に、スキューによる遅延時間よりも長い遅延値を有する遅延回路ＤＬＹ４を挿入することにより、タイミングの改善を図っていた。これにより、図２０に示すように、フリップフロップＦＦ３−２のデータ出力端子Ｑから出力されたデータが遅延回路ＤＬＹ４によってスキューによる遅延時間よりも長い時間遅延されてフリップフロップＦＦ３−３のスキャンインプット端子ＳＩに入力されるため、フリップフロップＦＦ３−２と同じサイクルでフリップフロップＦＦ３−３からデータが出力されてしまうのを防ぐことができる。
【００１１】
図２１には、スキャンチェーンを構成可能な半導体集積回路であって複数のクロック回路を備えた半導体集積回路３０を示した。図２１に示す半導体集積回路３０は、各々周波数が異なるクロック信号を出力するバッファＢＵＦ１２、ＢＵＦ１４、及びクロック選択回路ＭＵＸ１６を備えている。ここで、バッファＢＵＦ１４が出力するクロック信号の周波数は、バッファＢＵＦ１２が出力するクロック信号の周波数よりも高いものとする。
【００１２】
クロック選択回路ＭＵＸ１６は、Ｂ端子、Ａ端子、及びＳ端子を備えており、Ｂ端子にはバッファＢＵＦ１２からのクロック信号が、Ａ端子にはバッファＢＵＦ１４からのクロック信号が、Ｓ端子には、クロック選択信号がそれぞれ入力される。Ｓ端子には、例えば通常動作時にはローレベルが入力され、スキャンテスト時にはハイレベルが入力される。
【００１３】
クロック選択回路ＭＵＸ１６は、Ｓ端子に入力されるクロック選択信号がローレベルの場合、すなわち通常動作時には、Ａ端子に入力されるバッファＢＵＦ１４からのクロック信号を選択してフリップフロップＦＦ３−３〜ＦＦ３−ｎに出力する。一方、Ｓ端子に入力されるクロック選択信号がハイレベルの場合、すなわちスキャンテスト時には、Ｂ端子に入力されるバッファＢＵＦ１２からのクロック信号を選択してフリップフロップＦＦ３−３〜ＦＦ３−ｎに出力する。
【００１４】
すなわち、通常動作時には、図２２に示すように、例えばフリップフロップＦＦ３−２は、フリップフロップＦＦ３−３とは異なる周波数のクロックで動作する。一方、スキャンテスト時には、それぞれ同一周波数のクロックで動作する。
【００１５】
このため、図２２に示すように、例えばバッファＢＵＦ１２からのクロック信号により動作するフリップフロップＦＦ３−２から出力されたデータは、次段のフリップフロップＦＦ３−３では複数サイクル保持される。従って、バッファＢＵＦ１２、ＢＵＦ１９における前述したスキューによる問題は発生せず、フリップフロップＦＦ３−２から出力されたデータは、スキューの有り無しに関係なくフリップフロップＦＦ３−３に受け渡される。なお、このような関係をマルチサイクルパスという。
【００１６】
しかしながら、スキャンテスト時には、図２３に示すように何れのフリップフロップもバッファＢＵＦ１２からのクロックにより動作するため、前述したように、クロックのスキューが発生することによりフリップフロップＦＦ３−２が取り込んだデータが同一サイクルで次段のフリップフロップＦＦ３−３が取り込んでしまうという異常動作を起こしてしまう。
【００１７】
このため、通常動作時では問題とならないスキューを補正するために、タイミング改善の設計が必要であった。
【００１８】
従って、スキャンテスト設計を行う際には、図２４に示すように、まず通常のＬＳＩの機能についての回路設計を行い（ステップ２００）、その後スキャン用のフリップフロップの挿入等のスキャン設計を行い（ステップ２０２）、上記のようなスキューによる異常動作を防ぐために遅延回路を挿入する等のタイミング改善のための設計を行う（ステップ２０４）ことにより、最終的な回路を決定していた。
【００１９】
【特許文献１】
特開平１０−１７７０６０号公報。
【特許文献２】
特開平１１−１２５６６２号公報。
【００２０】
【発明が解決しようとする課題】
しかしながら、タイミング改善のための設計は、ＬＳＩが通常動作する分においては必要ないため、タイミング改善のための設計工数は、実際は余分な工数となっていた。
【００２１】
本発明は、上記事実に鑑みて成されたものであり、ＬＳＩ開発の設計工数を少なくすることができるスキャンフリップフロップを提供することを目的とする。
【００２２】
【課題を解決するための手段】
上記目的を達成するために、請求項１記載の発明は、少なくともクロック発生回路及び論理回路を備えた半導体集積回路に複数搭載され、前記論理回路を挟んで直列接続する通常動作を行う経路経路とは別に前記論理回路を介さずに直接接続することによりスキャンチェーンを構成してスキャンテストを可能にするスキャンフリップフロップであって、データ入力端子と、スキャンデータ入力端子と、スキャンイネーブル端子と、クロック端子と、データ出力端子と、を少なくとも備え、前記クロック端子に入力された前記クロック発生回路からのクロック信号に同期して、前記スキャンイネーブル端子に入力されたスキャンイネーブル信号に応じて前記データ入力端子に入力されたデータ又は前記スキャンデータ入力端子に入力されたスキャンデータを前記データ出力端子に選択的に出力するフリップフロップと、少なくとも前記スキャンデータ入力端子に入力されたスキャンデータが、複数の前記フリップフロップを直列接続してスキャンチェーンを構成した場合に順次後段のフリップフロップに転送されるように、前記クロック信号の遅延時間よりも長い予め定めた所定時間遅延させる遅延手段と、を内蔵したことを特徴とする。
【００２３】
スキャンフリップフロップは、クロック発生回路及び論理回路を備えた半導体集積回路に複数搭載され、論理回路を介さずに直列接続することによりスキャンチェーンを構成してスキャンテストを可能にするものである。ここで、論理回路を介さずに直列接続するとは、スキャンフリップフロップのデータ出力端子が論理回路を介さずに後段のスキャンフリップフロップのスキャンデータ入力端子に接続されるように接続することをいう。
【００２４】
そして、スキャンフリップフロップは、フリップフロップ及び遅延手段を内蔵している。
【００２５】
フリップフロップは、データ入力端子と、スキャンデータ入力端子と、スキャンイネーブル端子と、クロック端子と、データ出力端子と、を少なくとも備えており、例えばクロック端子に入力されたクロック発生回路からのクロック信号の立ち上がりエッジに同期して、スキャンイネーブル端子に入力されたスキャンイネーブル信号に応じてデータ入力端子に入力されたデータ又はスキャンデータ入力端子に入力されたスキャンデータをデータ出力端子に選択的に出力する。
【００２６】
遅延手段は、少なくともスキャンデータ入力端子に入力されたスキャンデータが、複数のフリップフロップを直列接続してスキャンチェーンを構成した場合に順次後段のフリップフロップに転送されるように、すなわち、複数のフリップフロップが同一サイクルで同じデータを取り込まないように、クロック信号の遅延時間よりも長い予め定めた所定時間遅延させる。
【００２７】
このような遅延手段を内蔵しているため、スキャン設計後にタイミング改善のための設計を行う必要がない。これにより、半導体集積回路の設計工数を少なくすることができる。
【００２８】
なお、請求項２に記載したように、前記遅延手段は前記データ出力端子側に設けられ、かつ前記遅延手段により遅延させた遅延データを出力する遅延データ出力端子をさらに備えた構成とすることができる。この場合、遅延データ出力端子を後段のフリップフロップのスキャンデータ入力端子に接続する。これにより、後段のスキャンデータ入力端子に入力されるデータが遅延されるため、複数のフリップフロップが同一サイクルで同じデータを取り込んでしまうのを防ぐことができる。
【００２９】
また、請求項３に記載したように、前記遅延手段は、前記スキャンデータ入力端子側に設けられた構成とすることができる。この場合、スキャンデータ入力端子に入力されるデータが遅延して入力されるため、複数のフリップフロップが同一サイクルで同じデータを取り込んでしまうのを防ぐことができる。
【００３０】
ところで、半導体集積回路が周波数の異なるクロックを発生する複数のクロック発生回路を備える場合がある。例えば周波数の低いクロックで動作するフリップフロップから周波数が高いフリップフロップへデータを受け渡す場合、そのデータは、複数サイクル保持されるため、クロックの遅延による問題はないが、スキャンテスト時には、同一クロックでテストする必要があるため問題となる。
【００３１】
そこで、請求項４に記載したように、前記半導体集積回路は周波数の異なるクロックを発生する複数のクロック発生回路を備えると共に、前記スキャンテスト時には前記複数のクロック発生回路のうち何れか１つのクロック発生回路から出力されたクロック信号により前記フリップフロップが動作し、前記遅延手段は、前記データ出力端子側に設けられた構成とすることができる。
【００３２】
このように、データ出力端子側に遅延手段を設けることにより、データ出力端子から出力されたデータが遅延手段により遅延されて後段のフリップフロップに出力される。従って、複数のフリップフロップが同一サイクルで同じデータを取り込んでしまうのを防ぐことができる。
【００３３】
また、請求項５に記載したように、前記半導体集積回路は周波数の異なるクロックを発生する複数のクロック発生回路を備えると共に、前記スキャンテスト時には前記複数のクロック発生回路のうち何れか１つのクロック発生回路から出力されたクロック信号により前記フリップフロップが動作し、前記遅延手段は前記データ出力端子側に設けられ、かつ前記遅延手段からの遅延データ又は前記データ出力端子からの出力データを選択信号に応じて選択的に出力する選択手段と、前記選択信号を入力するための選択信号入力手段と、をさらに備えた構成としてもよい。
【００３４】
この場合、選択手段は、例えばスキャンテスト時には遅延データを選択して出力し、通常動作時にはデータ出力端子からのデータを選択してそのまま出力することができる。これにより、スキャンテスト時には、データ出力端子から出力されたデータが遅延手段により遅延されて後段のフリップフロップに出力されるため、複数のフリップフロップが同一サイクルで同じデータを取り込んでしまうのを防ぐことができ、通常動作時には、データ出力端子からのデータが遅延されずにそのまま出力されるため、データが無駄に遅延するのを防ぐことができる。
【００３５】
【発明の実施の形態】
（第１実施形態）
以下、図面を参照して本発明の第１実施形態について説明する。なお、従来技術で説明した回路と同一部分については同一符号を付し、その詳細な説明は省略する。
【００３６】
図１には、本実施形態に係る半導体集積回路４０を示した。図１に示すように、半導体集積回路４０は、フリップフロップＦＦ５−１〜ＦＦ５−ｎ（ｎは自然数）、論理回路１０−１〜１０−（ｎ−１）、及びバッファＢＵＦ１２を備えている。
【００３７】
フリップフロップＦＦ５−１〜ＦＦ５−ｎは、データ入力端子Ｄ、データ出力端子Ｑ、クロック端子ＣＫ、スキャンインプット端子ＳＩ、スキャンイネーブル端子ＳＥ、スキャンアウトプット端子ＳＯが設けられている。
【００３８】
データ入力端子Ｄは、半導体集積回路４０の通常動作で使用されるデータが入力される。フリップフロップＦＦ５−１のデータ入力端子Ｄは、例えば外部入力端子に接続され、フリップフロップＦＦ５−２〜ＦＦ５−ｎのデータ入力端子Ｄは、それぞれ前段の論理回路１０−１〜１０−（ｎ−１）の出力端子と接続される。
【００３９】
データ出力端子Ｑからは、データ入力端子Ｄ又はスキャンインプット端子ＳＩに入力されたデータが選択的に出力される。フリップフロップＦＦ５−１〜ＦＦ５−（ｎ−１）のデータ出力端子Ｑは、それぞれ後段の論理回路１０−１〜１０−ｎの入力端子に接続され、フリップフロップＦＦ５−ｎのデータ出力端子Ｑは、例えば外部出力端子と接続される。
【００４０】
クロック端子ＣＫには、バッファＢＵＦ１２から所定周波数のクロック信号が入力される。
スキャンインプット端子ＳＩには、任意のスキャンテスト用のスキャンデータが入力される。フリップフロップＦＦ５−１のスキャンインプット端子ＳＩは、例えばスキャンデータ入力用の外部入力端子に接続され、フリップフロップＦＦ５−２〜ＦＦ５−ｎのスキャンインプット端子ＳＩは、それぞれ前段のフリップフロップＦＦ５−１〜ＦＦ５−（ｎ−１）のスキャンアウトプット端子ＳＯと接続される。
【００４１】
スキャンイネーブル端子ＳＥには、データ出力端子Ｑに出力するデータを選択するためのスキャンイネーブル信号が入力される。例えばスキャンイネーブル信号がイネーブル（例えばハイレベル）の場合には、スキャンインプット端子ＳＩに入力されたスキャンデータがクロック端子ＣＫに入力されたクロック信号の立ち上がりエッジに同期してデータ出力端子Ｑから出力される。また、詳細は後述するが、スキャンアウトプット端子ＳＯからは、データ出力端子Ｑから出力されるデータを所定時間遅延させたデータが出力される。
【００４２】
一方、スキャンイネーブル信号がイネーブルでない場合（ローレベルの場合）には、データ入力端子Ｄに入力されたデータがクロック端子ＣＫに入力されたクロック信号の立ち上がりエッジに同期してデータ出力端子Ｑに出力される。また、スキャンアウトプット端子ＳＯからは、データ出力端子Ｑから出力されるデータを所定時間遅延させたデータが出力される。
【００４３】
なお、スキャンイネーブル信号は、スキャンテスト時には、必要に応じてローレベル又はハイレベルとなり、通常動作時には、ローレベルに固定される。
【００４４】
このように、前段のフリップフロップのデータ出力端子Ｑが論理回路を挟んで後段のフリップフロップのデータ入力端子Ｄと接続されると共に、前段のスキャンアウトプット端子ＳＯが後段のスキャンインプット端子ＳＩに接続され、データ入力端子Ｄ又はスキャンインプット端子ＳＩに入力されたデータが選択的にデータ出力端子Ｑ及びスキャンアウトプット端子ＳＯから後段のフリップフロップに出力されるため、任意のデータを論理回路にセットすることができ、スキャンテストを実施することができる。
【００４５】
図２には、フリップフロップＦＦ５−２の内部構成を示した。なお、フリップフロップＦＦ５−１、ＦＦ５−３〜ＦＦ５−ｎについても同様の構成である。
【００４６】
フリップフロップＦＦ５−２は、図２に示すように、フリップフロップＦＦ４２及び遅延回路ＤＬＹ８を備えている。
【００４７】
なお、フリップフロップＦＦ５−１〜ＦＦ５−ｎは本発明のスキャンフリップフロップに相当し、フリップフロップＦＦ４２は本発明のフリップフロップに相当し、遅延回路ＤＬＹ８は本発明の遅延手段に相当し、バッファＢＵＦ１２は本発明のクロック発生回路に相当し、データ入力端子Ｄは本発明のデータ入力端子に相当し、データ出力端子Ｑは本発明のデータ出力端子に相当し、スキャンイネーブル端子ＳＥは本発明のスキャンイネーブル端子に相当し、クロック端子ＣＫは本発明のクロック端子に相当し、スキャンインプット端子ＳＩは本発明のスキャンデータ入力端子に相当し、スキャンアウトプット端子ＳＯは本発明の遅延データ出力端子に相当する。
【００４８】
フリップフロップＦＦ４２は、前述した図１６のＦＦ３−１等と同一の構成である。すなわち、データ入力端子Ｄ、データ出力端子Ｑ、及びクロック端子ＣＫに加えて、スキャンインプット端子ＳＩ及びスキャンイネーブル端子ＳＥが設けられており、スキャンイネーブル端子ＳＥに入力されたスキャンイネーブル信号に応じてスキャンインプット端子ＳＩに入力されたスキャンデータ又はデータ入力端子Ｄに入力されたデータを選択的にデータ出力端子Ｑに出力する。
【００４９】
フリップフロップＦＦ４２のデータ出力端子Ｑは、２方向に分岐され、一方は、フリップフロップＦＦ５−１のデータ出力端子Ｑに接続され、他方は遅延回路ＤＬＹ８の入力側に接続される。遅延回路ＤＬＹ８の出力側は、フリップフロップＦＦ５−１のスキャンアウトプット端子ＳＯに接続される。
【００５０】
遅延回路ＤＬＹ８は、フリップフロップＦＦ４２のデータ出力端子Ｑから出力されたデータを所定時間遅延させてスキャンアウトプット端子ＳＯに出力する。
【００５１】
この所定時間は、クロック信号のスキュー、すなわち各フリップフロップ間で発生するクロック信号の遅延時間よりも長い時間に設定される。
【００５２】
次に、フリップフロップＦＦ５−２、ＦＦ５−３の動作について、図３に示すタイミングチャートを参照して説明する。
【００５３】
スキャンテスト時において、フリップフロップＦＦ５−２のスキャンイネーブル端子ＳＥにハイレベルが入力されている場合、図３に示すように、クロック端子ＣＫに入力されたクロック信号の立ち上がりエッジに同期して、スキャンインプット端子ＳＩに入力されたデータが遅延回路ＤＬＹ８によってクロック信号の遅延時間よりも長い所定時間遅延されてスキャンアウトプット端子ＳＯから出力される。
【００５４】
これにより、図３に示すようにフリップフロップＦＦ５−２のクロック端子ＣＫに入力されるクロック信号とフリップフロップＦＦ５−３のクロック端子ＣＫに入力されるクロック信号との間にスキューが発生している場合でも、フリップフロップＦＦ５−３のスキャンインプット端子ＳＩに入力されるデータがクロック信号の遅延時間よりも長い時間遅延して入力されるため、フリップフロップＦＦ５−２及びフリップフロップＦＦ５−３が同一サイクルでデータを取り込んでしまうのを防ぐことができる。
【００５５】
このように、フリップフロップＦＦ５−１〜ＦＦ５−ｎは、出力データを遅延するための遅延回路ＤＬＹ８を内蔵している。このため、半導体集積回路４０を設計する際には、図４に示すように、まず回路設計を行い（ステップ１００）、その後スキャン設計を行う（ステップ１０２）だけでよい。従って、従来のようにスキャン設計の後にタイミング改善のための設計を行う必要がなく、半導体集積回路の設計工数を少なくすることができる。
【００５６】
（第２実施形態）
次に、本発明の第２実施形態について説明する。なお、第１実施形態と同一部分には同一符号を付し、詳細な説明は省略する。
【００５７】
図５には、本実施形態に係る半導体集積回路５０を示した。半導体集積回路５０が図１に示した半導体集積回路４０と異なる点は、フリップフロップＦＦ７−１〜ＦＦ７−ｎがスキャンアウトプット端子ＳＯを備えておらず、データ出力端子Ｑが後段の論理回路の入力側に接続されると共に、後段のフリップフロップのスキャンインプット端子ＳＩにも接続されている点である。なお、他の構成については図１に示した半導体集積回路４０と同様であるので説明を省略する。
【００５８】
図６には、フリップフロップＦＦ７−３の内部構成を示した。なお、フリップフロップＦＦ７−１、ＦＦ７−２、ＦＦ７−４〜ＦＦ７−ｎについても同様の構成である。
【００５９】
フリップフロップＦＦ７−３は、フリップフロップＦＦ４２及び遅延回路ＤＬＹ８を備えている。遅延回路ＤＬＹ８の出力側は、フリップフロップＦＦ４２のスキャンインプット端子ＳＩに接続されている。
【００６０】
従って、図７に示すように、フリップフロップＦＦ７−３のスキャンインプット端子ＳＩに入力されたデータは、遅延回路ＤＬＹ８によってクロック信号の遅延時間よりも長い所定時間遅延されてフリップフロップＦＦ４２のスキャンインプット端子ＳＩに入力される。そして、フリップフロップＦＦ４２は、クロック信号ＣＫの立ち上がりエッジに同期してスキャンインプット端子ＳＩに入力されたデータをデータ出力端子Ｑに出力する。
【００６１】
これにより、フリップフロップＦＦ７−２及びフリップフロップＦＦ７−３が同一サイクルでデータを取り込んでしまうのを防ぐことができる。
【００６２】
このように、フリップフロップＦＦ７−１〜ＦＦ７−ｎは、出力データを遅延するための遅延回路ＤＬＹ８を内蔵しているため、半導体集積回路５０を設計する際には、タイミング改善のための設計を行う必要がなく、半導体集積回路の設計工数を少なくすることができる。
【００６３】
（第３実施形態）
次に、本発明の第３実施形態について説明する。なお、従来技術で説明した回路と同一部分には同一符号を付し、詳細な説明は省略する。
【００６４】
図８には、本実施形態に係る半導体集積回路６０を示した。半導体集積回路６０が図２１に示した半導体集積回路３０と異なる点は、フリップフロップＦＦ１１−１〜ＦＦ１１−ｎの構成だけであるので、その他の構成については説明を省略する。
【００６５】
図９には、フリップフロップＦＦ１１−２の内部構成を示した。なお、フリップフロップＦＦ１１−１、ＦＦ１１−３〜ＦＦ１１−ｎについても同様の構成である。
【００６６】
フリップフロップＦＦ１１−２は、図９に示すように、フリップフロップＦＦ４２及び遅延回路ＤＬＹ８を備えており、遅延回路ＤＬＹ８の入力側は、フリップフロップＦＦ４２のデータ出力端子Ｑに接続され、遅延回路ＤＬＹ８の出力側は、フリップフロップＦＦ１１−２のデータ出力端子Ｑに接続されている。これにより、フリップフロップＦＦ４２のデータ出力端子Ｑから出力されたデータは、クロック信号の遅延時間よりも長い時間遅延されて後段の論理回路の入力側及び後段のフリップフロップＦＦ３−３のスキャンインプット端子ＳＩに出力される。
【００６７】
次に、フリップフロップＦＦ１１−２、ＦＦ１１−３の動作について、図１０に示すタイミングチャートを参照して説明する。
【００６８】
スキャンテスト時には、クロック選択回路ＭＵＸ１６のＳ端子にクロック選択信号としてハイレベルが入力される、これにより、クロック選択回路ＭＵＸ１６は、Ｂ端子に入力されるバッファＢＵＦ１２からのクロック信号を選択してフリップフロップＦＦ１１−３〜ＦＦ３−ｎに出力する。
【００６９】
このため、図１０に示すように、フリップフロップＦＦ１１−２、フリップフロップＦＦ１１−３は、共にバッファＢＵＦ１２からのクロック信号により動作する。
【００７０】
そして、スキャンテスト時において、フリップフロップＦＦ１１−２のスキャンイネーブル端子ＳＥにローレベルが入力されている場合、図１０に示すように、クロック端子ＣＫに入力されたクロック信号の立ち上がりエッジに同期して、データ入力端子Ｄに入力されたデータが遅延回路ＤＬＹ８によってクロック信号の遅延時間よりも長い所定時間遅延されてデータ出力端子Ｑから出力される。
【００７１】
これにより、図１０に示すようにフリップフロップＦＦ１１−２のクロック端子ＣＫに入力されるクロック信号とフリップフロップＦＦ１１−３のクロック端子ＣＫに入力されるクロック信号との間にスキューが発生している場合でも、フリップフロップＦＦ１１−２及びフリップフロップＦＦ１１−３が同一サイクルでデータを取り込んでしまうのを防ぐことができる。
【００７２】
このように、フリップフロップＦＦ１１−１〜ＦＦ１１−ｎは、出力データを遅延するための遅延回路ＤＬＹ８を内蔵している。このため、半導体集積回路６０を設計する際には、スキャン設計の後にタイミング改善のための設計を行う必要がなく、半導体集積回路の設計工数を少なくすることができる。
【００７３】
（第４実施形態）
次に、本発明の第４実施形態について説明する。なお、第３実施形態と同一部分には同一符号を付し、詳細な説明は省略する。
【００７４】
図１１には、本実施形態に係る半導体集積回路７０を示した。半導体集積回路７０が図８に示した半導体集積回路６０と異なる点は、フリップフロップＦＦ１２−１〜ＦＦ１２−ｎの構成だけであるので、その他の構成については説明を省略する。
【００７５】
図１２には、フリップフロップＦＦ１２−２の内部構成を示した。なお、フリップフロップＦＦ１２−１、ＦＦ１２−３〜ＦＦ１２−ｎについても同様の構成である。
【００７６】
フリップフロップＦＦ１２−２は、図１２に示すように、フリップフロップＦＦ４２、遅延回路ＤＬＹ８、及び出力選択回路ＭＵＸ４４を備えている。フリップフロップＦＦ１２−２は、データ入力端子Ｄ、スキャンインプット端子ＳＩ、スキャンイネーブル端子ＳＥ、クロック端子ＣＫ、データ出力端子Ｑの他、出力選択信号ＳＨを入力するための出力選択信号入力端子ＳＨを備えている。
【００７７】
なお、出力選択回路ＭＵＸ４４は本発明の選択手段に相当し、出力選択信号入力端子ＳＨは本発明の選択信号入力手段に相当する。
【００７８】
出力選択回路ＭＵＸ４４は、Ｂ端子、Ａ端子、及びＳ端子を備えており、Ｂ端子は、フリップフロップＦＦ４２のデータ出力端子Ｑに接続されており、Ａ端子は遅延回路ＤＬＹ８の出力側に接続されている。遅延回路ＤＬＹ８の入力側はフリップフロップＦＦ４２のデータ出力端子Ｑに接続されている。
【００７９】
出力選択回路ＭＵＸ４４は、Ｓ端子に入力された出力選択信号ＳＨに応じてＢ端子又はＡ端子に入力されたデータを選択的にフリップフロップＦＦ１２−２のデータ出力端子Ｑに出力する。例えば出力選択信号ＳＨは、通常動作時にはローレベル、スキャンテスト時にはハイレベルとなる信号である。そして、出力選択回路ＭＵＸ４４は、出力選択信号ＳＨがローレベルの場合、すなわち通常動作時には、Ｂ端子に入力されたデータを選択してフリップフロップＦＦ１２−２のデータ出力端子Ｑに出力し、出力選択信号ＳＨがハイレベルの場合、すなわちスキャンテスト時には、Ａ端子に入力されたデータを選択してフリップフロップＦＦ１２−２のデータ出力端子Ｑに出力する。
【００８０】
従って、通常動作時には、フリップフロップＦＦ４２のデータ出力端子Ｑから出力されたデータがそのままフリップフロップＦＦ１２−２のデータ出力端子Ｑに出力され、スキャンテスト時には、フリップフロップＦＦ４２のデータ出力端子Ｑから出力されたデータが遅延回路ＤＬＹ８でクロック信号の遅延時間よりも長い時間遅延されてフリップフロップＦＦ１２−２のデータ出力端子Ｑに出力される。
【００８１】
次に、フリップフロップＦＦ１２−２、ＦＦ１２−３のスキャンテスト時の動作について、図１３に示すタイミングチャートを参照して説明する。
【００８２】
スキャンテスト時には、クロック選択回路ＭＵＸ１６のＳ端子にクロック選択信号としてハイレベルが入力される。これにより、クロック選択回路ＭＵＸ１６は、Ｂ端子に入力されるバッファＢＵＦ１２からのクロック信号を選択してフリップフロップＦＦ１２−３〜ＦＦ１２−ｎに出力する。
【００８３】
このため、図１３に示すように、フリップフロップＦＦ１２−２、フリップフロップＦＦ１２−３は、共にバッファＢＵＦ１２からのクロック信号により動作する。
【００８４】
そして、スキャンテスト時において、フリップフロップＦＦ１２−２のスキャンイネーブル端子ＳＥにローレベルが入力され、かつ出力選択信号入力端子ＳＨにハイレベルが入力されている場合、図１３に示すように、クロック端子ＣＫに入力されたクロック信号の立ち上がりエッジに同期して、データ入力端子Ｄに入力されたデータが遅延回路ＤＬＹ８によってクロック信号の遅延時間よりも長い所定時間遅延されてデータ出力端子Ｑから出力される。
【００８５】
これにより、図１３に示すようにフリップフロップＦＦ１２−２のクロック端子ＣＫに入力されるクロック信号とフリップフロップＦＦ１２−３のクロック端子ＣＫに入力されるクロック信号との間にスキューが発生している場合でも、フリップフロップＦＦ１２−２及びフリップフロップＦＦ１２−３が同一サイクルでデータを取り込んでしまうのを防ぐことができる。
【００８６】
次に、フリップフロップＦＦ１２−２、ＦＦ１２−３の通常動作時の動作について、図１４に示すタイミングチャートを参照して説明する。
【００８７】
通常動作時時には、クロック選択回路ＭＵＸ１６のＳ端子にクロック選択信号としてローレベルが入力される。これにより、クロック選択回路ＭＵＸ１６は、Ａ端子に入力されるバッファＢＵＦ１４からのクロック信号を選択してフリップフロップＦＦ１２−３〜ＦＦ１２−ｎに出力する。
【００８８】
このため、図１４に示すように、フリップフロップＦＦ１２−２、フリップフロップＦＦ１２−３は、異なる周波数のクロック信号により動作する。
【００８９】
そして、通常動作時において、フリップフロップＦＦ１２−２のスキャンイネーブル端子ＳＥにローレベルが入力され、かつ出力選択信号入力端子ＳＨにローレベルが入力されている場合、出力選択回路ＭＵＸ４４は、Ｂ端子に入力されたデータ、すなわちフリップフロップＦＦ４２のデータ出力端子Ｑから出力されたデータを選択してフリップフロップＦＦ１２−２のデータ出力端子Ｑに出力する。これにより、図１４に示すようにデータを遅延させることなく出力することができる。
【００９０】
このように、フリップフロップＦＦ１２−１〜ＦＦ１２−ｎは、出力データを遅延するための遅延回路ＤＬＹ８及び出力選択回路ＭＵＸ４４を内蔵している。このため、半導体集積回路７０を設計する際には、スキャン設計の後にタイミング改善のための設計を行う必要がなく、半導体集積回路の設計工数を少なくすることができる。
【００９１】
【発明の効果】
以上説明したように、本発明によれば、ＬＳＩ開発の設計工数を少なくすることができる、という効果を有する。
【図面の簡単な説明】
【図１】第１実施形態に係る半導体集積回路の回路図である。
【図２】第１実施形態に係るフリップフロップの回路図である。
【図３】第１実施形態に係る半導体集積回路の動作タイミングを示すタイミングチャートである。
【図４】第１実施形態に係る半導体集積回路の設計フローを示すフローチャートである。
【図５】第２実施形態に係る半導体集積回路の回路図である。
【図６】第２実施形態に係るフリップフロップの回路図である。
【図７】第２実施形態に係る半導体集積回路の動作タイミングを示すタイミングチャートである。
【図８】第３実施形態に係る半導体集積回路の回路図である。
【図９】第３実施形態に係るフリップフロップの回路図である。
【図１０】第３実施形態に係る半導体集積回路の動作タイミングを示すタイミングチャートである。
【図１１】第４実施形態に係る半導体集積回路の回路図である。
【図１２】第４実施形態に係るフリップフロップの回路図である。
【図１３】第４実施形態に係る半導体集積回路のスキャンテスト時における動作タイミングを示すタイミングチャートである。
【図１４】第４実施形態に係る半導体集積回路の通常動作時における動作タイミングを示すタイミングチャートである。
【図１５】従来例に係る半導体集積回路の回路図である。
【図１６】従来例に係る半導体集積回路の回路図である。
【図１７】従来例に係る半導体集積回路の動作タイミングを示すタイミングチャートである。
【図１８】従来例に係る半導体集積回路の動作タイミングを示すタイミングチャートである。
【図１９】従来例に係る半導体集積回路の回路図である。
【図２０】従来例に係る半導体集積回路の動作タイミングを示すタイミングチャートである。
【図２１】従来例に係る半導体集積回路の回路図である。
【図２２】従来例に係る半導体集積回路の通常動作時における動作タイミングを示すタイミングチャートである。
【図２３】従来例に係る半導体集積回路のスキャンテスト時における動作タイミングを示すタイミングチャートである。
【図２４】従来例に係る半導体集積回路の設計フローを示すフローチャートである。
【符号の説明】
１０　　論理回路
２０、３０、４０、５０、６０、７０　　半導体集積回路
ＢＵＦ１２、ＢＵＦ１４　　バッファ
ＤＬＹ４、ＤＬＹ８　　　　　　遅延回路
ＦＦ１、ＦＦ３、ＦＦ５、ＦＦ７、ＦＦ１１、ＦＦ１２　　　　フリップフロップ
ＦＦ４２　　　　フリップフロップ
ＭＵＸ１６　　クロック選択回路
ＭＵＸ４４　　出力選択回路
Ｄ　　　　データ入力端子
Ｑ　　　　データ出力端子
ＣＫ　　クロック端子
ＳＥ　　スキャンイネーブル端子
ＳＨ　　出力選択信号入力端子
ＳＩ　　スキャンインプット端子
ＳＯ　　スキャンアウトプット端子
【図１】
2004101460.tif 000003
【図２】
2004101460.tif 000004
【図３】
2004101460.tif 000005
【図４】
2004101460.tif 000006
【図５】
2004101460.tif 000007
【図６】
2004101460.tif 000008
【図７】
2004101460.tif 000009
【図８】
2004101460.tif 000010
【図９】
2004101460.tif 000011
【図１０】
2004101460.tif 000012
【図１１】
2004101460.tif 000013
【図１２】
2004101460.tif 000014
【図１３】
2004101460.tif 000015
【図１４】
2004101460.tif 000016
【図１５】
2004101460.tif 000017
【図１６】
2004101460.tif 000018
【図１７】
2004101460.tif 000019
【図１８】
2004101460.tif 000020
【図１９】
2004101460.tif 000021
【図２０】
2004101460.tif 000022
【図２１】
2004101460.tif 000023
【図２２】
2004101460.tif 000024
【図２３】
2004101460.tif 000025
【図２４】
2004101460.tif 000026