(57)【要約】  論理回路が二重化された半導体集積回路において、各論理回路の出力値が一致しているか否かの比較結果を出力する比較回路を備える。各論理回路が備える記憶回路には、第１の周期と第２の周期とを交互に繰り返す信号であり、それぞれの第１の周期の開始が一致し、かつ第２の周期の終了が一致するクロック信号を供給する。これらのクロック信号は、少なくとも一つが第１の周期と第２の周期とが異なる長さであり、少なくとも一つが他のクロック信号と異なる信号パターンとする。
2010013587.tif 000002
【特許請求の範囲】
【請求項１】
所定の演算処理を実行する第１の演算回路、前記第１の演算回路の入力に接続された、第１のクロック信号に同期して入力値を保持して出力する第１の記憶回路、および前記第１の演算回路の出力に接続された、第２のクロック信号に同期して入力値を保持して出力する第２の記憶回路を備えた第１の論理回路と、
前記第１の演算回路と同一の演算処理を実行する第２の演算回路、前記第２の演算回路の入力に接続された、第３のクロック信号に同期して入力値を保持して出力する第３の記憶回路、および前記第２の演算回路の出力に接続された、第４のクロック信号に同期して入力値を保持して出力する第４の記憶回路を備えた第２の論理回路と、
前記第２の記憶回路の出力値と前記第４の記憶回路の出力値とが一致しているか否かの比較結果を出力する第１の比較回路と、
を有し、
前記第１、第２、第３及び第４のクロック信号は、第１の周期と第２の周期とを交互に繰り返す信号であり、それぞれの前記第１の周期の開始が一致し、かつ前記第２の周期の終了が一致し、
前記第１、第２、第３及び第４のクロック信号のうち、少なくとも一つは前記第１の周期と前記第２の周期とが異なる長さであり、少なくとも一つは他のクロック信号と異なる信号パターンである半導体集積回路。
【請求項２】
所定のクロック信号に同期して前記第１の比較回路の出力値を保持して出力する第１の比較記憶回路をさらに有する請求項１記載の半導体集積回路。
【請求項３】
前記第１、２、３または第４のクロック信号を所定の時間だけ遅延させた信号を前記第１の比較記憶回路へクロック信号として供給する遅延回路をさらに有する請求項２記載の半導体集積回路。
【請求項４】
前記第１、２、３または第４のクロック信号を反転させた信号を前記第１の比較記憶回路へクロック信号として供給する反転回路をさらに有する請求項２記載の半導体集積回路。
【請求項５】
前記第１の記憶回路の出力値と前記第３の記憶回路の出力値とが一致しているか否かの比較結果を出力する第２の比較回路をさらに有する請求項１記載の半導体集積回路。
【請求項６】
所定のクロック信号に同期して前記第１の比較回路の出力値を保持して出力する第１の比較記憶回路と、
所定のクロック信号に同期して前記第２の比較回路の出力値を保持して出力する第２の比較記憶回路と、
をさらに有する請求項５記載の半導体集積回路。
【請求項７】
前記第１、２、３または第４のクロック信号を所定の時間だけ遅延させた信号を前記第１の比較記憶回路及び前記第２の比較記憶回路へクロック信号として供給する遅延回路をさらに有する請求項６記載の半導体集積回路。
【請求項８】
前記第１、２、３または第４のクロック信号を反転させた信号を前記第１の比較記憶回路及び前記第２の比較記憶回路へクロック信号として供給する反転回路をさらに有する請求項６記載の半導体集積回路。
【請求項９】
所定の演算処理を実行する複数の第１の演算回路及び複数の前記第１の演算回路と交互に接続される複数の第１の記憶回路を備えた第１の論理回路と、
前記第１の演算回路と同一の演算処理を実行する第２の演算回路及び複数の前記第２の演算回路と交互に接続される複数の第２の記憶回路を備えた第２の論理回路と、
前記第１の記憶回路の出力値と前記第２の記憶回路の出力値とが一致しているか否かの比較結果をそれぞれ出力する複数の比較回路と、
を有し、
複数の前記第１の記憶回路に第１のクロック信号及び第２のクロック信号が交互に供給され、
複数の前記第２の記憶回路に第３のクロック信号及び第４のクロック信号が交互に供給され、
前記第１、第２、第３及び第４のクロック信号は、第１の周期と第２の周期とを交互に繰り返す信号であり、それぞれの前記第１の周期の開始が一致し、かつ前記第２の周期の終了が一致し、
前記第１、第２、第３及び第４のクロック信号のうち、少なくとも一つは前記第１の周期と前記第２の周期とが異なる長さであり、少なくとも一つは他のクロック信号と異なる信号パターンである半導体集積回路。
【請求項１０】
所定のクロック信号に同期して前記比較回路の出力値を保持して出力する複数の第１の比較記憶回路をさらに有する請求項９記載の半導体集積回路。
【請求項１１】
前記第１の比較記憶回路の出力が次段の第１の比較記憶回路の入力と接続されることでスキャンパスが形成された請求項１０記載の半導体集積回路。
【請求項１２】
前記第１、２、３または第４のクロック信号を所定の時間だけ遅延させた信号を前記第１の比較記憶回路へクロック信号として供給する遅延回路をさらに有する請求項１０記載の半導体集積回路。
【請求項１３】
前記第１、２、３または第４のクロック信号を反転させた信号を前記第１の比較記憶回路へクロック信号として供給する反転回路をさらに有する請求項１０記載の半導体集積回路。
【請求項１４】
複数の前記比較回路の出力値のうち、少なくとも一つの出力値が他の出力値と一致しないとき、不一致を示す信号を出力する多入力比較回路を有する請求項９記載の半導体集積回路。
【請求項１５】
前記多入力比較回路の出力値を保持する第２の比較記憶回路をさらに有する請求項１４記載の半導体集積回路。
【請求項１６】
前記第１、２、３または第４のクロック信号を所定の時間だけ遅延させた信号を前記第２の比較記憶回路へクロック信号として供給する遅延回路をさらに有する請求項１５記載の半導体集積回路。
【請求項１７】
前記第１、２、３または第４のクロック信号を反転させた信号を前記第２の比較記憶回路へクロック信号として供給する反転回路をさらに有する請求項１５記載の半導体集積回路。
【請求項１８】
前記第１の比較回路の出力値及び故障診断対象及び故障要因の種類を指定するための情報である故障診断情報が入力される第１の故障判定回路と、
所定のクロック信号に同期して前記第１の故障判定回路の出力値を保持して出力する第１の故障判定記憶回路と、
を有する請求項１記載の半導体集積回路。
【請求項１９】
前記第１、２、３または第４のクロック信号を所定の時間だけ遅延させた信号を前記第１の故障判定記憶回路へクロック信号として供給する遅延回路を有する請求項１８記載の半導体集積回路。
【請求項２０】
前記第１、２、３または第４のクロック信号を反転させた信号を前記第１の故障判定記憶回路へクロック信号として供給する反転回路をさらに有する請求項１８記載の半導体集積回路。
【請求項２１】
前記第１の記憶回路の出力値と前記第３の記憶回路の出力値とが一致しているか否かの比較結果を出力する第２の比較回路と、
前記第２の比較回路の出力値及び故障診断対象及び故障要因の種類を指定するための情報である故障診断情報入力が入力される第２の故障判定回路と、
所定のクロック信号に同期して前記第２の故障判定回路の出力値を保持して出力する第２の故障判定記憶回路と、
をさらに有する請求項１８記載の半導体集積回路。
【請求項２２】
前記１の故障判定回路に前記第２の故障判定記憶回路の出力値が入力される請求項２１記載の半導体集積回路。
【請求項２３】
前記第１の故障判定記憶回路及び第２の故障判定記憶回路の出力値にしたがって、前記第１の演算回路の出力値を前記第２の記憶回路へ出力すると共に前記第２の演算回路の出力値を前記第４の記憶回路へ出力する、前記第１の演算回路の出力値を前記第２の記憶回路及び前記第４の記憶回路へ出力する、または前記第２の演算回路の出力値を前記第２の記憶回路及び前記第４の記憶回路へ出力する選択回路をさらに有する請求項２１記載の半導体集積回路。
【請求項２４】
前記第１、２、３または第４のクロック信号を所定の時間だけ遅延させた信号を前記第１の故障判定記憶回路及び前記第２の故障判定記憶回路へクロック信号として供給する遅延回路を有する請求項２１記載の半導体集積回路。
【請求項２５】
前記第１、２、３または第４のクロック信号を反転させた信号を前記第１の故障判定記憶回路及び前記第２の故障判定記憶回路へクロック信号として供給する反転回路をさらに有する請求項２１記載の半導体集積回路。
【請求項２６】
前記比較回路の出力値及び故障診断対象及び故障要因の種類を指定するための情報である故障診断情報が入力される故障判定回路と、
所定のクロック信号に同期して前記故障判定回路の出力値を保持して出力する故障判定記憶回路と、
をさらに有する請求項９記載の半導体集積回路。
【請求項２７】
前記故障判定記憶回路の出力が次段の故障判定記憶回路の入力と接続されることでスキャンパスが形成された請求項２６記載の半導体集積回路。
【請求項２８】
前記第１、２、３または第４のクロック信号を所定の時間だけ遅延させた信号を前記故障判定記憶回路へクロック信号として供給する遅延回路を有する請求項２６記載の半導体集積回路。
【請求項２９】
前記第１、２、３または第４のクロック信号を反転させた信号を前記故障判定記憶回路へクロック信号として供給する反転回路をさらに有する請求項２６記載の半導体集積回路。
【請求項３０】
前記故障判定回路に次段の故障判定記憶回路の出力値が入力される請求項２６記載の半導体集積回路。
【請求項３１】
前記故障判定記憶回路の出力値にしたがって、前記第１の演算回路の出力値を前記第１の記憶回路へ出力すると共に前記第２の演算回路の出力値を前記第２の記憶回路へ出力する、前記第１の演算回路の出力値を前記第１の記憶回路及び前記第２の記憶回路へ出力する、または前記第２の演算回路の出力値を前記第１の記憶回路及び前記第２の記憶回路へ出力する選択回路をさらに有する請求項２６記載の半導体集積回路。
【請求項３２】
前記第１、２、３または第４のクロック信号を所定の時間だけ遅延させた信号を前記故障判定記憶回路へクロック信号として供給する遅延回路を有する請求項２６記載の半導体集積回路。
【請求項３３】
前記第１、２、３または第４のクロック信号を反転させた信号を前記故障判定記憶回路へクロック信号として供給する反転回路をさらに有する請求項２６記載の半導体集積回路。
【請求項３４】
前記第１のクロック信号の前記第１の周期は、前記第２のクロック信号の前記第１の周期以上であり、かつ
前記第３のクロック信号の前記第１の周期は、前記第４のクロック信号の前記第１の周期以上である請求項１から３３のいずれか１項記載の半導体集積回路。
【請求項３５】
前記第１のクロック信号の前記第１の周期は、前記第２のクロック信号の前記第１の周期よりも長く、かつ
前記第３のクロック信号の前記第１の周期は、前記第４のクロック信号の前記第１の周期よりも長い請求項１から３３のいずれか１項記載の半導体集積回路。
【請求項３６】
前記第１のクロック信号の前記第１の周期は、前記第３のクロック信号の前記第１の周期よりも長く、かつ
前記第２のクロック信号の前記第１の周期は、前記第４のクロック信号の前記第１の周期よりも長い請求項３４または３５記載の半導体集積回路。
【請求項３７】
前記第３のクロック信号の前記第１の周期は、前記第１のクロック信号の前記第１の周期よりも長く、かつ
前記第４のクロック信号の前記第１の周期は、前記第２のクロック信号の前記第１の周期よりも長い請求項３４または３５記載の半導体集積回路。
【請求項３８】
前記第１、第２及び第３のクロック信号が同一である請求項１から３３のいずれか１項記載の半導体集積回路。
【請求項３９】
前記第１及び第２のクロック信号が同一であり、かつ前記第３及び第４のクロック信号が同一である請求項１から３３のいずれか１項記載の半導体集積回路。
【請求項４０】
前記第１のクロック信号の前記第１の周期及び第２の周期が異なり、前記第４のクロック信号の前記第１の周期及び第２の周期が異なる請求項３８または３９記載の半導体集積回路。
【請求項４１】
前記第１のクロック信号の前記第１の周期が前記第２の周期よりも短く、前記第４のクロック信号の前記第１の周期が前記第２の周期よりも長い請求項４０記載の半導体集積回路。
【請求項４２】
前記第１のクロック信号の前記第１の周期と、前記第４のクロック信号の前記第２の周期とが等しい請求項４０または４１記載の半導体集積回路。
【請求項４３】
前記第１、第２、第３及び第４のクロック信号を生成するクロック生成回路と、
前記第１の論理回路と前記第２の論理回路の出力の比較結果に応じて、前記クロック生成回路に、前記第１、第２、第３及び第４のクロック信号の周期または位相の少なくともいずれか一方を変更させるクロック制御回路と、
を有する請求項１から４２のいずれか１項記載の半導体集積回路。
【請求項４４】
前記第１の論理回路及び前記第２の論理回路に電源電圧を変更可能に供給する電源制御回路を有し、
前記クロック制御回路は、
前記第１の論理回路と前記第２の論理回路の出力の比較結果に応じて、前記電源制御回路に、前記第１の論理回路及び前記第２の論理回路に供給する電源電圧を変更させる請求項４３記載の半導体集積回路。
【請求項４５】
前記第１の論理回路及び前記第２の論理回路の周囲温度を変更する温度制御装置を有し、
前記クロック制御回路は、
前記第１の論理回路と前記第２の論理回路の出力の比較結果に応じて、前記温度制御装置に、前記第１の論理回路または前記第２の論理回路の少なくともいずれか一方の周囲温度を変更させる請求項４３または４４記載の半導体集積回路。
【請求項４６】
前記クロック制御回路による制御内容を保持するための不揮発メモリを有する請求項４３から４５のいずれか１項記載の半導体集積回路。
【請求項４７】
前記クロック制御回路は、
動作中または停止前にて前記制御内容を前記不揮発メモリに保存し、次に動作を開始する前または動作中にて前記不揮発メモリで保存された制御内容を読み込む請求項４６記載の半導体集積回路。
【請求項４８】
前記クロック制御回路は、
前記クロック生成回路に、前記第１の論理回路または前記第２の論理回路のいずれか一方に供給するクロック信号を停止させる請求項４３記載の半導体集積回路。
【請求項４９】
前記クロック制御回路は、
前記電源制御回路に、前記第１の論理回路または前記第２の論理回路のいずれか一方に供給する電源電圧を停止させる請求項４４記載の半導体集積回路。
【請求項５０】
請求項４３から４９のいずれか１項記載の半導体集積回路のセットアップ時間およびホールド時間を測定するための試験方法であって、
前記半導体集積回路のセットアップ時間の仕様値に合わせて設定された周期差または前記半導体集積回路のホールド時間の仕様値に合わせて設定された位相差の少なくともいずれか一方を持つ複数クロック信号を該半導体集積回路に供給し、
前記半導体集積回路に所定のテストパターンを入力したときの前記第１の論理回路と前記第２の論理回路の出力の比較結果を観測し、
前記第１の論理回路と前記第２の論理回路の出力の比較結果が一致または不一致であるかに応じて前記半導体集積回路が前記セットアップ時間の仕様値を満たしているか否か、または前記半導体集積回路が前記ホールド時間の仕様値を満たしているか否かを判定する半導体集積回路の試験方法。
【請求項５１】
請求項４３から４９のいずれか１項記載の半導体集積回路のセットアップ時間およびホールド時間を測定するための試験方法であって、
所定の周期差および所定の位相差に設定された複数クロック信号を該半導体集積回路に供給する第１の工程と、
前記半導体集積回路に所定のテストパターンを入力したときの前記第１の論理回路と前記第２の論理回路の出力の比較結果を観測する第２の工程と、
前記第１の論理回路と前記第２の論理回路の出力の比較結果が不一致を示すとき、前記半導体集積回路に供給する複数のクロック信号の前記周期差または前記位相差を再設定する第３の工程と、
前記前記第１の論理回路と前記第２の論理回路の出力の比較結果が一致するまで、前記第１の工程から前記第３の工程を繰り返し、該比較結果が一致したとき、前記周期差に相当する前記セットアップ時間および前記位相差に相当する前記ホールド時間を求める第４の工程と、
を有する半導体集積回路の試験方法。
【請求項５２】
前記半導体集積回路に供給する電源電圧を、該半導体集積回路の動作保証範囲内の最小電圧または最大電圧に設定する請求項５０または５１記載の半導体集積回路の試験方法。
【請求項５３】
前記半導体集積回路の周囲温度を、該半導体集積回路の動作保証範囲内の最低温度または最高温度に設定する請求項５０または５１記載の半導体集積回路の試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は高い信頼性を備えた半導体集積回路に関する。
【背景技術】
【０００２】
長期間、誤りなく動作することが要求されるシステムでは、該システムで用いる半導体集積回路の信頼性を高めることが重要になる。例えば、宇宙機器のように修理が不可能または困難な場所にある機器、あるいは医療機器や原子力制御装置のように人命や社会に与える影響が大きい機器では信頼性の高い半導体集積回路が求められる。【０００３】
半導体集積回路の信頼性を向上させる方法としては、同一機能の論理回路を２つ備え、それらを並列に動作させると共に、その出力の一致／不一致を検出することで各論理回路の動作を検証する構成が知られている（例えば、特許文献１参照）。このような同一機能の論理回路を２つ備えた半導体集積回路を、以下では「二重化された論理回路」と称す。【０００４】
また、半導体集積回路の信頼性を向上させる他の方法として、特許文献２や非特許文献１に記載された方法がある。【０００５】
特許文献２には、一方のクロック信号に同期して動作する記憶回路と、該クロック信号を遅延させた他方のクロック信号に同期して動作する記憶回路とを備え、１つの演算回路の出力値をこれら２つの記憶回路で記憶し、記憶した２つの値を比較することで、演算回路で発生する演算時間の増大を検出することが記載されている。【０００６】
また、非特許文献１には、クロック信号に同期して記憶回路に演算回路の出力値を記憶させると共に、それよりも早い時点で演算回路の同じ出力値を他の記憶回路で記憶し、該記憶した２つの値が異なっているときに演算回路の演算時間が増大したと判定する手法が記載されている。【０００７】
上述した背景技術の半導体集積回路では、既に発生している故障は検出できるが、該故障が起きる前に発生している事象（故障要因）は検出できないという課題がある。以下、この課題について説明する。【０００８】
図１は半導体集積回路の背景技術の構成を示すブロック図であり、図２は図１に示した半導体集積回路が故障を検出する様子を示すタイミングチャートである。【０００９】
図１に示す背景技術の半導体集積回路は、記憶回路ＦＦ０Ａ、演算回路Ｌ１Ａ及び記憶回路ＦＦ１Ａを備えた第１の論理回路と、記憶回路ＦＦ０Ｂ、演算回路Ｌ１Ｂ及び記憶回路ＦＦ１Ｂを備えた第２の論理回路と、記憶回路ＦＦ１Ａの出力値と記憶回路ＦＦ１Ｂの出力値とが一致しているか否かの比較結果を出力する比較回路Ｃ１とを有する構成である。第１の論理回路と第２の論理回路とは同一の機能を備えている。【００１０】
記憶回路ＦＦ０Ａ、ＦＦ１Ａ、ＦＦ０Ｂ及びＦＦ１Ｂは、各々に供給されるクロック信号に同期して入力値を保持して出力する。また、演算回路Ｌ１Ａ及びＬ１Ｂは、入力値に対して所定の演算処理を実行し、所要の演算時間が経過した後、その演算結果を出力する。【００１１】
以下では、上記演算回路Ｌ１Ａ、Ｌ１Ｂの演算時間のように、回路にある値を入力してからそれに対応する値を出力するまでに要する時間を「遅延時間」と称す。【００１２】
記憶回路ＦＦ０Ａの出力値は演算回路Ｌ１Ａに入力され、演算回路Ｌ１Ａの出力値は記憶回路ＦＦ１Ａに入力される。また、記憶回路ＦＦ０Ｂの出力値は演算回路Ｌ１Ｂに入力され、演算回路Ｌ１Ｂの出力値は記憶回路ＦＦ１Ｂに入力される。【００１３】
記憶回路ＦＦ０Ａ、ＦＦ１Ａ、ＦＦ０Ｂ及びＦＦ１Ｂには同一のクロック信号ＣＫが供給され、記憶回路ＦＦ１Ａ及びＦＦ１Ｂの出力値は比較回路Ｃ１に入力される。【００１４】
図１に示すように、背景技術の半導体集積回路では、記憶回路ＦＦ０Ａ、ＦＦ１Ａ、ＦＦ０Ｂ及びＦＦ１Ｂに周期Ｔの同一のクロック信号ＣＫが供給されている。【００１５】
図２に示すように、記憶回路ＦＦ０Ａ、ＦＦ１Ａ、ＦＦ０Ｂ及びＦＦ１Ｂは、クロック信号ＣＫの立ち上がりエッジに同期して入力値を保持すると共に、その値を出力する。【００１６】
ここで、例えば時刻Ｄ（Ｌ１（Ｄ２））において、演算回路Ｌ１Ａが誤った値Ｆ'（Ｄ２）を出力し、演算回路Ｌ１Ｂが正しい値Ｆ（Ｄ２）を出力しているものと仮定する。【００１７】
この場合、時刻Ｔにおいて、記憶回路ＦＦ１Ａは演算回路Ｌ１Ａから出力された誤った値Ｆ'（Ｄ２）を保持して出力し、記憶回路ＦＦ１Ｂは演算回路Ｌ１Ｂから出力された正しい値Ｆ（Ｄ２）を保持して出力する。したがって、記憶回路ＦＦ１Ａの出力値と記憶回路ＦＦ１Ｂの出力値とが一致しないため、比較回路Ｃ１の出力値が変化する（図２に示す例では、論理「０」（Ｌｏｗレベル）から論理「１」（Ｈｉｇｈレベル））。よって、比較回路Ｃ１の出力値を監視することで故障が発生したか否かを判断できる。【００１８】
ところで、図１に示すような半導体集積回路で発生する故障要因としては、トランジスタ等の性能劣化による演算回路の遅延時間の増大や遅延時間の減少が考えられる。例えば、図１に示す演算回路Ｌ１Ａの遅延時間が増大してクロック信号ＣＫの周期よりも長くなると、記憶回路ＦＦ１Ａは、クロック信号ＣＫの立ち上がりエッジに同期して演算回路Ｌ１Ａから出力されている誤った演算結果を取り込んでしまうため、誤った演算結果を出力する。一方、図１に示した演算回路Ｌ１Ａの遅延時間が減少して記憶回路ＦＦ１Ａのホールド時間よりも短くなると、記憶回路ＦＦ１Ａは、演算回路Ｌ１Ａの演算結果を正しく取り込むことができないため、誤った演算結果を出力する。【００１９】
図３は図１に示した半導体集積回路が故障要因を検出できない様子を示すタイミングチャートである。【００２０】
ここでは、時刻０で入力された値Ｄ２に対して、演算回路Ｌ１Ｂは時刻Ｄ（Ｌ１（Ｄ２））で正しい演算結果の値Ｆ（Ｄ２）を出力し、演算回路Ｌ１Ａは、時刻Ｄ（Ｌ１（Ｄ２））よりも時間ｄだけ遅れて、すなわち時刻Ｄ（Ｌ１（Ｄ２））＋ｄで正しい演算結果の値Ｆ（Ｄ２）を出力する例で説明する。【００２１】
図３に示すように、演算回路Ｌ１Ａから演算結果が出力される時刻Ｄ（Ｌ１（Ｄ２））＋ｄがクロック信号ＣＫの周期Ｔ以内にある場合、記憶回路ＦＦ１Ａは、時刻Ｔで演算回路Ｌ１Ａから出力された値Ｆ（Ｄ２）を保持して出力する。また、記憶回路ＦＦ１Ｂは、時刻Ｔで演算回路Ｌ１Ｂから出力された値Ｆ（Ｄ２）を保持して出力する。【００２２】
したがって、比較回路Ｃ１は、同一の値が入力されているために出力値が変化せず、演算回路Ｌ１Ａで発生している遅延時間の増大を検出できない。このような演算回路等で発生する遅延時間の増大は、時間の経過に伴って大きくなり、やがて半導体集積回路の誤動作を引き起こす。【００２３】
上述した特許文献２や非特許文献１に記載の回路では、予め設定された検出時間の範囲内であれば、演算回路等で発生している遅延時間の増大を検出できる。しかしながら、予め設定された検出時間を超える遅延時間の増大は検出することができない。また、特許文献２や非特許文献１に記載の回路では、遅延時間の増大は検出できるが、遅延時間の減少を検出することはできない。【００２４】
さらに、背景技術の半導体集積回路では、二重化された論理回路のうち、どちらの論理回路で故障要因が発生しているかを判別できないため、例えば正常な論理回路の出力を選択することで、半導体集積回路の正常な動作を維持することはできない。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開２００３−３１６５９９号公報
【特許文献２】米国特許公開第２００５／０２４６６１３号
【非特許文献】
【００２６】
【非特許文献１】T.  Nakura他、"Fine-Grain  Redundant  Logic  Using  Defect-Prediction  Flip-Flops"(ISSCC2007)
【発明の概要】
【００２７】
そこで本発明は、遅延時間の増大や減少等の故障要因の検出を可能にして、動作の信頼性を向上させることができる、二重化された論理回路から成る半導体集積回路を提供することを目的とする。
【００２８】
上記目的を達成するため本発明の半導体集積回路は、所定の演算処理を実行する第１の演算回路と、
前記第１の演算回路と同一の演算処理を実行する第２の演算回路と、
前記第１の演算回路の入力に接続された、第１のクロック信号に同期して入力値を保持して出力する第１の記憶回路と、
前記第１の演算回路の出力に接続された、第２のクロック信号に同期して入力値を保持して出力する第２の記憶回路と、
前記第２の演算回路の入力に接続された、第３のクロック信号に同期して入力値を保持して出力する第３の記憶回路と、
前記第２の演算回路の出力に接続された、第４のクロック信号に同期して入力値を保持して出力する第４の記憶回路と、
前記第２の記憶回路の出力値と前記第４の記憶回路の出力値とが一致しているか否かの比較結果を出力する第１の比較回路と、
を有し、
前記第１、第２、第３及び第４のクロック信号は、第１の周期と第２の周期とを交互に繰り返す信号であり、それぞれの前記第１の周期の開始が一致し、かつ前記第２の周期の終了が一致し、
前記第１、第２、第３及び第４のクロック信号のうち、少なくとも一つは前記第１の周期と前記第２の周期とが異なる長さであり、少なくとも一つは他のクロック信号と異なる信号パターンである。  
または、所定の演算処理を実行する複数の第１の演算回路及び複数の前記第１の演算回路と交互に接続される複数の第１の記憶回路を備えた第１の論理回路と、
前記第１の演算回路と同一の演算処理を実行する第２の演算回路及び複数の前記第２の演算回路と交互に接続される複数の第２の記憶回路を備えた第２の論理回路と、
前記第１の記憶回路の出力値と前記第２の記憶回路の出力値とが一致しているか否かの比較結果をそれぞれ出力する複数の比較回路と、
を有し、
複数の前記第１の記憶回路に第１のクロック信号及び第２のクロック信号が交互に供給され、
複数の前記第２の記憶回路に第３のクロック信号及び第４のクロック信号が交互に供給され、
前記第１、第２、第３及び第４のクロック信号は、第１の周期と第２の周期とを交互に繰り返す信号であり、それぞれの前記第１の周期の開始が一致し、かつ前記第２の周期の終了が一致し、
前記第１、第２、第３及び第４のクロック信号のうち、少なくとも一つは前記第１の周期と前記第２の周期とが異なる長さであり、少なくとも一つは他のクロック信号と異なる信号パターンである。
【図面の簡単な説明】
【００２９】
【図１】図１は、背景技術の半導体集積回路の構成を示すブロック図である。
【図２】図２は、図１に示した半導体集積回路が故障を検出する様子を示すタイミングチャートである。
【図３】図３は、図１に示した半導体集積回路が故障要因を検出できない様子を示すタイミングチャートである。
【図４】図４は、第１実施例の半導体集積回路の構成を示すブロック図である。
【図５Ａ】図５Ａは、第１実施例の半導体集積回路に供給される各クロック信号の一例を示すタイミングチャートである。
【図５Ｂ】図５Ｂは、第１実施例の半導体集積回路の動作を示すタイミングチャートである。
【図５Ｃ】図５Ｃは、第１実施例の半導体集積回路の動作を示すタイミングチャートである。
【図６】図６は、第２実施例の半導体集積回路の構成を示すブロック図である。
【図７】図７は、第２実施例の半導体集積回路において、故障要因が発生していないときの動作を示すタイミングチャートである。
【図８】図８は、第２実施例の半導体集積回路において、演算回路Ｌ１Ａで遅延時間が増大する故障要因が発生しているときの動作を示すタイミングチャートである。
【図９】図９は、第２実施例の半導体集積回路において、演算回路Ｌ１Ｂで遅延時間が増大する故障要因が発生しているときの動作を示すタイミングチャートである。
【図１０】図１０は、第３実施例の半導体集積回路の構成を示すブロック図である。
【図１１】図１１は、第４実施例の半導体集積回路において、故障要因が発生していないときとの動作を示すタイミングチャートである。
【図１２】図１２は、第４実施例の半導体集積回路において、演算回路Ｌ１Ａで遅延時間が減少する故障要因が発生しているときの動作を示すタイミングチャートである。
【図１３】図１３は、第５実施例の半導体集積回路の動作を示すタイミングチャートである。
【図１４】図１４は、第６実施例の半導体集積回路の動作を示すタイミングチャートである。
【図１５】図１５は、第７実施例の半導体集積回路の構成を示すブロック図である。
【図１６】図１６は、第８実施例の半導体集積回路の構成を示すブロック図である。
【図１７】図１７は、第９実施例の半導体集積回路の構成を示すブロック図である。
【図１８】図１８は、第１０実施例の半導体集積回路の構成を示すブロック図である。
【図１９】図１９は、第１１実施例の半導体集積回路の構成を示すブロック図である。
【図２０】図２０は、第１２実施例の半導体集積回路の構成を示すブロック図である。
【図２１】図２１は、第１３実施例の半導体集積回路の構成を示すブロック図である。
【図２２】図２２は、第１３実施例の半導体集積回路の動作を示すタイミングチャートである。
【図２３】図２３は、第１４実施例の半導体集積回路の構成を示すブロック図である。
【図２４】図２４は、第１５実施例の半導体集積回路の構成を示すブロック図である。
【図２５】図２５は、第１５実施例の半導体集積回路の動作を示すタイミングチャートである。
【図２６】図２６は、第１６実施例の半導体集積回路の構成を示すブロック図である。
【図２７】図２７は、第１６実施例の半導体集積回路の動作を示すタイミングチャートである。
【図２８】図２８は、第１７実施例の半導体集積回路の構成を示すブロック図である。
【図２９】図２９は、第１７実施例の半導体集積回路の動作を示すタイミングチャートである。
【図３０】図３０は、第１８実施例の半導体集積回路の構成を示すブロック図である。
【図３１】図３１は、第１８実施例の半導体集積回路の動作を示すタイミングチャートである。
【図３２】図３２は、第１９実施例の半導体集積回路の構成を示すブロック図である。
【図３３Ａ】図３３Ａは、第２０実施例の半導体集積回路の構成を示すブロック図である。
【図３３Ｂ】図３３Ｂは、第２０実施例の半導体集積回路の変形例の構成を示すブロック図である。
【図３４】図３４は、第２０実施例の半導体集積回路が備えるクロック制御回路の処理手順を示すフローチャートである。
【図３５】図３５は、第２１実施例の半導体集積回路の構成を示すブロック図である。
【図３６】図３６は、第２２実施例の半導体集積回路の構成を示すブロック図である。
【図３７】図３７は、第２３実施例の半導体集積回路の試験手順を示すフローチャートである。
【図３８】図３８は、第２４実施例の半導体集積回路の試験手順を示すフローチャートである。
【発明を実施するための最良の形態】
【００３０】
次に本発明について図面を参照して説明する。
（第１実施例）
図４は第１実施例の半導体集積回路の構成を示すブロック図である。【００３１】
図４に示すように、第１実施例の半導体集積回路は、記憶回路ＦＦ０Ａ、演算回路Ｌ１Ａ及び記憶回路ＦＦ１Ａを備えた第１の論理回路と、記憶回路ＦＦ０Ｂ、演算回路Ｌ１Ｂ及び記憶回路ＦＦ１Ｂを備えた第２の論理回路と、記憶回路ＦＦ１Ａの出力値と記憶回路ＦＦ１Ｂの出力値とが一致しているか否かの比較結果を出力する比較回路Ｃ１とを有する構成である。第１の論理回路と第２の論理回路とは同一の機能を備えている。【００３２】
記憶回路ＦＦ０Ａ、ＦＦ１Ａ、ＦＦ０Ｂ及びＦＦ１Ｂは、各々に供給されるクロック信号の立ち上がりエッジに同期して入力値を保持して出力する。また、演算回路Ｌ１Ａ及びＬ１Ｂは、入力値に対して所定の演算処理を実行し、所要の演算時間が経過した後、その演算結果を出力する。【００３３】
記憶回路ＦＦ０Ａの出力値は演算回路Ｌ１Ａに入力され、演算回路Ｌ１Ａの出力値は記憶回路ＦＦ１Ａに入力される。また、記憶回路ＦＦ０Ｂの出力値は演算回路Ｌ１Ｂに入力され、演算回路Ｌ１Ｂの出力値は記憶回路ＦＦ１Ｂに入力される。記憶回路ＦＦ１Ａ及びＦＦ１Ｂの出力値は比較回路Ｃ１に入力される。【００３４】
第１実施例の半導体集積回路では、記憶回路ＦＦ０Ａにクロック信号ＣＫＡが供給され、記憶回路ＦＦ１Ａにクロック信号ＣＫＡ'が供給される。また、記憶回路ＦＦ０Ｂにクロック信号ＣＫＢが供給され、記憶回路ＦＦ１Ｂにクロック信号ＣＫＢ'が供給される。【００３５】
図５Ａは第１実施例の半導体集積回路に供給される各クロック信号の一例を示すタイミングチャートである。【００３６】
図５Ａに示すように、クロック信号ＣＫＡは第１の周期Ｔ１Ａと第２の周期Ｔ２Ａとを交互に繰り返す信号であり、クロック信号ＣＫＡ'は第１の周期Ｔ１Ａ'と第２の周期Ｔ２Ａ'とを交互に繰り返す信号である。また、クロック信号ＣＫＢは第１の周期Ｔ１Ｂと第２の周期Ｔ２Ｂとを交互に繰り返す信号であり、クロック信号ＣＫＢ'は第１の周期Ｔ１Ｂ'と第２の周期Ｔ２Ｂ'とを交互に繰り返す信号である。【００３７】
なお、図４に示す第１の論理回路及び第２の論理回路が同期式回路として正しく動作するためには、記憶回路ＦＦ１Ａ及びＦＦ１Ｂが入力値を保持する時点で、記憶回路ＦＦ０Ａ及びＦＦ０Ｂが既に値を出力している必要があり、
Ｔ１Ａ≦Ｔ１Ａ'…………………………（１）
かつ
Ｔ１Ｂ≦Ｔ１Ｂ'…………………………（２）
の条件を満たす必要がある。【００３８】
但し、各記憶回路のセットアップ時間及びホールド時間は無視できるものとする。【００３９】
クロック信号ＣＫＡ、ＣＫＡ’、ＣＫＢ及びＣＫＢ'は、それぞれの第１の周期の開始が一致し、かつ第２の周期の終了が一致するものとする。【００４０】
また、クロック信号ＣＫＡ、ＣＫＡ’、ＣＫＢ及びＣＫＢ'のうち、少なくとも一つは、第１の周期と第２の周期とが異なる長さとする。【００４１】
さらに、クロック信号ＣＫＡ、ＣＫＡ’、ＣＫＢ及びＣＫＢ'のうち、少なくとも一つは、他のクロック信号と異なる信号パターンとする。【００４２】
図５Ａは、クロック信号ＣＫＡ、ＣＫＡ’、ＣＫＢ及びＣＫＢ'が、それぞれ異なる長さの第１の周期と第２の周期とを備え、さらにいずれのクロック信号も他のクロック信号と異なる信号パターンである例を示している。【００４３】
図５Ａに示すような、２つの異なる周期を交互に繰り返すクロック信号は、例えば、Shunichi  Kaeriyama,  Mikihiro  Kajita,  Masayuki  Mizuno,  "A  1-to-2GHz  4-Phase  On-Chip  Clock  Generator  with  Timing-Margin  Test  Capability",  ISSCC2007  digest  of  technical  papers,  pp.  174-175.（以下、非特許文献２と称す）等を参照することで生成できる。【００４４】
以下では、各クロック信号の第１の周期及び第２の周期のデューティー比（周期全体に占める信号値が１である期間の比）をそれぞれ５０％とする例を示すが、第１の周期及び第２の周期のデューティー比は５０％に限定されるものではない。【００４５】
また、記憶回路（後述する比較記憶回路を含む）はクロック信号の立ち上がりエッジに同期して入力値を保持すると共に保持した値を出力する例で説明するが、同様の機能を有するものであれば、どのような構成であってもよい。【００４６】
また、以下では、演算回路Ｌ１ＡとＬ１Ｂの演算時間（遅延時間）が同一であるとして説明するが、２つの演算回路は、その処理機能が同一であれば内部構成は異なっていてもよく、演算時間が異なっていてもよい。【００４７】
これらの条件は、後述する第２実施例〜第１７実施例にも適用される。【００４８】
次に第１実施例の半導体集積回路の動作について図面を用いて説明する。【００４９】
図５Ｂ及び図５Ｃは第１実施例の半導体集積回路の動作を示すタイミングチャートである。【００５０】
図５Ｂの実線は図４に示した演算回路Ｌ１Ａで遅延時間が増大する故障要因が発生していないときの動作を示し、図５Ｂの点線は図４に示した演算回路Ｌ１Ａで遅延時間が増大する故障要因が発生しているときの動作を示している。【００５１】
演算回路Ｌ１Ａで遅延時間が増大する故障要因が発生していない場合、記憶回路ＦＦ１Ａの出力値は論理「１」（Ｈｉｇｈレベル）になり、記憶回路ＦＦ１Ｂの出力値も論理「１」になるため、比較回路Ｃ１の出力値は論理「０」（Ｌｏｗレベル）で安定する。【００５２】
一方、演算回路Ｌ１Ａで遅延時間が増大する故障要因が発生している場合、記憶回路ＦＦ１Ａの出力値は論理「０」になり、記憶回路ＦＦ１Ｂの出力値は論理「１」になるため、比較回路Ｃ１の出力値は論理「１」になる。【００５３】
したがって、比較回路Ｃ１の出力値を監視することで遅延時間が増大する故障要因の発生有無を判別できる。【００５４】
なお、図５Ｂの実線で示すように、演算回路Ｌ１Ａで遅延時間が増大する故障要因が発生していない場合でも、比較回路Ｃ１の出力値が論理「１」になる期間がある。しかしながら、これは、クロック信号ＣＫＡ、ＣＫＡ’、ＣＫＢ及びＣＫＢ'のいずれか一つが立ち上がってから残りのクロック信号が全て立ち上がるまでの期間を比較結果の不感期間に設定することで無視できる。【００５５】
図５Ｃの実線は図４に示した演算回路Ｌ１Ａで遅延時間が減少する故障要因が発生していないときの動作を示し、図５Ｃの点線は図４に示した演算回路Ｌ１Ａで遅延時間が減少する故障要因が発生しているときの動作を示している。【００５６】
演算回路Ｌ１Ａで遅延時間が減少する故障要因が発生していない場合、演算回路Ｌ１Ａの出力値が論理「１」になる時刻はクロック信号ＣＫＡ'が立ち上がった後であり、記憶回路ＦＦ１Ａの出力値は論理「０」になり、記憶回路ＦＦ１Ｂの出力値も論理「０」になるため、比較回路Ｃ１の出力値は論理「０」で安定する。【００５７】
一方、演算回路Ｌ１Ａで遅延時間が減少する故障要因が発生している場合、演算回路Ｌ１Ａの出力値が論理「１」になる時刻はクロック信号ＣＫＡ'が立ち上がる前であり、記憶回路ＦＦ１Ａの出力値は論理「１」になり、記憶回路ＦＦ１Ｂの出力値は論理「０」であるため、比較回路Ｃ１の出力値は論理「１」になる。【００５８】
したがって、比較回路Ｃ１の出力値を監視することで遅延時間が減少する故障要因の発生有無を判別できる。【００５９】
第１実施例の半導体集積回路によれば、各クロック信号の第１の周期の開始および第２の周期の終了が一致し、各記憶回路へ供給するクロック信号のうち、少なくとも一つは第１の周期と第２の周期とが異なる長さであり、少なくとも一つは他のクロック信号と異なる信号パターンである、第１の周期と第２の周期が交互に繰り返すクロック信号を各記憶回路へ供給し、二重化された論理回路の最終段の記憶回路の値を比較することで、論理回路で発生している遅延時間の増大または減少する故障要因を検出できる。【００６０】
ここで、図５Ａに示したクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'において、
Ｔ１Ａ'＜Ｔ１Ｂ'…………………………（３）
または
Ｔ１Ａ＞Ｔ１Ｂ…………………………（４）
の条件が成り立つとき、記憶回路ＦＦＡ０に入力されるクロック信号ＣＫＡが立ち上がってから記憶回路ＦＦＡ１に入力されるクロック信号ＣＫＡ’が立ち上がるまでの時間は、記憶回路ＦＦＢ０に入力されるクロック信号ＣＫＢが立ち上がってから記憶回路ＦＦＢ１に入力されるクロック信号ＣＫＢ’が立ち上がるまでの時間よりも短い。そのため、演算回路Ｌ１Ａで発生している遅延時間が増大する故障要因を検出することが可能である。【００６１】
また、
Ｔ１Ａ'＞Ｔ１Ｂ'…………………………（５）
または
Ｔ１Ａ＜Ｔ１Ｂ…………………………（６）
の条件が成り立つとき、記憶回路ＦＦＡ０に入力されるクロック信号ＣＫＡが立ち上がってから記憶回路ＦＦＡ１に入力されるクロック信号ＣＫＡ’が立ち上がるまでの時間は、記憶回路ＦＦＢ０に入力されるクロック信号ＣＫＢが立ち上がってから記憶回路ＦＦＢ１に入力されるクロック信号ＣＫＢ’が立ち上がるまでの時間よりも長い。そのため、演算回路Ｌ１Ｂで発生している遅延時間が増大する故障要因を検出することが可能である。【００６２】
また、図５Ａに示したクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'において、
Ｔ１Ａ＜Ｔ１Ａ'…………………………（７）
の条件が成り立つとき、演算回路Ｌ１Ａの遅延時間が変化していなければ、記憶回路ＦＦ１Ａは、クロック信号ＣＫＡの第１の周期の立ち上がりに同期して記憶回路ＦＦ０Ａから出力された値の演算結果を保持し、演算回路Ｌ１Ａの遅延時間が減少していれば、記憶回路ＦＦ１Ａは、クロック信号ＣＫＡの第２の周期の立ち上がりに同期して記憶回路ＦＦ０Ａから出力された値の演算結果を保持する。そのため、演算回路Ｌ１Ａで発生している遅延時間が減少する故障要因を検出することが可能である。【００６３】
また、
Ｔ１Ｂ＜Ｔ１Ｂ'…………………………（８）
の条件が成り立つとき、演算回路Ｌ１Ｂの遅延時間が変化していなければ、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢの第１の周期の立ち上がりに同期して記憶回路ＦＦ０Ｂから出力された値の演算結果を保持し、演算回路Ｌ１Ｂの遅延時間が減少していれば、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢの第２の周期の立ち上がりに同期して記憶回路ＦＦ０Ｂから出力された値の演算結果を保持する。そのため、演算回路Ｌ１Ｂで発生している遅延時間が減少する故障要因を検出することが可能である。
（第２実施例）
図６は第２実施例の半導体集積回路の構成を示すブロック図である。【００６４】
図６に示すように、第２実施例の半導体集積回路は、図４に示した第１実施例の半導体集積回路に加えて、比較回路Ｃ１の出力値を保持するための比較記憶回路ＦＦＣ１を備えた構成である。比較記憶回路ＦＦＣ１には、反転回路ＮＯＴによってクロック信号ＣＫＢ'を反転させた信号が供給される。なお、比較記憶回路ＦＦＣ１には、クロック信号ＣＫＡ、ＣＫＡ’またはＣＫＢを反転させた信号を供給してもよい。【００６５】
第２実施例の半導体集積回路は、各論理回路に供給するクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'が上述した条件（３）、（６）を満たす例である。【００６６】
図７は、第２実施例の半導体集積回路において、故障要因が発生していないときの動作を示すタイミングチャートである。【００６７】
図７に示すように、第２実施例の半導体集積回路に供給するクロック信号ＣＫＡ及びＣＫＡ'は、第１の周期ＴＳと第１の周期ＴＳよりも長い第２の周期ＴＬとを交互に繰り返す信号である。また、クロック信号ＣＫＢ及びＣＫＢ'は、第１の周期ＴＬと第１の周期ＴＬよりも短い第２の周期ＴＳとを交互に繰り返す信号である。すなわち、各論理回路に供給するクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'が上述した条件（３）、（６）を満たしている。【００６８】
ここでは、説明を簡単にするために、クロック信号ＣＫＡ及びＣＫＡ'の第１の周期ＴＳと、クロック信号ＣＫＢ及びＣＫＢ'の第２の周期ＴＳとが等しく、クロック信号ＣＫＡ及びＣＫＡ'の第２の周期ＴＬと、クロック信号ＣＫＢ及びクロック信号ＣＫＢ'の第１の周期ＴＬとが等しいものとする。【００６９】
図７に示すように、時刻０において、記憶回路ＦＦ０Ａは、クロック信号ＣＫＡの立ち上がりエッジに同期して入力値Ｄ２を保持して出力し、記憶回路ＦＦ１Ａは、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ１）を保持して出力する。また、記憶回路ＦＦ０Ｂは、クロック信号ＣＫＢの立ち上がりエッジに同期して入力値Ｄ２を保持して出力し、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ１）を保持して出力する。【００７０】
時刻０で値Ｄ２が入力された演算回路Ｌ１Ａ及びＬ１Ｂは、時刻Ｄ（Ｌ１（Ｄ２））になると、その出力値をＦ（Ｄ２）に変化させる。すなわち、時間Ｄ（Ｌ１（Ｄ２））は、演算回路Ｌ１Ａ及びＬ１Ｂの正常時における値Ｄ２の演算で必要な演算時間である。【００７１】
時刻ＴＳにおいて、記憶回路ＦＦ０Ａは、クロック信号ＣＫＡの立ち上がりエッジに同期して入力値Ｄ３を保持して出力し、記憶回路ＦＦ１Ａは、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ２）を保持して出力する。時刻ＴＳでは、記憶回路ＦＦ０Ｂ及びＦＦ１Ｂが動作しないため、記憶回路ＦＦ１Ａの出力値Ｆ（Ｄ２）と記憶回路ＦＦ１Ｂの出力値Ｆ（Ｄ１）とが一致しない。そのため、比較回路Ｃ１は出力値が変化する（図７に示す例では、論理「０」から論理「１」）。【００７２】
時刻ＴＳで値Ｄ３が入力された演算回路Ｌ１Ａは、時刻ＴＳ＋Ｄ（Ｌ１（Ｄ３））になると、その出力値をＦ（Ｄ３）に変化させる。すなわち、時間Ｄ（Ｌ１（Ｄ３））は、演算回路Ｌ１Ａの正常時における値Ｄ３の演算で必要な演算時間である。【００７３】
時刻ＴＬにおいて、記憶回路ＦＦ０Ｂは、クロック信号ＣＫＢの立ち上がりエッジに同期して入力値Ｄ３を保持すると共に出力し、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ２）を保持して出力する。時刻ＴＬでは、記憶回路ＦＦ０Ａ及びＦＦ１Ａが動作しないため、記憶回路ＦＦ１Ａの出力値Ｆ（Ｄ２）と記憶回路ＦＦ１Ｂの出力値Ｆ（Ｄ２）とが一致する。そのため、比較回路Ｃ１は、出力値が元に戻る（図７に示す例では、論理「１」から論理「０」）。【００７４】
時刻ＴＬで値Ｄ３が入力された演算回路Ｌ１Ｂは、時刻ＴＬ＋Ｄ（Ｌ１（Ｄ３））になると、その出力値をＦ（Ｄ３）に変化させる。すなわち、時間Ｄ（Ｌ１（Ｄ３））は、演算回路Ｌ１Ｂの正常時における値Ｄ３の演算で必要な演算時間である。【００７５】
時刻ＴＬ＋ＴＳになると、記憶回路ＦＦ０Ａは、クロック信号ＣＫＡの立ち上がりエッジに同期して入力値Ｄ４を保持して出力し、記憶回路ＦＦ１Ａは、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ３）を保持して出力する。また、記憶回路ＦＦ０Ｂは、クロック信号ＣＫＢの立ち上がりエッジに同期して入力値Ｄ４を保持して出力し、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ３）を保持して出力する。【００７６】
以降、第２実施例の半導体集積回路は、図７に示した時刻０から時刻ＴＬ＋ＴＳまでの動作と同様の動作を繰り返す。【００７７】
上述したように、第２実施例の半導体集積回路では、比較記憶回路ＦＦＣ１にクロック信号ＣＫＢ'を反転させた信号を供給している。そのため、図７に示すようにクロック信号ＣＫＡが立ち上がってからクロック信号ＣＫＢ'が立ち上がるまでの期間で比較回路Ｃ１の出力値が変化しても、比較記憶回路ＦＦＣ１の出力値は変化しない。すなわち、第２実施例の半導体集積回路では、各論理回路が正常に動作していれば、比較記憶回路ＦＦＣ１の出力値が変化しないため、比較記憶回路ＦＦＣ１の出力値を監視するだけで、遅延時間が増大する故障要因が発生しているか否かを判別できる。【００７８】
図８は、第２実施例の半導体集積回路において、演算回路Ｌ１Ａで遅延時間が増大する故障要因が発生しているときの動作を示すタイミングチャートである。【００７９】
なお、図８に示すクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'は、図７に示したクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'と同様である。【００８０】
図８に示すように、時刻０において、記憶回路ＦＦ０Ａは、クロック信号ＣＫＡの立ち上がりエッジに同期して入力値Ｄ２を保持して出力し、記憶回路ＦＦ１Ａは、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ１）を保持して出力する。また、記憶回路ＦＦ０Ｂは、クロック信号ＣＫＢの立ち上がりエッジに同期して入力値Ｄ２を保持して出力し、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ１）を保持して出力する。【００８１】
時刻０で値Ｄ２が入力された演算回路Ｌ１Ｂは、時刻Ｄ（Ｌ１（Ｄ２））になると、その出力値をＦ（Ｄ２）に変化させる。一方、演算回路Ｌ１Ａは、遅延時間が増大する故障要因が発生しているため、時刻０で値Ｄ２が入力されると、時刻Ｄ（Ｌ１（Ｄ２））＋ｄで出力値をＦ（Ｄ２）に変化させる。【００８２】
時刻ＴＳにおいて、記憶回路ＦＦ０Ａは、クロック信号ＣＫＡの立ち上がりエッジに同期して入力値Ｄ３を保持して出力する。また、記憶回路ＦＦ１Ａは、演算回路Ｌ１Ａの出力値がＦ（Ｄ１）であるため、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ１）を再び保持して出力する。記憶回路ＦＦ１Ａは、時刻Ｄ（Ｌ１（Ｄ２））＋ｄで入力値がＦ（Ｄ２）に変化しても、クロック信号ＣＫＡ’の次の立ち上がりエッジまで出力値をＦ（Ｄ１）で維持する。【００８３】
時刻ＴＳで値Ｄ３が入力された演算回路Ｌ１Ａは、時刻ＴＳ＋Ｄ（Ｌ１（Ｄ３））になると、その出力値をＦ（Ｄ３）に変化させる。【００８４】
時刻ＴＳでは、記憶回路ＦＦ０Ｂ及びＦＦ１Ｂが動作しないため、記憶回路ＦＦ１Ａの出力値Ｆ（Ｄ１）と記憶回路ＦＦ１Ｂの出力値Ｆ（Ｄ１）とが一致する。そのため、比較回路Ｃ１は出力値が変化しない（図８に示す例では、論理「０」）。【００８５】
次に、時刻ＴＬになると、記憶回路ＦＦ０Ｂは、クロック信号ＣＫＢの立ち上がりエッジに同期して入力値Ｄ３を保持すると共に出力し、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ２）を保持して出力する。時刻ＴＬでは、記憶回路ＦＦ０Ａ及びＦＦ１Ａが動作しないため、記憶回路ＦＦ１Ａの出力値Ｆ（Ｄ１）と記憶回路ＦＦ１Ｂの出力値Ｆ（Ｄ２）とが一致しない。そのため、比較回路Ｃ１の出力値が変化する（図８に示す例では、論理「０」から論理「１」）。【００８６】
時刻ＴＬで値Ｄ３が入力された演算回路Ｌ１Ｂは、時刻ＴＬ＋Ｄ（Ｌ１（Ｄ３））になると、その出力値をＦ（Ｄ３）に変化させる。【００８７】
また、比較記憶回路ＦＦＣ１は、時刻ＴＬ＋ＴＳ／２になると、比較回路Ｃ１の出力値（図８に示す例では、論理「１」）を保持して出力する。【００８８】
次に、時刻ＴＬ＋ＴＳになると、記憶回路ＦＦ０Ａは、クロック信号ＣＫＡの立ち上がりエッジに同期して入力値Ｄ４を保持して出力する。記憶回路ＦＦ１Ａは、時刻ＴＬ＋Ｄ（Ｌ１（Ｄ３））で演算回路Ｌ１Ａの出力値がＦ（Ｄ３）に変化するため、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ３）を保持して出力する。また、記憶回路ＦＦ０Ｂは、クロック信号ＣＫＢの立ち上がりエッジに同期して入力値Ｄ４を保持して出力し、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ３）を保持して出力する。【００８９】
時刻ＴＬ＋ＴＳでは、記憶回路ＦＦ１Ａの出力値Ｆ（Ｄ３）と記憶回路ＦＦ１Ｂの出力値Ｆ（Ｄ３）とが一致する。そのため、比較回路Ｃ１は出力値が元に戻る（図８に示す例では、論理「１」から論理「０」）。比較記憶回路ＦＦＣ１は、時刻ＴＬ＋ＴＳで入力値が論理「０」に変化しても、反転して供給されているクロック信号ＣＫＢ'の次の立ち上がりエッジまで出力値を論理「０」で維持する。【００９０】
したがって、比較記憶回路ＦＦＣ１の出力値を監視することで、演算回路Ｌ１Ａで発生した遅延時間が増大する故障要因を検出できる。【００９１】
図９は、第２実施例の半導体集積回路において、演算回路Ｌ１Ｂで遅延時間が増大する故障要因が発生しているときの動作を示すタイミングチャートである。【００９２】
なお、図９に示すクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'は、図７に示したクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'と同様である。また、図９に示す動作例では、時刻０から時刻ＴＬまでは図７のタイミングチャートで示した動作例と同様に動作する。したがって、ここではその説明を省略する。【００９３】
図９に示すように、演算回路Ｌ１Ｂは、遅延時間が増大する故障要因が発生しているため、時刻ＴＬで値Ｄ３が入力されると、時刻ＴＬ＋Ｄ（Ｌ１（Ｄ３））＋ｄで出力値をＦ（Ｄ３）に変化させる。【００９４】
時刻ＴＬ＋ＴＳになると、記憶回路ＦＦ０Ａは、クロック信号ＣＫＡの立ち上がりエッジに同期して入力値Ｄ４を保持して出力し、記憶回路ＦＦ１Ａは、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ３）を保持して出力する。また、記憶回路ＦＦ０Ｂは、クロック信号ＣＫＢの立ち上がりエッジに同期して入力値Ｄ４を保持して出力する。【００９５】
記憶回路ＦＦ１Ｂは、演算回路Ｌ１Ｂの出力値がＦ（Ｄ２）であるため、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ２）を再び保持して出力する。記憶回路ＦＦ１Ｂは、時刻ＴＬ＋Ｄ（Ｌ１（Ｄ３））＋ｄで入力値がＦ（Ｄ３）に変化しても、クロック信号ＣＫＢ’の次の立ち上がりエッジまで出力値をＦ（Ｄ２）で維持する。【００９６】
時刻ＴＬ＋ＴＳでは、記憶回路ＦＦ１Ａの出力値Ｆ（Ｄ３）と記憶回路ＦＦ１Ｂの出力値Ｆ（Ｄ２）とが一致しない。そのため、比較回路Ｃ１は出力値が変化する（図９に示す例では、論理「０」から論理「１」）。【００９７】
比較記憶回路ＦＦＣ１は、時刻ＴＬ＋ＴＳ＋ＴＬ／２になると、比較回路Ｃ１の出力値（図９に示す例では、論理「１」）を保持して出力する。【００９８】
したがって、比較記憶回路ＦＦＣ１の出力値を監視することで、演算回路Ｌ１Ｂで発生している遅延時間が増大する故障要因を検出できる。
（第３実施例）
図１０は第３実施例の半導体集積回路の構成を示すブロック図である。【００９９】
図１０に示すように、第３実施例の半導体集積回路は、図６に示した第２実施例の半導体集積回路が備える反転回路ＮＯＴに代えて、遅延回路ｄ１を用いてクロック信号ＣＫＢ'を遅延させた信号を比較記憶回路ＦＦＣ１に供給する構成である。その他の構成及び動作は第２実施例と同様であるため、その説明は省略する。【０１００】
このような構成でも、第２実施例と同様に、各論理回路が正常に動作していれば、比較記憶回路ＦＦＣ１の出力値が変化しないため、比較記憶回路ＦＦＣ１の出力値を監視するだけで、遅延時間の増大する故障要因が発生した否かを判別できる。
（第４実施例）
第４実施例の半導体集積回路は、各論理回路に供給するクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'が上述した条件（７）、（８）を満たす例である。第４実施例の半導体集積回路の構成は、第２実施例と同様であるため、その説明は省略する。【０１０１】
図１１は、第４実施例の半導体集積回路において、故障要因が発生していないときとの動作を示すタイミングチャートである。【０１０２】
図１１に示すように、クロック信号ＣＫＡ及びＣＫＢは、第１の周期ＴＳと第１の周期ＴＳよりも長い第２の周期ＴＬとを交互に繰り返す信号である。また、クロック信号ＣＫＡ’及びＣＫＢ'は、周期Ｔの信号である。すなわち、各論理回路に供給するクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'が上述した条件（７）、（８）を満たしている。【０１０３】
図１１に示すように、時刻０において、記憶回路ＦＦ０Ａは、クロック信号ＣＫＡの立ち上がりエッジに同期して入力値Ｄ２を保持して出力し、記憶回路ＦＦ１Ａは、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ１）を保持して出力する。また、記憶回路ＦＦ０Ｂは、クロック信号ＣＫＢの立ち上がりエッジに同期して入力値Ｄ２を保持して出力し、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ１）を保持して出力する。【０１０４】
時刻０で値Ｄ２が入力された演算回路Ｌ１Ａ及びＬ１Ｂは、時刻Ｄ（Ｌ１（Ｄ２））になると、その出力値をＦ（Ｄ２）に変化させる。すなわち、時間Ｄ（Ｌ１（Ｄ２））は、演算回路Ｌ１Ａ及びＬ１Ｂの正常時における値Ｄ２の演算で必要な演算時間である。【０１０５】
時刻ＴＳになると、記憶回路ＦＦ０Ａは、クロック信号ＣＫＡの立ち上がりエッジに同期して入力値Ｄ３を保持すると共に出力し、記憶回路ＦＦ１Ａは、クロック信号ＣＫＢの立ち上がりエッジに同期して入力値Ｄ３を保持して出力する。時刻ＴＳでは、記憶回路ＦＦ０Ｂ及びＦＦ１Ｂが動作しないため、記憶回路ＦＦ１Ａの出力値Ｆ（Ｄ２）と記憶回路ＦＦ１Ｂの出力値Ｆ（Ｄ２）とが一致する。そのため、比較回路Ｃ１は出力値が変化しない（図１１に示す例では、論理「０」）。【０１０６】
時刻ＴＳで値Ｄ３が入力された演算回路Ｌ１Ａ及びＬ１Ｂは、時刻ＴＳ＋Ｄ（Ｌ１（Ｄ３））になると、出力値をＦ（Ｄ３）に変化させる。すなわち、時間Ｄ（Ｌ１（Ｄ３））は、演算回路Ｌ１Ａ及びＬ１Ｂの正常時における値Ｄ３の演算で必要な演算時間である。【０１０７】
次に、時刻Ｔになると、記憶回路ＦＦ１Ａは、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ２）を保持して出力し、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ２）を保持して出力する。時刻Ｔでは、記憶回路ＦＦ１Ａの出力値Ｆ（Ｄ２）と記憶回路ＦＦ１Ｂの出力値Ｆ（Ｄ２）とが一致  する。そのため、比較回路Ｃ１は出力値が変化しない（図１１に示す例では、論理「０」）。【０１０８】
続いて、時刻ＴＬ＋ＴＳ（＝２Ｔ）になると、記憶回路ＦＦ０Ａはクロック信号ＣＫＡの立ち上がりエッジに同期して入力値Ｄ４を保持して出力し、記憶回路ＦＦ１Ａは、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ３）を保持して出力する。また、記憶回路ＦＦ０Ｂは、クロック信号ＣＫＢの立ち上がりエッジに同期して入力値Ｄ４を保持して出力し、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ３）を保持して出力する。【０１０９】
以降、第４実施例の半導体集積回路は、図１１に示す時刻０から時刻ＴＬ＋ＴＳ（＝２Ｔ）までの動作と同様の動作を繰り返す。【０１１０】
図１１に示す動作例では、比較回路Ｃ１の出力値及び比較記憶回路ＦＦＣ１の出力値が変化しない。すなわち、第４実施例の半導体集積回路は、正常に動作している場合、比較記憶回路ＦＦＣ１の出力値が変化しない。【０１１１】
図１２は、第４実施例の半導体集積回路において、演算回路Ｌ１Ａで遅延時間が減少する故障要因が発生しているときの動作を示すタイミングチャートである。【０１１２】
なお、図１２に示すクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'は、図１１に示したクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'と同様である。また、図１２に示す動作例では、時刻０から時刻ＴＳまでは図１１のタイミングチャートで示した動作例と同様に動作する。したがって、ここではその説明を省略する。【０１１３】
図１２に示すように、演算回路Ｌ１Ａは、遅延時間が減少する故障要因が発生しているため、時刻ＴＳで値Ｄ３が入力されると、時刻ＴＳ＋Ｄ（Ｌ１（Ｄ３））−ｄで出力値をＦ（Ｄ３）に変化させる。一方、時刻ＴＳで値Ｄ３が入力された演算回路Ｌ１Ｂは、時刻ＴＳ＋Ｄ（Ｌ１（Ｄ３））になると、出力値をＦ（Ｄ３）に変化させる。【０１１４】
時刻Ｔにおいて、記憶回路ＦＦ１Ａは、時刻ＴＳ＋Ｄ（Ｌ１（Ｄ３））−ｄで演算回路Ｌ１Ａの出力値がＦ（Ｄ３）に変化しているため、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ３）を保持して出力する。記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ２）を保持して出力する。時刻Ｔでは、記憶回路ＦＦ１Ａの出力値Ｆ（Ｄ３）と記憶回路ＦＦ１Ｂの出力値Ｆ（Ｄ２）とが一致しない。そのため、比較回路Ｃ１は出力値が変化する（図１２に示す例では、「論理「０」から論理「１」）。【０１１５】
比較記憶回路ＦＦＣ１は、時刻Ｔ＋Ｔ／２になると、比較回路Ｃ１の出力値（図１２に示す例では、論理「１」）を保持して出力する。【０１１６】
次に、時刻ＴＬ＋ＴＳ（＝２Ｔ）になると、記憶回路ＦＦ０Ａは、クロック信号ＣＫＡの立ち上がりエッジに同期して入力値Ｄ４を保持して出力する。記憶回路ＦＦ１Ａは、クロック信号ＣＫＡ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ３）を再び保持して出力する。また、記憶回路ＦＦ０Ｂは、クロック信号ＣＫＢの立ち上がりエッジに同期して入力値Ｄ４を保持して出力し、記憶回路ＦＦ１Ｂは、クロック信号ＣＫＢ’の立ち上がりエッジに同期して入力値Ｆ（Ｄ３）を保持して出力する。【０１１７】
時刻ＴＬ＋ＴＳでは、記憶回路ＦＦ１Ａの出力値Ｆ（Ｄ３）と記憶回路ＦＦ１Ｂの出力値Ｆ（Ｄ３）とが一致する。そのため、比較回路Ｃ１は出力値が元に戻る（図１２に示す例では、論理「１」から論理「０」）。比較記憶回路ＦＦＣ１は、時刻ＴＬ＋ＴＳ（＝２Ｔ）で入力値が論理「０」に変化しても、反転して供給されているクロック信号ＣＫＢ'の次の立ち上がりエッジまで出力値を論理「１」で維持する。【０１１８】
したがって、比較記憶回路ＦＦＣ１の出力値を観測することで、演算回路Ｌ１Ａで発生した遅延時間が減少する故障要因を検出できる。
（第５実施例）
図１３は第５実施例の半導体集積回路の動作を示すタイミングチャートである。【０１１９】
第５実施例の半導体集積回路は、各論理回路に供給するクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'が上述した条件（３）、（６）、（７）、（８）を満たす例である。第５実施例の半導体集積回路の構成は、第２実施例と同様であるため、その説明は省略する。【０１２０】
第５実施例の半導体集積回路によれば、演算回路Ｌ１Ａ及びＬ１Ｂの遅延時間が増大する故障要因及び遅延時間が減少する故障要因をそれぞれ検出可能である。なお、条件（１）及び（２）は条件（７）及び（８）に包含されている。
（第６実施例）
図１４は第６実施例の半導体集積回路の動作を示すタイミングチャートである。【０１２１】
第６実施例の半導体集積回路は、各論理回路に供給するクロック信号ＣＫＡ、ＣＫＡ'、ＣＫＢ及びＣＫＢ'が上述した条件（４）、（５）、（７）、（８）を満たす例である。第６実施例の半導体集積回路の構成は、第２実施例と同様であるため、その説明は省略する
第６実施例の半導体集積回路によれば、演算回路Ｌ１Ａ及びＬ１Ｂの遅延時間が増大する故障要因及び遅延時間が減少する故障要因をそれぞれ検出可能である。なお、条件（１）及び（２）は条件（７）及び（８）に包含されている。
（第７実施例）
図１５は第７実施例の半導体集積回路の構成を示すブロック図である。【０１２２】
第７実施例の半導体集積回路は、図４に示した第１実施例の半導体集積回路に加えて比較回路Ｃ０を備え、比較回路Ｃ０によって記憶回路ＦＦ０Ａの出力値と記憶回路ＦＦ０Ｂの出力値とが一致しているか否かの比較結果を出力する構成である。その他の構成及び動作は第１実施例の半導体集積回路と同様であるため、その説明は省略する。【０１２３】
第７実施例の半導体集積回路によれば、演算回路Ｌ１Ａ及びＬ１Ｂで発生している遅延時間が増大または減少する故障要因だけでなく、記憶回路ＦＦ０Ａ及びＦＦ０Ｂの前段に接続された、不図示の論理回路で発生している遅延時間が増大または減少する故障要因も検出できる。
（第８実施例）
図１６は第８実施例の半導体集積回路の構成を示すブロック図である。【０１２４】
第８実施例の半導体集積回路は、図１５に示した第７実施例の半導体集積回路が備える比較回路Ｃ１の出力に比較記憶回路ＦＦＣ１が接続され、比較回路Ｃ０の出力に比較記憶回路ＦＦＣ０が接続された構成である。比較記憶回路ＦＦＣ１及びＦＦＣ０には、反転回路ＮＯＴによりクロック信号ＣＫＢ'を反転させた信号がそれぞれ供給される。なお、比較記憶回路ＦＦＣ１及びＦＦＣ０には、クロック信号ＣＫＡ、ＣＫＡ’またはＣＫＢを反転させた信号を供給してもよい。また、比較記憶回路ＦＦＣ１及びＦＦＣ０には、第３実施例と同様にクロック信号ＣＫＡ、ＣＫＡ’、ＣＫＢまたはＣＫＢ’を遅延させた信号を供給してもよい。その他の構成及び動作は第７実施例の半導体集積回路と同様であるため、その説明は省略する。【０１２５】
第８実施例の半導体集積回路によれば、比較回路Ｃ１及びＣ０の比較結果を保持できるため、第２実施例の半導体集積回路と同様に、各論理回路が正常に動作していれば、比較記憶回路ＦＦＣ１及びＦＦＣ０の出力値が変化しない。そのため、比較記憶回路ＦＦＣ１及びＦＦＣ０の出力値を監視するだけで、演算回路Ｌ１Ａ及びＬ１Ｂで発生している遅延時間が増大または減少する故障要因、及び記憶回路ＦＦ０Ａ及びＦＦ０Ｂの前段に接続された不図示の論理回路で発生している遅延時間が増大または減少する故障要因を検出できる。
（第９実施例）
図１７は第９実施例の半導体集積回路の構成を示すブロック図である。【０１２６】
図１７に示すように、第９実施例の半導体集積回路は、複数の記憶回路ＦＦ０Ａ〜ＦＦｎＡ（ｎは正の正数）と複数の演算回路Ｌ１Ａ〜ＬｎＡ（図１７では、Ｌ１Ａ、Ｌ２Ａのみ表示）とが交互に接続された第１の論理回路と、複数の記憶回路ＦＦ０Ｂ〜ＦＦｎＢと複数の演算回路Ｌ１Ｂ〜ＬｎＢ（図１７では、Ｌ１Ｂ、Ｌ２Ｂのみ表示）とが交互に接続された第２の論理回路と、記憶回路ＦＦ０Ａ〜ＦＦｎＡの出力値と記憶回路ＦＦ０Ｂ〜ＦＦｎＢの出力値とが一致しているか否かの比較結果をそれぞれ出力する複数の比較回路Ｃ０〜Ｃｎとを備えた構成である。第１の論理回路と第２の論理回路とは同一の機能を備えている。【０１２７】
比較回路Ｃ０〜Ｃｎの出力には多入力比較回路Ｃｍｐが接続され、多入力比較回路Ｃｍｐの出力には比較記憶回路ＦＦＣが接続されている。比較記憶回路ＦＦＣには、クロック信号ＣＫＢ’を反転させた信号が供給される。なお、比較記憶回路ＦＦＣには、クロック信号ＣＫＡ、ＣＫＡ’またはＣＫＢを反転させた信号を供給してもよい。また、比較記憶回路ＦＦＣには、第３実施例と同様にクロック信号ＣＫＡ、ＣＫＡ’、ＣＫＢまたはＣＫＢ’を遅延させた信号を供給してもよい。【０１２８】
多入力比較回路Ｃｍｐは、比較回路Ｃ０〜Ｃｎの出力値のうち、少なくとも一つの出力値が他の出力値と一致しないとき、不一致を示す信号を出力する。【０１２９】
記憶回路ＦＦ０Ａ〜ＦＦｎＡ及びＦＦ０Ｂ〜ＦＦｎＢ、演算回路Ｌ１Ａ〜ＬｎＡ及びＬ１Ｂ〜ＬｎＢ、比較回路Ｃ０〜Ｃｎ並びに比較記憶回路ＦＦＣの動作は、第２実施例と同様であるため、その説明は省略する。【０１３０】
第９実施例の半導体集積回路によれば、複数の演算回路を備えた構成であっても、いずれかの演算回路で発生している遅延時間が増大または減少する故障要因を検出できる。
（第１０実施例）
図１８は第１０実施例の半導体集積回路の構成を示すブロック図である。【０１３１】
図１８に示すように、第１０実施例の半導体集積回路は、複数の記憶回路ＦＦ０Ａ〜ＦＦｎＡ（ｎは正の正数）と複数の演算回路Ｌ１Ａ〜ＬｎＡ（図１８では、Ｌ１Ａ、Ｌ２Ａのみ表示）とが交互に接続された第１の論理回路と、複数の記憶回路ＦＦ０Ｂ〜ＦＦｎＢと複数の演算回路Ｌ１Ｂ〜ＬｎＢ（図１８では、Ｌ１Ｂ、Ｌ２Ｂのみ表示）とが交互に接続された第２の論理回路と、記憶回路ＦＦ０Ｂ〜ＦＦｎＢの出力値と記憶回路ＦＦ０Ｂ〜ＦＦｎＢの出力値とが一致しているか否かの比較結果をそれぞれ出力する複数の比較回路Ｃ０〜Ｃｎとを備えた構成である。第１の論理回路と第２の論理回路とは同一の機能を備えている。【０１３２】
比較回路Ｃ０〜Ｃｎの出力にはマルチプレクサＭＵＸ０〜ＭＵＸｎが接続され、マルチプレクサＭＵＸ０〜ＭＵＸｎの出力には比較記憶回路ＦＦＣ０〜ＦＦＣｎが接続されている。比較記憶回路ＦＦＣ０〜ＦＦＣｎには、クロック信号ＣＫＢ’を反転させた信号がそれぞれ供給される。なお、比較記憶回路比較記憶回路ＦＦＣ０〜ＦＦＣｎには、クロック信号ＣＫＡ、ＣＫＡ’またはＣＫＢを反転させた信号を供給してもよい。また、比較記憶回路比較記憶回路ＦＦＣ０〜ＦＦＣｎには、第３実施例と同様にクロック信号ＣＫＡ、ＣＫＡ’、ＣＫＢまたはＣＫＢ’を遅延させた信号を供給してもよい。【０１３３】
マルチプレクサＭＵＸ０〜ＭＵＸｎは、不図示の制御信号にしたがって、半導体集積回路の通常動作時は比較回路Ｃ０〜Ｃｎの出力を選択して比較記憶回路ＦＦＣ０〜ＦＦＣｎへ出力する。【０１３４】
また、マルチプレクサＭＵＸ０〜ＭＵＸｎは、不図示の制御信号にしたがって、半導体集積回路のスキャンテスト時は前段の比較記憶回路ＦＦＣ０〜ＦＦＣｎ−１の出力を選択して比較記憶回路ＦＦＣ０〜ＦＦＣｎへ出力する。すなわち、半導体集積回路のスキャンテスト時、比較記憶回路ＦＦＣｉ（ｉ＝０〜ｎ）には前段の比較記憶回路ＦＦＣ（ｉ−１）の出力が入力され、周知のスキャンパスが形成される。【０１３５】
第１０実施例の半導体集積回路によれば、第９実施例の半導体集積回路と同様に複数の演算回路のいずれかで発生している遅延時間の増大や減少の故障要因を検出できると共に、比較記憶回路ＦＦＣ０〜ＦＦＣｎで保持された比較結果をシリアル信号として読み出すことで、故障要因が発生している演算回路を特定できる。
（第１１実施例）
図１９は第１１実施例の半導体集積回路の構成を示すブロック図である。【０１３６】
第１１実施例の半導体集積回路は、記憶回路ＦＦ０Ａ、ＦＦ１Ａ及びＦＦ０Ｂに共通のクロック信号ＣＫＡを供給し、記憶回路ＦＦ１Ｂにクロック信号ＣＫＢ’を供給する構成である。その他の構成及び動作は第１実施例と同様であるため、その説明は省略する。【０１３７】
第１１実施例の半導体集積回路では、演算回路Ｌ１Ａで発生する遅延時間が増大する故障要因、演算回路Ｌ１Ｂで発生する遅延時間が増大する故障要因及び演算回路Ｌ１Ｂで発生する遅延時間が減少する故障要因を検出することが可能である。【０１３８】
第１１実施例の半導体集積回路によれば、クロック信号用の配線数が低減するため、半導体集積回路のレイアウト面積を低減できる。
（第１２実施例）
図２０は第１２実施例の半導体集積回路の構成を示すブロック図である。【０１３９】
第１２実施例の半導体集積回路は、記憶回路ＦＦ０Ａ及びＦＦ１Ａに共通のクロック信号ＣＫＡを供給し、記憶回路ＦＦ０Ｂ及びＦＦ１Ｂに共通のクロック信号ＣＫＢを供給する構成である。その他の構成及び動作は第１実施例と同様であるため、その説明は省略する。【０１４０】
第１２実施例の半導体集積回路では、演算回路Ｌ１Ａ及びＬ１Ｂで発生する遅延時間が増大する故障要因を検出することが可能である。【０１４１】
第１２実施例の半導体集積回路によれば、クロック信号用の配線数が低減するため、半導体集積回路のレイアウト面積を低減できる。
（第１３実施例）
図２１は第１３実施例の半導体集積回路の構成を示すブロック図である。【０１４２】
図２１に示すように、第１３実施例の半導体集積回路は、複数の記憶回路ＦＦ０Ａ〜ＦＦｎＡ（図２１ではＦＦ０Ａ〜ＦＦ２Ａのみ表示）と複数の演算回路Ｌ１Ａ〜ＬｎＡ（図２１では、Ｌ１Ａ、Ｌ２Ａのみ表示）とが交互に接続された第１の論理回路と、複数の記憶回路ＦＦ０Ｂ〜ＦＦｎＢ（図２１ではＦＦ０Ｂ〜ＦＦ２Ｂのみ表示）と複数の演算回路Ｌ１Ｂ〜ＬｎＢ（図２１では、Ｌ１Ｂ、Ｌ２Ｂのみ表示）とが交互に接続された第２の論理回路と、記憶回路ＦＦ０Ｂ〜ＦＦｎＢの出力値と記憶回路ＦＦ０Ｂ〜ＦＦｎＢの出力値とが一致しているか否かの比較結果をそれぞれ出力する複数の比較回路Ｃ０〜Ｃｎと、故障判定回路Ｄ０、Ｄ１と、故障判定記憶回路ＦＦＤ０、ＦＦＤ１とを備えた構成である。第１の論理回路と第２の論理回路とは同一の機能を備えている。【０１４３】
故障判定回路Ｄ０には比較回路Ｃ０の出力値及び故障診断情報ｅｒｒＣＨＫが入力され、故障判定回路Ｄ１には比較回路Ｃ１の出力値及び故障診断情報ｅｒｒＣＨＫが入力される。故障判定回路Ｄ０の出力値は故障判定記憶回路ＦＦＤ０に入力され、故障判定回路Ｄ１の出力値は故障判定記憶回路ＦＦＤ１に入力される。【０１４４】
また、故障判定記憶回路ＦＦＤ０の出力値は故障判定回路Ｄ０へ入力され、故障判定記憶回路ＦＦＤ１の出力値は故障判定回路Ｄ１へ入力される。故障判定記憶回路ＦＦＤ０及びＦＦＤ１にはクロック信号ＣＫＥが供給されている。【０１４５】
故障診断情報は、故障診断対象の論理回路（第１の論理回路または第２の論理回路）及び故障要因の種類（遅延時間の増大または減少）を指定するための情報であり、各記憶回路に供給するクロック信号の周期に応じて変化する信号である。【０１４６】
例えば、第１の論理回路に短周期のクロック信号が供給され、第２の論理回路に長周期のクロック信号が供給されているとき、故障診断情報には第１の論理回路で遅延時間が減少する故障要因が発生しているか否かの診断（以下、遅延減少故障診断と称す）を指定する信号が用いられる。【０１４７】
一方、第１の論理回路に長周期のクロック信号が供給され、第２の論理回路に短周期のクロック信号が供給されているとき、故障診断情報には第２の論理回路の遅延減少故障診断を指定する信号が用いられる。【０１４８】
図２２は第１３実施例の半導体集積回路の動作を示すタイミングチャートである。【０１４９】
図２２は、クロック信号ＣＫＡとＣＫＡ’とが等しく、クロック信号ＣＫＢとＣＫＢ’とが等しく、クロック信号ＣＫＢの反転信号をクロック信号ＣＫＥとして故障判定記憶回路ＦＦＤ０及びＦＦＤ１へ供給するときの動作例を示している。【０１５０】
また、図２２に示す動作例では、時刻０から時刻ＴＳまでは図７のタイミングチャートで示した動作例と同様に動作する。したがって、ここではその説明を省略する。【０１５１】
時刻ＴＳでは、故障診断情報ｅｒｒＣＨＫとして、第１の論理回路の遅延減少故障診断を指定する信号（Ａ−ｓ）が入力される。このとき、記憶回路ＦＦ１ＡとＦＦ１Ｂの出力値が異なることを示す信号（論理「１」）が比較回路Ｃ１から出力されると、故障判定回路Ｄ１は比較回路Ｃ１の出力値をそのまま故障判定記憶回路ＦＦＤ１へ出力する。【０１５２】
故障判定記憶回路ＦＦＤ１は、時刻ＴＬ＋ＴＳ／２で故障判定回路Ｄ１の出力値を保持して出力する。故障判定記憶回路ＦＦＤ１の出力は故障判定回路Ｄ１へ入力され、以降、故障判定記憶回路ＦＦＤ１は、比較回路Ｃ１の出力値が変化しても故障検出の判定結果を維持する。【０１５３】
時刻ＴＬ＋ＴＳでは、故障診断情報ｅｒｒＣＨＫとして、第２の論理回路の遅延減少故障診断を指定する信号（Ｂ−ｓ）が入力される。このとき、記憶回路ＦＦ１ＡとＦＦ１Ｂの出力値が異なることを示す信号（論理「１」）が比較回路Ｃ１から出力されると、上記と同様に、故障判定回路Ｄ１は、比較回路Ｃ１の出力値を故障判定記憶回路ＦＦＤ１へ出力し、故障判定記憶回路ＦＦＤ１によってその判定結果が保持される。【０１５４】
第１３実施例の半導体集積回路は、比較回路の結果と故障診断情報から故障箇所と故障要因を判定するための故障判定回路と故障判定結果を記憶する故障判定記憶回路とを備えている。また、比較結果をパラレルに外部に読み出すことで、故障箇所及び発生している故障要因の種類を判別できる。
（第１４実施例）
図２３は第１４実施例の半導体集積回路の構成を示すブロック図である。【０１５５】
第１４実施例の半導体集積回路は、故障判定記憶回路ＦＦＤ０の出力値が次段の故障判定回路Ｄ１に入力される点で第１３実施例の半導体集積回路と異なっている。すなわち、本実施例の半導体集積回路では、複数の故障判定記憶回路によりスキャンパスが形成された構成である。その他の構成は第１３実施例と同様であるため、その説明は省略する。【０１５６】
例えば、故障判定回路Ｄ１から記憶回路ＦＦ１Ａの出力値とＦＦ１Ｂの出力値とが異なることを示す信号（論理「１」）が出力されている場合、その原因は、演算回路Ｌ１ＡまたはＬ１Ｂで故障要因が発生しているために記憶回路ＦＦ１Ａの出力値と記憶回路ＦＦ１Ｂの出力値とが異なるか、不図示の前段に接続された論理回路で故障要因が発生しているために記憶回路ＦＦ０Ａの出力値と記憶回路ＦＦ０Ｂの出力値とが異なるかのどちらかである。【０１５７】
したがって、故障判定回路Ｄ０の出力値が「故障なし」を示している場合、故障要因が発生しているのは演算回路Ｌ１ＡまたはＬ１Ｂであると判定できる。また、故障判定回路Ｄ０の出力値が「故障なし」を示している場合、故障要因が発生しているのは不図示の前段に接続された論理回路であると判定できる。
（第１５実施例）
図２４は第１５実施例の半導体集積回路の構成を示すブロック図である。【０１５８】
第１５実施例の半導体集積回路は、第１４実施例の半導体集積回路に加えて選択回路Ｓ１及びＳ２並びに故障判定記憶回路ＦＦＤ０Ｆ及びＦＦＤ１Ｆを備えた構成である。【０１５９】
選択回路Ｓ１は、演算回路Ｌ１Ａ及びＬ１Ｂと、記憶回路ＦＦ１Ａ及びＦＦ１Ｂ間に挿入されている。選択回路Ｓ２は、演算回路Ｌ２Ａ及びＬ２Ｂと、記憶回路ＦＦ２Ａ及びＦＦ２Ｂ間に挿入されている。【０１６０】
選択回路Ｓ１は、故障判定記憶回路ＦＦＤ０及びＦＦＤ１Ｆの出力値にしたがって、演算回路Ｌ１Ａの出力値または演算回路Ｌ１Ｂの出力値のいずれか一方を記憶回路ＦＦ１Ａ及びＦＦ１Ｂへ供給する。【０１６１】
選択回路Ｓ２は、故障判定記憶回路ＦＦＤ１及び次段に接続された不図示のＦＦＤ２Ｆの出力値にしたがって、演算回路Ｌ２Ａの出力値または演算回路Ｌ２Ｂの出力値のいずれか一方を記憶回路ＦＦ２Ａ及びＦＦ２Ｂへ出力する。【０１６２】
故障判定記憶回路ＦＦＤ０Ｆには、故障判定回路Ｄ０の出力値が入力され、故障判定記憶回路ＦＦＤ０Ｆの出力値は故障判定回路Ｄ０の入力へ帰還されている。また、故障判定記憶回路ＦＦＤ１Ｆには、故障判定回路Ｄ１の出力値が入力され、故障判定記憶回路ＦＦＤ１Ｆの出力値は故障判定回路Ｄ１の入力へ帰還されている。【０１６３】
故障判定記憶回路ＦＦＤ０は、クロック信号ＣＫＥの１サイクルの期間だけ故障判定回路Ｄ０の出力値（判定結果）を保持する回路であり、故障判定記憶回路ＦＦＤ０Ｆは、故障判定回路Ｄ０の判定結果を継続して保持するための回路である。【０１６４】
故障判定記憶回路ＦＦＤ１は、クロック信号ＣＫＥの１サイクルの期間だけ故障判定回路Ｄ１の判定結果を保持する回路であり、故障判定記憶回路ＦＦＤ１Ｆは、故障判定回路Ｄ１の判定結果を継続して保持するための回路である。その他の構成は第１４実施例の半導体集積回路と同様であるため、その説明は省略する。【０１６５】
第１５実施例の半導体集積回路では、例えば、故障判定回路Ｄ１によって演算回路Ｌ１Ａで故障要因が発生していると判定された場合、選択回路Ｓ１は、正常な演算回路Ｌ１Ｂの出力値を記憶回路ＦＦ１Ａ及びＦＦ１Ｂへ供給する。【０１６６】
その場合、次段の演算回路Ｌ２Ａには、クロック信号ＣＫＡ’の１サイクルの期間だけ記憶回路ＦＦ１Ａから誤った出力値が入力される。そのため、選択回路Ｓ２は、正しい入力値を受け取った演算回路Ｌ２Ｂの出力値を記憶回路ＦＦ２Ａ及びＦＦ２Ｂへ出力する。【０１６７】
図２５は第１５実施例の半導体集積回路の動作を示すタイミングチャートである。【０１６８】
図２５は、クロック信号ＣＫＡとＣＫＡ’とが等しく、クロック信号ＣＫＢとＣＫＢ’とが等しく、クロック信号ＣＫＢの反転信号をクロック信号ＣＫＥとして故障判定記憶回路ＦＦＤ０及びＦＦＤ１へ供給するときの動作例を示している。【０１６９】
図２５に示す動作例では、時刻０から時刻ＴＬ＋ＴＳ／２までは、図２２に示した第１３実施例と同様に動作するため、ここではその説明を省略する。【０１７０】
時刻ＴＬ＋ＴＳ／２において、故障判定記憶回路ＦＦＤ１、ＦＦＤ１Ｆが故障判定回路Ｄ１の判定結果を保持すると、選択回路Ｓ１は故障要因が発生していない演算回路の出力値を記憶回路ＦＦ１Ａ及びＦＦ１Ｂへ出力し、選択回路Ｓ２は正しい入力値を受け取った演算回路の出力値を記憶回路ＦＦ２Ａ及びＦＦ２Ｂへ供給する。
（第１６実施例）
図２６は第１６実施例の半導体集積回路の構成を示すブロック図である。【０１７１】
第１６実施例の半導体集積回路は、二重化された記憶回路ＦＦ０Ａ及びＦＦ０Ｂと、図２６に示す半導体集積回路の外部から入力される値を記憶する外部入力記憶回路ＦＦｉｎとを備えた構成である。【０１７２】
記憶回路ＦＦ０Ａ及びＦＦ０Ｂには、外部入力記憶回路ＦＦｉｎの出力値が入力される。記憶回路ＦＦ０Ａにはクロック信号ＣＫＡが供給され、記憶回路ＦＦ０Ｂにはクロック信号ＣＫＢが供給される。【０１７３】
外部入力記憶回路ＦＦｉｎには、記憶回路ＦＦ０Ａ、ＦＦ０Ｂが入力された値を保持するまで出力値を維持するためのクロック信号が供給される。例えば、外部入力記憶回路ＦＦｉｎがクロック信号の立ち上がりに同期して入力値を保持する構成の場合、外部入力記憶回路ＦＦｉｎにはクロック信号ＣＫＡとＣＫＢの論理積信号（ＣＫＡ＆ＣＫＢ）を供給すればよい。【０１７４】
図２７は第１６実施例の半導体集積回路の動作を示すタイミングチャートである。【０１７５】
図２７に示す動作例では、外部入力記憶回路ＦＦｉｎにクロック信号ＣＫＡとＣＫＢの論理積信号（ＣＫＡ＆ＣＫＢ）が供給されている。【０１７６】
この場合、クロック信号ＣＫＡ及びＣＫＢの立ち上がりで記憶回路ＦＦ０Ａ及びＦＦ０Ｂが入力された値を保持するまで、外部入力記憶回路ＦＦｉｎは出力値を維持できる。【０１７７】
第１６実施例の半導体集積回路によれば、二重化された論理回路と二重化されていない論理回路とを接続できるため、両者を混在して使用できる。そのため、高い信頼性が要求される論理回路のみを二重化し、それ以外の論理回路を二重化しないことで、必要以上に回路規模や消費電力が増大するのを抑制できる。また、既に設計された二重化されていない論理回路を用いることができるため、既存の設計回路資産を活用できる。
（第１７実施例）
図２８は第１７実施例の半導体集積回路の構成を示すブロック図である。【０１７８】
第１７実施例の半導体集積回路は、二重化された記憶回路ＦＦ０Ａ及びＦＦ０Ｂと、記憶回路ＦＦ０ＡまたはＦＦ０Ｂの出力値のいずれか一方を出力する選択回路Ｓ１と、選択回路Ｓ１の出力値を図２８に示す半導体集積回路の外部へ出力するための外部出力記憶回路ＦＦｏｕｔとを備えた構成である。【０１７９】
記憶回路ＦＦ０Ａ及びＦＦ０Ｂの出力値は選択回路Ｓ１へ出力され、選択回路Ｓ１は不図示の制御信号にしたがって記憶回路ＦＦ０Ａの出力値または記憶回路ＦＦ０Ｂの出力値のいずれか一方を外部出力記憶回路ＦＦｏｕｔへ出力する。記憶回路ＦＦ０Ａにはクロック信号ＣＫＡが供給され、記憶回路ＦＦ０Ｂにはクロック信号ＣＫＢが供給される。【０１８０】
外部出力記憶回路ＦＦｏｕｔには、記憶回路ＦＦ０Ａ及びＦＦ０Ｂの出力値が変化する前に入力された値を保持するためのクロック信号が供給される。例えば、外部出力記憶回路ＦＦｏｕｔがクロック信号の立ち上がりに同期して入力値を保持する構成の場合、外部出力記憶回路ＦＦｏｕｔには、クロック信号ＣＫＡとＣＫＢの論理和信号を供給すればよい。【０１８１】
図２９は第１７実施例の半導体集積回路の動作を示すタイミングチャートである。【０１８２】
図２９に示す動作例では、外部入力記憶回路ＦＦｉｎにクロック信号ＣＫＡとＣＫＢの論理和信号（ＣＫＡ｜ＣＫＢ）が供給されている。【０１８３】
この場合、クロック信号ＣＫＡ及びＣＫＢの立ち上がりで記憶回路ＦＦ０Ａ及びＦＦ０Ｂの出力値が変化する前に、外部出力記憶回路ＦＦｏｕｔは入力された値を保持できる。【０１８４】
第１７実施例の半導体集積回路によれば、第１６実施例と同様に、二重化された論理回路と二重化されていない論理回路とを接続できるため、両者を混在して使用できる。そのため、高い信頼性が要求される論理回路のみを二重化し、それ以外の論理回路を二重化しないことで、必要以上に回路規模や消費電力が増大するのを抑制できる。また、既に設計された二重化されていない論理回路を用いることができるため、既存の設計回路資産を活用できる。
（第１８実施例）
図３０は第１８実施例の半導体集積回路の構成を示すブロック図である。【０１８５】
図３０に示すように、第１８実施例の半導体集積回路は、記憶回路ＦＦ０Ａ、演算回路Ｌ１Ａ、演算回路Ｌ２Ａ、記憶回路ＦＦ１Ａ及び記憶回路ＦＦ２Ａを備えた第１の論理回路と、記憶回路ＦＦ０Ｂ、演算回路Ｌ１Ｂ、演算回路Ｌ２Ｂ、記憶回路ＦＦ１Ｂ及び記憶回路ＦＦ２Ｂを備えた第２の論理回路と、記憶回路ＦＦ０Ａの出力値と記憶回路ＦＦ０Ｂの出力値とが一致しているか否かの比較結果を出力する比較回路Ｃ０と、記憶回路ＦＦ１Ａの出力値と記憶回路ＦＦ１Ｂの出力値とが一致しているか否かの比較結果を出力する比較回路Ｃ１と、記憶回路ＦＦ２Ａの出力値と記憶回路ＦＦ２Ｂの出力値とが一致しているか否かの比較結果を出力する比較回路Ｃ２とを有する構成である。第１の論理回路と第２の論理回路とは同一の機能を備えている。【０１８６】
記憶回路ＦＦ０Ａの出力値は演算回路Ｌ１Ａ、Ｌ２Ａに入力され、演算回路Ｌ１Ａの出力値は記憶回路ＦＦ１Ａに入力され、演算回路Ｌ２Ａの出力値は記憶回路ＦＦ２Ａに入力される。記憶回路ＦＦ２Ａの出力値は演算回路Ｌ１Ａに入力される。【０１８７】
また、記憶回路ＦＦ０Ｂの出力値は演算回路Ｌ１Ｂ、Ｌ２Ｂに入力され、演算回路Ｌ１Ｂの出力値は記憶回路ＦＦ１Ｂに入力され、演算回路Ｌ２Ｂの出力値は記憶回路ＦＦ２Ｂに入力される。記憶回路ＦＦ２Ｂの出力値は演算回路Ｌ１Ｂに入力される。【０１８８】
記憶回路ＦＦ０Ａ及びＦＦ０Ｂの出力値は比較回路Ｃ０に入力され、記憶回路ＦＦ１Ａ及びＦＦ１Ｂの出力値は比較回路Ｃ１に入力され、記憶回路ＦＦ２Ａ及びＦＦ２Ｂの出力値は比較回路Ｃ２に入力される。【０１８９】
第１８実施例の半導体集積回路では、記憶回路ＦＦ０Ａにクロック信号ＣＫＡが供給され、記憶回路ＦＦ１Ａにクロック信号ＣＫＡ'が供給され、記憶回路ＦＦ２Ａにクロック信号ＣＫＡ'’が供給される。また、記憶回路ＦＦ０Ｂにクロック信号ＣＫＢが供給され、記憶回路ＦＦ１Ｂにクロック信号ＣＫＢ'が供給され、記憶回路ＦＦ２Ｂにクロック信号ＣＫＢ'’が供給される。【０１９０】
第１８実施例の半導体集積回路は、演算回路Ｌ１Ａによる演算処理を実行する前に演算回路Ｌ２Ａによる演算処理を実行する場合と実行しない場合の２通りの経路を備えている。さらに、第１８実施例の半導体集積回路は、演算回路Ｌ１Ｂによる演算処理を実行する前に演算回路Ｌ２Ｂによる演算処理を実行する場合と実行しない場合の２通りの経路を備えている。【０１９１】
図３１は第１８実施例の半導体集積回路の動作を示すタイミングチャートである。【０１９２】
図３１に示すように、本実施例で用いるクロック信号ＣＫＡは第１の周期Ｔ１Ａ、第２の周期Ｔ２Ａ及び第３の周期Ｔ３Ａを繰り返す信号であり、クロック信号ＣＫＡ’は第１の周期Ｔ１Ａ’、第２の周期Ｔ２Ａ’及び第３の周期Ｔ３Ａ’を繰り返す信号であり、クロック信号ＣＫＡ’’は第１の周期Ｔ１Ａ’’、第２の周期Ｔ２Ａ’’及び第３の周期Ｔ３Ａ’’を繰り返す信号である。【０１９３】
また、クロック信号ＣＫＢは第１の周期Ｔ１Ｂ、第２の周期Ｔ２Ｂ及び第３の周期Ｔ３Ｂを繰り返す信号であり、クロック信号ＣＫＢ’は第１の周期Ｔ１Ｂ’、第２の周期Ｔ２Ｂ’及び第３の周期Ｔ３Ｂ’を繰り返す信号であり、クロック信号ＣＫＢ’’は第１の周期Ｔ１Ｂ’’、第２の周期Ｔ２Ｂ’’及び第３の周期Ｔ３Ｂ’’を繰り返す信号である。【０１９４】
ここで、Ｔ１Ａ＜Ｔ１Ａ’の条件を満たすとき、記憶回路ＦＦ０Ａ、演算回路Ｌ１Ａ及び記憶回路ＦＦ１Ａから成る経路で発生している遅延減少故障を検出することが可能であり、Ｔ１Ａ＜Ｔ１Ａ’'のとき、記憶回路ＦＦ０Ａ、演算回路Ｌ２Ａ、及び記憶回路ＦＦ２Ａから成る経路で発生している遅延減少故障を検出することが可能である。【０１９５】
また、Ｔ１Ａ’’＋Ｔ２Ａ’’<Ｔ１Ａ＋Ｔ２Ａの条件を満たすとき、記憶回路ＦＦ２Ａ、演算回路Ｌ１Ａ及び記憶回路ＦＦ１Ａから成る経路で発生している遅延減少故障を検出することが可能である。【０１９６】
なお、図３１では例示していないが、第１８実施例の半導体集積回路では、Ｔ１Ｂ＜Ｔ１Ｂ’かつＴ１Ｂ＜Ｔ１Ｂ’’の条件を満たすとき、記憶回路ＦＦ０Ｂ、演算回路Ｌ１Ｂ及び記憶回路ＦＦ１Ｂから成る経路、並びに記憶回路ＦＦ０Ｂ、演算回路Ｌ２Ｂ及び記憶回路ＦＦ２Ｂから成る経路で発生している遅延減少故障を検出することが可能である。【０１９７】
また、Ｔ１Ｂ’’＋Ｔ２Ｂ’’＜Ｔ１Ｂ＋Ｔ２Ｂの条件を満たすとき、記憶回路ＦＦ２Ｂ、演算回路Ｌ１Ｂ及び記憶回路ＦＦ１Ｂから成る経路で発生している遅延減少故障を検出することが可能である。
（第１９実施例）
図３２は第１９実施例の半導体集積回路の構成を示すブロック図である。【０１９８】
図３２に示すように、第１９の実施例の半導体集積回路は、第１実施例〜第１８実施例で示した半導体集積回路Ｄに加えて、クロック生成回路ＣＧおよびクロック制御回路ＣＣを有する構成である。【０１９９】
クロック制御回路ＣＣは、半導体集積回路Ｄが備える２つの論理回路のうち、位置関係が同一である２つの記憶回路の出力値の比較結果、すなわち比較回路または比較記憶回路の出力値を参照し、該出力値に基づいてクロック生成回路ＣＧを制御するための制御信号を生成する。【０２００】
クロック生成回路ＣＧは、周期および／または位相が異なる複数のクロック信号ＣＫＡ，ＣＫＡ’，ＣＫＢ，ＣＫＢ’を外部クロック信号ＣＫから生成する。このクロック生成回路ＣＧが生成するクロック信号ＣＫＡ，ＣＫＡ’，ＣＫＢ，ＣＫＢ’の周期および位相は、クロック制御回路ＣＣから出力される制御信号にしたがって変更される。【０２０１】
クロック制御回路ＣＣは、半導体集積回路Ｄの動作中および／または動作前において、比較回路または比較記憶回路の出力値を参照する。そして、該出力値が２つの論理回路の出力の「不一致」を示している場合は半導体集積回路Ｄが誤動作していると判定し、第１実施例〜第１８実施例で示した各種の条件に基づきその原因を判定する。そして、該誤動作を回避するように複数のクロック信号の周期を長くするおよび／または複数のクロック信号の位相差を小さくするための制御信号をクロック生成回路ＣＧに出力する。【０２０２】
クロック生成回路ＣＧは、クロック制御回路ＣＣから出力された制御信号にしたがって、クロック信号ＣＫＡ，ＣＫＡ’，ＣＫＢ，ＣＫＢ’の周期および／または位相を変更する。【０２０３】
クロック制御回路ＣＣおよびクロック生成回路ＣＧは、例えば各種の論理ゲート回路、記憶回路、演算回路等から成るＬＳＩ、あるいはプログラムにしたがって処理を実行するＣＰＵ等によって実現できる。周期や位相が異なる複数のクロック信号は、上記非特許文献２等を参照することで生成できる。【０２０４】
本実施例の半導体集積回路によれば、半導体集積回路Ｄが備える比較回路または比較記憶回路の出力値に応じてクロック信号ＣＫＡ，ＣＫＡ’，ＣＫＢ，ＣＫＢ’の周期および／または位相を変更することで、半導体集積回路Ｄの誤動作を回避できる。
(第２０実施例)
図３３Ａは第２０実施例の半導体集積回路の構成を示すブロック図である。【０２０５】
図３３Ａに示すように、第２０の実施例の半導体集積回路は、第１９実施例で示した半導体集積回路に加えて、電源制御回路ＰＭを備えた構成である。【０２０６】
半導体集積回路Ｄは、第１実施例〜第１８実施例で示した半導体集積回路であり、クロック制御回路ＣＣおよびクロック生成回路ＣＧの構成および動作は第１９実施例の半導体集積回路と同様である。【０２０７】
電源制御回路ＰＭは、半導体集積回路Ｄに所要の電源電圧を供給する電源装置であり、クロック制御回路ＣＣから出力される制御信号にしたがって半導体集積回路Ｄに供給する電源電圧を変更する。【０２０８】
クロック制御回路ＣＣは、半導体集積回路Ｄの動作中および／または動作前において、第１９実施例と同様に、比較回路または比較記憶回路の出力値を参照する。そして、該出力値が２つの論理回路の出力の「不一致」を示している場合は半導体集積回路Ｄが誤動作していると判定し、第１実施例〜第１８実施例で示した各種の条件に基づきその原因を判定する。そして、誤動作の原因がセットアップ違反、すなわち演算回路の遅延時間の増大であると判定した場合は、電源制御回路ＰＭにより半導体集積回路Ｄに供給する電源電圧を上げて回路速度を速くする。
一方、誤動作の原因がホールド違反、すなわち演算回路の遅延時間の減少であると判定した場合は、電源制御回路ＰＭにより半導体集積回路Ｄに供給する電源電圧を下げて回路速度を遅くする。【０２０９】
図３４は第２０実施例の半導体集積回路が備えるクロック制御回路の処理手順を示すフローチャートである。【０２１０】
図３４に示すように、本実施例のクロック制御回路ＣＣは、まずクロック生成回路ＣＧで生成する各クロック信号の周期および位相をそれぞれ設定する。クロック制御回路ＣＧには、比較回路または比較記憶回路の出力値が「不一致」を示しても半導体集積回路Ｄとして許容可能な「不一致」の発生確率（以下、不一致確率と称す）の範囲（最大値及び最小値）が予め設定されている（ステップＡ１）。【０２１１】
半導体集積回路Ｄが動作を開始すると、クロック制御回路ＣＣは、動作中における不一致確率を算出し、該不一致確率が予め設定された許容可能な範囲内にあるか否かを判定する（ステップＡ２）。算出した不一致確率が予め設定された許容可能な範囲内にある場合、クロック制御回路ＣＣは、所定時間の経過後にステップＡ２の処理を再び実行する。【０２１２】
算出した不一致確率が予め設定された許容可能な範囲外である場合、クロック制御回路ＣＣは、該不一致確率が予め設定された許容範囲の最大値よりも大きいか否かを判定する（ステップＡ３）。【０２１３】
不一致確率が予め設定された許容範囲の最大値よりも大きい場合、クロック制御回路ＣＣは、回路速度が遅いために誤動作が起きていると判定し、電源制御回路ＰＭにより半導体集積回路Ｄに供給する電源電圧を上げて回路速度を速くする（ステップＡ４）。【０２１４】
一方、算出した不一致確率が予め設定された許容範囲の最小値よりも小さい場合、クロック制御回路ＣＣは、回路速度を遅くすることが可能であると判定し、電源制御回路ＰＭにより半導体集積回路Ｄに供給する電源電圧を下げて回路速度を遅くする（ステップＡ５）。そして、ステップＡ２の処理へ戻ってステップＡ２からＡ５の処理を繰り返す。【０２１５】
本実施例の半導体集積回路によれば、誤動作の原因に応じて半導体集積回路Ｄに供給する電源電圧を変更することで、誤動作を回避することが可能であると共に、半導体集積回路Ｄとして許容可能な範囲内で電源電圧を下げることができるため、回路速度を所要の範囲内で維持しつつ消費電力を低減できる。【０２１６】
なお、本実施例では、半導体集積回路の内部に電源制御回路ＰＭを備える構成例を示しているが、電源制御回路ＰＭは半導体集積回路の外部に独立して備えていてもよい。その場合、電源制御回路ＰＭは、比較回路または比較記憶回路の出力値に応じてクロック制御回路ＣＣで生成された制御信号を受け取り、該制御信号にしたがって半導体集積回路Ｄへ供給する電源電圧を変更すればよい。【０２１７】
また、本実施例では、比較回路または比較記憶回路の出力値に応じて半導体集積回路Ｄに供給する電源電圧を変更することで回路速度を制御する例を示しているが、半導体集積回路Ｄの回路性能が変更できれば、電源電圧を変更する構成に限定されるものではない。【０２１８】
例えば、図３３Ｂに示すように、本実施例の半導体集積回路は、比較回路または比較記憶回路の出力値に応じて半導体集積回路Ｄの周囲温度を制御するための温度制御装置ＴＣを備えていてもよい。【０２１９】
その場合、クロック制御回路ＣＣは、比較回路または比較記憶回路の出力値が２つの論理回路の出力の「不一致」を示している場合、上記と同様に半導体集積回路Ｄが誤動作していると判定してその原因を判定する。【０２２０】
そして、誤動作の原因がセットアップ違反、すなわち演算回路の遅延時間の増大であると判定した場合、温度制御装置ＴＣにより半導体集積回路Ｄの周囲温度を下げて回路性能を向上させ、誤動作の原因がホールド違反、すなわち演算回路の遅延時間の減少であると判定した場合、温度制御装置ＴＣにより半導体集積回路Ｄの周囲温度を上昇させて回路性能を低下させればよい。温度制御装置ＴＣには、例えばペルチェ素子等の温度制御素子、あるいはヒータやヒートシンク等を用いることができる。
(第２１実施例)
図３５は第２１実施例の半導体集積回路の構成を示すブロック図である。【０２２１】
図３５に示すように、第２１実施例の半導体集積回路は、図３３Ａに示した第２０実施例の半導体集積回路に加えて、不揮発メモリＭＥＭを備えた構成である。半導体集積回路Ｄは、第１実施例〜第１８実施例で示した半導体集積回路であり、クロック制御回路ＣＣ、クロック生成回路ＣＧおよび電源制御回路ＰＭの構成および動作は第１９実施例および第２０実施例に示した半導体集積回路と同様である。【０２２２】
不揮発メモリＭＥＭは、クロック制御回路ＣＣに接続され、クロック制御回路ＣＣで実行したクロック生成回路ＣＧや電源制御回路ＰＭに対する制御指示（制御内容）が保存される。【０２２３】
クロック制御回路ＣＣは、動作中および／または動作停止前に不揮発性メモリＭＥＭに制御内容を保存し、次に動作を開始する前または動作中、不揮発性メモリＭＥＭに保存された制御内容を読み込み、その内容にしたがってクロック生成回路ＣＧや電源制御回路ＰＭを制御する。このように制御内容を保存することで、クロック制御回路ＣＣは、動作停止前と同じ条件のクロック信号を生成できる。
(第２２実施例)
図３６は第２２実施例の半導体集積回路の構成を示すブロック図である。【０２２４】
第１実施例〜第１８実施例で示した半導体集積回路は、高い信頼性が要求されない状況で動作させる場合、必ずしも二重化された論理回路の両方を動作させる必要はない。【０２２５】
第２２実施例は、半導体集積回路Ｄが備える２つの論理回路のうち、一方の論理回路に対するクロック信号および電源電圧の供給をそれぞれ停止する例である。本実施例の半導体集積回路の構成は、図３３Ａ、Ｂに示した第２０実施例や図３５に示した第２１実施例と同様であるため、その説明は省略する。【０２２６】
図３６では、各論理回路が備える複数の記憶回路および演算回路を、模式的に二つの記憶回路と一つの演算回路とによって示している。【０２２７】
図３６に示すように、第２２実施例の半導体集積回路では、クロック制御回路ＣＣの制御により、クロック生成回路ＣＧから記憶回路ＦＦ０Ａ，ＦＦ１Ａに供給するクロック信号ＣＫＡ，ＣＫＡ’を停止させると共に、電源制御回路ＰＭから該記憶回路ＦＦ０Ａ，ＦＦ１Ａ及び演算回路Ｌ１Ａに供給する電源電を停止する。なお、本実施例では、クロック信号及び電源電圧をそれぞれ停止しているが、クロック信号または電源電圧のいずれか一方のみを停止してもよい。【０２２８】
本実施例のように、半導体集積回路Ｄが備える２つの論理回路のうち、一方の論理回路に対するクロック信号を停止すれば、該論理回路が備える記憶回路や演算回路の動作が停止するため、半導体集積回路Ｄの消費電流を低減できる。【０２２９】
また、論理回路に対するクロック信号を停止すると共に該論理回路に対する電源電圧を停止することで、記憶回路や演算回路の静止状態（動作を停止している状態）における消費電流も無くなるため、半導体集積回路Ｄの消費電力をさらに低減できる。
（第２３実施例）
図３７は第２３実施例の半導体集積回路の試験手順を示すフローチャートである。【０２３０】
第２３実施例では、第１９実施例〜第２２実施例で示した半導体集積回路のセットアップ時間やホールド時間が所定の仕様値を満たすか否かを判定するための試験方法の例を示す。【０２３１】
図３７に示すように、本実施例では、まず第１９実施例〜第２２実施例で示したクロック制御回路ＣＣにより、被試験対象となる半導体集積回路のセットアップ時間の仕様値を満たすようにクロック信号の周期差（例えば、図４に示したクロック信号ＣＫＡの第１の周期Ｔ１Ａと第２の周期Ｔ２Ａの差）を所要の値に設定する。また、クロック制御回路ＣＣにより、被試験対象となる半導体集積回路のホールド時間の仕様値を満たすようにクロック信号の位相差（例えば、図４に示したクロック信号ＣＫＡの第１の周期Ｔ１Ａとクロック信号ＣＫＡ'の第１の周期Ｔ１Ａ'との差）を所要の値に設定する（ステップＢ１）。【０２３２】
この条件の基で、予め作成されたテストパターンのうち、任意のテストベクトルを被試験対象の半導体集積回路へ入力し、クロック制御回路ＣＣにより、比較回路または比較記憶回路の出力値を観測する（ステップＢ２）。【０２３３】
ここで、比較回路または比較記憶回路の出力値に「不一致」を示す値が発生した場合、クロック制御回路ＣＣは、第１実施例〜第１８実施例で示した各種の条件に基づき誤動作の原因がセットアップ違反（セットアップエラー）であるか否かを判定する（ステップＢ３）。該原因がセットアップ違反、すなわち演算回路の遅延時間の増大である場合、被試験対象の半導体集積回路はセットアップ時間の仕様値を満たしていないと判断できる。【０２３４】
次に、クロック制御回路ＣＣは、第１実施例〜第１８実施例で示した各種の条件に基づき誤動作の原因がホールド違反（ホールドエラー）であるか否かを判定する（ステップＢ４）。該原因がホールド違反、すなわち演算回路の遅延時間の減少である場合、被試験対象の半導体集積回路はホールド時間の仕様値を満たしていないと判断できる。【０２３５】
比較回路または比較記憶回路の出力値に「不一致」を示す値が発生しない場合、クロック制御回路ＣＣは、予め作成されたテストパターンに含まれる全てのテストベクトルに対する処理を実施したか否かを判定する（ステップＢ５）。全てのテストベクトルに対する処理を実施していない場合は、ステップＢ２に戻ってステップＢ２〜Ｂ５の処理を繰り返す。【０２３６】
全てのテストベクトルに対する処理を終了し、全てのテストベクトルの入力に対して「不一致」を示す値が発生していない場合、被試験対象の半導体集積回路はセットアップ時間の仕様値およびホールド時間の仕様値をそれぞれ満たしていると判断できる。【０２３７】
一般に、半導体集積回路のセットアップ時間やホールド時間を専用の試験装置を用いてテストする場合、該半導体集積回路に供給するクロックの周期や位相を細かく設定できる高価な試験装置が必要となる。本実施例で示すテスト方法によれば、半導体集積回路に予め備えるクロック制御回路ＣＣおよびクロック生成回路ＣＧを用いてクロック信号の周期や位相を変更できるため、安価な試験装置で被試験対象の半導体集積回路が所要のセットアップ時間やホールド時間を満たすか否かを判定できる。【０２３８】
通常、複数のクロック信号で動作しない半導体集積回路では、それらクロック信号どうしの位相差を制御できないためホールド時間の試験を実施できない。それに対して本実施例の半導体集積回路では、複数のクロック信号の位相差を制御できるため、ホールド時間のテストが可能である。【０２３９】
なお、図３７に示した処理は、例えば図３３Ａに示した電源制御回路ＰＭにより半導体集積回路Ｄに供給する電源電圧をその動作保証範囲内の最小電圧や最大電圧に設定して実行してもよく、図３３Ｂに示した温度制御装置ＴＣにより半導体集積回路Ｄの周囲温度をその動作保証範囲内の最低温度や最高温度に設定して実行してもよい。このように半導体集積回路Ｄに供給する電源電圧や半導体集積回路Ｄの周囲温度を変更して半導体集積回路Ｄの試験を実施すれば、非試験対象の半導体集積回路が、電源電圧や温度の動作保証範囲内で動作するか否かも合わせて判定することができる。
（第２４実施例）
図３８は第２４実施例の半導体集積回路の試験手順を示すフローチャートである。【０２４０】
第２４実施例では、第１９実施例〜第２２実施例で示した半導体集積回路のセットアップ時間やホールド時間を求めるための試験方法の例を示す。【０２４１】
図３８に示すように、本実施例では、まず第１９実施例〜第２３実施例で示したクロック制御回路ＣＣにより、クロック信号の周期差（例えば、図４に示したクロック信号ＣＫＡの第１の周期Ｔ１Ａと第２の周期Ｔ２Ａの差）およびクロック信号の位相差（例えば、図４に示したクロック信号ＣＫＡの第１の周期Ｔ１Ａとクロック信号ＣＫＡ'の第１の周期Ｔ１Ａ'との差）をそれぞれ仮の値に設定する（ステップＣ１）。ここで、クロック信号の周期差は被試験対象となる半導体集積回路のセットアップ時間を測定するためのものであり、クロック信号の位相差は被試験対象となる半導体集積回路のホールド時間を測定するためのものである。【０２４２】
この条件の基で、予め作成されたテストパターンのうち、任意のテストベクトルを被試験対象の半導体集積回路へ入力し、クロック制御回路ＣＣにより、比較回路または比較記憶回路の出力値を観測する（ステップＣ２）。【０２４３】
ここで、比較回路または比較記憶回路の出力値に「不一致」を示す値が発生した場合、クロック制御回路ＣＣは、第１実施例〜第１８実施例で示した各種の条件から誤動作の原因がセットアップ違反（セットアップエラー）であるか否かを判定する（ステップＣ３）。該原因がセットアップ違反、すなわち演算回路の遅延時間の増大である場合、仮に設定した周期差をもつクロック信号ではセットアップ違反が起きると判断できる。その場合、クロック制御回路ＣＣは、被試験対象の半導体集積回路に供給する複数のクロック信号の周期差を小さくし（ステップＣ６）、ステップＣ２の処理に戻ってステップＣ２〜Ｃ３の処理を繰り返す。【０２４４】
誤動作の原因がセットアップ違反でない場合、クロック制御回路ＣＣは、第１実施例〜第１８実施例で示した各種の条件から誤動作の原因がホールド違反（ホールドエラー）であるか否かを判定する（ステップＣ４）。該原因がホールド違反、すなわち演算回路の遅延時間の減少である場合、仮に設定した位相差をもつクロック信号ではホールド違反が起きると判断できる。その場合、クロック制御回路ＣＣは、被試験対象の半導体集積回路に供給する複数のクロック信号の位相差を小さくし（ステップＣ７）、ステップＣ２に戻ってステップＣ２〜Ｃ４の処理を繰り返す。【０２４５】
比較回路または比較記憶回路の出力値に「不一致」を示す値が発生しない場合、クロック制御回路ＣＣは、予め作成されたテストパターンに含まれる全てのテストベクトルに対する判定処理を実施したか否かを判定する（ステップＣ５）。全てのテストベクトルに対する判定処理を実施していない場合は、ステップＣ２に戻ってステップＣ２〜Ｃ５の処理を繰り返す。【０２４６】
全てのテストベクトルに対するステップＣ２〜Ｃ５の処理を実施している場合、クロック制御回路ＣＣは、クロック生成回路ＣＧで生成している各クロック信号の周期が所定の精度（以下、時間精度と称す）を満たしているか否かを判定する（ステップＣ８）。【０２４７】
クロック生成回路ＣＧで生成している各クロック信号が所定の時間精度を満たしている場合、クロック制御回路ＣＣは処理を終了する。このとき、被試験対象の半導体集積回路に供給している複数のクロック信号の周期差が被試験対象の半導体集積回路のセットアップ時間であり、クロック信号間の位相差が被試験対象の半導体集積回路のホールド時間である。【０２４８】
クロック生成回路ＣＧで生成している各クロック信号が所定の時間精度を満たしていない場合、クロック制御回路ＣＣは、被試験対象の半導体集積回路に供給している複数のクロック信号の周期差を大きくする（ステップＣ９）。また、クロック制御回路ＣＣは、被試験対象の半導体集積回路に供給している複数のクロック信号の位相差を大きくし（ステップＣ１０）、ステップＣ２に戻ってステップＣ２〜Ｃ１０の処理を繰り返す。【０２４９】
本実施例で示す試験方法によれば、半導体集積回路が備えるクロック制御回路ＣＣおよびクロック生成回路ＣＧを用いてクロック信号の周期や位相を変更できるため、安価な試験装置で被試験対象となる半導体集積回路のセットアップ時間やホールド時間を測定できる。【０２５０】
通常、複数のクロック信号で動作しない半導体集積回路では、それらクロック信号どうしの位相差を制御できないためホールド時間の試験を実施できない。それに対して本実施例の半導体集積回路では、複数のクロック信号の位相差を制御できるため、ホールド時間のテストが可能である。【０２５１】
なお、本実施例においても、第２３実施例と同様に、図３８に示した処理は、例えば図３３Ａに示した電源制御回路ＰＭにより半導体集積回路Ｄに供給する電源電圧をその動作保証範囲内の最小電圧や最大電圧に設定して実行してもよく、図３３Ｂに示した温度制御装置ＴＣにより半導体集積回路Ｄの周囲温度をその動作保証範囲内の最低温度や最高温度に設定して実行してもよい。このように半導体集積回路Ｄに供給する電源電圧や半導体集積回路Ｄの周囲温度を変更して半導体集積回路Ｄの試験を実施すれば、非試験対象の半導体集積回路が、電源電圧や温度の動作保証範囲内で動作するか否かも合わせて判定することができる。【０２５２】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細は本願発明のスコープ内で当業者が理解し得る様々な変更が可能である。【０２５３】
この出願は、２００８年８月１日に出願された特願２００８−１９９４８３号及び２００９年２月９日に出願された特願２００９−０２７４２０号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2010013587.tif 000003
【図２】
2010013587.tif 000004
【図３】
2010013587.tif 000005
【図４】
2010013587.tif 000006
【図５Ａ】
2010013587.tif 000007
【図５Ｂ】
2010013587.tif 000008
【図５Ｃ】
2010013587.tif 000009
【図６】
2010013587.tif 000010
【図７】
2010013587.tif 000011
【図８】
2010013587.tif 000012
【図９】
2010013587.tif 000013
【図１０】
2010013587.tif 000014
【図１１】
2010013587.tif 000015
【図１２】
2010013587.tif 000016
【図１３】
2010013587.tif 000017
【図１４】
2010013587.tif 000018
【図１５】
2010013587.tif 000019
【図１６】
2010013587.tif 000020
【図１７】
2010013587.tif 000021
【図１８】
2010013587.tif 000022
【図１９】
2010013587.tif 000023
【図２０】
2010013587.tif 000024
【図２１】
2010013587.tif 000025
【図２２】
2010013587.tif 000026
【図２３】
2010013587.tif 000027
【図２４】
2010013587.tif 000028
【図２５】
2010013587.tif 000029
【図２６】
2010013587.tif 000030
【図２７】
2010013587.tif 000031
【図２８】
2010013587.tif 000032
【図２９】
2010013587.tif 000033
【図３０】
2010013587.tif 000034
【図３１】
2010013587.tif 000035
【図３２】
2010013587.tif 000036
【図３３Ａ】
2010013587.tif 000037
【図３３Ｂ】
2010013587.tif 000038
【図３４】
2010013587.tif 000039
【図３５】
2010013587.tif 000040
【図３６】
2010013587.tif 000041
【図３７】
2010013587.tif 000042
【図３８】
2010013587.tif 000043
【国際調査報告】
2010013587.tif 000044
2010013587.tif 000045