(57)【特許請求の範囲】
【請求項１】
論理回路が稼動中に発生した故障を検出するための故障検出回路をコンピュータに生成させるプログラムにおいて、
前記論理回路内にあるレジスタの故障を検出する故障検出回路を生成する機能、
前記論理回路内にある各レジスタ間パスのディレイ値を計算する機能、
生成された前記故障検出回路のディレイ値に、前記レジスタ間パスのディレイ値を加えて合計ディレイ値が前記論理回路に対するディレイ制約条件に収まらない場合は、別の故障検出回路が生成され、前記ディレイ制約条件に収まった故障検出回路を前記論理回路に付加する機能、
同一のイネーブル信号が入力され、同一のクロック信号に同期して動作する複数の前記レジスタが前記論理回路内にある場合に、前記レジスタ群に対して１種類の前記故障検出回路を生成し、前記論理回路に付加する機能を備えたことを特徴とする故障検出回路をコンピュータに生成させるプログラム。
【請求項２】
請求項１に記載の故障検出回路をコンピュータに生成させるプログラムにおいて、
前記故障検出回路として、パリティチェック回路，誤り訂正回路，レジスタ多重化回路又はパリティ多重化回路の回路が選択され、前記論理回路に付加することを特徴とする故障検出回路をコンピュータに生成させるプログラム。
【請求項３】
請求項１または２に記載の故障検出回路をコンピュータに生成させるプログラムにおいて、
生成された前記故障検出回路が前記論理回路に付加できた場合は付加できた論理箇所と前記故障検出回路の種類を出力し、付加できなかった場合は付加できなかった論理箇所と前記故障検出回路の種類を出力することを特徴とする故障検出回路をコンピュータに生成させるプログラム。
【請求項４】
請求項３に記載の故障検出回路をコンピュータに生成させるプログラムにおいて、
同一のクロック信号と同一のイネーブル信号に同期して動作する複数のレジスタが前記論理回路内にある場合に、前記レジスタ群に対して１種類の前記故障検出回路を生成し、前記論理回路に付加する機能を備えたことを特徴とする故障検出回路をコンピュータに生成させるプログラム。
【請求項５】
請求項１に記載の故障検出回路をコンピュータに生成させるプログラムにおいて、
前記論理回路の面積を計算し、
前記論理回路の面積値と、前記論理回路に対する面積制約を有し、
生成された前記故障検出回路の面積値に、前記論理回路の面積値を加えた合計面積値が論理回路の面積制約条件に収まらない場合は、別の故障検出回路が生成され、前記面積制約に収まった故障検出回路を前記論理回路に付加する機能を備えたことを特徴とする故障検出回路をコンピュータに生成させるプログラム。
【請求項６】
請求項１に記載の故障検出回路をコンピュータに生成させるプログラムにおいて、
前記論理回路の消費電力を計算し、
前記論理回路の消費電力値と、前記論理回路に対する消費電力制約を有し、
生成された前記故障検出回路の消費電力値に、前記論理回路の消費電力値を加えた合計消費電力値が論理回路の消費電力制約に収まらない場合は、別の故障検出回路が生成され、前記消費電力制約に収まった故障検出回路を前記論理回路に付加する機能を備えたことを特徴とする故障検出回路をコンピュータに生成させるプログラム。
【請求項７】
請求項１に記載の故障検出回路をコンピュータに生成させるプログラムにおいて、
前記論理回路内にあるレジスタの故障を検出する故障検出回路を生成する機能、
前記論理回路の面積を計算し、
前記論理回路の面積値と、前記論理回路に対する面積制約を有し、
生成された前記故障検出回路の面積値に、前記論理回路の面積値を加えた合計面積値が論理回路の面積制約条件に収まらない場合は、別の故障検出回路が生成され、前記面積制約に収まった故障検出回路を前記論理回路に付加する機能を備えたことを特徴とする故障検出回路をコンピュータに生成させるプログラム。
【請求項８】
請求項１に記載の故障検出回路をコンピュータに生成させるプログラムにおいて、
前記論理回路内にあるレジスタの故障を検出する故障検出回路を生成する機能、
前記論理回路の消費電力を計算し、
前記論理回路の消費電力値と、前記論理回路に対する消費電力制約を有し、
生成された前記故障検出回路の消費電力値に、前記論理回路の消費電力値を加えた合計消費電力値が論理回路の消費電力制約に収まらない場合は、別の故障検出回路が生成され、前記消費電力制約に収まった故障検出回路を前記論理回路に付加する機能を備えたことを特徴とする故障検出回路をコンピュータに生成させるプログラム。
【請求項９】
請求項１に記載の故障検出回路をコンピュータに生成させるプログラムにおいて、
論理回路が稼動中に発生した故障を検出するための故障検出回路の回路記述および前記
故障検出回路のディレイ値が記載されたデータファイルと、前記論理回路内にある各レジスタ間パスのディレイ値と、を用いて、
前記レジスタ間パスの前記ディレイ値に前記データファイルに記載された故障検出回路のディレイ値を加えたディレイ値が前記論理回路に対するディレイ制約条件に収まるような故障検出回路を前記データファイルから選択し、前記論理回路に付加する機能を備えたことを特徴とする故障検出回路をコンピュータに生成させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路の故障検出回路の生成方法及びその装置に関し、特に該論理回路が稼動中に発生した故障を検出するための故障検出回路の生成方法およびその装置に関するものである。
【背景技術】
【０００２】
自動車におけるエックス・バイ・ワイヤ（Ｘ−ｂｙ−Wire）技術や、より高速で安全な鉄道システムなど、電子機器による制御システムが必要不可欠な社会において、それらシステムの中核を成す集積回路に要求される事項の一つに、安全性を保障する高信頼化が挙げられる。
【０００３】
このようなシステムに用いられる集積回路として、演算処理や制御処理を行う論理回路や、様々なデータを保持しておく記憶回路を、ワンチップに集積したシステムＬＳＩが広く使用されるようになってきている。
【０００４】
集積回路の稼動時の信頼性を高めるには、稼動中に発生した故障を検出する故障検出技術が用いられており、特にパリティチェックや誤り訂正符号（Error-Correcting-Code、以下ＥＣＣと表記する）は集積回路の記憶回路部分においては広く使用されるようになった。
【０００５】
一方、集積回路の論理回路部分においては、記憶回路部分のように構造が規則的ではないことから、パリティチェック回路などの故障検出回路を人手で設計する必要があった。
【０００６】
特許文献１に記載された故障検出回路の生成方法では、論理回路の設計情報に対し、パリティ信号生成情報に合致した箇所にパリティ信号回路を生成して付加し、チェック回路生成情報に合致した箇所にチェック信号回路を生成して付加することで、論理回路部分に故障検出回路が追加された新たな論理回路を生成し、論理回路の故障検出回路の設計工数を削減している。
【０００７】
【特許文献１】特開平６−４４３３６号公報
【非特許文献１】南谷崇、「フォールトトレラントコンピュータ」、オーム社、1991年２月、第１版、ｐ.１２７−１３３
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、前記のような論理回路の故障検出回路生成方法について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００９】
一般に、クロック同期式の論理回路を設計する場合、設計制約として満たされるべきディレイ値や回路の面積，消費電力などがあるが、論理回路の構造でパリティ信号生成情報の条件に合致した箇所に対して、一律にパリティ信号回路を生成して付加すると、ディレイの余裕度が厳しい箇所にもパリティ信号回路が生成されることがあり、その結果、パリティ信号回路付加後の論理回路が所望のディレイ制約を満たすことができず、パリティ信号回路の設計からやり直さなければならないことがあり得る。
【００１０】
パリティ信号回路の生成をやり直して手作業で付加し、その後にディレイ値を求め、ディレイ制約を満たさなければやり直し続けるか、あるいは目標性能を落とすかという判断を下すことになり、時間がかかっていた。
【００１１】
また、ディレイ制約だけではなく、面積や消費電力の制約についても同様に、パリティ信号回路の付加による増分によって所望の制約を満たさなくなってしまった場合は、パリティ信号回路の設計をやり直さなければならず、設計工数が増える可能性があった。
【００１２】
システムＬＳＩをはじめとする集積回路では少量多品種生産により製品の短期開発が求められ、限られた時間内で新たな機能を追加するのが困難になっている状況のさなか、新たに故障検出回路を設計するのは困難である。
【００１３】
一方、先に述べたような生成方法を用いても、設計制約違反で再設計の工数が増えてしまっては要求納期に間に合わせるのが困難であると考えられる。
【００１４】
そこで本発明の目的は、論理回路に対して予め求められたディレイ情報と、設計の制約条件を用いることで、様々な種類の故障検出回路を複数生成し、その中から制約条件内に収まる故障検出回路を選択して論理回路に付加することが可能な故障検出回路生成方法および故障検出回路生成装置を提供することにある。
【００１５】
また更に、生成される故障検出回路の候補や、故障検出回路のディレイ値，面積値，消費電力値などをデータベース化しておくことで、制約条件内に収めるための故障検出回路を容易に使用できる仕組みも提供する。
【課題を解決するための手段】
【００１６】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１７】
すなわち、論理回路が稼動中に発生した故障を検出するための故障検出回路の生成方法において、前記論理回路内にあるレジスタの故障を検出する故障検出回路を生成すること、前記論理回路内にある各レジスタ間パスのディレイ値を計算すること、生成された前記故障検出回路のディレイ値に、前記レジスタ間パスのディレイ値を加えた合計ディレイ値が前記論理回路に対するディレイ制約条件に収まらない場合は、別の故障検出回路が生成され、前記ディレイ制約条件に収まった故障検出回路を前記論理回路に付加することを特徴とするものである。
【００１８】
また、論理回路が稼動中に発生した故障を検出するための故障検出回路の生成方法において、前記論理回路内にあるレジスタの故障を検出する故障検出回路を生成すること、前記論理回路の面積を計算し、前記論理回路の面積値と、前記論理回路に対する面積制約を有し、生成された前記故障検出回路の面積値に、前記論理回路の面積値を加えた合計面積値が論理回路の面積制約条件に収まらない場合は、別の故障検出回路が生成され、前記面積制約に収まった故障検出回路を前記論理回路に付加することを特徴とするものである。
【００１９】
また、論理回路が稼動中に発生した故障を検出するための故障検出回路の生成方法において、前記論理回路内にあるレジスタの故障を検出する故障検出回路を生成すること、前記論理回路の消費電力を計算し、前記論理回路の消費電力値と、前記論理回路に対する消費電力制約を有し、生成された前記故障検出回路の消費電力値に、前記論理回路の消費電力値を加えた合計消費電力値が論理回路の消費電力制約に収まらない場合は、別の故障検出回路が生成され、前記消費電力制約に収まった故障検出回路を前記論理回路に付加することを特徴とするものである。
【００２０】
また、論理回路が稼動中に発生した故障を検出するための故障検出回路の生成装置において、前記論理回路内にあるレジスタの故障を検出する故障検出回路を生成する故障検出回路生成手段と、前記論理回路内にある各レジスタ間パスのディレイ値を計算するディレイ計算手段と、前記故障検出回路生成手段によって生成された故障検出回路のディレイ値に、前記レジスタ間パスのディレイ値を加えた合計ディレイ値が前記論理回路に対するディレイ制約条件に収まらない場合は、前記故障検出回路生成手段によって前記故障検出回路とは別の故障検出回路が生成され、前記ディレイ制約条件に収まった故障検出回路を前記論理回路に付加することを特徴とするものである。
【発明の効果】
【００２１】
本願において開示される発明のうち、代表的なものによって得られる効果を説明すれば、以下のとおりである。
【００２２】
（１）論理回路に含まれるレジスタに対して故障検出回路を網羅的に付加しても、付加した後の論理回路がディレイ制約などの設計制約を満たすことが容易になる。
【００２３】
（２）本発明の故障検出回路生成方法およびその装置を利用することで、信頼性の高い集積回路を少ない設計期間で実装でき、高い信頼性が必要とされる自動車システム，鉄道システム，その他産業用システムなどを短期間で実装することが可能になる。
【発明を実施するための最良の形態】
【００２４】
論理回路のディレイ情報とディレイ制約をもとに、ディレイ制約を満たす最適な故障検出回路を生成して論理回路に付加する方法およびその装置を実現した。
【００２５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
〔実施の形態１〕
図１は、本発明の実施の形態１における、故障検出回路の生成方法の流れを示す図である。
【００２６】
設計者が作成した論理回路データ１１に対し、回路構造の解析処理１を行って、論理回路データ１１に含まれるレジスタと、各レジスタ間のタイミングパスを抽出する。
【００２７】
また、論理回路データ１１に対してディレイ解析処理２を行い、各レジスタ間のディレイ値を集めたディレイ情報１２を生成する。
【００２８】
このディレイ解析処理２は、一般にはスタティックタイミング解析（Static Timing 
Analysis、以下ＳＴＡ）と呼ばれるもので、ＳＴＡを行うための市販のソフトウェアなどが多数存在し、これらのソフトウェアを用いて解析処理を行うことが出来る。
【００２９】
設計者が与える制約条件１３と、ディレイ情報１２をもとに、故障検出回路の生成処理３において、回路構造の解析処理１にて抽出されたレジスタ部分に故障検出回路が生成され、故障検出回路付き論理回路データ１４が生成される。
【００３０】
図１に示したフローの詳細について、図２，図３，図４、および図５を用いて説明する。
【００３１】
図２は、４つのレジスタ群５１，５２，５３，５４と、２つの組み合わせ回路２２，
２３を含み、２つの入力ポート２４、２６と２つの出力ポート２５、２７を有する論理回路３１のブロック図の例である。
【００３２】
図２には明記していないが、各レジスタ群５１，５２，５３，５４は同一のクロック信号の立ち上がりに同期して保持されている値が更新されるもので、以降の図に表れるレジスタにおいても特に記載が無い限りは同様の構成である。
【００３３】
なお、ここで説明するレジスタは、１ビットで０または１の論理値をとるものである。
【００３４】
レジスタ群５１から組み合わせ回路２２を通ってデータ信号１０１がレジスタ群５２に至るまでが１つのタイミングパスであり、この間のディレイ値は５nsである。
【００３５】
また、レジスタ群５３から組み合わせ回路２３を通ってデータ信号１０３がレジスタ群５４に至るまでもまた１つのタイミングパスであり、この間のディレイ値は７nsである。
【００３６】
図３は、図１のフローにおける故障検出回路の生成処理３について詳細に説明したフローである。
【００３７】
図１の回路構造の解析処理１が終了し、ディレイ情報１２と制約条件１３が揃った時点で、図３のステップ４０１から処理を開始する。
【００３８】
通常、論理回路には数多くのレジスタ間タイミングパスが存在するので、ステップ402において、故障検出回路を付加するためのタイミングパスを１つ選択する。
【００３９】
そして、ステップ４０３において、このタイミングパスに付加する故障検出回路を生成する。
【００４０】
後で説明するが、ここで生成される故障検出回路はパリティチェック回路，ＥＣＣ回路，レジスタ多重化回路又はパリティ多重化回路などの複数の候補から選ばれる。
【００４１】
ステップ４０４で生成した故障検出回路に対してディレイ解析処理を行い、生成した故障検出回路をもとのタイミングパスに付加した場合にディレイ値がどの程度増えるかを計算する。
【００４２】
計算されたディレイ値が、設計者から与えられたディレイ制約を満たしていれば、ステップ４０５からステップ４０６に流れ、生成した故障検出回路を付加し、ステップ４０８にて故障検出回路を論理回路のどの箇所に付加したかを憶えておく。
【００４３】
一方、ステップ４０５でディレイ制約を満たさなかった場合は、ステップ４０７にて、付加する故障検出回路の候補が他にあるか否かを判断する。
【００４４】
付加する故障検出回路の候補が他にある場合、ステップ４０３に戻り、先ほど生成した故障検出回路とは別の故障検出回路を生成して、再びステップ４０４，４０５に流れ、ディレイ制約を満たすか否かを判定する。
【００４５】
ディレイ制約を満たさない場合で、かつステップ４０７において付加する回路の候補が無くなってしまった場合は、ステップ４０９において、論路回路のそのタイミングパスに対しては故障検出回路を付加できなかったことを記憶しておく。
【００４６】
ステップ４１０において、論理回路に含まれる全てのタイミングパスについて適用したか否かを判定し、まだであればステップ４０２に戻ってフローを繰り返す。
【００４７】
論理回路に含まれる全てのタイミングパスについて適用し終わった場合はステップ411に流れ、故障検出回路を付加した論理回路を出力し、ステップ４１２において故障検出回路を付加した箇所と付加できなかった箇所の一覧を出力し、ステップ４１３にて終了する。
【００４８】
図４は、図２で示した論理回路に対して、図３のフローを適用して故障検出回路を付加している最中であることをブロック図にて示したものであり、ここでは、図２における８ビットのレジスタ群５２と、３２ビットのレジスタ群５４に対して、故障検出回路を付加することを考える。
【００４９】
また、図２で示した論理回路のディレイ制約は１０nsであり、１つのタイミングパスのディレイ値を１０ns以下に収める必要がある。
【００５０】
図４では、ステップ４０２にてレジスタ群５１からレジスタ群５２へのタイミングパスが選択され、ステップ４０３にてパリティチェック回路７１が生成されたことを表している。
【００５１】
パリティチェック回路７１には、８ビットのデータ信号１０１の排他的論理和
（eXclusive−ＯＲ、以下ＸＯＲと表記する）をとるＸＯＲ回路７２と、８ビットのデータ信号１０２のＸＯＲをとるＸＯＲ回路７４があり、それぞれ、レジスタ群５２の入力データパリティと、出力データパリティを生成している。
【００５２】
また、パリティチェック回路７１には、レジスタ群５２と同一のクロック信号の立ち上がりに同期して値が更新される１ビットのレジスタ７３があり、ＸＯＲ回路７２から入力されたパリティ信号を１サイクル後に出力する。
【００５３】
更に、パリティチェック回路７１にはパリティ信号を比較するための比較回路７５があり、比較回路７５はＸＯＲ回路７４とレジスタ７３から出力されるパリティ信号を比較して、一致していれば値０を、不一致であれば値１を比較信号１１１に出力し、出力ポート２８を介して論理回路２１の外部に伝達する。
【００５４】
この比較回路７５は、ＸＯＲで実現できる。
【００５５】
このようなパリティチェック回路７１をレジスタ群５２に対して付加すると、レジスタ群５２の８ビットのレジスタのうち、いずれか１ビットに故障が起こって保持しているデータ値が０から１または１から０に反転した場合、データを保持した時刻に生成されレジスタ７３に保持されたパリティ信号と、データ値が反転してから生成されたパリティ信号の値が異なり、比較回路７５から出力される比較信号１１１の値が１になるため、論理回路２１のレジスタ群５２に発生した故障を検出できる仕組みとなっている。
【００５６】
ところで、論理回路２１におけるレジスタ群５１からレジスタ群５２へのタイミングパスは、パリティチェック回路７１を付加する前は図２に示したようにディレイ値が５nsであったが、パリティチェック回路７１を付加した結果、ＸＯＲ回路７２で２nsのディレイを要するため、レジスタ群５１からレジスタ７３へ新たにできたタイミングパスのディレイ値は、ステップ４０４のディレイ解析処理により７nsとなった。
【００５７】
この論理回路のディレイ制約は１０nsであるため、このタイミングパスについては制約を満たしていることになり、ステップ４０６以降へ進んでいく。
【００５８】
一方、ステップ４０２にてレジスタ群５３からレジスタ群５４へのタイミングパスが選択され、ステップ４０３にてパリティチェック回路７６が生成された場合を考える。
【００５９】
パリティチェック回路７６は、データ信号１０３とデータ信号１０４が３２ビット幅であること以外はパリティチェック回路７１と同様の構造であるが、ＸＯＲ回路７７が３２ビットのデータ信号１０３からパリティ信号を生成しているのでディレイが５nsを要し、レジスタ群５３からレジスタ７８へ新たにできたタイミングパスのディレイ値は、ステップ４０４のディレイ解析処理により１２nsとなった。
【００６０】
これはディレイ制約に違反しているのだが、特許文献１に記載された故障検出回路生成方法では、３２ビットのレジスタに所定のパリティチェック回路を付加して終了していたので、この時点でのディレイ違反を発見することができず、生成した故障検出回路を全て付加した後のタイミング解析においてディレイ違反を発見していたため、設計の手戻りによる工数が増加する問題が発生していた。
【００６１】
本発明では、ステップ４０５でディレイ制約を満たせなかった場合、ステップ４０７で付加する回路の候補が残っているか否かを判定する。
【００６２】
図５は、ステップ４０７からステップ４０３に戻って別の故障検出回路を生成した場合を表す論理回路のブロック図である。
【００６３】
図５の論理回路３２は、図４の論理回路３１と比較して、パリティチェック回路７６であった部分がレジスタ多重化回路８１に置き換わっている部分が異なっている。
【００６４】
レジスタ多重化回路８１には、レジスタ群５４と同じ３２ビットのレジスタ群８２があり、レジスタ群５４へのデータ信号１０３がレジスタ群８２へも同様に入力されている。
【００６５】
比較回路８３は、レジスタ群８２から出力されるデータ信号とレジスタ群５４から出力されるデータ信号１０４の全ビットを比較して、一致していれば値０を、不一致であれば値１を比較信号１１３に出力し、出力ポート３０を介して論理回路３２の外部に伝達する。
【００６６】
ここで、レジスタ群５３からレジスタ群８２へのタイミングパスは、図４のパリティチェック回路７６の場合と比較して、パリティを生成する部分が無いためディレイの増分がほとんど無く、ステップ４０４のディレイ解析処理によって８nsとなり、ディレイ制約を満たして、故障検出回路としてレジスタ多重化回路８１を付加し、ステップ４０６以降へ進んでいく。
【００６７】
他のタイミングパスに関しても、故障検出回路の生成とディレイ解析処理を繰り返しながら、故障検出回路を付加していく。
【００６８】
また、図５では、生成する故障検出回路としてパリティチェック回路とレジスタ多重化回路を示したが、図６や図７のような回路を故障検出回路の候補に加えることも可能である。
【００６９】
図６は、ＥＣＣ回路を故障検出回路として付加することで、故障を外部に隠蔽する回路のブロック図を示したものである。
【００７０】
ＥＣＣ回路９１では、検査ビット生成部９３によって、３２ビットのデータ信号１０３をもとに作られた７ビットの検査ビットが、レジスタ群９２によって保持される。
【００７１】
レジスタ群９２で保持された７ビットの検査ビットはシンドローム生成・復号部９４に入力され、３２ビットの訂正データ信号１２１が出力される。
【００７２】
ＸＯＲ回路９５では、訂正データ信号１２１と、レジスタ群５４から出力されるデータ信号１０４のＸＯＲによりデータ信号１２２として出力し、このデータ信号１２２は、レジスタ群５４に１ビットの故障が発生した場合でも、訂正された正しいデータとなっている。
【００７３】
また、シンドローム生成・復号部９４から出力される故障検出信号１２３は、レジスタ群５４に２ビット以上の故障が生じた場合にのみ値が１となり、その故障を外部に知らせる役割を持つ。
【００７４】
本発明では、故障検出回路生成フローにおけるステップ４０４のディレイ解析処理により、検査ビット生成部９３やシンドローム生成・復号部９４のディレイ値を測定するため、ディレイ余裕度の大きなタイミングパスに対してＥＣＣ回路９１を生成して付加できる。
【００７５】
なお、このようなＥＣＣ回路の構成は、例えば非特許文献１など、多数の文献に記載されている。
【００７６】
また図７は、パリティを多重化した回路を故障検出回路として付加することで、故障を外部に隠蔽する回路のブロック図を示したものである。
【００７７】
パリティ多重化回路１３１に含まれる、８ビットのデータ信号１０１のＸＯＲをとる
ＸＯＲ回路１３２，８ビットのデータ信号１０２のＸＯＲをとるＸＯＲ回路１３４，パリティを保持するレジスタ１３３，比較回路１３５の構成は、図５で示したパリティチェック回路７１と同様である。
【００７８】
加えて、パリティ多重化回路１３１には、レジスタ群５２と同じビット幅でデータ信号１０１の値を保持するレジスタ群１３６と、８ビットのデータ信号１０１のＸＯＲをとるＸＯＲ回路１３７，８ビットのデータ信号１５１のＸＯＲをとるＸＯＲ回路１３９，パリティを保持するレジスタ１３８，比較回路１４０が含まれ、これらはレジスタ群１３６に対するパリティチェック回路を構成している。
【００７９】
パリティ多重化回路１３１に含まれる比較回路１３５はレジスタ群５２に故障が発生したときに比較信号１５２の値が１となるが、故障していないときは０である。
【００８０】
また、比較回路１５３はレジスタ群１３６に故障が発生したときに比較信号１５３の値が１となるが、故障していないときは０である。
【００８１】
マルチプレクサ１４２は、レジスタ群５２から出力される８ビットのデータ信号１０２と、レジスタ群１３６から出力される８ビットのデータ信号１５１を選択してデータ信号１５４として出力するものであるが、選択信号として比較回路１３５の比較信号１５２が使用されている。
【００８２】
比較信号１５２は、レジスタ群５２に故障が発生していない間は値０となっているため、このときマルチプレクサ１４２は故障の無い正しいレジスタ群５２の出力データ１０２を選択する。
【００８３】
一方、レジスタ群５２に故障が発生した場合、比較信号１５２の値が１になるが、このときはレジスタ群５２と同じデータを保持しているレジスタ群１３６の出力データ１５１がマルチプレクサ１４２によって選択されるため、レジスタ群１３６に故障が発生していなければ、データ信号１５４は正しい値を出力し続けることができる。
【００８４】
仮に、レジスタ群５２とレジスタ群１３６の両方に故障が発生した場合、比較信号152と１５３のどちらとも値が１となり、マルチプレクサ１５４からは故障の混入したデータ信号１５１が選択されるが、論理積（ＡＮＤ）回路１４１により故障検出信号１５５の値が１になるので、２つのレジスタ群が両方とも故障した場合は訂正不可能な故障であることを論理回路の外部に出力することができる。
【００８５】
本発明では、故障検出回路生成フローにおけるステップ４０４のディレイ解析処理によりディレイ値を測定するため、ディレイ余裕度の大きなタイミングパスに対してパリティ多重化回路１３１を生成して付加できる。
【００８６】
以上の説明により、様々な種類の故障検出回路を生成してディレイ解析を行い、ディレイ制約を満たす故障検出回路を付加していく方式とすることで、故障検出回路を付加した後でディレイ違反により再度故障検出回路の設計をし直す可能性が減るため、設計期間の増大を抑えながら論理回路の信頼性を高める設計を容易に行うことが可能になる。
【００８７】
また更に、ディレイ制約が厳しくて故障検出回路が付加できなかった箇所に関しても、ステップ４１２によってその箇所が出力されるので、設計者はその箇所に注力して故障検出回路を再構成したり故障検出回路の付加をあきらめる判断を迅速に下したりすることができるようになり、設計期間の増大を抑えることができる。
【００８８】
また更に、故障検出回路としてパリティチェック回路，レジスタ多重化回路，ＥＣＣ回路、パリティ多重化回路を示したが、このほかにも様々な構造の故障検出回路を生成して、選択する候補に容易に加えることができるのは明らかである。
【００８９】
次に、本発明における故障検出回路生成方法および付加の結果を、回路設計で使用されるハードウェア記述言語による回路記述を用いて例示する。
【００９０】
図８は、ハードウェア記述言語Verilog−ＨＤＬ（Hardware Description Language）によって表している回路記述５０１を示したものである。
【００９１】
回路記述５０１では、１行目ではモジュール宣言をしており、２行目から４行目で入力ポートを、５行目から６行目で出力ポートを、７行目から８行目で内部信号を、それぞれ定義している。
【００９２】
また、２１行目から３１行目では、２行目で定義したクロック信号clkの立ち上がりに同期してデータを更新するレジスタを４つ表記している。
【００９３】
回路記述５０１で表記しているレジスタのうち、outＡ出力となっている２４行目から２５行目のレジスタと、outＢ 出力となっている３０行目から３１行目の２つのレジスタに対し、本発明における故障検出回路生成方法により故障検出回路を付加すると、図９の回路記述５０２のようになる。
【００９４】
回路記述５０２で下線を引いた部分が、回路記述５０１からの追加および変更箇所である。
【００９５】
１行目のモジュール宣言では、新たに追加された出力ポートが増えている。
【００９６】
７行目から８行目では出力ポートが、１１行目から１３行目では内部信号が、それぞれ新たに追加されている。
【００９７】
７５行目から９１行目までが付加された故障検出回路の実体であるが、まず、７５行目から７６行目は、outＡ出力となるレジスタへの入力信号dataＡ１から、パリティ信号cmpＡ１を生成して保持するレジスタを表す。
【００９８】
７８行目は、outＡ出力からパリティ信号cmpＡ２を生成している。
【００９９】
８０行目から８３行目はパリティ信号cmpＡ１とcmpＡ２を比較する比較回路を表記したものになり、outＡ出力となっているレジスタに故障が生じた場合はチェック信号chkＡの値が１になるように記載されている。
【０１００】
一方、８５行目から８６行目は、outＢ出力となるレジスタへの入力信号dataＢ１ をクロック信号clkの立ち上がりに同期して更新するレジスタを表記しており、出力がcmpＢ１となる。
【０１０１】
８８行目から９１行目はoutＢ出力とcmpＢ１出力を比較する比較回路を表記したものになり、outＢ出力となっているレジスタに故障が生じた場合はチェック信号chkＢの値が１になるように記載されている。
【０１０２】
また、図１０は、ステップ４１２によって出力された回路付加結果５０３を示したものである。
【０１０３】
回路付加結果５０３の１行目から４行目は、故障検出回路が付加できたタイミングパスの箇所を示しており、１箇所に対する付加結果が空白（スペース）によって区切られて１行に記載されていて、“／／”で始まる行はコメントである。
【０１０４】
例えば３行目の場合、左から順に付加したタイミングパス名が“from_dataＡ２_to_outＡ”であり、同期するクロック名が“clk” であり、付加したレジスタのインスタンス名が“from_dataＡ２_to_cmpＡ１”であり、チェック信号のピン名が“clkＡ” であり、付加した故障検出回路の種類が“Parity”であり、タイミングパスのディレイ値が“2.00
［ns］”であることを示している。
【０１０５】
一方、６行目から９行目は、ディレイの制約から故障検出回路が付加できなかったタイミングパスの箇所を示しており、１箇所に対する付加結果が空白（スペース）によって区切られて１行に記載されていて、“／／”で始まる行はコメントである。
【０１０６】
例えば７行目の場合、左から順に付加できなかったタイミングパス名が“from_inＡ_to_dataＡ１”であり、タイミングパスのディレイ値が“２.００［ns］”オーバーしていることを示している。
【０１０７】
これらのことにより、回路設計で使用されるハードウェア記述言語に対して、本発明の故障検出回路生成方法が適用可能であることが分かる。
【０１０８】
また更に、実施の形態１では設計の制約条件としてディレイ値を選択して説明したが、制約条件として面積値や消費電力値などを選択し、ディレイ解析処理２を面積解析処理や消費電力解析処理に置き換え、ディレイ情報１２を面積情報や消費電力情報に置き換えれば、ディレイ制約以外にも様々な設計制約条件を前提とした故障検出回路生成方法として適用可能である。
〔実施の形態２〕
次に、本発明における故障検出回路生成方法において、故障検出回路を付加する箇所のレジスタの取り扱い方についての一例を説明する。
【０１０９】
図１１は、組み合わせ回路２０１，２０２と、８ビットのイネーブル付きレジスタ群
２０３、４ビットのイネーブル付きレジスタ群２０４から成る論理回路を示すブロック図であり、この論理回路に対してパリティチェック回路２０９を生成し、論理回路の故障検出を行うことを示している。
【０１１０】
イネーブル付きレジスタ群２０３、２０４にはイネーブル信号２５６が入力されており、イネーブル信号２５６の値が１のときに、共通のクロック信号の立ち上がりに同期してレジスタに保持されている値が更新される。
【０１１１】
ここで、イネーブル付きレジスタ２０６はパリティビットを保持する１ビットのレジスタであるが、ＸＯＲ回路２０５は、８ビットのデータ信号２５１と４ビットのデータ信号２５３を合わせた１２ビットのデータ信号からパリティビットを生成し、イネーブル付きレジスタ２０６に入力している。
【０１１２】
イネーブル付きレジスタ群２０３から出力される８ビットのデータ信号２５２と、イネーブル付きレジスタ群２０４から出力される４ビットのデータ信号２５４から、ＸＯＲ回路２０７によってパリティ信号が生成され、イネーブル付きレジスタ２０６から出力されるパリティ信号とＸＯＲ回路２０７で生成されたパリティ信号は比較回路２０８に入力され、両方のパリティ信号の値が同じであれば比較信号２５５の値が０となって出力され、両方のパリティ信号の値が異なれば、レジスタ群２０３、２０４のいずれかのレジスタに故障が発生したことになり、比較信号２５５の値が１となって出力される。
【０１１３】
図１１に示したような回路構成にすることにより、１組のレジスタ群に対して１つの故障検出回路を生成しなくても、イネーブル信号とクロック信号が同じであれば、複数のレジスタ群に対して１つの故障検出回路を生成すれば良いため、付加される故障検出回路の面積を削減し、コスト効率に優れて消費電力の少ない論理回路を得ることが可能になる。
【０１１４】
また、イネーブル信号の無いレジスタで、同じクロック信号を用いているレジスタ同士であれば同様の故障検出回路生成方法が適用できることは明らかである。
【０１１５】
また図１２は、組み合わせ回路３０１と、６４ビットのレジスタ群３０２から成る論理回路を示すブロック図であり、この論理回路に対してパリティチェック回路３１２を生成し、論理回路の故障検出を行うことを表している。
【０１１６】
パリティチェック回路３１２には、レジスタ群３０２と同じクロック信号の立ち上がりに同期して更新される１ビットのレジスタ３０４，３０８がある。
【０１１７】
ここで、レジスタ群３０２に入力されている６４ビットのデータ信号３５１の上位３２ビットは、ＸＯＲ回路３０３によってパリティ信号が生成されてレジスタ３０４に入力され、クロック信号の立ち上がりに同期して更新される。
【０１１８】
また、データ信号３５１の下位３２ビットは、ＸＯＲ回路３０７によってパリティ信号が生成されてレジスタ３０８に入力され、クロック信号の立ち上がりに同期して更新される。
【０１１９】
レジスタ群３０２から出力される６４ビットのデータ信号３５２の上位３２ビットは、ＸＯＲ回路３０５によってパリティ信号が生成され、比較回路３０６においてレジスタ
３０４から出力されるパリティ信号と比較され、一致していれば比較信号３５３の値が０になり、不一致であれば比較信号３５３の値は１になる。
【０１２０】
また、レジスタ群３０２から出力される６４ビットのデータ信号３５２の下位３２ビットは、ＸＯＲ回路３０９によってパリティ信号が生成され、比較回路３１０においてレジスタ３０８から出力されるパリティ信号と比較され、一致していれば比較信号３５４の値が０になり、不一致であれば比較信号３５４の値は１になる。
【０１２１】
更に、論理和（ＯＲ）回路３１１によって、比較信号３５３，３５４の論理和が故障検出信号３５５として出力されているので、この故障検出信号３５５の値が０のときはレジスタ群３０２に故障は発生していないが、故障検出信号３５５の値が１になったときはレジスタ群３０２のいずれかのレジスタに故障が発生したことを検出する。
【０１２２】
図１２に示したような回路構成では、３２ビットのパリティチェック回路２つに分けて生成していることで、６４ビットのパリティチェック回路を１つ生成する場合よりもディレイの増分を減らすことができるようになり、ディレイ制約を満たしやすい論理回路を得ることが可能になる。
【０１２３】
また更に、図１１と図１２ではパリティチェック回路で説明したが、このように複数のレジスタ群に対して故障検出回路を１つ生成したり、１つのレジスタ群に対してビットを分割した故障検出回路を生成したりする方法は、実施の形態１で示したＥＣＣ、レジスタ多重化、パリティ多重化およびその他の構成の故障検出回路にも適用可能である。
〔実施の形態３〕
図１３は、本発明における故障検出回路生成方法の流れの一例を示したものであるが、実施の形態１の図１と比較して、故障検出回路データベース１５が追加されている。
【０１２４】
故障検出回路データベース１５には、様々な種類の故障検出回路の論理記述と、故障検出回路のディレイ，面積，消費電力などの実測値や見積もり値が登録されている。
【０１２５】
図１４は故障検出回路データベース１５に保存されるデータの一例をテーブル形式で示したものである。
【０１２６】
故障検出回路テーブル５１１において、例えばＮo.１の故障検出回路は、パリティチェック回路でビット幅が４であり、そのパリティチェック回路を論理回路に付加した場合、予想される追加ディレイ値が１.００ns、追加面積値が３.００、増加する消費電力値が
０.５０μｗであることを示している。
【０１２７】
例えば、論理回路内のターゲットとなるタイミングパスが８ビットのレジスタ群である場合、故障検出回路テーブル５１１のＮo.２にある８ビットのパリティチェック回路を選択したが、ディレイ値の増分が１.５０ns ではディレイ制約に収まらないと判断した場合、故障検出回路テーブル５１１のＮo.４にある８ビットのレジスタ多重化回路を選択すれば、ディレイ値の増分が１.００ns に下がるため、ディレイ制約に収まる可能性が高まる。
【０１２８】
このように、故障検出回路データベース１５がある場合、故障検出回路の生成処理３では、ターゲットとなるタイミングパスに対し、制約を満たす範囲内で最適な回路を選択することが容易になる。
【０１２９】
また更に、実施の形態３では故障検出回路データベースに登録するデータの種類として、ディレイ，面積，消費電力などの値で例示したが、これら以外にもファンアウト数や回路を構成しているセルライブラリの名前など、故障検出回路の生成に役立つ様々なデータを登録して活用可能である。
【０１３０】
尚、上述した一連の回路を生成する処理手段はＣＰＵを有する電子計算機により構築されたシステム上に、ソフトウェアにより構成されて処理されているが、これらは色々な形態の電子計算機システムで構成することが可能である。
【０１３１】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１３２】
本発明は、自動車システム，鉄道システム、その他産業システムなど一般に広く利用される集積回路に設けられる故障検出回路の生成方法およびその装置について適用可能である。
【図面の簡単な説明】
【０１３３】
【図１】本発明の実施の形態１における故障検出回路の生成処理の全体をフローチャートで示す図である。
【図２】論理回路の一例を示すブロック図である。
【図３】本発明の実施の形態１における、故障検出回路の生成処理の詳細をフローチャートで示す図である。
【図４】図２に示した論理回路に対して、パリティチェック回路を付加した論理回路の一例を示すブロック図である。
【図５】図４に示した論理回路に対して、パリティチェック回路とレジスタ多重化回路を付加した論理回路の一例を示すブロック図である。
【図６】ＥＣＣ回路を付加した論理回路の一例を示すブロック図である。
【図７】パリティ多重化回路を付加した論理回路の一例を示すブロック図である。
【図８】Verilog−ＨＤＬで記載した回路記述の一例を示す図である。
【図９】図８の回路記述に対し、故障検出回路の記述を付加した回路記述の一例を示す図である。
【図１０】図８の回路記述に故障検出回路の記述を付加した場合に出力される回路付加結果の一例を示す図である。
【図１１】本発明の実施の形態２における、クロック信号とイネーブル信号が同じレジスタ群に対し、１つのパリティチェック回路を付加した論理回路の一例を示すブロック図である。
【図１２】本発明の実施の形態２における、１つのレジスタ群に対し、２つのパリティチェック回路を付加してその比較信号の論理和を取る構成とした論理回路の一例を示すブロック図である。
【図１３】本発明の実施の形態３における、図１で示す故障検出回路の生成処理のフローチャートに故障検出回路データベースを追加したフローチャートを示す図である。
【図１４】本発明の実施の形態３における、故障検出回路データベースに登録されているデータ内容の一例を示すテーブル図である。
【符号の説明】
【０１３４】
１…回路構造の解析処理、２…ディレイ解析処理、３…故障検出回路の生成処理、１１…論理回路データ、１２…ディレイ情報、１３…制約条件、１４…故障検出回路付き論理回路データ、１５…故障検出回路データベース、２１，３１，３２…論理回路、２２，
２３…組み合わせ回路、５１，５２，５３，５４，８２…レジスタ群、７１,７６,２０９，３１２…パリティチェック回路、７２，７４，７７，７９…排他的論理和回路、７３，７８…レジスタ、７５，８０，８３…比較回路、８１…レジスタ多重化回路、９１…ECC回路、１３１…パリティ多重化回路、５０１，５０２…回路記述、５０３…回路付加結果、５１１…故障検出回路テーブル。
【図１】
0004600313.tif 000002
【図２】
0004600313.tif 000003
【図３】
0004600313.tif 000004
【図４】
0004600313.tif 000005
【図５】
0004600313.tif 000006
【図６】
0004600313.tif 000007
【図７】
0004600313.tif 000008
【図８】
0004600313.tif 000009
【図９】
0004600313.tif 000010
【図１０】
0004600313.tif 000011
【図１１】
0004600313.tif 000012
【図１２】
0004600313.tif 000013
【図１３】
0004600313.tif 000014
【図１４】
0004600313.tif 000015