(57)【要約】  遅延時間算出部（１２０）は、スケジューリング後のＣＤＦＧファイル（１９２）に含まれる演算パス毎に、演算パスにエラー対策工程が挿入された場合の演算パスの実行に要する遅延時間を算出する。挿入グラフ選択部（１２１）は、遅延時間が目標時間を超えない演算パスを挿入グラフとして選択する。エラー対策挿入部（１２２）は、挿入グラフにエラー対策工程を表すエラー対策表記を挿入する。
2015155815.tif 000002
【特許請求の範囲】
【請求項１】
集積回路の制御データフローを表す制御データフローグラフを分割して生成される複数の分割グラフを取得する分割グラフ取得部と、
前記複数の分割グラフの分割グラフ毎に、分割グラフが表す分割フローにエラー対策工程が挿入された場合の前記分割フローの実行に要する実行時間を算出する実行時間算出部と、
前記実行時間算出部によって算出された各実行時間に基づいて、前記複数の分割グラフから前記実行時間が目標時間を超えない分割グラフを挿入グラフとして選択する挿入グラフ選択部と、
前記挿入グラフ選択部によって選択された前記挿入グラフに前記エラー対策工程を表すエラー対策表記を挿入するエラー対策挿入部と
を備えることを特徴とする回路設計装置。
【請求項２】
前記実行時間算出部は、前記制御データフローに含まれる各工程の実行に要する実行時間を含む実行時間ライブラリと、エラー対策工程の実行に要する実行時間とに基づいて、各分割グラフの前記実行時間を算出する
ことを特徴とする請求項１に記載の回路設計装置。
【請求項３】
前記回路設計装置は、挿入量判定部を備え、
前記挿入量判定部は、前記エラー対策表記が挿入された挿入グラフの個数に基づいて、前記エラー対策表記の挿入量が目標挿入量に達したか判定し、
前記挿入グラフ選択部は、前記エラー対策表記の前記挿入量が前記目標挿入量に達していないと判定された場合、新たな挿入グラフを選択し、
前記エラー対策挿入部は、前記新たな挿入グラフに前記エラー対策表記を挿入する
ことを特徴とする請求項１に記載の回路設計装置。
【請求項４】
前記回路設計装置は、再分割グラフ選択部を備え、
前記再分割グラフ選択部は、前記挿入グラフ選択部が前記新たな挿入グラフを選択することができなかった場合、前記複数の分割グラフから各挿入グラフとして選択されなかった分割グラフを再分割グラフとして選択し、
前記分割グラフ取得部は、前記再分割グラフを分割して生成される複数の細分グラフを取得し、
前記実行時間算出部は、細分グラフ毎に、細分グラフが表す細分フローに前記エラー対策工程を挿入した場合の前記細分フローの実行に要する細分時間を算出し、
前記挿入グラフ選択部は、前記複数の細分グラフから前記細分時間が前記目標時間を超えない細分グラフを挿入細分グラフとして選択し、
前記エラー対策挿入部は、選択された前記挿入細分グラフに前記エラー対策表記を挿入する
ことを特徴とする請求項３に記載の回路設計装置。
【請求項５】
前記回路設計装置は、分割箇所選択部を備え、
前記再分割グラフ選択部は、各挿入グラフとして選択されなかった分割グラフから複数の演算子を含んだ分割グラフを前記再分割グラフとして選択し、
前記分割箇所選択部は、前記再分割グラフに含まれる前記複数の演算子から、他の演算子よりも使用する変数の数が多い演算子を分割箇所として選択し、
前記複数の細分グラフは、前記分割箇所に基づいて前記再分割グラフを分割して生成される
ことを特徴とする請求項４に記載の回路設計装置。
【請求項６】
前記回路設計装置は、分割箇所選択部を備え、
前記再分割グラフ選択部は、各挿入グラフとして選択されなかった分割グラフから複数の演算子を含んだ分割グラフを前記再分割グラフとして選択し、
前記分割箇所選択部は、前記再分割グラフに含まれる前記複数の演算子から、他の演算子よりも演算結果が多く使用される演算子を分割箇所として選択し、
前記複数の細分グラフは、前記分割箇所に基づいて前記再分割グラフを分割して生成される
ことを特徴とする請求項４に記載の回路設計装置。
【請求項７】
前記回路設計装置は、グラフ群分割部を備え、
前記グラフ群分割部は、前記複数の分割グラフを複数の分割グラフ群に分割し、
前記実行時間算出部は、各分割グラフ群の最終の分割グラフ毎に前記実行時間を算出し、
前記挿入グラフ選択部は、各分割グラフ群の最終の分割グラフから前記挿入グラフを選択する
ことを特徴とする請求項１に記載の回路設計装置。
【請求項８】
前記エラー対策挿入部は、前記挿入グラフを含む前記分割グラフ群の各分割グラフに含まれる演算子を多重化する
ことを特徴とする請求項７に記載の回路設計装置。
【請求項９】
集積回路の制御データフローを表す制御データフローグラフを複数の分割グラフに分割するグラフ分割処理と、
前記複数の分割グラフの分割グラフ毎に、分割グラフが表す分割フローにエラー対策工程が挿入された場合の前記分割フローの実行に要する実行時間を算出する実行時間算出処理と、
前記実行時間算出処理によって算出された各実行時間に基づいて、前記複数の分割グラフから前記実行時間が目標時間を超えない分割グラフを挿入グラフとして選択する挿入グラフ選択処理と、
前記挿入グラフ選択処理によって選択された前記挿入グラフに前記エラー対策工程を表すエラー対策表記を挿入するエラー対策挿入処理と
をコンピュータに実行させるための回路設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路を設計する技術に関するものである。
【背景技術】
【０００２】
半導体集積回路の微細化および低電圧化に伴い、宇宙空間用の半導体集積回路について問題視されていたソフトエラーの影響が拡大し、地上用の半導体集積回路についてもソフトエラーへの対策が重要視されている。【０００３】
ソフトエラーに対する対策として、論理回路を２重化する方法および３重化多数決回路（ＴＭＲ：Ｔｒｉｐｌｅ  Ｍｏｄｕｌａｒ  Ｒｅｄｕｎｄａｎｃｙ）を用いる方法が広く知られている。
論理回路を２重化する方法は、２つの論理回路の各信号値を比較することによって、いずれかの信号値の誤りを検出する。
３重化多数決回路を用いる方法は、３つの論理回路の各信号値から１つの信号値を多数決で選択することによって、いずれかの信号値の誤りを訂正する。【０００４】
しかし、上記のようなエラー対策回路をＲＴＬ記述（ＲＴＬ：レジスタトランスレベル）で設計した半導体集積回路に追加すると、対策前と比較して半導体集積回路の遅延時間が増大し、動作可能な周波数（動作周波数）が低下する。【０００５】
一方、高位合成という技術がある（例えば、特許文献１）。
この種の技術は、高位言語（例えば、ＳｙｓｔｅｍＣ）で記述された動作記述から、演算器およびフリップフロップなどのハードウェアの記述を含んだＲＴＬ記述を、ユーザが所望する動作周波数に応じて生成する。【０００６】
しかし、一般的に高位合成時にはソフトエラーに対する信頼性を向上させる手法がとられておらず、動作記述からソフトエラーに耐性を持つＲＴＬを生成できない。このため、高位合成後のＲＴＬを修正し、論理回路の２重化・３重化等を実施した場合に回路の動作周波数が悪化するという課題を解決できない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−０１３８２３号公報
【特許文献２】特開２０１０−２５７００３号公報
【特許文献３】特開２００３−１５７２９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、エラー対策回路を備えて所望の動作周波数で動作する集積回路を設計できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の回路設計装置は、
集積回路の制御データフローを表す制御データフローグラフを分割して生成される複数の分割グラフを取得する分割グラフ取得部と、
前記複数の分割グラフの分割グラフ毎に、前記分割グラフが表す分割フローにエラー対策工程が挿入された場合の前記分割フローの実行に要する実行時間を算出する実行時間算出部と、
前記実行時間算出部によって算出された各実行時間に基づいて、前記複数の分割グラフから前記実行時間が目標時間を超えない分割グラフを挿入グラフとして選択する挿入グラフ選択部と、
前記挿入グラフ選択部によって選択された前記挿入グラフに前記エラー対策工程を表すエラー対策表記を挿入するエラー対策挿入部とを備える。
【発明の効果】
【００１０】
本発明によれば、制御データフローグラフに実行時間が目標時間を超えないようにエラー対策表記を挿入することができる。
そして、この制御データフローグラフを用いることにより、エラー対策回路を備えて所望の動作周波数で動作する集積回路を設計することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１における回路設計装置１００の機能構成図である。
【図２】実施の形態１における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
【図３】実施の形態１におけるＣＤＦＧファイル１９２の一例を示す図である。
【図４】実施の形態１におけるスケジューリング後のＣＤＦＧファイル１９２の一例を示す図である。
【図５】実施の形態１における回路ライブラリ１８２の一例を示す図である。
【図６】実施の形態１におけるエラー対策ライブラリ１８３の一例を示す図である。
【図７】実施の形態１におけるエラー対策後のＣＤＦＧファイル１９２の一例を示す図である。
【図８】実施の形態１における遅延時間リスト１９３の一例を示す図である。
【図９】実施の形態１における挿入グラフリスト１９４の一例を示す図である。
【図１０】実施の形態１におけるエラー対策後のＣＤＦＧファイル１９２の一例を示す図である。
【図１１】実施の形態１における回路設計装置１００のハードウェア構成の一例を示す図である。
【図１２】実施の形態２における回路設計装置１００の機能構成図である。
【図１３】実施の形態２における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
【図１４】実施の形態３における回路設計装置１００の機能構成図である。
【図１５】実施の形態３における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
【図１６】実施の形態３における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
【図１７】実施の形態３における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
【図１８】実施の形態３におけるスケジューリング後のＣＤＦＧファイル１９２の一例を示す図である。
【図１９】実施の形態３におけるスケジューリング後のＣＤＦＧファイル１９２の一例を示す図である。
【図２０】実施の形態４における回路設計装置１００の機能構成図である。
【図２１】実施の形態４における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
【図２２】各実施の形態におけるエラー対策挿入部１２２のエラー対策挿入処理の概要図である。
【図２３】実施の形態５における回路設計装置１００の機能構成図である。
【図２４】実施の形態５における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
【図２５】実施の形態５における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
【図２６】実施の形態５における回路設計装置１００の機能構成の別例を示す図である。
【図２７】実施の形態５における回路設計装置１００の回路設計処理の別列を示すフローチャートである。
【図２８】実施の形態５における回路設計装置１００の回路設計処理の別列を示すフローチャートである。
【図２９】実施の形態５における回路設計装置１００の回路設計処理の別列を示すフローチャートである。
【図３０】実施の形態５における回路設計装置１００の回路設計処理の別列を示すフローチャートである。
【発明を実施するための形態】
【００１２】
実施の形態１．
エラー対策回路を備えて所望の動作周波数で動作する集積回路を設計する形態について説明する。
【００１３】
図１は、実施の形態１における回路設計装置１００の機能構成図である。
実施の形態１における回路設計装置１００の機能構成について、図１に基づいて説明する。
【００１４】
回路設計装置１００は、集積回路の動作記述ファイル１９１からＲＴＬ記述ファイル１９５を高位合成する装置である。
動作記述ファイル１９１は、集積回路の動作記述が記された電子ファイルである。動作記述は、集積回路の動作をＨＤＬ（ハードウェア記述言語）を用いて表したものである。ＳｙｓｔｅｍＣはＨＤＬおよび高位言語の一例である。
ＲＴＬ記述ファイル１９５は、集積回路のＲＴＬ記述が記された電子ファイルである。ＲＴＬ記述は、集積回路の動作をＲＴＬ（レジスタ転送レベル）で表したものである。
【００１５】
回路設計装置１００は、動作記述入力部１１０と、ＣＤＦＧ生成部１１１と、スケジューリング部１１２（分割グラフ取得部の一例）とを備える。
回路設計装置１００は、遅延時間算出部１２０（実行時間算出部の一例）と、挿入グラフ選択部１２１と、エラー対策挿入部１２２とを備える。
回路設計装置１００は、バインディング部１３０と、ＲＴＬ記述出力部１３１と、装置記憶部１９０とを備える。
【００１６】
動作記述入力部１１０は動作記述ファイル１９１を取得する。
【００１７】
ＣＤＦＧ生成部１１１は、動作記述ファイル１９１に記された動作記述をＣＤＦＧ（制御データフローグラフ）に変換し、ＣＤＦＧファイル１９２を生成する。
ＣＤＦＧファイル１９２は、集積回路のＣＤＦＧが記された電子ファイルである。ＣＤＦＧは、集積回路の制御の流れおよび集積回路のデータの流れを示す制御データフローを表したグラフである。
【００１８】
スケジューリング部１１２は、ＣＤＦＧファイル１９２に記されたＣＤＦＧに基づいて、ＣＤＦＧが表す制御データフローに含まれる各演算工程の実行順序を決定する。
そして、スケジューリング部１１２は、ＣＤＦＧファイル１９２に記されたＣＤＦＧを、複数のグラフに分割する。
以下、スケジューリング部１１２によってＣＤＦＧを分割して得られる各グラフを演算パスグラフ（分割グラフの一例）といい、演算パスグラフが表す制御データフローを演算パス（分割フローの一例）という。
また、スケジューリング部１１２によって処理されたＣＤＦＧファイル１９２をスケジューリング後のＣＤＦＧファイル１９２という。
スケジューリング後のＣＤＦＧファイル１９２は、各演算工程の実行順序、各演算パスの識別子、各演算パスの範囲などの情報を含む。
【００１９】
遅延時間算出部１２０は、スケジューリング後のＣＤＦＧファイル１９２に記された演算パスグラフ毎に、演算パスグラフが表す演算パスにエラー対策工程が挿入された場合の演算パスの実行に要する実行時間（以下、遅延時間という）を算出する。
以下、遅延時間算出部１２０によって算出される遅延時間をエラー対策後の遅延時間という。
遅延時間算出部１２０は、各演算パスのエラー対策後の遅延時間を示す遅延時間リスト１９３を生成する。
【００２０】
挿入グラフ選択部１２１は、遅延時間リスト１９３に基づいて、スケジューリング後のＣＤＦＧファイル１９２に記された複数の演算パスグラフから、遅延時間が目標時間を超えない演算パスの演算パスグラフを選択する。目標時間は、単位時間を目標周波数１８１で除算することによって算出される時間である。
以下、挿入グラフ選択部１２１によって選択された演算パスグラフを挿入グラフといい、挿入グラフが表す演算パスを挿入パスという。
挿入グラフ選択部１２１は、選択した各挿入グラフの識別子を示す挿入グラフリスト１９４を生成する。
【００２１】
エラー対策挿入部１２２は、挿入グラフリスト１９４に基づいて、各挿入グラフにエラー対策表記を挿入する。エラー対策表記は、エラー対策工程を実行するエラー対策回路を表す表記である。
以下、エラー対策挿入部１２２によって処理されたスケジューリング後のＣＤＦＧファイル１９２をエラー対策後のＣＤＦＧファイル１９２という。
【００２２】
バインディング部１３０は、エラー対策後のＣＤＦＧファイル１９２に記されたＣＤＦＧに含まれる各工程に、演算器、フリップフロップ（ＦＦ）およびエラー対策回路などのハードウェアを割り当てる。
以下、バインディング部１３０によって処理されたエラー対策後のＣＤＦＧファイル１９２をバインディング後のＣＤＦＧファイル１９２という。バインディング後のＣＤＦＧファイル１９２は、各工程に割り当てられたハードウェアの情報を含む。
【００２３】
ＲＴＬ記述出力部１３１は、バインディング後のＣＤＦＧファイル１９２に記されたＣＤＦＧをＲＴＬ記述に変換し、ＲＴＬ記述ファイル１９５を生成する。
【００２４】
装置記憶部１９０は、回路設計装置１００が使用、生成または入出力するデータを記憶する。
例えば、装置記憶部１９０は、動作記述ファイル１９１と、ＣＤＦＧファイル１９２と、遅延時間リスト１９３と、挿入グラフリスト１９４と、ＲＴＬ記述ファイル１９５とを記憶する。また、装置記憶部１９０は、目標周波数１８１と、回路ライブラリ１８２（実行時間ライブラリの一例）と、エラー対策ライブラリ１８３とを記憶する。
目標周波数１８１は、集積回路の動作周波数の目標値である。目標周波数１８１の代わりに目標時間が記憶されても構わない。
回路ライブラリ１８２は、演算工程毎の遅延時間を含んだ電子ファイルである。
エラー対策ライブラリ１８３は、エラー対策回路（工程）毎の遅延時間を含んだ電子ファイルである。
【００２５】
図２は、実施の形態１における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
実施の形態１における回路設計装置１００の回路設計処理について、図２に基づいて説明する。
【００２６】
Ｓ１１０において、集積回路の設計者は、集積回路の動作記述が記された動作記述ファイル１９１を回路設計装置１００に入力する。
動作記述入力部１１０は、入力された動作記述ファイル１９１を取得する。
Ｓ１１０の後、処理はＳ１１１に進む。
【００２７】
Ｓ１１１において、ＣＤＦＧ生成部１１１は、動作記述ファイル１９１に記された集積回路の動作記述をＣＤＦＧに変換し、ＣＤＦＧが記されたＣＤＦＧファイル１９２を生成する。
ＣＤＦＧは、ＣＦＧ（制御フローグラフ）とＤＦＧ（データフローグラフ）とを含む。
ＣＦＧは、ｉｆまたはｗｈｉｌｅなどの処理分岐を図で表現したものである。
ＤＦＧは、データの流れを図で表現したものである。
動作記述をＣＤＦＧに変換する方法は、一般的な高位合成において実行される方法と同じで構わない。
Ｓ１１１の後、処理はＳ１１２に進む。
【００２８】
図３は、実施の形態１におけるＣＤＦＧファイル１９２の一例を示す図である。
実施の形態１におけるＣＤＦＧファイル１９２の一例について、図３に基づいて説明する。但し、図３は、ＣＤＦＧファイル１９２が表すＣＤＦＧからＤＦＧを抜粋したものである。以降のＣＤＦＧファイル１９２を示す図についても同様である。
ＣＤＦＧファイル１９２に記されたＣＤＦＧは、変数Ａの値に変数Ｂの値を加算する演算工程を含んでいる。加算によって得られた値は変数Ｄに設定される。
この演算工程は、変数Ａと、変数Ｂと、加算と、変数Ｄとのそれぞれの表記を含んでいる。
図２に戻り、Ｓ１１２から説明を続ける。
【００２９】
Ｓ１１２において、スケジューリング部１１２は、目標周波数１８１と回路ライブラリ１８２とに基づいて、ＣＤＦＧファイル１９２に対して以下のようなスケジューリングを行う。
【００３０】
スケジューリング部１１２は、ＣＤＦＧファイル１９２に記されたＣＤＦＧに基づいて、ＣＤＦＧが表す制御データフローに含まれる各演算工程の実行順序を決定する。
そして、スケジューリング部１１２は、ＣＤＦＧファイル１９２に記されたＣＤＦＧを、複数の演算パスグラフに分割する。例えば、ＣＤＦＧは各演算子の前（または後）で分割される。
各演算パスの遅延時間は目標時間以下である。目標時間は単位時間（例えば、１秒）を目標周波数１８１で除算することによって算出される。また、ＣＤＦＧに含まれる各演算工程の遅延時間は回路ライブラリ１８２に示されている。
直列（前後）に並んだ二つの演算パスの間にはフリップフロップが挿入される。
【００３１】
スケジューリング（実行順序の決定、ＣＤＦＧの分割）の方法は、一般的な高位合成において実行される方法と同じで構わない。
Ｓ１１２の後、処理はＳ１２０に進む。
【００３２】
図４は、実施の形態１におけるスケジューリング後のＣＤＦＧファイル１９２の一例を示す図である。
実施の形態１におけるスケジューリング後のＣＤＦＧファイル１９２の一例について、図４に基づいて説明する。
スケジューリング後のＣＤＦＧファイル１９２は、ＣＤＦＧを分割することによって得られた各演算パスグラフを識別する演算パス識別子と、各演算パスグラフの範囲を示す範囲情報（図中の鎖線）とを含んでいる。図中の二つの鎖線の間に記されている一連の演算工程が演算パスＰｎである。図中の鎖線の部分にはフリップフロップが挿入される。
演算パスＰｎは、変数Ａの値に変数Ｂを加算して得られる値が変数Ｄに設定される演算工程である。演算パスＰｎの前後にはフリップフロップが挿入される。
図２に戻り、Ｓ１２０から説明を続ける。
【００３３】
Ｓ１２０において、遅延時間算出部１２０は、回路ライブラリ１８２と、エラー対策ライブラリ１８３と、スケジューリング後のＣＤＦＧファイル１９２とに基づいて、遅延時間リスト１９３を以下のように生成する。
【００３４】
遅延時間算出部１２０は、スケジューリング後のＣＤＦＧファイル１９２に記された演算パスグラフ毎に、演算パスのエラー対策後の遅延時間を算出する。
遅延時間算出部１２０は、各演算パスのエラー対策後の遅延時間を示した遅延時間リスト１９３を生成する。
ＣＤＦＧに含まれる各演算工程の遅延時間は回路ライブラリ１８２に示されている。また、エラー対策工程の遅延時間はエラー対策ライブラリ１８３に示されている。
【００３５】
設計者は、エラー対策工程の種類（二重化、三重化、多数決など）を回路設計装置１００に指定してもよい。
この場合、エラー対策ライブラリ１８３は、エラー対策工程の種類毎にエラー対策工程の遅延時間を示す。そして、遅延時間算出部１２０は、設計者に指定された種類のエラー対策工程の遅延時間をエラー対策ライブラリ１８３から取得し、取得した遅延時間を用いてエラー対策後の遅延時間を算出する。
Ｓ１２０の後、処理はＳ１２１に進む。
【００３６】
図５は、実施の形態１における回路ライブラリ１８２の一例を示す図である。
実施の形態１における回路ライブラリ１８２の一例について、図５に基づいて説明する。
回路ライブラリ１８２は、演算工程の種類毎に、演算工程の種類を識別する演算識別子と、演算工程の遅延時間とを含んでいる。
例えば、回路ライブラリ１８２は、加算工程の遅延時間（Ｘｎｓ）を含んでいる。
【００３７】
図６は、実施の形態１におけるエラー対策ライブラリ１８３の一例を示す図である。
実施の形態１におけるエラー対策ライブラリ１８３の一例について、図６に基づいて説明する。
エラー対策ライブラリ１８３は、エラー対策工程の種類毎に、エラー対策工程の種類を識別するエラー対策識別子と、エラー対策工程の遅延時間とを含んでいる。
例えば、エラー対策ライブラリ１８３は、多数決工程の遅延時間（Ｙｎｓ）を含んでいる。
【００３８】
図７は、実施の形態１におけるエラー対策後のＣＤＦＧファイル１９２の一例を示す図である。
実施の形態１におけるエラー対策後のＣＤＦＧファイル１９２の一例について、図７に基づいて説明する。
ＣＤＦＧファイル１９２は、多数決工程の表記が挿入された演算パスＰｎを示している。
多数決工程は、異なる複数の演算結果が得られた場合に多数決によって一つの演算結果を選択する工程である。多数決工程はエラー対策工程の一例である。
二つの演算結果がＮであり、一つの演算結果がＮ’である場合、多数決工程はＮを選択する。
【００３９】
演算パスＰｎは加算工程と多数決工程とを含んでいる。
加算工程の遅延時間がＸｎｓであり、多数決工程の遅延時間がＹｎｓである場合、演算パスＰｎのエラー対策後の遅延時間はＸｎｓ＋Ｙｎｓである。
【００４０】
図８は、実施の形態１における遅延時間リスト１９３の一例を示す図である。
実施の形態１における遅延時間リスト１９３の一例について、図８に基づいて説明する。
遅延時間リスト１９３は、演算パスグラフ毎に、演算パスグラフを識別する演算パス識別子と、演算パスのエラー対策後の遅延時間とを含んでいる。
例えば、遅延時間リスト１９３は、演算パスＰｎの遅延時間（Ｘｎｓ＋Ｙｎｓ）を含んでいる。
図２に戻り、Ｓ１２１から説明を続ける。
【００４１】
Ｓ１２１において、挿入グラフ選択部１２１は、目標周波数１８１と遅延時間リスト１９３とに基づいて、挿入グラフリスト１９４を以下のように生成する。
【００４２】
挿入グラフ選択部１２１は、単位時間を目標周波数１８１で除算して得られる目標時間を算出する。
挿入グラフ選択部１２１は、遅延時間リスト１９３に含まれる各演算パス識別子から、目標時間以下である遅延時間に対応付けられた演算パス識別子を選択する。選択された演算パス識別子で識別される演算パスグラフが挿入パスグラフである。
挿入グラフ選択部１２１は、選択した各演算パス識別子を示した挿入グラフリスト１９４を生成する。
Ｓ１２１の後、処理はＳ１２２に進む。
【００４３】
図９は、実施の形態１における挿入グラフリスト１９４の一例を示す図である。
実施の形態１における挿入グラフリスト１９４の一例について、図９に基づいて説明する。
挿入グラフリスト１９４は、各挿入パスグラフの演算パス識別子を含んでいる。
例えば、演算パスグラフＰｎは挿入パスグラフである。
図２に戻り、Ｓ１２２から説明を続ける。
【００４４】
Ｓ１２２において、エラー対策挿入部１２２は、挿入グラフリスト１９４に含まれる演算パス識別子毎に、演算パス識別子で識別される挿入パスグラフをスケジューリング後のＣＤＦＧファイル１９２から選択する。
そして、エラー対策挿入部１２２は、選択した各挿入パスグラフにエラー対策表記を挿入する。
Ｓ１２２の後、処理はＳ１３０に進む。
【００４５】
図１０は、実施の形態１におけるエラー対策後のＣＤＦＧファイル１９２の一例を示す図である。
例えば、エラー対策挿入部１２２は、スケジューリング後のＣＤＦＧファイル１９２（図４）の挿入パスグラフＰｎに含まれる加算表記を３つに多重化する。そして、エラー対策挿入部１２２は、３つの加算表記に接続する多数決工程の表記を挿入することによって、図１０に示すようなＣＤＦＧファイル１９２を生成する。
図２に戻り、Ｓ１３０から説明を続ける。
【００４６】
Ｓ１３０において、バインディング部１３０は、エラー対策後のＣＤＦＧファイル１９２に記されたＣＤＦＧに含まれる各工程に、演算器、フリップフロップおよびエラー対策回路などのハードウェアを割り当てる。
バインディング後のＣＤＦＧファイル１９２は、各工程に割り当てられたハードウェアの情報を含む。
バインディング（ハードウェアの割り当て）の方法は、一般的な高位合成において実行される方法と同じで構わない。
Ｓ１３０の後、処理はＳ１３１に進む。
【００４７】
Ｓ１３１において、ＲＴＬ記述出力部１３１は、バインディング後のＣＤＦＧファイル１９２に記されたＣＤＦＧをＲＴＬ記述に変換し、ＲＴＬ記述が記されたＲＴＬ記述ファイル１９５を生成する。
ＣＤＦＧをＲＴＬ記述に変換する方法は、一般的な高位合成において実行される方法と同じで構わない。
Ｓ１３１の後、回路設計処理は終了する。
【００４８】
図１１は、実施の形態１における回路設計装置１００のハードウェア構成の一例を示す図である。
実施の形態１における回路設計装置１００のハードウェア構成の一例について、図１１に基づいて説明する。但し、回路設計装置１００のハードウェア構成は図１１に示す構成と異なる構成であってもよい。
【００４９】
回路設計装置１００は、演算装置９０１、補助記憶装置９０２、主記憶装置９０３、通信装置９０４および入出力装置９０５を備えるコンピュータである。
演算装置９０１、補助記憶装置９０２、主記憶装置９０３、通信装置９０４および入出力装置９０５はバス９０９に接続している。
【００５０】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
補助記憶装置９０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリまたはハードディスク装置である。
主記憶装置９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、有線または無線でインターネット、ＬＡＮ（ローカルエリアネットワーク）、電話回線網またはその他のネットワークを介して通信を行う。
入出力装置９０５は、例えば、マウス、キーボード、ディスプレイ装置である。
【００５１】
プログラムは、通常は補助記憶装置９０２に記憶されており、主記憶装置９０３にロードされ、演算装置９０１に読み込まれ、演算装置９０１によって実行される。
例えば、オペレーティングシステム（ＯＳ）が補助記憶装置９０２に記憶される。また、「〜部」として説明している機能を実現するプログラムが補助記憶装置９０２に記憶される。そして、ＯＳおよび「〜部」として説明している機能を実現するプログラムは主記憶装置９０３にロードされ、演算装置９０１によって実行される。「〜部」は「〜処理」「〜工程」「〜プログラム」「〜装置」と読み替えることができる。
【００５２】
「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等の処理の結果を示す情報、データ、ファイル、信号値または変数値が主記憶装置９０３または補助記憶装置９０２に記憶される。
【００５３】
実施の形態１により、ＣＤＦＧに遅延時間が目標時間を超えないようにエラー対策表記を挿入することができる。
そして、このＣＤＦＧを用いることにより、エラー対策回路を備えて目標周波数１８１で動作する集積回路を設計することができる。
【００５４】
実施の形態２．
目標挿入量に達するまでエラー対策表記を挿入する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項については実施の形態１と同様である。
【００５５】
図１２は、実施の形態２における回路設計装置１００の機能構成図である。
実施の形態２における回路設計装置１００の機能構成について、図１２に基づいて説明する。
【００５６】
回路設計装置１００は、実施の形態１（図１参照）で説明した機能に加えて、挿入量判定部１２３を備える。
挿入量判定部１２３は、エラー対策表記が挿入された挿入グラフの個数に基づいて、エラー対策表記の挿入量が目標挿入量１８４に達したか判定する。
例えば、目標挿入量１８４は、演算パスグラフの総数に対する挿入グラフの個数の割合（以下、挿入率という）である。この挿入グラフの個数はエラー対策表記が挿入された挿入グラフの個数である。
但し、目標挿入量１８４は挿入率以外の量であっても構わない。例えば、目標挿入量１８４は、エラー対策表記が挿入された挿入グラフの個数であっても構わない。
【００５７】
図１３は、実施の形態２における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
実施の形態２における回路設計装置１００の回路設計処理について、図１３に基づいて説明する。
【００５８】
Ｓ１１０において、動作記述入力部１１０は動作記述ファイル１９１を取得する。
Ｓ１１１において、ＣＤＦＧ生成部１１１は動作記述ファイル１９１からＣＤＦＧファイル１９２を生成する。
Ｓ１１２において、スケジューリング部１１２はＣＤＦＧファイル１９２に対してスケジューリングを行う。
Ｓ１１０からＳ１１２は、実施の形態１（図２参照）と同じである。
Ｓ１１２の後、処理はＳ２００に進む。
【００５９】
Ｓ２００において、遅延時間算出部１２０は、スケジューリング後のＣＤＦＧファイル１９２から未選択の演算パスグラフを一つ選択する。
そして、遅延時間算出部１２０は、選択した演算パスグラフの遅延時間を算出する。遅延時間の算出方法は、実施の形態１（図２のＳ１２０参照）と同じである。
Ｓ２００の後、処理はＳ２０１に進む。
【００６０】
Ｓ２０１において、挿入グラフ選択部１２１は、Ｓ２００で算出された遅延時間を目標時間と比較する。
遅延時間が目標時間以下である場合（ＹＥＳ）、処理はＳ２０２に進む。
遅延時間が目標時間より長い場合（ＮＯ）、処理はＳ２０４に進む。
【００６１】
Ｓ２０２において、エラー対策挿入部１２２は、Ｓ２００で選択された演算パスグラフ（挿入パスグラフ）にエラー対策表記を挿入する。
Ｓ２０２の後、処理はＳ２０３に進む。
【００６２】
Ｓ２０３において、挿入量判定部１２３はエラー対策表記の挿入量を算出する。
そして、挿入量判定部１２３は、エラー対策表記の挿入量を目標挿入量１８４と比較する。
エラー対策表記の挿入量が目標挿入量１８４以上である場合（ＹＥＳ）、処理はＳ１３０に進む。
エラー対策表記の挿入量が目標挿入量１８４未満である場合（ＮＯ）、処理はＳ２０４に進む。
【００６３】
Ｓ２０４において、遅延時間算出部１２０は、Ｓ２００で選択していない未選択の演算パスグラフがあるか判定する。
未選択の演算パスグラフがある場合（ＹＥＳ）、処理はＳ２００に戻る。
未選択の演算パスグラフがない場合（ＮＯ）、処理はＳ１３０に進む。この場合、挿入量判定部１２３は、エラー対策表記の挿入量が目標挿入量１８４に達していない旨のメッセージを表示しても構わない。
【００６４】
Ｓ１３０において、バインディング部１３０はエラー対策後のＣＤＦＧファイル１９２に対してバインディングを行う。
Ｓ１３１において、ＲＴＬ記述出力部１３１はバインディングのＣＤＦＧファイル１９２からＲＴＬ記述ファイル１９５を生成する。
Ｓ１３０およびＳ１３１は、実施の形態１（図２参照）と同じである。
Ｓ１３１の後、回路設計処理は終了する。
【００６５】
実施の形態２により、目標挿入量１８４に達するまでエラー対策表記を挿入することができる。これにより、必要以上にエラー対策表記を挿入することを防ぎ、エラー対策回路の数を制限し、集積回路の面積の増大を防ぐことができる。
【００６６】
実施の形態３．
エラー対策表記の挿入量が目標挿入量１８４に達しない場合の形態について説明する。
以下、実施の形態２と異なる事項について主に説明する。説明を省略する事項については実施の形態２と同様である。
【００６７】
図１４は、実施の形態３における回路設計装置１００の機能構成図である。
実施の形態３における回路設計装置１００の機能構成について、図１４に基づいて説明する。
【００６８】
回路設計装置１００は、実施の形態２（図１２参照）で説明した機能に加えて、再分割グラフ選択部１２４と分割箇所選択部１２５とを備える。
【００６９】
再分割グラフ選択部１２４は、エラー対策表記の挿入量が目標挿入量１８４に達しない場合、スケジューリング後のＣＤＦＧファイル１９２からエラー対策表記が挿入されていない演算パスグラフを選択する。以下、再分割グラフ選択部１２４によって選択される演算パスグラフを再分割グラフという。
分割箇所選択部１２５は、再分割グラフから分割箇所を選択する。
スケジューリング部１１２は、分割箇所に基づいて再分割グラフを分割する。以下、再分割グラフを分割して得られる各グラフを細分グラフといい、細分グラフが表す演算パスを細分パスという。
遅延時間算出部１２０は、細分グラフ毎に、細分パスのエラー対策後の遅延時間を算出する。
挿入グラフ選択部１２１は、複数の細分グラフから挿入グラフを選択する。以下、挿入グラフとして選択される細分グラフを挿入細分グラフという。
エラー対策挿入部１２２は、各挿入細分グラフにエラー対策表記を挿入する。
【００７０】
図１５、図１６および図１７は、実施の形態３における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
実施の形態３における回路設計装置１００の回路設計処理について、図１５から図１７に基づいて説明する。
【００７１】
Ｓ１１０からＳ２０４（図１５参照）は、実施の形態２（図１３参照）と同じである。
Ｓ２０４において、未選択の演算パスグラフがない場合（ＮＯ）、処理はＳ２１０（図１６参照）に進む。
【００７２】
Ｓ２１０（図１６参照）において、再分割グラフ選択部１２４は、スケジューリング後のＣＤＦＧファイル１９２から、未選択の再分割グラフを１つ選択する。
例えば、再分割グラフ選択部１２４は、エラー対策表記が挿入されていない各演算パスグラフから、直列に並んだ複数の演算子（一連の演算子）を含んだ演算パスグラフを再分割グラフとして選択する。
Ｓ２１０の後、処理はＳ２１１に進む。
【００７３】
図１８は、実施の形態３におけるスケジューリング後のＣＤＦＧファイル１９２の一例を示す図である。
例えば、再分割グラフ選択部１２４は、ＣＤＦＧファイル１９２（図１８参照）から、演算パスグラフＰａを未選択の再分割グラフとして選択する。
演算パスグラフＰａは、直列に並んだ複数の演算子（＊、＋１、＋２）を含んでいる。
図１６に戻り、Ｓ２１１から説明を続ける。
【００７４】
Ｓ２１１において、分割箇所選択部１２５は、Ｓ２１０で選択された再分割グラフから、分割箇所を選択する。
【００７５】
例えば、分割箇所選択部１２５は、再分割グラフＰａ（図１８参照）から、以下のように分割箇所を選択する。
分割箇所選択部１２５は、直列に並んだ各演算子（＊、＋１、＋２）を分箇箇所として選択する。
分割箇所選択部１２５は、直列に並んだ複数の演算子（＊、＋１、＋２）から、他の演算子よりも使用する変数の数が多い演算子（＊）を分割箇所として選択する。つまり、分割箇所選択部１２５は、演算パス（細分パスを含む）の数が多くなる箇所を分割箇所として選択する。この選択方法により、レイテンシ（演算に要する総ステップ）の増加に対するエラー対策回路の挿入効率が高まる。
分割箇所選択部１２５は、直列に並んだ複数の演算子（＊、＋１、＋２）から、他の演算子よりも演算結果が多く使用される演算子（＋２）を分割箇所として選択する。つまり、分割箇所選択部１２５は、分岐数（ファンアウト）が多い箇所を分割箇所として選択する。この選択方法により、信号値が広く伝播する箇所にエラー対策回路が設けられ、エラーの信号値が広く伝播しない。
Ｓ２１１の後、処理はＳ２１２に進む。
【００７６】
Ｓ２１２において、スケジューリング部１１２は、Ｓ２１１で選択された分割箇所に基づいて、Ｓ２１０で選択された再分割グラフを複数の細分グラフに分割する。直列に並んだ二つの細分パスの間にはフリップフロップが挿入される。
例えば、スケジューリング部１１２は、再分割グラフを各分割箇所の直前（または直後）で分割する。
Ｓ２１２の後、処理はＳ２１３に進む。
【００７７】
図１９は、実施の形態３におけるスケジューリング後のＣＤＦＧファイル１９２の一例を示す図である。
例えば、スケジューリング部１１２は、再分割グラフＰａ（図１９参照）を以下のように分割する。
３つの演算子（＊、＋１、＋２）が分割箇所として選択された場合、スケジューリング部１１２は、再分割グラフＰａを各演算子の直前の部分（Ｐ１、Ｐ２、Ｐ３）で分割する。
乗算の演算子（＊）が分割箇所として選択された場合、スケジューリング部１１２は、再分割グラフＰａを乗算の演算子（＊）の直前の部分（Ｐ１）で分割する。Ｐ１で分割した場合、再分割グラフＰａは、Ａ／ＢからＥ、Ｃ／ＤからＦ、Ｅ／ＦからＩの３つの演算パスに分割される。一方、Ｐ３で分割した場合、再分割グラフＰａは、Ａ／Ｂ／Ｃ／ＤからＨ、ＨからＩの２つの演算パスに分岐される。したがって、Ｐ３で分割するよりも、Ｐ１で分割した方が演算パスの数は多い。
２を加算する演算子（＋２）が分割箇所として選択された場合、スケジューリング部１１２は、再分割グラフＰａをこの演算子（＋２）の直前の部分（Ｐ３）で分割する。Ｐ３で分割した場合、Ｐ３の後段の変数Ｉから分岐する分岐数は３つである。一方、Ｐ１で分割した場合、Ｐ１の後段の変数Ｇから分岐する分岐数は１つである。したがって、Ｐ１で分割するよりも、Ｐ３で分割した方が分岐数は多い。
図１６に戻り、Ｓ２１３から説明を続ける。
【００７８】
Ｓ２１３において、遅延時間算出部１２０は、Ｓ２１２で得られた複数の細分グラフから未選択の細分グラフを一つ選択する。
そして、遅延時間算出部１２０は、選択した細分グラフの遅延時間を算出する。遅延時間の算出方法は、実施の形態１（図２のＳ１２０参照）と同じである。
Ｓ２１３の後、処理はＳ２１４に進む。
【００７９】
Ｓ２１４において、挿入グラフ選択部１２１は、Ｓ２１３で算出された遅延時間を目標時間と比較する。
遅延時間が目標時間以下である場合（ＹＥＳ）、処理はＳ２１５に進む。
遅延時間が目標時間より長い場合（ＮＯ）、処理はＳ２１７（図１７参照）に進む。
【００８０】
Ｓ２１５において、エラー対策挿入部１２２は、Ｓ２１３で選択された細分グラフにエラー対策表記を挿入する。
Ｓ２１５の後、処理はＳ２１６に進む。
【００８１】
Ｓ２１６において、挿入量判定部１２３はエラー対策表記の挿入量を算出する。
そして、挿入量判定部１２３は、エラー対策表記の挿入量を目標挿入量１８４と比較する。
エラー対策表記の挿入量が目標挿入量１８４以上である場合（ＹＥＳ）、処理はＳ１３０（図１７参照）に進む。
エラー対策表記の挿入量が目標挿入量１８４未満である場合（ＮＯ）、処理はＳ２１７（図１７参照）に進む。
【００８２】
Ｓ２１７（図１７参照）において、遅延時間算出部１２０は、Ｓ２１３で選択していない未選択の細分グラフがあるか判定する。
未選択の細分グラフがある場合（ＹＥＳ）、処理はＳ２１３に戻る。
未選択の細分グラフがない場合（ＮＯ）、処理はＳ２１８に進む。
【００８３】
Ｓ２１８において、再分割グラフ選択部１２４は、Ｓ２１０で選択していない未選択の再分割グラフがあるか判定する。
未選択の再分割グラフがある場合（ＹＥＳ）、処理はＳ２１０に戻る。
未選択の再分割グラフがない場合（ＮＯ）、処理はＳ１３０に進む。この場合、挿入量判定部１２３は、エラー対策表記の挿入量が目標挿入量１８４に達していない旨のメッセージを表示しても構わない。
【００８４】
Ｓ１３０およびＳ１３１は、実施の形態２（図１３参照）と同じである。
Ｓ１３１の後、回路設計処理は終了する。
【００８５】
実施の形態３により、スケジューリング後のＣＤＦＧファイル１９２に関わらず、目標挿入量１８４のエラー対策表記をスケジューリング後のＣＤＦＧファイル１９２に挿入することができる。
【００８６】
実施の形態４．
演算パス毎ではなくて演算パス群毎にエラー対策表記を挿入する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項については実施の形態１と同様である。
【００８７】
図２０は、実施の形態４における回路設計装置１００の機能構成図である。
実施の形態４における回路設計装置１００の機能構成について、図２０に基づいて説明する。
【００８８】
回路設計装置１００は、実施の形態１（図１参照）で説明した機能に加えて、グラフ群分割部１２６を備える。
グラフ群分割部１２６は、スケジューリング後のＣＤＦＧファイル１９２が表すＣＤＦＧに含まれる複数の演算パスグラフを、複数のパスグラフ群に分割する。パスグラフ群は、連続する複数の演算パスグラフ（一連の演算パスグラフ）である。
以下、各パスグラフ群に含まれる演算パスグラフの数をパスグラフ数１８５という。
【００８９】
遅延時間算出部１２０は、各パスグラフ群の最終のパスグラフ毎に遅延時間を算出する。
挿入グラフ選択部１２１は、各パスグラフ群の最終のパスグラフから挿入グラフを選択する。
【００９０】
図２１は、実施の形態４における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
実施の形態４における回路設計装置１００の回路設計処理について、図２１に基づいて説明する。
【００９１】
回路設計処理は、実施の形態１（図２参照）で説明した処理に加えて、Ｓ１１３を備える。
【００９２】
Ｓ１１０からＳ１１２は、実施の形態１と同じである。
Ｓ１１２の後、処理はＳ１１３に進む。
【００９３】
Ｓ１１３において、グラフ群分割部１２６は、パスグラフ数１８５に基づいて、スケジューリング後のＣＤＦＧファイル１９２に含まれる複数の演算パスグラフを、複数のパスグラフ群に分割する。
Ｓ１１３の後、処理はＳ１２０に進む。
【００９４】
Ｓ１２０において、遅延時間算出部１２０は、スケジューリング後のＣＤＦＧファイル１９２に基づいて、遅延時間リスト１９３を生成する（実施の形態１と同様）。
但し、遅延時間算出部１２０は、全ての演算パスグラフの遅延時間ではなくて、各パスグラフ群の最終の演算パスグラフの遅延時間を算出する。つまり、遅延時間リスト１９３は、各パスグラフ群の最終の演算パスグラフの遅延時間を示す。
Ｓ１２０の後、処理はＳ１２１に進む。
【００９５】
Ｓ１２１において、挿入グラフ選択部１２１は、遅延時間リスト１９３に基づいて挿入グラフリスト１９４を生成する（実施の形態１と同様）。
Ｓ１２１の後、処理はＳ１２２に進む。
【００９６】
Ｓ１２２において、エラー対策挿入部１２２は、挿入グラフリスト１９４に基づいて各挿入グラフにエラー対策表記を挿入する。
さらに、エラー対策挿入部１２２は、挿入グラフ毎に挿入グラフを含んだパスグラフ群を選択し、選択したパスグラフ群の各演算パスグラフに含まれる演算表記（例えば、演算子）を多重化する。
Ｓ１２２の後、処理はＳ１３０に進む。
【００９７】
Ｓ１３０およびＳ１３１は、実施の形態１と同じである。
Ｓ１３１の後、回路設計処理は終了する。
【００９８】
図２２は、各実施の形態におけるエラー対策挿入部１２２のエラー対策挿入処理の概要図である。
各実施の形態におけるエラー対策挿入部１２２のエラー対策挿入処理の概要について、図２２に基づいて説明する。
図２２の（１）は、エラー対策回路を挿入する前のＤＦＧである。
図２２の（２）において、エラー対策挿入部１２２は、前半区間と後半区間との両方に、多数決回路を挿入する。また、エラー対策挿入部１２２は、各区間の演算子を多重化する。
図２２の（３）において、加算器の遅延と多数決回路の遅延とを合計した前半区間の遅延が、目標の遅延よりも大きいと仮定する。この場合、エラー対策挿入部１２２は、前半区間に多数決回路を挿入できない。そこで、エラー対策挿入部１２２は、前半区間に多数決回路を挿入せず、前半区間の演算子を多重化する。そして、エラー対策挿入部１２２は、後半区間に多数決回路を挿入し、後半区間の演算子を多重化する。これにより、前半区間に多数決回路を挿入できない場合であっても、エラー対策を行うことが可能となる。
【００９９】
実施の形態５．
演算パス毎ではなくて演算パス群毎にエラー対策表記を挿入する形態について説明する。
以下、実施の形態２、３と異なる事項について主に説明する。説明を省略する事項については実施の形態２、３と同様である。
【０１００】
図２３は、実施の形態５における回路設計装置１００の機能構成図である。
実施の形態５における回路設計装置１００の機能構成について、図２３に基づいて説明する。
【０１０１】
回路設計装置１００は、実施の形態２（図１２参照）で説明した機能に加えて、グラフ群分割部１２６を備える。
グラフ群分割部１２６の機能は、実施の形態４（図２０参照）と同様である。
【０１０２】
遅延時間算出部１２０、挿入グラフ選択部１２１およびエラー対策挿入部１２２の機能は、実施の形態４と同様である。
【０１０３】
図２４、図２５は、実施の形態５における回路設計装置１００の回路設計処理の流れを示すフローチャートである。
実施の形態５における回路設計装置１００の回路設計処理について、図２４および図２５に基づいて説明する。
【０１０４】
Ｓ１１０からＳ１１２（図２４参照）は、実施の形態２（図１３参照）と同様である。
Ｓ１１２の後、処理はＳ３００に進む。
【０１０５】
Ｓ３００において、グラフ群分割部１２６は、スケジューリング後のＣＤＦＧファイル１９２に含まれる複数の演算パスグラフから、エラー対策表記が挿入されていない未選択の演算パスグラフを一つ選択する。
Ｓ３００の後、処理Ｓ３０１に進む。
【０１０６】
Ｓ３０１において、グラフ群分割部１２６は変数Ｎに初期値Ｍを設定する。初期値Ｍはパスグラフ数１８５である。
Ｓ３０１の後、処理はＳ３０２に進む。
【０１０７】
Ｓ３０２において、グラフ群分割部１２６はＳ３００で選択した演算パスグラフから連続するＮ個の演算パスグラフに、エラー対策表記が挿入されている演算パスグラフが含まれるか判定する。以下、連続するＮ個の演算パスグラフをパスグラフ群［Ｎ］という。エラー対策表記が挿入されている演算パスグラフを含まないパスグラフ群「Ｎ」は、ＣＤＦＧから分割することが可能である。
パスグラフ群［Ｎ］をＣＤＦＧから分割することが可能である場合（ＹＥＳ）、処理はＳ３１０（図２５参照）に進む。
パスグラフ群［Ｎ］をＣＤＦＧから分割することが可能でない場合（ＮＯ）、処理はＳ３０３に進む。
【０１０８】
Ｓ３０３において、グラフ群分割部１２６は変数Ｎの値から１を減算する。
Ｓ３０３の後、処理はＳ３０４に進む。
【０１０９】
Ｓ３０４において、グラフ群分割部１２６は変数Ｎの値が０であるか判定する。
変数Ｎの値が０である場合（ＹＥＳ）、処理はＳ３０５に進む。
変数Ｎの値が０でない場合（ＮＯ）、処理はＳ３０２に戻る。
【０１１０】
Ｓ３０５において、グラフ群分割部１２６は、Ｓ３００で選択していない未選択の演算パスグラフがあるか判定する。
未選択の演算パスグラフがある場合（ＹＥＳ）、処理はＳ３００に戻る。
未選択の演算パスグラフがない場合（ＮＯ）、処理はＳ１３０（図２５参照）に進む。
【０１１１】
Ｓ３１０（図２５参照）において、遅延時間算出部１２０は、Ｓ３０２で判定されたパスグラフ群［Ｎ］に含まれる最終の演算パスグラフの遅延時間を算出する。
Ｓ３１０の後、処理はＳ３１１に進む。
【０１１２】
Ｓ３１１において、挿入グラフ選択部１２１は、Ｓ３１０で算出された遅延時間を目標時間と比較する。
遅延時間が目標時間以下である場合（ＹＥＳ）、処理はＳ３１２に進む。
遅延時間が目標時間より長い場合（ＮＯ）、処理はＳ３０３（図２４参照）に進む。
【０１１３】
Ｓ３１２において、エラー対策挿入部１２２は、Ｓ３０２で判定されたパスグラフ群［Ｎ］に含まれる最終の演算パスグラフに、エラー対策表記を挿入する。
また、エラー対策挿入部１２２は、パスグラフ群［Ｎ］の各演算パスグラフに含まれる演算子を多重化する。
Ｓ３１２の後、処理はＳ３１３に進む。
【０１１４】
Ｓ３１３において、挿入量判定部１２３は、エラー対策表記の挿入量を算出し、エラー対策表記の挿入量を目標挿入量１８４と比較する。
エラー対策表記の挿入量が目標挿入量１８４以上である場合（ＹＥＳ）、処理はＳ１３０に進む。
エラー対策表記の挿入量が目標挿入量１８４未満である場合（ＮＯ）、処理はＳ３０５（図２４参照）に進む。
【０１１５】
Ｓ１３０およびＳ１３１は、実施の形態２（図１３参照）と同様である。
Ｓ１３１の後、回路設計処理は終了する。
【０１１６】
上記では、グラフ群分割部１２６は、パスグラフ群［Ｎ］に含まれる演算パスグラフの数Ｎをパスグラフ数Ｍから減らしながら、エラー対策表記を挿入できる演算パスを探索する。
但し、グラフ群分割部１２６は、Ｎを増やしながら演算パスを探索しても構わない。この場合、グラフ群分割部１２６は、Ｓ３０１においてＮに初期値として１を設定する。また、グラフ群分割部１２６は、Ｓ３０３においてＮに１を加算し、Ｓ３０４においてＮがＭより大きいか判定する。
【０１１７】
図２６は、実施の形態５における回路設計装置１００の機能構成の別例を示す図である。
実施の形態５における回路設計装置１００の機能構成の別例について、図２６に基づいて説明する。
【０１１８】
回路設計装置１００は、実施の形態３（図１４参照）で説明した機能に加えて、グラフ群分割部１２６を備える。
グラフ群分割部１２６の機能は、実施の形態４（図２０参照）と同様である。
【０１１９】
遅延時間算出部１２０、挿入グラフ選択部１２１およびエラー対策挿入部１２２の機能は、実施の形態４と同様である。
【０１２０】
図２７、図２８、図２９および図３０は、実施の形態５における回路設計装置１００の回路設計処理の別列を示すフローチャートである。
実施の形態５における回路設計装置１００の回路設計処理の別例について、図２７から図３０に基づいて説明する。
【０１２１】
Ｓ１１０からＳ３０５（図２７参照）は図２４と同様である。
Ｓ３０２において、パスグラフ群［Ｎ］をＣＤＦＧから分割することが可能である場合（ＹＥＳ）、処理はＳ３１０（図２８参照）に進む。Ｓ３１０からＳ３１３（図２８参照）は図２５と同様である。
Ｓ３０５において、未選択の演算パスグラフがない場合（ＮＯ）、処理はＳ２１０（図２９参照）に進む。
【０１２２】
Ｓ２１０からＳ２１６（図２９参照）は図１６と同様である。
Ｓ２１６において、エラー対策表記の挿入量が目標挿入量１８４未満である場合（ＮＯ）、処理はＳ２１７（図３０参照）に進む。
【０１２３】
Ｓ２１７、Ｓ２１８、Ｓ１３０およびＳ１３１（図３０参照）は図１７と同様である。
Ｓ１３１の後、回路設計処理は終了する。
【０１２４】
図２４の場合と同様に、グラフ群分割部１２６は、Ｎを増やしながら演算パスを探索しても構わない。つまり、グラフ群分割部１２６は、Ｓ３０１においてＮに初期値として１を設定し、Ｓ３０３においてＮに１を加算し、Ｓ３０４においてＮがＭより大きいか判定する。
実施の形態５により、演算パス群毎にエラー対策表記を挿入することができる。
【０１２５】
各実施の形態は、回路設計装置１００の形態の一例である。
つまり、回路設計装置１００は、各実施の形態で説明した構成要素の一部を備えなくても構わない。また、回路設計装置１００は、各実施の形態で説明していない構成要素を備えても構わない。さらに、回路設計装置１００は、各実施の形態の構成要素の一部または全てを組み合わせたものであっても構わない。
回路設計装置１００は、１つの装置（筐体）で構成されてもよいし、複数の装置（システム）で構成されてもよい。
【０１２６】
各実施の形態においてフローチャート等を用いて説明した処理手順は、各実施の形態に係る方法およびプログラムの処理手順の一例である。各実施の形態に係る方法およびプログラムは、各実施の形態で説明した処理手順と一部異なる処理手順で実現されても構わない。
【符号の説明】
【０１２７】
１００  回路設計装置、１１０  動作記述入力部、１１１  ＣＤＦＧ生成部、１１２  スケジューリング部、１２０  遅延時間算出部、１２１  挿入グラフ選択部、１２２  エラー対策挿入部、１２３  挿入量判定部、１２４  再分割グラフ選択部、１２５  分割箇所選択部、１２６  グラフ群分割部、１３０  バインディング部、１３１  ＲＴＬ記述出力部、１８１  目標周波数、１８２  回路ライブラリ、１８３  エラー対策ライブラリ、１８４  目標挿入量、１８５  パスグラフ数、１９０  装置記憶部、１９１  動作記述ファイル、１９２  ＣＤＦＧファイル、１９３  遅延時間リスト、１９４  挿入グラフリスト、１９５  ＲＴＬ記述ファイル、９０１  演算装置、９０２  補助記憶装置、９０３  主記憶装置、９０４  通信装置、９０５  入出力装置、９０９  バス。
【図１】
2015155815.tif 000003
【図２】
2015155815.tif 000004
【図３】
2015155815.tif 000005
【図４】
2015155815.tif 000006
【図５】
2015155815.tif 000007
【図６】
2015155815.tif 000008
【図７】
2015155815.tif 000009
【図８】
2015155815.tif 000010
【図９】
2015155815.tif 000011
【図１０】
2015155815.tif 000012
【図１１】
2015155815.tif 000013
【図１２】
2015155815.tif 000014
【図１３】
2015155815.tif 000015
【図１４】
2015155815.tif 000016
【図１５】
2015155815.tif 000017
【図１６】
2015155815.tif 000018
【図１７】
2015155815.tif 000019
【図１８】
2015155815.tif 000020
【図１９】
2015155815.tif 000021
【図２０】
2015155815.tif 000022
【図２１】
2015155815.tif 000023
【図２２】
2015155815.tif 000024
【図２３】
2015155815.tif 000025
【図２４】
2015155815.tif 000026
【図２５】
2015155815.tif 000027
【図２６】
2015155815.tif 000028
【図２７】
2015155815.tif 000029
【図２８】
2015155815.tif 000030
【図２９】
2015155815.tif 000031
【図３０】
2015155815.tif 000032
【国際調査報告】
2015155815.tif 000033
2015155815.tif 000034
2015155815.tif 000035
2015155815.tif 000036