(57)【要約】【課題】ＦＰＧＡの設計段階で、ユーザ回路にＴＭＲを適用したときのＳＥＲを見積もることができるＦＰＧＡ設計支援システムを提供する。【解決手段】ＴＭＲを適用した場合のＳＥＲ低減率を含む情報を保持するＴＭＲ効果情報ＤＢ１７と、ＦＰＧＡが有するＣＲＡＭ全体のＳＥＲを計算するＣＲＡＭ＿ＳＥＲ計算部１２と、各回路ブロックのＦＰＧＡリソースの使用率を計算するＦＰＧＡリソース使用率計算部１３と、ＣＲＡＭ全体のＳＥＲおよび各回路ブロックのＦＰＧＡリソースの使用率に基づいて、回路ブロック単位のＳＥＲを計算する回路ブロックＳＥＲ計算部１１と、ＴＭＲブロックについてＳＥＲおよびＴＭＲを適用した場合のＳＥＲの低減率に基づいてＴＭＲブロックのＳＥＲを計算するＴＭＲブロックＳＥＲ計算部１４と、各回路ブロックのＳＥＲおよび各ＴＭＲブロックのＳＥＲに基づいてユーザ回路全体のＳＥＲを計算するＳＥＲ計算部１０とを有する。【選択図】図１
2012221077.tif 000002
【特許請求の範囲】
【請求項１】
ＦＰＧＡで設計されたユーザ回路にＴＭＲを適用した場合のソフトエラー率を計算するＦＰＧＡ設計支援システムであって、
ＦＰＧＡの種別毎にＴＭＲを適用した場合のソフトエラー率の低減率を含む情報を保持するＴＭＲ効果情報データベースと、
前記ＦＰＧＡが有するＣＲＡＭ全体のソフトエラー率を計算するＣＲＡＭ＿ＳＥＲ計算部と、
前記ユーザ回路における各回路ブロックの前記ＦＰＧＡのリソースの使用率を計算するＦＰＧＡリソース使用率計算部と、
前記ＣＲＡＭ＿ＳＥＲ計算部によって算出された前記ＣＲＡＭ全体のソフトエラー率、および前記ＦＰＧＡリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記ＦＰＧＡのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する回路ブロックＳＥＲ計算部と、
前記ユーザ回路の回路ブロックのうちＴＭＲの適用を仮定するもしくは既にＴＭＲ化されている回路ブロックとしてＴＭＲ条件において指定されたＴＭＲブロックについて、前記回路ブロックＳＥＲ計算部によって算出されたソフトエラー率、および前記ＴＭＲ効果情報データベースから取得した、前記ＦＰＧＡで設計された前記ユーザ回路にＴＭＲを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記ＴＭＲブロックのソフトエラー率を計算するＴＭＲブロックＳＥＲ計算部と、
前記回路ブロックＳＥＲ計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記ＴＭＲブロックＳＥＲ計算部によって計算された前記各ＴＭＲブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算するＳＥＲ計算部とを有することを特徴とするＦＰＧＡ設計支援システム。
【請求項２】
請求項１に記載のＦＰＧＡ設計支援システムにおいて、
前記ＴＭＲ効果情報データベースは、さらに、ＦＰＧＡの種別毎に、ＴＭＲを適用した場合のＴＭＲの粒度によって変化するソフトエラー率の低減率の特性を含む情報を保持し、
前記ＴＭＲブロックＳＥＲ計算部は、前記ＴＭＲ条件において、前記ＴＭＲブロックについて指定された前記粒度の値、もしくは前記ＴＭＲブロックにおいてＴＭＲを適用する単位回路として指定された回路ブロックの情報に基づいて算出した前記粒度の値に基づいて、前記ＦＰＧＡで設計された前記ユーザ回路に前記粒度でＴＭＲを適用した場合のソフトエラー率の低減率の情報を前記ＴＭＲ効果情報データベースから取得して、前記ＴＭＲブロックのソフトエラー率を計算することを特徴とするＦＰＧＡ設計支援システム。
【請求項３】
請求項２に記載のＦＰＧＡ設計支援システムにおいて、
前記ＴＭＲ条件において指定される、前記ＴＭＲブロックにおいてＴＭＲを適用する単位回路とする回路ブロックを、回路ブロックの階層構造における、前記ＴＭＲブロックからの階層の深さによって特定することを特徴とするＦＰＧＡ設計支援システム。
【請求項４】
請求項１〜３のいずれか１項に記載のＦＰＧＡ設計支援システムにおいて、
さらに、前記ＦＰＧＡの種別を特定する情報、前記ＦＰＧＡに内蔵されているリソース数、内部メモリおよび前記ＣＲＡＭの容量、前記内部メモリおよび前記ＣＲＡＭの単位ビット当たりのソフトエラー率、前記ＣＲＡＭの実使用率、前記ＦＰＧＡのリソース毎の前記ＣＲＡＭの依存率を含む、前記ＦＰＧＡのソフトエラー率を計算するために必要なデバイスの基本情報を保持するＦＰＧＡ情報データベースを有することを特徴とするＦＰＧＡ設計支援システム。
【請求項５】
請求項４に記載のＦＰＧＡ設計支援システムにおいて、
前記ＣＲＡＭ＿ＳＥＲ計算部は、前記ＦＰＧＡ情報データベースから取得した前記ＣＲＡＭの容量、前記ＣＲＡＭの単位ビット当たりのソフトエラー率、および前記ＣＲＡＭの実使用率を乗算して、前記ＦＰＧＡにおける前記ＣＲＡＭ全体のソフトエラー率を計算することを特徴とするＦＰＧＡ設計支援システム。
【請求項６】
請求項４に記載のＦＰＧＡ設計支援システムにおいて、
前記ＦＰＧＡリソース使用率計算部は、前記ＦＰＧＡ情報データベースから取得した前記ＦＰＧＡに内蔵されているリソース数と、前記ユーザ回路の回路情報から取得した前記ユーザ回路の各回路ブロックにおける前記ＦＰＧＡのリソースの使用数との比として、前記ユーザ回路における各回路ブロックの前記ＦＰＧＡのリソース毎の使用率を計算することを特徴とするＦＰＧＡ設計支援システム。
【請求項７】
請求項４に記載のＦＰＧＡ設計支援システムにおいて、
前記回路ブロックＳＥＲ計算部は、前記ＣＲＡＭ＿ＳＥＲ計算部によって算出された前記ＣＲＡＭ全体のソフトエラー率、前記ＦＰＧＡリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記ＦＰＧＡのリソースの使用率、および前記ＦＰＧＡ情報データベースから取得した前記ＦＰＧＡのリソース毎のＣＲＡＭ依存率を乗算して各リソースについて総和することで、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算し、さらに、内部メモリが含まれる回路ブロックについては、前記ＦＰＧＡ情報データベースから取得した内部メモリ容量と、内部メモリの単位ビット当たりのソフトエラー率とを乗算した値を加算することで、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算することを特徴とするＦＰＧＡ設計支援システム。
【請求項８】
請求項１〜７のいずれか１項に記載のＦＰＧＡ設計支援システムにおいて、
前記ＴＭＲブロックＳＥＲ計算部は、前記ＴＭＲブロックについて、前記回路ブロックＳＥＲ計算部によって算出されたソフトエラー率と、前記ユーザ回路にＴＭＲを適応した場合のソフトエラー率の低減率とを乗算することで、前記ＴＭＲブロックのソフトエラー率を計算することを特徴とするＦＰＧＡ設計支援システム。
【請求項９】
請求項１〜８のいずれか１項に記載のＦＰＧＡ設計支援システムにおいて、
前記ＳＥＲ計算部は、前記回路ブロックＳＥＲ計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率のうちの前記ＴＭＲブロック以外の回路ブロックのソフトエラー率と、前記ＴＭＲブロックＳＥＲ計算部によって計算された前記各ＴＭＲブロックのソフトエラー率とを合算して、前記ユーザ回路全体のソフトエラー率を計算することを特徴とするＦＰＧＡ設計支援システム。
【請求項１０】
請求項１〜９のいずれか１項に記載のＦＰＧＡ設計支援システムにおいて、
さらに、前記ユーザ回路の回路情報、および前記ＴＭＲ条件の入力を受け付け、前記ユーザ回路の回路情報、前記ＴＭＲ条件、前記回路ブロックＳＥＲ計算部によって算出された前記ユーザ回路の各回路ブロックのソフトエラー率、前記ＴＭＲブロックＳＥＲ計算部によって算出された前記各ＴＭＲブロックのソフトエラー率、および前記ＳＥＲ計算部によって算出された前記ユーザ回路全体のソフトエラー率の一部または全部を表示する入出力部を有することを特徴とするＦＰＧＡ設計支援システム。
【請求項１１】
請求項１０に記載のＦＰＧＡ設計支援システムにおいて、
さらに、前記入出力部に入力される前記ＴＭＲ条件の内容を変更して、前記入出力部および前記ＳＥＲ計算部での処理の実行を制御する実行制御部を有することを特徴とするＦＰＧＡ設計支援システム。
【請求項１２】
ＦＰＧＡで設計されたユーザ回路にＴＭＲを適用した場合のソフトエラー率を計算するＦＰＧＡ設計支援システムとしてコンピュータを機能させるＦＰＧＡ設計支援プログラムであって、
前記ＦＰＧＡが有するＣＲＡＭ全体のソフトエラー率を計算するＣＲＡＭ＿ＳＥＲ計算部と、
前記ユーザ回路における各回路ブロックの前記ＦＰＧＡのリソースの使用率を計算するＦＰＧＡリソース使用率計算部と、
前記ＣＲＡＭ＿ＳＥＲ計算部によって算出された前記ＣＲＡＭ全体のソフトエラー率、および前記ＦＰＧＡリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記ＦＰＧＡのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する回路ブロックＳＥＲ計算部と、
前記ユーザ回路の回路ブロックのうちＴＭＲの適用を仮定するもしくは既にＴＭＲ化されている回路ブロックとしてＴＭＲ条件において指定されたＴＭＲブロックについて、前記回路ブロックＳＥＲ計算部によって算出されたソフトエラー率、およびＦＰＧＡの種別毎にＴＭＲを適用した場合のソフトエラー率の低減率を含む情報を保持するデータベースから取得した、前記ＦＰＧＡで設計した前記ユーザ回路にＴＭＲを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記ＴＭＲブロックのソフトエラー率を計算するＴＭＲブロックＳＥＲ計算部と、
前記回路ブロックＳＥＲ計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記ＴＭＲブロックＳＥＲ計算部によって計算された前記各ＴＭＲブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算するＳＥＲ計算部とを有することを特徴とするＦＰＧＡ設計支援プログラム。
【請求項１３】
情報処理装置によってＦＰＧＡで設計されたユーザ回路にＴＭＲを適用した場合のソフトエラー率を計算するＦＰＧＡ設計支援方法であって、
ソフトエラー率を計算する対象となる前記ユーザ回路の回路情報を入力する第１のステップと、
前記ＦＰＧＡが有するＣＲＡＭ全体のソフトエラー率を計算する第２のステップと、
前記ユーザ回路における各回路ブロックの前記ＦＰＧＡのリソースの使用率を計算する第３のステップと、
前記第２のステップによって算出された前記ＣＲＡＭ全体のソフトエラー率、および前記第３のステップによって算出された前記ユーザ回路における各回路ブロックの前記ＦＰＧＡのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する第４のステップと、
前記第４のステップによって算出された前記ユーザ回路における各回路ブロックのソフトエラー率を合算して前記ユーザ回路全体のソフトエラー率を計算する第５のステップと、
前記第５のステップによって算出された前記ユーザ回路全体のソフトエラー率が所定の目標値を下回っているか否かを判定する第６のステップと、
前記第６のステップにおいて、前記ユーザ回路全体のソフトエラー率が所定の目標値を下回っていない場合に、前記ユーザ回路の回路ブロックのうちＴＭＲの適用を仮定する回路ブロックであるＴＭＲブロック、および前記ＴＭＲブロックについてのＴＭＲを適用する際の粒度に係る情報を含むＴＭＲ条件を指定する第７のステップと、
前記ＴＭＲブロックについて、前記第４のステップによって算出されたソフトエラー率、およびＦＰＧＡの種別毎にＴＭＲを適用した場合のＴＭＲの前記粒度によって変化するソフトエラー率の低減率の特性を含む情報を保持するデータベースから取得した、前記ＦＰＧＡで設計された前記ユーザ回路に前記粒度でＴＭＲを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記ＴＭＲブロックのソフトエラー率を計算する第８のステップと、
前記第４のステップによって算出された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記第８のステップによって算出された前記各ＴＭＲブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算する第９のステップと、
前記第９のステップにおいて、前記ユーザ回路全体のソフトエラー率が前記所定の目標値を下回っているか否かを判定し、下回っていない場合は前記第７のステップに戻って処理を繰り返す第１０のステップとを実行することを特徴とするＦＰＧＡ設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計技術に関し、特に、ＦＰＧＡ（Field-Programmable Gate Array）においてソフトエラーに対する耐性向上を図る設計を支援するＦＰＧＡ設計支援システムおよびＦＰＧＡ設計支援方法ならびにＦＰＧＡ設計支援プログラムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
半導体集積回路の微細化および高集積化に伴い、地上における環境放射線（アルファ線や中性子線など）の影響によって発生するソフトエラーの影響が拡大している。特に近年では、大容量化が進むＦＰＧＡ（Field-Programmable Gate Array）におけるソフトエラーが問題視されている。
【０００３】
ＦＰＧＡを代表とするプログラマブルロジックデバイスは、ユーザが設計した論理回路（以下では“ユーザ回路”と記載する場合がある）の構成情報をデバイス内部のコンフィギュレーションメモリ（以下では“ＣＲＡＭ（Configuration RAM）”と記載する場合がある）に記憶する。ＦＰＧＡにおけるソフトエラーは大きく二つの現象に分けられる。ひとつは内部メモリやフリップフロップに保持されているデータが放射線の影響によって反転しまうことで誤作動を引き起こす現象である。もうひとつは、ＣＲＡＭにおいて、特に回路情報が記憶されたビットにおいて放射線の影響によってデータが反転してしまうことで、回路構成自体が破壊されて誤作動を引き起こす現象である（例えば、特許文献１（特表２００５−５０５８２７号公報）など参照）。
【０００４】
このような背景の下、設計段階からＦＰＧＡのソフトエラー率（以下では“ＳＥＲ（Soft Error Rate）”と記載する場合がある）を見積もることが重要となってきているが、現在、設計段階でＦＰＧＡのソフトエラー率を見積もる手法は確立されていない。
【０００５】
ＳＲＡＭ（Static Random Access Memory）のソフトエラー率を製品設計段階で見積もる技術としては、例えば、特開２００８−６６５９８号公報（特許文献２）に以下のようなソフトエラー率の計算手法が記載されている。すなわち、ＭＩＳＦＥＴ（Metal-Oxide-Semiconductor Field-Effect Transistor）で構成される記憶回路又は情報保持回路の情報記憶ノード拡散層面積とソフトエラー率との関係を複数の情報記憶ノード電圧Ｖｎをパラメータとして測定した測定結果を使用し、同一情報記憶ノード電圧Ｖｎにおけるソフトエラー率の情報記憶ノード面積依存性を表す第１の数式を導出する。そして、測定結果から同一情報記憶ノード面積Ｓｃにおけるソフトエラー率の情報記憶ノード電圧依存性の関係を第１の数式に代入して第２の数式を導出する。求めたい記憶回路又は情報保持回路の情報記憶ノード面積及び情報記憶ノード電圧を第２の数式に代入すれば、そのソフトエラー率を計算することができる。
【０００６】
また、例えば、特開２００６−１３４９３８号公報（特許文献３）には、半導体デバイスの設計に用いる複数のセルが登録されたセルライブラリに、各セルのソフトエラー率を登録するステップと、被検証対象である半導体デバイスに含まれる各セルの個数をカウントするステップと、各セルについて個数とソフトエラー率との積を求め、この積を全てのセルについて足し合わせて、半導体デバイスのソフトエラー率を検証するステップとを有し、ロジック回路を含むロジックデバイス全体についてソフトエラー率を高速・簡単に検証する手法が記載されている。
【０００７】
一方、ＦＰＧＡにおけるソフトエラー対策として、論理回路を三重化し、出力の多数決を取ることで信頼性を向上させるＴＭＲ（Triple Modular Redundancy：三重化多数決回路）の技術が広く知られている。ＴＭＲは三重化された回路のうち、二つ以上の回路がエラーにならない限りシステムは正常動作を維持するため、ソフトエラー率を低減することができる。ＦＰＧＡベンダのザイリンクス社からは、専用の設計アプリケーションの付加機能として、ユーザが設計した回路を自動的にＴＭＲ化するツールが提供されている（非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００５−５０５８２７号公報
【特許文献２】特開２００８−６６５９８号公報
【特許文献３】特開２００６−１３４９３８号公報
【非特許文献】
【０００９】
【非特許文献１】"Xilinx, Inc.", "Xilinx TMRTool User Guide (TMRTool Software Version 9.2i)", UG156(V2.2), September 12, 2007
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ＦＰＧＡにおけるソフトエラー対策としてむやみにＴＭＲを適用すると、ソフトエラー率は低減するものの、回路規模や消費電力が増大してしまう。そのため、設計者はこれらのトレードオフ設計により、回路構成における最適なＴＭＲの適用範囲を決定する必要がある。
【００１１】
一方で、ＦＰＧＡでは、ＴＭＲを適用しても期待されるソフトエラーの低減効果が得られない場合がある。ＦＰＧＡでは前述したように回路情報をＣＲＡＭに記憶するが、ＣＲＡＭのプロセス微細化に伴い、放射線等の影響で一度に複数ビットが反転してしまうマルチセルアップセット（Multi-Cell Upset：ＭＣＵ）と呼ばれる現象がＣＲＡＭにおいても増加している。このＭＣＵによってＣＲＡＭ上に複数ビットの反転が発生してしまうと、ＭＣＵの発生確率でＴＭＲが破壊されることになるため、期待したＴＭＲの効果が低減してしまう。そのため、ＴＭＲ適用時のソフトエラー低減効果を正しく見積もれず、ＴＭＲ適用に伴うトレードオフ設計での課題となっていた。
【００１２】
そこで本発明の目的は、ＦＰＧＡの設計段階で、設計されたユーザ回路にＴＭＲを適用したと仮定したときのソフトエラー率を見積もることができ、また、ＴＭＲを適用して設計されたユーザ回路のソフトエラー率を計算することができるＦＰＧＡ設計支援システムおよびＦＰＧＡ設計支援方法ならびにＦＰＧＡ設計支援プログラムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１４】
本発明の代表的な実施の形態によるＦＰＧＡ設計支援システムは、ＦＰＧＡで設計されたユーザ回路にＴＭＲを適用した場合のソフトエラー率を計算するＦＰＧＡ設計支援システムであって、以下の特徴を有するものである。
【００１５】
すなわち、ＦＰＧＡ設計支援システムは、ＦＰＧＡの種別毎にＴＭＲを適用した場合のソフトエラー率の低減率を含む情報を保持するＴＭＲ効果情報データベースと、前記ＦＰＧＡが有するＣＲＡＭ全体のソフトエラー率を計算するＣＲＡＭ＿ＳＥＲ計算部と、前記ユーザ回路における各回路ブロックの前記ＦＰＧＡのリソースの使用率を計算するＦＰＧＡリソース使用率計算部と、前記ＣＲＡＭ＿ＳＥＲ計算部によって算出された前記ＣＲＡＭ全体のソフトエラー率、および前記ＦＰＧＡリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記ＦＰＧＡのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する回路ブロックＳＥＲ計算部とを有する。
【００１６】
さらに、前記ユーザ回路の回路ブロックのうちＴＭＲの適用を仮定するもしくは既にＴＭＲ化されている回路ブロックとしてＴＭＲ条件において指定されたＴＭＲブロックについて、前記回路ブロックＳＥＲ計算部によって算出されたソフトエラー率、および前記ＴＭＲ効果情報データベースから取得した、前記ＦＰＧＡで設計された前記ユーザ回路にＴＭＲを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記ＴＭＲブロックのソフトエラー率を計算するＴＭＲブロックＳＥＲ計算部と、前記回路ブロックＳＥＲ計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記ＴＭＲブロックＳＥＲ計算部によって計算された前記各ＴＭＲブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算するＳＥＲ計算部とを有することを特徴とするものである。
【００１７】
また、本発明は、ＦＰＧＡで設計されたユーザ回路にＴＭＲを適用した場合のソフトエラー率を計算するＦＰＧＡ設計支援方法、ならびにコンピュータをＦＰＧＡ設計支援システムとして機能させるプログラムにも適用することができる。
【発明の効果】
【００１８】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１９】
本発明の代表的な実施の形態によれば、ＦＰＧＡの設計段階で、設計されたユーザ回路にＴＭＲを適用したと仮定したときのソフトエラー率を見積もることができ、また、ＴＭＲを適用して設計されたユーザ回路のソフトエラー率を計算することができる。また、ＴＭＲ化する回路の粒度（ＴＭＲ化する単位回路の大きさ）によってソフトエラー率が変化する特徴に着目することで、ＴＭＲを適用した場合のソフトエラー率を適切に見積もることが可能となる。これらにより、ＴＭＲを適用した場合のソフトエラー率の低減効果を適切に見積もることができるため、ＦＰＧＡのソフトエラーに対する最適な耐性設計が可能となる。
【００２０】
また、サーバやルータ、ストレージ、制御システムなどの高信頼性機器に搭載されるＦＰＧＡの設計に適用することで、これらの機器の信頼性を向上させるとともに、設計コストおよび保守コストを下げる効果を得ることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態１であるＦＰＧＡ設計支援システムの構成例の概要について示した図である。
【図２】本発明の実施の形態１におけるＴＭＲ効果情報ＤＢのデータ構成と具体的なデータの例を示した図である。
【図３】本発明の実施の形態１におけるＴＭＲの粒度によるＳＥＲ低減率の変化の例を示した図である。
【図４】（ａ）、（ｂ）は、本発明の実施の形態１における階層の深さを変えてＴＭＲ化したときの回路構成とＴＭＲ粒度の違いについて例を示した図である。
【図５】本発明の実施の形態１におけるソフトエラー率の計算処理の流れの例について示したフローチャートである。
【図６】（ａ）、（ｂ）は、本発明の実施の形態１における入出力部を介して表示する画面の例について示した図である。
【図７】本発明の実施の形態２における所定のソフトエラー率を実現するために必要となるＴＭＲ条件を決定する処理の流れの例について示したフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２３】
＜実施の形態１＞
以下では、ＦＰＧＡで設計されたユーザ回路にＴＭＲを適用した場合のソフトエラー率（ＳＥＲ）を適切に見積もることを可能とするＦＰＧＡ設計支援システムの例について説明する。図１は、本発明の実施の形態１であるＦＰＧＡ設計支援システムの構成例の概要について示した図である。
【００２４】
ＦＰＧＡ設計支援システム１は、例えば、一般的なサーバやＰＣ（Personal Computer）等の情報処理装置によって構成され、ソフトウェアによって実装されるＳＥＲ計算部１０、入出力部２０、実行制御部３０などの各部を有する。また、同一もしくは他の情報処理装置上で稼働する回路構成設計ツール２との間で回路情報の授受を行うことができる。
【００２５】
この回路構成設計ツール２は、例えば、ＦＰＧＡメーカやサードパーティなどから一般的に提供される設計環境であり、例えば、ＨＤＬ（Hardware Description Language）などの言語によるデザイン入力・修正、論理合成、配置配線、シミュレーションによる各種検証などの機能を有し、ＦＰＧＡによってユーザが設計した回路についての回路情報を出力する公知のツールである。なお、例えば上述したザイリンクス社が提供する設計ツールのように、ユーザ回路に対して指定された部分を自動的にＴＭＲ化して回路情報を出力する機能を有していればより望ましい。
【００２６】
ここで、回路情報とは、通常のＦＰＧＡ設計工程において配置配線が終了した後の設計情報のことを指し、当該ユーザ回路をプログラミングするＦＰＧＡの型番や、回路ブロックの階層構成、ＦＰＧＡの内部で使用されるフリップフロップ、配線、メモリなどのリソースの数と、それらの物理的な配置位置を示す情報が含まれている。また、回路ブロックとは、ユーザによって設計された任意の機能を実現する論理回路の単位を表す。回路ブロックはさらに下位の回路ブロックを含んで構成される場合があり、この場合は回路ブロックが階層構造を有することになる。
【００２７】
また、ＦＰＧＡリソースには、論理リソースとメモリリソース、配線リソースの情報が含まれる。論理リソースとは、ＦＰＧＡ内部の論理ブロックに配置されているフリップフロップやルックアップテーブル、演算器などを指す。配線リソースは、論理ブロックの接続やクロックの分配に使用される配線や、配線間の接続を行うスイッチマトリクスなどを指す。メモリリソースはＲＡＭ（Random Access Memory）などからなる内部メモリを指す。
【００２８】
ＦＰＧＡ設計支援システム１において、ＳＥＲ計算部１０は、対象のＦＰＧＡについてユーザ回路における回路ブロック毎にソフトエラー率を計算して合算することで、ユーザ回路全体でのソフトエラー率を計算するとともに、指定されたＴＭＲ条件に基づいてユーザ回路をＴＭＲ化した場合のソフトエラー率を計算する。
【００２９】
ここで、ＴＭＲ条件とは、ＦＰＧＡ設計支援システム１においてユーザ回路へのＴＭＲの適用を仮定した場合のソフトエラー率を計算するための情報であり、例えば、ＴＭＲの適用を仮定する回路ブロック（以下では“ＴＭＲブロック”と記載する場合がある）を特定する情報や、後述するＴＭＲの粒度（ＴＭＲ化する単位回路の大きさ（細かさ））に係る情報が含まれる。ＴＭＲブロックは複数指定してもよい。また、ＴＭＲの適用を仮定する回路ブロックだけではなく、既にＴＭＲ化されている回路ブロックであってもよい。ＴＭＲ条件は、例えば、ユーザもしくは後述する実行制御部３０によって入出力部２０を介してＳＥＲ計算部１０に入力される。
【００３０】
ＳＥＲ計算部１０は、例えば、回路ブロックＳＥＲ計算部１１、ＴＭＲブロックＳＥＲ計算部１４などの各部と、対象のＦＰＧＡデバイスの基本情報を保持するＦＰＧＡ情報データベース（ＤＢ）１５、および回路ブロックＳＥＲ計算部１１やＴＭＲブロックＳＥＲ計算部１４によって計算されたソフトエラー率に係る情報を保持する回路ＳＥＲ計算結果データベース（ＤＢ）１６などのデータを有する。
【００３１】
回路ブロックＳＥＲ計算部１１は、対象のＦＰＧＡで設計されたユーザ回路における各回路ブロックについてのソフトエラー率を計算（見積もり）し、計算結果を回路情報毎およびその中の回路ブロック毎に回路ＳＥＲ計算結果ＤＢ１６に記録する。この回路ブロックＳＥＲ計算部１１は、さらに例えば、ＦＰＧＡ情報ＤＢ１５の内容に基づいて回路ブロック毎のソフトエラー率を計算するために必要な情報を計算する、ＣＲＡＭ＿ＳＥＲ計算部１２、ＦＰＧＡリソース使用率計算部１３などの各部によって構成される。
【００３２】
ここで、ＦＰＧＡ情報ＤＢ１５は、対象のＦＰＧＡデバイスのソフトエラー率を計算するために必要なデバイスの基本情報を保持する。この基本情報には、例えば、対象のＦＰＧＡのメーカや型番などのＦＰＧＡの種別を特定する情報、ＦＰＧＡに内蔵されているリソース数、内部メモリおよびＣＲＡＭの容量、内部メモリおよびＣＲＡＭの単位ビット当たりのソフトエラー率（ＳＥＲ）、ＣＲＡＭの実使用率、リソース毎のＣＲＡＭ依存率などの項目が含まれる。これらの情報は、例えば、回路構成設計ツール２から取得したＦＰＧＡの回路情報から抽出したり、ユーザが直接値を設定・登録したりして予め用意しておく。
【００３３】
例えば、ＣＲＡＭの単位ビット当たりのソフトエラー率ＳＥＲＲＥＦは、ＦＰＧＡの製造テクノロジやＦＰＧＡメーカのシリーズなどによって異なり得る。そのため、例えば、対象のＦＰＧＡの型番に合わせてＦＰＧＡメーカから公表されている値や、ソフトエラー加速試験等によって得られた実測値などをユーザが登録して使用するものとする。ＣＲＡＭの実使用率ｋは、ＦＰＧＡ内部のＣＲＡＭの総容量に対する、回路情報を書き込んだときに実際に使われるＣＲＡＭの容量の割合を示した値であり、０＜ｋ＜１の範囲の値が用いられる。
【００３４】
回路ブロックＳＥＲ計算部１１のＣＲＡＭ＿ＳＥＲ計算部１２は、ＦＰＧＡ情報ＤＢ１５から取得したＣＲＡＭの容量、ＣＲＡＭの単位ビット当たりのソフトエラー率、ＣＲＡＭの実使用率などの情報に基づいて、対象のＦＰＧＡにおけるＣＲＡＭ全体のソフトエラー率を計算する。計算結果は、回路ブロックＳＥＲ計算部１１に受け渡す。
【００３５】
ＦＰＧＡリソース使用率計算部１３は、回路構成設計ツール２から取得したＦＰＧＡによるユーザ回路の回路情報や、ＦＰＧＡ情報ＤＢ１５から取得した対象のＦＰＧＡに内蔵されているリソース数などの情報に基づいて、対象のユーザ設計回路における各回路ブロックのＦＰＧＡリソースの使用率を計算する。計算結果は、回路ブロックＳＥＲ計算部１１に受け渡す。
【００３６】
回路ブロックＳＥＲ計算部１１は、回路構成設計ツール２から取得したＦＰＧＡによるユーザ回路の回路情報や、ＣＲＡＭ＿ＳＥＲ計算部１２によって算出したＣＲＡＭ全体のソフトエラー率、ＦＰＧＡリソース使用率計算部１３によって算出した各回路ブロックのＦＰＧＡリソースの使用率、およびＦＰＧＡ情報ＤＢ１５から取得したリソース毎のＣＲＡＭ依存率などの情報に基づいて、回路ブロック単位のソフトエラー率を計算する。さらに、内部メモリが含まれる回路ブロックについては、ＦＰＧＡ情報ＤＢ１５から取得した内部メモリ容量と、内部メモリの単位ビット当たりのソフトエラー率とを乗算した値を加算することで、回路ブロック単位のソフトエラー率を計算する。計算された回路ブロック単位のソフトエラー率の情報は、回路ＳＥＲ計算結果ＤＢ１６に記録する。
【００３７】
なお、回路ブロックＳＥＲ計算部１１は、回路ブロック毎のソフトエラー率を、階層構造となっている各階層の全ブロックについてそれぞれ計算してもよい。もしくは、最下位層の回路ブロックについてのみソフトエラー率を計算し、上位の階層の回路ブロックのソフトエラー率は、これに含まれる下位階層の回路ブロックのソフトエラー率の和として求めてもよい。
【００３８】
回路ブロックＳＥＲ計算部１１は、ユーザ回路の各回路ブロックに対してＴＭＲ化を考慮しない（ＴＭＲの適用を仮定しない）状態でのソフトエラー率を計算する。従って、ユーザ回路がすでにＴＭＲ化された回路ブロックを有している場合は、ＴＭＲ化する前の単位回路を対象としてソフトエラー率を計算するものとする。これにより、当該部分についてもＴＭＲ化によるソフトエラー率の低減効果がどれくらいであるかを把握することが可能となる。
【００３９】
ＳＥＲ計算部１０のＴＭＲブロックＳＥＲ計算部１４は、入出力部２０を介してＳＥＲ計算部１０に入力されたＴＭＲ条件に基づいてＴＭＲブロックの判定を行い、ＴＭＲブロックのソフトエラー率（ＴＭＲを適用した場合のソフトエラー率）を計算する。そのためにＦＰＧＡの種別毎のＴＭＲ化によるソフトエラー率の低減率の情報を保持するＴＭＲ効果情報データベース（ＤＢ）１７を有する。ソフトエラー率の計算結果は回路ＳＥＲ計算結果ＤＢ１６の該当の回路ブロックのレコードに追加・更新するなどにより記録する。
【００４０】
ＴＭＲブロックのソフトエラー率の計算に際しては、まず入力されたＴＭＲ条件とＦＰＧＡ情報ＤＢ１５に保持された回路情報に基づいて、後述するＴＭＲの粒度ＧＴＭＲを計算する。このＴＭＲ粒度ＧＴＭＲと、ＦＰＧＡ情報ＤＢ１５から取得した対象のＦＰＧＡの種別を特定する情報とに基づいて、対象のＦＰＧＡで設計されたユーザ回路にＴＭＲ粒度ＧＴＭＲでＴＭＲを適用した場合のＳＥＲ低減率ＤＴＭＲの情報をＴＭＲ効果情報ＤＢ１７から取得する。このＳＥＲ低減率ＤＴＭＲと、回路ＳＥＲ計算結果ＤＢ１６に保持された対象の回路ブロックのソフトエラー率の値とを乗算することで、ＴＭＲブロックのソフトエラー率を計算する。
【００４１】
ＳＥＲ計算部１０は、回路ＳＥＲ計算結果ＤＢ１６を参照して、回路ブロックＳＥＲ計算部１１およびＴＭＲブロックＳＥＲ計算部１４によって計算された各回路ブロック（ＴＭＲブロックとそれ以外の非ＴＭＲブロック）のソフトエラー率を合算することで、ユーザ回路全体のソフトエラー率を計算する。計算結果は、所定のフォーマットに編集・整形した上で、入出力部２０を介してＧＵＩ（Graphical User Interface）やデータファイル等の形式でユーザに出力する。
【００４２】
入出力部２０は、ＦＰＧＡ設計支援システム１に対する入出力の処理を行い、例えば、他のシステムやツール等と連携してデータの授受を行うインタフェースや、ユーザによる各種操作や入力を受け付けて処理結果を表示するユーザインタフェースなどを有する。入出力部２０への入力装置は、一般的なコンピュータに使用されるキーボードやタッチパネル等、その装置種類は問わない。回路構成設計ツール２を含む他のシステムやツールから出力されたデータを入力装置を介さずにネットワーク等を介して直接入力するようにしてもよい。
【００４３】
また、データの出力先についても、一般的なコンピュータに使用されるディスプレイ等の表示装置や、回路構成設計ツール２を含む他のシステムやツール、各種記録媒体上のデータファイル等、その種類は問わない。入出力部２０が図示しないＷｅｂサーバプログラムを有し、図示しないクライアント端末からユーザがＷｅｂブラウザ等を介して入出力のためにアクセスするような構成であってもよい。
【００４４】
実行制御部３０は、ＳＥＲ計算部１０や入出力部２０での処理の実行を制御する。例えば、回路構成設計ツール２から入出力部２０を介して回路情報を入力し、さらにＴＭＲ条件を指定して、ＳＥＲ計算部１０によってソフトエラー率を計算するという一連の処理を、指定するＴＭＲ条件を適宜変更して繰り返し実行するよう制御することで、最適なＴＭＲ条件を探索するというようなことも可能となる。
【００４５】
なお、図１において、上述した各部の構成による機能の分割や割り当ては一例であり、全体として各部が有する機能を実現できる構成であれば、設計により他の構成による機能分担を採用することも当然可能である。例えば、図１の例では、回路ブロックＳＥＲ計算部１１の内部にＣＲＡＭ＿ＳＥＲ計算部１２およびＦＰＧＡリソース使用率計算部１３の各部が含まれ、また、ＳＥＲ計算部１０の内部に回路ブロックＳＥＲ計算部１１およびＴＭＲブロックＳＥＲ計算部１４の各部が含まれる構成としているが、このような包含関係・階層関係は必須ではない。これら各部をそれぞれ他の各部からは独立した別の要素として構成してもよい。また、図中の矢印からなる制御線や情報線等は説明上必要と考えられるものを示しており、実システム上では必ずしも全ての制御線や情報線を有しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【００４６】
図２は、ＴＭＲ効果情報ＤＢ１７のデータ構成と具体的なデータの例を示した図である。ＴＭＲ効果情報ＤＢ１７は、ＦＰＧＡの種別毎のＴＭＲ化によるソフトエラー率の低減率の情報を保持するデータベースであり、例えば、メーカ、型番、プロセス、ＳＥＲ低減率ＤＴＭＲ、およびＴＭＲ粒度特性などの各項目を有する。メーカ、型番、プロセスの項目は、対象のＦＰＧＡの種別を特定する情報を保持しており、ＦＰＧＡ情報ＤＢ１５に保持されたＦＰＧＡの基本情報の内容によって対象のＦＰＧＡの種別（ＴＭＲ効果情報ＤＢ１７での該当するレコード）を特定することができるものであれば項目はこれらに限られない。
【００４７】
ＳＥＲ低減率ＤＴＭＲの項目は、ＴＭＲ化の前後での対象の回路ブロックのソフトエラー率の比（０＜ＤＴＭＲ＜１）を示す情報を保持する。また、ＴＭＲ粒度特性の項目は、後述するようにＴＭＲの粒度によって変化するＳＥＲ低減率の特性を示す情報を保持する。このＴＭＲ粒度特性は、例えば、後述する図３に示すようなグラフによって示され、これを近似した関数や、ＴＭＲ粒度毎のＳＥＲ低減率からなるテーブル等の形式で保持することができる。
【００４８】
ここで、ＴＭＲの粒度とは、上述したように、ＴＭＲブロックにおいてＴＭＲを適用する単位回路の大きさを示し、ＴＭＲ化する前の対象の回路全体（ＴＭＲブロック）のサイズ（リソース量）ＳＲＥＦと、ＴＭＲ化する単位回路のサイズ（リソース量）ＳＧＲＡＩＮとの比として、
ＴＭＲ粒度ＧＴＭＲ＝ＳＧＲＡＩＮ／ＳＲＥＦ  …（１）
の式で定義する。従って、ＴＭＲ粒度ＧＴＭＲが小さいほどＴＭＲ化する単位回路のサイズが小さいことを示す。
【００４９】
図３は、ＴＭＲの粒度によるＳＥＲ低減率の変化の例を示した図である。グラフの横軸はＴＭＲ粒度ＧＴＭＲであり、縦軸はＳＥＲ低減率ＤＴＭＲ＿ｇｒａｉｎである。このＳＥＲ低減率ＤＴＭＲ＿ｇｒａｉｎは、ＴＭＲ化する前の対象の回路ブロック（ＴＭＲブロック）のソフトエラー率と、ＴＭＲ粒度によって決定されるサイズの回路を単位回路としてＴＭＲ化した場合のソフトエラー率との比を示す情報である。この値は、上述したようにＣＲＡＭにおけるＭＣＵ（マルチセルアップセット）の影響を考慮するため、例えば、ＴＭＲ粒度毎にソフトエラー加速試験によって得られた実測値に基づいて求める。実測値が無い条件については計算値を使用してもよい。
【００５０】
図３の例に示したように、ＴＭＲ粒度によるＳＥＲ低減率の変化の特性としては、ＴＭＲ粒度ＧＴＭＲを小さくする、すなわちＴＭＲ化する単位回路のサイズを小さくしていくことで、ＴＭＲブロック全体を単位としてＴＭＲ化する場合（ＧＴＭＲ＝１の場合）に比べて、さらにソフトエラー率が低減する（ＤＴＭＲ＿ｇｒａｉｎが小さくなる）という特徴を有する。これは、ＦＰＧＡにおけるソフトエラー率がＣＲＡＭの使用容量に依存しているためであり、対象の回路ブロックをより小さく分割して、それぞれを単位回路としてＴＭＲ化することで、単位回路で使用されるＣＲＡＭ容量を小さくすることができ、その結果ソフトエラー率をさらに低減できるということを示している。
【００５１】
ここで、ＴＭＲ化する単位回路のサイズを小さくするためにユーザ回路をどのように分割するかを決定することは容易ではない。そこで、本実施の形態では、回路ブロックの階層構造における各回路ブロックの単位で単位回路を設定してＴＭＲ化するものとする。具体的には、ＴＭＲブロックからの階層の深さＬ（０〜Ｎ）を指定することによって単位回路とする回路ブロックを特定する。ここで特定された単位回路とする回路ブロックとＴＭＲブロックのそれぞれのサイズに基づいて、上記の（１）式によりＴＭＲ粒度ＧＴＭＲを算出することができる。
【００５２】
例えば、Ｌ＝０とした場合、ＴＭＲ条件で指定されたＴＭＲブロックをそのまま単位回路としてＴＭＲ化する。Ｌ＝１とした場合、ＴＭＲブロックの１レベル下の階層に含まれる全ての回路ブロックをそれぞれ単位回路としてＴＭＲ化する。同様に、Ｌ＝２とした場合は、ＴＭＲブロックの２レベル下の階層に含まれる全ての回路ブロックをそれぞれ単位回路としてＴＭＲ化する。このように、ＴＭＲ化する階層を深くしていく（Ｌを大きくしていく）ことで、ＴＭＲ化する単位回路ブロックのサイズを小さくすることができる。
【００５３】
図４は、階層の深さＬを変えてＴＭＲ化したときの回路構成とＴＭＲ粒度ＧＴＭＲの違いについて例を示した図である。図の上段には、回路ブロックＡ（親ブロック）からなるユーザ回路を示しており、回路ブロックＡは回路ブロックＢ、Ｃ、Ｄ（子ブロック）によって構成されることを示している。なお、回路ブロックＡの回路サイズＳＲＥＦは例えば１００であるものとする。
【００５４】
このユーザ回路に対して回路ブロックＡをＴＭＲブロックとしてＴＭＲを適用すると仮定した場合の例として、図の下段には（ａ）Ｌ＝０でＴＭＲ化した場合と、（ｂ）Ｌ＝１でＴＭＲ化した場合の回路構成の例をそれぞれ示している。（ａ）Ｌ＝０の場合では、ＴＭＲブロックである回路ブロックＡを単位回路としてそのままＴＭＲ化するため、回路ブロックＡが回路ブロックＡ、Ａ’、Ａ”としてＴＭＲ化される。
【００５５】
このとき、ＴＭＲ化する単位回路（回路ブロックＡ）のサイズＳＧＲＡＩＮはＳＲＥＦと同じ１００であるため、上述の（１）式よりＴＭＲ粒度ＧＴＭＲは１．０である。この場合のＳＥＲ低減率ＤＴＭＲは、例えば図２に示したＴＭＲ効果情報ＤＢ１７のＳＥＲ低減率ＤＴＭＲのカラムから直接取得してもよいし、図３に示したＳＥＲ低減率の特性からＴＭＲ粒度ＧＴＭＲが１．０のときのＳＥＲ低減率ＤＴＭＲ＿ｇｒａｉｎとして取得してもよい（図３の例では０．７となる）。
【００５６】
一方、（ｂ）Ｌ＝１の場合では、１レベル下の階層の回路ブロックを単位回路としてＴＭＲ化するため、回路ブロックＢ、Ｃ、Ｄのそれぞれを単位回路としてＴＭＲ化する。すなわち、回路ブロックＢが回路ブロックＢ、Ｂ’、Ｂ”として、回路ブロックＣが回路ブロックＣ、Ｃ’、Ｃ”として、回路ブロックＤが回路ブロックＤ、Ｄ’、Ｄ”としてそれぞれＴＭＲ化される。このとき、図示するように、回路ブロックＢ、Ｃ、Ｄのサイズがそれぞれ異なる場合がある。すなわち、回路ブロックＢ、Ｃ、Ｄについてそれぞれ上述の（１）式によりＴＭＲ粒度ＧＴＭＲを求めた場合、それぞれが異なる値となってしまう。
【００５７】
階層の深さＬを指定することによってＴＭＲ粒度ＧＴＭＲを算出する際に、ＴＭＲ化する単位回路のサイズＳＧＲＡＩＮを決定する方法としては、例えば対象の階層の各回路ブロック（図４の例では回路ブロックＢ、Ｃ、Ｄ）のサイズの平均値をとるなど種々の方法を適宜採用することができる。本実施の形態では、対象の階層の各回路ブロックのうち最もサイズの大きいものを基準としてそのサイズをＳＧＲＡＩＮとし、上述の（１）式によりＴＭＲ粒度ＧＴＭＲを算出するものとする。例えば、図４の例では、回路ブロックＢ、Ｃ、Ｄのうち、最もサイズが大きい回路は回路ブロックＣであるため、回路ブロックＣのサイズをＳＧＲＡＩＮとしてＴＭＲ粒度ＧＴＭＲを算出する。
【００５８】
なお、図３に示したように、ＴＭＲ粒度ＧＴＭＲが小さい（単位回路のサイズが小さい）ほどＳＥＲ低減率ＤＴＭＲ＿ｇｒａｉｎが小さくなる、すなわちソフトエラー率が低減する効果は大きくなる。従って、最もサイズの大きい回路ブロックを基準としてＴＭＲ粒度ＧＴＭＲを算出することは、ＳＥＲ低減率ＤＴＭＲ＿ｇｒａｉｎを大きく見積もる、すなわちソフトエラー率の低減効果について安全サイドで見積もることを意味する。
【００５９】
図４において、最もサイズが大きい回路ブロックＣの回路サイズＳＧＲＡＩＮが５０であるものとすると、上述の（１）式よりＴＭＲ粒度ＧＴＭＲは０．５となり、図３に示したＳＥＲ低減率の特性からＳＥＲ低減率ＤＴＭＲ＿ｇｒａｉｎは０．５となる。このように、図４の例では（ｂ）Ｌ＝１の場合のＴＭＲ化後の回路構成の方が（ａ）Ｌ＝０の場合のＴＭＲ化後の回路構成に比べてよりソフトエラー率を低減できるということを、実設計の前にシミュレートし、確認することができる。
【００６０】
上述したように、本実施の形態では、回路ブロックの階層構造における、ＴＭＲブロックからの階層の深さＬを指定することで、ＴＭＲ化する際の単位回路とする回路ブロックを特定し、ＴＭＲ粒度ＧＴＭＲを算出するものとしているが、可能な場合は直接ＴＭＲ粒度ＧＴＭＲの値を指定してもよい。
【００６１】
なお、上述したように、ＦＰＧＡにおけるソフトエラー対策としてむやみにＴＭＲを適用すると、ソフトエラー率は低減するものの多数決回路の数が増えるなど、回路規模や消費電力などのオーバーヘッドが増大してしまう。そのため、設計者はこれらのトレードオフ設計により、回路構成における最適なＴＭＲの粒度を決定する必要がある。
【００６２】
図５は、本実施の形態のＦＰＧＡ設計支援システム１でのソフトエラー率の計算処理の流れの例について示したフローチャートである。処理を開始すると、まず、ソフトエラー率を計算する対象となるＦＰＧＡで設計されたユーザ回路について、回路情報を入力する（Ｓ０１）。回路情報の入力は、例えば入出力部２０を介して行い、回路構成設計ツール２から出力された回路情報を、ユーザによる手動もしくは実行制御部３０等の制御により自動で読み込むなどして入力する。
【００６３】
次に、ＴＭＲ条件を指定する（Ｓ０２）。ここでは、ＴＭＲの適用を仮定する回路ブロック（ＴＭＲブロック）と、ＴＭＲの粒度に係る情報を指定する。上述したように、ＴＭＲの粒度ＧＴＭＲはＴＭＲ化する単位回路の大きさを示すが、本実施の形態では、単位回路とする回路ブロックのＴＭＲブロックからの階層の深さＬ（０〜Ｎ）を指定することによって内部的にＴＭＲの粒度を算出するものとする。なお、ＴＭＲブロックは１つに限らず複数指定してもよいし、ＴＭＲ化を考慮しない場合は指定しなくてもよい。ＴＭＲ条件の指定は、例えば入出力部２０を介して行い、ユーザが手動で入力したりＴＭＲ条件が記録されたファイルを読み込ませたりして入力することができる。実行制御部３０の制御によりＴＭＲ条件が記録されたファイルを自動で読み込むようにしてもよい。
【００６４】
次に、対象のＦＰＧＡにおけるＣＲＡＭのソフトエラー率を計算する（Ｓ０３）。ここでは、例えば、ＣＲＡＭ＿ＳＥＲ計算部１２により、ＦＰＧＡ情報ＤＢ１５から取得したＦＰＧＡの基本情報などに基づいて、ＦＰＧＡのＣＲＡＭの容量ＣＣＲＡＭと、ＣＲＡＭの単位ビットあたりのソフトエラー率ＳＥＲＲＥＦと、ＣＲＡＭの実使用率ｋとを乗算し、ＣＲＡＭ全体のソフトエラー率ＳＥＲＣＲＡＭを計算する。
【００６５】
次に、対象のユーザ回路における回路ブロック毎のＦＰＧＡのリソースの使用率を計算する（Ｓ０４）。ここでは、例えば、ＦＰＧＡリソース使用率計算部１３により、回路構成設計ツール２から取得したＦＰＧＡの回路情報や、ＦＰＧＡ情報ＤＢ１５から取得したＦＰＧＡの内蔵リソース数などの情報に基づいて、ＦＰＧＡの内蔵リソース数と、回路情報から取得した各回路ブロックにおけるリソース使用数との比として、各回路ブロックｎにおけるＦＰＧＡリソース使用率（論理リソース使用率Ｕｎ、配線リソース使用率Ｗｎ、メモリリソース使用率Ｍｎ）をそれぞれ計算する。
【００６６】
次に、対象のユーザ回路における回路ブロック毎のソフトエラー率を計算する（Ｓ０５）。ここでは、例えば、回路ブロックＳＥＲ計算部１１により、回路構成設計ツール２から取得したＦＰＧＡの回路情報や、ステップＳ０３で算出したＣＲＡＭ全体のソフトエラー率ＳＥＲＣＲＡＭ、ステップＳ０４で算出した各回路ブロックのＦＰＧＡリソース使用率（論理リソース使用率Ｕｎ、配線リソース使用率Ｗｎ、メモリリソース使用率Ｍｎ）、ＦＰＧＡ情報ＤＢ１５から取得した内部メモリの容量および内部メモリの単位ビットあたりのソフトエラー率と、リソースのＣＲＡＭ依存率（論理リソース依存率αｕ、配線リソース依存率αｗ、メモリリソース依存率αｍ）などの情報に基づいて、回路ブロック毎のソフトエラー率を計算する。
【００６７】
本実施の形態では、ＦＰＧＡリソース使用率とＣＲＡＭの使用容量とは比例関係にあるものと仮定し、論理／配線／メモリの各リソースの使用率（Ｕｎ、Ｗｎ、Ｍｎ）に、対応するＣＲＡＭ依存率（αｕ、αｗ、αｍ）とＣＲＡＭ全体のソフトエラー率ＳＥＲＣＲＡＭを乗算して各リソースについて総和することで回路ブロックのソフトエラー率を計算する。さらに、内部メモリが含まれる回路ブロックについては、内部メモリ容量と内部メモリの単位ビット当たりのソフトエラー率とを乗算して得られる内部メモリのソフトエラー率を加算することで、回路ブロック毎のソフトエラー率を計算する。
【００６８】
次に、ＴＭＲ条件で指定されたＴＭＲブロックのソフトエラー率を計算する（Ｓ０６）。ここでは、例えば、各ＴＭＲブロックについて、ＴＭＲブロックＳＥＲ計算部１４により、ステップＳ０５で算出したソフトエラー率と、ＴＭＲ効果情報ＤＢ１７から取得した、指定されたＴＭＲ粒度ＧＴＭＲでＴＭＲを適用した場合のＳＥＲ低減率ＤＴＭＲ＿ｇｒａｉｎとを乗算することで、ＴＭＲブロックのソフトエラー率を計算する。
【００６９】
最後に、対象のユーザ回路全体でのソフトエラー率を計算する（Ｓ０７）。ここでは、例えば、ＳＥＲ計算部１０により、ステップＳ０５で算出した回路ブロック毎のソフトエラー率のうちのＴＭＲ条件で指定されたＴＭＲブロック以外の回路ブロックのソフトエラー率と、ステップＳ０６で算出したＴＭＲブロックのソフトエラー率とを合算し、ユーザ回路全体でのソフトエラー率を計算する。
【００７０】
図６は、ＦＰＧＡ設計支援システム１が入出力部２０を介して表示する画面の例について示した図である。図６（ａ）に示すようなメインウィンドウ２１上に、回路構成設計ツール２等から読み込んだ回路ブロックの階層構造を表示する表２２や、回路構成設計ツール２等から回路情報を読み込むためのボタン２３、ユーザ回路のソフトエラー率の計算を開始するためのボタン２４などを有する。表２２には、図５に示した一連の処理によって計算された回路ブロック毎のソフトエラー率（“ＳＥＲ”カラム）や、対象の回路ブロックをＴＭＲ化した場合に低減されるソフトエラー率（“低減ＳＥＲ”カラム）の情報などを階層構造に合わせて表示する。
【００７１】
また、このユーザインタフェースを介してユーザがＴＭＲ条件を指定できるようにしてもよい。例えば、メインウィンドウ２１の表２２上で、ユーザがＴＭＲブロックとする回路ブロックにチェックを付し（“ＴＭＲ”カラム）、さらにＴＭＲ粒度ＧＴＭＲを算出するために、ＴＭＲ化する際の単位回路とする回路ブロックのＴＭＲブロックからの階層の深さＬを指定できるようにする（“深さ”カラム）。同様な指定を、例えば図６（ｂ）に示すような別の条件指定用ウィンドウ２５などを介して行うようにしてもよい。
【００７２】
ユーザは、図６に示したような画面に表示されるソフトエラー率の計算結果を見て、指定したＴＭＲ条件の良否を判定する。例えば、ユーザ回路全体としてソフトエラー率が所定の条件を満たす場合は、指定したＴＭＲ条件を必要な設計条件として決定する。所定の条件を満たさない場合は、当該画面から新たなＴＭＲ条件を指定した後、再度ソフトエラー率の計算を行うことができる。
【００７３】
なお、上述したように、ソフトエラー率の計算結果を図６に示したような画面に出力するのに替えて、もしくはこれに加えてデータファイル等の形式で出力するようにしてもよい。また、ＴＭＲ条件の指定も、ユーザが図６に示したような画面から手動で入力するのではなく、ＴＭＲ条件が記録されたファイルを読み込ませて入力するようにしてもよい。
【００７４】
以上に説明したように、本発明の実施の形態１であるＦＰＧＡ設計支援システム１、および当該システム上で実行されるソフトエラー率の計算方法によれば、ＦＰＧＡリソースの使用率と、そのＦＰＧＡが搭載するＣＲＡＭのソフトエラー率の情報を利用することで、ユーザ回路全体のソフトエラー率を簡易的に計算し、さらに、実測で得られたＴＭＲ化によるＳＥＲ低減率の情報を利用して、設計されたユーザ回路にＴＭＲを適用したときのソフトエラー率を見積もる手段を提供することができる。
【００７５】
また、このとき、ＴＭＲ化する回路の粒度によってソフトエラー率が変化する特徴に着目することで、設計されたユーザ回路にＴＭＲを適用したときのソフトエラー率を適切に見積もることができ、ＦＰＧＡのソフトエラーに対する最適な耐性設計が可能となる。
【００７６】
＜実施の形態２＞
本発明の実施の形態２であるＦＰＧＡ設計支援システムの例は、上述した実施の形態１のＦＰＧＡ設計支援システム１を基礎として、ＦＰＧＡによるユーザ回路が所定のソフトエラー率を実現するために必要となるＴＭＲ条件を決定することができる解析手法を実現するものである。
【００７７】
図７は、本実施の形態のＦＰＧＡ設計支援システム１での所定のソフトエラー率を実現するために必要となるＴＭＲ条件を決定する処理の流れの例について示したフローチャートである。処理を開始すると、まず、ソフトエラー率を計算する対象となるＦＰＧＡで設計されたユーザ回路について、回路情報を入力する（Ｓ１１）。ここでの処理は、上述した実施の形態１における図５のステップＳ０１と同様である。
【００７８】
次に、対象のＦＰＧＡにおけるＣＲＡＭのソフトエラー率を計算する（Ｓ１２）。ここでの処理は、上述した実施の形態１における図５のステップＳ０３と同様である。次に、対象のユーザ回路における回路ブロック毎のＦＰＧＡのリソースの使用率を計算する（Ｓ１３）。ここでの処理は、上述した実施の形態１における図５のステップＳ０４と同様である。次に、対象のユーザ回路における回路ブロック毎のソフトエラー率を計算する（Ｓ１４）。ここでの処理は、上述した実施の形態１における図５のステップＳ０５と同様である。
【００７９】
次に、対象のユーザ回路全体でのソフトエラー率を計算する（Ｓ１５）。ここでは、例えば、ＳＥＲ計算部１０により、ＴＭＲ化を考慮せずに、ステップＳ１４で算出した回路ブロック毎のソフトエラー率を合算し、ユーザ回路全体でのソフトエラー率を計算する。次に、ステップＳ１５で算出したユーザ回路全体でのソフトエラー率が所定の目標値よりも小さいか否かを判定する（Ｓ１６）。ここでは、例えば、実行制御部３０によってこの判断を行い、ソフトエラー率が、入出力部２０を介して予めユーザにより指定された目標値を下回っている（条件を満たしている）場合は、ＴＭＲ化は不要ということで、各回路ブロックのソフトエラー率の計算結果を図６に示した画面により出力するなどして処理を終了する。
【００８０】
一方、ステップＳ１６においてユーザ回路全体でのソフトエラー率が所定の目標値以上となっている（条件を満たしていない）場合は、ＴＭＲ化を考慮するためにＴＭＲ条件を指定する（Ｓ１７）。ここでの処理は、上述した実施の形態１における図５のステップＳ０２と同様である。次に、ＴＭＲ条件で指定されたＴＭＲブロックのソフトエラー率を計算する（Ｓ１８）。ここでの処理は、上述した実施の形態１における図５のステップＳ０６と同様である。次に、対象のユーザ回路全体でのソフトエラー率を計算する（Ｓ１９）。ここでの処理は、上述した実施の形態１における図５のステップＳ０７と同様である。
【００８１】
次に、ステップＳ１９で算出したＴＭＲ化を考慮したユーザ回路全体でのソフトエラー率が所定の目標値よりも小さいか否かを判定する（Ｓ２０）。ここでは、例えば、ステップＳ１６と同様に実行制御部３０によってこの判断を行い、ソフトエラー率が、入出力部２０を介して予めユーザにより指定された目標値を下回っている（条件を満たしている）場合は、ステップＳ１７で指定されたＴＭＲ条件を必要な設計条件として決定し、処理を終了する。
【００８２】
一方、ステップＳ２０においてユーザ回路全体でのソフトエラー率が所定の目標値以上となっている（条件を満たしていない）場合は、ステップＳ１７に戻ってＴＭＲ条件を再指定し、ユーザ回路全体でのソフトエラー率が所定の目標値を下回る（条件を満たす）までステップＳ１７〜Ｓ２０の処理を繰り返す。本実施の形態では、このように、ＳＥＲ計算部１０にて算出されたユーザ回路全体でのソフトエラー率が条件を満たすまでＴＭＲ条件指定とソフトエラー率の再計算の処理を繰り返し、ソフトエラー率の条件を満たすＴＭＲ条件を決定できることを特徴とする。上記の一連の処理を、例えば実行制御部３０によって制御して実行することで、ソフトエラー率の条件を満たすＴＭＲ条件を自動的に探索することも可能である。
【００８３】
ステップＳ１７でのＴＭＲ条件の指定（再指定）においてどのような条件を指定するかについては、種々の手法が考えられるが、例えば、ステップＳ１７において最初にＴＭＲ条件を指定する際に、ソフトエラー率の低減効果が最大となるＴＭＲ条件を指定するようにしてもよい。すなわち、ＴＭＲ条件において、ＴＭＲブロックとしてユーザ回路全体を指定し、ＴＭＲ化する際の単位回路を特定する階層の深さＬに最大値を指定して、最も深い階層の回路ブロックを単位回路とする。このときのユーザ回路全体でのソフトエラー率が、ステップＳ２０において所定の目標値以上となっている（条件を満たしていない）場合は、他のどのようなＴＭＲ条件を指定してもソフトエラー率が所定の目標値を下回らないことが分かる。従って、以降のＴＭＲ条件の探索が無用となることが早期に判断できる。
【００８４】
なお、上述したように、ＦＰＧＡにおけるソフトエラー対策としてむやみにＴＭＲを適用すると、ソフトエラー率は低減するものの回路規模や消費電力などのオーバーヘッドが増大してしまう。そのため、設計者はこれらのトレードオフ設計により、回路構成における最適なＴＭＲ条件を決定する必要がある。
【００８５】
例えば、図７の一連の処理によってソフトエラー率の条件を満たすものとして得られたＴＭＲ条件の情報を、入出力部２０を介して回路構成設計ツール２にフィードバックし、回路構成設計ツール２によってＴＭＲ化した状態での回路情報を再度生成して、オーバーヘッドの増大分を検証する。これにより、ソフトエラー率の低減率およびオーバーヘッドの増大分の双方が所定の条件を満たすＴＭＲ条件を決定することができる。
【００８６】
もしくは、例えば、実行制御部３０での制御により図７の一連の処理を繰り返し実行して、ソフトエラー率の条件を満たす全てのＴＭＲ条件を取得する。取得した各ＴＭＲ条件をそれぞれ入出力部２０を介して回路構成設計ツール２にフィードバックして、回路構成設計ツール２によってＴＭＲ化した状態での回路情報を生成する。生成された各回路情報について、ソフトエラー率の低減効果とオーバーヘッドの増大分のそれぞれに所定の重み付けをして全体での効果を数値化することで、トレードオフを考慮した最適なバランスとなるＴＭＲ条件を決定するということも可能である。
【００８７】
以上に説明したように、本発明の実施の形態２であるＦＰＧＡ設計支援システム１によれば、ＦＰＧＡの設計段階において、ユーザ回路に対してＴＭＲを適用した場合のソフトエラー率を事前に適切に見積もることができるため、ユーザ回路のソフトエラー耐性を目標レベルまで向上させるために必要なＴＭＲ条件を容易に決定することができる。これにより、ＴＭＲ化に伴うオーバーヘッドの増大とのトレードオフ設計を容易に行うことができる。
【００８８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００８９】
また、上述した各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。なお、上記の各実施の形態ではＦＰＧＡ設計支援システム１を情報処理装置上で構築し、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現するものとしているが、これに限られない。例えば、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
【００９０】
また、上記の各実施の形態では、ＴＭＲを適用した場合のソフトエラー率を適切に見積もるもしくは計算することで設計を支援する対象の半導体集積回路として、地上における環境放射線の影響によって発生するソフトエラーの拡大の影響が問題視されているＦＰＧＡを対象としている。これに対し、他のプログラマブルロジックデバイスであっても、ＦＰＧＡと同様もしくは類似の構成や仕組みを有し、例えば大容量化のさらなる進展などによりソフトエラー率の影響が大きくなり、これを適切に見積もるもしくは計算することが必要となったものなどについても対象に含めることが可能である。
【産業上の利用可能性】
【００９１】
本発明は、ＦＰＧＡにおいてソフトエラーに対する耐性向上を図る設計を支援するＦＰＧＡ設計支援システムおよびＦＰＧＡ設計支援方法ならびにＦＰＧＡ設計支援プログラムに利用可能である。
【符号の説明】
【００９２】
１…ＦＰＧＡ設計支援システム、２…回路構成設計ツール、
１０…ソフトエラー率設計部、１１…回路ブロックソフトエラー率計算部、１２…ＣＲＡＭ＿ＳＥＲ計算部、１３…ＦＰＧＡリソース使用率計算部、１４…ＴＭＲブロックソフトエラー率計算部、１５…ＦＰＧＡ情報ＤＢ、１６…回路ＳＥＲ計算結果ＤＢ、１７…ＴＭＲ効果情報ＤＢ、
２０…入出力部、２１…メインウィンドウ、２２…表、２３、２４…ボタン、２５…条件指定用ウィンドウ、
３０…実行制御部。
【図１】
2012221077.tif 000003
【図２】
2012221077.tif 000004
【図３】
2012221077.tif 000005
【図４】
2012221077.tif 000006
【図５】
2012221077.tif 000007
【図６】
2012221077.tif 000008
【図７】
2012221077.tif 000009