JP2012221077A - Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム - Google Patents
Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム Download PDFInfo
- Publication number
- JP2012221077A JP2012221077A JP2011084175A JP2011084175A JP2012221077A JP 2012221077 A JP2012221077 A JP 2012221077A JP 2011084175 A JP2011084175 A JP 2011084175A JP 2011084175 A JP2011084175 A JP 2011084175A JP 2012221077 A JP2012221077 A JP 2012221077A
- Authority
- JP
- Japan
- Prior art keywords
- tmr
- circuit
- fpga
- soft error
- error rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】FPGAの設計段階で、ユーザ回路にTMRを適用したときのSERを見積もることができるFPGA設計支援システムを提供する。
【解決手段】TMRを適用した場合のSER低減率を含む情報を保持するTMR効果情報DB17と、FPGAが有するCRAM全体のSERを計算するCRAM_SER計算部12と、各回路ブロックのFPGAリソースの使用率を計算するFPGAリソース使用率計算部13と、CRAM全体のSERおよび各回路ブロックのFPGAリソースの使用率に基づいて、回路ブロック単位のSERを計算する回路ブロックSER計算部11と、TMRブロックについてSERおよびTMRを適用した場合のSERの低減率に基づいてTMRブロックのSERを計算するTMRブロックSER計算部14と、各回路ブロックのSERおよび各TMRブロックのSERに基づいてユーザ回路全体のSERを計算するSER計算部10とを有する。
【選択図】図1
【解決手段】TMRを適用した場合のSER低減率を含む情報を保持するTMR効果情報DB17と、FPGAが有するCRAM全体のSERを計算するCRAM_SER計算部12と、各回路ブロックのFPGAリソースの使用率を計算するFPGAリソース使用率計算部13と、CRAM全体のSERおよび各回路ブロックのFPGAリソースの使用率に基づいて、回路ブロック単位のSERを計算する回路ブロックSER計算部11と、TMRブロックについてSERおよびTMRを適用した場合のSERの低減率に基づいてTMRブロックのSERを計算するTMRブロックSER計算部14と、各回路ブロックのSERおよび各TMRブロックのSERに基づいてユーザ回路全体のSERを計算するSER計算部10とを有する。
【選択図】図1
Description
本発明は、半導体集積回路の設計技術に関し、特に、FPGA(Field-Programmable Gate Array)においてソフトエラーに対する耐性向上を図る設計を支援するFPGA設計支援システムおよびFPGA設計支援方法ならびにFPGA設計支援プログラムに適用して有効な技術に関するものである。
半導体集積回路の微細化および高集積化に伴い、地上における環境放射線(アルファ線や中性子線など)の影響によって発生するソフトエラーの影響が拡大している。特に近年では、大容量化が進むFPGA(Field-Programmable Gate Array)におけるソフトエラーが問題視されている。
FPGAを代表とするプログラマブルロジックデバイスは、ユーザが設計した論理回路(以下では“ユーザ回路”と記載する場合がある)の構成情報をデバイス内部のコンフィギュレーションメモリ(以下では“CRAM(Configuration RAM)”と記載する場合がある)に記憶する。FPGAにおけるソフトエラーは大きく二つの現象に分けられる。ひとつは内部メモリやフリップフロップに保持されているデータが放射線の影響によって反転しまうことで誤作動を引き起こす現象である。もうひとつは、CRAMにおいて、特に回路情報が記憶されたビットにおいて放射線の影響によってデータが反転してしまうことで、回路構成自体が破壊されて誤作動を引き起こす現象である(例えば、特許文献1(特表2005−505827号公報)など参照)。
このような背景の下、設計段階からFPGAのソフトエラー率(以下では“SER(Soft Error Rate)”と記載する場合がある)を見積もることが重要となってきているが、現在、設計段階でFPGAのソフトエラー率を見積もる手法は確立されていない。
SRAM(Static Random Access Memory)のソフトエラー率を製品設計段階で見積もる技術としては、例えば、特開2008−66598号公報(特許文献2)に以下のようなソフトエラー率の計算手法が記載されている。すなわち、MISFET(Metal-Oxide-Semiconductor Field-Effect Transistor)で構成される記憶回路又は情報保持回路の情報記憶ノード拡散層面積とソフトエラー率との関係を複数の情報記憶ノード電圧Vnをパラメータとして測定した測定結果を使用し、同一情報記憶ノード電圧Vnにおけるソフトエラー率の情報記憶ノード面積依存性を表す第1の数式を導出する。そして、測定結果から同一情報記憶ノード面積Scにおけるソフトエラー率の情報記憶ノード電圧依存性の関係を第1の数式に代入して第2の数式を導出する。求めたい記憶回路又は情報保持回路の情報記憶ノード面積及び情報記憶ノード電圧を第2の数式に代入すれば、そのソフトエラー率を計算することができる。
また、例えば、特開2006−134938号公報(特許文献3)には、半導体デバイスの設計に用いる複数のセルが登録されたセルライブラリに、各セルのソフトエラー率を登録するステップと、被検証対象である半導体デバイスに含まれる各セルの個数をカウントするステップと、各セルについて個数とソフトエラー率との積を求め、この積を全てのセルについて足し合わせて、半導体デバイスのソフトエラー率を検証するステップとを有し、ロジック回路を含むロジックデバイス全体についてソフトエラー率を高速・簡単に検証する手法が記載されている。
一方、FPGAにおけるソフトエラー対策として、論理回路を三重化し、出力の多数決を取ることで信頼性を向上させるTMR(Triple Modular Redundancy:三重化多数決回路)の技術が広く知られている。TMRは三重化された回路のうち、二つ以上の回路がエラーにならない限りシステムは正常動作を維持するため、ソフトエラー率を低減することができる。FPGAベンダのザイリンクス社からは、専用の設計アプリケーションの付加機能として、ユーザが設計した回路を自動的にTMR化するツールが提供されている(非特許文献1参照)。
"Xilinx, Inc.", "Xilinx TMRTool User Guide (TMRTool Software Version 9.2i)", UG156(V2.2), September 12, 2007
FPGAにおけるソフトエラー対策としてむやみにTMRを適用すると、ソフトエラー率は低減するものの、回路規模や消費電力が増大してしまう。そのため、設計者はこれらのトレードオフ設計により、回路構成における最適なTMRの適用範囲を決定する必要がある。
一方で、FPGAでは、TMRを適用しても期待されるソフトエラーの低減効果が得られない場合がある。FPGAでは前述したように回路情報をCRAMに記憶するが、CRAMのプロセス微細化に伴い、放射線等の影響で一度に複数ビットが反転してしまうマルチセルアップセット(Multi-Cell Upset:MCU)と呼ばれる現象がCRAMにおいても増加している。このMCUによってCRAM上に複数ビットの反転が発生してしまうと、MCUの発生確率でTMRが破壊されることになるため、期待したTMRの効果が低減してしまう。そのため、TMR適用時のソフトエラー低減効果を正しく見積もれず、TMR適用に伴うトレードオフ設計での課題となっていた。
そこで本発明の目的は、FPGAの設計段階で、設計されたユーザ回路にTMRを適用したと仮定したときのソフトエラー率を見積もることができ、また、TMRを適用して設計されたユーザ回路のソフトエラー率を計算することができるFPGA設計支援システムおよびFPGA設計支援方法ならびにFPGA設計支援プログラムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
本発明の代表的な実施の形態によるFPGA設計支援システムは、FPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率を計算するFPGA設計支援システムであって、以下の特徴を有するものである。
すなわち、FPGA設計支援システムは、FPGAの種別毎にTMRを適用した場合のソフトエラー率の低減率を含む情報を保持するTMR効果情報データベースと、前記FPGAが有するCRAM全体のソフトエラー率を計算するCRAM_SER計算部と、前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を計算するFPGAリソース使用率計算部と、前記CRAM_SER計算部によって算出された前記CRAM全体のソフトエラー率、および前記FPGAリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する回路ブロックSER計算部とを有する。
さらに、前記ユーザ回路の回路ブロックのうちTMRの適用を仮定するもしくは既にTMR化されている回路ブロックとしてTMR条件において指定されたTMRブロックについて、前記回路ブロックSER計算部によって算出されたソフトエラー率、および前記TMR効果情報データベースから取得した、前記FPGAで設計された前記ユーザ回路にTMRを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記TMRブロックのソフトエラー率を計算するTMRブロックSER計算部と、前記回路ブロックSER計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記TMRブロックSER計算部によって計算された前記各TMRブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算するSER計算部とを有することを特徴とするものである。
また、本発明は、FPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率を計算するFPGA設計支援方法、ならびにコンピュータをFPGA設計支援システムとして機能させるプログラムにも適用することができる。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明の代表的な実施の形態によれば、FPGAの設計段階で、設計されたユーザ回路にTMRを適用したと仮定したときのソフトエラー率を見積もることができ、また、TMRを適用して設計されたユーザ回路のソフトエラー率を計算することができる。また、TMR化する回路の粒度(TMR化する単位回路の大きさ)によってソフトエラー率が変化する特徴に着目することで、TMRを適用した場合のソフトエラー率を適切に見積もることが可能となる。これらにより、TMRを適用した場合のソフトエラー率の低減効果を適切に見積もることができるため、FPGAのソフトエラーに対する最適な耐性設計が可能となる。
また、サーバやルータ、ストレージ、制御システムなどの高信頼性機器に搭載されるFPGAの設計に適用することで、これらの機器の信頼性を向上させるとともに、設計コストおよび保守コストを下げる効果を得ることができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
<実施の形態1>
以下では、FPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率(SER)を適切に見積もることを可能とするFPGA設計支援システムの例について説明する。図1は、本発明の実施の形態1であるFPGA設計支援システムの構成例の概要について示した図である。
以下では、FPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率(SER)を適切に見積もることを可能とするFPGA設計支援システムの例について説明する。図1は、本発明の実施の形態1であるFPGA設計支援システムの構成例の概要について示した図である。
FPGA設計支援システム1は、例えば、一般的なサーバやPC(Personal Computer)等の情報処理装置によって構成され、ソフトウェアによって実装されるSER計算部10、入出力部20、実行制御部30などの各部を有する。また、同一もしくは他の情報処理装置上で稼働する回路構成設計ツール2との間で回路情報の授受を行うことができる。
この回路構成設計ツール2は、例えば、FPGAメーカやサードパーティなどから一般的に提供される設計環境であり、例えば、HDL(Hardware Description Language)などの言語によるデザイン入力・修正、論理合成、配置配線、シミュレーションによる各種検証などの機能を有し、FPGAによってユーザが設計した回路についての回路情報を出力する公知のツールである。なお、例えば上述したザイリンクス社が提供する設計ツールのように、ユーザ回路に対して指定された部分を自動的にTMR化して回路情報を出力する機能を有していればより望ましい。
ここで、回路情報とは、通常のFPGA設計工程において配置配線が終了した後の設計情報のことを指し、当該ユーザ回路をプログラミングするFPGAの型番や、回路ブロックの階層構成、FPGAの内部で使用されるフリップフロップ、配線、メモリなどのリソースの数と、それらの物理的な配置位置を示す情報が含まれている。また、回路ブロックとは、ユーザによって設計された任意の機能を実現する論理回路の単位を表す。回路ブロックはさらに下位の回路ブロックを含んで構成される場合があり、この場合は回路ブロックが階層構造を有することになる。
また、FPGAリソースには、論理リソースとメモリリソース、配線リソースの情報が含まれる。論理リソースとは、FPGA内部の論理ブロックに配置されているフリップフロップやルックアップテーブル、演算器などを指す。配線リソースは、論理ブロックの接続やクロックの分配に使用される配線や、配線間の接続を行うスイッチマトリクスなどを指す。メモリリソースはRAM(Random Access Memory)などからなる内部メモリを指す。
FPGA設計支援システム1において、SER計算部10は、対象のFPGAについてユーザ回路における回路ブロック毎にソフトエラー率を計算して合算することで、ユーザ回路全体でのソフトエラー率を計算するとともに、指定されたTMR条件に基づいてユーザ回路をTMR化した場合のソフトエラー率を計算する。
ここで、TMR条件とは、FPGA設計支援システム1においてユーザ回路へのTMRの適用を仮定した場合のソフトエラー率を計算するための情報であり、例えば、TMRの適用を仮定する回路ブロック(以下では“TMRブロック”と記載する場合がある)を特定する情報や、後述するTMRの粒度(TMR化する単位回路の大きさ(細かさ))に係る情報が含まれる。TMRブロックは複数指定してもよい。また、TMRの適用を仮定する回路ブロックだけではなく、既にTMR化されている回路ブロックであってもよい。TMR条件は、例えば、ユーザもしくは後述する実行制御部30によって入出力部20を介してSER計算部10に入力される。
SER計算部10は、例えば、回路ブロックSER計算部11、TMRブロックSER計算部14などの各部と、対象のFPGAデバイスの基本情報を保持するFPGA情報データベース(DB)15、および回路ブロックSER計算部11やTMRブロックSER計算部14によって計算されたソフトエラー率に係る情報を保持する回路SER計算結果データベース(DB)16などのデータを有する。
回路ブロックSER計算部11は、対象のFPGAで設計されたユーザ回路における各回路ブロックについてのソフトエラー率を計算(見積もり)し、計算結果を回路情報毎およびその中の回路ブロック毎に回路SER計算結果DB16に記録する。この回路ブロックSER計算部11は、さらに例えば、FPGA情報DB15の内容に基づいて回路ブロック毎のソフトエラー率を計算するために必要な情報を計算する、CRAM_SER計算部12、FPGAリソース使用率計算部13などの各部によって構成される。
ここで、FPGA情報DB15は、対象のFPGAデバイスのソフトエラー率を計算するために必要なデバイスの基本情報を保持する。この基本情報には、例えば、対象のFPGAのメーカや型番などのFPGAの種別を特定する情報、FPGAに内蔵されているリソース数、内部メモリおよびCRAMの容量、内部メモリおよびCRAMの単位ビット当たりのソフトエラー率(SER)、CRAMの実使用率、リソース毎のCRAM依存率などの項目が含まれる。これらの情報は、例えば、回路構成設計ツール2から取得したFPGAの回路情報から抽出したり、ユーザが直接値を設定・登録したりして予め用意しておく。
例えば、CRAMの単位ビット当たりのソフトエラー率SERREFは、FPGAの製造テクノロジやFPGAメーカのシリーズなどによって異なり得る。そのため、例えば、対象のFPGAの型番に合わせてFPGAメーカから公表されている値や、ソフトエラー加速試験等によって得られた実測値などをユーザが登録して使用するものとする。CRAMの実使用率kは、FPGA内部のCRAMの総容量に対する、回路情報を書き込んだときに実際に使われるCRAMの容量の割合を示した値であり、0<k<1の範囲の値が用いられる。
回路ブロックSER計算部11のCRAM_SER計算部12は、FPGA情報DB15から取得したCRAMの容量、CRAMの単位ビット当たりのソフトエラー率、CRAMの実使用率などの情報に基づいて、対象のFPGAにおけるCRAM全体のソフトエラー率を計算する。計算結果は、回路ブロックSER計算部11に受け渡す。
FPGAリソース使用率計算部13は、回路構成設計ツール2から取得したFPGAによるユーザ回路の回路情報や、FPGA情報DB15から取得した対象のFPGAに内蔵されているリソース数などの情報に基づいて、対象のユーザ設計回路における各回路ブロックのFPGAリソースの使用率を計算する。計算結果は、回路ブロックSER計算部11に受け渡す。
回路ブロックSER計算部11は、回路構成設計ツール2から取得したFPGAによるユーザ回路の回路情報や、CRAM_SER計算部12によって算出したCRAM全体のソフトエラー率、FPGAリソース使用率計算部13によって算出した各回路ブロックのFPGAリソースの使用率、およびFPGA情報DB15から取得したリソース毎のCRAM依存率などの情報に基づいて、回路ブロック単位のソフトエラー率を計算する。さらに、内部メモリが含まれる回路ブロックについては、FPGA情報DB15から取得した内部メモリ容量と、内部メモリの単位ビット当たりのソフトエラー率とを乗算した値を加算することで、回路ブロック単位のソフトエラー率を計算する。計算された回路ブロック単位のソフトエラー率の情報は、回路SER計算結果DB16に記録する。
なお、回路ブロックSER計算部11は、回路ブロック毎のソフトエラー率を、階層構造となっている各階層の全ブロックについてそれぞれ計算してもよい。もしくは、最下位層の回路ブロックについてのみソフトエラー率を計算し、上位の階層の回路ブロックのソフトエラー率は、これに含まれる下位階層の回路ブロックのソフトエラー率の和として求めてもよい。
回路ブロックSER計算部11は、ユーザ回路の各回路ブロックに対してTMR化を考慮しない(TMRの適用を仮定しない)状態でのソフトエラー率を計算する。従って、ユーザ回路がすでにTMR化された回路ブロックを有している場合は、TMR化する前の単位回路を対象としてソフトエラー率を計算するものとする。これにより、当該部分についてもTMR化によるソフトエラー率の低減効果がどれくらいであるかを把握することが可能となる。
SER計算部10のTMRブロックSER計算部14は、入出力部20を介してSER計算部10に入力されたTMR条件に基づいてTMRブロックの判定を行い、TMRブロックのソフトエラー率(TMRを適用した場合のソフトエラー率)を計算する。そのためにFPGAの種別毎のTMR化によるソフトエラー率の低減率の情報を保持するTMR効果情報データベース(DB)17を有する。ソフトエラー率の計算結果は回路SER計算結果DB16の該当の回路ブロックのレコードに追加・更新するなどにより記録する。
TMRブロックのソフトエラー率の計算に際しては、まず入力されたTMR条件とFPGA情報DB15に保持された回路情報に基づいて、後述するTMRの粒度GTMRを計算する。このTMR粒度GTMRと、FPGA情報DB15から取得した対象のFPGAの種別を特定する情報とに基づいて、対象のFPGAで設計されたユーザ回路にTMR粒度GTMRでTMRを適用した場合のSER低減率DTMRの情報をTMR効果情報DB17から取得する。このSER低減率DTMRと、回路SER計算結果DB16に保持された対象の回路ブロックのソフトエラー率の値とを乗算することで、TMRブロックのソフトエラー率を計算する。
SER計算部10は、回路SER計算結果DB16を参照して、回路ブロックSER計算部11およびTMRブロックSER計算部14によって計算された各回路ブロック(TMRブロックとそれ以外の非TMRブロック)のソフトエラー率を合算することで、ユーザ回路全体のソフトエラー率を計算する。計算結果は、所定のフォーマットに編集・整形した上で、入出力部20を介してGUI(Graphical User Interface)やデータファイル等の形式でユーザに出力する。
入出力部20は、FPGA設計支援システム1に対する入出力の処理を行い、例えば、他のシステムやツール等と連携してデータの授受を行うインタフェースや、ユーザによる各種操作や入力を受け付けて処理結果を表示するユーザインタフェースなどを有する。入出力部20への入力装置は、一般的なコンピュータに使用されるキーボードやタッチパネル等、その装置種類は問わない。回路構成設計ツール2を含む他のシステムやツールから出力されたデータを入力装置を介さずにネットワーク等を介して直接入力するようにしてもよい。
また、データの出力先についても、一般的なコンピュータに使用されるディスプレイ等の表示装置や、回路構成設計ツール2を含む他のシステムやツール、各種記録媒体上のデータファイル等、その種類は問わない。入出力部20が図示しないWebサーバプログラムを有し、図示しないクライアント端末からユーザがWebブラウザ等を介して入出力のためにアクセスするような構成であってもよい。
実行制御部30は、SER計算部10や入出力部20での処理の実行を制御する。例えば、回路構成設計ツール2から入出力部20を介して回路情報を入力し、さらにTMR条件を指定して、SER計算部10によってソフトエラー率を計算するという一連の処理を、指定するTMR条件を適宜変更して繰り返し実行するよう制御することで、最適なTMR条件を探索するというようなことも可能となる。
なお、図1において、上述した各部の構成による機能の分割や割り当ては一例であり、全体として各部が有する機能を実現できる構成であれば、設計により他の構成による機能分担を採用することも当然可能である。例えば、図1の例では、回路ブロックSER計算部11の内部にCRAM_SER計算部12およびFPGAリソース使用率計算部13の各部が含まれ、また、SER計算部10の内部に回路ブロックSER計算部11およびTMRブロックSER計算部14の各部が含まれる構成としているが、このような包含関係・階層関係は必須ではない。これら各部をそれぞれ他の各部からは独立した別の要素として構成してもよい。また、図中の矢印からなる制御線や情報線等は説明上必要と考えられるものを示しており、実システム上では必ずしも全ての制御線や情報線を有しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
図2は、TMR効果情報DB17のデータ構成と具体的なデータの例を示した図である。TMR効果情報DB17は、FPGAの種別毎のTMR化によるソフトエラー率の低減率の情報を保持するデータベースであり、例えば、メーカ、型番、プロセス、SER低減率DTMR、およびTMR粒度特性などの各項目を有する。メーカ、型番、プロセスの項目は、対象のFPGAの種別を特定する情報を保持しており、FPGA情報DB15に保持されたFPGAの基本情報の内容によって対象のFPGAの種別(TMR効果情報DB17での該当するレコード)を特定することができるものであれば項目はこれらに限られない。
SER低減率DTMRの項目は、TMR化の前後での対象の回路ブロックのソフトエラー率の比(0<DTMR<1)を示す情報を保持する。また、TMR粒度特性の項目は、後述するようにTMRの粒度によって変化するSER低減率の特性を示す情報を保持する。このTMR粒度特性は、例えば、後述する図3に示すようなグラフによって示され、これを近似した関数や、TMR粒度毎のSER低減率からなるテーブル等の形式で保持することができる。
ここで、TMRの粒度とは、上述したように、TMRブロックにおいてTMRを適用する単位回路の大きさを示し、TMR化する前の対象の回路全体(TMRブロック)のサイズ(リソース量)SREFと、TMR化する単位回路のサイズ(リソース量)SGRAINとの比として、
TMR粒度GTMR=SGRAIN/SREF …(1)
の式で定義する。従って、TMR粒度GTMRが小さいほどTMR化する単位回路のサイズが小さいことを示す。
TMR粒度GTMR=SGRAIN/SREF …(1)
の式で定義する。従って、TMR粒度GTMRが小さいほどTMR化する単位回路のサイズが小さいことを示す。
図3は、TMRの粒度によるSER低減率の変化の例を示した図である。グラフの横軸はTMR粒度GTMRであり、縦軸はSER低減率DTMR_grainである。このSER低減率DTMR_grainは、TMR化する前の対象の回路ブロック(TMRブロック)のソフトエラー率と、TMR粒度によって決定されるサイズの回路を単位回路としてTMR化した場合のソフトエラー率との比を示す情報である。この値は、上述したようにCRAMにおけるMCU(マルチセルアップセット)の影響を考慮するため、例えば、TMR粒度毎にソフトエラー加速試験によって得られた実測値に基づいて求める。実測値が無い条件については計算値を使用してもよい。
図3の例に示したように、TMR粒度によるSER低減率の変化の特性としては、TMR粒度GTMRを小さくする、すなわちTMR化する単位回路のサイズを小さくしていくことで、TMRブロック全体を単位としてTMR化する場合(GTMR=1の場合)に比べて、さらにソフトエラー率が低減する(DTMR_grainが小さくなる)という特徴を有する。これは、FPGAにおけるソフトエラー率がCRAMの使用容量に依存しているためであり、対象の回路ブロックをより小さく分割して、それぞれを単位回路としてTMR化することで、単位回路で使用されるCRAM容量を小さくすることができ、その結果ソフトエラー率をさらに低減できるということを示している。
ここで、TMR化する単位回路のサイズを小さくするためにユーザ回路をどのように分割するかを決定することは容易ではない。そこで、本実施の形態では、回路ブロックの階層構造における各回路ブロックの単位で単位回路を設定してTMR化するものとする。具体的には、TMRブロックからの階層の深さL(0〜N)を指定することによって単位回路とする回路ブロックを特定する。ここで特定された単位回路とする回路ブロックとTMRブロックのそれぞれのサイズに基づいて、上記の(1)式によりTMR粒度GTMRを算出することができる。
例えば、L=0とした場合、TMR条件で指定されたTMRブロックをそのまま単位回路としてTMR化する。L=1とした場合、TMRブロックの1レベル下の階層に含まれる全ての回路ブロックをそれぞれ単位回路としてTMR化する。同様に、L=2とした場合は、TMRブロックの2レベル下の階層に含まれる全ての回路ブロックをそれぞれ単位回路としてTMR化する。このように、TMR化する階層を深くしていく(Lを大きくしていく)ことで、TMR化する単位回路ブロックのサイズを小さくすることができる。
図4は、階層の深さLを変えてTMR化したときの回路構成とTMR粒度GTMRの違いについて例を示した図である。図の上段には、回路ブロックA(親ブロック)からなるユーザ回路を示しており、回路ブロックAは回路ブロックB、C、D(子ブロック)によって構成されることを示している。なお、回路ブロックAの回路サイズSREFは例えば100であるものとする。
このユーザ回路に対して回路ブロックAをTMRブロックとしてTMRを適用すると仮定した場合の例として、図の下段には(a)L=0でTMR化した場合と、(b)L=1でTMR化した場合の回路構成の例をそれぞれ示している。(a)L=0の場合では、TMRブロックである回路ブロックAを単位回路としてそのままTMR化するため、回路ブロックAが回路ブロックA、A’、A”としてTMR化される。
このとき、TMR化する単位回路(回路ブロックA)のサイズSGRAINはSREFと同じ100であるため、上述の(1)式よりTMR粒度GTMRは1.0である。この場合のSER低減率DTMRは、例えば図2に示したTMR効果情報DB17のSER低減率DTMRのカラムから直接取得してもよいし、図3に示したSER低減率の特性からTMR粒度GTMRが1.0のときのSER低減率DTMR_grainとして取得してもよい(図3の例では0.7となる)。
一方、(b)L=1の場合では、1レベル下の階層の回路ブロックを単位回路としてTMR化するため、回路ブロックB、C、Dのそれぞれを単位回路としてTMR化する。すなわち、回路ブロックBが回路ブロックB、B’、B”として、回路ブロックCが回路ブロックC、C’、C”として、回路ブロックDが回路ブロックD、D’、D”としてそれぞれTMR化される。このとき、図示するように、回路ブロックB、C、Dのサイズがそれぞれ異なる場合がある。すなわち、回路ブロックB、C、Dについてそれぞれ上述の(1)式によりTMR粒度GTMRを求めた場合、それぞれが異なる値となってしまう。
階層の深さLを指定することによってTMR粒度GTMRを算出する際に、TMR化する単位回路のサイズSGRAINを決定する方法としては、例えば対象の階層の各回路ブロック(図4の例では回路ブロックB、C、D)のサイズの平均値をとるなど種々の方法を適宜採用することができる。本実施の形態では、対象の階層の各回路ブロックのうち最もサイズの大きいものを基準としてそのサイズをSGRAINとし、上述の(1)式によりTMR粒度GTMRを算出するものとする。例えば、図4の例では、回路ブロックB、C、Dのうち、最もサイズが大きい回路は回路ブロックCであるため、回路ブロックCのサイズをSGRAINとしてTMR粒度GTMRを算出する。
なお、図3に示したように、TMR粒度GTMRが小さい(単位回路のサイズが小さい)ほどSER低減率DTMR_grainが小さくなる、すなわちソフトエラー率が低減する効果は大きくなる。従って、最もサイズの大きい回路ブロックを基準としてTMR粒度GTMRを算出することは、SER低減率DTMR_grainを大きく見積もる、すなわちソフトエラー率の低減効果について安全サイドで見積もることを意味する。
図4において、最もサイズが大きい回路ブロックCの回路サイズSGRAINが50であるものとすると、上述の(1)式よりTMR粒度GTMRは0.5となり、図3に示したSER低減率の特性からSER低減率DTMR_grainは0.5となる。このように、図4の例では(b)L=1の場合のTMR化後の回路構成の方が(a)L=0の場合のTMR化後の回路構成に比べてよりソフトエラー率を低減できるということを、実設計の前にシミュレートし、確認することができる。
上述したように、本実施の形態では、回路ブロックの階層構造における、TMRブロックからの階層の深さLを指定することで、TMR化する際の単位回路とする回路ブロックを特定し、TMR粒度GTMRを算出するものとしているが、可能な場合は直接TMR粒度GTMRの値を指定してもよい。
なお、上述したように、FPGAにおけるソフトエラー対策としてむやみにTMRを適用すると、ソフトエラー率は低減するものの多数決回路の数が増えるなど、回路規模や消費電力などのオーバーヘッドが増大してしまう。そのため、設計者はこれらのトレードオフ設計により、回路構成における最適なTMRの粒度を決定する必要がある。
図5は、本実施の形態のFPGA設計支援システム1でのソフトエラー率の計算処理の流れの例について示したフローチャートである。処理を開始すると、まず、ソフトエラー率を計算する対象となるFPGAで設計されたユーザ回路について、回路情報を入力する(S01)。回路情報の入力は、例えば入出力部20を介して行い、回路構成設計ツール2から出力された回路情報を、ユーザによる手動もしくは実行制御部30等の制御により自動で読み込むなどして入力する。
次に、TMR条件を指定する(S02)。ここでは、TMRの適用を仮定する回路ブロック(TMRブロック)と、TMRの粒度に係る情報を指定する。上述したように、TMRの粒度GTMRはTMR化する単位回路の大きさを示すが、本実施の形態では、単位回路とする回路ブロックのTMRブロックからの階層の深さL(0〜N)を指定することによって内部的にTMRの粒度を算出するものとする。なお、TMRブロックは1つに限らず複数指定してもよいし、TMR化を考慮しない場合は指定しなくてもよい。TMR条件の指定は、例えば入出力部20を介して行い、ユーザが手動で入力したりTMR条件が記録されたファイルを読み込ませたりして入力することができる。実行制御部30の制御によりTMR条件が記録されたファイルを自動で読み込むようにしてもよい。
次に、対象のFPGAにおけるCRAMのソフトエラー率を計算する(S03)。ここでは、例えば、CRAM_SER計算部12により、FPGA情報DB15から取得したFPGAの基本情報などに基づいて、FPGAのCRAMの容量CCRAMと、CRAMの単位ビットあたりのソフトエラー率SERREFと、CRAMの実使用率kとを乗算し、CRAM全体のソフトエラー率SERCRAMを計算する。
次に、対象のユーザ回路における回路ブロック毎のFPGAのリソースの使用率を計算する(S04)。ここでは、例えば、FPGAリソース使用率計算部13により、回路構成設計ツール2から取得したFPGAの回路情報や、FPGA情報DB15から取得したFPGAの内蔵リソース数などの情報に基づいて、FPGAの内蔵リソース数と、回路情報から取得した各回路ブロックにおけるリソース使用数との比として、各回路ブロックnにおけるFPGAリソース使用率(論理リソース使用率Un、配線リソース使用率Wn、メモリリソース使用率Mn)をそれぞれ計算する。
次に、対象のユーザ回路における回路ブロック毎のソフトエラー率を計算する(S05)。ここでは、例えば、回路ブロックSER計算部11により、回路構成設計ツール2から取得したFPGAの回路情報や、ステップS03で算出したCRAM全体のソフトエラー率SERCRAM、ステップS04で算出した各回路ブロックのFPGAリソース使用率(論理リソース使用率Un、配線リソース使用率Wn、メモリリソース使用率Mn)、FPGA情報DB15から取得した内部メモリの容量および内部メモリの単位ビットあたりのソフトエラー率と、リソースのCRAM依存率(論理リソース依存率αu、配線リソース依存率αw、メモリリソース依存率αm)などの情報に基づいて、回路ブロック毎のソフトエラー率を計算する。
本実施の形態では、FPGAリソース使用率とCRAMの使用容量とは比例関係にあるものと仮定し、論理/配線/メモリの各リソースの使用率(Un、Wn、Mn)に、対応するCRAM依存率(αu、αw、αm)とCRAM全体のソフトエラー率SERCRAMを乗算して各リソースについて総和することで回路ブロックのソフトエラー率を計算する。さらに、内部メモリが含まれる回路ブロックについては、内部メモリ容量と内部メモリの単位ビット当たりのソフトエラー率とを乗算して得られる内部メモリのソフトエラー率を加算することで、回路ブロック毎のソフトエラー率を計算する。
次に、TMR条件で指定されたTMRブロックのソフトエラー率を計算する(S06)。ここでは、例えば、各TMRブロックについて、TMRブロックSER計算部14により、ステップS05で算出したソフトエラー率と、TMR効果情報DB17から取得した、指定されたTMR粒度GTMRでTMRを適用した場合のSER低減率DTMR_grainとを乗算することで、TMRブロックのソフトエラー率を計算する。
最後に、対象のユーザ回路全体でのソフトエラー率を計算する(S07)。ここでは、例えば、SER計算部10により、ステップS05で算出した回路ブロック毎のソフトエラー率のうちのTMR条件で指定されたTMRブロック以外の回路ブロックのソフトエラー率と、ステップS06で算出したTMRブロックのソフトエラー率とを合算し、ユーザ回路全体でのソフトエラー率を計算する。
図6は、FPGA設計支援システム1が入出力部20を介して表示する画面の例について示した図である。図6(a)に示すようなメインウィンドウ21上に、回路構成設計ツール2等から読み込んだ回路ブロックの階層構造を表示する表22や、回路構成設計ツール2等から回路情報を読み込むためのボタン23、ユーザ回路のソフトエラー率の計算を開始するためのボタン24などを有する。表22には、図5に示した一連の処理によって計算された回路ブロック毎のソフトエラー率(“SER”カラム)や、対象の回路ブロックをTMR化した場合に低減されるソフトエラー率(“低減SER”カラム)の情報などを階層構造に合わせて表示する。
また、このユーザインタフェースを介してユーザがTMR条件を指定できるようにしてもよい。例えば、メインウィンドウ21の表22上で、ユーザがTMRブロックとする回路ブロックにチェックを付し(“TMR”カラム)、さらにTMR粒度GTMRを算出するために、TMR化する際の単位回路とする回路ブロックのTMRブロックからの階層の深さLを指定できるようにする(“深さ”カラム)。同様な指定を、例えば図6(b)に示すような別の条件指定用ウィンドウ25などを介して行うようにしてもよい。
ユーザは、図6に示したような画面に表示されるソフトエラー率の計算結果を見て、指定したTMR条件の良否を判定する。例えば、ユーザ回路全体としてソフトエラー率が所定の条件を満たす場合は、指定したTMR条件を必要な設計条件として決定する。所定の条件を満たさない場合は、当該画面から新たなTMR条件を指定した後、再度ソフトエラー率の計算を行うことができる。
なお、上述したように、ソフトエラー率の計算結果を図6に示したような画面に出力するのに替えて、もしくはこれに加えてデータファイル等の形式で出力するようにしてもよい。また、TMR条件の指定も、ユーザが図6に示したような画面から手動で入力するのではなく、TMR条件が記録されたファイルを読み込ませて入力するようにしてもよい。
以上に説明したように、本発明の実施の形態1であるFPGA設計支援システム1、および当該システム上で実行されるソフトエラー率の計算方法によれば、FPGAリソースの使用率と、そのFPGAが搭載するCRAMのソフトエラー率の情報を利用することで、ユーザ回路全体のソフトエラー率を簡易的に計算し、さらに、実測で得られたTMR化によるSER低減率の情報を利用して、設計されたユーザ回路にTMRを適用したときのソフトエラー率を見積もる手段を提供することができる。
また、このとき、TMR化する回路の粒度によってソフトエラー率が変化する特徴に着目することで、設計されたユーザ回路にTMRを適用したときのソフトエラー率を適切に見積もることができ、FPGAのソフトエラーに対する最適な耐性設計が可能となる。
<実施の形態2>
本発明の実施の形態2であるFPGA設計支援システムの例は、上述した実施の形態1のFPGA設計支援システム1を基礎として、FPGAによるユーザ回路が所定のソフトエラー率を実現するために必要となるTMR条件を決定することができる解析手法を実現するものである。
本発明の実施の形態2であるFPGA設計支援システムの例は、上述した実施の形態1のFPGA設計支援システム1を基礎として、FPGAによるユーザ回路が所定のソフトエラー率を実現するために必要となるTMR条件を決定することができる解析手法を実現するものである。
図7は、本実施の形態のFPGA設計支援システム1での所定のソフトエラー率を実現するために必要となるTMR条件を決定する処理の流れの例について示したフローチャートである。処理を開始すると、まず、ソフトエラー率を計算する対象となるFPGAで設計されたユーザ回路について、回路情報を入力する(S11)。ここでの処理は、上述した実施の形態1における図5のステップS01と同様である。
次に、対象のFPGAにおけるCRAMのソフトエラー率を計算する(S12)。ここでの処理は、上述した実施の形態1における図5のステップS03と同様である。次に、対象のユーザ回路における回路ブロック毎のFPGAのリソースの使用率を計算する(S13)。ここでの処理は、上述した実施の形態1における図5のステップS04と同様である。次に、対象のユーザ回路における回路ブロック毎のソフトエラー率を計算する(S14)。ここでの処理は、上述した実施の形態1における図5のステップS05と同様である。
次に、対象のユーザ回路全体でのソフトエラー率を計算する(S15)。ここでは、例えば、SER計算部10により、TMR化を考慮せずに、ステップS14で算出した回路ブロック毎のソフトエラー率を合算し、ユーザ回路全体でのソフトエラー率を計算する。次に、ステップS15で算出したユーザ回路全体でのソフトエラー率が所定の目標値よりも小さいか否かを判定する(S16)。ここでは、例えば、実行制御部30によってこの判断を行い、ソフトエラー率が、入出力部20を介して予めユーザにより指定された目標値を下回っている(条件を満たしている)場合は、TMR化は不要ということで、各回路ブロックのソフトエラー率の計算結果を図6に示した画面により出力するなどして処理を終了する。
一方、ステップS16においてユーザ回路全体でのソフトエラー率が所定の目標値以上となっている(条件を満たしていない)場合は、TMR化を考慮するためにTMR条件を指定する(S17)。ここでの処理は、上述した実施の形態1における図5のステップS02と同様である。次に、TMR条件で指定されたTMRブロックのソフトエラー率を計算する(S18)。ここでの処理は、上述した実施の形態1における図5のステップS06と同様である。次に、対象のユーザ回路全体でのソフトエラー率を計算する(S19)。ここでの処理は、上述した実施の形態1における図5のステップS07と同様である。
次に、ステップS19で算出したTMR化を考慮したユーザ回路全体でのソフトエラー率が所定の目標値よりも小さいか否かを判定する(S20)。ここでは、例えば、ステップS16と同様に実行制御部30によってこの判断を行い、ソフトエラー率が、入出力部20を介して予めユーザにより指定された目標値を下回っている(条件を満たしている)場合は、ステップS17で指定されたTMR条件を必要な設計条件として決定し、処理を終了する。
一方、ステップS20においてユーザ回路全体でのソフトエラー率が所定の目標値以上となっている(条件を満たしていない)場合は、ステップS17に戻ってTMR条件を再指定し、ユーザ回路全体でのソフトエラー率が所定の目標値を下回る(条件を満たす)までステップS17〜S20の処理を繰り返す。本実施の形態では、このように、SER計算部10にて算出されたユーザ回路全体でのソフトエラー率が条件を満たすまでTMR条件指定とソフトエラー率の再計算の処理を繰り返し、ソフトエラー率の条件を満たすTMR条件を決定できることを特徴とする。上記の一連の処理を、例えば実行制御部30によって制御して実行することで、ソフトエラー率の条件を満たすTMR条件を自動的に探索することも可能である。
ステップS17でのTMR条件の指定(再指定)においてどのような条件を指定するかについては、種々の手法が考えられるが、例えば、ステップS17において最初にTMR条件を指定する際に、ソフトエラー率の低減効果が最大となるTMR条件を指定するようにしてもよい。すなわち、TMR条件において、TMRブロックとしてユーザ回路全体を指定し、TMR化する際の単位回路を特定する階層の深さLに最大値を指定して、最も深い階層の回路ブロックを単位回路とする。このときのユーザ回路全体でのソフトエラー率が、ステップS20において所定の目標値以上となっている(条件を満たしていない)場合は、他のどのようなTMR条件を指定してもソフトエラー率が所定の目標値を下回らないことが分かる。従って、以降のTMR条件の探索が無用となることが早期に判断できる。
なお、上述したように、FPGAにおけるソフトエラー対策としてむやみにTMRを適用すると、ソフトエラー率は低減するものの回路規模や消費電力などのオーバーヘッドが増大してしまう。そのため、設計者はこれらのトレードオフ設計により、回路構成における最適なTMR条件を決定する必要がある。
例えば、図7の一連の処理によってソフトエラー率の条件を満たすものとして得られたTMR条件の情報を、入出力部20を介して回路構成設計ツール2にフィードバックし、回路構成設計ツール2によってTMR化した状態での回路情報を再度生成して、オーバーヘッドの増大分を検証する。これにより、ソフトエラー率の低減率およびオーバーヘッドの増大分の双方が所定の条件を満たすTMR条件を決定することができる。
もしくは、例えば、実行制御部30での制御により図7の一連の処理を繰り返し実行して、ソフトエラー率の条件を満たす全てのTMR条件を取得する。取得した各TMR条件をそれぞれ入出力部20を介して回路構成設計ツール2にフィードバックして、回路構成設計ツール2によってTMR化した状態での回路情報を生成する。生成された各回路情報について、ソフトエラー率の低減効果とオーバーヘッドの増大分のそれぞれに所定の重み付けをして全体での効果を数値化することで、トレードオフを考慮した最適なバランスとなるTMR条件を決定するということも可能である。
以上に説明したように、本発明の実施の形態2であるFPGA設計支援システム1によれば、FPGAの設計段階において、ユーザ回路に対してTMRを適用した場合のソフトエラー率を事前に適切に見積もることができるため、ユーザ回路のソフトエラー耐性を目標レベルまで向上させるために必要なTMR条件を容易に決定することができる。これにより、TMR化に伴うオーバーヘッドの増大とのトレードオフ設計を容易に行うことができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上述した各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。なお、上記の各実施の形態ではFPGA設計支援システム1を情報処理装置上で構築し、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現するものとしているが、これに限られない。例えば、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
また、上記の各実施の形態では、TMRを適用した場合のソフトエラー率を適切に見積もるもしくは計算することで設計を支援する対象の半導体集積回路として、地上における環境放射線の影響によって発生するソフトエラーの拡大の影響が問題視されているFPGAを対象としている。これに対し、他のプログラマブルロジックデバイスであっても、FPGAと同様もしくは類似の構成や仕組みを有し、例えば大容量化のさらなる進展などによりソフトエラー率の影響が大きくなり、これを適切に見積もるもしくは計算することが必要となったものなどについても対象に含めることが可能である。
本発明は、FPGAにおいてソフトエラーに対する耐性向上を図る設計を支援するFPGA設計支援システムおよびFPGA設計支援方法ならびにFPGA設計支援プログラムに利用可能である。
1…FPGA設計支援システム、2…回路構成設計ツール、
10…ソフトエラー率設計部、11…回路ブロックソフトエラー率計算部、12…CRAM_SER計算部、13…FPGAリソース使用率計算部、14…TMRブロックソフトエラー率計算部、15…FPGA情報DB、16…回路SER計算結果DB、17…TMR効果情報DB、
20…入出力部、21…メインウィンドウ、22…表、23、24…ボタン、25…条件指定用ウィンドウ、
30…実行制御部。
10…ソフトエラー率設計部、11…回路ブロックソフトエラー率計算部、12…CRAM_SER計算部、13…FPGAリソース使用率計算部、14…TMRブロックソフトエラー率計算部、15…FPGA情報DB、16…回路SER計算結果DB、17…TMR効果情報DB、
20…入出力部、21…メインウィンドウ、22…表、23、24…ボタン、25…条件指定用ウィンドウ、
30…実行制御部。
Claims (13)
- FPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率を計算するFPGA設計支援システムであって、
FPGAの種別毎にTMRを適用した場合のソフトエラー率の低減率を含む情報を保持するTMR効果情報データベースと、
前記FPGAが有するCRAM全体のソフトエラー率を計算するCRAM_SER計算部と、
前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を計算するFPGAリソース使用率計算部と、
前記CRAM_SER計算部によって算出された前記CRAM全体のソフトエラー率、および前記FPGAリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する回路ブロックSER計算部と、
前記ユーザ回路の回路ブロックのうちTMRの適用を仮定するもしくは既にTMR化されている回路ブロックとしてTMR条件において指定されたTMRブロックについて、前記回路ブロックSER計算部によって算出されたソフトエラー率、および前記TMR効果情報データベースから取得した、前記FPGAで設計された前記ユーザ回路にTMRを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記TMRブロックのソフトエラー率を計算するTMRブロックSER計算部と、
前記回路ブロックSER計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記TMRブロックSER計算部によって計算された前記各TMRブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算するSER計算部とを有することを特徴とするFPGA設計支援システム。 - 請求項1に記載のFPGA設計支援システムにおいて、
前記TMR効果情報データベースは、さらに、FPGAの種別毎に、TMRを適用した場合のTMRの粒度によって変化するソフトエラー率の低減率の特性を含む情報を保持し、
前記TMRブロックSER計算部は、前記TMR条件において、前記TMRブロックについて指定された前記粒度の値、もしくは前記TMRブロックにおいてTMRを適用する単位回路として指定された回路ブロックの情報に基づいて算出した前記粒度の値に基づいて、前記FPGAで設計された前記ユーザ回路に前記粒度でTMRを適用した場合のソフトエラー率の低減率の情報を前記TMR効果情報データベースから取得して、前記TMRブロックのソフトエラー率を計算することを特徴とするFPGA設計支援システム。 - 請求項2に記載のFPGA設計支援システムにおいて、
前記TMR条件において指定される、前記TMRブロックにおいてTMRを適用する単位回路とする回路ブロックを、回路ブロックの階層構造における、前記TMRブロックからの階層の深さによって特定することを特徴とするFPGA設計支援システム。 - 請求項1〜3のいずれか1項に記載のFPGA設計支援システムにおいて、
さらに、前記FPGAの種別を特定する情報、前記FPGAに内蔵されているリソース数、内部メモリおよび前記CRAMの容量、前記内部メモリおよび前記CRAMの単位ビット当たりのソフトエラー率、前記CRAMの実使用率、前記FPGAのリソース毎の前記CRAMの依存率を含む、前記FPGAのソフトエラー率を計算するために必要なデバイスの基本情報を保持するFPGA情報データベースを有することを特徴とするFPGA設計支援システム。 - 請求項4に記載のFPGA設計支援システムにおいて、
前記CRAM_SER計算部は、前記FPGA情報データベースから取得した前記CRAMの容量、前記CRAMの単位ビット当たりのソフトエラー率、および前記CRAMの実使用率を乗算して、前記FPGAにおける前記CRAM全体のソフトエラー率を計算することを特徴とするFPGA設計支援システム。 - 請求項4に記載のFPGA設計支援システムにおいて、
前記FPGAリソース使用率計算部は、前記FPGA情報データベースから取得した前記FPGAに内蔵されているリソース数と、前記ユーザ回路の回路情報から取得した前記ユーザ回路の各回路ブロックにおける前記FPGAのリソースの使用数との比として、前記ユーザ回路における各回路ブロックの前記FPGAのリソース毎の使用率を計算することを特徴とするFPGA設計支援システム。 - 請求項4に記載のFPGA設計支援システムにおいて、
前記回路ブロックSER計算部は、前記CRAM_SER計算部によって算出された前記CRAM全体のソフトエラー率、前記FPGAリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率、および前記FPGA情報データベースから取得した前記FPGAのリソース毎のCRAM依存率を乗算して各リソースについて総和することで、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算し、さらに、内部メモリが含まれる回路ブロックについては、前記FPGA情報データベースから取得した内部メモリ容量と、内部メモリの単位ビット当たりのソフトエラー率とを乗算した値を加算することで、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算することを特徴とするFPGA設計支援システム。 - 請求項1〜7のいずれか1項に記載のFPGA設計支援システムにおいて、
前記TMRブロックSER計算部は、前記TMRブロックについて、前記回路ブロックSER計算部によって算出されたソフトエラー率と、前記ユーザ回路にTMRを適応した場合のソフトエラー率の低減率とを乗算することで、前記TMRブロックのソフトエラー率を計算することを特徴とするFPGA設計支援システム。 - 請求項1〜8のいずれか1項に記載のFPGA設計支援システムにおいて、
前記SER計算部は、前記回路ブロックSER計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率のうちの前記TMRブロック以外の回路ブロックのソフトエラー率と、前記TMRブロックSER計算部によって計算された前記各TMRブロックのソフトエラー率とを合算して、前記ユーザ回路全体のソフトエラー率を計算することを特徴とするFPGA設計支援システム。 - 請求項1〜9のいずれか1項に記載のFPGA設計支援システムにおいて、
さらに、前記ユーザ回路の回路情報、および前記TMR条件の入力を受け付け、前記ユーザ回路の回路情報、前記TMR条件、前記回路ブロックSER計算部によって算出された前記ユーザ回路の各回路ブロックのソフトエラー率、前記TMRブロックSER計算部によって算出された前記各TMRブロックのソフトエラー率、および前記SER計算部によって算出された前記ユーザ回路全体のソフトエラー率の一部または全部を表示する入出力部を有することを特徴とするFPGA設計支援システム。 - 請求項10に記載のFPGA設計支援システムにおいて、
さらに、前記入出力部に入力される前記TMR条件の内容を変更して、前記入出力部および前記SER計算部での処理の実行を制御する実行制御部を有することを特徴とするFPGA設計支援システム。 - FPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率を計算するFPGA設計支援システムとしてコンピュータを機能させるFPGA設計支援プログラムであって、
前記FPGAが有するCRAM全体のソフトエラー率を計算するCRAM_SER計算部と、
前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を計算するFPGAリソース使用率計算部と、
前記CRAM_SER計算部によって算出された前記CRAM全体のソフトエラー率、および前記FPGAリソース使用率計算部によって算出された前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する回路ブロックSER計算部と、
前記ユーザ回路の回路ブロックのうちTMRの適用を仮定するもしくは既にTMR化されている回路ブロックとしてTMR条件において指定されたTMRブロックについて、前記回路ブロックSER計算部によって算出されたソフトエラー率、およびFPGAの種別毎にTMRを適用した場合のソフトエラー率の低減率を含む情報を保持するデータベースから取得した、前記FPGAで設計した前記ユーザ回路にTMRを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記TMRブロックのソフトエラー率を計算するTMRブロックSER計算部と、
前記回路ブロックSER計算部によって計算された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記TMRブロックSER計算部によって計算された前記各TMRブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算するSER計算部とを有することを特徴とするFPGA設計支援プログラム。 - 情報処理装置によってFPGAで設計されたユーザ回路にTMRを適用した場合のソフトエラー率を計算するFPGA設計支援方法であって、
ソフトエラー率を計算する対象となる前記ユーザ回路の回路情報を入力する第1のステップと、
前記FPGAが有するCRAM全体のソフトエラー率を計算する第2のステップと、
前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を計算する第3のステップと、
前記第2のステップによって算出された前記CRAM全体のソフトエラー率、および前記第3のステップによって算出された前記ユーザ回路における各回路ブロックの前記FPGAのリソースの使用率を含む情報に基づいて、前記ユーザ回路の回路ブロック単位のソフトエラー率を計算する第4のステップと、
前記第4のステップによって算出された前記ユーザ回路における各回路ブロックのソフトエラー率を合算して前記ユーザ回路全体のソフトエラー率を計算する第5のステップと、
前記第5のステップによって算出された前記ユーザ回路全体のソフトエラー率が所定の目標値を下回っているか否かを判定する第6のステップと、
前記第6のステップにおいて、前記ユーザ回路全体のソフトエラー率が所定の目標値を下回っていない場合に、前記ユーザ回路の回路ブロックのうちTMRの適用を仮定する回路ブロックであるTMRブロック、および前記TMRブロックについてのTMRを適用する際の粒度に係る情報を含むTMR条件を指定する第7のステップと、
前記TMRブロックについて、前記第4のステップによって算出されたソフトエラー率、およびFPGAの種別毎にTMRを適用した場合のTMRの前記粒度によって変化するソフトエラー率の低減率の特性を含む情報を保持するデータベースから取得した、前記FPGAで設計された前記ユーザ回路に前記粒度でTMRを適用した場合のソフトエラー率の低減率を含む情報に基づいて、前記TMRブロックのソフトエラー率を計算する第8のステップと、
前記第4のステップによって算出された前記ユーザ回路における各回路ブロックのソフトエラー率、および前記第8のステップによって算出された前記各TMRブロックのソフトエラー率に基づいて前記ユーザ回路全体のソフトエラー率を計算する第9のステップと、
前記第9のステップにおいて、前記ユーザ回路全体のソフトエラー率が前記所定の目標値を下回っているか否かを判定し、下回っていない場合は前記第7のステップに戻って処理を繰り返す第10のステップとを実行することを特徴とするFPGA設計支援方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011084175A JP2012221077A (ja) | 2011-04-06 | 2011-04-06 | Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム |
PCT/JP2012/058214 WO2012137652A1 (ja) | 2011-04-06 | 2012-03-28 | Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011084175A JP2012221077A (ja) | 2011-04-06 | 2011-04-06 | Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012221077A true JP2012221077A (ja) | 2012-11-12 |
Family
ID=46969053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011084175A Withdrawn JP2012221077A (ja) | 2011-04-06 | 2011-04-06 | Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2012221077A (ja) |
WO (1) | WO2012137652A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016501409A (ja) * | 2012-11-29 | 2016-01-18 | エレクトリシテ・ドゥ・フランス | パーティショニングによる電子回路の放射性強化方法 |
WO2019107234A1 (ja) * | 2017-11-29 | 2019-06-06 | 日本電気株式会社 | 設計支援システム、設計支援方法およびプログラム記録媒体 |
WO2020095854A1 (ja) * | 2018-11-08 | 2020-05-14 | 日本電気株式会社 | 論理集積回路、構成情報設定方法、および記録媒体 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104238435B (zh) * | 2014-05-27 | 2017-01-18 | 北京航天自动控制研究所 | 一种三冗余控制计算机及容错控制系统 |
-
2011
- 2011-04-06 JP JP2011084175A patent/JP2012221077A/ja not_active Withdrawn
-
2012
- 2012-03-28 WO PCT/JP2012/058214 patent/WO2012137652A1/ja active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016501409A (ja) * | 2012-11-29 | 2016-01-18 | エレクトリシテ・ドゥ・フランス | パーティショニングによる電子回路の放射性強化方法 |
WO2019107234A1 (ja) * | 2017-11-29 | 2019-06-06 | 日本電気株式会社 | 設計支援システム、設計支援方法およびプログラム記録媒体 |
WO2020095854A1 (ja) * | 2018-11-08 | 2020-05-14 | 日本電気株式会社 | 論理集積回路、構成情報設定方法、および記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
WO2012137652A1 (ja) | 2012-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007328788A (ja) | クロックメッシュ分析方法、装置及びシステム | |
US8434032B2 (en) | Method of generating an intellectual property block design kit, method of generating an integrated circuit design, and simulation system for the integrated circuit design | |
US9646122B2 (en) | Variable accuracy parameter modeling in statistical timing | |
US10928442B2 (en) | Computer implemented methods and computing systems for designing integrated circuits by considering back-end-of-line | |
US9727682B2 (en) | Designing memories in VLSI design using specific memory models generated from generic memory models | |
US8612911B2 (en) | Estimating power consumption of an electronic circuit | |
US10140399B2 (en) | Corner database generator | |
WO2012137652A1 (ja) | Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム | |
Sari et al. | A soft error vulnerability analysis framework for Xilinx FPGAs | |
TWI818068B (zh) | 用於分段記憶體實體之方法及裝置 | |
US10437946B1 (en) | Using implemented core sources for simulation | |
US9836567B2 (en) | Method of simulating a semiconductor integrated circuit, computer program product, and device for simulating a semiconductor integrated circuit | |
US9594858B1 (en) | Methods, systems, and articles of manufacture for implementing scalable statistical library characterization for electronic designs | |
JP5785725B2 (ja) | 電力見積装置、電力見積方法及びプログラム | |
US8495538B1 (en) | Power estimation of a circuit design | |
US20170371998A1 (en) | Detecting dispensable inverter chains in a circuit design | |
US7444275B2 (en) | Multi-variable polynomial modeling techniques for use in integrated circuit design | |
Hogervorst et al. | Hardware acceleration of high-performance computational flow dynamics using high-bandwidth memory-enabled field-programmable gate arrays | |
US8818784B1 (en) | Hardware description language (HDL) incorporating statistically derived data and related methods | |
US8555228B2 (en) | Tool for glitch removal | |
US10796051B1 (en) | Adaptive model interface for a plurality of EDA programs | |
US10460055B1 (en) | Modeling of sequential circuit devices of multi-clock domain IC design for a transient vectorless power analysis | |
TW202217638A (zh) | 電腦實施方法、電腦實施系統以及非暫時性電腦可讀媒體 | |
Choudhary et al. | Synthesis of LUT based approximating adder circuits with formal error guarantees | |
US9811503B1 (en) | Methods for implementing arithmetic functions with user-defined input and output formats |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140701 |