(57)【要約】      （修正有）【課題】半導体集積回路の誤動作によるデータの喪失等に対処するために、回路規模を増大させることなく、簡単な回路構成で実現できる誤動作検知回路を組み込む。温度や電源電圧といったアナログ量の測定に頼ることなく、誤動作対策を実行することができる半導体集積回路を提供することにより、半導体集積回路の信頼性を向上させる。【解決手段】検知対象である機能ブロック内のフリップフロップが同期しているクロックに比べて、位相が遅れたあるいは進んだクロックと同期するフリップフロップを設け、両フリップフロップの出力の間の論理演算を行うことにより、両フリップフロップでクロックパルス列のうちの適正なクロックパルスのエッジでラッチ動作が行われたかどうかを検知する。不適正なクロックパルスのエッジでラッチ動作が行われたと判断された場合、誤動作対策を実行する。【選択図】図１
2008028345.tif 000002
【特許請求の範囲】
【請求項１】
被検知対象であるフリップフロップを回路内に含む集積回路であって、
前記フリップフロップが、クロックパルス列における適正なクロックパルスのエッジでラッチ動作を行うか、当該エッジより遅れたあるいは進んだ不適正なクロックパルスのエッジでラッチ動作を行うかを検知する検知回路と、
不適正なクロックパルスのエッジでラッチ動作を行う場合、誤動作対策を実行する実行手段と
を備えることを特徴とする集積回路。
【請求項２】
前記フリップフロップは、組み合わせ回路の後段に接続されており、
前記適正なクロックパルスのエッジとは、クロックパルス列に含まれるクロックパルスのエッジのうち、組み合わせ回路の出力信号におけるセットアップまたはホールドの直後のクロックパルスのエッジであり、
前記フリップフロップが、不適正なクロックパルスのエッジでラッチ動作を行うのは、セットアップまたはホールドが所定の時間制約を満たさない場合である
ことを特徴とする請求項 1 記載の集積回路。
【請求項３】
前記検知回路は、
検知対象であるフリップフロップが同期しているクロックパルス列より位相が遅れたあるいは進んだクロックパルス列と同期しているフリップフロップを備え、
前記セットアップまたはホールドが所定の時間制約を満たさないかどうかの検知は、
検知対象であるフリップフロップの出力と、検知回路内のフリップフロップの出力との間の、論理演算を行うことでなされる
ことを特徴とする請求項 2 記載の集積回路。
【請求項４】
前記セットアップまたはホールドが所定の時間制約を満たさない場合は、
集積回路の周囲あるいは内部の温度が規定の温度範囲を越える場合、もしくは、集積回路の外部あるいは内部の電源電圧が規定の電圧範囲を越える場合であり、
前記検知回路は、集積回路内の組み合わせ回路のうち、セットアップまたはホールドが所定の時間制約を満たさない恐れのあるものの後段のフリップフロップに設けられている
ことを特徴とする請求項 2 記載の集積回路。
【請求項５】
前記集積回路はクロック供給回路を備え、
クロック供給回路は、ツリー接続された複数のバッファゲートと、複数のバッファゲートのうち最終段にあるものの出力に対し遅延調整を施す遅延調整回路とを備え、
前記組み合わせ回路が同期しているクロックは、最終段のバッファゲートの出力であり、
前記検知回路内のフリップフロップによるラッチ動作は、遅延調整回路により遅延調整がなされた出力に基づく
ことを特徴とする請求項 2 記載の集積回路。
【請求項６】
前記検知回路におけるフリップフロップのセットアップ時間またはホールド時間に対する時間制約は、検知対象であるフリップフロップの時間制約よりも長い
ことを特徴とする請求項 2 記載の集積回路。
【請求項７】
前記検知回路は、
機能ブロック内でセットアップ時間がワーストであるフリップフロップが存在する部位、または、機能ブロック内でホールド時間がワーストであるフリップフロップが存在する部位に配置される
ことを特徴とする請求項 1 から 6 記載の集積回路。
【請求項８】
前記検知回路は、
集積回路全体でセットアップ時間がワーストであるフリップフロップが存在する部位、または、集積回路全体でホールド時間がワーストであるフリップフロップが存在する部位に配置される
ことを特徴とする請求項 1 から 6 記載の集積回路。
【請求項９】
前記検知回路は、検知対象であるフリップフロップに入出力される配線経路上の任意の場所に配置されている
ことを特徴とする請求項 7 記載の集積回路。
【請求項１０】
前記検知回路は、検知対象であるフリップフロップに入出力される配線経路上の任意の場所に配置されている
ことを特徴とする請求項 8 記載の集積回路。
【請求項１１】
前記実行手段は、プロセッサ、揮発メモリ、不揮発メモリを含み、
前記誤動作対策は、プロセッサが揮発メモリに記憶しているデータを不揮発メモリに退避することでなされる
請求項 1 記載の集積回路。
【請求項１２】
実装基板における論理セルのレイアウトをネットリストに従って決定し、基板上の配線を決定する設計方法であって、
基板上の論理セルおよび配線からセル間の信号遅延を示す遅延情報を抽出し、当該信号遅延に基づき、論理セルのレイアウトを最適化する最適化ステップと、
最適化されたレイアウトに位置した論理セル内のフリップフロップであって検知対象とすべきものを選択するステップと、
選択されたフリップフロップの占有領域近辺に検知回路を配置し、選択されたフリップフロップと検知回路との接続関係を規定するようにネットリストを修正する修正ステップと、
を含むことを特徴とする集積回路の設計方法。
【請求項１３】
前記フリップフロップ選択ステップは、
集積回路上の組み合わせ回路の後段に接続されている複数のフリップフロップをランダムに選択する
ことを特徴とする請求項 12 記載の集積回路の設計方法。
【請求項１４】
前記フリップフロップ選択ステップは、
集積回路上の機能ブロックごとに、セットアップ時間がワーストであるフリップフロップ、および、ホールド時間がワーストであるフリップフロップを選択する
ことを特徴とする請求項 12 記載の集積回路の設計方法。
【請求項１５】
前記フリップフロップ選択ステップは、
集積回路上で、セットアップ時間がワーストであるフリップフロップ、および、ホールド時間がワーストであるフリップフロップを選択する
ことを特徴とする請求項 12 記載の集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の信頼性を向上させる技術に関する。
【背景技術】
【０００２】
近年、半導体チップの信頼性が重要視されており、半導体集積回路の誤動作を防止するために多数の技術が取り入れられている。半導体集積回路の回路特性に影響を与える主な要因としては、半導体チップの周囲あるいは内部の温度や、外部あるいは内部の電源電圧が挙げられる。
一般に製品として出荷される半導体チップには、製品仕様として一定の温度範囲および電圧範囲において動作保証がなされており、製品仕様外で使用された場合は、半導体集積回路の誤動作により、それを用いて動作しているプロセッサが暴走して制御不能に陥ったり、リセットがかかってデータが失われてしまう危険性がある。
【０００３】
このような半導体集積回路の誤動作を防止する技術に関しては、以下の特許文献 1, 2に記載された文献公知発明が存在する。
特許文献 1 に開示されている温度センサ回路は、ゲート長とゲート幅の比が異なる 2つの MOS トランジスタで差動対を構成し、この差動対トランジスタの負荷にゲート長とゲート幅の比が異なる 2 つの MOS トランジスタからなるカレントミラー回路を設け、カレントミラー回路のミラー比と差動対トランジスタのドレイン電流比が等しくなるようにカレントミラー回路の出力を差動対トランジスタに帰還制御するようにすることで、差動対トランジスタの 2 入力間に温度に比例した電圧が得られ、温度センサ回路を CMOS集積回路上に CMOS トランジスタで実現している。温度センサ回路は、様々な用途に用いられているが、例えば、ある基準の温度に対して高いか低いかを判定する場合には、温度センサ回路の出力を比較するために、電圧比較回路および基準電圧発生回路を備えて実現している。
【０００４】
特許文献 2 に開示されている電源電圧検知回路は、電源電圧を分圧して出力する分圧回路と、基準電圧を出力する基準電圧発生回路と、前記分圧回路の出力電圧と前記基準電圧とを比較し、比較結果を出力する比較回路を備えて実現している。
【特許文献１】特開平 5-45233 号公報
【特許文献２】特開平 6-34676 号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、仕様外の動作でなくても、リセットが発生してデータの喪失を招くことがある。この場合、従来技術による温度変動や電圧変動を検知するだけではかかる喪失を防ぎ得ずデータ喪失の防止に万全を期せないという問題点がある。
上記の従来技術による誤動作検知は、半導体チップの周囲あるいは内部の温度や外部あるいは内部の電源電圧の変動を対象としているが、不測のリセットは半導体チップ上の様々な箇所での局所的な温度や電源電圧の変動が要因であるといわれている。かかる変動をもれなく検知するには、チップ上のあらゆる箇所に特許文献 1 および 2 に示した温度センサ、比較回路を設けておく必要があるが、これは現実的ではない。なぜなら、上記の従来の誤動作検知は、温度や電源電圧といったアナログ量に依拠しているので、これらの測定のための素子を組み込む必要があり、組み込む場所や集積度に限界があるからである。
【０００６】
本発明の目的は、温度や電源電圧といったアナログ量の測定に頼ることなく、誤動作対策を実行することができる半導体集積回路を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明にかかる誤動作検知回路を含む半導体集積回路は、被検知対象であるフリップフロップを回路内に含む集積回路であって、
前記フリップフロップが、クロックパルス列における適正なクロックパルスのエッジでラッチ動作を行うか、当該エッジより遅れたあるいは進んだ不適正なクロックパルスのエッジでラッチ動作を行うかを検知する検知回路と、
不適正なクロックパルスのエッジでラッチ動作を行う場合、誤動作対策を実行する実行手段と
を備えることを特徴とする集積回路である。
【発明の効果】
【０００８】
上述した構成では、検知回路は、クロック信号における所定のエッジでラッチ動作を行うか、当該エッジより遅れたあるいは進んだエッジでラッチ動作を行うかを検知するので、アナログ量の測定に依拠することなく、誤動作を検知し対策を実行することができる。ラッチが遅れたかどうか、あるいは、進んだかどうかを判断する検知回路は、論理素子で形成することができるので、場所を選ばずとも、検知回路を組み込むことができ、集積度を高めることができる。半導体集積回路内に検知回路を組み込むので、リアルタイムに誤動作を検知することができ、予めデータ喪失を防止するように RAM 上のデータを退避するなどの誤動作対策をプロセッサに行わせることができる。
【０００９】
ここで、フリップフロップは、組み合わせ回路の後段に接続されており、
適正なクロックパルスのエッジとは、クロックパルス列に含まれるクロックパルスのエッジのうち、組み合わせ回路の出力信号におけるセットアップまたはホールドの直後のクロックパルスのエッジであり、
フリップフロップが、適正なクロックパルスのエッジで正常なラッチ動作を行わないのは、セットアップまたはホールドが所定の時間制約を満たさない場合である
ことを特徴とする集積回路とすることができる。
【００１０】
組み合わせ回路における遅延時間が変化すると、セットアップまたはホールドが所定の時間制約を満たすことができなくなるように回路構成を組むことで、所定のエッジから遅れたあるいは進んだエッジでラッチ動作が行われることを半導体集積回路の誤動作として検知できる。
ここで、検知回路は、
検知対象であるフリップフロップが同期しているクロックパルス列より位相が遅れたあるいは進んだクロックパルス列と同期しているフリップフロップを備え、
セットアップまたはホールドが所定の時間制約を満たさないかどうかの検知は、
検知対象であるフリップフロップの出力と、検知回路内のフリップフロップの出力との間の、論理演算を行うことでなされる
ことを特徴とする集積回路とすることができる。
【００１１】
セットアップまたはホールドが所定の時間制約を満たさないかどうかを、フリップフロップと論理素子を追加するだけで簡単に実現でき、このようなフリップフロップと論理素子の追加は場所を選ばないので、半導体集積回路上の任意の場所の誤動作を検知することができる。
ここで、セットアップまたはホールドが所定の時間制約を満たさない場合は、
集積回路の周囲あるいは内部の温度が規定の温度範囲を越える場合、もしくは、集積回路の外部あるいは内部の電源電圧が規定の電圧範囲を越える場合であり、
検知回路は、集積回路内の組み合わせ回路のうち、セットアップまたはホールドが所定の時間制約を満たさない恐れのあるものの後段のフリップフロップに設けられている
ことを特徴とする集積回路とすることができる。
【００１２】
半導体集積回路の誤動作の主な原因は、温度あるいは電源電圧が製品仕様範囲を超過することにあるので、温度あるいは電源電圧が変動することにより回路のパラメータが変化するとエラーを検知できるように回路を構成することで、基準温度や基準電圧と比較することなく、半導体集積回路の誤動作を検知できる。
ここで、集積回路はクロック供給回路を備え、
クロック供給回路は、ツリー接続された複数のバッファゲートと、複数のバッファゲートのうち最終段にあるものの出力に対し遅延調整を施す遅延調整回路とを備え、
前記組み合わせ回路が同期しているクロックは、最終段のバッファゲートの出力であり、
前記検知回路内のフリップフロップによるラッチ動作は、遅延調整回路により遅延調整がなされた出力に基づく
ことを特徴とする集積回路とすることができる。
【００１３】
誤動作検知回路と被検知回路に入力されるクロックを正確に同期あるいは正確に遅延または先行させることができるので、それぞれの回路に入力されるまでの経路において受ける温度変動や電圧変動の影響をなくすことができる。
ここで、検知回路におけるフリップフロップのセットアップ時間またはホールド時間に対する時間制約は、検知対象であるフリップフロップの時間制約よりも長い
ことを特徴とする集積回路とすることができる。
【００１４】
検知対象であるフリップフロップよりも長いセットアップ時間制約あるいはホールド時間制約のフリップフロップを備えた誤動作検知回路を用いることにより、半導体集積回路の誤動作を事前に検知することができる。
ここで、検知回路は、
機能ブロック内でセットアップ時間がワーストであるフリップフロップが存在する部位、または、機能ブロック内でホールド時間がワーストであるフリップフロップが存在する部位に配置される
ことを特徴とする集積回路とすることができる。
【００１５】
半導体集積回路上の機能ブロックごとに最も誤動作の起こりやすい箇所に誤動作検知回路を配置することで、機能ブロック全体を代表して誤動作を検知することができる。
ここで、検知回路は、
集積回路全体でセットアップ時間がワーストであるフリップフロップが存在する部位、または、集積回路全体でホールド時間がワーストであるフリップフロップが存在する部位に配置される
ことを特徴とする集積回路とすることができる。
【００１６】
半導体集積回路上の最も誤動作の起こりやすい箇所に誤動作検知回路を配置することで、半導体集積回路全体を代表して誤動作を検知することができる。
ここで、前記検知回路は、検知対象であるフリップフロップに入出力される配線経路上の任意の場所に配置されている
ことを特徴とする集積回路とすることができる。
【００１７】
被検知回路に入力される配線経路の任意の場所に誤動作検知回路を配置することで、機能ブロックごとに、被検知回路から離れた位置に誤動作検知回路を配置することができる。
ここで、前記検知回路は、検知対象であるフリップフロップに入出力される配線経路上の任意の場所に配置されている
ことを特徴とする集積回路とすることができる。
【００１８】
被検知回路に入力される配線経路の任意の場所に誤動作検知回路を配置することで、半導体集積回路上に、被検知回路から離れた位置に誤動作検知回路を配置することができる。
ここで、実行手段は、プロセッサ、揮発メモリ、不揮発メモリを含み、
誤動作対策は、プロセッサが揮発メモリに記憶しているデータを不揮発メモリに退避することでなされる
ことを特徴とする集積回路とすることができる。
【００１９】
揮発メモリに記憶しているデータを不揮発メモリに退避することで、リセットがかかってもデータの喪失を防ぐことができる。
ここで、実装基板における論理セルのレイアウトをネットリストに従って決定し、基板上の配線を決定する設計方法であって、
基板上の論理セルおよび配線からセル間の信号遅延を示す遅延情報を抽出し、当該信号遅延に基づき、論理セルのレイアウトを最適化する最適化ステップと、
最適化されたレイアウトに位置した論理セル内のフリップフロップであって検知対象とすべきものを選択するステップと、
選択されたフリップフロップの占有領域近辺に検知回路を配置し、選択されたフリップフロップと検知回路との接続関係を規定するようにネットリストを修正する修正ステップと、
を含むことを特徴とする集積回路の設計方法とすることができる。
【００２０】
誤動作検知回路がない場合の半導体集積回路をレイアウトした後、誤動作検知回路を付加し、レイアウトを修正するという方法をとることで、誤動作検知回路を埋め込んだ半導体集積回路を効率よく設計することができる。
ここで、フリップフロップ選択ステップは、
集積回路上の組み合わせ回路の後段に接続されている複数のフリップフロップをランダムに選択する
ことを特徴とする集積回路の設計方法とすることができる。
【００２１】
誤動作検知回路を配置する位置をランダムに選択することで、半導体集積回路上の特定の箇所に限定せずにサンプリングされた箇所の誤動作を検知する半導体集積回路を設計することができる。
ここで、フリップフロップ選択ステップは、
集積回路上の機能ブロックごとに、セットアップ時間がワーストであるフリップフロップ、および、ホールド時間がワーストであるフリップフロップを選択する
ことを特徴とする集積回路の設計方法とすることができる。
【００２２】
半導体集積回路上の機能ブロックごとに最も誤動作の起こりやすい箇所に誤動作検知回路を配置するように選択することで、機能ブロックごとの誤動作検知を行う半導体集積回路を設計することができる。
ここで、フリップフロップ選択ステップは、
集積回路上で、セットアップ時間がワーストであるフリップフロップ、および、ホールド時間がワーストであるフリップフロップを選択する
ことを特徴とする集積回路の設計方法とすることができる。
【００２３】
半導体集積回路上の最も誤動作の起こりやすい箇所に誤動作検知回路を配置するように選択することで、半導体集積回路全体の誤動作検知を行う半導体集積回路を設計することができる。
【発明を実施するための最良の形態】
【００２４】
〔実施形態 1〕
図 1 は、本発明の実施形態 1 に係る半導体集積回路の概略構成を示す図である。半導体集積回路は、機能ごとに分類された複数の機能ブロックから構成され、機能ブロックの内部には複数の組み合わせ回路が配置されている。機能ブロック内の特定の 組み合わせ回路の周辺の温度変動による誤動作を検知する場合、その組み合わせ回路の後段に誤動作検知回路を配置する。誤動作検知回路は、通常の半導体集積回路の機能を実現する信号 Q とは別に、誤動作検知信号 E を出力し、CPU (Central Processing Unit) に誤動作対策を実行させることができる。例えば、正常動作時において、ROM (Read Only Memory) のデータを読み取り、あるいは、RAM (Random Access Memory) のデータを読み書きしている CPU は、RAM のデータを EEPROM (Electronically Erasable and Programmable Read Only Memory) に退避する。
【００２５】
以下、誤動作検知回路の詳細について説明する。
《セットアップエラー検知》
図 2 は、本発明の実施形態 1 に係る半導体集積回路のセットアップエラーを検知する誤動作検知回路を示す図であり、半導体チップの機能を実現する ロジック回路 101 と、ロジック回路 101 を構成しているフリップフロップのセットアップエラーを検知する誤動作検知回路 102 とから構成される。以下、ロジック回路 101 および誤動作検知回路102 の正常動作時のタイミングチャートである図 3 を参照しながら、各回路構成要素について説明する。
【００２６】
ロジック回路 101 は、一般的なロジック回路の例として、クロック CK1 に同期したフリップフロップ 103 および 105 と、例えば、複数のバッファゲートから構成される組み合わせ回路 104 とから構成される。クロック CK1 は、例えば、図 3 に示すように、周期 Tc の矩形波である。誤動作検知回路 102 は、フリップフロップ 105 におけるセットアップエラーを検知する。
【００２７】
フリップフロップ 103 は、入力 Din1 に対して、クロック CK1 に同期した出力Qout1 を出力する。例えば、図 3 に示すように、入力 Din1 は、クロック CK1 の 1番目の立ち上がりエッジでトリガーされ、出力 Qout1 を出力する。ここで、フリップフロップ 103 のセル遅延を Td1 とする。
組み合わせ回路 104 は、遅延時間 Tdlogic をもち、例えば、図 3 に示すように、入力Qout1 に対して、出力 Din2 を出力する。
【００２８】
フリップフロップ 105 は、入力 Din2 に対して、クロック CK1 に同期した出力 Qout2を出力する。クロック CK1 の立ち上がりエッジに対する入力 Din2 のセットアップ時間 Tc - Td1 - Tdlogic と、フリップフロップ 105 のセットアップ時間制約 Tsu2 との間の関係が以下の式 1 を満たすとき、フリップフロップ 105 は、入力 Din2 をクロックCK1 の適正な立ち上がりエッジで正常にトリガーすることができる。
【００２９】
Tc - Td1 - Tdlogic≧ Tsu2 (1)
このとき、例えば、図 3 に示すように、入力 Din2 は、クロック CK1 の 2 番目の立ち上がりエッジでトリガーされ、出力 Qout2 を出力する。ここで、フリップフロップ 105のセル遅延を Td2 とする。
ロジック回路 101 において、入力 Din1 、出力 Qout2 、およびクロック CK1 は、実際に半導体チップの機能を実現するロジック回路の信号であり、以下で説明する誤動作検知回路 102 は半導体チップを動作したままリアルタイムに誤動作を検知するものである。
【００３０】
誤動作検知回路 102 は、クロック CK2 に同期したフリップフロップ 106 およびクロック CK1 に同期したフリップフロップ 108 と、入力信号の排他的論理和を演算する Ex-OR ゲート 107 とから構成される。クロック CK2 は、例えば、図 3 に示すように、クロック CK1 の位相を ΔT1 だけ遅らせたクロックである。クロック CK2 はフリップフロップ 105 のセットアップエラーを検知するためのクロックである。
【００３１】
フリップフロップ 106 は、入力 Din2 に対して、クロック CK2 に同期した出力 Qout3を出力する。クロック CK2 の立ち上がりエッジに対する入力 Din2 のセットアップ時間 (Tc + ΔT1) - Td1 - Tdlogic と、フリップフロップ 106 のセットアップ時間制約 Tsu3との間の関係が以下の式 2 を満たすとき、フリップフロップ 106 は、入力 Din2 をクロック CK2 の適正な立ち上がりエッジで正常にトリガーすることができる。
【００３２】
(Tc + ΔT1) - Td1 - Tdlogic≧ Tsu3 (2)
このとき、例えば、図 3 に示すように、入力 Din2 は、クロック CK2 の 2 番目の立ち上がりエッジでトリガーされ、出力 Qout3 を出力する。ここで、フリップフロップ 106のセル遅延を Td3 とする。
フリップフロップ 105 のセットアップ時間制約 Tsu2 とフリップフロップ 106 のセットアップ時間制約 Tsu3 との関係は、Tsu2 ≧ Tsu3 であるとする。
【００３３】
Ex-OR ゲート 107 は、フリップフロップ 105 の出力 Qout2 と フリップフロップ 106の出力 Qout3 を入力として、例えば、図 3 に示すように、両入力の排他的論理和を演算した結果を出力 Din4 として出力する。ここで、Ex-OR ゲート 107 のセル遅延を Tdgとする。
フリップフロップ 108 は、入力 Din4 に対して、クロック CK1 に同期した出力Eout を出力する。例えば、図 3 に示すように、クロック CK1 の立ち上がりエッジで入力 Din4 が常に "L" であるので、出力 Eout は常に "L" となる。これが正常動作時の誤動作検知回路 102 の出力である。
【００３４】
クロック CK1 およびクロック CK2 の供給回路および遅延調整回路については後述する。
次に、図 2 の ロジック回路 101 のセットアップエラーを検知する誤動作検知回路 102の誤動作時のタイミングチャートである図 4 を参照しながら、セットアップエラー検知の原理を説明する。
【００３５】
組み合わせ回路 104 で温度が上昇することで、組み合わせ回路 104 の遅延時間 Tdlogicが増大し、クロック CK1 の立ち上がりエッジに対する入力 Din2 のセットアップ時間Tc - Td1 - Tdlogic と、フリップフロップ 105 のセットアップ時間制約 Tsu2 との間の関係が以下の式 3 のようになると、フリップフロップ 105 は、入力 Din2 をクロック CK1の適正な立ち上がりエッジで正常にトリガーすることができず、セットアップエラーが起こる。
【００３６】
Tc - Td1 - Tdlogic < Tsu2 (3)
このとき、例えば、図 4 に示すように、入力 Din2 は、クロック CK1 の 3 番目の立ち上がりエッジでトリガーされ、出力 Qout2 を出力する。
フリップフロップ 106 においては、組み合わせ回路 104 の遅延時間 Tdlogic が増大しても、クロック CK2 の立ち上がりエッジに対する入力 Din2 のセットアップ時間(Tc + ΔT1) - Td1 - Tdlogic と、フリップフロップ 106 のセットアップ時間制約 Tsu3 との間の関係が式 2 を満たす限り、フリップフロップ 106 は、入力 Din2 をクロック CK2の適正な立ち上がりエッジで正常にトリガーすることができる。このとき、例えば、図 4に示すように、入力 Din2 は、クロック CK2 の 2 番目の立ち上がりエッジでトリガーされ、出力 Qout3 を出力する。
【００３７】
フリップフロップ 105 がセットアップエラーによって誤動作し、フリップフロップ 106が正常動作した場合、図 4 に示すように、Ex-OR ゲート 107 は出力 Din4 を出力する。その結果、フリップフロップ 108 において、入力 Din4 はクロック CK1 の立ち上がりエッジで "H" となるため、出力 Eout は、"H" を出力する。このようにして、セットアップエラーによる誤動作を検知することができる。
《ホールドエラー検知》
図 5 は、本発明の実施形態 1 に係る半導体集積回路のホールドエラーを検知する誤動作検知回路を示す図であり、半導体チップの機能を実現するロジック回路 101 と、ロジック回路 101 を構成しているフリップフロップのセットアップエラーを検知する誤動作検知回路 202 とから構成される。以下、ロジック回路 101 および誤動作検知回路 202 の正常動作時のタイミングチャートである図 6 を参照しながら、各回路構成要素について説明する。
【００３８】
ロジック回路 101 は、図 2 のロジック回路 101 と同様である。誤動作検知回路 102は、フリップフロップ 105 におけるホールドエラーを検知する。
クロック CK1 の立ち上がりエッジに対する入力 Din2 のホールド時間 Td1 + Tdlogicと、フリップフロップ 105 のホールド時間制約 Thd2 との間の関係が以下の式 4 を満たすとき、フリップフロップ 105 は Din2 をクロック CK1 の適正な立ち上がりエッジで正常に保持することができる。
【００３９】
Td1 + Tdlogic≧ Thd2 (4)
このとき、例えば、図 6 に示すように、入力 Din2 は、クロック CK1 の 4 番目の立ち上がりエッジでトリガーされ、出力 Qout2 を出力する。
誤動作検知回路 202 は、図 2 の誤動作検知回路 102 に、否定演算を行う NOT ゲート 109 を付加した回路構成である。クロック CK2 は、例えば、図 6 に示すように、クロック CK1 の位相を ΔT2 だけ進ませたクロックである。クロック CK2 は フリップフロップ 105 のホールドエラーを検知するためのクロックである。
【００４０】
クロック CK2 の立ち上がりエッジに対する入力 Din2 のホールド時間 ΔT2 + Td1 +Tdlogic と、フリップフロップ 106 のホールド時間制約 Thd3 との間の関係が以下の式 5を満たすとき、入力 Din2 をクロック CK2 の適正な立ち上がりエッジで正常に保持することができる。
ΔT2 + Td1 + Tdlogic≧ Thd3 (5)
このとき、例えば、図 6 に示すように、入力 Din2 は、クロック CK2 の 4 番目の立ち上がりエッジでトリガーされ、出力 Qout1 が出力される。
【００４１】
フリップフロップ 105 のホールド時間制約 Thd2 と フリップフロップ 106 のホールド時間制約 Thd3 との関係は、Thd2 ≧ Thd3 であるとする。
フリップフロップ 108 は、入力 Din4 に対して、クロック CK1 の反転クロックに同期した出力 Eout を出力する。例えば、図 6 に示すように、クロック CK1 の立ち下がりエッジで入力 Din4 が常に "L" であるので、出力 Eout は常に "L" となる。これが正常動作時の誤動作検知回路 202 の出力である。
【００４２】
クロック CK1 およびクロック CK2 の供給回路および遅延調整回路については後述する。
次に、図 5 のロジック回路 101 のホールドエラーを検知する誤動作検知回路 202 の誤動作時のタイミングチャートである 図 7 を参照しながら、ホールドエラー検知の原理を説明する。
【００４３】
組み合わせ回路 104 で温度が降下することで、組み合わせ回路 104 の遅延時間 Tdlogicが減少し、クロック CK1 の立ち上がりエッジに対する入力 Din2 のホールド時間Td1 + Tdlogic と、フリップフロップ 105 のホールド時間制約 Thd2 との間の関係が以下の式 6 のようになると、フリップフロップ 105 は、入力 Din2 をクロック CK1 の適正な立ち上がりエッジで正常に保持することができず、ホールドエラーが起こる。
【００４４】
Td1 + Tdlogic < Thd2 (6)
このとき、例えば、図 7 に示すように、入力 Din2 は、クロック CK1 の 3 番目の立ち上がりエッジでトリガーされ、出力 Qout2 を出力する。
フリップフロップ 106 においては、組み合わせ回路 104 の遅延時間 Tdlogic が減少しても、クロック CK2 の立ち上がりエッジに対する入力 Din2 のホールド時間ΔT2 + Td1 + Tdlogic と、フリップフロップ 106 のホールド時間制約 Thd3 との間の関係が式 5 を満たす限り、フリップフロップ 106 は、入力 Din2 をクロック CK2 の適正な立ち上がりエッジで正常に保持することができる。このとき、例えば、図 7 に示すように、入力 Din2 は、クロック CK2 の 4 番目の立ち上がりエッジでトリガーされ、出力 Qout3 を出力する。
【００４５】
フリップフロップ 105 がホールドエラーによって誤動作し、フリップフロップ 106 が正常動作した場合、図 7 に示すように、Ex-OR ゲート 107 は出力 Din4 を出力する。その結果、フリップフロップ 108 において、入力 Din4 はクロック CK1 の立ち下がりエッジで "H" となるため、出力 Eout は "H" を出力する。このようにして、ホールドエラーによる誤動作を検知することができる。
《クロック供給回路および遅延調整回路》
次に、図 2 および図 5 におけるクロック CK1 および CK2 について説明する。
【００４６】
図 8 は、クロック供給回路を示す図である。図 8 において、クロック供給回路は、クロック供給源 302 からバッファゲートを介して、順次同じ数で分岐するクロックツリー301 と、クロックツリー 301 の最終段の バッファゲート群 305 の各出力に付加した遅延調整回路 303 から構成される。遅延調整回路 303 は、遅延時間の異なる、3 種類のクロック 304 を出力する。
【００４７】
図 9 は、図 8 の遅延調整回路を示す図である。図 9 において、CKin は、図 8 のクロックツリー 301 の最終段の バッファゲート群 305 の各出力である。遅延調整回路は、バッファゲート群 401 によって遅延したクロック CKout1 と、バッファゲート群 401 と402 によって遅延したクロック CKout2 と、CKin と同じクロック CKout3 を出力する。
【００４８】
図 10 は、図 9 の遅延調整回路のタイミングチャートである。図 10 おいて、クロックCKout1 は、入力 CKin に対して Δt1 時間遅延した信号である。クロック CKout2 は、入力 CKin に対して (Δt1 + Δt2) 時間遅延した信号である。クロック CKout3 は、入力 CKin と同じ信号である。クロック CKout1 に対して、クロック CKout2 は Δt2時間遅れたクロックであり、クロック CKout3 は Δt1 時間進んだクロックである。
【００４９】
図 2 において、CK1 には図 10 のクロック CKout1 を供給し、CK2 には図 10 のクロック CKout2 を供給することで、セットアップエラーを検知することができる。
図 5 において、CK1 には図 10 のクロック CKout1 を供給し、CK2 には図 10 のクロック CKout3 を供給することで、ホールドエラーを検知することができる。
《検知結果》
図 11 は、図 2 および図 5 に示した誤動作検知回路を用いて、半導体チップの外部または内部の温度変動による回路誤動作を検知した場合の誤動作検知結果を示した図である。
【００５０】
図 11 において、誤動作範囲 1 では、図 5 に示した誤動作検知回路によりホールドエラーを検知し、誤動作範囲 2 では、図 2 に示した誤動作検知回路によりセットアップエラーを検知する。
図 2 および図 5 の誤動作検知回路は、簡単なロジック回路で構成することができるため、半導体チップの任意の箇所に複数個配置することができる。
【００５１】
このような構成により、半導体チップの外部または内部の温度変動による回路誤動作を検知することができる。
〔実施形態 2〕
《セットアップエラー検知》
図 12 は、本発明の実施形態 2 に係る半導体集積回路の誤動作検知回路で用いるセットアップエラーを検知する機能を有するフリップフロップの図である。フリップフロップ500 は、図 2 の組み合わせ回路 104 より後段の回路構成に、バッファゲート群 501 を付加した回路構成である。内部フリップフロップ 105 および 108 が、クロック CK により駆動し、内部フリップフロップ 106 が、クロック CK をバッファゲート群 501 によって ΔT1 時間遅らせたクロックにより駆動する点を除いて、図 12 のフリップフロップ500 の正常動作時および誤動作時の動作は、実施形態 1 で説明した図 3 および図 4 のタイミングチャートと同様である。従って、正常動作時は、検知結果 E は常に "L" を出力し、誤動作時は "H" を出力するので、セットアップエラーによる誤動作を検知することができる。
【００５２】
図 13 は、図 12 の フリップフロップ 500 において、内部フリップフロップ 106 のクロック入力を、フリップフロップ 500 の外部から供給するようにしたフリップフロップの図である。フリップフロップ 600 は、図 2 の組み合わせ回路 104 より後段の回路構成と同様である。図 13 のセットアップエラーを検知する機能を有するフリップフロップ600 の正常動作時および誤動作時の動作は、実施形態 1 で説明した図 3 および図 4 のタイミングチャートを同様である。従って、正常動作時は検知結果 E は常に "L" を出力し、誤動作時は "H" を出力するので、セットアップエラーによる誤動作を検知することができる。
《ホールドエラー検知》
図 14 は、本発明の実施形態 2 に係る半導体集積回路の誤動作検知回路で用いるホールドエラーを検知する機能を有するフリップフロップの図である。フリップフロップ 700は、図 5 の組み合わせ回路 104 より後段の回路構成に、バッファゲート群 701 を付加した回路構成である。内部フリップフロップ 106 および 108 が、クロック CK およびその反転クロックによりそれぞれ駆動し、内部フリップフロップ 105 が、クロック CK をバッファゲート群 701 によって ΔT2 時間遅らせたクロックにより駆動する点を除いて、図 14 のホールドエラーを検知する機能を有するフリップフロップ 700 の正常動作時および誤動作時の動作は、実施形態 1 で説明した図 6 および図 7 のタイミングチャートと同様である。従って、正常動作時は常に "L" を出力し、誤動作時は "H" を出力するので、ホールドエラーによる誤動作を検知することができる。
【００５３】
図 15 は、図 14 の フリップフロップ 700 において、内部フリップフロップ 105 のクロック入力を、フリップフロップ 700 の外部から供給するようにしたフリップフロップの図である。フリップフロップ 800 は、図 5 の組み合わせ回路 104 より後段の回路構成と同様である。図 15 のホールドエラーを検知する機能を有するフリップフロップ 800 の正常動作時および誤動作時の動作は、実施形態 1 で説明した図 6 および図 7 のタイミングチャートと同様である。従って、検知結果 E は、正常動作時は常に "L" を出力し、誤動作時は "H" を出力するので、ホールドエラーによる誤動作を検知することができる。
《検知結果》
図 12 から図 15 のフリップフロップを用いて半導体チップの外部または内部の温度変動による回路誤動作を検知した場合の誤動作検知結果は、実施形態 1 の図 11 と同様である。
【００５４】
図 12 から図 15 で示したフリップフロップは、簡単なロジック回路で構成できる複合的なフリップフロップであるため、容易に半導体チップの任意の箇所に複数個配置することができる。また、図 12 および図 14 については、各フリップフロップのクロック CKは、実際に半導体チップの機能を実現しているロジック回路を駆動するためのクロックであるため、誤動作検知のためのクロックを別途供給することなく配置することができる。
【００５５】
このような構成により、半導体チップの外部および内部の広範囲において、局所的な温度変動による回路誤動作を検知することができる。
〔実施形態 3〕
図 16 は、本発明の実施形態 3 に係る半導体集積回路の誤動作検知回路の概略図である。図 16 において、半導体集積回路 1001 は、例として、3 つの機能ブロック 1002、1003、1004 から構成される。各機能ブロック 1002、1003、1004 において、機能ブロックを構成しているフリップフロップの中で、セットアップ時間がワーストであるフリップフロップを、それぞれ、フリップフロップ 1005、1007、1009 とし、ホールド時間がワーストであるフリップフロップを、それぞれ、フリップフロップ 1006、1008、1010 とする。各機能ブロックのセットアップ時間およびホールド時間がワーストであるフリップフロップに対して、実施形態 1 および 2 で説明した誤動作検知回路を配置する。
【００５６】
このような構成により、機能ブロックごとに最低 2 つの誤動作検知回路を配置するだけで、半導体チップの外部および内部の温度変動による回路誤動作を検知することができる。
〔実施形態 4〕
図 17 は、本発明の実施形態 4 に係る半導体集積回路の誤動作検知回路の概略図である。半導体集積回路 1101 を構成しているフリップフロップの中で、セットアップ時間がワーストであるフリップフロップをフリップフロップ 1102 とし、ホールド時間がワーストであるフリップフロップをフリップフロップ 1103 とする。フリップフロップ 1102 およびフリップフロップ 1103 に対して、実施形態 1 および 2 で説明した誤動作検知回路を配置する。
【００５７】
このような構成により、半導体集積回路全体に対して最低 2 つの誤動作検知回路を配置するだけで、半導体チップの外部および内部の温度変動による回路誤動作を検知することができる。
〔実施形態 5〕
《ホールドエラー検知》
本発明の実施形態 5 に係る半導体集積回路のホールドエラーを事前に検知する誤動作検知回路を示す図は、図 2 と同様である。誤動作検知回路 102 は、フリップフロップ 106におけるホールドエラーを検知する。
【００５８】
ロジック回路 101 および誤動作検知回路 102 の正常動作時のタイミングチャートである図 18 は、誤動作検知回路 102 を駆動するクロック CK2 が、クロック CK1 をΔT1 だけ遅らせたクロックであることを除いて、図 6 と同様である。
フリップフロップ 105 は、クロック CK1 の立ち上がりエッジに対する入力 Din2 のホールド時間 Td1 + Tdlogic と、フリップフロップ 105 のホールド時間制約 Thd2 との間の関係が以下の式 7 を満たすとき、入力 Din2 をクロック CK1 の適正な立ち上がりエッジで正常に保持することができる。
【００５９】
Td1 + Tdlogic≧ Thd2 (7)
フリップフロップ 106 は、クロック CK2 の立ち上がりエッジに対する入力 Din2 のホールド時間 ΔT1 + Td1 + Tdlogic と、フリップフロップ 106 のホールド時間制約 Thd3との間の関係が以下の式 8 を満たすとき、入力 Din2 をクロック CK2 の適正な立ち上がりエッジで正常に保持することができる。
【００６０】
ΔT1 + Td1 + Tdlogic≧ Thd3 (8)
フリップフロップ 105 のホールド時間制約 Thd2 とフリップフロップ 106 のホールド時間制約 Thd3 との関係は、Thd2 ≦ Thd3 であるとする。
フリップフロップ 108 は、入力 Din4 に対して、クロック CK1 に同期した出力 Eoutを出力する。例えば、図 18 に示すように、クロック CK1 の立ち上がりエッジで入力Din4 が常に "L" であるので、出力 Eout は常に "L" となる。これが正常動作時の誤動作検知回路 102 の出力である。
【００６１】
次に、ロジック回路 101 およびホールドエラーを事前に検知する誤動作検知回路 102の誤動作時のタイミングチャートである図 19 を参照しながら、ホールドエラー検知の原理を説明する。
組み合わせ回路 104 で温度が降下することで、組み合わせ回路 104 の遅延時間 Tdlogicが減少しても、クロック CK1 の立ち上がりエッジに対する入力 Din2 のホールド時間Td1 + Tdlogic と、フリップフロップ 105 のホールド時間制約 Thd2 との間の関係が式 7を満たす限り、フリップフロップ 105 は、入力 Din2 をクロック CK1 の適正な立ち上がりエッジで正常に保持することができる。
【００６２】
フリップフロップ 106 においては、組み合わせ回路 104 の遅延時間 Tdlogic が減少し、クロック CK2 の立ち上がりエッジに対する入力 Din2 のホールド時間 Td1 +Tdlogic-ΔT1と、フリップフロップ 106 のホールド時間制約 Thd3 との間の関係が以下の式 9 のようになると、フリップフロップ 106 は、入力 Din2 をクロック CK2 の適正な立ち上がりエッジで正常に保持することができず、ホールドエラーが起こる。
【００６３】
Td1 + Tdlogic- ΔT1 < Thd3 (9)
このとき、例えば、図 19 に示すように、入力 Din2 は、クロック CK2 の 3 番目の立ち上がりエッジでトリガーされ、出力 Qout2 を出力する。
フリップフロップ 105 が正常動作し、フリップフロップ 106 がホールドエラーによって誤動作した場合、図 19 に示すように、Ex-OR ゲート 107 は出力 Din4 を出力する。その結果、フリップフロップ 108 において、入力 Din4 はクロック CK1 の立ち上がりエッジで "H" となるため、出力 Eout は "H" を出力する。このようにして、ホールドエラーによる誤動作を事前に検知することができる。
《セットアップエラー検知》
本発明の実施形態 5 に係る半導体集積回路のセットアップエラーを事前に検知する誤動作検知回路を示す図は、図 5 と同様である。誤動作検知回路 102 は、フリップフロップ 106 におけるセットアップエラーを検知する。
【００６４】
ロジック回路 101 および誤動作検知回路 202 の正常動作時のタイミングチャートである図 20 は、誤動作検知回路 202 を駆動するクロック CK2 が、クロック CK1 をΔT2 だけ進ませたクロックであることを除いて、図 3 と同様である。
フリップフロップ 105 は、クロック CK1 の立ち上がりエッジに対する入力 Din2 のセットアップ時間 Tc - Td1 - Tdlogic と、フリップフロップ 105 のセットアップ時間制約Tsu2 との間の関係が以下の式 10 を満たすとき、入力 Din2 をクロック CK1 の適正な立ち上がりエッジで正常にトリガーすることができる。
【００６５】
Tc - Td1 - Tdlogic≧ Tsu2 (10)
フリップフロップ 106 は、クロック CK2 の立ち上がりエッジに対する入力 Din2 のセットアップ時間 (Tc - ΔT2) - Td1 - Tdlogic と、フリップフロップ 106 のセットアップ時間制約 Tsu3 との間の関係が以下の式 11 を満たすとき、入力 Din2 をクロック CK2の適正な立ち上がりエッジで正常にトリガーすることができる。
【００６６】
(Tc - ΔT2) - Td1 - Tdlogic≧ Tsu3 (11)
フリップフロップ 105 のセットアップ時間制約 Tsu2 とフリップフロップ 106 のセットアップ時間制約 Tsu3 との関係は、Tsu2 ≦ Tsu3 であるとする。
フリップフロップ 108 は、入力 Din4 に対して、クロック CK1 の反転クロックに同期した出力 Eout を出力する。例えば、図 20 に示すように、クロック CK1 の立ち下がりエッジで入力 Din4 が常に "L" であるので、出力 Eout は常に "L" となる。これが正常動作時の誤動作検知回路 202 の出力である。
【００６７】
次に、ロジック回路 101 およびセットアップエラーを事前に検知する誤動作検知回路202 の誤動作時のタイミングチャートである図 21 を参照しながら、セットアップエラー検知の原理を説明する。
組み合わせ回路 104 で温度が上昇することで、組み合わせ回路 104 の遅延時間 Tdlogicが増大しても、クロック CK1 の立ち上がりエッジに対する入力 Din2 のセットアップ時間 Tc - Td1 - Tdlogic と、フリップフロップ 105 のセットアップ時間制約 Tsu2 との間の関係が式 10 を満たす限り、フリップフロップ 105 は、の入力 Din2 をクロック CK1の適正な立ち上がりエッジで正常にトリガーすることができる。
【００６８】
フリップフロップ 106 においては、組み合わせ回路 104 の遅延時間 Tdlogic が増大し、クロック CK2 の立ち上がりエッジに対する入力 Din2 のホールド時間(Tc - ΔT2) - Td1 - Tdlogic と、フリップフロップ 106 のセットアップ時間制約 Tsu3との間の関係が以下の式 12 のようになると、フリップフロップ 106 は、入力 Din2 をクロック CK2 の適正な立ち上がりエッジで正常にトリガーすることができず、セットアップエラーが起こる。
【００６９】
(Tc - ΔT2) - Td1 - Tdlogic < Tsu3 (12)
このとき、例えば、図 21 に示すように、入力 Din2 は、クロック CK2 の 3 番目の立ち上がりエッジでトリガーされ、出力 Qout2 を出力する。
フリップフロップ 105 が正常動作し、フリップフロップ 106 がセットアップエラーによって誤動作した場合、図 21 に示すように、Ex-OR ゲート 107 は出力 Din4 を出力する。その結果、フリップフロップ 108 において、入力 Din4 はクロック CK1 の立ち上がりエッジ "H" となるため、の出力 Eout は "H" を出力する。このようにして、セットアップエラーによる誤動作を事前に検知することができる。
〔実施形態 6〕
《ホールドエラー検知》
本発明の実施形態 6 に係る半導体集積回路の誤動作検知回路で用いるホールドエラーを事前に検知する機能を有するフリップフロップの図は、図 12 と同様である。内部フリップフロップ 105 および 108 が、クロック CK により駆動し、内部フリップフロップ 106 が、クロック CK をバッファゲート群 501 によって ΔT1 時間遅らせたクロックにより駆動する点を除いて、図 12 のフリップフロップ 500 の正常動作時および誤動作時の動作は、実施形態 5 で説明した図 18 および図 19 のタイミングチャートと同様であり、正常動作時は、検知結果 E は常に "L" を出力し、誤動作時は "H" を出力する。従って、セットアップエラーによる誤動作を事前に検知することができる。
【００７０】
図 12 のフリップフロップ 500 において、内部フリップフロップ 106 のクロック入力を、フリップフロップ 500 の外部から供給するようにしたフリップフロップの図は、図 13と同様である。図 13 のフリップフロップ 600 の正常動作時および誤動作時の動作は、実施形態 5 で説明した図 18 および図 19 のタイミングチャートと同様であり、検知結果 Eは、正常動作時は常に "L" を出力し、誤動作時は "H" を出力する。従って、ホールドエラーによる誤動作を事前に検知することができる。
《セットアップエラー検知》
本発明の実施形態 6 に係る半導体集積回路の誤動作検知回路で用いるセットアップエラーを事前に検知する機能を有するフリップフロップの図は、図 14 と同様である。内部フリップフロップ 106 および 108 が、クロック CK およびその反転クロックによりそれぞれ駆動し、内部フリップフロップ 105 が、クロック CK をバッファゲート群 701によって ΔT1 時間遅らせたクロックにより駆動する点を除いて、図 14 のフリップフロップ 700 の正常動作時および誤動作時の動作は、実施形態 5 で説明した図 20 および図 21 のタイミングチャートと同様であり、正常動作時は、検知結果 E は常に "L" を出力し、誤動作時は "H" を出力する。従って、セットアップエラーによる誤動作を事前に検知することができる。
【００７１】
図 14 のフリップフロップ 700 において、内部フリップフロップ 105 のクロック入力を、フリップフロップ 700 の外部から供給するようにしたフリップフロップの図は、図 15と同様である。図 15 のセットアップエラーを検知する機能を有するフリップフロップの正常動作時および誤動作時の動作は、実施形態 5 で説明した図 20 および図 21 のタイミングチャートと同様であり、検知結果 E は、正常動作時は常に "L" を出力し、誤動作時は "H" を出力する。従って、セットアップエラーによる誤動作を事前に検知することができる。
【００７２】
図 12 から図 15 で示したフリップフロップは、実施形態 3 および 4 で説明した誤動作検知回路に適用できる。
このような構成により、半導体チップの外部または内部の温度変動による回路誤動作を事前に検知することができる。
〔実施形態 7〕
図 22 は、本発明の実施形態 7 に係る半導体集積回路の誤動作検知回路である。クロック CK に同期したフリップフロップ 901 および 902 と、NOT ゲート 907 の出力であるクロック CK の反転クロックに同期したフリップフロップ 903 と、バッファゲート群 904 および 905 と、Ex-OR ゲート 906 から構成される。誤動作検知回路は、フリップフロップ 902 におけるセットアップエラーまたはホールドエラーを検知する。
【００７３】
以下、図 22 の誤動作検知回路の正常動作時のタイミングチャートである図 23 を参照しながら、各回路構成要素について説明する。
フリップフロップ 901 は、入力 D にフリップフロップ 901 の出力 Qout1 を入力とするバッファゲート群 904 の 出力 Din1 が入力され、クロック CK に同期した出力Qout1 を出力する。例えば、図 23 に示すように、クロック CK が、周期 Tc の矩形波であるとき、フリップフロップ 901 の出力 Qout1 、および、バッファゲート群 904 の出力 Din1 は、周期 2 Tc の矩形波となる。ここで、フリップフロップ 901 のセル遅延をTd1 とする。また、バッファゲート群 904 は温度変動に対して十分な設計マージンをもつとする。
【００７４】
バッファゲート群 905 は、セットアップエラーを検知する場合には、フリップフロップ 902 のセットアップ時間が、すべてのフリップフロップの中でワーストになるように構成し、ホールドエラーを検知する場合には、フリップフロップ 902 のホールド時間がすべてのフリップフロップの中でワーストになるように構成する。バッファゲート群 905は、遅延時間 Tdbuf をもち、例えば、図 23 に示すように、入力 Qout1 に対して、出力 Din2 を出力する。
【００７５】
フリップフロップ 902 は、入力 Din2 に対して、クロック CK に同期した出力 Qout2を出力する。クロック CK の立ち上がりエッジに対する入力 Din2 のセットアップ時間 Tc - Td1 - Tdbuf と、フリップフロップ 902 のセットアップ時間制約 Tsu2 との間の関係が以下の式 13 を満たすとき、フリップフロップ 902 は、入力 Din2 をクロックCK の適正な立ち上がりエッジで正常にトリガーすることができる。
【００７６】
Tc - Td1 - Tdbuf ≧ Tsu2 (13)
また、クロック CK の立ち上がりエッジに対する入力 Din2 のホールド時間 Td1 + Tdbufと、フリップフロップ 902 のホールド時間制約 Thd2 との間の関係が以下の式 14 を満たすとき、フリップフロップ 902 は、入力 Din2 をクロック CK 適正なの立ち上がりエッジで正常に保持することができる。
【００７７】
Td1 + Tdbuf ≧ Thd2 (14)
Ex-OR ゲート 906 は、フリップフロップ 901 の出力 Qout1 とフリップフロップ 902の出力 Qout2 を入力として、例えば、図 23 に示すように、両入力の排他的論理和を演算した結果を出力 Din3 として出力する。ここで、Ex-OR ゲート 906 のセル遅延を Tdgとする。
【００７８】
フリップフロップ 903 は、入力 Din3 に対して、クロック CK の反転クロックに同期した出力 Eout を出力する。例えば、図 23 に示すように、クロック CK の立ち下がりエッジで入力 Din3 は常に "H" であるので、出力 Eout は常に "H" となる。これが、正常動作時の誤動作検知回路の出力である。
図 24 は、図 22 の誤動作検知回路のセットアップエラーが起こった場合のタイミングチャートである。バッファゲート群 905 で温度が上昇することによって、バッファゲート群 905 の遅延時間 Tdbuf が増大し、クロック CK の立ち上がりエッジに対する入力Din2 のセットアップ時間 Tc - Td1 - Tdbuf と、フリップフロップ 902 のセットアップ時間制約 Tsu2 との間の関係が以下の式 15 のようになると、フリップフロップ 902 は、入力 Din2 をクロック CK の適正な立ち上がりエッジで正常にトリガーすることができず、セットアップエラーが起こる。
【００７９】
Tc - Td1 - Tdbuf < Tsu2 (15)
このとき、例えば、図 24 に示すように、Ex-OR ゲート 906 の出力は Din3 のようになり、その結果、フリップフロップ 903 の出力 Eout は "L" を出力する。従って、セットアップエラーによる誤動作を事前に検知することができる。
図 25 は、図 22 の誤動作検知回路のセットアップエラーが起こった場合のタイミングチャートである。バッファゲート群 905 での温度が降下することによって、バッファゲート群 905 の遅延時間 Tdbuf が減少し、クロック CK の立ち上がりエッジに対する入力Din2 のホールド時間 Td1 + Tdbuf と、フリップフロップ 902 のホールド時間制約 Tsu2との間の関係が以下の式 16 のようになると、フリップフロップ 902 は、入力 Din2 をクロック CK の適正な立ち上がりエッジで正常に保持することができず、ホールドエラーが起こる。
【００８０】
Td1 + Tdbuf < Thd2 (16)
このとき、例えば、図 25 に示すように、Ex-OR ゲート 906 の出力は Din3 のようになり、その結果、フリップフロップ 903 の出力 Eout は "L" を出力する。従って、ホールドエラーによる誤動作を事前に検知することができる。
図 26 は、図 22 のフリップフロップ 902 のクロック入力を、個別に供給する誤動作検知回路である。図 26 は、クロック CK1 およびその反転クロックをそれぞれフリップフロップ 901、903 のクロックとし、クロック CK2 をフリップフロップ 902 のクロックとすることを除いて、図 22 と同様である。クロック CK1 およびクロック CK2 は、実施形態 1 の図 8 から図 10 で説明したクロック供給回路により供給される。図 26 において、CK1 には図 10 のクロック CKout1 を供給し、CK2 には図 10 のクロックCKout3 を供給することで、セットアップエラーを事前に検知することができる。図 26において、CK1 には図 10 のクロック CKout1 を供給し、CK2 には図 10 のクロック CKout2 を供給することで、ホールドエラーを事前に検知することができる。
【００８１】
図 26 の誤動作検知回路の正常動作時および誤動作時の動作は、図 23 から図 25 のタイミングチャートと同様であり、検知結果 E は、正常動作時は常に "H" を出力し、誤動作時は "L" を出力する。従って、セットアップエラーおよびホールドエラーによる誤動作を事前に検知することができる。
図 22 および図 26 の誤動作検知回路を用いて半導体チップの外部または内部の温度変動による回路誤動作を検知した場合の誤動作検知結果は、実施形態 1 の図 11 と同様である。
【００８２】
図 22 および図 26 の誤動作検知回路は、簡単なロジック回路で構成することができるため、容易に半導体チップの任意の箇所に複数個配置することができる。
このような構成により、半導体チップの外部または内部の温度変動による回路誤動作を事前に検知することができる。
〔実施形態 8〕
図 27 は、本発明の実施形態 8 に係る半導体集積回路の誤動作検知回路の概略図である。図 27 において、半導体集積回路 1201 は、図 16 の半導体集積回路 1001 と同様に、例として、3 つの機能ブロック 1002、1003、1004 の 機能から構成され、各機能ブロック 1002、1003、1004 において、機能ブロックを構成しているフリップフロップの中で、セットアップ時間がワーストであるフリップフロップを、それぞれ、フリップフロップ1005、1007、1009 とし、ホールド時間がワーストであるフリップフロップを、それぞれ、フリップフロップ 1006、1008、1010 とする。各機能ブロックのセットアップ時間およびホールド時間がワーストであるフリップフロップに入力される配線経路上の任意の場所に対して、実施形態 1 および 2 で説明した誤動作検知回路を配置する。
【００８３】
このような構成により、機能ブロックごとに最低 2 つの誤動作検知回路を配置するだけで、半導体チップの外部および内部の温度変動による回路誤動作を検知することができる。
〔実施形態 9〕
図 28 は、本発明の実施形態 9 に係る半導体集積回路の誤動作検知回路の概略図である。図 17 の半導体集積回路 1101 と同様に、半導体集積回路 1301 を構成しているフリップフロップの中で、セットアップ時間がワーストであるフリップフロップをフリップフロップ 1102 とし、ホールド時間がワーストであるフリップフロップをフリップフロップ 1103 とする。フリップフロップ 1102 およびフリップフロップ 1103 に入力される配線経路上の任意の場所に対して、実施形態 1 および 2 で説明した誤動作検知回路を配置する。
【００８４】
このような構成により、半導体集積回路全体に対して最低 2 つの誤動作検知回路を配置するだけで、半導体チップの外部および内部の温度変動による回路誤動作を検知することができる。
〔実施形態 10〕
図 29 は、本発明の実施形態 10 に係る半導体集積回路の誤動作検知回路のクロック調整回路であり、バッファゲート群 1401 および 1402 と、セレクタ回路 1403 および 1404から構成される。図 29 において、CKin は、図 8 に示したクロックツリー 301 の最終段のバッファゲート群 305 の各出力である。セレクタ回路 1403 においては、SEL1 によってバッファゲート群 1402 の各バッファゲートの出力を選択して CKout2 を出力する。ここで SEL1 は、バッファゲート群 1402 のすべての出力を選択できるビット幅を持つ。セレクタ回路 1404 においては、SEL2 によってバッファゲート群 1401 の各バッファゲートの出力を選択して CKout3 を出力するここで SEL2 は、バッファゲート群1401 のすべての出力を選択できるビット幅を持つ。
【００８５】
実施形態 1 から 9 で説明した誤動作検知回路において、図 29 のクロック調整回路を適用する。
このような構成により、半導体チップの外部および内部の温度変動による回路誤動作を検知することができる。
〔実施形態 11〕
図 30 は、本発明の実施形態 11 に係る半導体集積回路の誤動作検知回路をロジック回路に適用して、半導体チップの外部または内部の電源電圧変動による回路誤動作を検知した場合の誤動作検知結果を示した図である。
【００８６】
図 30 において、誤動作範囲 1 では、実施形態 1 から 10 で説明したセットアップエラーを検知する誤動作検知回路によりセットアップエラーを検知し、誤動作範囲 2 では、実施形態 1 から 10 で説明したホールドエラーを検知する誤動作検知回路によりホールドエラーを検知する。
図 30 に示すように、半導体チップの規定の範囲以外の電源電圧において、実施形態 1から 10 で説明した誤動作検知回路により回路誤動作を検知することができる。
【００８７】
このような構成により、半導体チップの外部および内部の電源電圧変動による回路誤動作を検知することができる。
〔実施形態 12〕
図 31 は、本発明の実施形態 12 に係る半導体集積回路の誤動作検知回路設計方法のフローチャートである。
【００８８】
工程 2001 において、ネットリストに従って論理セルをレイアウトし、工程 2002 において、レイアウトから論理セルおよび配線の遅延情報を抽出し、工程 2003 において、工程 2002 で抽出した遅延情報からロジック回路のタイミング制約条件を確認し、制約条件を満たさない場合は、工程 2001 に戻る。工程 2003 において、制約条件を満たしている場合は、工程 2004 において、n 個のフリップフロップをランダムに選択し、工程 2005において、工程 2004 で選択した n 個のフリップフロップのセットアップ時間およびホールド時間を基に誤動作検知回路を選択してネットリストに付加し、工程 2006 において、工程 2005 のネットリストに従って論理セルをレイアウトし、工程 2007 において、レイアウトから論理セルおよび配線の遅延情報を抽出し、工程 2008 において、工程 2007 で抽出した遅延情報からロジック回路のタイミング制約条件を確認し、制約条件を満たさない場合は、工程 2006 に戻り、制約条件を満たす場合は終了する。
【００８９】
このような構成により、誤動作検知回路を実現することができる。
〔実施形態 13〕
図 32 は、本発明の実施形態 13 に係る半導体集積回路の誤動作検知回路設計方法のフローチャートである。
工程 2101 において、ネットリストに従って論理セルをレイアウトし、工程 2102 において、レイアウトから論理セルおよび配線の遅延情報を抽出し、工程 2103 において、工程 2102 で抽出した遅延情報からロジック回路のタイミング制約条件を確認し、制約条件を満たさない場合は、工程 2101 に戻る。工程 2103 において、制約条件を満たしている場合は、工程 2104 において、機能ブロック毎にセットアップ時間およびホールド時間がワーストであるフリップフロップを検索し、工程 2105 において、工程 2104 で検索したフリップフロップのセットアップ時間およびホールド時間を基に、誤動作検知回路をネットリストに付加し、工程 2106 において、工程 2105 のネットリストに従って論理セルをレイアウトし、工程 2107 において、レイアウトから論理セルおよび配線の遅延情報を抽出し、工程 2108 において、工程 2107 で抽出した遅延情報からロジック回路のタイミング制約条件を確認し、制約条件を満たさない場合は、工程 2106 に戻り、制約条件を満たす場合は終了する。
【００９０】
このような構成により、誤動作検知回路を実現することができる。
〔実施形態 14〕
図 33 は、本発明の実施形態 14 に係る半導体集積回路の誤動作検知回路設計方法のフローチャートである。
工程 2201 において、ネットリストに従って論理セルをレイアウトし、工程 2202 において、レイアウトから論理セルおよび配線の遅延情報を抽出し、工程 2203 において、工程 2202 で抽出した遅延情報からロジック回路のタイミング制約条件を確認し、制約条件を満たさない場合は、工程 2201 に戻る。工程 2203 において、制約条件を満たしている場合は、工程 2204 において、すべてのフリップフロップの中で、セットアップ時間およびホールド時間がワーストであるフリップフロップを検索し、工程 2205 において、工程2204 で検索したフリップフロップのセットアップ時間およびホールド時間を基に、誤動作検知回路をネットリストに付加し、工程 2206 において、工程 2205 のネットリストに従って論理セルをレイアウトし、工程 2207 において、レイアウトから論理セルおよび配線の遅延情報を抽出し、工程 2208 において、工程 2207 で抽出した遅延情報からロジック回路のタイミング制約条件を確認し、制約条件を満たさない場合は、工程 2206 に戻り、制約条件を満たす場合は終了する。
【００９１】
このような構成により、誤動作検知回路を実現することができる。
【産業上の利用可能性】
【００９２】
本発明は、半導体集積回路の誤動作検知に適用することができる。簡単な回路構成により誤動作を検知することができるので、誤動作検知のために半導体チップのサイズを増大させる必要がなく、半導体チップの信頼性を向上させることができる。
【図面の簡単な説明】
【００９３】
【図１】本発明に係る誤動作検知回路を含む半導体集積回路の概略構成を示す図
【図２】本発明の実施形態 1 に係る半導体集積回路のセットアップエラーを検知する誤動作検知回路の回路構成を示す図
【図３】本発明の実施形態 1 における、ロジック回路およびセットアップエラーを検知する誤動作検知回路の正常動作時のタイミングチャート
【図４】本発明の実施形態 1 における、ロジック回路およびセットアップエラーを検知する誤動作検知回路の誤動作時のタイミングチャート
【図５】本発明の実施形態 1 に係る半導体集積回路のホールドエラーを検知する誤動作検知回路の回路構成を示す図
【図６】本発明の実施形態 1 における、ロジック回路およびホールドエラーを検知する誤動作検知回路の正常動作時のタイミングチャート
【図７】本発明の実施形態 1 における、ロジック回路およびホールドエラーを検知する誤動作検知回路の誤動作時のタイミングチャート
【図８】クロック供給回路の回路構成を示す図
【図９】遅延調整回路の回路構成を示す図
【図１０】遅延調整回路のタイミングチャート
【図１１】半導体チップの外部または内部の温度変動による回路誤動作を検知した場合の誤動作検知結果を示す表
【図１２】本発明の実施形態 2 に係る半導体集積回路の誤動作検知回路で用いるセットアップエラーを検知する機能を有するフリップフロップの回路構成を示す図
【図１３】図 12 のフリップフロップ 500 において、内部フリップフロップ 106 のクロック入力を、フリップフロップ 500 の外部から供給するようにしたフリップフロップの回路構成を示す図
【図１４】本発明の実施形態 2 に係る半導体集積回路の誤動作検知回路で用いるホールドエラーを検知する機能を有するフリップフロップの回路構成を示す図
【図１５】図 14 のフリップフロップ 700 において、内部フリップフロップ 105 のクロック入力を、フリップフロップ 700 の外部から供給するようにしたフリップフロップの回路構成を示す図
【図１６】本発明の実施形態 3 に係る半導体集積回路の誤動作検知回路の概略図
【図１７】本発明の実施形態 4 に係る半導体集積回路の誤動作検知回路の概略図
【図１８】本発明の実施形態 5 における、ロジック回路およびホールドエラーを事前に検知する誤動作検知回路の正常動作時のタイミングチャート
【図１９】本発明の実施形態 5 における、ロジック回路およびホールドエラーを事前に検知する誤動作検知回路の誤動作時のタイミングチャート
【図２０】本発明の実施形態 5 における、ロジック回路およびセットアップエラーを事前に検知する誤動作検知回路の正常動作時のタイミングチャート
【図２１】本発明の実施形態 5 における、ロジック回路およびセットアップエラーを事前に検知する誤動作検知回路の誤動作時のタイミングチャート
【図２２】本発明の実施形態 7 に係る半導体集積回路の誤動作検知回路の回路構成を示す図
【図２３】本発明の実施形態 7 における、半導体集積回路の誤動作検知回路の正常動作時のタイミングチャート
【図２４】本発明の実施形態 7 における、半導体集積回路の誤動作検知回路のセットアップエラーが起こった場合のタイミングチャート
【図２５】本発明の実施形態 7 における、半導体集積回路の誤動作検知回路のホールドエラーが起こった場合のタイミングチャート
【図２６】図 22 のフリップフロップ 902 のクロック入力を個別に供給する誤動作検知回路の回路構成を示す図
【図２７】本発明の実施形態 3 に係る半導体集積回路の誤動作検知回路の概略図
【図２８】本発明の実施形態 4 に係る半導体集積回路の誤動作検知回路の概略図
【図２９】クロック調整回路の回路構成を示す図
【図３０】半導体チップの外部または内部の電源電圧変動による回路誤動作を検知した場合の誤動作検知結果
【図３１】本発明の実施形態 12 に係る半導体集積回路の誤動作検知回路設計方法のフローチャート
【図３２】本発明の実施形態 13 に係る半導体集積回路の誤動作検知回路設計方法のフローチャート
【図３３】本発明の実施形態 14 に係る半導体集積回路の誤動作検知回路設計方法のフローチャート
【図１】
2008028345.tif 000003
【図２】
2008028345.tif 000004
【図３】
2008028345.tif 000005
【図４】
2008028345.tif 000006
【図５】
2008028345.tif 000007
【図６】
2008028345.tif 000008
【図７】
2008028345.tif 000009
【図８】
2008028345.tif 000010
【図９】
2008028345.tif 000011
【図１０】
2008028345.tif 000012
【図１１】
2008028345.tif 000013
【図１２】
2008028345.tif 000014
【図１３】
2008028345.tif 000015
【図１４】
2008028345.tif 000016
【図１５】
2008028345.tif 000017
【図１６】
2008028345.tif 000018
【図１７】
2008028345.tif 000019
【図１８】
2008028345.tif 000020
【図１９】
2008028345.tif 000021
【図２０】
2008028345.tif 000022
【図２１】
2008028345.tif 000023
【図２２】
2008028345.tif 000024
【図２３】
2008028345.tif 000025
【図２４】
2008028345.tif 000026
【図２５】
2008028345.tif 000027
【図２６】
2008028345.tif 000028
【図２７】
2008028345.tif 000029
【図２８】
2008028345.tif 000030
【図２９】
2008028345.tif 000031
【図３０】
2008028345.tif 000032
【図３１】
2008028345.tif 000033
【図３２】
2008028345.tif 000034
【図３３】
2008028345.tif 000035