(57)【特許請求の範囲】
【請求項１】
第１モードの場合に第１データを、第２モードの場合に前記第１データとは異なる信号経路を介して供給される第２データを、クロック信号に同期して取り込んで出力する第１スキャンフリップフロップと、
前記第１モードの場合に前記第１データを、前記第２モードの場合に前記第１スキャンフリップフロップから出力されたデータを、クロック信号に同期して取り込んで出力する第２スキャンフリップフロップと、
前記第１モードの場合に前記第１スキャンフリップフロップから出力されたデータを出力データとして生成し、前記第２モードの場合に前記第１及び前記第２スキャンフリップフロップからそれぞれ出力されたデータに基づいて、前記第１スキャンフリップフロップから出力されたデータの論理値変化率より低い論理値変化率の出力データを生成し、組み合わせ回路群へ出力するゲーティング回路と、を備え、
前記ゲーティング回路は、論理積回路である、出力制御スキャンフリップフロップ。
【請求項２】
前記第２スキャンフリップフロップは、第１モードの場合に前記第１スキャンフリップフロップと共通の前記第１データをクロック信号に同期して取り込んで出力し、
前記ゲーティング回路は、論理和回路であることを特徴とする請求項１に記載の出力制御スキャンフリップフロップ。
【請求項３】
前記第１スキャンフリップフロップは、第２モードの場合に、前記第２データに代えて前記第２スキャンフリップフロップから出力されたデータをクロック信号に同期して取り込んで出力し、
前記第２スキャンフリップフロップは、第２モードの場合に、前記第１スキャンフリップフロップから出力されたデータに代えて前記第２データをクロック信号に同期して取り込んで出力することを特徴とする請求項１又は２に記載の出力制御スキャンフリップフロップ。
【請求項４】
第２モードの場合に前記第２スキャンフリップフロップから出力されたデータを、クロック信号に同期して取り込んで出力する第３スキャンフリップフロップをさらに備え、
前記ゲーティング回路は、第２モードの場合に前記第１乃至前記第３スキャンフリップフロップからそれぞれ出力されたデータに基づいて、前記第１スキャンフリップフロップから出力されたデータの論理値変化率より低い論理値変化率の出力データを生成することを特徴とする請求項１に記載の出力制御スキャンフリップフロップ。
【請求項５】
前記第２及び前記第３スキャンフリップフロップは、それぞれ、第１モードの場合に前記第１スキャンフリップフロップと共通の前記第１データをクロック信号に同期して取り込んで出力し、
前記ゲーティング回路は、論理積回路であることを特徴とする請求項４に記載の出力制御スキャンフリップフロップ。
【請求項６】
前記第２及び前記第３スキャンフリップフロップは、それぞれ、第１モードの場合に前記第１スキャンフリップフロップと共通の前記第１データをクロック信号に同期して取り込んで出力し、
前記ゲーティング回路は、論理和回路であることを特徴とする請求項４に記載の出力制御スキャンフリップフロップ。
【請求項７】
前記第２及び前記第３スキャンフリップフロップは、それぞれ、第１モードの場合に前記第１スキャンフリップフロップと共通の前記第１データをクロック信号に同期して取り込んで出力し、
前記ゲーティング回路は、多数決回路であることを特徴とする請求項４に記載の出力制御スキャンフリップフロップ。
【請求項８】
前記第１スキャンフリップフロップは、第２モードの場合に、前記第２データに代えて前記第３スキャンフリップフロップから出力されたデータをクロック信号に同期して取り込んで出力し、
前記第３スキャンフリップフロップは、第２モードの場合に、前記第２スキャンフリップフロップから出力されたデータに代えて前記第２データをクロック信号に同期して取り込んで出力することを特徴とする請求項４〜７のいずれか一項に記載の出力制御スキャンフリップフロップ。
【請求項９】
前記第１スキャンフリップフロップは、第２モードの場合に、前記第２データに代えて前記第３スキャンフリップフロップから出力されたデータをクロック信号に同期して取り込んで出力し、
前記第２スキャンフリップフロップは、第２モードの場合に、前記第１スキャンフリップフロップから出力されたデータに代えて前記第２データをクロック信号に同期して取り込んで出力することを特徴とする請求項４〜７のいずれか一項に記載の出力制御スキャンフリップフロップ。
【請求項１０】
複数のスキャンフリップフロップと、
前記複数のスキャンフリップフロップとともにスキャンチェーンを構成する請求項１〜９のいずれか一項に記載の出力制御スキャンフリップフロップと、
前記複数のスキャンフリップフロップ及び前記出力制御スキャンフリップフロップのそれぞれ出力データを論理演算して出力する組み合わせ回路群と、を備えた半導体集積回路。
【請求項１１】
前記組み合わせ回路群は複数の組み合わせ回路によって構成され、
前記出力制御スキャンフリップフロップが駆動する組み合わせ回路の数は、各前記スキャンフリップフロップが駆動する組み合わせ回路の数よりも多いことを特徴とする請求項１０に記載の半導体集積回路。
【請求項１２】
前記組み合わせ回路群は複数の組み合わせ回路によって構成され、
前記出力制御スキャンフリップフロップが駆動する組み合わせ回路によって消費される電力は、各前記スキャンフリップフロップが駆動する組み合わせ回路によって消費される電力より大きいことを特徴とする請求項１０に記載の半導体集積回路。
【請求項１３】
請求項１０〜１２のいずれか一項に記載の半導体集積回路の設計方法であって、
複数のスキャンフリップフロップのうち何れかのスキャンフリップフロップを選択し、
選択されたスキャンフリップフロップを前記出力制御スキャンフリップフロップに置換する半導体集積回路の設計方法。
【請求項１４】
請求項１０〜１２のいずれか一項に記載の半導体集積回路の設計方法であって、
複数のスキャンフリップフロップのうち何れかのスキャンフリップフロップを選択し、
選択されたスキャンフリップフロップを編集して前記出力制御スキャンフリップフロップに書き換える半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力制御スキャンフリップフロップ、それを備えた半導体集積回路及び半導体集積回路の設計方法に関する。
【背景技術】
【０００２】
半導体集積回路のテスト手法の一つであるスキャンテストでは、通常動作時と比較して非常に多くの電力が消費される。そのため、スキャンテスト時の消費電力のピーク（以下、ピーク消費電力と称す）を低減することが要求されている。
【０００３】
また一方で、近年の半導体集積回路の動作速度は非常に高速になっているため、スキャンテスト時のピーク消費電力の低減を目的とした回路修正によって通常動作時の動作速度を低下させないことが要求されている。
【０００４】
このような問題に対する解決策が、特許文献１に開示されている。図１０に示すように、特許文献１に開示された半導体集積回路は、スキャンテストのシフト動作時において消費電力に与える影響の大きいフリップフロップとして選択されたスキャンフリップフロップ５０１を、スキャンテストのシフト中に、組合せ回路５０２への出力値が固定されるように修正する。また、この半導体集積回路は、スキャンテストのシフト動作時において消費電力に与える影響の大きいフリップフロップとして選択されるスキャンフリップフロップの数を、回路修正時に許容される面積の増分によって制限することで面積の増加を許容範囲に抑える。また、この半導体集積回路は、回路動作速度を決定するフリップフロップ間経路の始点となるフリップフロップを選択しないことにより、ファンクション動作（通常動作）に影響を与えないようにする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１７５１５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に開示された半導体集積回路では、選択されたスキャンフリップフロップ５０１と後段の組み合わせ回路５０２との間に設けられたゲーティング回路５０３に対し制御信号を供給する必要があった。それにより、制御信号の配線等を考慮して設計しなければならなくなるため、設計制約を満たす設計が困難になるという問題があった。
【課題を解決するための手段】
【０００７】
本発明にかかる出力制御スキャンフリップフロップは、第１モードの場合に第１データを、第２モードの場合に前記第１データとは異なる信号経路を介して供給される第２データを、クロック信号に同期して取り込んで出力する第１スキャンフリップフロップと、第２モードの場合に前記第１スキャンフリップフロップから出力されたデータを、クロック信号に同期して取り込んで出力する第２スキャンフリップフロップと、第１モードの場合に前記第１スキャンフリップフロップから出力されたデータを出力データとして生成し、第２モードの場合に前記第１及び前記第２スキャンフリップフロップからそれぞれ出力されたデータに基づいて、前記第１スキャンフリップフロップから出力されたデータの論理値変化率より低い論理値変化率の出力データを生成するゲーティング回路と、を備える。
【０００８】
上述のような回路構成により、制御信号を必要とせずにスキャンテスト時のピーク消費電力を低減することができる。
【発明の効果】
【０００９】
本発明により、制御信号を必要とせずにスキャンテスト時のピーク消費電力を低減することが可能な半導体集積回路を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明を適用する前の半導体集積回路の構成を示す回路図である。
【図２】本発明を適用する前の半導体集積回路に設けられたスキャンフリップフロップのフリップ率を説明するための図である。
【図３】本発明の実施の形態１にかかる半導体集積回路の構成を示す回路図である。
【図４】本発明の実施の形態１にかかる半導体集積回路に設けられた簡易冗長回路のフリップ率を説明するための図である。
【図５】本発明の実施の形態２にかかる半導体集積回路の構成を示す回路図である。
【図６】本発明の実施の形態２にかかる半導体集積回路に設けられた簡易冗長回路のフリップ率を説明するための図である。
【図７】本発明の実施の形態３にかかる半導体集積回路の構成を示す回路図である。
【図８】本発明の実施の形態３にかかる半導体集積回路に設けられた簡易冗長回路のフリップ率を説明するための図である。
【図９】半導体集積回路の設計工程を示す図である。
【図１０】従来技術の半導体集積回路を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しつつ、本発明の実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【００１２】
実施の形態１
まず、本発明の実施の形態１にかかる半導体集積回路を説明する前に、本発明を適用する前の半導体集積回路について、図１を用いて説明する。図１は、本発明を適用する前の半導体集積回路１０の構成を示す回路図である。
【００１３】
図１に示す半導体集積回路１０は、複数の組み合わせ回路によって構成される組み合わせ回路群１０１と、同じく複数の組み合わせ回路によって構成される組み合わせ回路群１０２と、スキャンフリップフロップ１０３〜１０６と、を備える。
【００１４】
各スキャンフリップフロップ１０３〜１０６は、入力端子ＳＩＮと、入力端子ＤＡＴＡと、入力端子ＳＭＣと、クロック入力端子ＣＬＫと、データ出力端子Ｑと、を有する。各スキャンフリップフロップ１０３〜１０６の入力端子ＳＩＮには、スキャンテストのシフト動作中に取り込むためのデータが供給される。各スキャンフリップフロップ１０３〜１０６の入力端子ＤＡＴＡには、通常動作中及びスキャンテストのキャプチャ動作中に取り込むためのデータが供給される。各スキャンフリップフロップ１０３〜１０６の入力端子ＳＭＣには、入力端子ＳＩＮ及び入力端子ＤＡＴＡに供給されるデータのうち何れのデータを取り込むかを制御するイネーブル信号が供給される。各スキャンフリップフロップ１０３〜１０６のクロック入力端子ＣＬＫには、クロック信号が供給される。そして、各スキャンフリップフロップ１０３〜１０６のデータ出力端子Ｑからデータが出力される。
【００１５】
つまり、各スキャンフリップフロップ１０３〜１０６は、イネーブル信号に基づいて入力端子ＳＩＮ及び入力端子ＤＡＴＡのそれぞれに供給されるデータの何れか一方を選択する。そして、各スキャンフリップフロップ１０３〜１０６は、選択されたデータをクロック信号の立ち上がりに同期して取り込み、取り込んだデータをデータ出力端子Ｑから出力する。
【００１６】
これらスキャンフリップフロップ１０３〜１０６は、順次直列に接続されていてスキャンチェーンを構成している。このスキャンチェーンは、具体的には以下のように接続されて構成されている。スキャンフリップフロップ１０３のデータ出力端子Ｑは、スキャンフリップフロップ１０４の入力端子ＳＩＮに接続されている。スキャンフリップフロップ１０４のデータ出力端子Ｑは、スキャンフリップフロップ１０５の入力端子ＳＩＮに接続されている。スキャンフリップフロップ１０５のデータ出力端子Ｑは、スキャンフリップフロップ１０６の入力端子ＳＩＮに接続されている。スキャンフリップフロップ１０６のデータ出力端子Ｑは、スキャンチェーンのスキャンアウト端子（ＳｃａｎＯｕｔ）に接続されている。なお、図１では、４つのスキャンフリップフロップ１０３〜１０６が設けられた場合を例に説明しているが、これに限られない。仮にスキャンフリップフロップ１０６の後段に他のスキャンフリップフロップが設けられている場合には、スキャンフリップフロップ１０６のデータ出力端子Ｑは、後段のスキャンフリップフロップの入力端子ＳＩＮに接続される。そして、最終段のスキャンフリップフロップのデータ出力端子Ｑが、スキャンチェーンのスキャンアウト端子に接続される。
【００１７】
また、スキャンフリップフロップ１０３の入力端子ＳＩＮは、スキャンチェーンのスキャンイン端子（ＳｃａｎＩＮ）に接続されている。なお、図１では、４つのスキャンフリップフロップ１０３〜１０６が設けられた場合を例に説明しているが、これに限られない。仮にスキャンフリップフロップ１０３の前段に他のスキャンフリップフロップが設けられている場合には、スキャンフリップフロップ１０３の入力端子ＳＩＮは、前段のスキャンフリップフロップのデータ出力端子Ｑに接続される。そして、最前段のスキャンフリップフロップの入力端子ＳＩＮが、スキャンチェーンのスキャンイン端子に接続される。
【００１８】
このように、スキャンイン端子とスキャンアウト端子との間に、複数のスキャンフリップフロップが接続されることにより、スキャンチェーンが構成される。
【００１９】
組み合わせ回路群１０１は、スキャンフリップフロップ１０３の出力データを論理演算し、その演算結果をスキャンフリップフロップ１０６に対して出力する。なお、組み合わせ回路群１０１の入力ａには、スキャンフリップフロップ１０３の出力端子Ｑが接続されている。
【００２０】
組み合わせ回路群１０２は、スキャンフリップフロップ１０４の出力データを論理演算し、その演算結果をスキャンフリップフロップ１０５に対して出力する。なお、組み合わせ回路群１０２の入力ｂには、スキャンフリップフロップ１０４の出力端子Ｑが接続されている。
【００２１】
次に、図１に示す半導体集積回路１０の動作について簡単に説明する。
【００２２】
通常動作の場合、イネーブル信号は例えばＬレベルを示す。この場合、スキャンフリップフロップ１０３〜１０６は、それぞれ、入力端子ＤＡＴＡに供給されたデータをクロック信号に同期して取り込み、データ出力端子Ｑから出力する。このとき、組み合わせ回路群１０１，１０２は、それぞれ、スキャンフリップフロップ１０３，１０４から出力されたデータを論理演算して、後段のスキャンフリップフロップ１０６，１０５に対して出力する。
【００２３】
一方、スキャンテストの場合には、シフトモードとキャプチャモードの２つのモードが存在する。シフトモードでは、イネーブル信号は例えばＨレベルを示す。この場合、スキャンフリップフロップ１０３〜１０６は、それぞれ、入力端子ＳＩＮに供給されたデータをクロック信号に同期して取り込み、データ出力端子Ｑから出力する。キャプチャモードでは、イネーブル信号は例えばＬレベルを示す。この場合、スキャンフリップフロップ１０３〜１０６は、それぞれ、入力端子ＤＡＴＡに供給されたデータをクロック信号に同期して取り込み、データ出力端子Ｑから出力する。
【００２４】
一般的にスキャンテストでは、そのテストを開始する場合には、半導体集積回路１０のスキャンイン端子に対しＬＳＩテスタからテストデータが供給される。同様に、半導体集積回路１０に設けられた各スキャンフリップフロップのクロック入力端子ＣＬＫに対しＬＳＩテスタからクロック信号が供給される。また、半導体集積回路１０に設けられた各スキャンフリップフロップの入力端子ＳＭＣに対しＬＳＩテスタからイネーブル信号が供給される。
【００２５】
まず、シフトモードにおいてクロック信号をスキャンチェーンの段数分立ち上げることにより、スキャンチェーンを構成する複数のスキャンフリップフロップにテストデータが取り込まれる。次に、キャプチャモードにおいてクロック信号を１回立ち上げることにより、スキャンチェーンを構成する複数のスキャンフリップフロップには、それぞれ入力端子ＤＡＴＡに供給されたデータが取り込まれる。次に、２度目のシフトモードにおいてクロック信号をスキャンチェーンの段数分立ち上げることにより、スキャンチェーンを構成する複数のスキャンフリップフロップに取り込まれたデータ（キャプチャデータ）がスキャンアウト端子から出力される。ＬＳＩテスタは、半導体集積回路１０のスキャンアウト端子から出力されたデータと、期待値データと、を比較することにより、スキャンチェーンを構成する複数のスキャンフリップフロップの良否判定を行う。
【００２６】
なお、スキャンテストのシフト動作では、各スキャンフリップフロップは、クロック信号の立ち上がり毎にテストデータを取り込んでいる。そのため、ｎ（ｎは自然数）回目のクロック信号の立ち上がりであるスキャンフリップフロップから出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりで当該スキャンフリップフロップから出力されるデータの論理値と、が異なる場合がある。この場合、後段の組み合わせ回路群を構成する複数の組み合わせ回路の出力データが論理値変化する。換言すると、後段の組み合わせ回路群の複数のノードが論理値変化する。そのため、ピーク消費電力は増大する。
【００２７】
一方、ｎ回目のクロック信号の立ち上がりであるスキャンフリップフロップから出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりで当該スキャンフリップフロップから出力されるデータの論理値と、が異ならない場合には、後段の組み合わせ回路群の複数のノードが論理値変化しない。そのため、ピーク消費電力は増大しない。
【００２８】
以下の説明では、スキャンテストのシフト動作において、ｎ回目のクロック信号の立ち上がりであるスキャンフリップフロップから出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりで当該スキャンフリップフロップから出力されるデータの論理値と、が異なる確率を、当該スキャンフリップフロップの「フリップ率」と称す。
【００２９】
次に、スキャンフリップフロップ１０３のフリップ率について、図２を用いて説明する。図２は、半導体集積回路１０に設けられたスキャンフリップフロップ１０３のフリップ率を説明するための図である。
【００３０】
図２では、ｎ回目のクロック信号の立ち上がりでスキャンフリップフロップ１０３から出力されたデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりでスキャンフリップフロップ１０３から出力されたデータの論理値と、の全組み合わせを示している。さらに、このときに組み合わせ回路群１０１の入力ａに供給されるデータの論理値も示している（「１０１のａ」参照）。
【００３１】
また、図２の「フリップ」では、ｎ回目のクロック信号の立ち上がりとｎ＋１回目のクロック信号の立ち上がりとでスキャンフリップフロップ１０３の出力データの論理値が変化する場合を「×」で示している。一方、ｎ回目のクロック信号の立ち上がりとｎ＋１回目のクロック信号の立ち上がりとでスキャンフリップフロップ１０３の出力データの論理値が変化しない場合を「○」で示している。なお、括弧内では、矢印の左側に、ｎ回目のクロック信号の立ち上がりにおけるスキャンフリップフロップ１０３の出力データの論理値を示す。また、矢印の右側に、ｎ＋１回目のクロック信号の立ち上がりにおけるスキャンフリップフロップ１０３の出力データの論理値を示す。
【００３２】
図２に示すように、スキャンフリップフロップ１０３の出力データの論理値は、４通りの組み合わせのうち２通りで変化していることから、スキャンフリップフロップ１０３のフリップ率は、２／４＝５０％である。
【００３３】
次に、本実施の形態にかかる半導体集積回路２０について、図３を用いて説明する。図３は、本実施の形態にかかる半導体集積回路２０の構成を示す回路図である。なお、図３に示す半導体集積回路２０は、図１に示す半導体集積回路１０に対して本発明を適用した回路である。
【００３４】
図３に示す半導体集積回路２０は、複数の組み合わせ回路によって構成される組み合わせ回路群２０１と、同じく複数の組み合わせ回路によって構成される組み合わせ回路群２０２と、簡易冗長回路（出力制御スキャンフリップフロップ）２１０と、スキャンフリップフロップ２０５〜２０７と、を備える。簡易冗長回路２１０は、スキャンフリップフロップ（第１スキャンフリップフロップ）２０３と、スキャンフリップフロップ（第２スキャンフリップフロップ）２０４と、ゲーティング回路としての論理積回路（以下、単にＡＮＤ回路と称す）２０８と、を有する。
【００３５】
なお、組み合わせ回路群２０１，２０２は、それぞれ組み合わせ回路群１０１，１０２に対応し、簡易冗長回路２１０は、スキャンフリップフロップ１０３に対応し、スキャンフリップフロップ２０５〜２０７は、それぞれスキャンフリップフロップ１０４〜１０６に対応する。ここで、図３に示す半導体集積回路２０では、図１に示す半導体集積回路１０と比較して、スキャンフリップフロップ１０３が簡易冗長回路２１０に置き換わっている。
【００３６】
各スキャンフリップフロップ２０３〜２０７は、入力端子ＳＩＮと、入力端子ＤＡＴＡと、入力端子ＳＭＣと、クロック入力端子ＣＬＫと、データ出力端子Ｑと、を有する。各スキャンフリップフロップ２０３〜２０７の入力端子ＳＩＮには、スキャンテストのシフト動作中（第２モード）に取り込むためのデータ（第２データ）が供給される。各スキャンフリップフロップ２０３〜２０７の入力端子ＤＡＴＡには、通常動作中（第１モード）及びスキャンテストのキャプチャ動作中に取り込むためのデータ（第１データ）が供給される。各スキャンフリップフロップ２０３〜２０７の入力端子ＳＭＣには、入力端子ＳＩＮ及び入力端子ＤＡＴＡに供給されるデータのうち何れのデータを取り込むかを制御するイネーブル信号が供給される。各スキャンフリップフロップ２０３〜２０７のクロック入力端子ＣＬＫには、クロック信号が供給される。そして、各スキャンフリップフロップ２０３〜２０７のデータ出力端子Ｑからデータが出力される。
【００３７】
つまり、各スキャンフリップフロップ２０３〜２０７は、イネーブル信号に基づいて入力端子ＳＩＮ及び入力端子ＤＡＴＡのそれぞれに供給されるデータの何れか一方を選択する。そして、各スキャンフリップフロップ２０３〜２０７は、選択されたデータをクロック信号の立ち上がりに同期して取り込み、取り込んだデータをデータ出力端子Ｑから出力する。
【００３８】
これらスキャンフリップフロップ２０３〜２０７は、順次直列に接続されていてスキャンチェーンを構成している。このスキャンチェーンは、具体的には以下のように接続されて構成されている。スキャンフリップフロップ２０３のデータ出力端子Ｑは、スキャンフリップフロップ２０４の入力端子ＳＩＮに接続されている。スキャンフリップフロップ２０４のデータ出力端子Ｑは、スキャンフリップフロップ２０５の入力端子ＳＩＮに接続されている。スキャンフリップフロップ２０５のデータ出力端子Ｑは、スキャンフリップフロップ２０６の入力端子ＳＩＮに接続されている。スキャンフリップフロップ２０６のデータ出力端子Ｑは、スキャンフリップフロップ２０７の入力端子ＳＩＮに接続されている。スキャンフリップフロップ２０７のデータ出力端子Ｑは、スキャンチェーンのスキャンアウト端子（ＳｃａｎＯｕｔ）に接続されている。なお、図３では、５つのスキャンフリップフロップ２０３〜２０７が設けられた場合を例に説明しているが、これに限られない。仮にスキャンフリップフロップ２０７の後段に他のスキャンフリップフロップが設けられている場合には、スキャンフリップフロップ２０７のデータ出力端子Ｑは、後段のスキャンフリップフロップの入力端子ＳＩＮに接続される。そして、最終段のスキャンフリップフロップのデータ出力端子Ｑが、スキャンチェーンのスキャンアウト端子に接続される。
【００３９】
また、スキャンフリップフロップ２０３の入力端子ＳＩＮは、スキャンチェーンのスキャンイン端子（ＳｃａｎＩＮ）に接続されている。なお、図３では、５つのスキャンフリップフロップ２０３〜２０７が設けられた場合を例に説明しているが、これに限られない。仮にスキャンフリップフロップ２０３の前段に他のスキャンフリップフロップが設けられている場合には、スキャンフリップフロップ２０３の入力端子ＳＩＮは、前段のスキャンフリップフロップのデータ出力端子Ｑに接続される。そして、最前段のスキャンフリップフロップの入力端子ＳＩＮが、スキャンチェーンのスキャンイン端子に接続される。
【００４０】
このように、スキャンイン端子とスキャンアウト端子との間に、複数のスキャンフリップフロップが接続されることにより、スキャンチェーンが構成される。
【００４１】
ＡＮＤ回路２０８の入力端子Ａには、スキャンフリップフロップ２０４のデータ出力端子Ｑが接続される。ＡＮＤ回路２０８の入力端子Ｂには、スキャンフリップフロップ２０３のデータ出力端子Ｑが接続される。そして、ＡＮＤ回路２０８の出力端子Ｙからスキャンフリップフロップ２０３，２０４の出力データの論理積が出力される。
【００４２】
組み合わせ回路群２０１は、ＡＮＤ回路２０８の出力データを論理演算し、その演算結果をスキャンフリップフロップ２０７に対して出力する。なお、組み合わせ回路群２０１の入力ａには、ＡＮＤ回路２０８の出力端子Ｙが接続されている。
【００４３】
組み合わせ回路群２０２は、スキャンフリップフロップ２０５の出力データを論理演算し、その演算結果をスキャンフリップフロップ２０６に対して出力する。なお、組み合わせ回路群２０２の入力ｂには、スキャンフリップフロップ２０５の出力端子Ｑが接続されている。
【００４４】
なお、簡易冗長回路２１０において、スキャンフリップフロップ２０３，２０４の入力端子ＤＡＴＡには、それぞれ共通のデータが供給される。また、スキャンフリップフロップ２０３，２０４のクロック入力端子ＣＬＫには、それぞれ共通のクロック信号が供給される。したがって、通常動作の場合、スキャンフリップフロップ２０３，２０４は、それぞれ共通のデータをクロック信号に同期して取り込み、ＡＮＤ回路２０８に対して出力する。そして、ＡＮＤ回路２０８は、両入力端子Ａ，Ｂに供給されたデータと同じ論理値のデータを出力する。つまり、通常動作の場合、簡易冗長回路２１０は、スキャンフリップフロップ１０３と同等の動作を示す。図３に示す半導体集積回路２０のその他の基本動作については、図１に示す半導体集積回路１０と同様であるため、その説明を省略する。
【００４５】
次に、スキャンフリップフロップ１０３に代わる簡易冗長回路２１０のフリップ率につて、図４を用いて説明する。図４は、半導体集積回路２０に設けられた簡易冗長回路２１０のフリップ率を説明するための図である。なお、簡易冗長回路２１０のフリップ率とは、スキャンテストのシフト動作において、ｎ回目のクロック信号の立ち上がりで簡易冗長回路２１０から出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりで簡易冗長回路２１０から出力されるデータの論理値と、が異なる確率のことである。
【００４６】
図４では、ｎ回目のクロック信号の立ち上がりでスキャンフリップフロップ２０３，２０４からそれぞれ出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりでスキャンフリップフロップ２０３，２０４からそれぞれ出力されるデータの論理値と、の全組み合わせを示している。さらに、図４では、組み合わせ回路群２０１の入力ａに供給されるデータの論理値、即ち、ＡＮＤ回路２０８から出力されるデータの論理値も示している（「２０１のａ」参照）。
【００４７】
また、図４の「フリップ」では、ｎ回目のクロック信号の立ち上がりとｎ＋１回目のクロック信号の立ち上がりとで簡易冗長回路２１０の出力データの論理値が変化する場合を「×」で示している。一方、ｎ回目のクロック信号の立ち上がりとｎ＋１回目のクロック信号の立ち上がりとで簡易冗長回路２１０の出力データの論理値が変化しない場合を「○」で示している。なお、括弧内では、矢印の左側に、ｎ回目のクロック信号の立ち上がりにおける簡易冗長回路２１０の出力データの論理値を示す。また、矢印の右側に、ｎ＋１回目のクロック信号の立ち上がりにおける簡易冗長回路２１０の出力データの論理値を示す。
【００４８】
ここで、スキャンフリップフロップ２０３のデータ出力端子Ｑは、スキャンフリップフロップ２０４の入力端子ＳＩＮに接続されている。そのため、ｎ回目のクロック信号の立ち上がりでスキャンフリップフロップ２０３から出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりでスキャンフリップフロップ２０４から出力されるデータの論理値と、は同じ値を示す。
【００４９】
図４に示すように、簡易冗長回路２１０の出力データの論理値は、８通りの組み合わせのうち２通りで変化していることから、簡易冗長回路２１０のフリップ率は、２／８＝２５％である。つまり、簡易冗長回路２１０のフリップ率は、図１に示すスキャンフリップフロップ１０３のフリップ率（５０％）よりも低くなる。
【００５０】
そのため、簡易冗長回路２１０の後段の組み合わせ回路群２０１にて消費される電力は、図１におけるスキャンフリップフロップ１０３の後段の組み合わせ回路群１０１にて消費される電力よりも少なくなる。
【００５１】
このように、本実施の形態にかかる半導体集積回路２０は、図１に示す半導体集積回路１０の場合と比較して、スキャンテスト時のピーク消費電力を低減することができる。特に、ピーク消費電力に大きな影響を与えるスキャンフリップフロップを本発明にかかる簡易冗長回路に置き換えることにより、効果的にピーク消費電力を低減することが可能である。
【００５２】
また、本実施の形態にかかる半導体集積回路２０では、従来技術と異なり制御信号を必要とせずにスキャンテスト時のピーク消費電力を低減することができる。
【００５３】
なお、本実施の形態では、簡易冗長回路２１０にＡＮＤ回路２０８が設けられた場合を例に説明したが、これに限られない。通常動作時及びスキャンテストのキャプチャ動作時にスキャンフリップフロップ１０３と同様の動作を実現でき、かつ、スキャンテストのシフト動作時にスキャンフリップフロップ１０３より低いフリップ率を実現できるのであれば、ＡＮＤ回路２０８に限られず論理和回路等の他の論理回路が設けられた回路構成に適宜変更可能である。
【００５４】
例えば、通常動作時及びスキャンテストのキャプチャ動作時にスキャンフリップフロップ１０３と同様の動作を実現する構成として、簡易冗長回路２１０は、通常動作時及びスキャンテストのキャプチャ動作時にスキャンフリップフロップ２０３，２０４のうち何れか一方から出力されたデータをそのまま出力する回路構成であっても良い。この場合、通常動作時及びスキャンテストのキャプチャ動作時には、対応するスキャンフリップフロップの入力端子ＤＡＴＡにのみデータが供給されていれば良い。
【００５５】
実施の形態２
図５は、本発明の実施の形態２にかかる半導体集積回路３０の構成を示す回路図である。図５に示す半導体集積回路３０は、実施の形態１とは異なる構成の簡易冗長回路３１０を有する。以下、詳細に説明する。
【００５６】
図５に示す半導体集積回路３０は、複数の組み合わせ回路によって構成される組み合わせ回路群３０１と、同じく複数の組み合わせ回路によって構成される組み合わせ回路群３０２と、簡易冗長回路（出力制御スキャンフリップフロップ）３１０と、スキャンフリップフロップ３０６〜３０８と、を備える。簡易冗長回路３１０は、スキャンフリップフロップ（第１スキャンフリップフロップ）３０３と、スキャンフリップフロップ（第２スキャンフリップフロップ）３０４と、スキャンフリップフロップ（第３スキャンフリップフロップ）３０５と、ゲーティング回路としてのＡＮＤ回路３０９と、を有する。
【００５７】
なお、組み合わせ回路群３０１，３０２は、それぞれ組み合わせ回路群１０１，１０２に対応し、簡易冗長回路３１０は、スキャンフリップフロップ１０３に対応し、スキャンフリップフロップ３０６〜３０８は、それぞれスキャンフリップフロップ１０４〜１０６に対応する。ここで、図５に示す半導体集積回路３０では、図１に示す半導体集積回路１０と比較して、スキャンフリップフロップ１０３が簡易冗長回路３１０に置き換わっている。
【００５８】
これらスキャンフリップフロップ３０３〜３０８は、順次直列に接続されていてスキャンチェーンを構成している。このスキャンチェーンは、具体的には以下のように接続されて構成されている。スキャンフリップフロップ３０３のデータ出力端子Ｑは、スキャンフリップフロップ３０４の入力端子ＳＩＮに接続されている。スキャンフリップフロップ３０４のデータ出力端子Ｑは、スキャンフリップフロップ３０５の入力端子ＳＩＮに接続されている。スキャンフリップフロップ３０５のデータ出力端子Ｑは、スキャンフリップフロップ３０６の入力端子ＳＩＮに接続されている。スキャンフリップフロップ３０６のデータ出力端子Ｑは、スキャンフリップフロップ３０７の入力端子ＳＩＮに接続されている。スキャンフリップフロップ３０７のデータ出力端子Ｑは、スキャンフリップフロップ３０８の入力端子ＳＩＮに接続されている。スキャンフリップフロップ３０８のデータ出力端子Ｑは、スキャンチェーンのスキャンアウト端子（ＳｃａｎＯｕｔ）に接続されている。なお、図５では、６つのスキャンフリップフロップ３０３〜３０８が設けられた場合を例に説明しているが、これに限られない。仮にスキャンフリップフロップ３０８の後段に他のスキャンフリップフロップが設けられている場合には、スキャンフリップフロップ３０８のデータ出力端子Ｑは、後段のスキャンフリップフロップの入力端子ＳＩＮに接続される。そして、最終段のスキャンフリップフロップのデータ出力端子Ｑが、スキャンチェーンのスキャンアウト端子に接続される。
【００５９】
また、スキャンフリップフロップ３０３の入力端子ＳＩＮは、スキャンチェーンのスキャンイン端子（ＳｃａｎＩＮ）に接続されている。なお、図５では、６つのスキャンフリップフロップ３０３〜３０８が設けられた場合を例に説明しているが、これに限られない。仮にスキャンフリップフロップ３０３の前段に他のスキャンフリップフロップが設けられている場合には、スキャンフリップフロップ３０３の入力端子ＳＩＮは、前段のスキャンフリップフロップのデータ出力端子Ｑに接続される。そして、最前段のスキャンフリップフロップの入力端子ＳＩＮが、スキャンチェーンのスキャンイン端子に接続される。
【００６０】
このように、スキャンイン端子とスキャンアウト端子との間に、複数のスキャンフリップフロップが接続されることにより、スキャンチェーンが構成される。
【００６１】
ＡＮＤ回路３０９の入力端子Ａには、スキャンフリップフロップ３０５のデータ出力端子Ｑが接続される。ＡＮＤ回路３０９の入力端子Ｂには、スキャンフリップフロップ３０４のデータ出力端子Ｑが接続される。ＡＮＤ回路３０９の入力端子Ｃには、スキャンフリップフロップ３０３のデータ出力端子Ｑが接続される。そして、ＡＮＤ回路３０９の出力端子Ｙからスキャンフリップフロップ３０３〜３０５の出力データの論理積が出力される。
【００６２】
組み合わせ回路群３０１は、ＡＮＤ回路３０９の出力データを論理演算し、その演算結果をスキャンフリップフロップ３０８に対して出力する。なお、組み合わせ回路群３０１の入力ａには、ＡＮＤ回路３０９の出力端子Ｙが接続されている。
【００６３】
組み合わせ回路群３０２は、スキャンフリップフロップ３０６の出力データを論理演算し、その演算結果をスキャンフリップフロップ３０７に対して出力する。なお、組み合わせ回路群３０２の入力ｂには、スキャンフリップフロップ３０６の出力端子Ｑが接続されている。
【００６４】
なお、簡易冗長回路３１０において、スキャンフリップフロップ３０３〜３０５の入力端子ＤＡＴＡには、それぞれ共通のデータが供給される。また、スキャンフリップフロップ３０３〜３０５のクロック入力端子ＣＬＫには、それぞれ共通のクロック信号が供給される。したがって、通常動作の場合、スキャンフリップフロップ３０３〜３０５は、それぞれ共通のデータをクロック信号に同期して取り込み、ＡＮＤ回路３０９に対して出力する。そして、ＡＮＤ回路３０９は、入力端子Ａ，Ｂ，Ｃに供給されたデータと同じ論理値のデータを出力する。つまり、通常動作の場合、簡易冗長回路３１０は、スキャンフリップフロップ１０３と同等の動作を示す。図５に示す半導体集積回路３０のその他の基本動作については、図１に示す半導体集積回路１０と同様であるため、その説明を省略する。
【００６５】
次に、スキャンフリップフロップ１０３に代わる簡易冗長回路３１０のフリップ率につて、図６を用いて説明する。図６は、半導体集積回路３０に設けられた簡易冗長回路３１０のフリップ率を説明するための図である。なお、簡易冗長回路３１０のフリップ率とは、スキャンテストのシフト動作において、ｎ回目のクロック信号の立ち上がりで簡易冗長回路３１０から出力されたデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりで簡易冗長回路３１０から出力されたデータの論理値と、が異なる確率のことである。
【００６６】
図６では、ｎ回目のクロック信号の立ち上がりでスキャンフリップフロップ３０３〜３０５からそれぞれ出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりでスキャンフリップフロップ３０３〜３０５からそれぞれ出力されるデータの論理値と、の全組み合わせを示している。さらに、図６では、組み合わせ回路群３０１の入力ａに供給されるデータの論理値、即ち、ＡＮＤ回路３０９から出力されるデータの論理値も示している（「３０１のａ」参照）。
【００６７】
また、図６の「フリップ」では、ｎ回目のクロック信号の立ち上がりとｎ＋１回目のクロック信号の立ち上がりとで簡易冗長回路３１０の出力データの論理値が変化する場合を「×」で示している。一方、ｎ回目のクロック信号の立ち上がりとｎ＋１回目のクロック信号の立ち上がりとで簡易冗長回路３１０の出力データの論理値が変化しない場合を「○」で示している。なお、括弧内では、矢印の左側に、ｎ回目のクロック信号の立ち上がりにおける簡易冗長回路３１０の出力データの論理値を示す。また、矢印の右側に、ｎ＋１回目のクロック信号の立ち上がりにおける簡易冗長回路３１０の出力データの論理値を示す。
【００６８】
ここで、スキャンフリップフロップ３０３のデータ出力端子Ｑは、スキャンフリップフロップ３０４の入力端子ＳＩＮに接続されている。そのため、ｎ回目のクロック信号の立ち上がりでスキャンフリップフロップ３０３から出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりでスキャンフリップフロップ３０４から出力されるデータの論理値と、は同じ値を示す。
【００６９】
同様に、スキャンフリップフロップ３０４のデータ出力端子Ｑは、スキャンフリップフロップ３０５の入力端子ＳＩＮに接続されている。そのため、ｎ回目のクロック信号の立ち上がりでスキャンフリップフロップ３０４から出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりでスキャンフリップフロップ３０５から出力されるデータの論理値と、は同じ値を示す。
【００７０】
図６に示すように、簡易冗長回路３１０の出力データの論理値は、１６通りの組み合わせのうち２通りで変化していることから、簡易冗長回路３１０のフリップ率は、２／１６＝１２．５％である。つまり、簡易冗長回路３１０のフリップ率は、図３に示す簡易冗長回路２１０のフリップ率（２５％）よりもさらに低くなる。
【００７１】
そのため、簡易冗長回路３１０の後段の組み合わせ回路群３０１にて消費される電力は、図３における簡易冗長回路２１０の後段の組み合わせ回路群２０１にて消費される電力よりもさらに少なくなる。
【００７２】
このように、本実施の形態にかかる半導体集積回路３０は、図３に示す半導体集積回路２０の場合と比較して、スキャンテスト時のピーク消費電力をさらに低減することができる。特に、ピーク消費電力に大きな影響を与えるスキャンフリップフロップを本発明にかかる簡易冗長回路に置き換えることにより、効果的にピーク消費電力を低減することが可能である。
【００７３】
また、本実施の形態にかかる半導体集積回路３０では、従来技術と異なり制御信号を必要とせずにスキャンテスト時のピーク消費電力を低減することができる。
【００７４】
実施の形態３
図７は、本発明の実施の形態３にかかる半導体集積回路４０の構成を示す回路図である。図７に示す半導体集積回路４０は、上記実施の形態とは異なる構成の簡易冗長回路４１０を有する。以下、詳細に説明する。
【００７５】
図７に示す半導体集積回路４０は、複数の組み合わせ回路によって構成される組み合わせ回路群４０１と、同じく複数の組み合わせ回路によって構成される組み合わせ回路群４０２と、簡易冗長回路（出力制御スキャンフリップフロップ）４１０と、スキャンフリップフロップ４０６〜４０８と、を備える。簡易冗長回路４１０は、スキャンフリップフロップ（第１スキャンフリップフロップ）４０３と、スキャンフリップフロップ（第２スキャンフリップフロップ）４０４と、スキャンフリップフロップ（第３スキャンフリップフロップ）４０５と、ゲーティング回路としての３入力多数決回路（３ｂｉｔ−ｍａｊｏｒｉｔｙ  ｃｉｒｃｕｉｔ）４０７と、を有する。つまり、簡易冗長回路４１０は、簡易冗長回路３１０と比較して、ＡＮＤ回路３０９に代えて３入力多数決回路４０９を有する。３入力多数決回路４０９は、３つの入力データのうち多数を占める論理値のデータを出力する回路である。なお、通常動作の場合、簡易冗長回路４１０は、スキャンフリップフロップ１０３と同等の動作を示す。
【００７６】
なお、組み合わせ回路群４０１，４０２は、それぞれ図５における組み合わせ回路群３０１，３０２に対応し、スキャンフリップフロップ４０３〜４０８は、それぞれスキャンフリップフロップ３０３〜３０８に対応する。３入力多数決回路４０９以外の回路構成及び動作については、図５に示す半導体集積回路３０と同様であるため、その説明を省略する。
【００７７】
次に、スキャンフリップフロップ１０３に代わる簡易冗長回路４１０のフリップ率につて、図８を用いて説明する。図８は、半導体集積回路４０に設けられた簡易冗長回路４１０のフリップ率を説明するための図である。なお、簡易冗長回路４１０のフリップ率とは、スキャンテストのシフト動作において、ｎ回目のクロック信号の立ち上がりで簡易冗長回路４１０から出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりで簡易冗長回路４１０から出力されるデータの論理値と、が異なる確率のことである。
【００７８】
図８では、ｎ回目のクロック信号の立ち上がりでスキャンフリップフロップ４０３〜４０５からそれぞれ出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりでスキャンフリップフロップ４０３〜４０５からそれぞれ出力されるデータの論理値と、の全組み合わせを示している。さらに、図８では、組み合わせ回路群４０１の入力ａに供給されるデータの論理値、即ち、３入力多数決回路４０９から出力されるデータの論理値も示している（「４０１のａ」参照）。
【００７９】
また、図８の「フリップ」では、ｎ回目のクロック信号の立ち上がりとｎ＋１回目のクロック信号の立ち上がりとで簡易冗長回路４１０の出力データの論理値が変化する場合を「×」で示している。一方、ｎ回目のクロック信号の立ち上がりとｎ＋１回目のクロック信号の立ち上がりとで簡易冗長回路４１０の出力データの論理値が変化しない場合を「○」で示している。なお、括弧内では、矢印の左側に、ｎ回目のクロック信号の立ち上がりにおける簡易冗長回路４１０の出力データの論理値を示す。また、矢印の右側に、ｎ＋１回目のクロック信号の立ち上がりにおける簡易冗長回路４１０の出力データの論理値を示す。
【００８０】
ここで、スキャンフリップフロップ４０３のデータ出力端子Ｑは、スキャンフリップフロップ４０４の入力端子ＳＩＮに接続されている。そのため、ｎ回目のクロック信号の立ち上がりでスキャンフリップフロップ４０３から出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりでスキャンフリップフロップ４０４から出力されるデータの論理値と、は同じ値を示す。
【００８１】
同様に、スキャンフリップフロップ４０４のデータ出力端子Ｑは、スキャンフリップフロップ４０５の入力端子ＳＩＮに接続されている。そのため、ｎ回目のクロック信号の立ち上がりでスキャンフリップフロップ４０４から出力されるデータの論理値と、ｎ＋１回目のクロック信号の立ち上がりでスキャンフリップフロップ４０５から出力されるデータの論理値と、は同じ値を示す。
【００８２】
図８に示すように、簡易冗長回路４１０の出力データの論理値は、１６通りの組み合わせのうち４通りで変化していることから、簡易冗長回路４１０のフリップ率は、４／１６＝２５％である。つまり、簡易冗長回路４１０のフリップ率は、図３に示す簡易冗長回路２１０のフリップ率（２５％）と同等である。つまり、本実施の形態にかかる半導体集積回路４０は、図３に示す半導体集積回路２０と同様の効果を奏することができる。
【００８３】
なお、本実施の形態では、簡易冗長回路４１０に３入力多数決回路４０９が設けられた場合を例に説明したが、これに限られない。通常動作時及びスキャンテストのキャプチャ動作時にスキャンフリップフロップ１０３と同様の動作を実現でき、かつ、スキャンテストのシフト動作時にスキャンフリップフロップ１０３より低いフリップ率を実現できるのであれば、３入力多数決回路４０９に限られず論理和回路等の他の論理回路が設けられた回路構成に適宜変更可能である。
【００８４】
例えば、通常動作時及びスキャンテストのキャプチャ動作時にスキャンフリップフロップ１０３と同様の動作を実現する構成として、簡易冗長回路２１０は、通常動作時及びスキャンテストのキャプチャ動作時にスキャンフリップフロップ４０３〜４０５のうち何れか一つから出力されたデータをそのまま出力する回路構成であっても良い。この場合、通常動作時及びスキャンテストのキャプチャ動作時には、対応するスキャンフリップフロップの入力端子ＤＡＴＡにのみデータが供給されていれば良い。
【００８５】
以上のように、上記実施の形態１〜３にかかる半導体集積回路は、本発明を適用する前の半導体集積回路の場合と比較して、スキャンテスト時のピーク消費電力を低減することができる。特に、ピーク消費電力に大きな影響を与えるスキャンフリップフロップを本発明にかかる簡易冗長回路に置き換えることにより、効果的にピーク消費電力を低減することが可能である。
【００８６】
また、上記実施の形態１〜３にかかる半導体集積回路では、従来技術と異なり制御信号を必要とせずにスキャンテスト時のピーク消費電力を低減することができる。そのため、制御信号の配線等を考慮して設計する必要が無く、設計制約を満たす設計を困難にさせない。
【００８７】
また、本実施の形態では、半導体集積回路の外部に設けられたＬＳＩテスタによってテストデータ（テストパタン）が生成される場合を例に説明したが、これに限られない。半導体集積回路内部に設けられたテストデータ生成回路によってテストデータが生成されても良い。また、本実施の形態では、スキャンテストによるテスト結果が直接外部に出力される場合を例に説明したが、これに限られない。半導体集積回路２０内部に設けられたデータ圧縮回路によりテスト結果が圧縮された後に外部に出力されても良い。即ち、組み込み自己テスト手法（いわゆるＢＩＳＴ手法）が採用された半導体集積回路に対しても本発明を適用することが可能である。
【００８８】
また、スキャンフリップフロップから本発明の簡易冗長回路への置き換えは、任意の設計工程にて実施可能である。例えば、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）設計段階にて、対象部分のＲＴＬ記述から簡易冗長回路に相当するＲＴＬ記述への置き換えが可能である（図９のＡ）。なお、簡易冗長回路に相当するＲＴＬ記述とは、複数のスキャンフリップフロップをそれぞれ通常のフリップフロップであるものとして記述したものである。つまり、ＲＴＬ設計段階では、スキャンチェーン及びその接続端子については考慮されない。このＲＴＬ記述は、後工程の論理合成ツールによって、スキャンフリップフロップに変換される。このようにして、最終的に、対象部分のＲＴＬ記述から簡易冗長回路へ置き換えが実施される。
【００８９】
また、論理合成行程中に対象部分のＲＴＬ記述から簡易冗長回路への置き換えが可能である（図９のＢ）。この場合、例えば、簡易冗長回路を一つのセルとして他の複数のセルとともにライブラリに登録しておくことにより、論理合成ツールによって自動的に対象部分のＲＴＬ記述を簡易冗長回路に置き換えることが可能である。もちろん、簡易冗長回路を一つのセルとしてライブラリに登録していなくても、論理合成ツールを用いて対象部分のＲＴＬ記述を編集し簡易冗長回路の構成に書き換えることも可能である。
【００９０】
また、論理合成工程後に通常のフリップフロップから簡易冗長回路への置き換えが可能である（図９のＣ）。なお、簡易冗長回路への置き換えはタイミング調整前に行われることが望ましい。また、従来技術のようにテスト回路挿入後に、スキャンフリップフロップから本発明の簡易冗長回路への置き換えも可能である。
【００９１】
なお、簡易冗長回路への置き換え対象となるスキャンフリップフロップは、例えば、各スキャンフリップフロップが駆動する組み合わせ回路の数に基づいて決定される。例えば、複数のスキャンフリップフロップのうち他のスキャンフリップフロップよりも駆動する組み合わせ回路の数の多いスキャンフリップフロップは、簡易冗長回路への置き換え対象となる。
【００９２】
また、簡易冗長回路への置き換え対象となるスキャンフリップフロップは、例えば、各スキャンフリップフロップが駆動する組み合わせ回路のピーク消費電力に基づいて決定される。例えば、複数のスキャンフリップフロップのうち他のスキャンフリップフロップよりも駆動する組み合わせ回路のピーク消費電力の大きいスキャンフリップフロップは、簡易冗長回路への置き換え対象となる。
【００９３】
なお、従来技術では、テスト回路挿入後にＡＮＤ回路等のゲーティング回路を単純に追加挿入する設計手法が用いられている。そのため、クリティカルパスを形成するフリップフロップ間にゲーティング回路が追加挿入された場合、タイミング違反が発生してしまう可能性があった。このようなクリティカルパスを形成するフリップフロップ間にはゲーティング回路を追加挿入することができず、結果としてピーク消費電力を低減することができないという問題があった。
【００９４】
一方、本発明の一例のように、タイミング調整前に簡易冗長回路に置換した場合、簡易冗長回路は、他の内部回路とともにタイミング制約を満足するようにタイミング調整される。そのため、本発明では、従来技術の場合と比較して、通常動作の速度低下を招く可能性が低くなる。
【００９５】
なお、仮に従来技術の手法をＲＴＬ設計段階で適用した場合、ＲＴＬ設計段階において本来考慮する必要のない制御信号を考慮して設計しなければならなくなる。具体的には、ＲＴＬ設計段階ではフリップフロップに相当するＲＴＬ記述に制御信号（ＮＴ）の情報が記載されないのが一般的である。つまり、ＲＴＬ設計段階では制御信号（ＮＴ）を考慮する必要が無いのが一般的である。しかしながら、ＲＴＬ設計段階でゲーティング回路５０３が追加されると、当該ゲーティング回路５０３の入力端子に制御信号（／ＮＴ）が供給されることを考慮して設計しなければならなくなる。一方、本発明では制御信号を必要としないため、このような問題は発生しない。
【符号の説明】
【００９６】
１０，２０，３０，４０  半導体集積回路
１０１，１０２  組み合わせ回路群
１０３〜１０６  スキャンフリップフロップ
２０１，２０２  組み合わせ回路群
２０３〜２０７  スキャンフリップフロップ
２０８  論理積回路（ＡＮＤ回路）
２１０  簡易冗長回路
３０１，３０２  組み合わせ回路群
３０３〜３０８  スキャンフリップフロップ
３０９  論理積回路（ＡＮＤ回路）
３１０  簡易冗長回路
４０１，４０２  組み合わせ回路群
４０３〜４０８  スキャンフリップフロップ
４０９  ３入力多数決回路
４１０  簡易冗長回路
【図１】
0005806050.tif 000002
【図２】
0005806050.tif 000003
【図３】
0005806050.tif 000004
【図４】
0005806050.tif 000005
【図５】
0005806050.tif 000006
【図６】
0005806050.tif 000007
【図７】
0005806050.tif 000008
【図８】
0005806050.tif 000009
【図９】
0005806050.tif 000010
【図１０】
0005806050.tif 000011