(57)【要約】【課題】故障の検出精度を向上させること。【解決手段】設計支援装置１００は、対象回路ＬＯＧＩＣを示す対象回路情報を取得する。設計支援装置１００は、対象回路情報に基づいて、論理回路ＯＲ１の信号の出力先にある第２フリップフロップの中から、いずれか一つの第２フリップフロップを選択する。設計支援装置１００は、制御回路ＣＬが有するスキャン用の第１フリップフロップのデータ入力端子と、選択した第２フリップフロップＳＦＦ３の出力端子と、を接続させることを示す接続情報を生成する。接続情報は、制御回路ＣＬ内の２入力アンド回路ＡＮＤ１の入力端子と、制御対象の信号線ＴＰの信号の出力元である論理回路ＵＬ２と、を接続させることを示す。設計支援装置１００は、接続情報に従って制御回路ＣＬが接続された対象回路ＬＯＧＩＣＴを示す回路情報を生成する。【選択図】図１
2014206831.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
複数の信号線が各入力端子に接続された論理回路を有する対象回路であって、前記複数の信号線の各信号が前記論理回路を経由して出力される対象回路を示す対象回路情報を取得し、
スキャン用の第１フリップフロップを有する制御回路であって、前記第１フリップフロップに設定される値によって前記複数の信号線のうちの制御対象の信号線の値を制御可能な制御回路に関する制御回路情報を取得し、
取得した前記対象回路情報に基づいて、前記対象回路が有するスキャン用の第２フリップフロップのうち、前記論理回路からの信号の出力先にある第２フリップフロップの中から、いずれか一つの第２フリップフロップを選択し、
取得した前記制御回路情報に基づいて、前記制御対象の信号線の信号の出力元と前記制御対象の信号線との間に前記制御回路を直列に接続させ、前記第１フリップフロップのデータ入力端子と、選択した前記第２フリップフロップの出力端子とを接続させることを示す接続情報を生成する、
処理を実行することを特徴とする設計支援方法。
【請求項２】
前記第２フリップフロップを選択する処理では、
前記出力先にある前記第２フリップフロップの中で、前記制御対象の信号線からの論理段数が所定段数以内である第２フリップフロップのうち、いずれか一つの第２フリップフロップを選択することを特徴とする請求項１に記載の設計支援方法。
【請求項３】
前記第２フリップフロップを選択する処理では、
前記出力先にある前記第２フリップフロップの中で、前記制御対象の信号線からの論理段数が最も小さい第２フリップフロップを選択することを特徴とする請求項１または２に記載の設計支援方法。
【請求項４】
前記接続情報を生成する処理では、
前記出力先に前記第２フリップフロップがない場合、前記第１フリップフロップのデータ入力端子へ入力される値が、前記論理回路の非制御値に基づく値に固定されることを示す接続情報を生成することを特徴とする請求項１〜３のいずれか一つに記載の設計支援方法。
【請求項５】
前記第２フリップフロップを選択する処理では、
前記対象回路内の観測対象の信号線に接続される前記観測対象の信号線の値を観測可能なスキャン用の第３フリップフロップと、前記出力先にある前記第２フリップフロップと、の中で、前記制御対象の信号線からの論理段数が最も小さいフリップフロップを選択することを特徴とする請求項１に記載の設計支援方法。
【請求項６】
コンピュータに、
複数の信号線が各入力端子に接続された論理回路を有する対象回路であって、前記複数の信号線の各信号が前記論理回路を経由して出力される対象回路を示す対象回路情報を取得し、
スキャン用の第１フリップフロップを有する制御回路であって、前記第１フリップフロップに設定される値によって前記複数の信号線のうちの制御対象の信号線の値を制御可能な制御回路に関する制御回路情報を取得し、
取得した前記対象回路情報に基づいて、前記対象回路が有するスキャン用の第２フリップフロップのうち、前記論理回路からの信号の出力先にある第２フリップフロップの中から、いずれか一つの第２フリップフロップを選択し、
取得した前記制御回路情報に基づいて、前記制御対象の信号線の信号の出力元と前記制御対象の信号線との間に前記制御回路を直列に接続させ、前記第１フリップフロップのデータ入力端子と、選択した前記第２フリップフロップの出力端子とを接続させることを示す接続情報を生成する、
処理を実行させることを特徴とする設計支援プログラム。
【請求項７】
複数の信号線が各入力端子に接続された論理回路を有する対象回路であって、前記複数の信号線の各信号が前記論理回路を経由して出力される対象回路を示す対象回路情報を取得する第１取得部と、
スキャン用の第１フリップフロップを有する制御回路であって、前記第１フリップフロップに設定される値によって前記複数の信号線のうちの制御対象の信号線の値を制御可能な制御回路に関する制御回路情報を取得する第２取得部と、
前記第１取得部が取得した前記対象回路情報に基づいて、前記対象回路が有するスキャン用の第２フリップフロップのうち、前記論理回路からの信号の出力先にある第２フリップフロップの中から、いずれか一つの第２フリップフロップを選択するフリップフロップ選択部と、
前記第２取得部が取得した前記制御回路情報に基づいて、前記制御対象の信号線の信号の出力元と前記制御対象の信号線との間に前記制御回路を直列に接続させ、前記第１フリップフロップのデータ入力端子と、前記フリップフロップ選択部が選択した前記第２フリップフロップの出力端子とを接続させることを示す接続情報を生成する接続情報生成部と、
を有することを特徴とする設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援方法、設計支援プログラム、および設計支援装置、に関する。
【背景技術】
【０００２】
従来、半導体集積回路の試験には、スキャンテストと呼ばれる技術が知られている。例えば、スキャンテストでは、半導体集積回路の設計時にフリップフロップがスキャン用のフリップフロップに置き換えられる。スキャンテストでは、テストモード時に半導体集積回路内のスキャン用のフリップフロップをシリアルに接続することによりシフトレジスタが形成され、外部入出力端子からスキャン用のフリップフロップを制御または観測できるような経路が設けられる。
【０００３】
また、従来、半導体集積回路の試験時の故障の検出精度を向上させるために、ある信号線の値を観測したり、制御したりする仕組みを半導体集積回路に挿入するＴＰＩ（Ｔｅｓｔ  Ｐｏｉｎｔ  Ｉｎｓｅｒｔｉｏｎ）と呼ばれる技術が知られている。
【０００４】
例えば、ＴＰＩでは、信号値を制御しにくい信号線に、スキャン用のフリップフロップなどを含む制御回路を接続させ、信号値を制御回路によって制御可能とすることによって、故障の検出精度を向上させる技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−８４４２７号公報
【特許文献２】特開２００１−３１２５２９号公報
【特許文献３】特開２００９−２０５４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来、信号線の値を特定の値に固定可能な制御回路では、信号線の値を０から１、または１から０へ遷移させることができない。一方、従来、信号線の値を０から１、または１から０へ遷移させることが可能な制御回路では、信号線の値を特定の値に固定させることができない。そのため、いずれの制御回路を用いても遅延故障を検出できない場合があり、故障の検出精度が低くなるという問題点がある。
【０００７】
１つの側面では、本発明は、故障の検出精度を向上させることができる設計支援方法、設計支援プログラム、および設計支援装置、を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、複数の信号線が各入力端子に接続された論理回路を有する対象回路であって、前記複数の信号線の各信号が前記論理回路を経由して出力される対象回路を示す対象回路情報を取得し、スキャン用の第１フリップフロップを有する制御回路であって、前記第１フリップフロップに設定される値によって前記複数の信号線のうちの制御対象の信号線の値を制御可能な制御回路に関する制御回路情報を取得し、取得した前記対象回路情報に基づいて、前記対象回路が有するスキャン用の第２フリップフロップのうち、前記論理回路からの信号の出力先にある第２フリップフロップの中から、いずれか一つの第２フリップフロップを選択し、取得した前記制御回路情報に基づいて、前記制御対象の信号線の信号の出力元と前記制御対象の信号線との間に前記制御回路を直列に接続させ、前記第１フリップフロップのデータ入力端子と、選択した前記第２フリップフロップの出力端子とを接続させることを示す接続情報を生成する設計支援方法、設計支援プログラム、および設計支援装置、が提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、故障の検出精度を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施の形態にかかる制御回路の接続例を示す説明図である。
【図２】図２は、０に固定可能な制御回路例を示す説明図である。
【図３】図３は、１に固定可能な制御回路例を示す説明図である。
【図４】図４は、設計支援装置のハードウェア構成例を示すブロック図である。
【図５】図５は、設計支援装置の機能的構成例を示すブロック図である。
【図６】図６は、実施例１にかかる対象回路例を示す説明図である。
【図７】図７は、制御候補集合例である。
【図８】図８は、フリップフロップの選択例を示す説明図である。
【図９】図９は、実施例１にかかる接続情報例１を示す説明図である。
【図１０】図１０は、制御候補ＴＰ１に制御回路が接続された例を示す説明図である。
【図１１】図１１は、実施例１にかかる接続情報例２を示す説明図である。
【図１２】図１２は、制御候補ＴＰ２に制御回路が接続された例を示す説明図である。
【図１３】図１３は、実施例１にかかる設計支援装置による設計支援処理手順例を示すフローチャートである。
【図１４】図１４は、実施例２にかかる対象回路例を示す説明図である。
【図１５】図１５は、実施例２にかかる制御候補集合例を示す説明図である。
【図１６】図１６は、観測候補集合例を示す説明図である。
【図１７】図１７は、実施例２にかかる接続情報例を示す説明図である。
【図１８】図１８は、制御候補ＴＰ３に制御回路が接続された例を示す説明図である。
【図１９】図１９は、実施例２にかかる設計支援装置による設計支援処理手順例を示すフローチャートである。
【図２０】図２０は、制御対象の信号の値を０に固定可能な論理回路例を示す説明図である。
【図２１】図２１は、遅延故障Ｆ１を検出するためのテスト例を示す説明図である。
【図２２】図２２は、遅延故障Ｆ２を検出するためのテスト例を示す説明図である。
【図２３】図２３は、制御対象の信号の値を１に固定可能な論理回路例を示す説明図である。
【図２４】図２４は、遅延故障Ｆ３を検出するためのテスト例を示す説明図である。
【図２５】図２５は、遅延故障Ｆ４を検出するためのテスト例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明にかかる設計支援方法、設計支援プログラム、および設計支援装置、の実施の形態を詳細に説明する。制御回路は、遅延故障を検出するために信号線を制御させるために接続される。遅延故障とは、１つの経路を通過する際の信号の遅延時間や１つのゲートを通過する際の信号の遅延時間が所望よりも遅いために回路の動作が異常となる故障である。
【００１２】
また、信号線の値を特定の値に固定可能な制御回路は、スキャン用のフリップフロップと、制御回路の接続先に応じた制御素子と、を有する。この制御回路では、スキャン用のフリップフロップのデータ入力端子と、スキャン用のフリップフロップの出力端子と、が接続される。また、この制御回路では、制御素子はスキャン用のフリップフロップの出力端子と、制御対象の信号線の信号の出力元と、が接続される。そして、制御素子の出力端子が制御対象の信号線に接続される。この制御回路では、スキャン用のフリップフロップに保持される値がつぎのクロックサイクルで変化しないため、信号線の値を０から１、または１から０へ遷移させることができない。
【００１３】
信号線の値を０から１、または１から０へ遷移させることが可能な制御回路では、スキャン用のフリップフロップと、制御回路の接続先に応じた制御素子と、インバータと、を有する。この制御回路では、インバータの入力端子がスキャン用のフリップフロップの出力端子に接続され、インバータの出力端子が、スキャン用のフリップフロップの入力端子と制御素子の入力端子に接続される。この制御回路では、インバータによってスキャン用フリップフロップに保持される値がつぎのクロックサイクルで反転してしまうため、信号線の値を特定の値に固定させることができない。
【００１４】
本実施の形態では、１つの制御回路によって制御対象の信号線を特定の値に固定可能であって、０から１、または１から０に繊維させることが可能となる。
【００１５】
図１は、本実施の形態にかかる制御回路の接続例を示す説明図である。設計支援装置１００は、対象回路ＬＯＧＩＣの設計を支援するコンピュータである。対象回路ＬＯＧＩＣは、複数のユーザ回路ＵＬ（Ｕｓｅｒ  Ｌｏｇｉｃ）１〜３と、複数の信号線が各入力端子に接続されたオア回路ＯＲ１と、を有する。複数の信号線の各信号はオア回路ＯＲ１を経由して対象回路ＬＯＧＩＣの外部まで出力される。オア回路ＯＲ１に接続される複数の信号線のうちの制御対象の信号線は、信号線ＴＰであり、信号線ＴＰに制御回路ＣＬが接続される。
【００１６】
まず、設計支援装置１００は、対象回路ＬＯＧＩＣを示す対象回路情報を取得する。設計支援装置１００は、スキャン用の第１フリップフロップを有する制御回路ＣＬであって、第１フリップフロップに設定される値によって制御対象の信号線の値を制御可能な制御回路に関する制御回路情報を取得する。制御回路情報は、例えば、制御対象の信号線に接続される制御回路の種類に関する情報である。
【００１７】
設計支援装置１００は、対象回路情報に基づいて、オア回路ＯＲ１の信号の出力先にある第２フリップフロップの中から、いずれか一つの第２フリップフロップを選択する。出力先にある第２フリップフロップとは、オア回路ＯＲ１よりも後段にあるフリップフロップである。図１の例では、フリップフロップはＳＦＦ１〜３であり、第２フリップフロップはＳＦＦ３である。
【００１８】
つぎに、設計支援装置１００は、制御回路ＣＬが有するスキャン用の第１フリップフロップＳＦＦ４のデータ入力端子と、選択した第２フリップフロップＳＦＦ３の出力端子と、を接続させることを示す接続情報を生成する。制御回路ＣＬは、第１フリップフロップＳＦＦ４と、２入力のアンド回路ＡＮＤ１と、を有する。制御回路ＣＬの詳細については、図２および図３に示す。接続情報は、制御回路ＣＬ内のアンド回路ＡＮＤ１の入力端子と、制御対象の信号線ＴＰの信号の出力元である論理回路ＵＬ２と、を接続させることを示す。より具体的には、接続情報は、制御回路ＣＬ内のアンド回路ＡＮＤ１の入力端子と、論理回路ＵＬ２の出力端子と、を接続させることを示す。また、接続情報は、信号線ＴＰと制御回路ＣＬの出力端子とを接続させることを示す。これにより、制御対象の信号線ＴＰを制御可能な制御回路ＣＬが接続可能となる。
【００１９】
例えば、フリップフロップＳＦＦ３とフリップフロップＳＦＦ４とに０が複数クロックサイクル中に設定されることにより、信号線ＴＰの値がオア回路ＯＲ１の非制御値である０となる。これにより、ユーザ回路ＵＬ１からの信号がオア回路ＯＲ１を経由して伝搬される。これにより、ユーザ回路ＵＬ１の出力端子からの信号線の遷移故障が検出可能となる。
【００２０】
また、例えば、フリップフロップＳＦＦ３とフリップフロップＳＦＦ４とに異なる値が設定されることにより、２クロックサイクルあれば、０から１、または１から０に遷移する信号が信号線ＴＰに伝搬される。この２クロックサイクルの間にユーザ回路ＵＬ１からの信号の値が０に設定されることにより、０から１、または１から０に遷移する信号線ＴＰの信号がオア回路ＯＲ１を経由して伝搬される。これにより、制御対象の信号線ＴＰの遷移故障が検出可能となる。
【００２１】
また、オア回路ＯＲ１よりも前段にあるフリップフロップは、伝搬させたい信号の値を決定している可能性があるため、テストパターンの設計がしにくい。一方、論理回路ＯＲ１よりも後段にあるフリップフロップは、伝搬させたい信号の値を決定している可能性が低いため、テストパターンの設計がし易い。したがって、設計支援装置１００によれば、値を制御し易いフリップフロップによって制御対象が制御可能となり、故障の検出精度を向上させることができる。
【００２２】
また、設計支援装置１００は、接続情報に従って制御回路ＣＬが接続された対象回路ＬＯＧＩＣＴを示す回路情報を生成してもよい。
【００２３】
図２は、０に固定可能な制御回路例を示す説明図である。例えば制御対象の信号線が１になりやすい、換言すれば、信号の値が１になる確率が０になる確率よりも高い場合に、例えば制御対象の信号線がオア回路やノア回路などの非制御値が０である論理回路の入力端子に接続される場合、図２に示すような出力値を０に固定可能な制御回路ＣＬが用いられる。
【００２４】
（ａ）に示す制御回路ＣＬは、図１に示す非制御回路ＣＬと同一であり、スキャン用のフリップフロップＳＦＦと２入力のアンド回路ＡＮＤとを有する。以降フリップフロップは、スキャン用のフリップフロップであるため、スキャン用であることの説明を省略する。アンド回路ＡＮＤの一の入力端子は、フリップフロップＳＦＦの出力端子と接続され、アンド回路ＡＮＤの他の入力端子は、制御対象の信号線の信号の出力元と接続される。アンド回路ＡＮＤの出力端子が、制御対象の信号線と接続される。
【００２５】
また、（ｂ）に示す制御回路ＣＬは、フリップフロップＳＦＦと、２入力のナンド回路ＮＡＮＤと、２入力のアンド回路ＡＮＤと、を有する。２入力のナンド回路ＮＡＮＤの一の入力端子は、フリップフロップＳＦＦの出力端子に接続され、ナンド回路ＮＡＮＤの他の入力端子には、テストモードの切り替えを行うテストモード信号ＴＭが入力される。アンド回路ＡＮＤの一の入力端子は、ナンド回路ＮＡＮＤの出力端子と接続され、アンド回路ＡＮＤの他の入力端子は、制御対象の信号線の信号の出力元と接続される。アンド回路ＡＮＤの出力端子が、制御対象の信号線と接続される。テストモード信号ＴＭが０であれば、通常の動作モードであることを示し、テストモード信号ＴＭが１であれば、テストモードであることを示す。
【００２６】
制御回路ＣＬ内のフリップフロップＳＦＦのデータ入力端子に、制御対象の信号線よりも後段にあるフリップフロップの出力端子が接続される。これにより、フリップフロップＳＦＦと後段にあるフリップフロップとの値が複数のクロックサイクル中に０に設定されることにより、複数のクロックサイクル中に制御対象の信号線の信号値が０に固定される。この複数のクロックサイクル中にユーザ回路ＵＬ１からの信号の値が０から１または１から０に遷移すれば、ユーザ回路ＵＬ１の出力端子に接続される信号線の遷移故障を検出可能となる。遷移故障とは、論理回路からの１つの信号線の信号の遷移が何らかの影響により遅れる故障である。
【００２７】
また、フリップフロップＳＦＦと後段にあるフリップフロップとに異なる値が設定されることにより、２クロックサイクルあれば、０から１、または１から０に遷移する信号が制御対象の信号線に伝搬される。
【００２８】
図３は、１に固定可能な制御回路例を示す説明図である。例えば制御対象の信号線が０になりやすい、換言すれば、信号の値が０になる確率が１になる確率よりも高い場合に、例えば制御対象の信号線がアンド回路やナンド回路などの非制御値が１である論理回路に接続される場合、図３に示すような出力値を１に固定可能な制御回路ＣＬが用いられる。
【００２９】
（ａ）に示す制御回路ＣＬは、フリップフロップＳＦＦと２入力のオア回路ＯＲとを有する。オア回路ＯＲの一の入力端子は、フリップフロップＳＦＦの出力端子と接続され、オア回路ＯＲの他の入力端子は、制御対象の信号線の信号の出力元と接続される。オア回路ＯＲの出力端子は、制御対象の信号線に接続される。
【００３０】
また、（ｂ）に示す制御回路ＣＬは、フリップフロップＳＦＦと２入力のオア回路ＯＲと２入力のアンド回路ＡＮＤと、を有する。アンド回路ＡＮＤの一の入力端子は、フリップフロップＳＦＦの出力端子に接続され、アンド回路ＡＮＤの他の入力端子には、テストモードの切り替えを行うテストモード信号ＴＭが入力される。オア回路ＯＲの一の入力端子は、アンド回路ＡＮＤの出力端子と接続され、オア回路ＯＲの他の入力端子は、制御対象の信号線の信号の出力元と接続される。オア回路ＯＲの出力端子が、制御対象の信号線と接続される。
【００３１】
制御回路ＣＬ内のフリップフロップＳＦＦのデータ入力端子に、制御対象の信号線よりも後段にあるフリップフロップの出力端子が接続される。これにより、フリップフロップＳＦＦと後段にあるフリップフロップとの値が複数のクロックサイクル中に１に設定されることにより、複数のクロックサイクル中に制御対象の信号線の信号値が１に固定される。
【００３２】
また、フリップフロップＳＦＦと後段にあるフリップフロップとに異なる値が設定されることにより、２クロックサイクルあれば、０から１、または１から０に遷移する信号が制御対象の信号線に伝搬される。
【００３３】
（設計支援装置１００のハードウェア構成例）
図４は、設計支援装置のハードウェア構成例を示すブロック図である。設計支援装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０３と、ディスクドライブ４０４と、ディスク４０５と、を有する。設計支援装置１００は、Ｉ／Ｆ（Ｉｎｔｅｒ  Ｆａｃｅ）４０６と、入力装置４０７と、出力装置４０８と、を有する。また、各部はバス４００によってそれぞれ接続される。
【００３４】
ここで、ＣＰＵ４０１は、設計支援装置１００の全体の制御を司る。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される記憶部である。ディスクドライブ４０４は、ＣＰＵ４０１の制御にしたがってディスク４０５に対するデータのリード／ライトを制御する。ディスク４０５は、ディスクドライブ４０４の制御で書き込まれたデータを記憶する。ディスク４０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００３５】
Ｉ／Ｆ４０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークＮＥＴに接続され、このネットワークＮＥＴを介して他の装置に接続される。そして、Ｉ／Ｆ４０６は、ネットワークＮＥＴと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ４０６には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００３６】
入力装置４０７は、キーボード、マウス、タッチパネルなどユーザの操作により、各種データの入力を行うインターフェースである。また、入力装置４０７は、カメラから画像や動画を取り込むこともできる。また、入力装置４０７は、マイクから音声を取り込むこともできる。出力装置４０８は、ＣＰＵ４０１の指示により、データを出力するインターフェースである。出力装置４０８には、ディスプレイやプリンタが挙げられる。
【００３７】
（設計支援装置１００の機能的構成例）
図５は、設計支援装置の機能的構成例を示すブロック図である。設計支援装置１００は、取得部５０１と、制御候補選択部５０２と、ＳＦＦ選択部５０３と、接続情報生成部５０４と、対象回路情報生成部５０５と、を有する。取得部５０１から対象回路情報生成部５０５の処理は、例えば、ＣＰＵ４０１がアクセス可能なディスク４０５などの記憶装置に記憶された設計支援プログラムにコーディングされる。そして、ＣＰＵ４０１が記憶装置に記憶された設計支援プログラムを読み出して、設計支援プログラムにコーディングされている処理を実行する。これにより、取得部５０１から対象回路情報生成部５０５の処理が実現される。また、各部の処理結果は、例えば、ＲＡＭ４０３、ディスク４０５などの記憶装置に記憶される。
【００３８】
本実施の形態については、実施例１と実施例２とに分けて説明する。実施例１では、制御対象の信号線に接続する制御回路ＣＬ内のフリップフロップのデータ入力端子に制御対象の信号線より後段のフリップフロップの出力を接続する。実施例２では、制御対象の信号線に接続する制御回路ＣＬ内のフリップフロップのデータ入力端子に、後段のフリップフロップおよび観測用のフリップフロップの中で、制御対象の信号線からの論理段数が最も近いフリップフロップの出力を接続する。
【００３９】
（実施例１）
実施例１では、制御対象の信号線に接続する制御回路ＣＬ内のフリップフロップのデータ入力端子に制御対象の信号線より後段のフリップフロップの出力を接続する。これにより、他の回路や他の信号線などへの影響が小さいフリップフロップの値により制御対象の信号線の値を制御させることができ、遅延故障の検出精度を向上させることができる。
【００４０】
取得部５０１は、対象回路ＬＯＧＩＣ内のセルとセル間の接続関係を示す対象回路情報ＬＯＧＩＣＤ１を取得する。ここでの対象回路情報ＬＯＧＩＣＤ１は、ネットリストである。対象回路情報ＬＯＧＩＣＤ１は、例えばＶｅｒｉｌｏｇやＶＨＤＬ（Ｖｅｒｙ  ｈｉｇｈ  ｓｐｅｅｄ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などのハードウェア記述言語やシステム記述言語によって記述される。取得部５０１は、入力装置４０７を介して入力された対象回路情報ＬＯＧＩＣＤ１を取得してもよい。また、取得部５０１は、ＲＡＭ４０３やディスク４０５などの記憶装置に記憶された対象回路情報ＬＯＧＩＣＤ１から取得してもよい。また、取得部５０１は、ネットワークＮＥＴを介して他の装置から対象回路情報ＬＯＧＩＣＤ１を取得してもよい。
【００４１】
図６は、実施例１にかかる対象回路例を示す説明図である。対象回路ＬＯＧＩＣは、スキャン用の複数のフリップフロップＳＦＦ１〜ＳＦＦ５と、複数のユーザ定義ロジックＵＤＬ（Ｕｓｅｒ−Ｄｅｆｉｎｅｄ  Ｌｏｇｉｃ）１〜ＵＤＬ５と、を有する。信号値が制御される制御対象の信号線は、ＴＰ１とＴＰ２とである。制御対象の信号線は、以降制御候補と称する。制御候補ＴＰ１の信号は、ユーザ定義ロジックＵＤＬ２を経由して対象回路ＬＯＧＩＣの外部に出力される。制御候補ＴＰ２の信号は、ユーザ定義ロジックＵＤＬ４を経由して対象回路ＬＯＧＩＣの外部に出力される。
【００４２】
取得部５０１は、対象回路ＬＯＧＩＣ内の複数の制御候補を示す要素を有する制御候補集合ＴＰ＿ｃｏｎを取得する。取得部５０１は、入力装置４０７を介して入力された制御候補集合ＴＰ＿ｃｏｎを取得してもよい。また、取得部５０１は、ＲＡＭ４０３やディスク４０５などの記憶装置に記憶された制御候補集合ＴＰ＿ｃｏｎから取得してもよい。また、取得部５０１は、ネットワークＮＥＴを介して他の装置から制御候補集合ＴＰ＿ｃｏｎを取得してもよい。各要素は、制御候補の識別情報と、データ入力端子に接続されるフリップフロップの識別情報と、制御候補に接続される制御回路ＣＬに関する制御回路情報と、を有する。制御対象の制御候補の識別情報は、例えば制御候補名Ｎａｍｅ１である。データ入力端子に接続されるフリップフロップの識別情報は、例えばＳＦＦ名Ｎａｍｅ２である。例えば、制御候補集合ＴＰ＿ｃｏｎの取得時、ＳＦＦ名Ｎａｍｅ２にはＮｕｌｌが設定されてある。制御回路情報は、制御回路ＣＬの種類ｔｙｐｅとする。制御候補名Ｎａｍｅ１は、例えば対象回路情報ＬＯＧＩＣＤ１に含まれる対象回路ＬＯＧＩＣの全体を表すモジュールから当該制御候補を有するモジュールまでの絶対パスを含むネット名などである。制御回路情報は、例えば、制御候補に接続される制御回路ＣＬの種類ｔｙｐｅである。制御候補に接続される制御回路ＣＬの種類ｔｙｐｅは、制御候補が接続される論理回路の非制御値に基づいて決定される。この非制御値が０の場合、種類ｔｙｐｅには０が設定され、この非制御値が１の場合、種類ｔｙｐｅには１が設定される。
【００４３】
図７は、制御候補集合例である。制御候補集合ＴＰ＿ｃｏｎの各要素であるＴＰｎ（図７中ｎ＝１〜２）の直後の括弧内は、順に、制御候補名Ｎａｍｅ１、ＳＦＦ名Ｎａｍｅ２、種類ｔｙｐｅを示す。
【００４４】
制御候補選択部５０２は、制御候補集合ＴＰ＿ｃｏｎの中から、いずれか１つの要素ｔｐを選択する。要素ｔｐが示す制御候補を制御候補ｔｐｔと呼ぶ。ここでは、制御候補選択部５０２は、制御候補ＴＰ１を示す要素を要素ｔｐとして選択する。
【００４５】
ＳＦＦ選択部５０３は、制御候補ｔｐｔが入力端子に接続される論理回路の出力先にあるフリップフロップの中から、いずれか一つのフリップフロップを選択する。また、ＳＦＦ選択部５０３は、出力先にあるフリップフロップの中から、制御候補ｔｐｔからの論理段数が所定段数Ｔｒａｃｅ＿ｌｉｍｉｔ以内であるフリップフロップのうち、いずれか一つのフリップフロップを選択する。所定段数Ｔｒａｃｅ＿ｌｉｍｉｔについては、対象回路ＬＯＧＩＣの設計者や設計支援装置１００のユーザによって定められる。所定段数Ｔｒａｃｅ＿ｌｉｍｉｔについては、例えば、ディスク４０５などの記憶装置に記憶される。制御回路ＣＬの挿入時には対象回路ＬＯＧＩＣのレイアウト設計が行われていないが、制御対象の信号線に接続する制御回路のスキャン用の第１フリップフロップと論理段数が大きい第２フリップフロップとが接続されると、配置が遠くなる可能性があり、レイアウトが行えない可能性がある。そのため、制御候補からの論理段数が所定段数Ｔｒａｃｅ＿ｌｉｍｉｔ以内であるフリップフロップが選択されることにより、制御候補ｔｐｔにより近くに配置されるフリップフロップが接続され、レイアウトを容易化させることができる。
【００４６】
また、ＳＦＦ選択部５０３は、出力先にあるフリップフロップの中で、制御候補ｔｐｔからの論理段数が最も小さいフリップフロップを選択する。具体的には、ＳＦＦ選択部５０３は、出力先にあるフリップフロップを制御候補ｔｐｔからの論理段数が小さい順に探索する。これにより、制御候補ｔｐｔにより近くに配置されるフリップフロップが接続され、レイアウトを容易化させることができる。
【００４７】
図８は、フリップフロップの選択例を示す説明図である。ＳＦＦ選択部５０３による選択の理解の容易化のために、図８では図６に示した対象回路ＬＯＧＩＣと異なる対象回路ＬＯＧＩＣを用いて説明する。例えばＳＦＦ選択部５０３は、制御候補ｔｐｔより１段後ろにあるフリップフロップを探索する。図８の例では、１段後ろにある論理回路はＵ１だけであるため、つぎに、ＳＦＦ選択部５０３は、制御候補ｔｐｔより２段後ろにあるフリップフロップを探索する。図８の例では、２段後ろにある論理回路はＵ２とＵ３であるため、ＳＦＦ選択部５０３は、制御候補ｔｐｔの信号の出力先に向かって論理段数が３段であるフリップフロップを探索する。図８の例では、フリップフロップＳＦＦ２、ＳＦＦ３が探索される。ＳＦＦ選択部５０３は、フリップフロップＳＦＦ２、ＳＦＦ３のうちいずれか一方のフリップフロップを選択する。
【００４８】
接続情報生成部５０４は、要素ｔｐが示す制御候補に接続される制御回路ＣＬが有するフリップフロップのデータ入力端子と、ＳＦＦ選択部５０３によって選択されたフリップフロップの出力端子と、を接続させることを示す接続情報ＣＰを生成する。具体的には、例えば接続情報生成部５０４は、要素ｔｐのＳＦＦ名Ｎａｍｅ２に、選択されたフリップフロップのインスタンス名を設定する。そして、接続情報生成部５０４は、設定後の要素ｔｐを接続情報ＣＰに追加する。接続情報生成部５０４は、制御候補集合ＴＰ＿ｃｏｎから要素ｔｐを削除する。これにより、あらたに接続情報ＣＰが生成される。生成された接続情報ＣＰと、削除後の制御候補集合ＴＰ＿ｃｏｎとは、例えば、ＲＡＭ４０３、ディスク４０５などの記憶装置に記憶される。
【００４９】
図９は、実施例１にかかる接続情報例１を示す説明図である。接続情報生成部５０４は、制御候補ＴＰ１を示す要素のＳＦＦ名Ｎａｍｅ２にＳＦＦ２が設定される。
【００５０】
図１０は、制御候補ＴＰ１に制御回路が接続された例を示す説明図である。図１０では、フリップフロップＳＦＦ２の出力端子と、制御候補ＴＰ１に接続された制御回路ＣＬのフリップフロップＳＦＦ６のデータ入力端子と、が接続される。制御候補ＴＰ１に接続された制御回路ＣＬは、ユーザ定義回路ＵＤＬ１と、制御候補ＴＰ１と、の間に直列に接続される。また、実際には、例えば制御候補のすべてについて制御回路ＣＬ内のフリップフロップのデータ入力端子の接続先のフリップフロップが選択された後に、制御回路ＣＬが接続されてもよい。
【００５１】
つぎに、制御候補選択部５０２は、制御候補集合ＴＰ＿ｃｏｎに要素が含まれている場合、あらたに１つの要素ｔｐを選択する。ここでは、制御候補ＴＰ２を示す要素が選択される。そして、上述したようにＳＦＦ選択部５０３によって制御候補ＴＰ２については、ＳＦＦ５が選択される。そして、上述したように接続情報生成部５０４によって接続情報ＣＰが生成される。
【００５２】
図１１は、実施例１にかかる接続情報例２を示す説明図である。例えば接続情報ＣＰ内の制御候補ＴＰ２を示す要素のＳＦＦ名Ｎａｍｅ２には、ＳＦＦ５が設定される。
【００５３】
また、対象回路情報生成部５０５は、制御候補選択部５０２によって選択される要素がない場合、接続情報ＣＰに従って、対象回路ＬＯＧＩＣに制御回路ＣＬを接続させた対象回路ＬＯＧＩＣＴを示す対象回路情報ＬＯＧＩＣＤ２を生成する。生成された対象回路情報生成部５０５は、例えば、ＲＡＭ４０３、ディスク４０５などの記憶装置に記憶される。
【００５４】
図１２は、制御候補ＴＰ２に制御回路が接続された例を示す説明図である。図１２で示す対象回路ＬＯＧＩＣＴでは、制御回路ＣＬがユーザ定義回路ＵＤＬ３と制御候補ＴＰ２との間に直列に接続される。また、対象回路ＬＯＧＩＣＴでは、制御回路ＣＬ内のフリップフロップＳＦＦ７のデータ入力端子に、ＳＦＦ５の出力端子が接続される。対象回路情報生成部５０５によって対象回路ＬＯＧＩＣＴを示す対象回路情報ＬＯＧＩＣＤ２が生成される。
【００５５】
また、接続情報生成部５０４は、出力先にフリップフロップがない場合、制御回路ＣＬ内のフリップフロップのデータ入力端子へ入力される値が、制御候補が接続された論理回路の非制御値に基づく値に固定されることを示す接続情報ＣＰを生成する。具体的には、接続情報生成部５０４は、要素ｔｐのＳＦＦ名Ｎａｍｅ２に、要素ｔｐの種類ｔｙｐｅが設定される。
【００５６】
（実施例１にかかる設計支援装置１００による設計支援処理手順例）
図１３は、実施例１にかかる設計支援装置による設計支援処理手順例を示すフローチャートである。図１３では、フリップフロップを省略してＳＦＦとする。まず、設計支援装置１００は、対象回路ＬＯＧＩＣを示す対象回路情報ＬＯＧＩＣＤ１を取得する（ステップＳ１３０１）。つぎに、設計支援装置１００は、制御候補集合ＴＰ＿ｃｏｎを取得する（ステップＳ１３０２）。
【００５７】
そして、設計支援装置１００は、接続情報ＣＰ＝φとする（ステップＳ１３０３）。つづいて、設計支援装置１００は、制御候補集合ＴＰ＿ｃｏｎ＝φであるか否かを判断する（ステップＳ１３０４）。制御候補集合ＴＰ＿ｃｏｎ＝φでない場合（ステップＳ１３０４：Ｎｏ）、設計支援装置１００は、制御候補集合ＴＰ＿ｃｏｎから１つの要素ｔｐを選択する（ステップＳ１３０５）。
【００５８】
設計支援装置１００は、制御候補ｔｐｔを起点として、制御候補ｔｐｔの接続先の論理回路より後段にあり、起点からの論理段数が所定段数Ｔｒａｃｅ＿ｌｉｍｉｔ以内にあるＳＦＦを論理段数が近い順に探索する（ステップＳ１３０６）。設計支援装置１００は、ステップＳ１３０６において、近い順に探索し、ＳＦＦが見つかった時点で探索を終了する幅優先探索を行う。
【００５９】
設計支援装置１００は、ＳＦＦが見つかったか否かを判断する（ステップＳ１３０７）。ＳＦＦが見つかった場合（ステップＳ１３０７：Ｙｅｓ）、設計支援装置１００は、探索されたＳＦＦの中からいずれか一つを選択する（ステップＳ１３０８）。設計支援装置１００は、要素ｔｐのＳＦＦ名Ｎａｍｅ２にＳＦＦのインスタンス名を設定する（ステップＳ１３０９）。ＳＦＦが見つからなかった場合（ステップＳ１３０７：Ｎｏ）、設計支援装置１００は、要素ｔｐのＳＦＦ名Ｎａｍｅ２に、要素ｔｐの種類ｔｙｐｅを設定する（ステップＳ１３１０）。
【００６０】
ステップＳ１３０９またはステップＳ１３１０のつぎに、設計支援装置１００は、接続情報ＣＰに要素ｔｐを追加する（ステップＳ１３１１）。設計支援装置１００は、制御候補集合ＴＰ＿ｃｏｎから要素ｔｐを削除し（ステップＳ１３１２）、ステップＳ１３０４へ戻る。
【００６１】
ステップＳ１３０４において、ＴＰ＿ｃｏｎ＝φである場合（ステップＳ１３０４：Ｙｅｓ）、設計支援装置１００は、接続情報ＣＰの各要素に従って制御回路を接続された対象回路情報ＬＯＧＩＣＤ２を生成し（ステップＳ１３１３）、一連の処理を終了する。
【００６２】
（実施例２）
実施例２では、制御候補に接続する制御回路ＣＬ内のフリップフロップのデータ入力端子に、観測用のフリップフロップ、または制御候補より後段のフリップフロップの中で、制御候補からの論理段数が最も近いフリップフロップの出力を接続する。これにより、他の回路や他の信号線などへの影響が小さいフリップフロップの中で、最も近くに配置される可能性の高いフリップフロップの値により制御候補の値が制御可能となるため、遅延故障の検出精度を向上させることができる。実施例２では、実施例１で示した機能や構成については同一符号とし、詳細な説明を省略する。
【００６３】
図１４は、実施例２にかかる対象回路例を示す説明図である。図１５は、実施例２にかかる制御候補集合例を示す説明図である。対象回路ＬＯＧＩＣは、ユーザ定義ロジックＵＤＬ１〜４と、フリップフロップＳＦＦ１〜５と、を有する。点線で接続された２つのフリップフロップは、観測対象の信号線に接続される観測用のフリップフロップを示す。観測対象の信号線は、観測候補と称する。観測候補にフリップフロップが接続されることにより、観測候補の値がフリップフロップによって観測される。制御候補集合ＴＰ＿ｃｏｎには、制御候補ＴＰ３を示す要素が含まれる。
【００６４】
取得部５０１は、制御候補集合ＴＰ＿ｃｏｎと、観測候補を示す識別情報を要素とする観測候補集合ＴＰ＿ｏｂｓを取得する。取得部５０１は、入力装置４０７を介して入力された制御候補集合ＴＰ＿ｃｏｎと観測候補集合ＴＰ＿ｏｂｓとを取得してもよい。また、取得部５０１は、ＲＡＭ４０３やディスク４０５などの記憶装置に記憶された制御候補集合ＴＰ＿ｃｏｎと観測候補集合ＴＰ＿ｏｂｓから取得してもよい。また、取得部５０１は、ネットワークＮＥＴを介して他の装置から制御候補集合ＴＰ＿ｃｏｎと観測候補集合ＴＰ＿ｏｂｓとを取得してもよい。
【００６５】
図１６は、観測候補集合例を示す説明図である。各要素には、例えば観測候補のネット名の絶対パスが含まれる。ここでの絶対パスは、図１６に示すように、対象回路情報ＬＯＧＩＣＤ１に含まれる対象回路ＬＯＧＩＣの全体を表すモジュールＴｏｐと、観測候補の出力元となる回路のインスタンス名と、観測候補のネット名と、が順に並べられた情報である。
【００６６】
つぎに、制御候補選択部５０２は、観測候補集合ＴＰ＿ｏｂｓに含まれるいずれか一つの要素ｔｐを選択する。ここでは、要素ｔｐとして、制御候補ＴＰ３を示す要素が選択される。
【００６７】
ＳＦＦ選択部５０３は、対象回路ＬＯＧＩＣ内の観測候補に接続される観測用のフリップフロップと、制御候補ｔｐｔの信号の出力先にあるフリップフロップと、の中で、制御候補ｔｐｔからの論理段数が最も小さいフリップフロップを選択する。
【００６８】
また、ＳＦＦ選択部５０３は、観測用のフリップフロップと、出力先にあるフリップフロップと、の中で、論理段数が所定段数Ｔｒａｃｅ＿ｌｉｍｉｔ以内であるフリップフロップのうち、いずれか一つのフリップフロップを選択する。観測用のフリップフロップについては制御候補ｔｐｔよりも後段でなくてよい。そのため、ＳＦＦ選択部５０３は、観測候補集合ＴＰ＿ｏｂｓが示す各観測候補の中から、論理段数が所定段数Ｔｒａｃｅ＿ｌｉｍｉｔ以内である観測候補のうち、論理段数が最も小さい観測候補を選択する。また、ＳＦＦ選択部５０３は、観測候補のうちの所定段数Ｔｒａｃｅ＿ｌｉｍｉｔ以内である観測候補の中で、最も論理段数が小さい観測候補を選択する。ＳＦＦ選択部５０３は、選択した観測候補と、選択したフリップフロップと、のうち、論理段数が小さい方を選択する。図１４の例では、観測候補ｔｐ＿ｏｂｓ１と観測候補ｔｐ＿ｏｂｓ２とが最も小さい論理段数であるため、ＳＦＦ選択部５０３は、観測候補ｔｐ＿ｏｂｓ１を選択する。
【００６９】
そして、接続情報生成部５０４は、要素ｔｐのＳＦＦ名Ｎａｍｅ２に、選択された観測対象の信号線を示す要素または選択されたフリップフロップのインスタンス名を設定する。つぎに、接続情報生成部５０４は、接続情報ＣＰに要素ｔｐを追加する。そして、接続情報生成部５０４は、制御候補集合ＴＰ＿ｃｏｎから、要素ｔｐを削除する。
【００７０】
図１７は、実施例２にかかる接続情報例を示す説明図である。接続情報ＣＰには、制御候補ＴＰ３を示す要素が追加される。図１７の例では、制御候補ＴＰ３を示す要素のＳＦＦ名Ｎａｍｅ２には、観測候補ｔｐ＿ｏｂｓ１を示す要素が設定されてある。
【００７１】
図１８は、制御候補ＴＰ３に制御回路が接続された例を示す説明図である。図１８における対象回路ＬＯＧＩＣＴでは、観測候補ｔｐ＿ｏｂｓ１にフリップフロップＳＦＦ４が接続され、観測候補ｔｐ＿ｏｂｓ２にフリップフロップＳＦＦ５が接続される。制御候補ＴＰ３に接続された制御回路ＣＬ内のＳＦＦ６のデータ入力端子と、観測候補ｔｐ＿ｏｂｓ１に接続された観測用のＳＦＦ４の出力端子とが接続される。対象回路情報生成部５０５によって対象回路ＬＯＧＩＣＴを示す対象回路情報ＬＯＧＩＣＤ２が生成される。対象回路情報生成部５０５による処理は、実施例１と同一であるため、詳細な説明を省略する。
【００７２】
また、所定段数Ｔｒａｃｅ＿ｌｉｍｉｔ以内に、観測対象の信号線と、出力先にあるＳＦＦとがない場合、接続情報生成部５０４は、実施例１と同様に、要素ｔｐのＳＦＦ名Ｎａｍｅ２に要素ｔｐの種類ｔｙｐｅを設定する。
【００７３】
（実施例２にかかる設計支援装置１００による設計支援処理手順例）
図１９は、実施例２にかかる設計支援装置による設計支援処理手順例を示すフローチャートである。図１９では、フリップフロップを省略してＳＦＦとする。まず、設計支援装置１００は、対象回路ＬＯＧＩＣを示す対象回路情報ＬＯＧＩＣＤ１を取得する（ステップＳ１９０１）。つぎに、設計支援装置１００は、制御候補集合ＴＰ＿ｃｏｎを取得する（ステップＳ１９０２）。設計支援装置１００は、観測候補集合ＴＰ＿ｏｂｓを取得する（ステップＳ１９０３）。
【００７４】
そして、設計支援装置１００は、接続情報ＣＰ＝φとする（ステップＳ１９０４）。つづいて、設計支援装置１００は、ＴＰ＿ｃｏｎ＝φであるか否かを判断する（ステップＳ１９０５）。制御候補集合ＴＰ＿ｃｏｎ＝φでない場合（ステップＳ１９０５：Ｎｏ）、設計支援装置１００は、制御候補集合ＴＰ＿ｃｏｎから１つの要素ｔｐを選択する（ステップＳ１９０６）。
【００７５】
設計支援装置１００は、制御候補ｔｐｔよりも後段にあり、制御候補ｔｐｔからの論理段数が所定段数Ｔｒａｃｅ＿ｌｉｍｉｔ以内にあるＳＦＦ、および論理段数が所定段数Ｔｒａｃｅ＿ｌｉｍｉｔ以内にある観測候補を論理段数が近い順に探索する（ステップＳ１９０７）。設計支援装置１００は、ステップＳ１９０７において、近い順に探索し、ＳＦＦが見つかった時点で探索を終了する幅優先探索を行う。
【００７６】
設計支援装置１００は、ＳＦＦまたは観測候補が見つかったか否かを判断する（ステップＳ１９０８）。ＳＦＦまたは観測候補が見つかった場合（ステップＳ１９０８：Ｙｅｓ）、設計支援装置１００は、探索されたＳＦＦまたは観測候補の中からいずれか一つを選択する（ステップＳ１９０９）。設計支援装置１００は、要素ｔｐのＳＦＦ名Ｎａｍｅ２に選択したＳＦＦのインスタンス名または観測候補の候補名Ｎａｍｅを設定する（ステップＳ１９１０）。ＳＦＦおよび観測候補のいずれかも見つからなかった場合（ステップＳ１９０８：Ｎｏ）、設計支援装置１００は、要素ｔｐのＳＦＦ名Ｎａｍｅ２に、要素ｔｐの種類ｔｙｐｅを設定する（ステップＳ１９１１）。
【００７７】
ステップＳ１９１０またはステップＳ１９１１のつぎに、設計支援装置１００は、接続情報ＣＰに要素ｔｐを追加する（ステップＳ１９１２）。設計支援装置１００は、制御候補集合ＴＰ＿ｃｏｎから要素ｔｐを削除し（ステップＳ１９１３）、ステップＳ１９０５へ戻る。
【００７８】
ステップＳ１９０５において、制御候補集合ＴＰ＿ｃｏｎ＝φである場合（ステップＳ１９０５：Ｙｅｓ）、設計支援装置１００は、ステップＳ１９１４へ移行する。設計支援装置１００は、観測候補集合ＴＰ＿ｏｂｓの各要素に従って観測用のＳＦＦを接続させ、接続情報ＣＰの各要素に従って制御回路ＣＬを接続させた対象回路情報ＬＯＧＩＣＤ２を生成し（ステップＳ１９１４）、一連の処理を終了する。
【００７９】
（テスト例）
ここで、遅延故障を検出するためのテストの例について説明する。図２０〜図２２では、制御対象の信号の値を０に固定可能な論理回路における遅延故障を検出するためのテスト例を説明し、図２３〜図２５では、制御対象の信号の値を１に固定可能な論理回路における遅延故障を検出するためのテスト例を説明する。
【００８０】
図２０は、制御対象の信号の値を０に固定可能な論理回路例を示す説明図である。論理回路ＬＯＧＩＣＴ１は、ユーザロジックＵＬ１、ＵＬ２、ＵＬ３、オア回路ＯＲ１および制御回路ＣＬを有する。ユーザロジックＵＬ１の出力端子は、オア回路ＯＲ１の入力端子Ｉ１に接続される。ユーザロジックＵＬ２の出力端子は、制御回路ＣＬを介してオア回路ＯＲ１の入力端子Ｉ２に接続される。オア回路ＯＲ１の出力端子は、ユーザロジックＵＬ３の入力端子に接続される。入力端子Ｉ１へ入力される信号と、入力端子Ｉ２へ入力される信号とは、オア回路ＯＲ１を経由して論理回路ＬＯＧＩＣＴ１の外部に出力される。
【００８１】
入力端子Ｉ２に入力される信号の値が０に固定され、入力端子Ｉ１に入力される信号の値を０から１または１から０に変化させることにより、入力端子Ｉ１を含む信号パスの遅延故障Ｆ１が検出可能となる。
【００８２】
入力端子Ｉ１に入力される信号の値が０に固定され、入力端子Ｉ２に入力される信号の値を０から１または１から０に変化させることにより、入力端子Ｉ２を含む信号パスの遅延故障Ｆ２が検出可能となる。
【００８３】
図２１は、遅延故障Ｆ１を検出するためのテスト例を示す説明図である。図２１に示す動作は、論理回路ＬＯＧＩＣＴ１をテスト可能なテスタが故障検出プログラムを実行することにより実現される。図２１および以降のタイミングチャートにおいて、１番目から６番目のクロックサイクルおよび９番目のクロックサイクルは、スキャンモード入力ＳＭが１に設定されるスキャンシフト期間を示している。７番目および８番目のクロックサイクルは、スキャンモード入力ＳＭが０に設定されるキャプチャ期間を示している。７番目のクロックサイクルの長さは、遅延故障Ｆ１またはＦ２を判断する信号パスの遅延時間に合わせて設定される。換言すれば、信号パスの遅延時間が７番目のクロックサイクルの長さより長いときに、遅延故障Ｆ１またはＦ２の発生が検出される。ここで、７番目のクロックサイクルの長さは、７番目のクロックＣＬＫの立ち上がりエッジから８番目のクロックＣＬＫの立ち上がりエッジまでの期間である。また、フリップフロップＳＦＦｆから出力される値（遷移エッジ）をオア回路ＯＲ１に伝達するために、テストモード端子ＴＭはテストモード中に１に設定される。７番目から９番目のクロックサイクルにおいて、破線で示した波形は、遅延故障が存在するときの動作を示している。
【００８４】
この例では、フリップフロップＳＦＦｅ、ＳＦＦｆ、ＳＦＦｄ、ＳＦＦｃ、ＳＦＦｂ、ＳＦＦａに所望の値を設定するために、１番目から６番目のクロックサイクルにおいてスキャン入力ＳＩＮに１、１、０、０、０、１が順に供給される。スキャン入力ＳＩＮの波形上に示したフリップフロップ名は、６番目のクロックサイクルで設定される値との対応を示している。キャプチャ期間の直前の６番目のクロックサイクルにおいて、フリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｅは、０、１、１、１にそれぞれ設定される。
【００８５】
すなわち、６番目のクロックサイクルにおいて、オア回路ＯＲ１の入力端子Ｉ１にデータ入力Ｄ経由で直列に接続されるフリップフロップＳＦＦｂ、ＳＦＦａは、互いに異なる値を保持する。これにより、キャプチャ期間の７番目のクロックサイクルにおいて、フリップフロップＳＦＦｂに保持される値を０から１に変化でき、オア回路ＯＲ１の入力端子Ｉ１の値を０から１に変化できる。
【００８６】
また、６番目のクロックサイクルにおいて、ナンド回路ＮＡＮＤ１およびアンド回路ＡＮＤ１を介し、かつデータ入力Ｄ経由でオア回路ＯＲ１の入力端子Ｉ２に直列に接続されるフリップフロップＳＦＦｆ、ＳＦＦｅは、互いに同じ値を保持する。これにより、キャプチャ期間の７番目のクロックサイクルにおいて、フリップフロップＳＦＦｆに保持される値を、１クロックサイクル前にフリップフロップＳＦＦｅに保持されている値を用いて１に維持できる。したがって、フリップフロップＳＦＦｆの出力ノードに接続されるオア回路ＯＲ１の入力端子Ｉ２の値を０に維持できる。なお、フリップフロップＳＦＦｆに保持されている値は、ナンド回路ＮＡＮＤ１により反転されて、ノードＮＤｆおよびオア回路ＯＲ１の入力端子Ｉ２に伝達される。
【００８７】
遅延故障Ｆ１が存在しないとき、フリップフロップＳＦＦｂが保持する値の変化は、オア回路ＯＲ１の入力端子Ｉ１、オア回路ＯＲ１の出力ノードＮＤｈに直ちに伝達される。回路ＣＣ２は、出力ノードＮＤｈの０から１への変化に応答して、出力ノードＮＤｉを１から０に直ちに変化する。このため、フリップフロップＳＦＦｅは、キャプチャ期間の８番目のクロックサイクルにおいて、０をラッチし、ラッチした０をスキャンアウト端子ＳＯＵＴに出力する。そして、スキャンシフト期間の９番目のクロックサイクルにおいて、テスタは、スキャンアウト端子ＳＯＵＴからの信号の値である０を読み込むことにより、遅延故障Ｆ１が存在しないことを検出する。
【００８８】
なお、実際の回路では、フリップフロップＳＦＦｅの出力は、複数のフリップフロップを介してスキャンアウト端子ＳＯＵＴに接続されることが多い。この場合、スキャンアウト端子ＳＯＵＴは、例えば、スキャンチェーンであるシフトレジスタが有する最終のフリップフロップの出力Ｑに接続され、遅延故障Ｆ１の有無は、９番目のクロックサイクルより後のクロックサイクルで判定される。
【００８９】
一方、遅延故障Ｆ１が存在するとき、フリップフロップＳＦＦｂが保持する値の変化は、破線で示すように、オア回路ＯＲ１の入力端子Ｉ１、オア回路ＯＲ１の出力ノードＮＤｈあるいは回路ＣＣ２の出力ノードＮＤｉに遅れて伝達される。信号の遅延により、キャプチャ期間の８番目のクロックサイクルにおいて、フリップフロップＳＦＦｅがノードＮＤｉの０をラッチできないとき、スキャンアウト端子ＳＯＵＴは１に維持される。テスタは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴからの信号の値である１を読み込むことにより、遅延故障Ｆ１が存在することを検出する。
【００９０】
図２２は、遅延故障Ｆ２を検出するためのテスト例を示す説明図である。図２２の動作は、テスタが故障検出プログラムを実行することにより実現される。図２０に示した遅延故障Ｆ２を検出するために実施される。図２１と同じ動作については、詳細な説明は省略する。
【００９１】
この例では、１番目から６番目のクロックサイクルにおいてスキャン入力ＳＩＮに０、１、０、０、０、０が順に供給される。６番目のクロックサイクルにおいて、フリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｅは、０、０、１、０にそれぞれ設定される。すなわち、６番目のクロックサイクルにおいて、オア回路ＯＲ１の入力端子Ｉ１に直列に接続されるフリップフロップＳＦＦｂ、ＳＦＦａは、互いに同じ値を保持する。ナンド回路ＮＡＮＤ１およびアンド回路ＡＮＤ１を介してオア回路ＯＲ１の入力端子Ｉ２に直列に接続されるフリップフロップＳＦＦｆ、ＳＦＦｅは、互いに異なる値を保持する。
【００９２】
これにより、キャプチャ期間の７番目のクロックサイクルにおいて、フリップフロップＳＦＦｆに保持される値を、１クロックサイクル前にフリップフロップＳＦＦｅに保持されている値を用いて、１から０に変更できる。フリップフロップＳＦＦｅに保持されている値は、ナンド回路ＮＡＮＤ１により反転される。すなわち、７番目のクロックサイクルにおいて、オア回路ＯＲ１の入力端子Ｉ１を０に維持した状態で、オア回路ＯＲ１の入力端子Ｉ２を０から１に変化できる。
【００９３】
遅延故障Ｆ２が存在しないとき、フリップフロップＳＦＦｆに保持される値の変化は、オア回路ＯＲ１の入力端子Ｉ２および出力のノードＮＤｈに直ちに伝達される。図２１と同様に、フリップフロップＳＦＦｅは、８番目のクロックサイクルにおいて０をラッチし、テスタＴＥＳＴは、９番目のクロックサイクルにおいてスキャンアウト端子ＳＯＵＴからの信号の値である０を読み込む。これにより、遅延故障Ｆ２が存在しないことが検出される。
【００９４】
一方、遅延故障Ｆ２が存在するとき、破線で示すように、フリップフロップＳＦＦｆに保持される値の変化は、オア回路ＯＲ１の入力端子Ｉ２、オア回路ＯＲ１の出力ノードＮＤｈあるいは回路ＣＣ２の出力ノードＮＤｉに遅れて伝達される。そして、８番目のクロックサイクルにおいて、フリップフロップＳＦＦｅがノードＮＤｉの０をラッチできないとき、スキャンアウト端子ＳＯＵＴは１に維持される。テスタは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴからの信号の値である１を読み込むことにより、遅延故障Ｆ２が存在することを検出する。
【００９５】
さらに、論理回路ＯＲ１の入力端子Ｉ１を含む信号パスの遅延故障Ｆ１と、論理回路ＯＲ１の入力端子Ｉ２を含む信号パスの遅延故障Ｆ２とを、１つの制御点ＣＰにより検出できる半導体集積回路ＬＳＩを提供できる。また、フリップフロップＳＦＦｆのデータ出力Ｑが、テストモード信号ＴＭにより制御されるナンド回路ＮＡＮＤ１を介してアンド回路ＡＮＤ１に接続される。これにより、システムモード中にフリップフロップＳＦＦｆのデータ出力Ｑの値がアンド回路ＡＮＤ１に伝達されることを防止できる。この結果、論理回路ＬＯＧＩＣＴ１が誤動作することを防止できる。
【００９６】
入力端子Ｉ２に入力される信号の値が０に固定され、入力端子Ｉ１に入力される信号の値が０から１または１から０に遷移されることにより、入力端子Ｉ１を含む信号パスの遅延故障Ｆ１が検出可能となる。
【００９７】
また、入力端子Ｉ１に入力される信号の値が０に固定され、入力端子Ｉ２に入力される信号の値が０から１または１から０に遷移されることにより、入力端子Ｉ２を含む信号パスの遅延故障Ｆ２が検出可能となる。
【００９８】
図２３は、制御対象の信号の値を１に固定可能な論理回路例を示す説明図である。この実施形態の論理回路ＬＯＧＩＣＴ２は、図２０の回路ＣＣ１の代わりに回路ＣＣ３を有している。また、制御点ＣＰは、図２０に示したナンド回路ＮＡＮＤ１の代わりにアンド回路ＡＮＤ２を有し、図２０に示したアンド回路ＡＮＤ１の代わりにオア回路ＯＲ２を有している。論理回路ＬＯＧＩＣＴ２のその他の構成は、図２０と同様である。
【００９９】
回路ＣＣ３の出力のノードＮＤｅの値は、０になりやすいとする。換言すれば、ユーザロジックＵＬ２の動作中に、ノードＮＤｅの信号の値が０になる確率は、ノードＮＤｅの信号の値が１になる確率よりも十分に高い。制御回路ＣＬのオア回路ＯＲ２は、回路ＣＣ３の出力端子から信号の値が０に設定されているときに、オア回路ＯＲ１の入力端子Ｉ２に入力される信号の値を１に設定可能にするために設けられる。
【０１００】
テストモード中（ＴＭ＝１）、アンド回路ＡＮＤ２の信号伝達機能は有効になり、アンド回路ＡＮＤ２は、フリップフロップＳＦＦｆの出力Ｑの値をオア回路ＯＲ２に出力する。一方、システムモード中（ＴＭ＝０）、アンド回路ＡＮＤ２の信号伝達機能は無効になり、アンド回路ＡＮＤ２の出力のノードＮＤｆの値は０に固定される。これにより、システムモード中に、データ入力Ｄで受ける値に応じて動作するフリップフロップＳＦＦｆのデータ出力Ｑの値がオア回路ＯＲ２に伝達されることを防止でき、ユーザロジックＵＬ３等の誤動作を防止できる。アンド回路ＡＮＤ２がノードＮＤｆに０を出力することにより、回路ＣＣ３の出力であるノードＮＤｅの値は、オア回路ＯＲ２を介してオア回路ＯＲ１に伝達される。このように、フリップフロップＳＦＦｆをテストモード信号ＴＭにより制御されるアンド回路ＡＮＤ２を介してオア回路ＯＲ２に接続することにより、システムモード中のフリップフロップＳＦＦｆの動作による誤動作を防止できる。
【０１０１】
図２４は、遅延故障Ｆ３を検出するためのテスト例を示す説明図である。図２４の動作は、テスタが故障検出プログラムを実行することにより実現される。この例では、１番目から６番目のクロックサイクルにおいてスキャン入力ＳＩＮに０、０、０、０、０、１が順に供給される。６番目のクロックサイクルにおいて、フリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｅは、０、１、０、０にそれぞれ設定される。すなわち、６番目のクロックサイクルにおいて、オア回路ＯＲ１の入力端子Ｉ１に直列に接続されるフリップフロップＳＦＦｂ、ＳＦＦａは、互いに異なる値を保持する。これにより、キャプチャ期間の７番目のクロックサイクルにおいて、フリップフロップＳＦＦｂに保持される値を０から１に変化でき、オア回路ＯＲ１の入力端子Ｉ１を０から１に変化できる。
【０１０２】
６番目のクロックサイクルにおいて、アンド回路ＡＮＤ２およびオア回路ＯＲ２を介してオア回路ＯＲ１の入力端子Ｉ２に直列に接続されるフリップフロップＳＦＦｆ、ＳＦＦｅは、互いに同じ値を保持する。これにより、キャプチャ期間の７番目のクロックサイクルにおいて、フリップフロップＳＦＦｆに保持される値を、１クロックサイクル前にフリップフロップＳＦＦｅに保持されている値を用いて０に維持できる。ここで、制御回路ＣＬは、図２０に示すナンド回路ＮＡＮＤ１の代わりにアンド回路ＡＮＤ２を有しているため、フリップフロップＳＦＦｆ、ＳＦＦｅは、０に設定される。制御回路ＣＬにより、フリップフロップＳＦＦｆの出力端子に接続されるオア回路ＯＲ１の入力端子Ｉ２に入力される信号の値を０に維持できる。
【０１０３】
遅延故障Ｆ３が存在しないとき、フリップフロップＳＦＦｂに保持される値の変化は、出力のノードＮＤｉの信号変化として直ちに現れる。フリップフロップＳＦＦｅは、８番目のクロックサイクルにおいて、０をラッチし、ラッチした０をスキャンアウト端子ＳＯＵＴに出力する。テスタは、スキャンアウト端子ＳＯＵＴからの信号の値である０を読み込むことにより、遅延故障Ｆ３が存在しないことを検出する。
【０１０４】
一方、遅延故障Ｆ３が存在するとき、フリップフロップＳＦＦｂに保持される値の変化は、ノードＮＤｉに遅れて伝達される。８番目のクロックサイクルにおいて、フリップフロップＳＦＦｅの出力のノードＮＤｉの値である０をラッチできないとき、スキャンアウト端子ＳＯＵＴからの信号の値は１に維持される。テスタは、スキャンアウト端子ＳＯＵＴからの信号の値である１を読み込むことにより、遅延故障Ｆ３が存在することを検出する。
【０１０５】
図２５は、遅延故障Ｆ４を検出するためのテスト例を示す説明図である。図２５の動作は、テスタが故障検出プログラムを実行することにより実現される。この例では、１番目から６番目のクロックサイクルにおいてスキャン入力ＳＩＮに１、０、０、０、０、０が順に供給される。６番目のクロックサイクルにおいて、フリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｅは、０、０、０、１にそれぞれ設定される。すなわち、６番目のクロックサイクルにおいて、オア回路ＯＲ１の入力端子Ｉ１に直列に接続されるフリップフロップＳＦＦｂ、ＳＦＦａは、互いに同じ値を保持する。アンド回路ＡＮＤ２およびオア回路ＯＲ２を介してオア回路ＯＲ１の入力端子Ｉ２に直列に接続されるフリップフロップＳＦＦｆ、ＳＦＦｅは、互いに異なる値を保持する。
【０１０６】
これにより、キャプチャ期間の７番目のクロックサイクルにおいて、フリップフロップＳＦＦｆに保持される値を、１クロックサイクル前にフリップフロップＳＦＦｅに保持されている値を用いて、０から１に変更できる。すなわち、７番目のクロックサイクルにおいて、オア回路ＯＲ１の入力端子Ｉ１を０に維持した状態で、オア回路ＯＲ１の入力端子Ｉ２を０から１に変化できる。
【０１０７】
遅延故障Ｆ４が存在しないとき、フリップフロップＳＦＦｆに保持される値の変化は、オア回路ＯＲ１の入力端子Ｉ２およびノードＮＤｈ、ＮＤｉに直ちに伝達される。フリップフロップＳＦＦｅは、８番目のクロックサイクルにおいて０をラッチし、テスタＴＥＳＴは、９番目のクロックサイクルにおいてスキャンアウト端子ＳＯＵＴからの信号の値である０を読み込む。これにより、遅延故障Ｆ４が存在しないことが検出される。
【０１０８】
一方、遅延故障Ｆ４が存在するとき、フリップフロップＳＦＦｆに保持される値の理変化は、オア回路ＯＲ１の入力端子Ｉ２、オア回路ＯＲ１の出力のノードＮＤｈあるいは回路ＣＣ２の出力のノードＮＤｉに遅れて伝達される。
【０１０９】
そして、８番目のクロックサイクルにおいて、フリップフロップＳＦＦｅがノードＮＤｉの０をラッチできないとき、スキャンアウト端子ＳＯＵＴからの信号の値は１に維持される。テスタＴＥＳＴは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴからの信号の値である１を読み込むことにより、遅延故障Ｆ４が存在することを検出する。
【０１１０】
以上説明したように、設計支援装置１００は、制御対象の信号線に接続する制御回路のスキャン用の第１フリップフロップのデータ入力端子に、該信号線より後段のスキャン用の第２フリップフロップの出力端子を接続する。これにより、他の信号線などへの影響が小さい第２フリップフロップの値により該信号線の値が制御可能となり、遅延故障の検出精度を向上させることができる。
【０１１１】
また、設計支援装置１００は、制御対象の信号線が入力端子に接続される論理回路の出力先にある第２フリップフロップの中から、制御対象の信号線からの論理段数が所定段数以内である第２フリップフロップのうち、一つの第２フリップフロップを選択する。制御回路の挿入時には対象回路のレイアウト設計が行われていないが、制御対象の信号線に接続する制御回路のスキャン用の第１フリップフロップと論理段数が大きい第２フリップフロップとが接続されると、配置が遠くなる可能性があり、レイアウトが行えない可能性がある。そのため、制御対象の信号線からの論理段数が所定段数以内である第２フリップフロップが選択されることにより、制御対象の信号線により近くに配置される可能性が高い第２フリップフロップが接続され、レイアウトを容易化させることができる。
【０１１２】
また、設計支援装置１００は、出力先にある第２フリップフロップの中で、制御対象の信号線からの論理段数が最も小さい第２フリップフロップを選択する。これにより、制御候補により近くに配置される可能性が高い第２フリップフロップが接続され、レイアウトを容易化させることができる。
【０１１３】
また、設計支援装置１００は、観測に用いられるスキャン用の第３フリップフロップと、第２フリップフロップと、の中から、論理段数が最も近い第２フリップフロップを選択する。これにより、より近くに配置される可能性が高いフリップフロップの出力端子を、制御回路内の第１フリップフロップのデータ入力端子に接続させることができる。
【０１１４】
また、設計支援装置１００は、観測に用いられるスキャン用の第３フリップフロップと、第２フリップフロップと、の中から、論理段数が最も近いフリップフロップを選択する。これにより、より近くに配置される可能性が高いフリップフロップの出力端子を、制御回路内の第１フリップフロップのデータ入力端子に接続させることができる。
【０１１５】
また、設計支援装置１００は、第３フリップフロップの中で論理段数が所定段数以内である第３フリップフロップと、第２フリップフロップの中で論理段数が所定段数以内の第２フリップフロップと、の中から、論理段数が最も近いフリップフロップを選択する。これにより、より近くに配置される可能性が高いフリップフロップの出力端子を、制御回路内の第１フリップフロップのデータ入力端子に接続させることができる。
【０１１６】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ディスク４０５、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークＮＥＴを介して配布してもよい。
【０１１７】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１８】
（付記１）コンピュータが、
複数の信号線が各入力端子に接続された論理回路を有する対象回路であって、前記複数の信号線の各信号が前記論理回路を経由して出力される対象回路を示す対象回路情報を取得し、
スキャン用の第１フリップフロップを有する制御回路であって、前記第１フリップフロップに設定される値によって前記複数の信号線のうちの制御対象の信号線の値を制御可能な制御回路に関する制御回路情報を取得し、
取得した前記対象回路情報に基づいて、前記対象回路が有するスキャン用の第２フリップフロップのうち、前記論理回路からの信号の出力先にある第２フリップフロップの中から、いずれか一つの第２フリップフロップを選択し、
取得した前記制御回路情報に基づいて、前記制御対象の信号線の信号の出力元と前記制御対象の信号線との間に前記制御回路を直列に接続させ、前記第１フリップフロップのデータ入力端子と、選択した前記第２フリップフロップの出力端子とを接続させることを示す接続情報を生成する、
処理を実行することを特徴とする設計支援方法。
【０１１９】
（付記２）前記第２フリップフロップを選択する処理では、
前記出力先にある前記第２フリップフロップの中で、前記制御対象の信号線からの論理段数が所定段数以内である第２フリップフロップのうち、いずれか一つの第２フリップフロップを選択することを特徴とする付記１に記載の設計支援方法。
【０１２０】
（付記３）前記第２フリップフロップを選択する処理では、
前記出力先にある前記第２フリップフロップの中で、前記制御対象の信号線からの論理段数が最も小さい第２フリップフロップを選択することを特徴とする付記１または２に記載の設計支援方法。
【０１２１】
（付記４）前記接続情報を生成する処理では、
前記出力先に前記第２フリップフロップがない場合、前記第１フリップフロップのデータ入力端子へ入力される値が、前記論理回路の非制御値に基づく値に固定されることを示す接続情報を生成することを特徴とする付記１〜３のいずれか一つに記載の設計支援方法。
【０１２２】
（付記５）前記第２フリップフロップを選択する処理では、
前記対象回路内の観測対象の信号線に接続される前記観測対象の信号線の値を観測可能なスキャン用の第３フリップフロップと、前記出力先にある前記第２フリップフロップと、の中で、前記制御対象の信号線からの論理段数が最も小さいフリップフロップを選択することを特徴とする付記１に記載の設計支援方法。
【０１２３】
（付記６）前記第２フリップフロップを選択する処理では、
前記第３フリップフロップと前記出力先にある前記第２フリップフロップとの中で、前記論理段数が所定段数以内であるフリップフロップのうち、いずれか一つのフリップフロップを選択することを特徴とする付記５に記載の設計支援方法。
【０１２４】
（付記７）前記接続情報を生成する処理では、
前記第３フリップフロップと前記出力先にある前記第２フリップフロップとの中に、前記所定段数以内のフリップフロップがない場合、前記第１フリップフロップのデータ入力端子へ入力される値が、前記論理回路の非制御値に基づく値に固定されることを示す接続情報を生成することを特徴とする付記６に記載の設計支援方法。
【０１２５】
（付記８）コンピュータに、
複数の信号線が各入力端子に接続された論理回路を有する対象回路であって、前記複数の信号線の各信号が前記論理回路を経由して出力される対象回路を示す対象回路情報を取得し、
スキャン用の第１フリップフロップを有する制御回路であって、前記第１フリップフロップに設定される値によって前記複数の信号線のうちの制御対象の信号線の値を制御可能な制御回路に関する制御回路情報を取得し、
取得した前記対象回路情報に基づいて、前記対象回路が有するスキャン用の第２フリップフロップのうち、前記論理回路からの信号の出力先にある第２フリップフロップの中から、いずれか一つの第２フリップフロップを選択し、
取得した前記制御回路情報に基づいて、前記制御対象の信号線の信号の出力元と前記制御対象の信号線との間に前記制御回路を直列に接続させ、前記第１フリップフロップのデータ入力端子と、選択した前記第２フリップフロップの出力端子とを接続させることを示す接続情報を生成する、
処理を実行させることを特徴とする設計支援プログラム。
【０１２６】
（付記９）複数の信号線が各入力端子に接続された論理回路を有する対象回路であって、前記複数の信号線の各信号が前記論理回路を経由して出力される対象回路を示す対象回路情報を取得する第１取得部と、
スキャン用の第１フリップフロップを有する制御回路であって、前記第１フリップフロップに設定される値によって前記複数の信号線のうちの制御対象の信号線の値を制御可能な制御回路に関する制御回路情報を取得する第２取得部と、
前記第１取得部が取得した前記対象回路情報に基づいて、前記対象回路が有するスキャン用の第２フリップフロップのうち、前記論理回路からの信号の出力先にある第２フリップフロップの中から、いずれか一つの第２フリップフロップを選択するフリップフロップ選択部と、
前記第２取得部が取得した前記制御回路情報に基づいて、前記制御対象の信号線の信号の出力元と前記制御対象の信号線との間に前記制御回路を直列に接続させ、前記第１フリップフロップのデータ入力端子と、前記フリップフロップ選択部が選択した前記第２フリップフロップの出力端子とを接続させることを示す接続情報を生成する接続情報生成部と、
を有することを特徴とする設計支援装置。
【０１２７】
（付記１０）複数の信号線が各入力端子に接続された論理回路を有する対象回路であって、前記複数の信号線の各信号が前記論理回路を経由して出力される対象回路を示す対象回路情報を取得し、
スキャン用の第１フリップフロップを有する制御回路であって、前記第１フリップフロップに設定される値によって前記複数の信号線のうちの制御対象の信号線の値を制御可能な制御回路に関する制御回路情報を取得し、
取得した前記対象回路情報に基づいて、前記対象回路が有するスキャン用の第２フリップフロップのうち、前記論理回路からの信号の出力先にある第２フリップフロップの中から、いずれか一つの第２フリップフロップを選択し、
取得した前記制御回路情報に基づいて、前記制御対象の信号線の信号の出力元と前記制御対象の信号線との間に前記制御回路を直列に接続させ、前記第１フリップフロップのデータ入力端子と、選択した前記第２フリップフロップの出力端子とを接続させることを示す接続情報を生成する、
処理をコンピュータに実行させる設計支援プログラムを記録したことを特徴とする記録媒体。
【符号の説明】
【０１２８】
１００  設計支援装置
５０１  取得部
５０２  制御候補選択部
５０３  ＳＦＦ選択部
５０４  接続情報生成部
５０５  対象回路情報生成部
ＬＯＧＩＣ  対象回路
ＬＯＧＩＣＤ１，ＬＯＧＩＣＤ２  対象回路情報
ＴＰ＿ｃｏｎ  制御候補集合
ＴＰ＿ｏｂｓ  観測候補集合
ＣＬ  制御回路
ＣＰ  接続情報
【図１】
2014206831.tif 000003
【図２】
2014206831.tif 000004
【図３】
2014206831.tif 000005
【図４】
2014206831.tif 000006
【図５】
2014206831.tif 000007
【図６】
2014206831.tif 000008
【図７】
2014206831.tif 000009
【図８】
2014206831.tif 000010
【図９】
2014206831.tif 000011
【図１０】
2014206831.tif 000012
【図１１】
2014206831.tif 000013
【図１２】
2014206831.tif 000014
【図１３】
2014206831.tif 000015
【図１４】
2014206831.tif 000016
【図１５】
2014206831.tif 000017
【図１６】
2014206831.tif 000018
【図１７】
2014206831.tif 000019
【図１８】
2014206831.tif 000020
【図１９】
2014206831.tif 000021
【図２０】
2014206831.tif 000022
【図２１】
2014206831.tif 000023
【図２２】
2014206831.tif 000024
【図２３】
2014206831.tif 000025
【図２４】
2014206831.tif 000026
【図２５】
2014206831.tif 000027