(57)【要約】【課題】想定外の遅延による回路のパフォーマンス低下を回避可能な故障検出率向上用回路挿入方法を得ること。【解決手段】本発明は、ＨＤＬ記述による論理回路設計において、論理回路の故障検出率を向上させるための故障検出率向上用回路を挿入する場合の故障検出率向上用回路挿入方法であって、コンピュータの制御部が、論理合成により得られるネットリスト３を入力としてＡＴＰＧを適用して故障検出率を算出し、また、ネットリスト３に基づいて仮配置配線を行い、目標となる故障検出率に達していない場合に、論理設計ファイル１，制約情報２，ネットリスト３，未検出故障情報４，遅延情報ファイル５およびタイミング制約ファイル６等に基づいて、故障検出率向上用回路を挿入する未検出故障箇所を決定する。【選択図】        図１
2010015420.tif 000002
【特許請求の範囲】
【請求項１】
ＨＤＬ記述による論理回路設計において、論理回路の故障検出率を向上させるための故障検出率向上用回路を挿入する場合の故障検出率向上用回路挿入方法であって、
論理合成により得られるネットリストを入力としてＡＴＰＧを適用し、故障検出率を算出する故障検出率算出ステップと、
前記ネットリストに基づいて仮配置配線を行う仮配置配線ステップと、
目標となる故障検出率に達していない場合に、前記ネットリスト、前記仮配置配線により得られる遅延情報、前記故障検出率算出ステップにより判明する未検出故障箇所に関する情報、および静的タイミング検証で使用するタイミング制約情報に基づいて、故障検出率向上用回路を挿入する未検出故障箇所を決定する回路挿入箇所決定ステップと、
を含むことを特徴とする故障検出率向上用回路挿入方法。
【請求項２】
前記回路挿入箇所決定ステップは、
故障検出率向上用回路の追加可能数を調査する故障検出率向上用回路追加可能数決定ステップと、
前記故障検出率算出ステップにより判明した未検出故障箇所を含むフリップフロップ間の経路をチェックし、前記タイミング制約を満たしていれば、その経路上の未検出故障箇所を故障検出率向上用回路挿入の候補とする候補決定ステップと、
前記経路上の未検出故障箇所の中で、クロックサイクルに対して最も余裕のある未検出故障箇所を故障検出率向上用回路挿入対象の未検出故障箇所と決定し、それ以外の未検出故障箇所を候補から除外する挿入対象決定ステップと、
を含み、
前記候補決定ステップおよび前記挿入対象決定ステップの処理を、追加した故障検出率向上用回路の数が追加可能数に達するか、または前記候補がなくなるまで繰り返し実行することを特徴とする請求項１に記載の故障検出率向上用回路挿入方法。
【請求項３】
前記ネットリスト内の前記決定された未検出故障箇所に故障検出率向上用回路を挿入し、当該回路挿入に伴う更新後のネットリストに基づいて配置配線を行い、前記仮配置配線により得られた遅延情報を更新する配置配線ステップと、
前記更新後のネットリストに基づいて再度目標故障検出率に達しているかどうかを判断する故障検出率評価ステップと、
前記故障検出率評価ステップの処理で目標故障検出率に達していると判断した場合に、前記更新後のネットリスト、回路挿入により更新されたタイミング制約ファイルおよび前記更新後の遅延情報に基づいてタイミング検証を行うタイミング検証ステップと、
を含むことを特徴とする請求項１または２に記載の故障検出率向上用回路挿入方法。
【請求項４】
前記候補から除外した未検出故障箇所を示す情報を、前記更新後のネットリストに付加することを特徴とする請求項３に記載の故障検出率向上用回路挿入方法。
【請求項５】
前記ＨＤＬ記述内の前記決定された未検出故障箇所に故障検出率向上用回路を挿入し、当該回路挿入による更新後のＨＤＬ記述を用いて再度論理合成を行い、当該論理合成により得られる更新後のネットリストに基づいて配置配線を行い、前記仮配置配線により得られた遅延情報を更新する配置配線ステップと、
前記更新後のネットリストに基づいて再度目標故障検出率に達しているかどうかを判断する故障検出率評価ステップと、
前記故障検出率評価ステップの処理で目標故障検出率に達していると判断した場合に、前記更新後のネットリスト、回路挿入により更新されたタイミング制約ファイルおよび前記更新後の遅延情報に基づいてタイミング検証を行うタイミング検証ステップと、
を含むことを特徴とする請求項１または２に記載の故障検出率向上用回路挿入方法。
【請求項６】
前記更新後のＨＤＬ記述を用いて機能シミュレーションを行う場合に、前記挿入した故障検出率向上用回路の動作確認のためのモニタリング用記述を生成することを特徴とする請求項５に記載の故障検出率向上用回路挿入方法。
【請求項７】
前記候補から除外した未検出故障箇所を示す情報を、前記更新後のＨＤＬに付加することを特徴とする請求項５または６に記載の故障検出率向上用回路挿入方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを用いて論理回路の故障検出率を向上させるテスト用回路を挿入する場合の故障検出率向上用回路挿入方法に関する。
【背景技術】
【０００２】
故障検出率向上用の回路を挿入する従来の方式として、たとえば、論理合成後のネットリスト（回路接続情報）を使用する方式が下記特許文献１に開示されている。この方式では、論理回路のネットリストとテストパタンを用いて故障シミュレーションを行い、伝搬する未検出故障が最も多い信号線にスキャンパスフリップフロップを接続し、未検出故障伝搬情報を得る。ここで得た未検出故障伝搬情報による故障は検出されたとして、論理回路のネットリストと未検出故障伝搬情報を更新し、新たに故障検出率を算出し、規定の検出率に達していれば処理を終了し、達していなければ同様の手順を繰り返すものである。同様に下記特許文献２および下記特許文献３において、論理合成後のネットリストを使用して故障検出率向上用の回路を挿入する方法が開示されている。
【０００３】
【特許文献１】特開平５−２０９９４３号公報
【特許文献２】特開平９−３３０３４６号公報
【特許文献３】特開平１１−２５１３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術では、論理合成後のネットリストのみを使用して故障検出率向上用の回路を挿入しているが、回路の挿入および回路の配線等による遅延の影響を考慮していない。そのため、想定以上の遅延がある場合、回路全体において要求される周波数で動作しなくなり、誤動作を引き起こしてしまう、という問題があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、想定外の遅延によって回路に要求される周波数で動作しなくなることによる誤動作を回避可能な故障検出率向上用回路挿入方法を得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、ＨＤＬ記述による論理回路設計において、論理回路の故障検出率を向上させるための故障検出率向上用回路を挿入する場合の故障検出率向上用回路挿入方法であって、論理合成により得られるネットリストを入力としてＡＴＰＧを適用し、故障検出率を算出する故障検出率算出ステップと、前記ネットリストに基づいて仮配置配線を行う仮配置配線ステップと、目標となる故障検出率に達していない場合に、前記ネットリスト、前記仮配置配線により得られる遅延情報、前記故障検出率算出ステップにより判明する未検出故障箇所に関する情報、および静的タイミング検証で使用するタイミング制約情報に基づいて、故障検出率向上用回路を挿入する未検出故障箇所を決定する回路挿入箇所決定ステップと、を含むことを特徴とする。
【発明の効果】
【０００７】
この発明によれば、想定外の遅延によって回路に要求される周波数で動作しなくなることによる誤動作を回避することができる、という効果を奏する。
【発明を実施するための最良の形態】
【０００８】
以下に、本発明にかかる故障検出率向上用回路挿入方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【０００９】
実施の形態１．
図１は、本発明にかかる故障検出率向上用回路挿入方法の実施の形態１の動作を示すフローチャートである。また、本実施の形態の故障検出率向上用回路挿入方法を実現する計算機システム（コンピュータ）は、故障検出率向上用回路挿入処理を実行する制御部と、ハードウエア記述言語（ＨＤＬ：Hardware  Description  Language）で記述された論理設計ファイル（ＲＴＬ：Register  Transfer  Level）１，回路規模，動作周波数等の制約情報２，論理合成およびスキャン挿入により出力されるネットリスト（回路接続情報）３，仮診断の結果である未検出故障情報４，仮レイアウトにより生成される遅延情報ファイル５，静的タイミング検証で使用するタイミング制約ファイル６、をそれぞれ記憶するための各種記憶部と、を備える。以下、図１のフローチャートに基づいて上記計算機システムの動作を説明する。
【００１０】
まず、計算機システムの制御部は、論理設計ファイル１と制約情報２の情報を入力して論理合成を行い（ステップＳ１０）、故障検出のためのスキャン回路を挿入し（ステップＳ１１）、ネットリスト３を出力する。
【００１１】
つぎに、制御部は、ネットリスト３に基づいてＡＴＰＧ（automatic  test  pattern  generation）を仮試行し、未検出故障箇所，未検出故障が到達する初段の記憶回路（フリップフロップ：ＦＦ）の情報を収集し、未検出故障情報４を出力する（ステップＳ１２）。また、故障検出率を算出する（ステップＳ１２）。ここで、仮診断において未検出故障が少なく、目標の故障検出率に達している場合（ステップＳ１３：Ｙｅｓ）、回路変更処理は不要なため、制御部は、仮レイアウト（ステップＳ１４）を実施後にタイミング検証（ステップＳ２０）に進む。なお、上記ステップＳ１４の仮レイアウトにおいて、制御部は、ネットリスト３に基づいて配置配線を行い、遅延情報ファイル５を出力する。
【００１２】
一方、仮診断（ステップＳ１２）の結果、故障検出率が目標に達していない場合（ステップＳ１３：Ｎｏ）、制御部は、ネットリスト３，遅延情報ファイル５等の情報に基づいて、故障検出率向上のため回路変更を実施する（ステップＳ１５）。
【００１３】
図２は、回路変更（ステップＳ１５）の動作を示すフローチャートである。まず、制御部は、論理設計ファイル１，制約情報２，ネットリスト３，未検出故障情報４，遅延情報ファイル５，タイミング制約ファイル６の各データを各記憶部から読み出す（ステップＳ２１）。
【００１４】
つぎに、制御部は、故障検出率向上のために故障検出率向上用回路をいくつ追加可能か調査する（ステップＳ２２）。追加可能な記憶回路数は、「（許容回路規模・現行回路規模）／（（ＦＦ１個のゲート数）×係数）」に基づいて算出する。上記の係数は、以降のステップで故障検出率向上用回路を追加した場合のマージンであり、たとえば、１．１を目安にするが、変更可能な値とする。
【００１５】
つぎに、制御部は、未検出故障箇所の経路チェックを行う（ステップＳ２３）。経路チェックは、静的タイミング検証時に使用するタイミング制約ファイル６に基づいて判断する。タイミング制約ファイルには、タイミング例外箇所として、タイミング制約がない箇所（フォルスパス）や複数サイクルで伝播すればよい箇所（マルチサイクルパス）が定義されている。
【００１６】
制御部は、未検出故障箇所を含む経路（前段の記憶回路（ＦＦ）から未検出故障箇所に到達するまでの経路、および未検出故障箇所から後段の記憶回路（ＦＦ）に到達するまでの経路）の全てが、タイミング例外箇所に含まれているかどうかを調査する。タイミング例外箇所に定義されていれば、上記未検出故障箇所を、故障検出率向上用回路を追加する候補とする。
【００１７】
なお、タイミング例外箇所の中で、起点（前段）と終点（後段）の記憶回路のクロックおよびリセット入力信号が異なる場合は、故障検出率向上用回路を追加した後のタイミング解析において判定が困難となる。そのため、このような場合は、故障検出率向上用回路追加の候補から外す。
【００１８】
つぎに、制御部は、ステップＳ２２でチェックした故障検出率向上用回路追加可能数よりも実際の追加箇所の数が小さく、かつ、故障検出率向上用回路追加の候補の中で検討が未実施の未検出故障箇所があるかどうかを調査し（ステップＳ２４）、可能数に達しておらず検討が未実施の箇所がある場合（ステップＳ２４：Ｙｅｓ）、故障検出率向上用回路を追加する経路を選択する（ステップＳ２５）。ここでは、多くの故障検出率向上用回路追加の候補がある経路を選択する。
【００１９】
つぎに、制御部は、経路上にある候補の中から、故障検出率向上用回路を追加する未検出故障箇所を決定する（ステップＳ２６）。そのため、制御部は、前段の記憶回路の出力から未検出故障箇所のゲート回路の入力までの遅延、および未検出故障箇所のゲート回路の出力から後段の記憶回路の入力までの遅延を測定し、故障検出率向上用回路を追加した場合に、要求されるタイミング条件を満たすかどうかを調査する。調査の結果、複数の候補が残った場合は、タイミング的に最も余裕がある未検出故障箇所を選択する。要求されるタイミング条件を満たさない未検出故障箇所や、選択しなかった未検出故障箇所は、故障検出率向上用回路を追加する候補から外す。ここで、図３−１および図３−２を用いて、具体例を挙げて説明する。
【００２０】
図３−１は、故障検出率向上用回路を追加する前の論理回路の構成例を示す図である。また、図３−２は、故障検出率向上用回路を追加した後の論理回路の構成例を示す図である。３０は前段の記憶回路（ＦＦ）、３１は後段の記憶回路（ＦＦ）、３２，３３，３４はゲート回路、３５は組み合わせ論理回路、３６は追加した故障検出率向上用回路、３６−１は故障検出率向上用回路内の記憶回路（ＦＦ）を表す。なお、図３−１および図３−２の回路において、クロックサイクル（周期）は１０ｎｓであり、経路はマルチサイクル（２サイクル）で伝播すればよいと仮定する。
【００２１】
たとえば、図３−１の回路において、前段の記憶回路３０の出力からゲート回路３２の出力までの経路では、５ｎｓの遅延があり、ゲート回路３２の出力から後段の記憶回路３１の入力までの経路では、１０ｎｓの遅延があると仮定する。同様に、前段の記憶回路３０の出力からゲート回路３３の出力までが７ｎｓ、ゲート回路３３の出力から後段の記憶回路３１の入力までが８ｎｓ、前段の記憶回路３０の出力からゲート回路３４の出力までが９ｎｓ、ゲート回路３４の出力から後段の記憶回路３１の入力までが６ｎｓの遅延があると仮定する。
【００２２】
ここで、図３−１において、ゲート回路３２の出力箇所に故障検出率向上用回路を挿入した場合について検討する。前段の記憶回路３０からゲート回路３２までの経路において遅延は５ｎｓであり１サイクルに収まるが、ゲート回路３２から後段の記憶回路３１までの経路において遅延は１０ｎｓであり２サイクルを要する可能性がある。したがって、この場合は、前段の記憶回路から後段の記憶回路までに合計３サイクル必要となり、要求されるタイミング条件（２サイクル）を満たさないことになる。そのため、ゲート回路３２の出力箇所を候補から外す。
【００２３】
つぎに、ゲート回路３３の出力箇所に故障検出率向上用回路を挿入した場合について検討する。前段の記憶回路３０からゲート回路３３までの経路において遅延は７ｎｓであり、ゲート回路３３から後段の記憶回路３１までの経路において遅延は８ｎｓであり、ともに１０ｎｓ以内で１サイクルずつに収まる。したがって、この場合は、前段の記憶回路から後段の記憶回路において合計２サイクルで収まり、要求されるタイミング条件を満たすことから、候補として残す。
【００２４】
同様にゲート回路３４の出力箇所に故障検出率向上用回路を挿入した場合について検討する。前段の記憶回路３０からゲート回路３４までの経路において遅延は９ｎｓであり、ゲート回路３４から後段の記憶回路３１までの経路において遅延は６ｎｓであり、ともに１０ｎｓ以内で１サイクルずつに収まる。したがって、この場合も、前段の記憶回路から後段の記憶回路において合計２サイクルで収まり、要求されるタイミング条件を満たすことから、候補として残す。
【００２５】
そして、上記候補として残した出力箇所の中から、実際に故障検出率向上用回路を追加する出力箇所（未検出故障箇所）を決定する。上記の例では、故障検出率向上用回路を追加する候補として２箇所が残っているが、ゲート回路３４の出力箇所では、前段の記憶回路３０からゲート回路３４までの経路において遅延が９ｎｓであり、クロックサイクル（１０ｎｓ）に対して余裕が一番小さい。そこで、本実施の形態では、ゲート回路３４の出力箇所を候補から外す。これにより、制御部は、クロックサイクルに対して最も余裕のあるゲート回路３３の出力箇所を、故障検出率向上用回路３６を追加する未検出故障箇所と決定する。故障検出率向上用回路３６を追加した状態の論理回路は、図３−２に示す構成となる。
【００２６】
なお、タイミング制約ファイルの中でフォルスパスとして定義された経路へ故障検出率向上用回路を追加するときは、同一クロックおよび同一リセットで動作する記憶回路間の経路のみを対象とする。この場合、フォルスパスの所要サイクル数の増大を抑制するため、故障検出率向上用回路の追加は、対象の経路内において１箇所とする。
【００２７】
つぎに、制御部は、前記決定した未検出故障箇所に対する故障検出率向上用回路の追加を反映し、ネットリスト３，タイミング制約ファイル６の情報を更新する（ステップＳ２７）。
【００２８】
タイミング制約ファイル６においてマルチサイクルの条件があった箇所は、故障検出率向上用回路の追加により条件が変わる。そのため、故障検出率向上用回路の追加の影響を受ける全ての経路を対象に、故障検出率向上用回路の追加箇所までの伝播に要するサイクル数または遅延時間、および追加箇所からの伝播に要するサイクル数または遅延時間、を反映する必要がある。制御部は、上記の場合、図３−２において前段の記憶回路３０から故障検出率向上用回路３６内の記憶回路３６−１までの経路が１サイクル、記憶回路３６−１から後段の記憶回路３１までの経路が１サイクル、で伝播することを確認できるスクリプトをタイミング制約ファイルに追記する。
【００２９】
その後、制御部は、故障検出率向上用回路追加箇所数が故障検出率向上用回路追加可能数よりも小さく、かつ、故障検出率向上用回路追加の候補の中で検討が未実施の未検出故障箇所があるかどうかを再度調査し（ステップＳ２４）、可能数に達するか、または検討が未実施の未検出故障箇所がなくなるまで上記ステップＳ２４〜Ｓ２７の処理を繰り返し実行する。
【００３０】
そして、上記繰り返し処理の結果、ステップＳ２４の処理で実際の故障検出率向上用回路追加箇所数が故障検出率向上用回路追加可能数に達した場合や検討が未実施の未検出故障箇所がなくなった場合（ステップＳ２４：Ｎｏ）、制御部は、故障検出率向上用回路を追加した内容を反映し、更新したネットリスト３ａ，およびタイミング制約ファイル６ａを出力し、回路変更の処理を終了する（ステップＳ２８）。なお、上記ステップＳ２２の処理で故障検出率向上用回路追加可能数が０の場合やステップＳ２３の処理で故障検出率向上用回路追加の候補とする未検出故障箇所がなかった場合（ステップＳ２４：Ｎｏ）、制御部は、故障検出率向上用回路の追加が行われていないので、図２の回路変更処理、さらには、図１の故障検出率向上用回路挿入処理を終了する。
【００３１】
つぎに、制御部は、回路変更実施後のネットリスト３ａを使用して配置配線を行い、回路変更後の遅延情報ファイル５ａを出力する（ステップＳ１９）。
【００３２】
また、上記ステップＳ１５の処理で回路変更後、制御部は、回路変更実施後のネットリスト３ａを使用して、仮診断（ステップＳ１２）で未検出故障箇所であった箇所が検出可能かどうかを確認し、目標の故障検出率に達しているかどうかを評価する（ステップＳ１６）。
【００３３】
たとえば、目標の故障検出率に達した場合（ステップＳ１７：Ｙｅｓ）、制御部は、最後に、回路変更実施後のネットリスト３ａ，タイミング制約ファイル６ａ，遅延情報ファイル５ａの各情報を入力してタイミング検証を行い（ステップＳ２０）、回路変更による遅延が許容可能な範囲内であるかどうかを確認する。なお、ステップＳ１７の処理で目標の故障検出率に達していないと判断した場合（ステップＳ１７：Ｎｏ）、制御部は、人手によるパタン追加を行い（ステップＳ１８）、その後、追加したパタンに対して、故障検出率の評価を行う（ステップＳ１６）。以降、目標の故障検出率に達するまで上記ステップＳ１６〜Ｓ１８の処理を繰り返し実行する。
【００３４】
以上説明したように、本実施の形態によれば、制御部が、遅延情報ファイルに基づいて故障検出率向上用回路を挿入することとした。これにより、想定外の遅延により要求される周波数で動作しなくなり、誤動作を引き起こしてしまうような回路変更を防ぐことができる。
【００３５】
また、本実施の形態によれば、制御部が、回路変更後の更新情報に基づきタイミング検証を行うこととした。これにより、想定外の遅延により要求される周波数で動作しなくなり、誤動作を引き起こしてしまうような回路変更の有無を判断することができる。
【００３６】
実施の形態２．
実施の形態１では、故障検出率向上用回路を追加する処理について説明した。本実施の形態では、故障検出率向上用回路を追加する場合に、その内容を論理設計ファイルに反映させる処理について説明する。
【００３７】
図４は、本発明にかかる故障検出率向上用回路挿入方法の実施の形態２の動作を示すフローチャートである。以下、図４のフローチャートに基づいて計算機システムの動作を説明する。
【００３８】
なお、論理合成（ステップＳ１０）から仮診断（ステップＳ１２）、および仮レイアウト（ステップＳ１４）の制御部の動作については、実施の形態１と同様であるため、説明を省略する。また、本実施の形態では、論理合成（ステップＳ１０）とスキャン挿入（ステップＳ１１）の２つをあわせてステップＳ４１とする。また、仮診断において未検出故障が少なく、目標の故障検出率に達している場合（ステップＳ１３：Ｙｅｓ）、回路変更処理は不要なため、制御部は、仮レイアウト（ステップＳ１４）を実施後にタイミング検証（ステップＳ２０）に進む。
【００３９】
図４において、制御部は、ステップＳ１２による仮診断の結果、故障検出率が目標に達していない場合（ステップＳ１３：Ｎｏ）、ネットリスト３，遅延情報ファイル５等の情報を入力し、論理設計ファイルの変更を実施する（ステップＳ４０）。
【００４０】
図５は、論理設計ファイル変更（ステップＳ４０）の動作を示すフローチャートである。なお、前述した実施の形態１の図２と同様の処理については同一のステップ番号を付しその説明を省略する。
【００４１】
たとえば、論理合成を行うと論理圧縮されることが一般的であり、論理圧縮により、ネットリストと論理設計ファイルとの間で対応する箇所が分からなくなっていることが多い。本実施の形態の制御部は、故障検出率向上用回路追加の候補の中から、回路を追加する未検出故障箇所を決定するため、ネットリストと論理設計ファイルの対応が分かる未検出故障箇所があるか調査をする。
【００４２】
具体的には、制御部は、故障検出率向上用回路を追加する候補として挙げられている未検出故障箇所が、接続している信号名やインスタンス名から判断して、ネットリストと論理設計ファイルの対応が分かる未検出故障箇所として特定できるかどうかを調査する。特定できた場合は、その未検出故障箇所について、前段の記憶回路の出力から未検出故障箇所直前のセルの出力までの遅延、および未検出故障箇所直後のセルの出力から後段の記憶回路の入力までの遅延、を測定する。そして、故障検出率向上用回路を追加した場合に、要求されるタイミング条件を満たすかどうかを調査する。調査の結果、複数の候補が残った場合の選択方法は、前述した実施の形態１と同じである。制御部は、上記で選択した未検出故障箇所を、故障検出率向上用回路を追加する未検出故障箇所として決定し（ステップＳ５１）、故障検出率向上用回路の追加に伴い論理設計ファイルを変更する（ステップＳ５２）。
【００４３】
具体的に例を挙げて説明する。図６は、論理設計ファイル（ＲＴＬ）の構成例を示す図である。また、図７−１は、図６のＲＴＬを論理合成した場合のネットリストの構成例を示す図である。たとえば、図７−１において、インスタンス名“U121”の“y”端子、“U120”の“y”端子が含まれる経路が未検出故障箇所になっている場合は、経路および信号名から“b＿flag”が論理設計ファイルとネットリストとの間で対応していることが分かる。したがって、この未検出故障箇所の遅延を測定し、要求されるタイミング条件を満たせば、故障検出率向上用回路を追加することができる。図７−２は、要求されるタイミング条件を満たし、故障検出率向上用回路を追加した回路を論理合成した場合のネットリストを示す図である。また、図８は、図７−２のネットリストを論理設計ファイル（ＲＴＬ）に展開した図である。
【００４４】
また、上記ステップＳ５２の処理で論理設計ファイルを変更する場合、制御部は、さらに、故障検出率向上用回路を追加したことを反映するため、タイミング制約ファイル６の情報も更新する（ステップＳ５２）。
【００４５】
なお、故障検出率向上用回路を追加した論理設計ファイルを使って機能シミュレーションを行う場合、故障検出率向上用回路を追加した経路において出力伝播までのサイクル数が変わることが考えられる。そのため、制御部は、追加した故障検出率向上用回路の動作確認のためのモニタリング用記述（アサーション）ファイル７を生成する（ステップＳ５２）。なお、複数の未検出故障個所において故障検出率向上用回路を追加する場合は、故障検出率向上用回路を追加する毎にモニタリング用記述を蓄積する。
【００４６】
その後、制御部は、故障検出率向上用回路追加箇所数が故障検出率向上用回路追加可能数よりも小さく、かつ、故障検出率向上用回路追加の候補の中で検討が未実施の未検出故障箇所があるかどうかを再度調査し（ステップＳ２４）、可能数に達するか、または検討が未実施の未検出故障箇所がなくなるまでステップＳ２４，Ｓ２５，Ｓ５１，Ｓ５２の処理を繰り返し実行する。
【００４７】
そして、上記繰り返し処理の結果、ステップＳ２４の処理で実際の故障検出率向上用回路追加箇所数が故障検出率向上用回路追加可能数に達した場合や検討が未実施の未検出故障箇所がなくなった場合（ステップＳ２４：Ｎｏ）、制御部は、故障検出率向上用回路を追加した内容を反映し、更新した論理設計ファイル１ａ，タイミング制約ファイル６ａ，モニタリング用記述ファイル７を出力し、論理設計ファイル変更の処理を終了する（ステップＳ５３）。なお、上記ステップＳ２２の処理で故障検出率向上用回路追加可能数が０の場合やステップＳ２３の処理で故障検出率向上用回路追加の候補とする未検出故障箇所がなかった場合（ステップＳ２４：Ｎｏ）、制御部は、故障検出率向上用回路の追加が行われていないので、図５の論理設計ファイル変更処理、さらには、図４の故障検出率向上用回路挿入処理を終了する。
【００４８】
上記ステップＳ４０で論理設計ファイル変更処理を終了後、制御部は、更新後の論理設計ファイル１ｂと制約情報２を使用して、再度、論理合成およびスキャン挿入を実施し（ステップＳ４１）、更新後のネットリスト３ｂを出力する。そして、制御部は、更新後のネットリスト３ｂを使用して配置配線を行い、回路変更後の遅延情報ファイル５ｂを出力する（ステップＳ４５）。
【００４９】
また、上記ステップＳ４１の処理で更新後のネットリスト３ｂを出力後、制御部は、更新後のネットリスト３ｂを使用して、仮診断（ステップＳ１２）で未検出故障箇所であった箇所を診断し、目標の故障検出率に達しているかどうかを評価する（ステップＳ１６）。
【００５０】
たとえば、目標の故障検出率に達した場合（ステップＳ１７：Ｙｅｓ）、制御部は、最後に、更新後のネットリスト３ｂ，タイミング制約ファイル６ｂ，遅延情報ファイル５ｂの各情報を入力してタイミング検証を行い（ステップＳ２０）、論理設計ファイル変更による遅延が許容可能な範囲内であるかどうかを確認する。なお、ステップＳ１７の処理で目標の故障検出率に達していないと判断した場合（ステップＳ１７：Ｎｏ）、制御部は、人手によるパタン追加を行い（ステップＳ１８）、その後、追加したパタンに対して、故障検出率の評価を行う（ステップＳ１６）。以降、目標の故障検出率に達するまで上記ステップＳ１６〜Ｓ１８の処理を繰り返し実行する。
【００５１】
以上説明したように、本実施の形態によれば、制御部が、遅延情報ファイルに基づいて故障検出率向上用回路を挿入する未検出故障箇所を特定し、その結果に基づき論理設計ファイルを更新することとした。これにより、実施の形態１と同様の効果が得られるとともに、さらに論理設計ファイルに故障検出率向上の対策が反映されているため、たとえば、次のＬＳＩ開発に変更後の論理設計ファイルを流用することで、同様の故障検出率向上の対策の検討を省略することができる。
【００５２】
なお、本実施の形態では、論理設計ファイルとネットリストの対応が分かる未検出故障箇所についてのみ回路変更を検討している。そのため、実施の形態１で生成されるネットリスト３ａ，タイミング制約ファイル６ａ，遅延情報ファイル５ａと、実施の形態２で生成されるネットリスト３ｂ，タイミング制約ファイル６ｂ，遅延情報ファイル５ｂは異なる内容になることが考えられる。
【００５３】
実施の形態３．
実施の形態１および実施の形態２では、故障検出率向上の対策を実施しても目標の故障検出率に達しない場合、人手による回路修正やパタン追加等の対策を行うこととしている。本実施の形態では、ネットリストまたは論理設計ファイルを参照するだけで対策を検討すべき未検出故障箇所が分かるようにする。
【００５４】
たとえば、実施の形態１の回路変更処理（ステップＳ１５）において、故障検出率向上用回路を追加する候補に挙がったが、実際には追加しなかった未検出故障箇所のネットリストのインスタンス名を変更する。具体的には、たとえば、図７−１において、「候補」で示す箇所が回路追加の候補として挙がったが、実際には追加しなかったと仮定して、インスタンス名“U121”のセルの端子“a1”、“a2”の「stack-at-1」と端子“y”の「stuck-at-1」が未検出だった場合、制御部は、図７−２の「変更」で示すようにインスタンス名を“U121＿y$0＿a3$1＿a4$1”と変更する。このとき、ネットリストの変更の際には、同一インスタンス名のセルが他にないことを確認した上で、設計ルール上使用可能な文字，記号を用いて修正する。
【００５５】
これにより、ネットリスト上に、故障検出率向上用回路を追加する候補であったが、実際には追加しなかった未検出故障箇所の情報を残すことができる。そのため、後に人手による回路修正やパタン追加をする場合であっても、ネットリストを参照するだけで、具体的に検討すべき未検出故障箇所を把握することができる。なお、ここで述べた処理については、実施の形態１における処理とあわせて行うことも可能である。
【００５６】
つぎに、実施の形態２の論理設計ファイル変更処理（ステップＳ４０）については、上記と異なり、論理設計ファイルを参照するだけで対策を検討すべき未検出故障箇所が分かるようにする。たとえば、前述したように、論理合成を行う場合は、論理圧縮により、ネットリストと論理設計ファイルの対応する箇所が分からなくなっていることが多い。そのため、制御部は、未検出故障箇所から最初に伝播する初段の記憶回路のネットリストのインスタンス名を変更する。具体的には、たとえば、図７−１のネットリストにおいて、インスタンス名“sgnl＿out＿reg”の記憶回路に１０箇所の未検出故障が伝播してくる場合、制御部は、インスタンス名を“sgnl＿out＿reg＿undet$10”と変更する。このとき、ネットリストの変更の際には、同一インスタンス名のセルが他にないことを確認した上で、設計ルール上使用可能な文字，記号を用いて修正する。その後、制御部は、このネットリストを論理設計ファイルに展開する。
【００５７】
これにより、論理設計ファイル上に、未検出故障箇所から最初に伝搬する記憶回路の箇所についての情報を残すことができる。そのため、後に人手による回路修正やパタン追加をする場合であっても、論理設計ファイルを参照すれば、記憶回路を基点に検討することで対策すべき未検出故障箇所を容易に把握することができる。なお、ここで述べた処理については、実施の形態２における処理とあわせて行うことも可能である。
【００５８】
以上説明したように、本実施の形態によれば、制御部は、ネットリスト中に故障検出率向上用回路を追加する候補であったことを示す情報を、または、論理設計ファイル中に未検出故障箇所から最初に伝搬する記憶回路の箇所についての情報を、それぞれ追加することとした。これにより、人手による回路修正やパタン追加の対策の際、ネットリストまたは論理設計ファイルを参照するだけで、どの箇所を検討すべきか判断することができる。
【産業上の利用可能性】
【００５９】
以上のように、本発明にかかる故障検出率向上用回路挿入方法は、論理回路開発に有用であり、特に、論理回路の故障検出率を向上させる場合に適している。
【図面の簡単な説明】
【００６０】
【図１】本発明にかかる故障検出率向上用回路挿入方法の実施の形態１の動作を示すフローチャートである。
【図２】回路変更の動作を示すフローチャートである。
【図３−１】故障検出率向上用回路を追加する前の論理回路の構成例を示す図である。
【図３−２】故障検出率向上用回路を追加した後の論理回路の構成例を示す図である。
【図４】本発明にかかる故障検出率向上用回路挿入方法の実施の形態２の動作を示すフローチャートである。
【図５】論理設計ファイル変更の動作を示すフローチャートである。
【図６】論理設計ファイルの構成例を示す図である。
【図７−１】ネットリストの構成例を示す図である。
【図７−２】ネットリストの構成例を示す図である。
【図８】図７−２のネットリストを論理設計ファイルに展開した図である。
【符号の説明】
【００６１】
１，１ｂ  論理設計ファイル（ＲＴＬ）
２  制約情報
３，３ａ，３ｂ  ネットリスト（回路接続情報）
４  未検出故障情報
５，５ａ，５ｂ  遅延情報ファイル
６，６ａ，６ｂ  タイミング制約ファイル
７  モニタリング用記述（アサーション）ファイル
３０，３１  記憶回路（ＦＦ）
３２，３３，３４  ゲート回路
３５  組み合わせ論理回路
３６  故障検出率向上用回路
３６−１  記憶回路（ＦＦ）
【図１】
2010015420.tif 000003
【図２】
2010015420.tif 000004
【図３−１】
2010015420.tif 000005
【図３−２】
2010015420.tif 000006
【図４】
2010015420.tif 000007
【図５】
2010015420.tif 000008
【図６】
2010015420.tif 000009
【図７−１】
2010015420.tif 000010
【図７−２】
2010015420.tif 000011
【図８】
2010015420.tif 000012