(57)【要約】【課題】遅延故障を検出可能な設計対象回路を示す回路情報を提供すること。【解決手段】設計支援装置１００は、第１経路ｒ１と第２経路ｒ２に分岐する分岐部ｊ１と、分岐部ｊ１によって分岐した第１経路ｒ１と第２経路ｒ２が合流する合流部ｊ２と、を含む設計対象回路のうち、第１経路ｒ１および第２経路ｒ２を示す情報を取得する。設計支援装置１００は、第１経路ｒ１および第２経路ｒ２を示す情報に基づいて、第１経路ｒ１上の素子のうち論理否定機能を有する素子の数の偶奇と、第２経路ｒ２上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定する。一致しないため、設計支援装置１００は、第１経路ｒ１を通過する設計対象パスｐ上の合流部ｊ２よりも前の素子と、合流部ｊ２と、の間に遅延故障を観測する素子（たとえば、ＦＦ）が設けられた設計対象回路を示す回路情報１０２を生成する。【選択図】図１
2014063236.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、
取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、
一致しないと判定した場合、前記第１経路を通過する設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成し、
生成した回路情報を出力する、
処理を実行させることを特徴とする設計支援プログラム。
【請求項２】
前記回路情報を生成する処理は、
前記第１経路上の前記合流部の直前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成することを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記コンピュータに、
一致しないと判定した場合、前記第２経路を経由するパスがクリティカルパスであるか否かを判断する処理を実行させ、
前記回路情報を生成する処理は、
前記クリティカルパスでないと判断した場合には、前記第２経路からの信号を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成し、前記クリティカルパスであると判断された場合には、前記設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成することを特徴とする請求項１または２に記載の設計支援プログラム。
【請求項４】
前記回路情報を生成する処理は、
前記第２経路上の前記合流部の直前の素子と、前記合流部と、の間に前記所定値に固定可能な回路が設けられた設計対象回路を示す回路情報を生成することを特徴とする請求項３に記載の設計支援プログラム。
【請求項５】
コンピュータに、
第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、
取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、
一致しないと判定した場合において、設計対象パスが前記第１経路を通過する場合に、前記第２経路からの信号の値を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成し、
生成した回路情報を出力する、
処理を実行させることを特徴とする設計支援プログラム。
【請求項６】
前記回路情報を生成する処理は、
前記第２経路上の前記合流部の直前の素子と、前記合流部と、の間に前記所定値に固定可能な回路が設けられた設計対象回路を示す回路情報を生成することを特徴とする請求項５に記載の設計支援プログラム。
【請求項７】
前記コンピュータに、
一致しないと判定した場合、前記第２経路を経由するパスがクリティカルパスであるか否かを判断する処理を実行させ、
前記回路情報を生成する処理は、
前記クリティカルパスでないと判断した場合には、前記第２経路からの信号の値を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成することを特徴とする請求項５または６に記載の設計支援プログラム。
【請求項８】
前記回路情報を生成する処理は、
前記クリティカルパスであると判断した場合には、前記第１経路を通過する設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成することを特徴とする請求項７に記載の設計支援プログラム。
【請求項９】
コンピュータが、
第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、
取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、
一致しないと判定した場合、前記第１経路を通過する設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成し、
生成した回路情報を出力する、
処理を実行することを特徴とする設計支援方法。
【請求項１０】
コンピュータが、
第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、
取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、
一致しないと判定した場合において、設計対象パスが前記第１経路を通過する場合に、前記第２経路からの信号の値を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成し、
生成した回路情報を出力する、
処理を実行することを特徴とする設計支援方法。
【請求項１１】
第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得する取得部と、
前記取得部によって取得された前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定する判定部と、
前記判定部によって一致しないと判定された場合、前記第１経路を通過する設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成する生成部と、
前記生成部によって生成された回路情報を出力する出力部と、
を有することを特徴とする設計支援装置。
【請求項１２】
第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得する取得部と、
前記取得部によって取得された前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定する判定部と、
前記判定部によって一致しないと判定された場合において、設計対象パスが前記第１経路を通過する場合に、前記第２経路からの信号の値を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成する生成部と、
前記生成部によって生成された回路情報を出力する出力部と、
を有することを特徴とする設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援プログラム、設計支援方法、および設計支援装置に関する。
【背景技術】
【０００２】
従来、半導体集積回路内の故障を検出するためのテストが容易となるように設計を行う技術が知られている。たとえば、半導体集積回路のテスト容易化技術の１つに、当該回路中に観測点を入れる技術がある（たとえば、下記特許文献１参照。）。また、半導体集積回路内に含まれる異なる組み合わせ回路の論理が等価であるか否かを検証する技術が知られている（たとえば、下記特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−９８００１号公報
【特許文献２】特開平５−２３３７４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、設計対象回路内に再収斂する経路がある場合、観測点を入れても遅延故障を検出できない場合がある。再収斂する経路とは、入力側の端子から出た１つの経路がある点で複数の経路に分岐し、それら複数の経路が出力側の端子に近い別の点で合流する経路を指す。
【０００５】
１つの側面では、本発明は、遅延故障を検出可能な設計対象回路を示す回路情報を提供することができる設計支援プログラム、設計支援方法、および設計支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一の側面によれば、第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、一致しないと判定した場合、前記第１経路を通過する設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成し、生成した回路情報を出力する設計支援プログラム、設計支援方法、および設計支援装置が提案される。
【０００７】
本発明の一の側面によれば、第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、一致しないと判定した場合において、設計対象パスが前記第１経路を通過する場合に、前記第２経路からの信号の値を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成し、生成した回路情報を出力する設計支援プログラム、設計支援方法、および設計支援装置が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、遅延故障を検出可能な設計対象回路を示す回路情報を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の一の動作例を示す説明図である。
【図２】図２は、本発明の他の動作例を示す説明図である。
【図３】図３は、半導体集積回路のテスト例を示す説明図である。
【図４】図４は、遅延故障のテスト例を示す説明図である。
【図５】図５は、遅延故障のテストにおけるオンパスとオフパスを示す説明図である。
【図６】図６は、Ｒｏｂｕｓｔテストの一例を示す説明図である。
【図７】図７は、Ｎｏｎ−Ｒｏｂｕｓｔテストの一例を示す説明図である。
【図８】図８は、Ｎｏｎ−Ｒｏｂｕｓｔテストが不活性化される例１を示す説明図である。
【図９】図９は、Ｎｏｎ−Ｒｏｂｕｓｔテストが不活性化される例２を示す説明図である。
【図１０】図１０は、再収斂パスにおいてＮｏｎ−Ｒｏｂｕｓｔテストが不活性化される例を示す説明図である。
【図１１】図１１は、実施の形態にかかる設計支援装置のハードウェア構成例を示すブロック図である。
【図１２】図１２は、再収斂パスリストの一例を示す説明図である。
【図１３】図１３は、クリティカルパスリストの一例を示す説明図である。
【図１４】図１４は、設計支援装置の機能的構成を示すブロック図である。
【図１５】図１５は、再収斂パスにおいてＮｏｎ−Ｒｏｂｕｓｔテストが不活性となる条件例を示す説明図である。
【図１６】図１６は、設計支援装置による設計支援処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる設計支援プログラム、設計支援方法、および設計支援装置の実施の形態を詳細に説明する。
【００１１】
図１は、本発明の一の動作例を示す説明図である。設計支援装置１００は、半導体集積回路のテストを容易化させるための設計を支援するコンピュータである。回路情報１０１は、再収斂する経路を含む設計対象回路を示す情報である。再収斂する経路とは、入力側の端子から出た１つの経路がある点（分岐部ｊ１）で複数の経路に分岐し、それら複数の経路が出力側の端子に近い別の点（合流部ｊ２）で合流する経路を指している。ここで、再収斂する経路を再収斂パスと称する。
【００１２】
具体的には、回路情報１０１は、第１経路ｒ１と第２経路ｒ２に分岐する分岐部ｊ１と、分岐部ｊ１によって分岐した第１経路ｒ１と第２経路ｒ２が合流する合流部ｊ２と、を含む設計対象回路を示す。回路情報１０１は、たとえば、論理合成後における設計対象回路のネットリストである。ネットリストには、設計対象回路内のモジュールやその内部のセルの接続関係が、ＶｅｒｉｌｏｇやＶＨＤＬ（Ｖｅｒｙ  ｈｉｇｈ  ｓｐｅｅｄ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などのハードウェア記述言語を用いて記述されている。セルとは、設計対象回路に含まれる論理積ゲート（ＡＮＤゲート）、否定論理積ゲート（ＮＡＮＤゲート）、論理和ゲート（ＯＲゲート）、否定論理和ゲート（ＮＯＲゲート）、バッファ（ＢＵＦ）、論理否定ゲート（ＩＮＶ（ＩＮＶＥＲＴＥＲ）ゲート）、ＦＦ（Ｆｌｉｐ  Ｆｌｏｐ，フリップフロップ）などの素子を示す情報である。
【００１３】
たとえば、回路情報１０１は、セルｃ１〜ｃ５を有している。分岐部ｊ１は、セルｃ１が示すＩＮＶゲートの出力であり、合流部ｊ２は、セルｃ５が示すＮＡＮＤゲートである。回路情報１０１については、設計支援装置１００がアクセス可能な記憶装置に予め記憶されていることとする。記憶装置としては、たとえば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスク、光ディスクなどが挙げられる。
【００１４】
設計支援装置１００は、設計対象回路のうち、第１経路ｒ１および第２経路ｒ２を示す情報を取得する。第１経路ｒ１を示す情報と第２経路ｒ２を示す情報とは、たとえば、回路情報１０１内の分岐点から合流点までのネットの識別情報であってもよい。ネットとは、各素子間を結んだ信号線や素子間のつながりを示す。たとえば、回路情報１０１では、ネットｎ０〜ネットｎ５が示されている。または、第１経路ｒ１を示す情報と第２経路ｒ２を示す情報とは、たとえば、回路情報１０１内の分岐点から合流点までの素子を示すセルの識別情報であってもよい。
【００１５】
設計支援装置１００は、第１経路ｒ１および第２経路ｒ２を示す情報に基づいて、第１経路ｒ１上の素子のうち論理否定機能を有する素子の数の偶奇と、第２経路ｒ２上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定する。偶奇とは、偶数であるか奇数であるかを示すことである。論理否定機能を有する素子として、たとえば、ＩＮＶゲート、ＮＯＲゲート、ＮＡＮＤゲートが挙げられる。
【００１６】
具体的には、たとえば、設計支援装置１００は、第１経路ｒ１上の素子のうち論理否定機能を有する素子の数が偶数であるか奇数であるかを、第１経路ｒ１を示す情報に基づいて判定する。たとえば、設計支援装置１００は、第２経路ｒ２上の素子のうち論理否定機能を有する素子の数が偶数であるか奇数であるかを、第２経路ｒ２を示す情報に基づいて判定する。図１の例では、第１経路ｒ１上の素子のうち論理否定機能を有する素子の数は奇数であり、第２経路ｒ２上の素子のうち論理否定機能を有する素子の数は偶数である。図１の例では、設計支援装置１００は、第１経路ｒ１上の素子のうち論理否定機能を有する素子の数の偶奇と、第２経路ｒ２上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致しない。
【００１７】
設計支援装置１００は、一致しないと判定された場合、第１経路ｒ１を通過する設計対象パスｐ上の合流部ｊ２よりも前の素子と、合流部ｊ２と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報１０２を生成する。ここで、パスとは、入力端子からマクロ（たとえば、ＦＦ）までの一連の素子および配線の集合、マクロ（たとえば、ＦＦ）間の一連の素子および配線の集合である。または、パスとは、マクロから出力端子までの一連の素子および配線の集合である。ここでは、ネットｎ０、ネットｎ１、ネットｎ２、ネットｎ５を経由するパスを設計対象パスｐとする。遅延故障を観測する素子とは、たとえば、スキャンＦＦが挙げられる。具体的には、設計支援装置１００は、回路情報１０１にＦＦを示す情報を追加して、新たな回路情報１０２を生成する。回路情報１０２には、スキャンＦＦを示す情報であるセルｃ１０が挿入されている。
【００１８】
設計支援装置１００は、生成した回路情報１０２を出力する。具体的には、設計支援装置１００は、生成した回路情報１０２を設計支援装置１００がアクセス可能な記憶装置に記憶させる。記憶装置としては、たとえば、ＲＯＭ、ＲＡＭ、ハードディスク、光ディスクなどが挙げられる。
【００１９】
図１によれば、設計支援装置１００は、観測用のＦＦが設計対象パスｐの遅延故障を検出可能な位置に挿入された設計対象回路を示す回路情報を提供することができる。当該回路情報を用いてテストパターンが作成されることにより、設計対象回路の故障検出率を向上させることができる。
【００２０】
また、設計支援装置１００は、一致しないと判定された場合、第１経路ｒ１を通過する設計対象パスｐ上の合流部ｊ２よりも直前の素子と、合流部ｊ２と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成してもよい。これにより、設計対象パスｐ上の合流部ｊ２よりも前のすべての素子の遅延故障を検出することができる回路情報を提供することができる。
【００２１】
図２は、本発明の他の動作例を示す説明図である。図２の例では、第１経路ｒ１および第２経路ｒ２を示す情報の取得と、偶奇の一致判定と、については、図１の例と同一であるため、詳細な説明を省略する。
【００２２】
ここでは、一致しないと判定された場合において、設計対象パスｐが第１経路ｒ１を通過する場合について説明する。設計支援装置１００は、第２経路ｒ２上の合流部ｊ２よりも前の素子と、合流部ｊ２と、の間に第２経路ｒ２からの信号の値を所定値に固定可能な回路が第２経路ｒ２上に設けられた設計対象回路を示す回路情報２０１を生成する。所定値に固定可能な回路を制御回路と称する。所定値については、合流部ｊ２の種類によって決定される。具体的には、設計支援装置１００は、回路情報１０１内の遅延故障を観測する素子を示す情報を追加して、新たな回路情報２０１を生成する。
【００２３】
また、設計支援装置１００は、第２経路ｒ２上の合流部ｊ２の直前の素子と、合流部ｊ２と、の間に制御回路が設けられた設計対象回路を示す回路情報２０１を生成してもよい。
【００２４】
たとえば、合流部ｊ２がＮＡＮＤゲートまたはＡＮＤゲートの場合には、設計支援装置１００は、第２経路ｒ２上の合流部ｊ２の直前の素子と、合流部ｊ２と、の間に２入力のＯＲゲートが設けられた設計対象回路を示す回路情報２０１を生成する。設計支援装置１００は、ＯＲゲートの一方の入力端には第２経路ｒ２上の合流部ｊ２の直前の素子の出力端が接続され、ＯＲゲートの他方の入力端にはＤｅｌａｙＴｅｓｔＭｏｄｅ信号などの外部ピンまたはスキャンＦＦで制御可能な信号が接続される。たとえば、ＤｅｌａｙＴｅｓｔＭｏｄｅ信号が１であれば、追加されたＯＲゲートの出力は１となるため第２経路ｒ２からの出力が１（所定値）に固定される。そのため、合流部ｊ２は第１経路ｒ１からの信号を伝搬することができる。図２の例では、回路情報２０１は、ＯＲゲートを示すセルｃ１１を含んでいる。
【００２５】
たとえば、合流部ｊ２がＯＲゲートまたはＮＯＲゲートの場合には、設計支援装置１００は、第２経路ｒ２上の合流部ｊ２の直前の素子と、合流部ｊ２と、の間に２入力のＡＮＤゲートが設けられた設計対象回路を示す回路情報を生成する。当該回路情報については図示していない。設計支援装置１００は、ＡＮＤゲートの一方の入力端には第２経路ｒ２上の合流部ｊ２の直前の素子の出力端が接続され、ＡＮＤゲートの他方の入力端にはＤｅｌａｙＴｅｓｔＭｏｄｅ信号などの外部ピンまたはスキャンＦＦで制御可能な信号が接続される。たとえば、ＤｅｌａｙＴｅｓｔＭｏｄｅ信号が０であれば、追加されたＡＮＤゲートの出力は０となるため第２経路ｒ２からの出力が０（所定値）に固定される。そのため、合流部ｊ２は第１経路ｒ１からの信号を伝搬することができる。外部からのＤｅｌａｙＴｅｓｔＭｏｄｅ信号を１でＡＮＤゲートの出力を０にする場合、設計支援装置１００は、ＤｅｌａｙＴｅｓｔＭｏｄｅ信号を反転させるＩＮＶゲートを設けてＡＮＤゲートの他方の入力端に接続された回路情報を生成してもよい。
【００２６】
図２によれば、設計支援装置１００は、設計対象パスｐの遅延故障が検出可能となる制御回路が挿入された設計対象回路を示す回路情報を提供することができる。当該回路情報を用いてテストパターンが作成されることにより、設計対象回路の故障検出率を向上させることができる。
【００２７】
ここで、設計支援装置１００の詳細な説明を行う前に、理解の容易化のために、テスト容易化設計と遅延故障のテストについて図３〜図１０を用いて簡単に説明する。
【００２８】
図３は、半導体集積回路のテスト例を示す説明図である。ＡＴＥ（Ａｕｔｏｍａｔｅｄ  Ｔｅｓｔ  Ｅｑｕｉｐｍｅｎｔ，半導体試験装置）３００は、テストパターン３１０に基づいて入力信号をテスト対象の半導体集積回路３０１に与える。テスト時に用いるテストパターン３１０とテストパターン３１０を与えた場合に半導体集積回路３０１から出力される出力信号の期待値３１１は、半導体集積回路３０１の設計時に作成される。ＡＴＥ３００は、期待値３１１と実際のテスト結果３１２とを比較することにより、半導体集積回路に不良があるか否かを判定する。図３の例では、期待値３１１とテスト結果３１２とが異なるため、半導体集積回路３０１は故障していると判断される。
【００２９】
図４は、遅延故障のテスト例を示す説明図である。遅延故障のテストは、半導体集積回路のテストの一つである。遅延故障とは、同期式順序回路が含む素子や配線の遅延が増加することにより、誤動作が生じるような故障である。図４の例では、各ＦＦはクロック信号ｃｌｋの立下りで入力データを保持する。図４の例では、ＦＦ１の出力がＡＮＤゲートＡに入力され、ＡＮＤゲートＡの出力がＯＲゲートＢに入力され、ＯＲゲートＢの出力がＮＡＮＤゲートＣに入力され、ＮＡＮＤゲートＣの出力がＦＦ２に入力されている。ＦＦ１の出力で生じた信号値変化が組み合わせ回路（Ａ，Ｂ，Ｃ）内を伝播してつぎのＦＦ２に取り込まれる際、遅延時間が決められた範囲を超えることにより誤動作が生じる。
【００３０】
図４に示すように、ＡＮＤゲートＡで遅延故障がなければ、ＦＦ２は、２番目のクロックの立ち下がりで０を保持する。一方、ＡＮＤゲートＡで遅延故障が発生すると、ＦＦ２は、２番目のクロックの立ち下がりで１を保持する。ＡＮＤゲートＡの遅延故障がＦＦ２へ伝搬するようなテストパターンが作成されれば、テスト時にＡＮＤゲートＡの遅延故障を検出することができる。
【００３１】
図５は、遅延故障のテストにおけるオンパスとオフパスを示す説明図である。ＦＦ１からの信号変化がＦＦ２に伝わるパスをオンパスと称する。オンパス上のゲートのそれぞれの入力端子のうち、オンパス上にない端子をオフパスと称する。オフパスには各素子の出力値を決定させずにオンパスの値を各素子に伝搬させるため、テストパターンでは、オフパスにはＮｏｎ−Ｃｏｎｔｒｏｌｉｎｇ  Ｖａｌｕｅが割り当てられる。具体的には、ＡＮＤゲートまたはＮＡＮＤゲートのＮｏｎ−Ｃｏｎｔｒｏｌｉｎｇ  Ｖａｌｕｅは１である。ＯＲゲートまたはＮＯＲゲートのＮｏｎ−Ｃｏｎｔｒｏｌｉｎｇ  Ｖａｌｕｅは０である。
【００３２】
図６は、Ｒｏｂｕｓｔテストの一例を示す説明図である。Ｒｏｂｕｓｔテストとは、遅延故障の検出が保障されているテストである。たとえば、ＡＮＤゲートについてオンパスのｒｉｓｅ遷移（立ち上がり遷移）をテストする場合には、オフパスを“Ｘ１”とすることにより、ＡＮＤゲートの出力にｒｉｓｅ遷移が伝搬される。Ｘは、０または１のいずれでもよいことを示している。たとえば、ＡＮＤゲートについて、オンパスのｆａｌｌ遷移（立ち下がり遷移）をテストする場合には、オフパスを“Ｓ１”とすることにより、ＡＮＤゲートの出力にｆａｌｌ遷移が伝搬される。Ｓ１とはＳｔａｂｌｅ−１であり、１に固定することを示している。
【００３３】
たとえば、ＯＲゲートについて、オンパスのｒｉｓｅ遷移をテストする場合には、オフパスを“Ｓ０”とすることにより、ＯＲゲートの出力にｒｉｓｅ遷移が伝搬される。Ｓ０とはＳｔａｂｌｅ−０であり、０に固定することを示している。たとえば、ＯＲゲートについて、オンパスのｆａｌｌ遷移をテストする場合には、オフパスを“Ｘ０”とすることにより、ＯＲゲートの出力にｆａｌｌ遷移が伝搬される。
【００３４】
図７は、Ｎｏｎ−Ｒｏｂｕｓｔテストの一例を示す説明図である。Ｎｏｎ−Ｒｏｂｕｓｔテストは素子の入力の組み合わせなどによってＲｏｂｕｓｔテストを行うことが困難な場合に行われるテストである。たとえば、ＡＮＤゲートについてオンパスのｒｉｓｅ遷移をテストする場合には、オフパスを“Ｘ１”とすることにより、ＡＮＤゲートの出力にｒｉｓｅ遷移が伝搬される。たとえば、ＡＮＤゲートについて、オンパスのｆａｌｌ遷移をテストする場合には、オフパスを“Ｘ１”とすることにより、ＡＮＤゲートの出力にｆａｌｌ遷移または“０”が伝搬される。
【００３５】
たとえば、ＯＲゲートについてオンパスのｒｉｓｅ遷移をテストする場合には、オフパスを“Ｘ０”とすることにより、ＯＲゲートの出力にｒｉｓｅ遷移または“１”が伝搬される。たとえば、ＯＲゲートについて、オンパスのｆａｌｌ遷移をテストする場合には、オフパスを“Ｘ０”とすることにより、ＯＲゲートの出力にｆａｌｌ遷移または“０”が伝搬される。
【００３６】
Ｎｏｎ−Ｒｏｂｕｓｔテストでは、オフパスに遅延故障の影響が伝搬したときに、テストが不活性化される場合がある。
【００３７】
図８は、Ｎｏｎ−Ｒｏｂｕｓｔテストが不活性化される例１を示す説明図である。たとえば、図８では、ＡＮＤゲートについてオンパスのｆａｌｌ遷移をテストする場合にオフパスが“０１”である例について説明する。
【００３８】
図８の上のように、オンパスに遅延故障があり、オフパスに遅延故障がないと、ＡＮＤゲートの出力が“０”に固定されず、ＡＮＤゲートの出力に“０”→“１”→“０”のような変化が発生する。一方、図８の下のように、オンパスに遅延故障があり、オフパスに遅延故障があると、オンパスの遅延故障の影響がオフパスによって相殺されるため、ＡＮＤゲートの出力が“０”に固定される。そのため、オンパスに遅延故障があっても、遅延故障がない場合と同様の動作をしてしまう場合があり、オンパスの遅延故障が検出されない。
【００３９】
図９は、Ｎｏｎ−Ｒｏｂｕｓｔテストが不活性化される例２を示す説明図である。たとえば、図９では、ＡＮＤゲートについてオンパスのｆａｌｌ遷移をテストする場合にオフパスが“１１”であり、“１１”の前に“１０”の変化がある例について説明する。
【００４０】
図９の上のように、オンパスに遅延故障があり、オフパスに遅延故障がないと、ＡＮＤゲートの出力にオンパスのｆａｌｌ遷移の影響が発生するタイミングが時間的に後ろにずれる。一方、オンパスに遅延故障があり、オフパスに遅延故障があると、図９の下のように、オフパスの“０”期間とオンパスのＦａｌｌ遷移とが重なってしまう場合があり、オンパスの遅延故障による影響がオフパスによって消されてしまう。そのため、オンパスに遅延故障があっても、遅延故障がない場合と同様の動作をしてしまう場合があり、オンパスの遅延故障が検出されない。
【００４１】
図８および図９の場合は、オンパスの遅延故障以外にオフパスに遅延故障があるため、発生してしまう。一方、再収斂パスがある場合、オンパスの遅延故障だけでもオフパスに遅延故障が発生した場合のように、遅延故障が検出できない場合がある。
【００４２】
図１０は、再収斂パスにおいてＮｏｎ−Ｒｏｂｕｓｔテストが不活性化される例を示す説明図である。図１と同様にネットｎ０、ネットｎ１、ネットｎ２、ネットｎ５を経由するパスを設計対象パスｐとする。ネットｎ１よりも前で遅延故障が発生すると、ネットｎ０、ネットｎ２、ネットｎ３、ネットｎ４を経由するパスにも遅延故障が伝搬する。
【００４３】
Ｎｏｎ−Ｒｏｂｕｓｔテストでは、ネットｎ４の信号が“Ｘ１”であり、ｎ７の信号が“Ｓ１”に設定される。図１０の例のように、ネットｎ４の信号が“０１”となるため、Ｎｏｎ−Ｒｏｂｕｓｔテストについてのテストパターンの生成が成功したと判断されるが、実際には、ネットｎ４の信号には変化が起きずにテストができない。
【００４４】
本実施の形態では、該再収斂パスがあってもＮｏｎ−Ｒｏｂｕｓｔテストを活性化させることができるような設計対象回路を示す回路情報を提供する。
【００４５】
（設計支援装置のハードウェア構成例）
図１１は、実施の形態にかかる設計支援装置のハードウェア構成例を示すブロック図である。図１１において、設計支援装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０１と、ＲＯＭ１１０２と、ＲＡＭ１１０３と、磁気ディスクドライブ１１０４と、磁気ディスク１１０５と、を有している。設計支援装置１００は、光ディスクドライブ１１０６と、光ディスク１１０７と、ディスプレイ１１０８と、Ｉ／Ｆ（ＩｎｔｅｒＦａｃｅ）１１０９と、キーボード１１１０と、マウス１１１１と、を有している。また、各部はバス１１００によってそれぞれ接続されている。
【００４６】
ここで、ＣＰＵ１１０１は、設計支援装置１００の全体の制御を司る。ＲＯＭ１１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１１０３は、ＣＰＵ１１０１のワークエリアとして使用される。磁気ディスクドライブ１１０４は、ＣＰＵ１１０１の制御にしたがって磁気ディスク１１０５に対するデータのリード／ライトを制御する。磁気ディスク１１０５は、磁気ディスクドライブ１１０４の制御で書き込まれたデータを記憶する。
【００４７】
光ディスクドライブ１１０６は、ＣＰＵ１１０１の制御にしたがって光ディスク１１０７に対するデータのリード／ライトを制御する。光ディスク１１０７は、光ディスクドライブ１１０６の制御で書き込まれたデータを記憶したり、光ディスク１１０７に記憶されたデータをコンピュータに読み取らせたりする。図１１では、記憶装置として、ＲＯＭ１１０２と、ＲＡＭ１１０３と、磁気ディスク１１０５と、光ディスク１１０７と、を記載しているが、これに限らず、たとえば、フラッシュメモリが用いられるＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などを有していてもよい。
【００４８】
ディスプレイ１１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１１０８は、たとえば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４９】
Ｉ／Ｆ１１０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークＮＥＴに接続され、このネットワークＮＥＴを介して他の装置に接続される。そして、Ｉ／Ｆ１１０９は、ネットワークＮＥＴと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１１０９には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００５０】
キーボード１１１０は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。図１１では、入力手段としてキーボード１１１０、マウス１１１１を挙げて、出力手段としてディスプレイ１１０８を挙げているが、これに限らず、たとえば、ディスプレイ１１０８をタッチパネルディスプレイとして入力手段および出力手段としてもよい。
【００５１】
（再収斂パスリスト）
図１２は、再収斂パスリストの一例を示す説明図である。再収斂パスリスト１２００には、設計対象回路内の再収斂パスについての情報が設定される。具体的には、再収斂パスリスト１２００には、パス番号、ネットリスト、反転数のフィールドを有している。各フィールドに情報が設定されることにより、レコード（たとえば、１２０１−１〜）として記憶される。再収斂パスリスト１２００は、たとえば、図１１に示したＲＡＭ１１０３、磁気ディスク１１０５、光ディスク１１０７などの記憶装置により実現される。
【００５２】
パス番号のフィールドには、再収斂パスの識別情報が設定される。ネットリストのフィールドには、上側に再収斂パスごとに再収斂パスを構成する第１経路ｒ１を示す情報と、下側に再収斂パスを構成する第２経路ｒ２を示す情報と、が設定される。ここでは、たとえば、ネットリストのフィールドには、分岐部ｊ１となる素子の出力を示すネットの名称から合流部ｊ２となる素子の出力を示すネットの名称までが設定される。たとえば、各ネット名は、回路情報１０１と関連付けられていることとし、設計支援装置１００は、回路情報１０１内のセルのいずれと接続されているネットであるかを特定できる。
【００５３】
たとえば、設計支援装置１００は、フォワードトレースでラベル付けを行うことにより、再収斂パスを検出することができる。
【００５４】
反転数のフィールドには、上側に第１経路ｒ１上の素子のうち論理否定機能を有する素子の数と、下側に第２経路ｒ２上の素子のうち論理否定機能を有する素子の数と、が設定される。上述したように、論理否定機能を有する素子は、ＩＮＶゲート、ＮＡＮＤゲート、ＮＯＲゲートが挙げられる。
【００５５】
（クリティカルパスリスト）
図１３は、クリティカルパスリストの一例を示す説明図である。クリティカルパスリスト１３００には、設計対象回路内の素子の配置および素子間の配線を示すレイアウトデータによりタイミング検証が行われた検証結果から得られる設計対象回路内のクリティカルパスに関する情報が設定される。クリティカルパスとは、信号の伝送遅延が大きい配線経路を指している。クリティカルパスリスト１３００は、パス番号、ネットリストのフィールドを有している。各フィールドに情報が設定されることにより、レコード（たとえば、１３０１−１〜）として記憶される。クリティカルパスリスト１３００は、たとえば、図１１に示したＲＡＭ１１０３、磁気ディスク１１０５、光ディスク１１０７などの記憶装置により実現される。
【００５６】
パス番号のフィールドには、たとえば、クリティカルパスとして検出されたパスの識別情報が設定される。ネットリストのフィールドには、たとえば、クリティカルパス上の素子の出力を示すネットの名称が設定される。
【００５７】
（設計支援装置１００の機能的構成例）
図１４は、設計支援装置の機能的構成を示すブロック図である。設計支援装置１００は、取得部１４０１と、判定部１４０２と、判断部１４０３と、生成部１４０４と、出力部１４０５と、を有している。取得部１４０１から出力部１４０５の処理は、具体的には、たとえば、図１１に示したＲＯＭ１１０２、ＲＡＭ１１０３、磁気ディスク１１０５、光ディスク１１０７などの記憶装置に記憶された設計支援プログラムにコーディングされている。そして、ＣＰＵ１１０１が記憶装置から設計支援プログラムを読み出して、設計支援プログラムにコーディングされている処理を実行することにより、取得部１４０１から出力部１４０５の処理が、実現される。ＣＰＵ１１０１が、Ｉ／Ｆ１１０９を介してネットワークＮＥＴから設計支援プログラムを読み出してもよい。
【００５８】
取得部１４０１は、第１経路ｒ１と第２経路ｒ２に分岐する分岐部ｊ１と、分岐部ｊ１によって分岐した第１経路ｒ１と第２経路ｒ２が合流する合流部ｊ２と、を含む設計対象回路のうち、第１経路ｒ１および第２経路ｒ２を示す情報を取得する。具体的には、取得部１４０１は、再収斂パスリスト１２００から１つのレコードを選択することにより、第１経路ｒ１を示す情報と第２経路ｒ２を示す情報とを取得する。
【００５９】
図１５は、再収斂パスにおいてＮｏｎ−Ｒｏｂｕｓｔテストが不活性となる条件例を示す説明図である。上述したように再収斂パスでは、Ｎｏｎ−Ｒｏｂｕｓｔテストが不活性となる場合がある。たとえば、再収斂パスにおいて、図１５の上に示すように分岐部ｊ１から合流部ｊ２までの２つの経路上にある論理否定の機能を有する素子の数の偶奇が一致していない場合である。
【００６０】
一方、再収斂パスであっても、図１５の下の回路情報１５００に示すように分岐部ｊ１から合流部ｊ２までの２つの経路上にある論理否定の機能を有する素子の数の偶奇が一致している場合、Ｎｏｎ−Ｒｏｂｕｓｔテストが不活性とならない。回路情報１５００はセルｃ２１〜ｃ２４を有する。遅延故障の影響が出る場合には、２パターン目が０となるが、図１５で示すように、偶奇が一致していると、２パターン目が“Ｘ１”となるため、Ｎｏｎ−Ｒｏｂｕｓｔテストが不活性とならないため、設計対象パスの遅延故障を検出可能となる。
【００６１】
そこで、判定部１４０２は、第１経路ｒ１および第２経路ｒ２を示す情報に基づいて、第１経路ｒ１上の素子のうち論理否定機能を有する素子の数の偶奇と、第２経路ｒ２上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定する。
【００６２】
具体的には、たとえば、判定部１４０２は、第１経路ｒ１上の素子のうち論理否定機能を有する素子の数を第１経路ｒ１を示す情報と回路情報１０１に基づいて計数する。回路情報１０１については、予めＲＡＭ１１０３、磁気ディスク１１０５、光ディスク１１０７などの記憶装置に記憶されていることとする。判定部１４０２は、処理対象の再収斂パスに対応する再収斂パスリスト１２００内のレコードの反転数のフィールドの上側に計数結果を設定する。具体的には、たとえば、判定部１４０２は、第２経路ｒ２上の素子のうち論理否定機能を有する素子の数を、第２経路ｒ２を示す情報と回路情報１０１に基づいて計数する。判定部１４０２は、処理対象の再収斂パスに対応する再収斂パスリスト１２００内のレコードの反転数のフィールドの上側に計数結果を設定する。
【００６３】
また、第１経路ｒ１上の素子のうち論理否定機能を有する素子の数と第２経路ｒ２上の素子のうち論理否定機能を有する素子の数とについては、設計支援装置１００の処理の開始前に予め利用者が登録しておいてもよい。
【００６４】
つぎに、判定部１４０２は、処理対象の再収斂パスに対応する再収斂パスリスト１２００内のレコードの反転数のフィールドに設定された数がそれぞれ偶数であるか奇数であるかを判定する。判定部１４０２は、２つの判定結果が一致するか否かを判定する。なお、判定結果は、ＲＡＭ１１０３、磁気ディスク１１０５、光ディスク１１０７などの記憶装置に記憶される。これにより、判定部１４０２によって一致しないと判定されれば、設計対象回路からＮｏｎ−Ｒｏｂｕｓｔテストによって遅延故障を検出できないと推測される回路を示す情報が特定される。
【００６５】
出力部１４０５は、判定部１４０２によって一致すると判定された場合、再収斂パスについて一致する旨を出力してもよい。出力形式としては、ディスプレイ１１０８への表示やＲＡＭ１１０３、磁気ディスク１１０５、光ディスク１１０７などの記憶装置への出力が挙げられる。
【００６６】
生成部１４０４は、判定部１４０２によって一致しないと判定された場合、第１経路ｒ１を通過する設計対象パスｐ上の合流部ｊ２よりも前の素子と、合流部ｊ２と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報１０２を生成する。遅延故障を観測する素子は、たとえば、スキャンＦＦである。図１に具体例を示している。
【００６７】
また、生成部１４０４は、判定部１４０２によって一致しないと判定された場合、第１経路ｒ１を通過する設計対象パスｐ上の合流部ｊ２の直前の素子と、合流部ｊ２と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報１０２を生成する。これにより、設計対象パスｐ上のより多くの素子についての遅延故障に関するテストを行うことが可能な回路情報１０２が提供される。
【００６８】
出力部１４０５は、生成部１４０４によって生成された回路情報１０２を出力する。出力形式としては、たとえば、ＲＡＭ１１０３、磁気ディスク１１０５、光ディスク１１０７などの記憶装置に記憶することである。
【００６９】
または、生成部１４０４は、判定部１４０２により一致しないと判定され、設計対象パスｐが第１経路ｒ１を通過する場合に、第２経路ｒ２からの信号の値を所定値に固定可能な回路が第２経路ｒ２上に設けられた設計対象回路を示す回路情報２０１を生成する。上述したように、所定値に固定可能な回路を制御回路と称する。
【００７０】
また、生成部１４０４は、判定部１４０２により一致しないと判定され、設計対象パスｐが第１経路ｒ１を通過する場合に、第２経路ｒ２上の合流部ｊ２の直前の素子と、合流部ｊ２と、の間に制御回路が設けられた設計対象回路を示す回路情報２０１を生成する。制御回路を追加する位置が第２経路ｒ２上の合流部ｊ２の直前の素子と、合流部ｊ２と、の間であると、生成部１４０４は、第２経路ｒ２上の詳細な回路を解析せずに、合流部ｊ２の素子種に応じて制御回路を示す情報を回路情報１０１に追加すればよい。これにより、生成処理を簡単に実現することができる。
【００７１】
上述したように、たとえば、合流部ｊ２がＮＡＮＤゲートまたはＡＮＤゲートの場合には、制御回路としてＯＲゲートを示す情報が回路情報１０１に追加される。図２に具体例を示している。合流部ｊ２がＮＯＲゲートまたはＯＲゲートの場合には、制御回路としてＡＮＤゲートとＩＮＶゲートの組み合わせを示す情報が回路情報１０１に追加される。
【００７２】
出力部１４０５は、生成部１４０４によって生成された回路情報２０１を出力する。出力形式としては、たとえば、ＲＡＭ１１０３、磁気ディスク１１０５、光ディスク１１０７などの記憶装置に記憶することである。
【００７３】
また、ＯＲゲート、またはＡＮＤゲートとＩＮＶゲートの組み合わせについてのレイアウトは、ＦＦのレイアウトよりも面積が小さい。そのため、設計対象回路の面積が優先される場合、遅延故障を観測可能な素子よりも制御回路が追加される方がよい。一方、ＯＲゲート、またはＡＮＤゲートとＩＮＶゲートの組み合わせを介して合流部ｊ２へ入力されるため、制御回路が追加されると第２経路ｒ２上の遅延量が増加する。
【００７４】
そこで、判断部１４０３は、判定部１４０２によって一致しないと判定された場合、第２経路ｒ２上を経由するパスがクリティカルパスであるか否かを判断する。具体的には、判断部１４０３は、クリティカルパスリスト１３００から、第２経路ｒ２を示す情報を含むパスを検索する。クリティカルパスリスト１３００から、第２経路ｒ２を示す情報を含むパスが検索された場合、判断部１４０３は、第２経路ｒ２上を経由するパスがクリティカルパスであると判断する。クリティカルパスリスト１３００から、第２経路ｒ２を示す情報を含むパスが検索されなかった場合、判断部１４０３は、第２経路ｒ２上を経由するパスがクリティカルパスでないと判断する。
【００７５】
第２経路ｒ２上を経由するパスがクリティカルパスであると判断された場合、生成部１４０４は、設計対象パスｐ上の合流部ｊ２よりも前の素子と、合流部ｊ２と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報１０２を生成する。これにより、クリティカルパスに影響を与えないように遅延故障を検出可能なテストパターンを得られる回路情報１０２を提供することができる。
【００７６】
判断部１４０３によって第２経路ｒ２上を経由するパスがクリティカルパスでないと判断された場合、生成部１４０４は、第２経路ｒ２上の合流部ｊ２よりも前の素子と、合流部ｊ２と、の間に制御回路が設けられた設計対象回路を示す回路情報２０１を生成する。これにより、設計対象回路の面積の増大を抑えた、遅延故障を検出可能なテストパターンを得られる回路情報２０１を提供することができる。
【００７７】
（設計支援装置１００による設計支援処理手順）
図１６は、設計支援装置による設計支援処理手順の一例を示すフローチャートである。まず、設計支援装置１００は、再収斂パスリスト１２００を取得し（ステップＳ１６０１）、再収斂パスリスト１２００から未選択の再収斂パスがあるか否かを判断する（ステップＳ１６０２）。
【００７８】
設計支援装置１００は、再収斂パスリスト１２００から未選択の再収斂パスがある場合（ステップＳ１６０２：Ｙｅｓ）、選択された再収斂パスの第１経路ｒ１と第２経路ｒ２とのそれぞれの反転数を評価する（ステップＳ１６０３）。ここでは、第１経路ｒ１上の論理判定機能を有する素子の数と、第２経路ｒ２上の論理判定機能を有する素子の数と、が計数される。計数結果は、再収斂パスリスト１２００に設定される。
【００７９】
設計支援装置１００は、第１経路ｒ１上の論理判定機能を有する素子の数の偶奇と、第２経路ｒ２上の論理判定機能を有する素子の数の偶奇と、が一致するか否かを判定する（ステップＳ１６０４）。偶奇が一致する場合（ステップＳ１６０４：Ｙｅｓ）、選択された再収斂パスについてのＮｏｎ−Ｒｏｂｕｓｔテストが不活性にならないため、設計支援装置１００は、ステップＳ１６０２へ戻る。
【００８０】
偶奇が一致しない場合（ステップＳ１６０４：Ｎｏ）、設計支援装置１００は、クリティカルパスリスト１３００を取得する（ステップＳ１６０５）。設計支援装置１００は、第１経路ｒ１を通過するパスを設計対象パスｐに設定し（ステップＳ１６０６）、第２経路ｒ２を通過するパスの中にクリティカルパスがあるか否かを判断する（ステップＳ１６０７）。
【００８１】
第２経路ｒ２を通過するパスの中にクリティカルパスがある場合（ステップＳ１６０７：Ｙｅｓ）、設計支援装置１００は、回路情報１０１に観測用のＦＦを示す情報を追加し（ステップＳ１６０８）、ステップＳ１６１０へ移行する。ステップＳ１６０８では、設計支援装置１００は、回路情報１０１内に、第１経路ｒ１を通過する設計対象パスｐ上の合流部ｊ２よりも前の素子と、合流部ｊ２と、の間に観測用のＦＦを示す情報を追加する。
【００８２】
第２経路ｒ２を通過するパスの中にクリティカルパスがない場合（ステップＳ１６０７：Ｎｏ）、設計支援装置１００は、回路情報１０１に制御回路を示す情報を追加し（ステップＳ１６０９）、ステップＳ１６１０へ移行する。ステップＳ１６０８では、設計支援装置１００は、回路情報１０１内に、第２経路ｒ２上の合流部ｊ２よりも前の素子と、合流部ｊ２と、の間に制御回路を示す情報を追加する。
【００８３】
つぎに、設計支援装置１００は、第２経路を通過するパスを設計対象パスｐに設定する（ステップＳ１６１０）。設計支援装置１００は、第１経路を通過するパスの中にクリティカルパスがあるか否かを判断する（ステップＳ１６１１）。第１経路を通過するパスの中にクリティカルパスがある場合（ステップＳ１６１１：Ｙｅｓ）、設計支援装置１００は、回路情報１０１に観測用のＦＦを示す情報を追加し（ステップＳ１６１２）、ステップＳ１６０２へ戻る。第１経路を通過するパスの中にクリティカルパスがない場合（ステップＳ１６１１：Ｎｏ）、設計支援装置１００は、回路情報１０１に制御回路を示す情報を追加し（ステップＳ１６１３）、ステップＳ１６０２へ戻る。
【００８４】
ステップＳ１６０２において、再収斂パスリスト１２００から未選択の再収斂パスがない場合（ステップＳ１６０２：Ｎｏ）、設計支援装置１００は、観測用のＦＦまたは制御回路を示す情報を追加後の回路情報を出力し（ステップＳ１６１４）、一連の処理を終了する。
【００８５】
以上説明したように、設計支援装置は、再収斂パスの分岐部と合流部の間の第１経路および第２経路上の信号反転数の偶奇が異なる場合、回路情報において、観測用のＦＦを示す情報を、第１経路を経由する設計対象パス上の合流部より前に挿入する。これにより、合流部より前で発生する遅延故障を検出可能な回路を示す情報を提供できる。したがって、遅延故障の故障検出率を向上させることができる。
【００８６】
また、設計支援装置は、回路情報において観測用のＦＦを示す情報を、第１経路を経由する設計対象パス上の合流部の直前の素子と、合流部と、の間に挿入する。これにより、設計対象パス上のより多くの素子の遅延故障を観測することができる設計対象回路を示す回路情報が提供される。したがって、遅延故障の故障検出率を向上させることができる。
【００８７】
以上説明したように、設計支援装置は、再収斂パスの分岐部と合流部の間の第１経路および第２経路上の信号反転数の偶奇が異なる場合、回路情報において、制御用素子を示す情報を、第２経路上に挿入する。これにより、第２経路からの信号が合流部で伝搬されないため、第１経路からの信号のみを伝搬することができ、合流部より前で発生する遅延故障を検出可能な回路を示す情報を提供できる。したがって、遅延故障の故障検出率を向上させることができる。
【００８８】
また、設計支援装置は、回路情報内の第２経路上の合流部の直前の素子と合流部との間に制御用の素子を示す情報を挿入する。合流部の素子の種類を判定するだけ、いずれの制御用の素子を示す情報を回路情報内に挿入すればよいかの決定が容易である。そのため、設計支援装置は、制御用素子が設けられた設計対象回路を示す回路情報の生成にかかる処理時間を短縮化することができる。
【００８９】
また、制御用の素子のレイアウトは、観測用のＦＦのレイアウトよりも面積が小さい。そのため、設計対象回路の面積が優先される場合、遅延故障を観測可能な素子よりも制御回路が追加される方がよい。一方、制御用の素子を介して合流部へ入力されるため、制御回路が追加されると第２経路上の遅延量が増加する。
【００９０】
そこで、設計支援装置は、偶奇が異なり、設計対象パスと異なる第２経路を経由するパスがクリティカルパスでない場合、回路情報に第２経路上に制御用素子を示す情報を挿入する。これにより、設計対象回路の面積の増大を抑えた、遅延故障を検出可能なテストパターンを得られる回路情報を提供することができる。設計支援装置は、偶奇が異なり、設計対象パスと異なる第２経路を経由するパスがクリティカルパスである場合、観測用のＦＦを示す情報を、回路情報内の第１経路を経由する設計対象パス上の合流部より前に挿入する。これにより、クリティカルパスに影響を与えないように遅延故障を検出可能なテストパターンを得られる回路情報を提供することができる。
【００９１】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【００９２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９３】
（付記１）コンピュータに、
第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、
取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、
一致しないと判定した場合、前記第１経路を通過する設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成し、
生成した回路情報を出力する、
処理を実行させることを特徴とする設計支援プログラム。
【００９４】
（付記２）前記回路情報を生成する処理は、
前記第１経路上の前記合流部の直前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成することを特徴とする付記１に記載の設計支援プログラム。
【００９５】
（付記３）前記コンピュータに、
一致しないと判定した場合、前記第２経路を経由するパスがクリティカルパスであるか否かを判断する処理を実行させ、
前記回路情報を生成する処理は、
前記クリティカルパスでないと判断した場合には、前記第２経路からの信号を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成し、前記クリティカルパスであると判断された場合には、前記設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成することを特徴とする付記１または２に記載の設計支援プログラム。
【００９６】
（付記４）前記回路情報を生成する処理は、
前記第２経路上の前記合流部の直前の素子と、前記合流部と、の間に前記所定値に固定可能な回路が設けられた設計対象回路を示す回路情報を生成することを特徴とする付記３に記載の設計支援プログラム。
【００９７】
（付記５）コンピュータに、
第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、
取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、
一致しないと判定した場合において、設計対象パスが前記第１経路を通過する場合に、前記第２経路からの信号の値を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成し、
生成した回路情報を出力する、
処理を実行させることを特徴とする設計支援プログラム。
【００９８】
（付記６）前記回路情報を生成する処理は、
前記第２経路上の前記合流部の直前の素子と、前記合流部と、の間に前記所定値に固定可能な回路が設けられた設計対象回路を示す回路情報を生成することを特徴とする付記５に記載の設計支援プログラム。
【００９９】
（付記７）前記コンピュータに、
一致しないと判定した場合、前記第２経路を経由するパスがクリティカルパスであるか否かを判断する処理を実行させ、
前記回路情報を生成する処理は、
前記クリティカルパスでないと判断した場合には、前記第２経路からの信号の値を所定値に固定可能な素子が前記第２経路上に設けられた設計対象回路を示す回路情報を生成することを特徴とする付記５または６に記載の設計支援プログラム。
【０１００】
（付記８）前記回路情報を生成する処理は、
前記クリティカルパスであると判断した場合には、前記第１経路を通過する設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成することを特徴とする付記７に記載の設計支援プログラム。
【０１０１】
（付記９）前記回路情報を生成する処理は、
前記第１経路上の前記合流部の直前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成することを特徴とする付記８に記載の設計支援プログラム。
【０１０２】
（付記１０）コンピュータが、
第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、
取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、
一致しないと判定した場合、前記第１経路を通過する設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成し、
生成した回路情報を出力する、
処理を実行することを特徴とする設計支援方法。
【０１０３】
（付記１１）コンピュータが、
第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、
取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、
一致しないと判定した場合において、設計対象パスが前記第１経路を通過する場合に、前記第２経路からの信号の値を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成し、
生成した回路情報を出力する、
処理を実行することを特徴とする設計支援方法。
【０１０４】
（付記１２）第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得する取得部と、
前記取得部によって取得された前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定する判定部と、
前記判定部によって一致しないと判定された場合、前記第１経路を通過する設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成する生成部と、
前記生成部によって生成された回路情報を出力する出力部と、
を有することを特徴とする設計支援装置。
【０１０５】
（付記１３）第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得する取得部と、
前記取得部によって取得された前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定する判定部と、
前記判定部によって一致しないと判定された場合において、設計対象パスが前記第１経路を通過する場合に、前記第２経路からの信号の値を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成する生成部と、
前記生成部によって生成された回路情報を出力する出力部と、
を有することを特徴とする設計支援装置。
【０１０６】
（付記１４）第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得する取得部と、
前記取得部によって取得された前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定する判定部と、
前記判定部によって一致しないと判定された場合、前記第１経路を通過する設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成する生成部と、
前記生成部によって生成された回路情報を出力する出力部と、
を有するコンピュータを含むことを特徴とする設計支援装置。
【０１０７】
（付記１５）第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得する取得部と、
前記取得部によって取得された前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定する判定部と、
前記判定部によって一致しないと判定された場合において、設計対象パスが前記第１経路を通過する場合に、前記第２経路からの信号の値を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成する生成部と、
前記生成部によって生成された回路情報を出力する出力部と、
を有するコンピュータを含むことを特徴とする設計支援装置。
【０１０８】
（付記１６）第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、
取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、
一致しないと判定した場合、前記第１経路を通過する設計対象パス上の前記合流部よりも前の素子と、前記合流部と、の間に遅延故障を観測する素子が設けられた設計対象回路を示す回路情報を生成し、
生成した回路情報を出力する、
処理をコンピュータに実行させる設計支援プログラムを記録したことを特徴とする記録媒体。
【０１０９】
（付記１７）第１経路と第２経路に分岐する分岐部と、前記分岐部によって分岐した前記第１経路と前記第２経路が合流する合流部と、を含む設計対象回路のうち、前記第１経路および前記第２経路を示す情報を取得し、
取得した前記第１経路および前記第２経路を示す情報に基づいて、前記第１経路上の素子のうち論理否定機能を有する素子の数の偶奇と、前記第２経路上の素子のうち論理否定機能を有する素子の数の偶奇と、が一致するか否かを判定し、
一致しないと判定した場合において、設計対象パスが前記第１経路を通過する場合に、前記第２経路からの信号の値を所定値に固定可能な回路が前記第２経路上に設けられた設計対象回路を示す回路情報を生成し、
生成した回路情報を出力する、
処理をコンピュータに実行させる設計支援プログラムを記録したことを特徴とする記録媒体。
【符号の説明】
【０１１０】
１００  設計支援装置
１０１，１０２，２０１  回路情報
１２００  再収斂パスリスト
１３００  クリティカルパスリスト
１４０１  取得部
１４０２  判定部
１４０３  判断部
１４０４  生成部
１４０５  出力部
ｊ１  分岐部
ｊ２  合流部
ｒ１  第１経路
ｒ２  第２経路
ｐ  設計対象パス
【図１】
2014063236.tif 000003
【図２】
2014063236.tif 000004
【図３】
2014063236.tif 000005
【図４】
2014063236.tif 000006
【図５】
2014063236.tif 000007
【図６】
2014063236.tif 000008
【図７】
2014063236.tif 000009
【図８】
2014063236.tif 000010
【図９】
2014063236.tif 000011
【図１０】
2014063236.tif 000012
【図１１】
2014063236.tif 000013
【図１２】
2014063236.tif 000014
【図１３】
2014063236.tif 000015
【図１４】
2014063236.tif 000016
【図１５】
2014063236.tif 000017
【図１６】
2014063236.tif 000018