(57)【要約】【課題】  半導体集積回路のクロック信号上に可変遅延器を設けることによって、製造後の半導体集積回路にタイミング不良が生じた場合の救済を可能とする。【解決手段】  クロックツリーを構成する複数のクロックＣＴ１〜ＣＴ４の信号線上にそれぞれ可変遅延器ＶＤ１〜ＶＤ４を設ける。可変遅延器ＶＤ１〜ＶＤ４は、それぞれ制御信号ＣＲ１〜ＣＲ４で遅延値を等間隔で変更することを可能とする。タイミングエラーが生じた任意のクロックの信号線上の可変遅延器ＶＤ１〜ＶＤ４の遅延値を変化させることで、製造後の半導体集積回路上に存在するセットアップエラーまたはホールドエラーを救済し、所期の動作を保証する。【選択図】        図１
2005303189.tif 000002
【特許請求の範囲】
【請求項１】
外部入力端子からフリップフロップのクロック入力端子までのクロック信号の遅延値を変えるための可変遅延器を備えた半導体集積回路。
【請求項２】
前記可変遅延器は、クロックツリーの幹に設けられている請求項１記載の半導体集積回路。
【請求項３】
外部入力端子からフリップフロップのクロック入力端子までのクロック信号の遅延値を変えるための可変遅延器を備えた半導体集積回路を救済する方法であって、
製造後にタイミング不良を生じた前記半導体集積回路に対して、前記半導体集積回路が設計時の動作速度で動作することを保証するために設定すべき前記可変遅延器の遅延値を求める遅延値測定処理と、前記遅延値測定処理に基づいて前記可変遅延器に対して遅延値を設定する遅延値設定処理とを含む半導体集積回路の救済方法。
【請求項４】
外部入力端子からフリップフロップのクロック入力端子までのクロック信号の遅延値を変えるための可変遅延器を備えた半導体集積回路を救済する方法であって、
製造後の前記半導体集積回路に対して、前記半導体集積回路の動作速度を設計時の値よりも高くなるように設定すべき前記可変遅延器の遅延値を求める遅延値測定処理と、前記遅延値測定処理に基づいて前記可変遅延器に対して遅延値を設定する遅延値設定処理とを含む半導体集積回路の救済方法。
【請求項５】
前記遅延値測定処理では、セットアップエラー量を計測するために、テスタ上でクロック周期を変更しながらテストのパス／フェイルを判定し、パス判定された最小クロック周期と設計時のクロック周期との差をエラー量とするセットアップエラー量測定処理を含む請求項３記載の半導体集積回路の救済方法。
【請求項６】
前記遅延値測定処理では、セットアップエラー量を計測するために、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とするセットアップエラー量測定処理を含む請求項３記載の半導体集積回路の救済方法。
【請求項７】
前記遅延値測定処理では、ホールドエラー量を計測するために、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とするホールドエラー量測定処理を含む請求項３記載の半導体集積回路の救済方法。
【請求項８】
前記遅延値設定処理では、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた前記可変遅延器に対して、前記可変遅延器の遅延値が、前記セットアップエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値になるように設定する請求項５または請求項６記載の半導体集積回路の救済方法。
【請求項９】
前記遅延値設定処理では、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた前記可変遅延器に対して、前記可変遅延器の遅延値が、前記ホールドエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値になるように設定する請求項７記載の半導体集積回路の救済方法。
【請求項１０】
前記遅延値測定処理では、さらに
タイミングマージン量を計測するために、前記ホールドエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、前段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第１のタイミングマージン量とする第１のタイミングマージン量測定処理と、
前記ホールドエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、後段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第２のタイミングマージン量とする第２のタイミングマージン量測定処理とを含み、
前記遅延値設定処理では、前記ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた前記可変遅延器に対して、前記可変遅延器の遅延値が、前記ホールドエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値で、かつ、前記第１のタイミングマージン量と前記第２のタイミングマージン量のいずれかの最小値に等しいか、またはそれ以下の値になるように設定する請求項７記載の半導体集積回路の救済方法。
【請求項１１】
前記遅延値測定処理では、さらに
タイミングマージン量を計測するために、前記セットアップエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、前段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第１のタイミングマージン量とする第１のタイミングマージン量測定処理と、
前記セットアップエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、後段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第２のタイミングマージン量とする第２のタイミングマージン量測定処理とを含み、
前記遅延値設定処理では、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた前記可変遅延器に対して、前記可変遅延器の遅延値が、前記セットアップエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値で、かつ、前記第１のタイミングマージン量と前記第２のタイミングマージン量のいずれかの最小値に等しいか、またはそれ以下の値になるように設定する請求項５または請求項６記載の半導体集積回路の救済方法。
【請求項１２】
前記遅延値設定処理では、クリティカルパス終点フリップフロップのクロック経路上に設けられた前記可変遅延器に対して、前記可変遅延器の遅延値が最大になるように設定する請求項４記載の半導体集積回路の救済方法。
【請求項１３】
前記遅延値設定処理では、タイミングマージン量を計測するために、前記ホールドエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、前段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第１のタイミングマージン量とする第１のタイミングマージン量測定処理と、
前記ホールドエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、後段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第２のタイミングマージン量とする第２のタイミングマージン量測定処理とを含み、
クリティカルパス終点フリップフロップのクロック経路上に設けられた前記可変遅延器に対して、前記可変遅延器の遅延値が、前記第１のタイミングマージン量と前記第２のタイミングマージン量のいずれかの最小値に等しくなるように設定する請求項４記載の半導体集積回路の救済方法。
【請求項１４】
開始信号の印加によって動作を開始し、前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定することによってエラー量を測定する組込み自己エラー量測定器を備えた請求項１または２記載の半導体集積回路。
【請求項１５】
前記組込み自己エラー量測定器は、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とする請求項１４記載の半導体集積回路。
【請求項１６】
前記組込み自己エラー量測定器は、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とする請求項１４記載の半導体集積回路。
【請求項１７】
開始信号の印加によって動作を開始し、各可変遅延器について、前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された前記可変遅延器の最小遅延値と最大遅延値とを測定する組込み自己タイミングマージン量測定器を備えた請求項２記載の半導体集積回路。
【請求項１８】
組込み自己検査器を備え、前記テストを前記組込み自己検査器を用いて実行する請求項１４、１５、１６または１７記載の半導体集積回路。
【請求項１９】
開始信号の印加によって動作を開始し、前記組込み自己エラー量測定器が測定したエラー量に等しいか、またはそれ以上の遅延値を前記可変遅延器に設定する組込み自己救済器を備えた請求項１４、１５または１６記載の半導体集積回路。
【請求項２０】
組込み自己検査器を備え、前記テストを前記組込み自己検査器を用いて実行する請求項１９記載の半導体集積回路。
【請求項２１】
所定のクロック周期ごと、または所定の時刻ごとに、前記組込み自己エラー量測定器に対して開始信号を印加する機能を備えた請求項１４、１５または１６記載の半導体集積回路。
【請求項２２】
所定のクロック周期ごと、または所定の時刻ごとに、前記組込み自己エラー量測定器および前記組込み自己救済器に対して開始信号を印加する機能を備えた請求項１９記載の半導体集積回路。
【請求項２３】
前記半導体集積回路が開始信号の印加によって動作を開始し、前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定することによってエラー量を測定する組込み自己エラー量測定器を備え、
前記遅延値測定処理で前記組込み自己エラー量測定器によりエラー量を測定し、前記組込み自己エラー量測定器が測定したエラー量に基づいて、前記遅延値設定処理で前記可変遅延器の遅延値を設定する請求項３記載の半導体集積回路の救済方法。
【請求項２４】
前記半導体集積回路が、開始信号の印加によって動作を開始し、前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定することによってエラー量を測定する組込み自己エラー量測定器と、前記開始信号の印加によって動作を開始し、前記組込み自己エラー量測定器が測定したエラー量に等しいか、またはそれ以上の遅延値を前記可変遅延器に設定する組込み自己救済器とを備え、
前記半導体集積回路に製造後に動作不良が生じた場合に、前記組込み自己エラー量測定器および前記組込み自己救済器に対して開始信号を印加することにより、前記遅延値測定処理で前記組込み自己エラー量測定器によりエラー量を測定し、前記組込み自己エラー量測定器が測定したエラー量に基づいて、前記遅延値設定処理で前記組込み自己救済器により前記可変遅延器の遅延値を設定する請求項３記載の半導体集積回路の救済方法。
【請求項２５】
前記遅延値設定処理で前記可変遅延器の値を設定する前に、あらかじめ前記可変遅延器の精度を測定する請求項３記載の半導体集積回路の救済方法。
【請求項２６】
前記遅延値測定処理では、セットアップエラー量を計測するために、テスタ上でクロック周期を変更しながらテストのパス／フェイルを判定し、パス判定された最小クロック周期と設計時のクロック周期との差をエラー量とするセットアップエラー量測定処理を含み、前記セットアップエラー量測定処理で測定されたエラー量の前後でフェイル／パスを実現する可変遅延器の遅延値の全組み合わせを、エラーを生じたフリップフロップペアに対してテストすることで、前記可変遅延器の精度を測定する請求項２５記載の半導体集積回路の救済方法。
【請求項２７】
前記遅延値測定処理では、セットアップエラー量を計測するために、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とするセットアップエラー量測定処理を含み、前記セットアップエラー量測定処理で測定されたエラー量の前後でフェイル／パスを実現する可変遅延器の遅延値の全組み合わせを、エラーを生じたフリップフロップペアに対してテストすることで、前記可変遅延器の精度を測定する請求項２５記載の半導体集積回路の救済方法。
【請求項２８】
前記遅延値測定処理では、ホールドエラー量を計測するために、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた前記可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とするホールドエラー量測定処理を含み、前記ホールドエラー量測定処理で測定されたエラー量の前後でフェイル／パスを実現する可変遅延器の遅延値の全組み合わせを、エラーを生じたフリップフロップペアに対してテストすることで、前記可変遅延器の精度を測定する請求項２５記載の半導体集積回路の救済方法。
【請求項２９】
第１のクロックが供給され、動作マージンの測定対象となる第１の測定対象フリップフロップと、
第２のクロックが供給され、動作マージンの測定対象となり、前記第１の測定対象フリップフロップとともに測定対象チェーンを構成してシフトモード時に前記第１の測定対象フリップフロップからデータが転送される第２の測定対象フリップフロップと、
前記第１の測定対象フリップフロップと同一の前記第１のクロックが供給され、キャプチャモード時に前記第１の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に前記第１の測定対象フリップフロップにデータを供給する第１の制御観測フリップフロップと、
前記第２の測定対象フリップフロップと同一の前記第２のクロックが供給され、前記第１の制御観測フリップフロップとともに制御観測チェーンを構成してシフトモード時に前記第１の制御観測フリップフロップからデータが転送され、キャプチャモード時に前記第２の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に前記第２の測定対象フリップフロップにデータを供給する第２の制御観測フリップフロップと、
シフトモード時に前記第１の測定対象フリップフロップにデータを供給する第１の入力信号線と、
シフトモード時に前記第１の制御観測フリップフロップにデータを供給する第２の入力信号線と、
シフトモード時に前記第２の測定対象フリップフロップからデータを出力する第１の出力信号線と、
シフトモード時に前記第２の制御観測フリップフロップからデータを出力する第２の出力信号線とを備え、
前記第１および第２の制御観測フリップフロップ間のタイミングマージンを、前記第１および第２の測定対象フリップフロップ間のタイミングマージンに比べて大きくしている半導体集積回路。
【請求項３０】
請求項２９記載の半導体集積回路の前記測定対象チェーンでの動作エラーを検出する方法であって、
前記制御観測チェーンに異なる値のデータをシフトインする工程と、
前記制御観測チェーンのデータを対応する前記測定対象チェーンへ転送する工程と、
前記測定対象チェーンを１クロック分シフトする工程と、
前記測定対象チェーンのデータを前記制御観測チェーンへ転送する工程と、
前記制御観測チェーンのデータをシフトアウトする工程と、
前記制御観測チェーンからシフトアウトされた値と期待値とを照合する工程とを含む動作エラーの検出方法。
【請求項３１】
前記第１の測定対象フリップフロップと前記第１の制御観測フリップフロップとを互いに近接させて配置し、前記第２の測定対象フリップフロップと前記第２の制御観測フリップフロップとを互いに近接させて配置している請求項２９記載の半導体集積回路。
【請求項３２】
前記第１の測定対象フリップフロップと前記第１の制御観測フリップフロップへの前記第１のクロックの供給経路の配線長を等しくし、前記第２の測定対象フリップフロップと前記第２の制御観測フリップフロップへの前記第２のクロックの供給経路の配線長を等しくしている請求項２９記載の半導体集積回路。
【請求項３３】
第１のクロックが供給され、動作マージンの測定対象となる第１の測定対象フリップフロップと、
第２のクロックが供給され、動作マージンの測定対象となり、前記第１の測定対象フリップフロップとともに測定対象チェーンを構成してシフトモード時に前記第１の測定対象フリップフロップからデータが転送される第２の測定対象フリップフロップと、
前記第１の測定対象フリップフロップと同一の前記第１のクロックが供給され、キャプチャモード時に前記第１の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に前記第１の測定対象フリップフロップにデータを供給する第１の制御観測フリップフロップと、
前記第２の測定対象フリップフロップと同一の前記第２のクロックが供給され、前記第１の制御観測フリップフロップとともに制御観測チェーンを構成してシフトモード時に前記第１の制御観測フリップフロップからデータが転送され、キャプチャモード時に前記第２の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に前記第２の測定対象フリップフロップにデータを供給する第２の制御観測フリップフロップと、
シフトモード時に前記第１の測定対象フリップフロップにデータを供給する第１の入力信号線と、
シフトモード時に前記第１の制御観測フリップフロップにデータを供給する第２の入力信号線と、
シフトモード時に前記第２の測定対象フリップフロップからデータを出力する第１の出力信号線と、
シフトモード時に前記第２の制御観測フリップフロップからデータを出力する第２の出力信号線とを備え、
前記第１および第２の制御観測フリップフロップ間のタイミングマージンを、前記第１および第２の測定対象フリップフロップ間のタイミングマージンに比べて大きくしている動作エラー観測手段と、
前記第１および第２のクロックの遅延を制御可能なクロック遅延制御手段とを備えた半導体集積回路。
【請求項３４】
前記クロック遅延制御手段は可変容量セルの容量を変化させることにより前記第１および第２のクロックの遅延を制御している請求項３３記載の半導体集積回路。
【請求項３５】
請求項３４記載の半導体集積回路を用いて、前記可変容量セルの容量を変化させることにより、第１および第２の制御観測フリップフロップのホールド値を算出するホールド値の観測方法。
【請求項３６】
動作エラーもしくはその直前の状態を検出する動作エラー検出手段と、動作エラー検出手段の検出出力に応じて起動信号を発生する制御手段と、前記制御手段から発生する前記起動信号に応答して動作エラーを回避する動作エラー回避手段とを備えた半導体集積回路。
【請求項３７】
動作エラー検出手段が、
第１のクロックが供給され、動作マージンの測定対象となる第１の測定対象フリップフロップと、
第２のクロックが供給され、動作マージンの測定対象となり、前記第１の測定対象フリップフロップとともに測定対象チェーンを構成してシフトモード時に前記第１の測定対象フリップフロップからデータが転送される第２の測定対象フリップフロップと、
前記第１の測定対象フリップフロップと同一の前記第１のクロックが供給され、キャプチャモード時に前記第１の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に前記第１の測定対象フリップフロップにデータを供給する第１の制御観測フリップフロップと、
前記第２の測定対象フリップフロップと同一の前記第２のクロックが供給され、
前記第１の制御観測フリップフロップとともに制御観測チェーンを構成してシフトモード時に前記第１の制御観測フリップフロップからデータが転送され、キャプチャモード時に前記第２の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に前記第２の測定対象フリップフロップにデータを供給する第２の制御観測フリップフロップと、
シフトモード時に前記第１の測定対象フリップフロップにデータを供給する第１の入力信号線と、
シフトモード時に前記第１の制御観測フリップフロップにデータを供給する第２の入力信号線と、
シフトモード時に前記第２の測定対象フリップフロップからデータを出力する第１の出力信号線と、
シフトモード時に前記第２の制御観測フリップフロップからデータを出力する第２の出力信号線とを備え、
前記第１および第２の制御観測フリップフロップ間のタイミングマージンを、前記第１および第２の測定対象フリップフロップ間のタイミングマージンに比べて大きくしている構成を有している請求項３６記載の半導体集積回路。
【請求項３８】
前記動作エラー回避手段が、クロックの供給経路に設けた遅延制御回路である請求項３６記載の半導体集積回路。
【請求項３９】
前記動作エラー回避手段が、電源電圧変更を可能とする回路である請求項３６記載の半導体集積回路。
【請求項４０】
前記動作エラー回避手段が、劣化回生手段である請求項３６記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の検査によって半導体集積回路の動作不良の存在が明らかになった場合に、動作不良箇所を特定し、さらには動作不良箇所を救済するための半導体集積回路の設計技術および検査技術に関するものである。
【背景技術】
【０００２】
半導体集積回路では、製造工程におけるダストや製造バラツキによって回路を構成する素子の機能的な動作不良を回避するための手法として、主に記憶素子（ＤＲＡＭ，ＳＲＡＭなど）等において、冗長救済手法というものがとられてきた。この手法は、あらかじめ予備のメモリ素子をＬＳＩ中に構成し、検査工程で動作不良のメモリ素子が検出された場合、動作不良のメモリ素子と予備のメモリ素子とを交換することを前提として設計する手法である。
【０００３】
しかしながら、近年の微細化ではシミュレーションで高精度に検証ができないＳＩ（Signal Integrity）、ＩＲドロップ、Ｘｔａｌｋ(クロストーク)と製造バラツキの変動による遅延変動の影響で、性能劣化による動作不良が発生している。そのため、従来のような素子の置換ではなく、ＬＳＩの製造後に回路性能を改善することが必要とされている。
【０００４】
これらの動作不良を回避する手段としては、ＬＳＩ製造後に素子の遅延を制御することが提案されている（例えば、特許文献１参照）。また、経時劣化を含めた設計方法としては、設計時にあらかじめ十分な余裕を持って、設計する方法が提案されている（例えば、特許文献２参照）。
【０００５】
特許文献１に記載の手法は、クロック回路上に遅延制御回路を挿入し、ＬＳＩ製造後に製造ばらつきが発生した場合、制御信号で遅延制御回路を調整することで動作不良を回避する手法であった。
【特許文献１】特開平１１−２８９３２１号公報
【特許文献２】特許第２９６７７５９号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のような遅延制御方法の場合、ＬＳＩ毎に製造バラツキを測定し遅延制御回路を制御しなければならい。しかしながら、製造バラツキをＬＳＩ毎に測定する手法などは確立されておらず、量産されるＬＳＩに上記手法を適用することは困難であった。しかも、近年の大規模なシステムＬＳＩで動作不良を回避するためには、多数の遅延制御回路の挿入と制御が必要とされる。
【０００７】
また、経時劣化を含めた従来の設計方法においては、あらゆる組み合わせの変動に対応する必要があるため、過剰な仕様となり、ＬＳＩ面積の増大、消費電力の増大を招く。
【０００８】
本発明の目的は、製造後にタイミング不良が生じた場合にも救済を行って正常な動作に戻すことができる半導体集積回路を提供することである。
【０００９】
本発明の他の目的は、製造後に半導体集積回路のタイミング不良が生じた場合に救済を行って正常な動作に戻すことができる半導体集積回路の救済方法を提供することである。
【００１０】
本発明のさらに他の目的は、性能をさらに向上させることができる半導体集積回路を提供することである。
【００１１】
本発明のさらに他の目的は、半導体集積回路の性能をさらに向上させることができる半導体集積回路の救済方法を提供することを目的とする。
【００１２】
本発明のさらに他の目的は、動作中のタイミングエラーを観測することが可能な半導体集積回路を提供することである。
【００１３】
本発明のさらに他の目的は、実際の回路のホールド値を計測することが可能である半導体集積回路を提供することである。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、第１の発明の半導体集積回路は、外部入力端子からフリップフロップのクロック入力端子までのクロック信号の遅延値を変えるための可変遅延器を備えている。
【００１５】
この構成によれば、可変遅延器を設けているので、外部入力端子からフリップフロップのクロック入力端子までのクロック信号の遅延値を変えることができ、製造後にタイミング不良が生じた場合にも、救済を行って正常な動作に戻すことが可能である。
【００１６】
第１の発明の半導体集積回路においては、可変遅延器はクロックツリーの幹に設けられていることが好ましい。
【００１７】
この構成によれば、可変遅延器をクロックツリーの幹に設けているので、少ない可変遅延器で効率的にタイミング不良の救済を行うことができる。
【００１８】
第２の発明の半導体集積回路の救済方法は、外部入力端子からフリップフロップのクロック入力端子までのクロック信号の遅延値を変えるための可変遅延器を備えた半導体集積回路を救済する方法であって、製造後にタイミング不良を生じた半導体集積回路に対して、半導体集積回路が設計時の動作速度で動作することを保証するために設定すべき可変遅延器の遅延値を求める遅延値測定処理と、遅延値測定処理に基づいて可変遅延器に対して遅延値を設定する遅延値設定処理とを含む。
【００１９】
この方法によれば、半導体集積回路が設計時の動作速度で動作することを保証するために設定すべき可変遅延器の遅延値を求め、求めた遅延値を可変遅延器に設定するので、セットアップエラーやホールドエラーなどのタイミング不良が生じた半導体集積回路のタイミングを救済し、正常な動作に戻すことが可能である。
【００２０】
第３の発明の半導体集積回路の救済方法は、外部入力端子からフリップフロップのクロック入力端子までのクロック信号の遅延値を変えるための可変遅延器を備えた半導体集積回路を救済する方法であって、製造後の半導体集積回路に対して、半導体集積回路の動作速度を設計時の値よりも高くなるように設定すべき可変遅延器の遅延値を求める遅延値測定処理と、遅延値測定処理に基づいて可変遅延器に対して遅延値を設定する遅延値設定処理とを含む。
【００２１】
この方法によれば、製造後の半導体集積回路に対して、半導体集積回路の動作速度を設計時の値よりも高くなるように設定すべき可変遅延器の遅延値を求め、求めた遅延値を可変遅延器に設定するので、正常な半導体集積回路であっても、さらに動作性能を向上させることができる。
【００２２】
第２の発明の半導体集積回路の救済方法においては、遅延値測定処理では、セットアップエラー量を計測するために、テスタ上でクロック周期を変更しながらテストのパス／フェイルを判定し、パス判定された最小クロック周期と設計時のクロック周期との差をエラー量とするセットアップエラー量測定処理を含むことが好ましい。
【００２３】
この方法によれば、クロック周期を変更しながらテストを行ってセットアップエラー量を計測するので、セットアップエラーが生じた半導体集積回路のタイミングを救済し、正常な動作に戻すことが可能である。
【００２４】
また、第２の発明の半導体集積回路の救済方法においては、遅延値測定処理では、セットアップエラー量を計測するために、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とするセットアップエラー量測定処理を含むことが好ましい。
【００２５】
この方法によれば、可変遅延器の遅延値を変更しながらテストを行ってセットアップエラー量を計測するので、セットアップエラーが生じた半導体集積回路のタイミングを救済し、正常な動作に戻すことが可能である。
【００２６】
第２の発明の半導体集積回路の救済方法においては、遅延値測定処理では、ホールドエラー量を計測するために、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とするホールドエラー量測定処理を含むことが好ましい。
【００２７】
この方法によれば、可変遅延器の遅延値を変更しながらテストを行ってホールドエラー量を計測するので、ホールドエラーが生じた半導体集積回路のタイミングを救済し、正常な動作に戻すことが可能である。
【００２８】
また、第２の発明の半導体集積回路の救済方法においては、遅延値設定処理では、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が、セットアップエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値になるように設定することが好ましい。
【００２９】
この方法によれば、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が、セットアップエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値になるように設定するので、セットアップエラーが生じた半導体集積回路のタイミングを救済し、正常な動作に戻すこと、または性能をさらに向上させることが可能である。
【００３０】
また、第２の発明の半導体集積回路の救済方法においては、遅延値設定処理では、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が、ホールドエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値になるように設定することが好ましい。
【００３１】
この方法によれば、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が、ホールドエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値になるように設定するので、ホールドエラーが生じた半導体集積回路のタイミングを救済し、正常な動作に戻すこと、または性能をさらに向上させることが可能である。
【００３２】
また、第２の発明の半導体集積回路の救済方法においては、遅延値測定処理では、さらにタイミングマージン量を計測するために、ホールドエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、前段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第１のタイミングマージン量とする第１のタイミングマージン量測定処理と、
ホールドエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、後段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第２のタイミングマージン量とする第２のタイミングマージン量測定処理とを含み、
遅延値設定処理では、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が、ホールドエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値で、かつ、第１のタイミングマージン量と第２のタイミングマージン量のいずれかの最小値に等しいか、またはそれ以下の値になるように設定することが好ましい。
【００３３】
この方法によれば、ホールドエラーを生じたフリップフロップペアを除く他のフリップフロップペアにおける前段フリップフロップについて第１のタイミングマージン量を測定し、後段フリップフロップについて第２のタイミングマージン量を測定し、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が、ホールドエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値で、かつ、第１のタイミングマージン量と第２のタイミングマージン量のいずれかの最小値に等しいか、またはそれ以下の値になるように設定するので、ホールドエラーを生じたフリップフロップペアのタイミングを救済するときに、ホールドエラーを生じたフリップフロップペアを除く他のフリップフロップペアのエラーが生じるのを防止することができる。
【００３４】
また、第２の発明の半導体集積回路の救済方法においては、遅延値測定処理では、さらにタイミングマージン量を計測するために、セットアップエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、前段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第１のタイミングマージン量とする第１のタイミングマージン量測定処理と、
セットアップエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、後段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第２のタイミングマージン量とする第２のタイミングマージン量測定処理とを含み、
遅延値設定処理では、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が、セットアップエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値で、かつ、第１のタイミングマージン量と第２のタイミングマージン量のいずれかの最小値に等しいか、またはそれ以下の値になるように設定することが好ましい。
【００３５】
この方法によれば、セットアップエラーを生じたフリップフロップペアを除く他のフリップフロップペアにおける前段フリップフロップについて第１のタイミングマージン量を測定し、後段フリップフロップについて第２のタイミングマージン量を測定し、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が、セットアップエラー量測定処理で算出されたエラー量に等しいか、またはそれ以上の値で、かつ、第１のタイミングマージン量と第２のタイミングマージン量のいずれかの最小値に等しいか、またはそれ以下の値になるように設定するので、セットアップエラーを生じたフリップフロップペアのタイミングを救済するときに、セットアップエラーを生じたフリップフロップペアを除く他のフリップフロップペアのエラーが生じるのを防止することができる。
【００３６】
第３の発明の半導体集積回路の救済方法においては、遅延値設定処理では、クリティカルパス終点フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が最大になるように設定することが好ましい。
【００３７】
この方法によれば、クリティカルパス終点フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が最大になるように設定するので、正常な半導体集積回路であっても、さらに動作性能を向上させることができる。
【００３８】
また、第３の発明の半導体集積回路の救済方法においては、遅延値設定処理では、タイミングマージン量を計測するために、ホールドエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、前段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第１のタイミングマージン量とする第１のタイミングマージン量測定処理と、
ホールドエラーを生じたフリップフロップペアを除く他のフリップフロップペアについて、後段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最大遅延値と初期状態の可変遅延器の遅延値との差分を第２のタイミングマージン量とする第２のタイミングマージン量測定処理とを含み、
クリティカルパス終点フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が、第１のタイミングマージン量と第２のタイミングマージン量のいずれかの最小値に等しくなるように設定することが好ましい。
【００３９】
この方法によれば、ホールドエラーを生じたフリップフロップペアを除く他のフリップフロップペアにおける前段フリップフロップについて第１のタイミングマージン量を測定し、後段フリップフロップについて第２のタイミングマージン量を測定し、クリティカルパス終点フリップフロップのクロック経路上に設けられた可変遅延器に対して、可変遅延器の遅延値が、第１のタイミングマージン量と第２のタイミングマージン量のいずれかの最小値に等しくなるように設定するので、クリティカルパス終点フリップフロップのクロック経路上に設けられた可変遅延器に対して、遅延量を設定する際に、他のフリップフロップペアのホールドエラーを改善し、かつ新たにセットアップエラーが生じないように考慮しながらクリティカルパスのセットアップマージンを最大化するように制御することによって動作性能を向上させることができる。
【００４０】
第１の発明の半導体集積回路においては、開始信号の印加によって動作を開始し、可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定することによってエラー量を測定する組込み自己エラー量測定器を備えていることが好ましい。
【００４１】
この構成によれば、組込み自己エラー測定器を設けているので、製造後にタイミング不良が生じた場合にも、容易に救済を行うことが可能である。また、エラー測定手段を別に準備することなく、エラー測定を行うことができる。
【００４２】
第１の発明の半導体集積回路においては、組込み自己エラー量測定器は、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とすることが好ましい。
【００４３】
この構成によれば、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とするので、製造後にセットアップエラーによるタイミング不良が生じた場合にも、容易に救済を行うことが可能である。
【００４４】
また、第１の発明の半導体集積回路においては、組込み自己エラー量測定器は、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とすることが好ましい。
【００４５】
この構成によれば、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とするので、ホールドエラーによるタイミング不良が生じた場合にも、容易に救済を行うことが可能である。
【００４６】
第１の発明の半導体集積回路においては、開始信号の印加によって動作を開始し、各可変遅延器について、可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と最大遅延値とを測定する組込み自己タイミングマージン量測定器を備えていることが好ましい。
【００４７】
この構成によれば、組込み自己タイミングマージン量測定器を設けているので、製造後にタイミング不良が生じた場合にも、容易に救済を行うことが可能である。また、タイミングマージン測定手段を別に準備することなく、タイミングマージンを測定することができる。
【００４８】
また、第１の発明の半導体集積回路においては、組込み自己検査器を備え、テストを組込み自己検査器を用いて実行することが好ましい。
【００４９】
この構成によれば、組込み自己検査器を設け、テストを組込み自己検査器を用いて実行するので、テスト手段を別に準備することなく、テストを行うことができる。
【００５０】
第１の発明の半導体集積回路においては、開始信号の印加によって動作を開始し、組込み自己エラー量測定器が測定したエラー量に等しいか、またはそれ以上の遅延値を可変遅延器に設定する組込み自己救済器を備えていることが好ましい。
【００５１】
この構成によれば、組込み自己救済器を設けているので、別に救済手段を設けることなく、タイミング救済を行うことができる。
【００５２】
また、第１の発明の半導体集積回路においては、組込み自己検査器を備え、テストを組込み自己検査器を用いて実行することが好ましい。
【００５３】
この構成によれば、組込み自己検査器を設け、テストを組込み自己検査器を用いて実行するので、テスト手段を別に準備することなく、テストを行うことができる。
【００５４】
第１の発明の半導体集積回路においては、所定のクロック周期ごと、または所定の時刻ごとに、組込み自己エラー量測定器に対して開始信号を印加する機能を備えていることが好ましい。
【００５５】
この構成によれば、所定のクロック周期ごと、または所定の時刻ごとに、組込み自己エラー量測定器に対して開始信号を印加することができ、自動的にエラー量を測定することができる。
【００５６】
また、第１の発明の半導体集積回路においては、所定のクロック周期ごと、または所定の時刻ごとに、組込み自己エラー量測定器および組込み自己救済器に対して開始信号を印加する機能を備えていることが好ましい。
【００５７】
この構成によれば、所定のクロック周期ごと、または所定の時刻ごとに、組込み自己エラー量測定器および組込み自己救済器に対して開始信号を印加することができ、自動的にエラー量測定およびタイミング救済を行うことができる。
【００５８】
第２の発明の半導体集積回路の救済方法においては、半導体集積回路が開始信号の印加によって動作を開始し、可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定することによってエラー量を測定する組込み自己エラー量測定器を備え、
遅延値測定処理で組込み自己エラー量測定器によりエラー量を測定し、組込み自己エラー量測定器が測定したエラー量に基づいて、遅延値設定処理で可変遅延器の遅延値を設定することが好ましい。
【００５９】
この方法によれば、組込み自己エラー測定器を設けているので、製造後にタイミング不良が生じた場合にも、容易に救済を行うことが可能である。また、エラー測定器を別に準備することなく、エラー測定を行うことができる。
【００６０】
また、第２の発明の半導体集積回路の救済方法においては、半導体集積回路が、開始信号の印加によって動作を開始し、可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定することによってエラー量を測定する組込み自己エラー量測定器と、開始信号の印加によって動作を開始し、組込み自己エラー量測定器が測定したエラー量に等しいか、またはそれ以上の遅延値を可変遅延器に設定する組込み自己救済器とを備え、
半導体集積回路に製造後に動作不良が生じた場合に、組込み自己エラー量測定器および組込み自己救済器に対して開始信号を印加することにより、遅延値測定処理で組込み自己エラー量測定器によりエラー量を測定し、組込み自己エラー量測定器が測定したエラー量に基づいて、遅延値設定処理で組込み自己救済器により可変遅延器の遅延値を設定することが好ましい。
【００６１】
この方法によれば、組込み自己エラー測定器および組込み自己救済器を設けているので、製造後にタイミング不良が生じた場合にも、容易に救済を行うことが可能である。また、エラー測定手段およびタイミング救済手段を別に準備することなく、エラー測定およびタイミング救済を行うことができる。
【００６２】
また、第２の発明の半導体集積回路の救済方法においては、遅延値設定処理で可変遅延器の値を設定する前に、あらかじめ可変遅延器の精度を測定することが好ましい。
【００６３】
この方法によれば、あらかじめ可変遅延器の精度を測定するので、タイミングエラーの補正を精度よく行うことができる。
【００６４】
また、第２の発明の半導体集積回路の救済方法においては、遅延値測定処理では、セットアップエラー量を計測するために、テスタ上でクロック周期を変更しながらテストのパス／フェイルを判定し、パス判定された最小クロック周期と設計時のクロック周期との差をエラー量とするセットアップエラー量測定処理を含み、セットアップエラー量測定処理で測定されたエラー量の前後でフェイル／パスを実現する可変遅延器の遅延値の全組み合わせを、エラーを生じたフリップフロップペアに対してテストすることで、可変遅延器の精度を測定することが好ましい。
【００６５】
この方法によれば、セットアップエラー量測定処理で測定されたエラー量の前後でフェイル／パスを実現する可変遅延器の遅延値の全組み合わせを、エラーを生じたフリップフロップペアに対してテストすることによって、可変遅延器の精度を測定するので、タイミングエラーの補正を精度よく行うことができる。
【００６６】
また、第２の発明の半導体集積回路の救済方法においては、遅延値測定処理では、セットアップエラー量を計測するために、セットアップエラーを生じたフリップフロップペアのうち、後段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とするセットアップエラー量測定処理を含み、セットアップエラー量測定処理で測定されたエラー量の前後でフェイル／パスを実現する可変遅延器の遅延値の全組み合わせを、エラーを生じたフリップフロップペアに対してテストすることで、可変遅延器の精度を測定することが好ましい。
【００６７】
この方法によれば、セットアップエラー量測定処理で測定されたエラー量の前後でフェイル／パスを実現する可変遅延器の遅延値の全組み合わせを、エラーを生じたフリップフロップペアに対してテストすることによって、可変遅延器の精度を測定するので、タイミングエラーの補正を精度よく行うことができる。
【００６８】
また、第２の発明の半導体集積回路の救済方法においては、遅延値測定処理では、ホールドエラー量を計測するために、ホールドエラーを生じたフリップフロップペアのうち、前段フリップフロップのクロック経路上に設けられた可変遅延器の遅延値を変更しながらテストのパス／フェイルを判定し、パス判定された可変遅延器の最小遅延値と初期状態の可変遅延器の遅延値との差分をエラー量とするホールドエラー量測定処理を含み、ホールドエラー量測定処理で測定されたエラー量の前後でフェイル／パスを実現する可変遅延器の遅延値の全組み合わせを、エラーを生じたフリップフロップペアに対してテストすることで、可変遅延器の精度を測定することが好ましい。
【００６９】
この方法によれば、ホールドエラー量測定処理で測定されたエラー量の前後でフェイル／パスを実現する可変遅延器の遅延値の全組み合わせを、エラーを生じたフリップフロップペアに対してテストすることで、可変遅延器の精度を測定するので、タイミングエラーの補正を精度よく行うことができる。
【００７０】
第４の発明の半導体集積回路は、第１のクロックが供給され、動作マージンの測定対象となる第１の測定対象フリップフロップと、第２のクロックが供給され、動作マージンの測定対象となり、第１の測定対象フリップフロップとともに測定対象チェーンを構成してシフトモード時に第１の測定対象フリップフロップからデータが転送される第２の測定対象フリップフロップと、第１の測定対象フリップフロップと同一の第１のクロックが供給され、キャプチャモード時に第１の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に第１の測定対象フリップフロップにデータを供給する第１の制御観測フリップフロップと、第２の測定対象フリップフロップと同一の第２のクロックが供給され、第１の制御観測フリップフロップとともに制御観測チェーンを構成してシフトモード時に第１の制御観測フリップフロップからデータが転送され、キャプチャモード時に第２の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に第２の測定対象フリップフロップにデータを供給する第２の制御観測フリップフロップと、シフトモード時に第１の測定対象フリップフロップにデータを供給する第１の入力信号線と、シフトモード時に第１の制御観測フリップフロップにデータを供給する第２の入力信号線と、シフトモード時に第２の測定対象フリップフロップからデータを出力する第１の出力信号線と、シフトモード時に第２の制御観測フリップフロップからデータを出力する第２の出力信号線とを備え、第１および第２の制御観測フリップフロップ間のタイミングマージンを、第１および第２の測定対象フリップフロップ間のタイミングマージンに比べて大きくしている。
【００７１】
この構成によれば、測定対象チェーンを構成する第１および第２の測定対象フリップフロップを設け、制御観測チェーンを構成する第１および第２の制御観測フリップフロップを設け、測定対象チェーンおよび制御観測チェーンへのデータの入出力を行う第１および第２の入力信号線ならびに第１および第２の出力信号線を設け、測定対象チェーンおよび制御観測チェーンを相互に接続したので、測定対象チェーンおよび制御観測チェーン間でデータの受け渡しを行うことにより、動作中のＬＳＩのタイミングエラーを観測することが可能である。
【００７２】
第５の発明の動作エラーの検出方法は、第４の発明の半導体集積回路の測定対象チェーンでの動作エラーを検出する方法であって、制御観測チェーンに異なる値のデータをシフトインする工程と、制御観測チェーンのデータを対応する測定対象チェーンへ転送する工程と、測定対象チェーンを１クロック分シフトする工程と、測定対象チェーンのデータを制御観測チェーンへ転送する工程と、制御観測チェーンのデータをシフトアウトする工程と、制御観測チェーンからシフトアウトされた値と期待値とを照合する工程とを含む。
【００７３】
この方法によれば、制御観測チェーンに異なる値のデータをシフトインし、制御観測チェーンのデータを対応する測定対象チェーンへ転送し、測定対象チェーンを１クロック分シフトし、測定対象チェーンのデータを制御観測チェーンへ転送し、制御観測チェーンのデータをシフトアウトし、制御観測チェーンからシフトアウトされた値と期待値とを照合することにより、動作中のＬＳＩのタイミングエラーを観測することが可能である。
【００７４】
第４の発明の半導体集積回路においては、第１の測定対象フリップフロップと第１の制御観測フリップフロップとを互いに近接させて配置し、第２の測定対象フリップフロップと第２の制御観測フリップフロップとを互いに近接させて配置することが好ましい。
【００７５】
この構成によれば、第１の測定対象フリップフロップと第１の制御観測フリップフロップとの間のスキュー、および第２の測定対象フリップフロップと第２の制御観測フリップフロップとの間のスキューを削減することができる。
【００７６】
また、第４の発明の半導体集積回路においては、第１の測定対象フリップフロップと第１の制御観測フリップフロップへの第１のクロックの供給経路の配線長を等しくし、第２の測定対象フリップフロップと第２の制御観測フリップフロップへの第２のクロックの供給経路の配線長を等しくすることが好ましい。
【００７７】
この構成によれば、第１の測定対象フリップフロップと第１の制御観測フリップフロップとの間のスキュー、および第２の測定対象フリップフロップと第２の制御観測フリップフロップとの間のスキューを削減することができる。
【００７８】
第６の発明の半導体集積回路は、第１のクロックが供給され、動作マージンの測定対象となる第１の測定対象フリップフロップと、第２のクロックが供給され、動作マージンの測定対象となり、第１の測定対象フリップフロップとともに測定対象チェーンを構成してシフトモード時に第１の測定対象フリップフロップからデータが転送される第２の測定対象フリップフロップと、第１の測定対象フリップフロップと同一の第１のクロックが供給され、キャプチャモード時に第１の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に第１の測定対象フリップフロップにデータを供給する第１の制御観測フリップフロップと、第２の測定対象フリップフロップと同一の第２のクロックが供給され、第１の制御観測フリップフロップとともに制御観測チェーンを構成してシフトモード時に第１の制御観測フリップフロップからデータが転送され、キャプチャモード時に第２の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に第２の測定対象フリップフロップにデータを供給する第２の制御観測フリップフロップと、シフトモード時に第１の測定対象フリップフロップにデータを供給する第１の入力信号線と、シフトモード時に第１の制御観測フリップフロップにデータを供給する第２の入力信号線と、シフトモード時に第２の測定対象フリップフロップからデータを出力する第１の出力信号線と、シフトモード時に第２の制御観測フリップフロップからデータを出力する第２の出力信号線とを備え、第１および第２の制御観測フリップフロップ間のタイミングマージンを、第１および第２の測定対象フリップフロップ間のタイミングマージンに比べて大きくしている動作エラー観測手段と、第１および第２のクロックの遅延を制御可能なクロック遅延制御手段とを備えている。
【００７９】
この構成によれば、測定対象チェーンを構成する第１および第２の測定対象フリップフロップを設け、制御観測チェーンを構成する第１および第２の制御観測フリップフロップを設け、測定対象チェーンおよび制御観測チェーンへのデータの入出力を行う第１および第２の入力信号線および第１の第２の出力信号線を設け、測定対象チェーンおよび制御観測チェーンを相互に接続し、これを動作エラー観測手段とし、さらに、第１および第２のクロックの遅延を制御可能なクロック遅延制御手段を設けたので、測定対象チェーンおよび制御観測チェーン間でデータの受け渡しを行い、第１および第２のクロックの遅延を制御することにより、実際の回路のホールド値を計測することが可能である。
【００８０】
第６の発明の半導体集積回路においては、クロック遅延制御手段は可変容量セルの容量を変化させることにより第１および第２のクロックの遅延を制御することが好ましい。
【００８１】
この構成によれば、可変容量セルの容量を変化させることにより、第１および第２のクロックの遅延を容易に制御できる。
【００８２】
第７の発明のホールド値の観測方法は、第６の発明の半導体集積回路を用いて、可変容量セルの容量を変化させることにより、第１および第２の制御観測フリップフロップのホールド値を算出する。
【００８３】
この方法によれば、可変容量セルの容量を変化させることにより、第１および第２のクロックの遅延を容易に制御でき、実際の回路のホールド値を計測することが可能である。
【００８４】
第８の発明の半導体集積回路は、動作エラーもしくはその直前の状態を検出する動作エラー検出手段と、動作エラー検出手段の検出出力に応じて起動信号を発生する制御手段と、制御手段から発生する起動信号に応答して動作エラーを回避する動作エラー回避手段とを備えている。
【００８５】
この構成によれば、動作エラー検出手段、制御手段および動作エラー回避手段を設けたので、製造後にタイミング不良が生じた場合にも、容易に救済を行うことが可能である。
【００８６】
第8の発明の半導体集積回路においては、動作エラー検出手段が、第１のクロックが供給され、動作マージンの測定対象となる第１の測定対象フリップフロップと、第２のクロックが供給され、動作マージンの測定対象となり、第１の測定対象フリップフロップとともに測定対象チェーンを構成してシフトモード時に第１の測定対象フリップフロップからデータが転送される第２の測定対象フリップフロップと、第１の測定対象フリップフロップと同一の第１のクロックが供給され、キャプチャモード時に第１の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に第１の測定対象フリップフロップにデータを供給する第１の制御観測フリップフロップと、第２の測定対象フリップフロップと同一の第２のクロックが供給され、第１の制御観測フリップフロップとともに制御観測チェーンを構成してシフトモード時に第１の制御観測フリップフロップからデータが転送され、キャプチャモード時に第２の測定対象フリップフロップからデータを受け取り、かつキャプチャモード時に第２の測定対象フリップフロップにデータを供給する第２の制御観測フリップフロップと、シフトモード時に第１の測定対象フリップフロップにデータを供給する第１の入力信号線と、シフトモード時に第１の制御観測フリップフロップにデータを供給する第２の入力信号線と、シフトモード時に第２の測定対象フリップフロップからデータを出力する第１の出力信号線と、シフトモード時に第２の制御観測フリップフロップからデータを出力する第２の出力信号線とを備え、第１および第２の制御観測フリップフロップ間のタイミングマージンを、第１および第２の測定対象フリップフロップ間のタイミングマージンに比べて大きくしている構成を有していてもよい。
【００８７】
また、第8の発明の半導体集積回路においては、動作エラー回避手段が、例えばクロックの供給経路に設けた遅延制御回路である。
【００８８】
また、第8の発明の半導体集積回路においては、動作エラー回避手段が、電源電圧変更を可能とする回路であってもよい。
【００８９】
また、第8の発明の半導体集積回路においては、動作エラー回避手段が、劣化回生手段であってもよい。
【発明の効果】
【００９０】
第１の発明の半導体集積回路によれば、可変遅延器を設けているので、外部入力端子からフリップフロップのクロック入力端子までのクロック信号の遅延値を変えることができ、製造後にタイミング不良が生じた場合にも、救済を行って正常な動作に戻すことが可能である。
【００９１】
第２の発明の半導体集積回路の救済方法によれば、半導体集積回路が設計時の動作速度で動作することを保証するために設定すべき可変遅延器の遅延値を求め、求めた遅延値を可変遅延器に設定するので、セットアップエラーやホールドエラーなどのタイミング不良が生じた半導体集積回路のタイミングを救済し、正常な動作に戻すことが可能である。
【００９２】
第３の発明の半導体集積回路の救済方法によれば、製造後の半導体集積回路に対して、半導体集積回路の動作速度を設計時の値よりも高くなるように設定すべき可変遅延器の遅延値を求め、求めた遅延値を可変遅延器に設定するので、正常な半導体集積回路であっても、さらに動作性能を向上させることができる。
【００９３】
第４の発明の半導体集積回路によれば、測定対象チェーンを構成する第１および第２の測定対象フリップフロップを設け、制御観測チェーンを構成する第１および第２の制御観測フリップフロップを設け、測定対象チェーンおよび制御観測チェーンへのデータの入出力を行う第１および第２の入力信号線および第１の第２の出力信号線を設け、測定対象チェーンおよび制御観測チェーンを相互に接続したので、測定対象チェーンおよび制御観測チェーン間でデータの受け渡しを行うことにより、動作中のＬＳＩのタイミングエラーを観測することが可能である。
【００９４】
第５の発明の動作エラーの検出方法によれば、制御観測チェーンに異なる値のデータをシフトインし、制御観測チェーンのデータを対応する測定対象チェーンへ転送し、測定対象チェーンを１クロック分シフトし、測定対象チェーンのデータを制御観測チェーンへ転送し、制御観測チェーンのデータをシフトアウトし、制御観測チェーンからシフトアウトされた値と期待値とを照合することにより、動作中のＬＳＩのタイミングエラーを観測することが可能である。
【００９５】
第６の発明の半導体集積回路によれば、測定対象チェーンを構成する第１および第２の測定対象フリップフロップを設け、制御観測チェーンを構成する第１および第２の制御観測フリップフロップを設け、測定対象チェーンおよび制御観測チェーンへのデータの入出力を行う第１および第２の入力信号線および第１の第２の出力信号線を設け、測定対象チェーンおよび制御観測チェーンを相互に接続し、これを動作エラー観測手段とし、さらに、第１および第２のクロックの遅延を制御可能なクロック遅延制御手段を設けたので、測定対象チェーンおよび制御観測チェーン間でデータの受け渡しを行い、第１および第２のクロックの遅延を制御することにより、実際の回路のホールド値を計測することが可能である。
【００９６】
第７の発明のホールド値の観測方法によれば、可変容量セルの容量を変化させることにより、第１および第２のクロックの遅延を容易に制御でき、実際の回路のホールド値を計測することが可能である。その他、請求項３４と同様の効果を奏する。
【００９７】
第８の発明の半導体集積回路によれば、動作エラー検出手段、制御手段および動作エラー回避手段を設けたので、製造後にタイミング不良が生じた場合にも、容易に救済を行うことが可能である。
【００９８】
さらに、本発明によって、タイミング不良の救済が容易になるので、設計時のマージン削減によって高性能設計が容易となる。また、マージンを設計時に削減したときに、それによって出現したエラーは本発明によって救済が可能となる。
【発明を実施するための最良の形態】
【００９９】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【０１００】
（実施の形態１）
（実施の形態１）；請求項１，２，３，４，５，６，８に対応
図１は、本発明の実施の形態１に係わる半導体集積回路を示す回路図である。図１において、１は半導体集積回路、ＶＤ１〜ＶＤ４は可変遅延器、ＣＲ１〜ＣＲ４はそれぞれ可変遅延器ＶＤ１〜可変遅延器ＶＤ４の遅延値を制御する４ビットの制御信号、ＣＴ１〜ＣＴ４は可変遅延器ＶＤ１〜ＶＤ４からそれぞれ出力されクロックツリーを形成しているクロック、ＦＦ１〜ＦＦ４はクロックＣＴ１〜ＣＴ４がそれぞれ入力されることによってデータの転送、保持等を行うフリップフロップを示す。
【０１０１】
可変遅延器ＶＤ１〜ＶＤ４はそれぞれ４ビットの制御信号ＣＲ１〜ＣＲ４によって０ｎｓ〜１．５ｎｓの範囲で、クロックに対して、０．１ｎｓずつ１６段階の遅延値付加ができる。
【０１０２】
図２は、本発明の実施の形態１に係わる半導体集積回路の救済方法を示すフローチャートである。図２において、２１は操作の開始を示し、２２は半導体集積回路を所期のタイミングで動作させるために必要な可変遅延器の遅延値測定処理を示し、２３は可変遅延器に所望の遅延値を設定する遅延値設定処理を示し、２４は操作の終了を示す。
【０１０３】
図３は、図２における遅延値測定処理２２の一実現例を示すフローチャートである。図３において、３１はディレイテストパターンのキャプチャクロックレート(キャプチャクロックの周期)を初期値に設定する操作を示し、３２はテストを実行しテストがフェイルしたか否かを判定する操作を示し、３３はキャプチャクロックレートを０．１ｎｓだけ増加させる操作を示し、３４はテストがパスした時点でのキャプチャクロックレートの増加値をセットアップエラー救済可能最小値と決定する操作を示す。
【０１０４】
上記のテストには、例えば、スキャンを使用してキャプチャ動作時に２クロックを使った一般的なディレイテストがある。このテストを実行するには、フリップフロップＦＦ１〜ＦＦ４に図示していないが、スキャンチェーンが設けられていることが必要である。
別のテストの例としては、テスタを使ってテストパターンを適用するものも考えられる。
【０１０５】
図４は、図２における遅延値測定処理２２の別の一実現例を示すフローチャートである。図４において、４１は例えば、制御信号ＣＲ３を初期値に設定する操作を示し、４２はテストを実行し、テストがフェイルしたか否かを判定する操作を示し、４３は制御信号ＣＲ３の値を１だけ増加させる操作を示し、４４はテストがパスした時点での制御信号ＣＲ３の値をセットアップエラー救済可能最小値と決定する操作を示す。なお、操作４３において、既に制御信号ＣＲ３の値が最大値である場合には、救済不能とみなしてすべての操作を終了する。
【０１０６】
図５は、図３の遅延値測定処理で使用するディレイテストパターンの一例を示す波形図である。図中の符号は、図１において該当する符号と同じものを示す。
【０１０７】
ここで、テスト方式について説明する。本実施の形態では、スキャンテスト方式を用いたディレイテストを行うものとして説明する。スキャンテスト方式においては、各フリップフロップの値の書き込みおよび読み出しの操作を行うシフト動作と、通常動作を行うキャプチャ動作の２種類の動作が行われる。縮退故障のテストを行う場合は、キャプチャ動作におけるクロック数は１であるが、ディレイテストの場合、一般にキャプチャ動作において２クロックを使用し、この２クロック間の周波数を早めることでディレイ故障の有無をテストすることが可能となる。この同じ方式を用いて、キャプチャ動作中の２クロック間の周波数を変化させながらテストの  パス／フェイルを観測することによって、回路がどの周波数で動作可能かを測定することができる。また、ホールドエラーは周波数の値に依存せずテストすることができる。
【０１０８】
なお、本実施の形態では、テスト方式の一例としてディレイテストを取り上げて説明するが、一般的な機能テストなど他のテスト方式であってもよい。
【０１０９】
本実施の形態では、半導体集積回路１の製造検査時または出荷後に、フリップフロップＦＦ２→フリップフロップＦＦ３のパスにおいて、セットアップエラーによるタイミング不良の存在が判明した場合の救済方法を、以下、図１〜図５を用いて説明する。
【０１１０】
なお、本実施の形態における半導体集積回路１の実際のセットアップエラー量は０．４５ｎｓであるとする。
【０１１１】
フリップフロップＦＦ２→フリップフロップＦＦ３のパスにおいてセットアップエラーが存在している場合、それを救済するためには、
［１］後段フリップフロップであるフリップフロップＦＦ３のクロックＣＴ３をセットアップエラー量以上の値遅らせるか、
［２］前段フリップフロップであるフリップフロップＦＦ２のクロックＣＴ２をセットアップエラー量以上の値早めるか
のいずれかが考えられる。本実施の形態では、［１］を行う方法について説明する。
【０１１２】
まず、図２に示すように、操作２１で救済操作を開始し、つぎに遅延値測定処理２２を実行する。
【０１１３】
遅延値測定処理２２では、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのセットアップエラー救済可能最小値を測定するために、図５に示すような一般的なディレイテストパターンを用いて、テスタ上でキャプチャ動作の２クロックのクロックレート（クロックの間隔）を変化させながら、テストのパス／フェイルを判定する。
【０１１４】
具体的には、図３に示すように、まず操作３１において、キャプチャ動作の２クロックのクロックレートを、半導体集積回路１の本来の動作仕様で定められた値（初期値）に設定する。ここでは、その値を１０ｎｓとする。
【０１１５】
つぎに操作３２で、テストがフェイルしているか否かを調べる。ここではフェイルしていたとする。
【０１１６】
つぎに操作３３では、テスタ上でキャプチャ動作の２クロックのクロックレートを０．１ｎｓ増加させ、１０．１ｎｓとする。再び操作３２を行い、まだテストはフェイルしていたとする。
【０１１７】
さらに操作３３で、テスタ上でキャプチャ動作の２クロックのクロックレートを０．１ｎｓ増加させ、１０．２ｎｓとして、再び操作３２を行う。
【０１１８】
この繰返しを行い、キャプチャ動作の２クロックのクロックレートが１０．５ｎｓのときにテストがパスしたとする。
【０１１９】
引き続いて操作３４では、セットアップエラー救済可能最小値をテストがパスしたときの１０．５ｎｓと初期値の１０ｎｓの差である０．５ｎｓと決定する。
【０１２０】
続いて、遅延値設定処理２３では、セットアップエラー救済可能最小値と等しい遅延値０．５ｎｓを可変遅延器ＶＤ３へ設定するために、制御信号ＣＲ３の値を５に設定して、操作２４で操作を終了する。
【０１２１】
また、遅延値測定処理２２の別の実行例としては、図４に示すように、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのセットアップエラー救済可能最小値を測定するために、操作４１において可変遅延器ＶＤ３の制御信号ＣＲ３の値を０へ初期化する。
【０１２２】
つぎに操作４２において、テストを実行し、ここではフェイルしたとする。なお、操作４２のテストで使用するテストパターンは一般的に製造テストで用いられるパターンなどの任意のテストパターンでよいが、最も望ましいのは半導体集積回路１のタイミング不良を検出したテストパターンを使用することである。
【０１２３】
つぎに操作４３において、制御信号ＣＲ３の値を１だけ増加させ、１とする。
【０１２４】
つぎに再び操作４２を実行し、ここでもテストはフェイルしたとする。
【０１２５】
つぎに操作４３において、制御信号ＣＲ３の値を１だけ増加させ、２として、再び操作４２を実行する。
【０１２６】
この繰返しを行い、制御信号ＣＲ３の値が５のときにテストがパスしたとする。
【０１２７】
引き続いて操作４４では、セットアップエラー救済可能最小値をテストがパスしたときの制御信号ＣＲ３の値である５と初期値の０との差である５という数値と決定する。
【０１２８】
続いて遅延値設定処理２３では、操作４４で決定した制御信号ＣＲ３の値５を設定して、操作２４で操作を終了する。
【０１２９】
以上の操作により、セットアップエラーによるタイミングエラーを生じていた半導体集積回路１のセットアップエラーを解消し、本来の動作仕様で動作する状態に半導体集積回路１を救済することが可能である。
【０１３０】
なお、本実施の形態では、可変遅延器ＶＤ３の遅延値をセットアップエラー救済可能最小値と等しい値である０．５ｎｓに設定しているが、０．６ｎｓなどのように、セットアップエラー救済可能最小値より大きな値に設定すると、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのセットアップマージンが大きくなるため、半導体集積回路１の動作仕様を向上させることができるという効果が得られる。
【０１３１】
（実施の形態２）；請求項７，９に対応
図６は、図２における遅延値測定処理２２のさらに別の一実現例を示すフローチャートである。図６において、６１は例えば、制御信号ＣＲ２を初期値に設定する操作を示し、６２は実施の形態１と同様にテストを実行し、テストがフェイルしたか否かを判定する操作を示し、６３は制御信号ＣＲ２の値を１だけ増加させる操作を示し、６４はテストがパスした時点での制御信号ＣＲ２の値をホールドエラー救済可能最小値と決定する操作を示す。なお、操作６３において、既に制御信号ＣＲ２の値が最大値である場合には、救済不能とみなしてすべての操作を終了する。
【０１３２】
本実施の形態では、半導体集積回路１が製造検査時または出荷後に、フリップフロップＦＦ２→フリップフロップＦＦ３のパスにおいて、ホールドエラーによるタイミング不良の存在が判明した場合の救済方法を、以下、図１、図２、図６を用いて説明する。
【０１３３】
なお、本実施の形態における半導体集積回路１の実際のホールドエラー量は０．３５ｎｓであるとする。
【０１３４】
フリップフロップＦＦ２→フリップフロップＦＦ３のパスにおいてホールドエラーが存在している場合、それを救済するためには、
［１］前段フリップフロップであるフリップフロップＦＦ２のクロックＣＴ２をホールドエラー量以上の値遅らせるか、
［２］後段フリップフロップであるフリップフロップＦＦ３のクロックＣＴ３をホールドエラー量以上の値早めるか
のいずれかが考えられる。本実施の形態では、［１］を行う方法について説明する。
【０１３５】
まず、図２に示すように、操作２１で救済操作を開始し、つぎに遅延値測定処理２２を実行する。
【０１３６】
遅延値測定処理２２では、図６に示すように、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのホールドエラー救済可能最小値を測定するために、操作６１において可変遅延器ＶＤ２の制御信号ＣＲ２の値を０へ初期化する。
【０１３７】
つぎに操作６２において、テストを実行し、ここではフェイルしたとする。なお、操作６２のテストで使用するテストパターンは一般的に製造テストで用いられるパターンなどの任意のテストパターンでよいが、最も望ましいのは半導体集積回路１のタイミング不良を検出したテストパターンを使用することである。
【０１３８】
つぎに操作６３において、制御信号ＣＲ２の値を１だけ増加させ、１とする。
【０１３９】
つぎに再び操作６２を実行し、ここでもテストはフェイルしたとする。
【０１４０】
つぎに操作６３において、制御信号ＣＲ２の値を１だけ増加させ、２として、再び操作６２を実行する。
【０１４１】
この繰返しを行い、制御信号ＣＲ２の値が４のときにテストがパスしたとする。
【０１４２】
引き続いて操作６４では、ホールドエラー救済可能最小値をテストがパスしたときの制御信号ＣＲ２の値である４と初期値の０との差である４という数値と決定する。
【０１４３】
続いて遅延値設定処理２３では、操作６４で決定した制御信号ＣＲ２の値４を設定して、操作２４で操作を終了する。
【０１４４】
以上の操作により、ホールドエラーによるタイミングエラーを生じていた半導体集積回路１のホールドエラーを解消し、本来の動作仕様で動作する状態に半導体集積回路１を救済することが可能である。
【０１４５】
なお、本実施の形態では、可変遅延器の制御信号をホールドエラー救済可能最小値と等しい値である０．４ｎｓになるように設定しているが、０．５ｎｓなどのように、ホールドエラー救済可能最小値より大きな値でも同様の効果が得られることは明らかである。
【０１４６】
（実施の形態３）；請求項１１に対応
図７は、図２における遅延値測定処理２２のさらに別の一実現例を示すフローチャートである。図７において、符号４１〜４４は図４の一致する符号と同じものを示している。７５は制御信号ＣＲ３の値を１だけ増加させる操作を示し、７６は実施の形態１と同様にテストを実行し、テストがパスしたか否かを判定する操作を示し、７７はテストがフェイルする直前での制御信号ＣＲ３の値をセットアップエラー救済可能最大値と決定する操作を示す。
【０１４７】
本実施の形態では、半導体集積回路１が製造検査時または出荷後に、フリップフロップＦＦ２→フリップフロップＦＦ３のパスにおいて、セットアップエラーによるタイミング不良の存在が判明した場合の救済方法を、以下、図１、図２、図７を用いて説明する。
【０１４８】
なお、本実施の形態におけるフリップフロップＦＦ２→フリップフロップＦＦ３のパスの実際のセットアップエラー量は０．４５ｎｓ、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのホールドマージンは０．６ｎｓであるとする。
【０１４９】
フリップフロップＦＦ２→フリップフロップＦＦ３のパスのセットアップエラー救済のためには、クロックＣＴ３の遅延量を増加させることが効果的であるが、クロックＣＴ３の遅延量を増加させると、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのホールドエラーの危険という問題が生じる。本実施の形態では、これらを考慮しながらセットアップエラー救済量を決定する方法を説明する。
【０１５０】
図２に示すように、まず操作２１で救済操作を開始し、つぎに遅延値測定処理２２を実行する。
【０１５１】
遅延値測定処理２２では、図７に示すように、さらに操作４１において、可変遅延器ＶＤ３の制御信号ＣＲ３の値を０へ初期化する。
【０１５２】
つぎに操作４２において、テストを実行し、ここではフェイルしたとする。なお、操作４２のテストで使用するテストパターンは一般的に製造テストで用いられるパターンなどの任意のテストパターンでよいが、最も望ましいのは半導体集積回路１のタイミング不良を検出したテストパターンを使用することである。
【０１５３】
つぎに操作４３において、制御信号ＣＲ３の値を１だけ増加させ、１とする。
【０１５４】
つぎに再び操作４２を実行し、ここでもテストはフェイルしたとする。
【０１５５】
つぎに操作４３において、制御信号ＣＲ３の値を１だけ増加させ、２として、再び操作４２を実行する。
【０１５６】
この繰返しを行い、制御信号ＣＲ３の値が５のときにテストがパスしたとする。
【０１５７】
つぎに操作４４では、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのセットアップエラーを救済するための制御信号ＣＲ３の最小値を５と決定する。
【０１５８】
引き続いて操作７５では、制御信号ＣＲ３の値を１だけ増加させ、６とする。
【０１５９】
つぎに、操作７６では再びテストを実行し、ここではパスしたとする。
【０１６０】
再び操作７５では、制御信号ＣＲ３の値を１だけ増加させ、７とし、操作７６で再びテストを行う。
【０１６１】
このとき、可変遅延器ＶＤ３の遅延値は０．７ｎｓとなり、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのホールドマージン０．６ｎｓを超えるため、テストはフェイルする。
【０１６２】
つぎに、操作７７では、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのセットアップエラーを救済するための制御信号ＣＲ３の最大値をテストがフェイルする直前の値である６と決定する。
【０１６３】
続いて遅延値設定処理２３では、操作７７で決定した制御信号ＣＲ３の最小値５から最大値６の間の値である５を設定して、操作２４で操作を終了する。
【０１６４】
以上の操作により、セットアップエラーによるタイミングエラーを生じていた半導体集積回路１のセットアップエラーを解消し、本来の動作仕様で動作する状態に半導体集積回路１を救済することが可能である。
【０１６５】
なお、本実施の形態では、可変遅延器ＶＤ３の制御信号ＣＲ３を、セットアップエラーを救済できる最小値である０．５ｎｓが遅延量として得られるように設定したが、セットアップエラーを救済できる最大値である０．６ｎｓが遅延量として得られるように設定することも可能である。このようにすると、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのセットアップマージンが最大になるため、半導体集積回路１の動作仕様を向上させることができるという効果が得られる。
【０１６６】
（実施の形態４）；請求項１０に対応
図８は、図２における遅延値測定処理２２のさらに別の一実現例を示すフローチャートである。図８において、符号６１〜６４は図６の一致する符号と同じものを示している。８５は制御信号ＣＲ２の値を１だけ増加させる操作を示し、８６は実施の形態１と同様にテストを実行し、テストがパスしたか否かを判定する操作を示し、８７はテストがフェイルする直前での制御信号ＣＲ２の値をホールドエラー救済可能最大値と決定する操作を示す。
【０１６７】
本実施の形態では、半導体集積回路１が製造検査時または出荷後に、フリップフロップＦＦ２→フリップフロップＦＦ３のパスにおいてホールドエラーによるタイミング不良の存在が判明した場合の救済方法を、以下、図１、図２、図８を用いて説明する。
【０１６８】
なお、本実施の形態におけるフリップフロップＦＦ２→フリップフロップＦＦ３のパスの実際のホールドエラー量は０．３５ｎｓ、フリップフロップＦＦ１→フリップフロップＦＦ２のパスのホールドマージンは０．６ｎｓ、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのセットアップマージンは０．５ｎｓ、フリップフロップＦＦ２→フリップフロップＦＦ４のパスのセットアップマージンは０．６ｎｓであるとする。
【０１６９】
フリップフロップＦＦ２→フリップフロップＦＦ３のパスのホールドエラー救済のためには、クロックＣＴ２の遅延量を増加させることが効果的であるが、クロックＣＴ２の遅延量を増加させると、
［１］フリップフロップＦＦ１→フリップフロップＦＦ２のパスのホールドエラーの危険、
［２］フリップフロップＦＦ２→フリップフロップＦＦ３のパスおよびフリップフロップＦＦ２→フリップフロップＦＦ４のパスのセットアップエラーの危険
という問題が生じる。本実施の形態では、これらを考慮しながらホールドエラー救済量を決定する方法を説明する。
【０１７０】
まず、図２に示すように、操作２１で救済操作を開始し、つぎに遅延値測定処理２２を実行する。
【０１７１】
遅延値測定処理２２では、図８に示すように、さらに操作６１において、可変遅延器ＶＤ２の制御信号ＣＲ２の値を０へ初期化する。
【０１７２】
つぎに操作６２において、テストを実行し、ここではフェイルしたとする。なお、操作６２のテストで使用するテストパターンは一般的に製造テストで用いられるパターンなどの任意のテストパターンでよいが、最も望ましいのは半導体集積回路１のタイミング不良を検出したテストパターンを使用することである。
【０１７３】
つぎに操作６３において、制御信号ＣＲ２の値を１だけ増加させ、１とする。
【０１７４】
つぎに再び操作６２を実行し、ここでもテストはフェイルしたとする。
【０１７５】
つぎに操作６３において、制御信号ＣＲ２の値を１だけ増加させ、２として、再び操作６２を実行する。
【０１７６】
この繰返しを行い、制御信号ＣＲ２の値が４のときにテストがパスしたとする。
【０１７７】
つぎに操作６４では、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのホールドエラーを救済するための制御信号ＣＲ２の最小値を４と決定する。
【０１７８】
引き続いて操作８５では、制御信号ＣＲ２の値を１だけ増加させ、５とする。
【０１７９】
つぎに、操作８６では再びテストを実行し、ここではパスしたとする。
【０１８０】
再び操作８５では、制御信号ＣＲ２の値を１だけ増加させ、６とし、操作８６で再びテストを行う。
【０１８１】
このとき、可変遅延器ＶＤ２の遅延値は０．６ｎｓとなり、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのセットアップマージン０．５ｎｓを超えるため、テストはフェイルする。
【０１８２】
つぎに、操作８７では、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのホールドエラーを救済するための制御信号ＣＲ２の最大値をテストがフェイルする直前の値である５と決定する。
【０１８３】
続いて遅延値設定処理２３では、操作８７で決定した制御信号ＣＲ２の最小値４から最大値５の間の値である４を設定して、操作２４で操作を終了する。
【０１８４】
以上の操作により、ホールドエラーによるタイミングエラーを生じていた半導体集積回路１のホールドエラーを解消し、本来の動作仕様で動作する状態に半導体集積回路１を救済することが可能である。
【０１８５】
なお、本実施の形態では、可変遅延器ＶＤ２の制御信号ＣＲ２を、ホールドエラーを救済できる最小値である０．４ｎｓが遅延量として得られるように設定したが、ホールドエラーを救済できる最大値である０．５ｎｓが遅延量として得られるように設定しても同様の効果が得られることは明らかである。
【０１８６】
（実施の形態５）；請求項１２に対応
図９は、本発明の実施の形態５に係わる半導体集積回路の救済方法を示すフローチャートである。図９において、９１は操作の開始を示し、９２は半導体集積回路を所期のタイミングで動作させるために必要な可変遅延器の遅延値の範囲を決定する遅延値範囲決定処理を示し、９３は可変遅延器にセットアップマージンが最大になるように遅延値を設定する遅延値設定処理を示し、９４は操作の終了を示す。
【０１８７】
本実施の形態では、半導体集積回路１のクリティカルパスはフリップフロップＦＦ２→フリップフロップＦＦ３のパスであり、また半導体集積回路１は既に所期の動作仕様は満たしているが、さらに動作仕様を最大化するための救済方法を、以下、図１、図９を用いて説明する。
【０１８８】
フリップフロップＦＦ２→フリップフロップＦＦ３のパスがクリティカルパスの場合、半導体集積回路１の動作仕様を向上させるためには、
［１］後段フリップフロップであるフリップフロップＦＦ３のクロックＣＴ３をセットアップエラー量以上の値遅らせるか、
［２］前段フリップフロップであるフリップフロップＦＦ２のクロックＣＴ２をセットアップエラー量以上の値早めるか
のいずれかが考えられる。本実施の形態では、［１］を行う方法について説明する。
【０１８９】
図９に示すように、まず操作９１で救済操作を開始し、つぎに遅延値範囲決定処理９２を実行する。
【０１９０】
遅延値範囲決定処理９２では、可変遅延器ＶＤ３の遅延値設定範囲は０ｎｓ〜１．５ｎｓであるため、救済のために設定可能な遅延値範囲は０ｎｓ〜１．５ｎｓと決定する。
【０１９１】
つぎに遅延値設定処理９３では、遅延値範囲は０ｎｓ〜１．５ｎｓの最大値である１．５ｎｓを可変遅延器ＶＤ３に設定するため、制御信号ＣＲ３の値を最大値の１５に設定する。
【０１９２】
最後に操作９４ですべての操作を終了する。
【０１９３】
以上の操作により、クリティカルパスであるフリップフロップＦＦ２→フリップフロップＦＦ３のパスのセットアップマージンが１．５ｎｓ改善されるため、動作速度の向上が図れる。
【０１９４】
ここで、この実施の形態の作用効果について説明する。一般的に、製造後、テストにより動作速度不足と判定されたチップは不良品として捨てられるが、本技術により救済して良品化でき、歩留まり向上に寄与する。また、製造後の各チップ毎に本技術により、最高性能へ調整可能で、例えば設計時に１ＧＨｚでも、チップ毎に１．５ＧＨｚ品、１．３ＧＨｚ品など、別々のスペックの製品とすることも可能である。
【０１９５】
（実施の形態６）；請求項１３に対応
図１０は、図９における遅延値範囲決定処理９２の一実現例を示すフローチャートである。図９において、符号４１、４３は図４の一致する符号と同じものを示している。１０２は実施の形態１と同様にテストを実行し、テストがパスしたか否かを判定する操作を示し、１０４はテストがフェイルする直前の制御信号ＣＲ３の値をセットアップ救済可能最大値と決定する操作を示す。
【０１９６】
本実施の形態では、半導体集積回路１のクリティカルパスはフリップフロップＦＦ２→フリップフロップＦＦ３のパスであり、また半導体集積回路１は既に所期の動作仕様は満たしているが、さらに動作仕様を最大化するための救済方法を、以下、図１、図９、図１０を用いて説明する。
【０１９７】
フリップフロップＦＦ２→フリップフロップＦＦ３のパスがクリティカルパスの場合、半導体集積回路１の動作仕様を向上させるためには、クロックＣＴ３の遅延量を増加させることが効果的であるが、クロックＣＴ３の遅延量を増加させると、フリップフロップＦＦ２→フリップフロップＦＦ３のパスのホールドエラーの危険という問題が生じる。本実施の形態では、これらを考慮しながらセットアップエラー救済量を決定する方法を説明する。
【０１９８】
なお、本実施の形態におけるフリップフロップＦＦ２→フリップフロップＦＦ３のパスのホールドマージンは０．６ｎｓであるとする。
【０１９９】
図９に示すように、まず操作９１で救済操作を開始し、つぎに遅延値範囲決定処理９２を実行する。
【０２００】
遅延値範囲決定処理９２では、図１０に示すように、操作４１において可変遅延器ＶＤ３の制御信号ＣＲ３の値を０へ初期化する。
【０２０１】
つぎに操作１０２において、テストを実行し、ここではパスしたとする。なお、操作１０２のテストで使用するテストパターンは一般的に製造テストで用いられるパターンなどの任意のテストパターンでよいが、最も望ましいのは半導体集積回路１のタイミング不良を検出したテストパターンを使用することである。
【０２０２】
つぎに操作４３において、制御信号ＣＲ３の値を１だけ増加させ、１とする。
【０２０３】
つぎに再び操作１０２を実行し、ここでもテストはパスしたとする。
【０２０４】
つぎに操作４３において、制御信号ＣＲ３の値を１だけ増加させ、２として、再び操作１０２を実行する。
【０２０５】
この繰返しを行い、制御信号ＣＲ３の値が７のときにテストがフェイルしたとする。
【０２０６】
引き続いて操作１０４では、救済のために設定可能な遅延値をテストがフェイルする直前の制御信号ＣＲ３の値である６と初期値の０との差である６という数値と決定する。
【０２０７】
続いて遅延値設定処理９３では、操作４４で決定した制御信号ＣＲ３の値６を設定して、操作９４で操作を終了する。
【０２０８】
以上の操作により、クリティカルパスであるフリップフロップＦＦ２→フリップフロップＦＦ３のパスのセットアップマージンが０．６ｎｓ改善されるため、フリップフロップＦＦ２→フリップフロップＦＦ３の間のホールドエラーを回避しながら、動作速度の向上が図れる。
【０２０９】
ここで、遅延値について説明する。１６ビットの信号（０〜１５）が制御信号の値であり、それによって遅延値が、０，０．１μｓ，０．２μｓ，…，１．５μｓと変化する。
【０２１０】
（実施の形態７）；請求項１４，１５，１６，１８，２０，２３に対応
図１１は、本発明の実施の形態７に係わる半導体集積回路を示す回路図である。図中の図１と一致する符号は図１と同じものを示す。図１１において、１１１は半導体集積回路、１１２は半導体集積回路１１１の中の部分回路、１１３は乱数発生器であるＬＦＳＲ（Linear Feedback Shift Register）１１３ａと信号圧縮機であるＭＩＳＲ（Multiple  Input  Signature  Register）１１３ｂとを備えた組込み自己検査器、１１４は組込み自己エラー測定器、１１５は組込み自己エラー測定器１１４への開始信号を外部から入力する開始信号入力端子を示す。
【０２１１】
図１４は、本発明の実施の形態７に係わる半導体集積回路の救済方法を示すフローチャートである。図１４において、１４１は組込み自己エラー測定器への開始信号を印加する操作を示し、１４２は組込み自己エラー測定器の動作終了まで待機する操作を示し、１４３は検査がパスした際の制御信号の値を制御信号へ設定する操作を示し、１４４は操作終了を示す。
【０２１２】
以下、図１１、図１４を用いて本実施の形態を説明する。
【０２１３】
図１４に示すように、まず操作１４１において、開始信号入力端子１１５から開始信号が印加されると、操作１４２において操作を待機している間、組込み自己エラー測定器１１４は動作を開始し、可変遅延器ＶＤ１〜ＶＤ４に対して制御信号ＣＲ１〜ＣＲ４として、０〜１５の値を順次カウントアップしながら与える。１つの制御信号に対して１つの値を与えるごとに、組込み自己検査器１１３へ検査開始信号を与える。
【０２１４】
ここで、４台の可変遅延器ＶＤ１〜ＶＤ４への制御信号ＣＲ１〜ＣＲ４（値０〜１５）の与え方について説明する。まず、可変遅延器ＶＤ１に対して制御信号ＣＲ１を０から順にカウントアップする。つぎに、制御信号ＣＲ１を０に戻し、可変遅延器ＶＤ２に対して制御信号ＣＲ２を０から順にカウントアップする。以下同様に、可変遅延器ＶＤ３，ＶＤ４について同じ動作を行う。ただし、検査結果がパスした時点で上記の操作は終了する。
【０２１５】
組込み自己検査器１１３は組込み自己エラー測定器１１４からの検査開始信号を受けると、ＬＦＳＲ１１３ａから乱数を発生して部分回路１１２へ印加し、部分回路１１２からの出力信号をＭＩＳＲ１１３ｂで信号圧縮し、所定時刻後に検査を終了して検査結果を組込み自己エラー測定器１１４へ返す。
【０２１６】
組込み自己エラー測定器１１４は、組込み自己検査器１１３から返された検査結果がフェイルであれば、引き続き制御信号の値をカウントアップするが、もし検査結果がパスであれば、動作を終了する。
【０２１７】
つぎに操作１４３では、組込み自己検査器１１３が動作を終了した時点での、制御信号の値を制御信号ＣＲ１〜ＣＲ４として可変遅延器ＶＤ１〜ＶＤ４に設定する。
【０２１８】
ここで、制御信号ＣＲ１〜ＣＲ４の設定の仕方について説明する。図示していない外部端子の値設定により、制御信号ＣＲ１〜ＣＲ４の値を固定する。単純な方法として、６端子を用いて、うち２端子は制御信号ＣＲ１〜ＣＲ４の選択に用い、残りの４端子で、選択された制御信号ＣＲ１〜ＣＲ４の何れか一つの４ビットの値を固定する。
【０２１９】
なお、制御信号ＣＲ１〜ＣＲ４の値固定用に回路内部にレジスタなどの記憶素子を設ける構成でもよい。
【０２２０】
また、可変遅延器ＶＤ１〜ＶＤ４の制御信号ＣＲ１〜ＣＲ４は、エラー測定および検査中は外部端子から制御され、操作終了したら制御信号ＣＲ１〜ＣＲ４は上記の通り、そのまま外部端子で固定されるか、または内部レジスタで固定される。
【０２２１】
最後に操作１４４で操作をすべて終了する。
【０２２２】
以上の操作により、低機能のテスタもしくは簡易な治具によって、半導体集積回路１１１の救済を行うことができる。
【０２２３】
（実施の形態８）；請求項１９，２０，２４に対応
図１２は、本発明の実施の形態８に係わる半導体集積回路を示す回路図である。図中の図１、図１１と一致する符号は図１、図１１と同じものを示す。図１２において、１１６は組込み自己救済器を示す。１１８はセレクタである。
【０２２４】
図１５は、本発明の実施の形態８に係わる半導体集積回路の救済方法を示すフローチャートである。図１５において、１５１は半導体集積回路１１１の不良を確認する操作を示し、１５２は組込み自己エラー測定器１１４および組込み自己救済器１１６の動作開始信号を印加する操作を示し、１５３は組込み自己エラー測定器１１４および組込み自己救済器１１６の動作終了まで待機する操作を示し、１５４は操作終了を示す。
【０２２５】
以下、図１２、図１５を用いて本実施の形態を説明する。
【０２２６】
まず操作１５１では、ユーザの使用条件での不具合を確認するなどの操作により半導体集積回路１１１の動作不良の存在を確認する。
【０２２７】
つぎに操作１５２では、組込み自己エラー測定器１１４および組込み自己救済器１１６に対して開始信号を印加する。
【０２２８】
つぎに操作１５３において、操作を待機している間、組込み自己エラー測定器１１４および組込み自己救済器１１６は動作を開始し、組込み自己エラー測定器１１４は可変遅延器ＶＤ１〜ＶＤ４に対して制御信号ＣＲ１〜ＣＲ４として、０〜１５の値を順次カウントアップしながら与える。このとき、組込み自己エラー測定器１１４は、１つの制御信号に対して１つの値を与えるごとに、組込み自己検査器１１３へ検査開始信号を与える。
【０２２９】
ここで、４台の可変遅延器ＶＤ１〜ＶＤ４への制御信号ＣＲ１〜ＣＲ４（値０〜１５）の与え方について説明する。まず、可変遅延器ＶＤ１に対して制御信号ＣＲ１を０から順にカウントアップする。つぎに、制御信号ＣＲ１を０に戻し、可変遅延器ＶＤ２に対して制御信号ＣＲ２を０から順にカウントアップする。以下同様に、可変遅延器ＶＤ３，ＶＤ４について同じ動作を行う。ただし、検査結果がパスした時点で上記の操作は終了する。
【０２３０】
組込み自己検査器１１３は組込み自己エラー測定器１１４からの検査開始信号を受けると、ＬＦＳＲ１１３ａから乱数を発生して部分回路１１２へ印加し、部分回路１１２からの出力信号をＭＩＳＲ１１３ｂで信号圧縮し、所定時刻後に検査を終了して検査結果を組込み自己エラー測定器１１４へ返す。
【０２３１】
組込み自己エラー測定器１１４は、組込み自己検査器１１３から返された検査結果がフェイルであれば、引き続き制御信号の値をカウントアップするが、もし検査結果がパスであれば、動作を終了する。
【０２３２】
また組込み自己救済器１１６は、このときの各制御信号の値を制御信号ＣＲ１〜ＣＲ４として可変遅延器ＶＤ１〜ＶＤ４に設定して、動作を終了する。最後に操作１５４で操作をすべて終了する。
【０２３３】
ここで、制御信号ＣＲ１〜ＣＲ４の設定の仕方について説明する。組込み自己救済器１１６は、レジスタまたは不揮発性メモリのような記憶手段を備えていて、図１１の外部端子での値制御と異なって、制御信号ＣＲ１〜ＣＲ４の値を内部で保持する。エラー測定／検査の操作が終了すると、終了した時点の制御信号ＣＲ１〜ＣＲ４の値が上記記憶手段に保持されて、この値が固定値として制御信号ＣＲ１〜ＣＲ４へ設定される。
【０２３４】
以上の操作により、半導体集積回路１１１を出荷後、経年劣化等でユーザの使用条件において動作不良が生じた場合でも、低機能のテスタもしくは簡易な治具によって、半導体集積回路の救済を行うことができる。
【０２３５】
（実施の形態９）；請求項２１，２２に対応
図１３は、本発明の実施の形態９に係わる半導体集積回路を示す回路図である。図中の図１、図１１、図１２と一致する符号は図１、図１１、図１２と同じものを示す。図１３において、１１７はタイマを示す。
【０２３６】
以下、図１３を用いて本実施の形態を説明する。
【０２３７】
タイマ１１７は所定時間毎（例えば２４時間毎など）に組込み自己エラー測定器１１４および組込み自己救済器１１６へ対して開始信号を印加する。組込み自己エラー測定器１１４および組込み自己救済器１１６は動作を開始し、組込み自己エラー測定器１１４は可変遅延器ＶＤ１〜ＶＤ４に対して制御信号ＣＲ１〜ＣＲ４として、０〜１５の値を順次カウントアップしながら与える。このとき、組込み自己エラー測定器１１４は、１つの制御信号に対して１つの値を与えるごとに、組込み自己検査器１１３へ検査開始信号を与える。
【０２３８】
組込み自己検査器１１３は組込み自己エラー測定器１１４からの検査開始信号を受けると、ＬＦＳＲ１１３ａから乱数を発生して部分回路１１２へ印加し、部分回路１１２からの出力信号をＭＩＳＲ１１３ｂで信号圧縮し、所定時刻後に検査を終了して検査結果を組込み自己エラー測定器１１４へ返す。
【０２３９】
組込み自己エラー測定器１１４は、組込み自己検査器１１３から返された検査結果がフェイルであれば、引き続き制御信号の値をカウントアップするが、もし検査結果がパスであれば、動作を終了する。
【０２４０】
また組込み自己救済器１１６は、このときの各制御信号の値を制御信号ＣＲ１〜ＣＲ４として可変遅延器ＶＤ１〜ＶＤ４に設定して、動作を終了する。
【０２４１】
以上の機能により、半導体集積回路１１１は出荷後、たとえ経年劣化等でユーザの使用条件において動作不良が生じた場合でも、一定時間毎に自動的に自己救済するため、メンテナンスなしに長期間の動作保証が行える。
【０２４２】
なお、タイマ１１７の代わりにカウンタ等、時間を計測する他の任意の手段を用いても同等の効果を得られることは明らかである。
【０２４３】
（実施の形態１０）；請求項２９，３０に対応
図１６は、本発明の実施の形態１０に係わる半導体集積回路を示す回路図である。
【０２４４】
図１６において、Ｃ１００１はスキャンフリップフロップからなる第１の測定対象フリップフロップである。Ｃ１００２はスキャンフリップフロップからなる第１の制御観測フリップフロップである。Ｃ１００３はスキャンフリップフロップからなる第２の測定対象フリップフロップである。Ｃ１００４はスキャンフリップフロップからなる第２の制御観測フリップフロップである。
【０２４５】
Ｃ１００５は遅延素子である。Ｃ１００６は第１の測定対象フリップフロップＣ１００１のスキャン入力に接続され外部に繋がる第１の入力信号線である。Ｃ１００７は第１の制御観測フリップフロップＣ１００２のスキャン入力に接続され外部に繋がる第２の入力信号線である。Ｃ１００８は第２の測定対象フリップフロップＣ１００３のスキャン出力に接続され外部に繋がる第１の出力信号線である。Ｃ１００９は第２の制御観測フリップフロップＣ１００４のスキャン出力に接続され外部に繋がる第２の出力信号線である。Ｃ１０１０は第１のクロックＣＫ１の信号線である。Ｃ１０１１は第２のクロックＣＫ２の信号線である。
【０２４６】
上記の第１および第２の測定対象フリップフロップＣ１００１，Ｃ１００３は測定対象チェーンを構成し、第１および第２の制御観測フリップフロップＣ１００２，Ｃ１００４は制御観測チェーンを構成している。
【０２４７】
図１７は、本発明の実施の形態１０に係わる半導体集積回路の動作エラーの検出方法を示すフローチャートである。
【０２４８】
図１７において、Ｃ２００１は制御観測チェーンに異なる値のデータをシフトインする工程である。
【０２４９】
Ｃ２００２は制御観測チェーンのデータを対応する測定対象チェーンへ転送する工程である。
【０２５０】
Ｃ２００３は測定対象チェーンを１クロック分シフトする工程である。
【０２５１】
Ｃ２００４は測定対象チェーンのデータを、制御観測チェーンへ転送する工程である。
【０２５２】
Ｃ２００５は制御観測チェーンのデータをシフトアウトする工程である。
【０２５３】
Ｃ２００６は制御観測チェーンからシフトアウトされた値と期待値とを照合する工程である。
【０２５４】
本実施の形態では、図１６と図１７を用いて、第１のクロックＣＫ１と第２のクロックＣＫ２の間のホールドエラーが発生した場合について、動作エラー検出方法を説明する。
【０２５５】
ここで、シフト動作とは、上記の各フリップフロップのスキャン出力からスキャン入力へのデータ転送動作である。キャプチャ動作とは、各フリップフロップの通常出力から通常入力へのデータ転送動作である。シフトモードとは、各フリップフロップがシフト動作を行うように設定されたモードである。キャプチャモードとは、各フリップフロップがキャプチャ動作を行うように設定されたモードである。
【０２５６】
まず始めに、制御観測チェーンに異なる値のデータをシフトインする工程を行う。これは、第１および第２の制御観測フリップフロップＣ１００２，Ｃ１００４をシフトモードにして、第２の入力信号線Ｃ１００７より第１の制御観測フリップフロップＣ１００２に１を、第２の制御観測フリップフロップＣ１００４に０をシフトインする工程である。
【０２５７】
これにより、第１の制御観測フリップフロップＣ１００２に１が、第２の制御観測フリップフロップＣ１００４に０が設定される。制御観測チェーンのシフト動作は、仮に、第２のクロックＣＫ２が第１のクロックＣＫ１より遅く動作し、測定対象チェーンが誤動作するような場合であっても、第１および第２の制御観測フリップフロップＣ１００２，Ｃ１００４間のタイミングマージンが、第１および第２の測定対象フリップフロップＣ１００１，Ｃ１００３間のタイミングマージンに比べて大きいので、誤動作する可能性はない。
【０２５８】
第１および第２の制御観測フリップフロップＣ１００２，Ｃ１００４間のタイミングマージンを、第１および第２の測定対象フリップフロップＣ１００１，Ｃ１００３間のタイミングマージンより大きくする量は、見こまれる第２のクロックＣＫ２と第１のクロックＣＫ１の遅延差より大きく設定されているものとする。
【０２５９】
つぎに、制御観測チェーンのデータを対応する測定対象チェーンへ転送する工程を行う。これは、第１および第２の測定対象フリップフロップＣ１００１，Ｃ１００３をキャプチャモードにして、キャプチャ動作を行う。これにより、第１および第２の制御観測フリップフロップＣ１００２，Ｃ１００４のデータが、それぞれ第１および第２の測定対象フリップフロップＣ１００１，Ｃ１００３に移される。
【０２６０】
つぎに、測定対象チェーンを１クロック分シフトする工程を行う。これは、第１の入力信号線Ｃ１００６に０を設定し、第１および第２の測定対象フリップフロップＣ１００１，Ｃ１００３をシフトモードにし、シフト動作を一度行う。この際、前述のシフト動作に対して、第１の測定対象フリップフロップＣ１００１が値をキャプチャできるよう、十分な時間の余裕をもって設定する。これにより、回路が正常に動作している場合は、第１の測定対象フリップフロップＣ１００１のデータが第１の制御観測フリップフロップＣ１００２に転送される。もし回路が、第２のクロックＣＫ２が第１のクロックＣＫ１より遅く動作するような、エラーのある状態にある場合は、第２の測定対象フリップフロップＣ１００３は第１の測定対象フリップフロップＣ１００１のデータ、（今回の場合は１）を受け取る変わりに、第１の入力信号線Ｃ１００６のデータ（今回の場合は０）を受け取ることになる。
【０２６１】
つぎに、測定対象チェーンのデータを、制御観測チェーンへ転送する工程を行う。これは、第１および第２の制御観測フリップフロップＣ１００２，Ｃ１００４をキャプチャモードにし、キャプチャ動作を行う。これにより、第１および第２の測定対象フリップフロップＣ１００１，Ｃ１００３内の値が、第１および第２の制御観測フリップフロップＣ１００２，Ｃ１００４にコピーされる。
【０２６２】
つぎに、制御観測チェーンのデータをシフトアウトする工程を行う。これは、第１および第２の制御観測フリップフロップＣ１００２，Ｃ１００４をシフトモードにして、第２の出力信号線Ｃ１００９よりシフトアウトする。
【０２６３】
最後に、シフトアウトされた値と期待値とを照合する工程を行う。これは、シフトアウトされたデータとその期待値とを照合することにより、動作エラーの有無を検出するというものである。すなわち、第２の制御観測フリップフロップＣ１００４に対応する値が、１の場合は正常、０の場合は動作エラーである。
【０２６４】
以上により動作エラーの有無を検出できる。
【０２６５】
本実施の形態では、スキャンフリップフロップのスキャン出力と通常出力は別に設けたが、同一でもよいし、異なってもよい。
【０２６６】
第１の制御観測フリップフロップＣ１００２から第１の測定対象フリップフロップＣ１００１への信号線は、遅延セルＣ１００５の出力端から接続しても良い。本実施の形態では、第１の測定対象フリップフロップＣ１００１から第１の制御観測フリップフロップＣ１００２への信号線は、直接接続されているが、論理素子や、遅延素子が入っても良い。
【０２６７】
本実施の形態では、第１の制御観測フリップフロップＣ１００２への入力を集積回路外部より行う例を示したが、内部にパターン生成回路、および、制御回路をおいて、内部生成してもよい。
【０２６８】
本実施の形態では、第１の制御観測フリップフロップＣ１００２に１、第２の制御観測フリップフロップＣ１００４に０を入れたが、第１の制御観測フリップフロップＣ１００２に０、第２の制御観測フリップフロップＣ１００４に１を入れてもよい。この場合、第１および第２の測定対象フリップフロップＣ１００１，Ｃ１００３のシフト時の第１の測定対象フリップフロップＣ１００１への入力は、１となる。
【０２６９】
本実施の形態では、第１の測定対象フリップフロップＣ１００１および第１の制御観測フリップフロップＣ１００２と第２の測定対象フリップフロップＣ１００３および第２の制御観測フリップフロップＣ１００４との２段のスキャンチェーンの例を示したが、多数段のスキャンチェーンを構成してもよい。この場合、制御観測チェーンの動作は、測定対象チェーンより多くのタイミングマージンを持つ必要がある。
【０２７０】
本実施の形態では、第１および第２の制御観測フリップフロップＣ１００２，Ｃ１００４のクロックは、第１および第２の測定対象フリップフロップＣ１００１，Ｃ１００３と同じクロック信号線を通って供給されるクロックを入力したが、第１の測定対象フリップフロップＣ１００１と第１の制御観測フリップフロップＣ１００２の間のキャプチャ動作、第２の測定対象フリップフロップＣ１００３と第２の制御観測フリップフロップＣ１００４の間のキャプチャ動作、第１の制御観測フリップフロップＣ１００２と第２の制御観測フリップフロップＣ１００４の間のシフト動作が保証できれば、同一のクロック信号線を通って供給されるクロックでなくてもよい。
【０２７１】
本実施の形態では、第２の制御観測フリップフロップＣ１００３と第２の制御観測フリップフロップＣ１００４の間、第１の測定対象フリップフロップＣ１００１と第１の制御観測フリップフロップＣ１００２の間は直接接続したが、論理素子を介してもよい。
【０２７２】
本実施の形態では、遅延マージンを作るために、第１の制御観測フリップフロップＣ１００２と第２の制御観測フリップフロップＣ１００４との間に遅延素子Ｃ１００５を設けているが、第１の制御観測フリップフロップＣ１００２へのクロック信号到達時刻を、第１の測定対象フリップフロップＣ１００１へのクロック信号到達時刻より遅らすことにより、マージンを設けても良い。
【０２７３】
（実施の形態１１）；請求項２９に対応
上記実施の形態１０では、観測データを第２の出力信号線Ｃ１００９より外部に出力したが、内部で比較を行ってもよい。このような実施の形態を以下に説明する。
【０２７４】
図１８は、本発明の実施の形態１１に係わる半導体集積回路を示す回路図である。以下、図１８を用いて本実施の形態を説明する。図１８において、Ｃ３００１はロードホールド機能付きスキャンフリップフロップからなる第１の測定対象フリップフロップである。Ｃ３００２はロードホールド機能付きスキャンフリップフロップからなる第１の制御観測フリップフロップである。Ｃ３００３はロードホールド機能付きスキャンフリップフロップからなる第２の測定対象フリップフロップである。Ｃ３００４はロードホールド機能付きスキャンフリップフロップからなる第２の制御観測フリップフロップである。
【０２７５】
Ｃ３００５は遅延素子である。Ｃ３００６は第１の測定対象フリップフロップＣ３００１のスキャン入力とパターン生成回路（テスト回路）Ｃ３００８とをつなげる信号線である。Ｃ３００７は第２の制御観測フリップフロップＣ３００２のスキャン入力とパターン生成回路Ｃ３００８とをつなげる信号線である。Ｃ３００９は比較回路である。Ｃ３０１０は第１のクロックＣＫ１の信号線である。Ｃ３０１１は第２のクロックＣＫ２の信号線である。Ｃ３０１２は第１の測定対象フリップフロップＣ３００１および第１の制御観測フリップフロップＣ３００２のホールド端子とパターン生成回路Ｃ３００８とをつなげる信号線である。Ｃ３０１３は第３のクロックＣＫ３の信号線である。
【０２７６】
ロードホールド付きフリップフロップは、キャプチャモード時であれば、ホールドモードにすると、キャプチャ動作を行っても、外部からの値をとりこまず、データの保持を行うことができる。
【０２７７】
第３のクロックＣＫ３は第１のクロックＣＫ１と同期しているものとする。
【０２７８】
図１９は、本発明の実施の形態１１に係わる半導体集積回路の動作エラーの検出方法を示すフローチャートである。図１９において、Ｃ４００１は制御観測チェーンに異なる値のデータをシフトインする工程である。
【０２７９】
Ｃ４００２は制御観測チェーンのデータを、対応する測定対象チェーンへ転送する工程である。
【０２８０】
Ｃ４００３は測定対象チェーンおよび制御観測チェーンを１クロック分シフトする工程である。
【０２８１】
Ｃ４００４は測定対象チェーンのシフト値と制御観測チェーンのシフト値を比較する工程である。
【０２８２】
まず始めに、制御観測チェーンに異なる値のデータをシフトインする工程を行う。これは、第１および第２の制御観測フリップフロップＣ３００２，Ｃ３００４をシフトモードにして、第２の入力信号線Ｃ３００７より第１の制御観測フリップフロップＣ３００２に１、第２の制御観測フリップフロップＣ３００４に０をシフトインする。これにより、第１の制御観測フリップフロップＣ３００２に１、第２の制御観測フリップフロップＣ３００４に０が設定される。
【０２８３】
つぎに、制御観測チェーンのデータを、対応する測定対象チェーンへ転送する工程を行う。これは、第１および第２の測定対象フリップフロップＣ３００１，Ｃ３００３をキャプチャモードにして、キャプチャ動作を行う。これにより、第１および第２の制御観測フリップフロップＣ３００２，Ｃ３００４のデータが、第１および第２の測定対象フリップフロップＣ３００１，Ｃ３００３に移される。この際、第１および第２の制御観測フリップフロップＣ３００２，Ｃ３００４をホールドモードにすることにより、第１および第２の制御観測フリップフロップＣ３００２，Ｃ３００４の内容をそれぞれ、第１および第２の測定対象フリップフロップＣ３００１，Ｃ３００３の値と同じにすることができる。
【０２８４】
つぎに、測定対象チェーンおよび制御観測チェーンを１クロック分シフトする工程を行う。これは、第１の信号入力線Ｃ３００６に０を設定し、第１および第２の測定対象フリップフロップＣ３００１，Ｃ３００３ をシフトモードにし、シフト動作を一度行う。この際、前述のシフト動作に対して、第１の測定対象フリップフロップＣ３００１が値をキャプチャできるように、十分な時間の余裕をもって設定する。これにより、回路が正常に動作している場合は、第１の測定対象フリップフロップＣ３００１のデータが第１の制御観測フリップフロップＣ３００２に転送される。もし回路が、第２のクロックＣＫ２が第１のクロックＣＫ１より遅く動作するような、エラーのある状態にある場合は、第２の測定対象フリップフロップＣ３００３は第１の測定対象フリップフロップＣ３００１のデータ、（今回の場合は１）を受け取るかわりに、第１の信号入力線Ｃ３００６のデータ（今回の場合は０）を受け取ることになる。
【０２８５】
一方、制御観測チェーン間のシフト動作は、第２のクロックＣＫ２が第１のクロックＣＫ１より遅く動作するような場合であっても、第１および第２の制御観測フリップフロップＣ３００２，Ｃ３００４間のタイミングマージンが、第１および第２の測定対象フリップフロップＣ３００１，Ｃ３００３間のタイミングマージンに比べて大きいので、誤動作する可能性はない。
【０２８６】
最後に、測定対象チェーンのシフト値と制御観測チェーンのシフト値とを比較する工程を行う。これは、比較回路Ｃ３００９を用いて、第２の観測対象フリップフロップＣ３００３と第２の制御観測フリップフロップＣ３００４の値が等しいかどうかを比較するものである。等しい場合は、正常動作、等しくない場合は、エラー動作をしていると判定することができる。
【０２８７】
以上により、回路の動作中にクロック遅延の変動に基づく動作エラーの有無を回路内部で検出できる。
【０２８８】
本例では、第３のクロックＣＫ３は、第１のクロックＣＫ１と同期させたが、テスト動作が可能であれば、どのような信号でもよい。
【０２８９】
（実施の形態１２）；請求項３１に対応
図２０は、本発明の実施の形態１２に係わる半導体集積回路を示す回路図である。以下、図２０を用いて本実施の形態を説明する。図２０において、Ｃ５００１はスキャンフリップフロップからなる第１の測定対象フリップフロップである。Ｃ５００２はスキャンフリップフロップからなる第１の制御観測フリップフロップである。Ｃ５００３はスキャンフリップフロップからなる第２の測定対象フリップフロップである。Ｃ５００４はスキャンフリップフロップからなる第２の制御観測フリップフロップである。本例では、第１の制御対象フリップフロップＣ５００１は、第１の制御観測フリップフロップＣ５００２に隣接（近接）して配置している。また、第２の測定対象フリップフロップＣ５００２は、第２の制御観測フリップフロップＣ５００４に隣接（近接）して配置している。
【０２９０】
上記実施の形態１１の構成では、第１の測定対象フリップフロップＣ３００１と第１の制御観測フリップフロップＣ３００２間でデータの転送を行うことが必要である。このため、第１の測定対象フリップフロップＣ３００１と第１の制御観測フリップフロップＣ３００２のクロック入力に時間差が生じると、それらの間のデータ転送を行うことができなくなる。
【０２９１】
しかしながら、本構成によれば、第１の測定対象フリップフロップＣ５００１と第１の制御観測フリップフロップＣ５００２との間のスキューの削減が可能なため、第１の測定対象フリップフロップＣ５００１の遅延が、第１の制御観測フリップフロップＣ５００２のホールド値より大きければ、第１の測定対象フリップフロップＣ５００１と第１の制御観測フリップフロップＣ５００２との間の遅延調整を行うことなく、動作を保証できる。
【０２９２】
（実施の形態１３）；請求項３２に対応
図２１は、本発明の実施の形態１３に係わる半導体集積回路を示す回路図である。以下、図２１を用いて本実施の形態を説明する。図２１において、Ｃ６００１はスキャンフリップフロップからなる第１の測定対象フリップフロップである。Ｃ６００２はスキャンフリップフロップからなる第１の制御観測フリップフロップである。Ｃ６００３はスキャンフリップフロップからなる第２の測定対象フリップフロップである。Ｃ６００４はスキャンフリップフロップからなる第２の制御観測フリップフロップである。
【０２９３】
Ｃ６００５は第１の測定対象フリップフロップＣ６００１のクロック入力端子である。Ｃ６００６は第１の制御観測フリップフロップＣ６００２のクロック入力端子である。Ｃ６００７は第１のクロックＣＫ１のクロック入力端子Ｃ６００５とクロック入力端子Ｃ６００６への分岐点である。Ｃ６００８は第２の測定対象フリップフロップＣ６００３のクロック入力端子である。Ｃ６００９は第２の制御観測フリップフロップＣ６００４のクロック入力端子である。Ｃ６０１０は第２のクロックＣＫ２のクロック入力端子Ｃ６００８とクロック入力端子Ｃ６００９への分岐点である。Ｃ６０１１は第１のクロックＣＫ１の信号線である。Ｃ６０１２は第２のクロックＣＫ２の信号線である。
【０２９４】
本例では、第１のクロックＣＫ１の入力端から第１の測定対象フリップフロップＣ６００１および第１の制御観測フリップフロップＣ６００２までの配線長が等しい状態に配線し、第２のクロックＣＫ２の入力端から第２の測定対象フリップフロップＣ６００３および第２の制御観測フリップフロップＣ６００４までの配線長が等しい状態に配線している。
【０２９５】
これにより、第１の測定対象フリップフロップＣ６００１および第１の制御観測フリップフロップＣ６００２の配置が離れていても、クロックスキューを削減することができる。
【０２９６】
（実施の形態１４）；請求項３３，３４，３５に対応
図２２は、本発明の実施の形態１４に係わる半導体集積回路を示す回路図である。図２２において、Ｃ７００１はスキャンフリップフロップからなる第１の測定対象フリップフロップである。Ｃ７００２はスキャンフリップフロップからなる第１の制御観測フリップフロップである。Ｃ７００３はスキャンフリップフロップからなる第２の測定対象フリップフロップである。Ｃ７００４はスキャンフリップフロップからなる第２の制御観測フリップフロップである。
【０２９７】
Ｃ７００５は遅延素子である。Ｃ７００６は第１の測定対象フリップフロップＣ７００１のスキャン入力に接続し外部に繋がる第１の入力信号線である。Ｃ７００７は第１の制御観測フリップフロップＣ７００２のスキャン入力に接続し外部に繋がる第２の入力信号線である。Ｃ７００８は第２の測定対象フリップフロップＣ７００３のスキャン出力に接続し外部に繋がる第１の出力信号線である。Ｃ７００９は第２の制御観測フリップフロップＣ７００４のスキャン出力に接続し外部に繋がる第２の出力信号線である。
【０２９８】
Ｃ７０１０は第１のクロックＣＫ１の信号線である。Ｃ７０１１は第２のクロックＣＫ２の信号線である。Ｃ７０１２は第１のクロックＣＫ１の遅延制御回路である。Ｃ７０１３は第２のクロックＣＫ２の遅延制御回路である。Ｃ７０１４は遅延制御回路Ｃ７０１２，Ｃ７０１３へのクロック供給信号線である。Ｃ７０１５は遅延制御回路Ｃ７０１２に遅延制御信号を与える遅延制御信号線である。Ｃ７０１６は遅延制御回路Ｃ７０１３に遅延制御信号を与える遅延制御信号線である。
【０２９９】
図２３は、本発明の実施の形態１４に係わる半導体集積回路において、遅延を制御する遅延制御回路の具体例を示す回路図である。図２３において、Ｃ８００１は可変容量である。Ｃ８００２は遅延制御対象の信号線である。Ｃ８００３は例えば１６ビットの遅延制御信号線である。なお、可変容量Ｃ８００１は、例えば、１６個の容量素子とそれらの接続・切り離しを切り換えるスイッチング素子とからなり、スイッチング素子のオンオフを遅延制御信号によって切り換えるようになっている。
【０３００】
図２４は、ホールド値を算出する方法を示すフローチャートである。図２４において、Ｃ９００１は動作エラーが検出されたか判定する工程である。Ｃ９００２は後段のクロックの遅延を増やす工程である。Ｃ９００３はフリップフロップの遅延と遅延増加量からホールド値を算出する工程である。
【０３０１】
以下、図２２、図２３、図２４を用いて本実施の形態を説明する。
【０３０２】
まず始めに、動作エラーが検出されたか判定する工程を行う。これは、例えば、実施の形態１０の方法を用いて行うことができる。もし、エラーが検出されなければ、つぎに、後段のクロックの遅延を増やす工程を行う。これをエラーが検出されるまで行う。
【０３０３】
遅延制御は、たとえば、図２３に示した、可変容量（セル）Ｃ８００１を制御することで行うことができる。本実施の形態では、小さな容量の接続数を増加させることで、容量増加を行い、遅延値の増加を図っている。遅延制御には、異なる遅延回路を選択する方法もあるが、プロセスのでき映えを考えた場合、微小な遅延差を制御することは難しい。本回路を用いれば、容量を増やせば、必ず相対遅延値を増加させることができる。増加遅延値は、例えば増加前後のシミュレーションを行うことにより求めることができるし、実際に同様の回路を作成して、遅延値を求めても良い。
【０３０４】
上記工程でエラーが検出されれば、ホールド値を算出する工程を行う。ホールド値は、第１の測定対象フリップフロップＣ７００１の遅延値と増加遅延値の差より求めることができる。
【０３０５】
以上の方法で、第１の制御観測フリップフロップＣ７００２のホールド値を求めることができる。
【０３０６】
なお、遅延調整を行わない場合の、クロック供給信号線Ｃ７０１４における第１の測定対象フリップフロップＣ７００１と第２の測定対象フリップフロップＣ７００３間のスキュー値が分かっている場合には、その値を加味してもよい。
【０３０７】
（実施の形態１５）；請求項３６，３７，３８に対応
図２５は、本発明の実施の形態１５に係わる半導体集積回路を示す回路図である。図２５において、Ｃ１０００１は動作エラーもしくはその直前の状態を検出する動作エラー検出手段、Ｃ１０００２は制御手段、Ｃ１０００３は動作エラーを回避するエラー回避手段である。
【０３０８】
図２６は、本発明の実施の形態１６に係わる半導体集積回路の実施の形態であり、図２５の動作エラー検出手段Ｃ１０００１の具体例を示すものである。図２６において、Ｃ１１００１は実施の形態１１で示したエラー観測回路であり、動作エラー検出手段に相当する。Ｃ１１００２は制御手段である。Ｃ１１００３はエラー回避手段である。Ｃ１１００４は観測対象回路である。
【０３０９】
Ｃ１１００５は第１のクロックＣＫ１の信号線である。Ｃ１１００６は第２のクロックＣＫ２の信号線である。Ｃ１１００７はスキャンフリップフロップからなる第１の測定対象フリップフロップである。Ｃ１１００８はスキャンフリップフロップからなる第２の測定対象フリップフロップである。Ｃ１１００９はスキャンフリップフロップからなる第１の制御観測フリップフロップである。Ｃ１１０１０はスキャンフリップフロップからなる第２の制御観測フリップフロップでける。Ｃ１１０１１は比較回路である。Ｃ１１０１２はパターン生成回路（テスト制御回路）である。
【０３１０】
図２７は、本発明の実施の形態１５に係わる半導体集積回路の実施の形態であり、図２６の観測対象回路Ｃ１１００４の具体例を示すものである。図２７において、Ｃ１２００１は動作エラー検出手段である。Ｃ１２００２は制御手段である。Ｃ１２００３は第１のクロックＣＫ１の信号線である。Ｃ１２００４は第１のクロックＣＫ１の遅延を制御する遅延制御回路である。Ｃ１２００５は第２のクロックＣＫ２の信号線である。Ｃ１２００６は第２のクロックＣＫ２の遅延を制御する遅延制御回路である。Ｃ１２００７は観測対象回路である。
【０３１１】
以下、図２５、図２６、図２７、を用いて本実施の形態を説明する。
【０３１２】
まず、図２５を用いて、動作の流れを説明する。
【０３１３】
動作エラー検出手段Ｃ１０００１は、回路の動作エラーを検出し、何らかの原因により、期待しない動作を起こしたことを検出する手段である。制御手段Ｃ１０００２は、動作エラー検出手段Ｃ１０００１による動作エラーの検出に基づき、エラー回避手段Ｃ１０００３に働きかけを行う。エラー回避手段Ｃ１０００３は、制御手段Ｃ１０００２による制御に基づき、エラー回避動作を行う。
【０３１４】
つぎに、具体的な実現例を図２６を用いて説明する。図２６は、動作エラー検出手段として、図１８の回路を用いた実現例である。
【０３１５】
Ｃ１１００１は、実施の形態１１で示したエラー観測回路であり、観測対象回路Ｃ１１００４の動作エラーを検出する。すなわち、観測対象回路Ｃ１１００４中の信号線Ｃ１１００５上の第１のクロックＣＫ１と信号線Ｃ１１００６上の第２のクロックＣＫ２のタイミングを観測し、規定された値、すなわち、エラー観測回路Ｃ１１００１中の第１の測定対象フリップフロップＣ１１００７から第２の測定対象フリップフロップＣ１１００８へのデータ転送ができなくなる値を超えた時点でエラーとして、検出する。
【０３１６】
その結果に基づき、制御手段Ｃ１１００２は、エラー回避手段Ｃ１１００３に働きかけ、エラー回避動作を行う。
【０３１７】
なお、本実施の形態では、動作エラー検出手段を一つのみ配置したが、複数配置して良い。
【０３１８】
つぎに、具体的な実現例を図２７を用いて説明する。図２７は、動作エラーを回避するエラー回避手段が、クロックの信号線に接続された遅延制御回路である実現例である。
【０３１９】
観測対象回路Ｃ１２００７中の、信号線Ｃ１２００３上の第１のクロックＣＫ１と信号線１２００５上の第２のクロックＣＫ２とに、経時劣化によりスキューを発生したとする。動作エラー検出手段Ｃ１２００１は、エラーを検出し、制御手段Ｃ１２００２は、第１のクロックＣＫ１の遅延制御回路Ｃ１２００４と、第２のクロックＣＫ２の遅延制御回路Ｃ１２００６との遅延制御を行う。例えば、信号線Ｃ１２００３上の第１のクロックＣＫ１が遅れる状況を検出した場合は、第１のクロックＣＫ１の遅延制御回路Ｃ１２００４の遅延を早める。
【０３２０】
以上の構成により、遅延変動した場合も、回路の動作を保ちつづけることができる。
【０３２１】
（実施の形態１６）；請求項３９に対応
図２８は、本発明の実施の形態１６に係わる半導体集積回路を示す回路図であり、図２８の構成における電圧制御回路をさらに具体化したものである。図２８において、Ｃ１３００１は動作エラー検出手段である。Ｃ１３００２は制御手段である。Ｃ１３００３は電圧制御回路である。
【０３２２】
図２９は、本発明の実施の形態１６に係わる半導体集積回路の実施の形態である。Ｃ１４００１は制御対象回路である。Ｃ１４００２は動作エラー検出手段である。Ｃ１４００３は制御手段である。Ｃ１４００４はＤＣ／ＤＣコンバータである。Ｃ１４００５はＤＣ／ＤＣコンバータで生成された第１の電源系統の給電線である。Ｃ１４００６はＤＣ／ＤＣコンバータで生成された第２の電源系統の給電線である。Ｃ１４００７は外部電源である。
【０３２３】
クロックの遅延を制御するセルの遅延値は、電圧により変動する。一般に電圧が上がれば、遅延は小さくなる。したがって、動作エラーの原因が遅延の変動に起因するスキューの増加の場合、変動したクロックの電圧を上げることにより、エラーを回避できる。
【０３２４】
まず、図２８を用いて、動作の流れを説明する。回路の動作エラーを検出する動作エラー検出手段Ｃ１３００１は、何らかの原因により、期待しない動作を起こしたことを検出する。制御手段Ｃ１３００２は、動作エラー検出手段Ｃ１３００１による動作エラーの検出に基づき、電圧制御回路Ｃ１３００３に働きかける。電圧制御回路Ｃ１３００３は、制御手段Ｃ１３００２の制御に基づき、電圧を変動させ（例えば、上昇させ）、エラー回避動作を行う。
【０３２５】
つぎに図２９を用いて、実施の形態を説明する。ＤＣ／ＤＣコンバータＣ１４００４は、外部電源Ｃ１４００７から与えられた電圧を変換して、第１の電源系統の給電線Ｃ１４００５と第２の電源系統の給電線Ｃ１４００６の電圧を任意に変更できるものである。
【０３２６】
まず、動作エラー検出手段Ｃ１４００２が、制御対象回路Ｃ１４００１の動作エラーを検出する。つぎに、動作エラー検出手段Ｃ１４００２によるエラー検出を受け、制御手段Ｃ１４００３は、ＤＣ／ＤＣコンバータＣ１４００４に働きかけ、ＤＣ／ＤＣコンバータＣ１４００４に繋がる第１の電源系統の給電線Ｃ１４００５の電圧を制御する。
【０３２７】
電圧変動のパターンは、動作エラー検出内容により、あらかじめ設定することができる。例えば、経時劣化により一部のクロック系統の遅延値の増加が見込まれる場合は、電圧を上げることにより、回避可能である。この場合、電圧を上昇させた後は、回路の消費電力が上がる。
【０３２８】
以上の構成により、遅延の変動を押さえ、回路の動作を維持することができる。
【０３２９】
本実施の形態では、第１の電源系統の電源を制御対象回路Ｃ１４００１全体の電源としたが、遅延劣化を起こしたクロックセルだけにつながるものでもよいし、クロック全体の電源のみに繋がるものでも良い。この場合、回路の消費電力の増加は、押さえられる。
【０３３０】
本実施の形態では、電源系統を２種類に分けたが、制御手段の動作に影響がなければ、１系統でもよい。
【０３３１】
（実施の形態１７）；請求項４０に対応
図３０は、本発明の実施の形態１７に係わる半導体集積回路を示す回路図である。図３０において、Ｃ１５００１は動作エラー検出手段である。Ｃ１５００２は制御手段である。Ｃ１５００３は劣化回生手段である。
【０３３２】
図３１は、本発明の実施の形態１７に係わる半導体集積回路の実施の形態であり、劣化回生手段を具体化したものである。図３１において、Ｃ１６００１は制御対象回路である。Ｃ１６００２は動作エラー検出手段である。Ｃ１６００３は制御手段である。Ｃ１６００４は熱源装置である。Ｃ１６００５は第１の電源系統の給電線である。Ｃ１６００６は第２の電源系統の給電線である。Ｃ１６００７は第３の電源系統の給電線である。Ｃ１６００８はＤＣ／ＤＣコンバータである。
【０３３３】
動作劣化の原因として、ＢＴ劣化（Negative Bias Temperature Instabilities）が挙げられる。ＢＴ遅延劣化は、回路動作に従い、遅延値が大きくなる挙動を示す。一方、ＢＴ遅延劣化は、温度を一定以上に上げて、電圧をかけずに一定時間保持することにより、劣化回生することができる。したがって、回路の劣化を回生すれば、回路は正しい動作を継続することができる。
【０３３４】
まず、図３０を用いて、動作の流れを説明する。制御対象回路の動作エラーを検出する動作エラー手段Ｃ１５００１は、何らかの原因により期待しない動作を起こしたことを検出する。制御手段Ｃ１５００２は、動作エラー手段Ｃ１５００１による動作エラーの検出に基づき、劣化回生手段Ｃ１５００３に働きかける。劣化回生手段Ｃ１５００３は、制御手段Ｃ１５００２の制御に基づき、制御対象回路の劣化を回生させる。制御対象回路は、劣化の回生後、通常動作を行うことができる。
【０３３５】
つぎに図３１を用いて、実施の形態を説明する。動作エラー検出手段Ｃ１６００２が制御対象回路Ｃ１６００１のエラーを検出すると、制御手段Ｃ１６００３は、回生モードに入る。回生動作中は、制御対象回路Ｃ１６００１のみ電源がオフとなる。
【０３３６】
同時に、熱源装置Ｃ１６００４により、ＬＳＩ自身の温度が高められる。制御手段Ｃ１６００３は、予め定められた時間の後、熱源装置Ｃ１６００４を調整し、温度を通常の温度にもどし、制御対象回路Ｃ１６００１の電源を復帰させる。
【０３３７】
以上の構成を用いれば、過剰な動作マージンをもつことなく設計を行うことができる。
【０３３８】
なお、実施の形態では、熱源装置Ｃ１６００４をＬＳＩ内部においたが、外部に置いてもよい。また、電源を内部に置き制御したが、外部で制御してもよい。また、電源系統数は動作に影響がなければ、任意である。
【産業上の利用可能性】
【０３３９】
本発明にかかる半導体集積回路は、製造後にタイミング不良が生じた場合にも、救済を行って正常な動作に戻すことが可能であるという効果を有し、半導体集積回路設計等において有用である。
【図面の簡単な説明】
【０３４０】
【図１】本発明の実施の形態１に係わる半導体集積回路の回路図である。
【図２】本発明の実施の形態１に係わる半導体集積回路の救済方法を示すフローチャートである。
【図３】本発明の実施の形態１に係わる図２のステップ２２の詳細を示すフローチャートである。
【図４】本発明の実施の形態１に係わる図２のステップ２２の詳細を示すフローチャートである。
【図５】本発明の実施の形態１で使用するテストパターンの波形図である。
【図６】本発明の実施の形態２に係わる図２のステップ２２の詳細を示すフローチャートである。
【図７】本発明の実施の形態３に係わる図２のステップ２２の詳細を示すフローチャートである。
【図８】本発明の実施の形態４に係わる図２のステップ２２の詳細を示すフローチャートである。
【図９】本発明の実施の形態５に係わる半導体集積回路の救済方法を示すフローチャートである。
【図１０】本発明の実施の形態６に係わる図９のステップ９２の詳細を示すフローチャートである。
【図１１】本発明の実施の形態７に係わる半導体集積回路の回路図である。
【図１２】本発明の実施の形態８に係わる半導体集積回路の回路図である。
【図１３】本発明の実施の形態９に係わる半導体集積回路の回路図である。
【図１４】本発明の実施の形態７に係わる半導体集積回路の救済方法を示すフローチャートである。
【図１５】本発明の実施の形態８に係わる半導体集積回路の救済方法を示すフローチャートである。
【図１６】本発明の実施の形態１０に係わる半導体集積回路を示す回路図である。
【図１７】本発明の実施の形態１０に係わる半導体集積回路の動作エラーの検出方法を示すフローチャートである。
【図１８】本発明の実施の形態１１に係わる半導体集積回路を示す回路図である。
【図１９】本発明の実施の形態１１に係わる半導体集積回路の動作エラーの検出方法を示すフローチャートである。
【図２０】本発明の実施の形態１２に係わる半導体集積回路を示す回路図である。
【図２１】本発明の実施の形態１３に係わる半導体集積回路を示す回路図である。
【図２２】本発明の実施の形態１４に係わる半導体集積回路を示す回路図である。
【図２３】本発明の実施の形態１４に係わる半導体集積回路の遅延制御回路を示す回路図である。
【図２４】本発明の実施の形態１５に係わるホールド値を算出する方法を示すフローチャートである。
【図２５】本発明の実施の形態１５に係わる半導体集積回路を示す回路図である。
【図２６】本発明の実施の形態１５に係わる半導体集積回路を示す回路図である。
【図２７】本発明の実施の形態１５に係わる半導体集積回路を示す回路図である。
【図２８】本発明の実施の形態１６に係わる半導体集積回路を示す回路図である。
【図２９】本発明の実施の形態１６に係わる半導体集積回路を示す回路図である。
【図３０】本発明の実施の形態１７に係わる半導体集積回路を示す回路図である。
【図３１】本発明の実施の形態１７に係わる半導体集積回路を示す回路図である。
【符号の説明】
【０３４１】
１    半導体集積回路
２２    遅延値測定処理
２３    遅延値設定処理
９２    遅延値範囲測定処理
９３    遅延値設定処理
１１１    半導体集積回路
１１２    部分回路
１１３    組込み自己検査器
１１４    組込み自己エラー量測定器
１１５    開始信号入力端子
１１６    組込み自己救済器
１１７    タイマ
ＶＤ１〜ＶＤ４    可変遅延器
ＣＴ１〜ＣＴ４    クロック
ＦＦ１〜ＦＦ４    フリップフロップ
ＣＲ１〜ＣＲ４    制御信号
Ｃ１００１    第１の測定対象フリップフロップ
Ｃ１００２    第１の制御観測フリップフロップ
Ｃ１００３    第２の測定対象フリップフロップ
Ｃ１００４    第２の制御観測フリップフロップ
Ｃ１００５    遅延素子
Ｃ１００６    第１の入力信号線
Ｃ１００７    第２の入力信号線
Ｃ１００８    第１の出力信号線
Ｃ１００９    第２の出力信号線
Ｃ１０１０    信号線
Ｃ１０１１    信号線
Ｃ３００１    第１の測定対象フリップフロップ
Ｃ３００２    第１の制御観測フリップフロップ
Ｃ３００３    第２の測定対象フリップフロップ
Ｃ３００４    第２の制御観測フリップフロップ
Ｃ３００５    遅延素子
Ｃ３００６    入力信号線
Ｃ３００７    入力信号線
Ｃ３００８    パターン生成回路
Ｃ３００９    比較回路
Ｃ３０１０    信号線
Ｃ３０１１    信号線
Ｃ３０１２    信号線
Ｃ３０１３    信号線
Ｃ５００１    第１の測定対象フリップフロップ
Ｃ５００２    第１の制御観測フリップフロップ
Ｃ５００３    第２の測定対象フリップフロップ
Ｃ５００４    第２の制御観測フリップフロップ
Ｃ６００１    第１の測定対象フリップフロップ
Ｃ６００２    第１の制御観測フリップフロップ
Ｃ６００３    第２の測定対象フリップフロップ
Ｃ６００４    第２の制御観測フリップフロップ
Ｃ６００５    クロック入力端子
Ｃ６００６    クロック入力端子
Ｃ６００７    分岐点
Ｃ６００８    クロック入力端子
Ｃ６００９    クロック入力端子
Ｃ６０１０    分岐点
Ｃ６０１１    信号線
Ｃ６０１２    信号線
Ｃ７００１    第１の測定対象フリップフロップ
Ｃ７００２    第１の制御観測フリップフロップ
Ｃ７００３    第２の測定対象フリップフロップ
Ｃ７００４    第２の制御観測フリップフロップ
Ｃ７００５    遅延素子
Ｃ７００６    第１の入力信号線
Ｃ７００７    第２の入力信号線
Ｃ７００８    第１の出力信号線
Ｃ７００９    第２の出力信号線
Ｃ７０１０    信号線
Ｃ７０１１    信号線
Ｃ７０１２    遅延制御回路
Ｃ７０１３    遅延制御回路
Ｃ７０１４    クロック供給信号線
Ｃ７０１５    遅延制御信号線
Ｃ７０１６    遅延制御信号線
Ｃ８００１    可変容量
Ｃ８００２    信号線
Ｃ８００３    遅延制御信号線
Ｃ１０００１    動作エラー検出手段
Ｃ１０００２    制御手段
Ｃ１０００３    エラー回避手段
Ｃ１１００１    動作エラー観測手段
Ｃ１１００２    制御手段
Ｃ１１００３    エラー回避手段
Ｃ１１００４    観測対象回路
Ｃ１１００５    信号線
Ｃ１１００６    信号線
Ｃ１１００７    第１の測定対象フリップフロップ
Ｃ１１００８    第２の測定対象フリップフロップ
Ｃ１１００９    第１の制御観測フリップフロップ
Ｃ１１０１０    第２の制御観測フリップフロップ
Ｃ１１０１１    比較回路
Ｃ１１０１２    パターン生成回路
Ｃ１２００１    動作エラー検出手段
Ｃ１２００２    制御手段
Ｃ１２００３    信号線
Ｃ１２００４    遅延制御回路
Ｃ１２００５    信号線
Ｃ１２００６    遅延制御回路
Ｃ１２００７    観測対象回路
Ｃ１３００１    動作エラー検出手段
Ｃ１３００２    制御手段
Ｃ１３００３    電圧制御回路
Ｃ１４００１    制御対象回路
Ｃ１４００２    動作エラー検出手段
Ｃ１４００３    制御手段
Ｃ１４００４    ＤＣ／ＤＣコンバータ
Ｃ１４００５    第１の電源系統の給電線
Ｃ１４００６    第２の電源系統の給電線
Ｃ１４００７    外部電源
Ｃ１５００１    動作エラー検出手段
Ｃ１５００２    制御手段
Ｃ１５００３    劣化回生手段
Ｃ１６００１    制御対象回路
Ｃ１６００２    動作エラー検出手段
Ｃ１６００３    制御手段
Ｃ１６００４    熱源装置
Ｃ１６００５    第１の電源系統の給電線
Ｃ１６００６    第２の電源系統の給電線
Ｃ１６００７    第３の電源系統の給電線
Ｃ１６００８    ＤＣ／ＤＣコンバータ
【図１】
2005303189.tif 000003
【図２】
2005303189.tif 000004
【図３】
2005303189.tif 000005
【図４】
2005303189.tif 000006
【図５】
2005303189.tif 000007
【図６】
2005303189.tif 000008
【図７】
2005303189.tif 000009
【図８】
2005303189.tif 000010
【図９】
2005303189.tif 000011
【図１０】
2005303189.tif 000012
【図１１】
2005303189.tif 000013
【図１２】
2005303189.tif 000014
【図１３】
2005303189.tif 000015
【図１４】
2005303189.tif 000016
【図１５】
2005303189.tif 000017
【図１６】
2005303189.tif 000018
【図１７】
2005303189.tif 000019
【図１８】
2005303189.tif 000020
【図１９】
2005303189.tif 000021
【図２０】
2005303189.tif 000022
【図２１】
2005303189.tif 000023
【図２２】
2005303189.tif 000024
【図２３】
2005303189.tif 000025
【図２４】
2005303189.tif 000026
【図２５】
2005303189.tif 000027
【図２６】
2005303189.tif 000028
【図２７】
2005303189.tif 000029
【図２８】
2005303189.tif 000030
【図２９】
2005303189.tif 000031
【図３０】
2005303189.tif 000032
【図３１】
2005303189.tif 000033