(57)【要約】  産業分野や自動車分野などのシステムにおいて、標準機能と縮退機能を低コストかつ早期に実装することを可能とする回路生成装置及びソフトウェア生成装置を提供する。  システムの動作記述４０１に基づいて回路記述４０３を生成する第１の動作合成機能Ｓ０３を備えた回路生成装置において、前記動作記述から縮退用パラメタを抽出する縮退用パラメタ抽出機能Ｓ０２と、前記縮退用パラメタの値を変更する縮退用パラメタ変更機能Ｓ０６と、前記動作記述と前記縮退用パラメタの値とに基づいて縮退回路記述４０４を生成する第２の動作合成機能Ｓ０４と、前記縮退回路記述の性能が前記回路記述を基準とした制約条件を満たすか否かを判定する判定機能Ｓ０５とを備え、前記判定機能で前記縮退回路記述が前記制約条件を満たさないと判定した場合に、前記縮退用パラメタ変更機能で前記縮退用パラメタの値を変更してから前記第２の動作合成機能を実行する。
2019171428.tif 000002
【特許請求の範囲】
【請求項１】
システムの動作記述に基づいて回路記述又はソフト記述を生成する第１の動作合成機能を備えた回路生成装置又はソフトウェア生成装置において、
前記動作記述から縮退用パラメタを抽出する縮退用パラメタ抽出機能と、
前記縮退用パラメタの値を変更する縮退用パラメタ変更機能と、
前記動作記述と前記縮退用パラメタの値とに基づいて縮退回路記述又は縮退ソフト記述を生成する第２の動作合成機能と、
前記縮退回路記述又は前記縮退ソフト記述の性能が前記回路記述又は前記ソフト記述を基準とした制約条件を満たすか否かを判定する判定機能とを備え、
前記判定機能で前記縮退回路記述又は前記ソフト記述が前記制約条件を満たさないと判定した場合に、前記縮退用パラメタ変更機能で前記縮退用パラメタの値を変更してから前記第２の動作合成機能を実行する
ことを特徴とする回路生成装置又はソフトウェア生成装置。
【請求項２】
請求項１に記載の回路生成装置又はソフトウェア生成装置において、
前記制約条件は、動作速度、回路面積、精度の少なくとも１つを含む
ことを特徴とする回路生成装置又はソフトウェア生成装置。
【請求項３】
請求項１に記載の回路生成装置又はソフトウェア生成装置において、
前記縮退用パラメタ抽出機能は、前記動作記述を１行ずつ読み込み、前記動作記述の最後に至るまでに前記縮退用パラメタが含まれていればパラメタ一覧表に追加する機能を有する
ことを特徴とする回路生成装置又はソフトウェア生成装置。
【請求項４】
請求項１に記載の回路生成装置又はソフトウェア生成装置において、
前記縮退用パラメタ変更機能は、前記縮退回路記述又は前記縮退ソフト記述の性能が前記制約条件を満たさない場合に、前記性能が前記制約条件からどの程度乖離しているかを判定し、前記縮退回路記述又は前記縮退ソフト記述の性能が前記制約条件を満たさず、かつ前記制約条件からの乖離が前回よりも大きくなった場合に、縮退用パラメタの値を前回の値に戻した上で別の縮退用パラメタの値を変更するか、又は縮退用パラメタの値を前回の値に戻すことなく別の縮退用パラメタの値を変更する
ことを特徴とする回路生成装置又はソフトウェア生成装置。
【請求項５】
請求項１に記載の回路生成装置又はソフトウェア生成装置において、
前記動作記述から縮退用プラグマを抽出する縮退用プラグマ抽出機能を有し、
前記縮退用プラグマ抽出機能によって前記動作記述から前記縮退用プラグマが抽出された場合に前記第２の動作合成機能を実行する
ことを特徴とする回路生成装置又はソフトウェア生成装置。
【請求項６】
請求項１に記載の回路生成装置又はソフトウェア生成装置において、
前記判定機能を実行した後に前記縮退回路記述又は前記縮退ソフト記述の検証支援情報を生成する検証支援情報生成機能を備えた
ことを特徴とする回路生成装置又はソフトウェア生成装置。
【請求項７】
請求項１に記載の回路生成装置又はソフトウェア生成装置において、
ディスプレイ装置を更に備え、
前記ディスプレイ装置は、前記制約条件と、前記回路記述又は前記ソフト記述の性能と、前記縮退回路記述又は前記縮退ソフト記述の性能とを表示する
ことを特徴とする回路生成装置又はソフトウェア生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路生成装置及びソフトウェア生成装置に関する。
【背景技術】
【０００２】
半導体プロセスの微細化に伴い、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央演算処理装置）の高性能化や、ＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、メモリ）及びＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、フィールドプログラマブルゲートアレイ）などの高速・大容量化が可能になってきた。【０００３】
これら半導体デバイスの進歩により、特に産業分野や自動車分野においては従来では成し得なかった様々な機能を実現するための取り組みが始まっている。例えば産業分野では現実世界に分散して配置した大量の装置から稼働データを収集して仮想世界上で分析し、より良い制御出力を現実世界へフィードバックさせるＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）への取り組みが盛んである。また自動車分野ではＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ、人工知能）を自動車の制御装置に組込むことで、自動車システムに認識機能と制御機能を持たせて自動運転を実現しようとするための取り組みが行われている。【０００４】
このような産業システムや自動車システムにおいて、機能が高度化しシステムが複雑化していく場合に課題となるのは安全性と信頼性の確保である。特に人命が関わるシステムにおいて、システムの一部で異常や故障が発生した場合にその影響がシステム全体に波及して想定通りの制御ができなくなり、その結果人命が損なわれるようなシステムは許容されない。【０００５】
そのためこのようなシステムでは異常や故障が発生したことを検出し対策できる仕組みにすることが必要であり、一般的にはシステムを多重化することでシステムの一部で異常や故障が発生してもシステム全体が致命的にならないような仕組みが採られる。【０００６】
しかし、安全性や信頼性の観点でシステムを多重化するとコストが増加するため、例えば自動車のように量産性が重要視されるシステムにおいて冗長化によるコスト増加は好ましくない。そのため、標準機能を実現する部分を実装した上で、異常や故障の発生時には安全性を担保する最低限の機能を実現する縮退機能を実現する部分を実装するのが効果的な場合がある。【０００７】
しかしそのような場合においては、標準機能を作成する工数に加えて縮退機能を別途作成したり検証したりする工数がかかり、コストや設計期間の面で課題となる。【０００８】
本技術分野の背景技術として、例えば特許文献１には、集積回路上に実装される回路の動作が記述された動作レベル記述と制約条件とに基づいて、当該動作レベル記述に記述されている動作を実現するとともに当該制約条件を満たす回路を表現する中間レベル記述を生成する生成手段と、前記生成手段により生成された中間レベル記述を解析して、当該中間レベル記述のループ構造を特定する特定手段と、前記特定手段により特定されたループ構造と同じループ構造を有するいずれかの中間レベル記述について、シミュレーション済みであるか否かを判別する判別手段と、前記判別手段によりシミュレーション済みではないと判別された場合、前記生成手段により生成された中間レベル記述により表現される回路の動作をシミュレーションし、当該中間レベル記述に記述されている各処理を実行するのに要する個別実行サイクル数を求めるとともに、当該中間レベル記述に記述されている全ての処理を実行するのに要する総実行サイクル数を求める計測手段と、前記計測手段により求められた個別実行サイクル数と、前記特定手段により特定されたループ構造とを対応付けて記憶する記憶手段と、前記判別手段によりシミュレーション済みであると判別された場合、前記特定手段により特定されたループ構造と同じループ構造に対応付けられて前記記憶手段に記憶されている個別実行サイクル数に基づいて、前記生成手段により生成された中間レベル記述の総実行サイクル数を求める計算手段と、を備える動作合成装置の例が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】ＷＯ２０１１／００７６４０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、動作記述から中間レベルのループ構造を特定する従来の動作合成装置について、本発明者が検討した結果、以下のようなことが明らかとなった。【００１１】
特許文献１の例では、動作記述の中からループ構造を抽出してループ部分の実行サイクル性能を最適化する合成制約を探索する点が特徴として記載されているが、もとの動作記述から縮退機能を自動的に抽出するような内容については言及されておらず、本発明の課題である標準機能に加えて縮退機能を作成する際に工数が増大する点に対して活用することが困難であるという問題があった。【００１２】
本発明は、上記課題に鑑みてなされたものであり、その目的は、産業分野や自動車分野などのシステムにおいて、標準機能と縮退機能を低コストかつ早期に実装することを可能とする回路生成装置及びソフトウェア生成装置を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明は、システムの動作記述に基づいて回路記述又はソフト記述を生成する第１の動作合成機能を備えた回路生成装置又はソフトウェア生成装置において、前記動作記述から縮退用パラメタを抽出する縮退用パラメタ抽出機能と、前記縮退用パラメタの値を変更する縮退用パラメタ変更機能と、前記動作記述と前記縮退用パラメタの値とに基づいて縮退回路記述又は縮退ソフト記述を生成する第２の動作合成機能と、前記縮退回路記述又は前記縮退ソフト記述の性能が前記回路記述又は前記ソフト記述を基準とした制約条件を満たすか否かを判定する判定機能とを備え、前記判定機能によって前記縮退回路記述又は前記ソフト記述が前記制約条件を満たさないと判定した場合に、前記縮退用パラメタ変更機能で前記縮退用パラメタの値を変更してから前記第２の動作合成機能を実行するものとする。
【発明の効果】
【００１４】
本発明によれば、産業分野や自動車分野などのシステムにおいて、標準機能と縮退機能を低コストかつ早期に実装することが可能になる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施例における回路生成装置の動作の一例を示すフローチャートである。
【図２】図１のフローにおける制約条件の一例を示す図である。
【図３】図１のフローにおける制約条件の他の例を示す図である。
【図４】図１のフローにおける動作記述の一例を示す図である。
【図５】図１のフローにおける、縮退用パラメタを抽出するステップの詳細を示すフローチャートである。
【図６】図４のフローによって抽出されたパラメタの一覧を示す図である。
【図７】図１のフローにおける、縮退用パラメタを変更するステップの詳細を示すフローチャートである。
【図８】図７のフローによって変更された動作記述の一例を示す図である。
【図９】図１のフローにおける、縮退回路結果が標準回路結果を基準とした制約条件を満たすか否かを判定するステップの詳細を示すフローチャートである。
【図１０】本発明の第１の実施例における回路生成装置のディスプレイ装置に表示されるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）の一例を示す図である。
【図１１】本発明の第１の実施例における回路生成装置を制御システムの開発環境に適用した場合の一例を示す図である。
【図１２】本発明の第２の実施例におけるソフトウェア生成装置の動作の一例を示すフローチャートである。
【図１３】本発明の第２の実施例におけるソフトウェア生成装置を制御システムの開発環境に適用した場合の一例を示す図である。
【図１４】本発明の第３の実施例における回路生成装置の動作の一例を示すフローチャートである。
【図１５】本発明の第３の実施例における回路生成装置を制御システムの開発環境に適用した場合の一例を示す図である。
【図１６】本発明の第４の実施例におけるソフトウェア生成装置の動作の一例を示すフローチャートである。
【図１７】本発明の第４の実施例におけるソフトウェア生成装置を制御システムの開発環境に適用した場合の一例を示す図である。
【図１８】本発明の第５の実施例における回路生成装置の動作の一例を示すフローチャートである
【図１９】本発明の第５の実施例における回路生成装置で使用するプラグマの一覧を示す図である。
【図２０】図４に示したものと同じ動作記述である。
【図２１】図２０に示した動作記述に対し、タイプが高信頼のプラグマを使用した動作記述の一例を示す図ある。
【図２２】図４に示したものと同じ動作記述である。
【図２３】図２２に示した動作記述に対し、タイプが縮退のプラグマを使用した動作記述の一例を示したものである。
【図２４】図２２に示した動作記述に対し、タイプが縮退のプラグマを使用した動作記述の他の例を示したものである。
【図２５】本発明の第６の実施例における回路生成装置の動作の一例を示すフローチャートである。
【図２６】本発明の第１の実施例における回路生成装置のディスプレイ装置に表示されるＧＵＩの一例を示す図である。
【図２７】本発明の第１の実施例における回路生成装置のディスプレイ装置に表示されるＧＵＩの一例を示す図である。
【図２８】本発明の第１の実施例における回路生成装置で生成した標準回路及び縮回路を車載システムに実装した場合の一例を示す図である。
【図２９】本発明の第１の実施例における回路生成装置で生成した標準回路及び縮回路を産業制御システムに実装した場合の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施例を、図面を用いて説明する。なお以下の説明では、システムの通常動作中に標準機能を実現する回路を標準回路、その設計記述を標準回路記述と呼び、標準機能を実現するソフトウェアを標準ソフト、その設計記述を標準ソフト記述と呼ぶ。またシステムで異常や故障が発生したときに縮退機能を実現する回路を縮退回路、その設計記述を縮退回路記述と呼び、縮退機能を実現するソフトウェアを縮退ソフト、その設計記述を縮退ソフト記述と呼ぶ。
【実施例１】
【００１７】
本発明の第１の実施例について、図１から図１１を用いて説明する。【００１８】
図１は、本実施例における回路生成装置の動作の一例を示すフローチャートである。【００１９】
ステップＳ０１から開始し、設計者は実装するシステムの動作記述４０１と、実装する縮退回路の目安となる制約条件４０２を用意する。【００２０】
ステップＳ０３の動作合成によって、動作記述４０１から標準回路記述４０３と標準回路結果４０７が出力される。【００２１】
一方、ステップＳ０２の縮退用パラメタ抽出を介したステップＳ０４の動作合成によって、動作記述４０１から縮退回路記述４０４と縮退回路結果４０８が出力される。【００２２】
図１の回路生成装置のフローにより得られた縮退回路記述４０４と縮退回路結果４０８は、ステップＳ０５にて標準回路記述４０３と標準回路結果４０７に対する制約条件４０２の許容範囲内であるかどうかが評価される。その結果、制約を満たした場合はステップＳ０７に遷移して動作フローは終了となるが、制約を満たしていない場合はステップＳ０６に遷移して縮退用パラメタ変更を実施し、ステップＳ０４からステップＳ０５までの動作フローを繰り返す。【００２３】
図２は、図１のフローにおける制約条件４０２の一例を示したものである。【００２４】
図２は、標準回路の動作速度（ＭＨｚ）、回路面積（Ａｒｅａ）、精度（Ａｃｃｕｒａｃｙ）をそれぞれ１００に設定した上で、縮退回路の動作速度を標準回路の８５％、回路面積を５０％、精度を７５％というように割合で表記したものである。【００２５】
一方、図３は、標準回路の動作速度、回路面積、精度の絶対値に対して縮退回路の動作速度、面積、精度も絶対値で表記したものであり、各項目に対して異なる単位を設定している。このように、縮退回路の制約条件は様々な形式で設定することができる。また縮退回路の制約条件を設定するフォーマットは、表形式でも、テキスト形式でも、カンマ区切りの形式などでもよい。【００２６】
図４は、図１のフローにおける動作記述４０１の一例を示したものである。【００２７】
図４に示した動作記述４５０の表記において、ｉｎｔ３２は３２ビットの符号付き整数型であることを示す。同様にｉｎｔ６４は６４ビットの符号付き整数型であることを示す。【００２８】
動作記述４５０の１行目では６４ビットの関数ａｃｃｕｍｕｌａｔｅを定義している。この関数は、３２ビットで配列のサイズが４の変数ａ、ｂをそれぞれ入力とする。【００２９】
動作記述４５０の２行目では、関数ａｃｃｕｍｕｌａｔｅ内でローカルに使用する、６４ビットで配列のサイズが４の変数ｃを定義している。【００３０】
動作記述４５０の３行目と４行目では、関数ａｃｃｕｍｕｌａｔｅ内でローカルに使用する、６４ビットの変数ｄと３２ビットの変数ｉをそれぞれ定義している。【００３１】
動作記述４５０の６行目から８行目では、ローカル変数ｉの値が０から４未満の間で４回繰り返すｆｏｒループ文を記述している。７行目において配列ａと配列ｂの積を配列ｃに代入する処理を記述している。【００３２】
動作記述４５０の１０行目から１２行目では、ローカル変数ｉの値が０から４未満の間で４回繰り返す別のｆｏｒループ文を記述している。１１行目において配列ｃの値をローカル変数ｄに加算する処理を記述している。【００３３】
動作記述４５０の１４行目では、関数ａｃｃｕｍｕｌａｔｅの処理で得られた変数ｄの値を出力して終了する処理を記述している。【００３４】
図５は、図１のフローにおける、縮退用パラメタを抽出するステップ（ステップＳ０２）の詳細を示したものであるである。【００３５】
ステップＳ３０にて動作記述ファイルをオープンする。【００３６】
ステップＳ３１にてオープンした動作記述ファイルの記述が最後であった場合は終了となりステップＳ３８に遷移して動作記述ファイルをクローズするが、記述が最後でない場合はステップＳ３２へ遷移して動作記述を１行読み込む。【００３７】
ステップＳ３３にて読み込んだ記述１行が行の最後であった場合は次の行を調べるためステップＳ３７へ遷移するが、行の最後でない場合はステップＳ３４でトークンを読み込む。【００３８】
ステップＳ３５にて読み込んだトークンが予め決められたパラメタと一致していない場合は次の行を調べるためステップＳ３３へ遷移するが、パラメタと一致した場合はステップＳ３６にてパラメタ一覧表へ追加し、ステップＳ３３へ遷移して動作記述の次のトークンがあるか調べる。このようにして、動作記述の最後になるまで図５のフローを繰り返す。【００３９】
図６は、図５のステップＳ３６で作成するパラメタ一覧表の一例を示したものである。【００４０】
パラメタ一覧表４６２の各列は、左から順に行番号（Ｌｉｎｅ）、分類（Ｃａｔｅｇｏｒｙ）、型（Ｔｙｐｅ）、名前（Ｎａｍｅ）、大きさ（Ｓｉｚｅ）を表す。【００４１】
このパラメタ一覧表４６２は図４に示した動作記述４５０に対応しており、動作記述４５０の１行目（Ｌｉｎｅ＝１）に、出力（Ｃａｔｅｇｏｒｙ＝ｏｕｔｐｕｔ）する６４ビット型（Ｔｙｐｅ＝ｉｎｔ６４）の関数名ａｃｃｕｍｕｌａｔｅ（Ｎａｍｅ＝ａｃｃｕｍｕｌａｔｅ）が大きさ１（Ｓｉｚｅ＝１）であることを示しており、これらは動作記述４５０からステップＳ０２の縮退用パラメタ抽出によって抽出されたものである。【００４２】
同様に、パラメタ一覧表４６２は動作記述４５０の１行目（Ｌｉｎｅ＝１）に、入力（Ｃａｔｅｇｏｒｙ＝ｉｎｐｕｔ）する３２ビット型（Ｔｙｐｅ＝ｉｎｔ３２）の変数名ａ（Ｎａｍｅ＝ａ）が配列サイズ４（Ｓｉｚｅ＝４）であることを示しており、これらも動作記述４５０からステップＳ０２の縮退用パラメタ抽出によって抽出されたものである。以下、パラメタ一覧表４６２の他の行についても同様である。【００４３】
図７は、図１のフローにおける、縮退用パラメタを変更するステップ（ステップＳ０６）の詳細を示したものである。【００４４】
ステップＳ４０にて縮退回路が標準回路を基準とした制約条件からどの程度乖離しているかを示した判定結果を読み込む。【００４５】
判定結果を読み込んだ結果、ステップＳ４１にて前回の判定結果より悪化していなければ、ステップＳ４４に遷移して前回のパラメタを変更するが、前回の判定結果より悪化している場合は、ステップＳ４２に遷移してパラメタの値を元に戻した上でステップＳ４３に遷移して別のパラメタの値を変更し、又はステップＳ４２には遷移せずにステップＳ４３に遷移して別のパラメタの値を変更する処理を行う。【００４６】
パラメタの変更が終わったらステップＳ４５にて変更内容を動作合成記述に出力する。【００４７】
図８は、図７のフローによって変更された動作記述の一例を示したものである。【００４８】
図８に示した動作記述４５１の表記において、ｉｎｔ１６は１６ビットの符号付き整数型であることを示す。同様にｉｎｔ３は３ビットの符号付き整数型であることを示す。【００４９】
図８の動作記述４５１は、図４に示した動作記述４５０と比較して、１行目のｉｎｔ６４だった箇所がｉｎｔ３２に、ｉｎｔ３２だった箇所がｉｎｔ１６に、２行目のｉｎｔ６４だった箇所がｉｎｔ３２に、３行目のｉｎｔ６４だった箇所がｉｉｎｔ３２に、４行目のｉｎｔ３２だった箇所がｉｎｔ３に、６行目から８行目のｆｏｒループ文だった箇所が６行目から９行目の逐次型処理文になっている部分がそれぞれ異なっている。【００５０】
図９は、図１のフローにおける、縮退回路結果が標準回路結果を基準とした制約条件を満たすか否かを判定するステップ（ステップＳ０５）の詳細を示したものである。【００５１】
図９のフローの例において、制約条件４０２には、動作速度制約４１１、面積制約４１４、精度制約４１７が含まれる。【００５２】
また、標準回路結果４０７には、標準性能４１２、標準面積４１５、標準精度４１８が含まれる。【００５３】
また、縮退回路結果４０８には、縮退性能４１３、縮退面積４１６、縮退精度４１９が含まれる。【００５４】
図９のフローの例ではまずステップＳ２１にて動作速度制約４１１、標準性能４１２、縮退性能４１３から縮退性能が標準性能の許容範囲からどの程度乖離しているかを判定し、ステップＳ２２にて動作速度制約４１１の許容範囲内でなかった場合はフローを終了して再び回路生成に戻る。【００５５】
ステップＳ２３にて面積制約４１４、標準面積４１５、縮退面積４１６から縮退面積が標準面積の許容範囲からどの程度乖離しているかを判定し、ステップＳ２４にて面積制約４１４の許容範囲でなかった場合はフローを終了して再び回路生成に戻る。【００５６】
ステップＳ２５にて精度制約４１７、標準精度４１８、縮退精度４１９から縮退精度が標準精度の許容範囲からどの程度乖離しているかを判定し、ステップＳ２６にて精度制約４１７の許容範囲でなかった場合はフローを終了して再び回路生成に戻る。【００５７】
ステップＳ２２，Ｓ２４，Ｓ２６のいずれにおいても制約条件の許容範囲であった場合はこのときの縮退回路記述と縮退回路結果を使用することとし、フローを終了する。【００５８】
また図９では動作速度、面積、精度の順で判定する例を示したが、判定の順番はこの限りではない。【００５９】
図１０は、本実施例における回路生成装置のディスプレイ装置２９１（図１１に示す）に表示されるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）の一例を示したものである。【００６０】
図１０のウィンドウ４７０は、回路生成装置における標準回路、縮退回路、制約条件の情報を表示する。【００６１】
このウィンドウ４７０の例が示すグラフでは、横軸にビット幅、縦軸に動作速度をとり、動作速度の軸の途中に制約ライン４７１がある。【００６２】
回路生成装置によって得られた３２ビットでの標準回路の動作速度の標準結果４７２がグラフ上にプロットされている。【００６３】
一方、３０ビットに減らした場合の縮退回路の動作速度の縮退結果４７３がグラフ上に表示されている。同様に、２４ビットに減らした場合の縮退回路の動作速度の縮退結果４７４、２０ビットに減らした場合の縮退回路の動作速度の縮退結果４７５が表示され、縮退結果４７３，４７４，４７５はまとめて縮退結果一覧４７６として表示されている。【００６４】
このウィンドウ４７０の例ではビット幅を３０ビット、２４ビット、２０ビットと小さくしていった範囲での縮退回路はいずれも制約ライン４７１を上回っているが、次の１６ビットで縮退回路を構成する場合の縮退予想４７７は制約ライン４７１を下回る見込みであることを示している。【００６５】
また図１０の例ではビット幅と動作速度の関係性をＧＵＩに表示した例を示したが、内容はこの限りではなく、ほかのパラメタや制約との関係性をＧＵＩに表示してもよい。【００６６】
図１１は、本実施例における回路生成装置を制御システムの開発環境に適用した場合の一例を示したものである。図１１のコンピュータ２９０とディスプレイ装置２９１は、本実施例における回路生成装置２００を構成している。コンピュータ２９０には、メモリライタ２６０，２６１が接続されており、メモリライタ２６０，２６１は、それぞれポート２５０，２５１を介して制御システム１と接続している。【００６７】
図１１の例では、回路生成装置２００で生成した標準回路記述４０３をメモリライタ２６０から制御システム１に書き込んだものが標準回路Ｃ（６６）であり、回路生成装置２００で生成した縮退回路記述４０４をメモリライタ２６１から制御システム１に書き込んだものが縮退回路Ｃ（６８）である。【００６８】
またこの図１１の制御システム１では、ＦＰＧＡ（６２）内の標準回路Ｃ（６６）でエラーが発生し標準回路Ｃ（６６）が動作不可になった例を示している。【００６９】
エラーが発生した標準回路Ｃ（６６）からの制御出力１０３により、システム制御部６からの切り替え制御信号８１、８０により標準回路Ｃ（６６）に対応した縮退回路Ｃ（６３）が有効になる。【００７０】
このとき、エラーが発生した標準回路Ｃ（６６）からの制御出力１０３は制御システム１の外部に制御出力１０７として出力せず、縮退回路Ｃ（６８）の制御出力１１１を制御出力１０７として出力する。【００７１】
このように、本実施例における回路生成装置２００では、標準機能及び縮退機能がハードウェアで実現される制御システム１において、標準機能と縮退機能を低コストで実装することが可能になる。【００７２】
また、ディスプレイ装置２９１によって標準機能に対する縮退機能の実現度を設計者が逐一ＧＵＩで確認できるため、縮退機能が意図しない性能になりそうな場合は事前に設計を変更することができ、縮退機能を実装するための設計工数を削減することが可能になる。
【実施例２】
【００７３】
本発明の第２の実施例について、図１２及び図１３を用いて説明する。【００７４】
第１の実施例では、単一の動作記述から標準機能を実現するハードウェア（回路記述）と縮退機能を実現するハードウェア（縮退回路記述）を生成する回路生成装置について説明したが、標準機能及び縮退機能がソフトウェアで実装される場合がある。本実施例では、単一の動作記述から標準機能を実現するソフト記述（標準ソフト記述）と縮退機能を実現するソフト記述（縮退ソフト記述）とを生成するソフトウェア生成装置について説明する。【００７５】
図１２は、本実施例におけるソフトウェア生成装置の動作フローの一例を示したものである。本実施例における回路生成装置は、第１の実施例における動作フロー（図１に示す）と比較して、標準回路記述を生成する機能を標準ソフト記述を生成する機能に置き換えた点と、縮退回路記述を生成する機能を縮退ソフト記述を生成する機能に置き換えた点とで異なっている。【００７６】
図１３は、本実施例におけるソフトウェア生成装置を制御システムの開発環境に適用した場合の一例を示したものである。図１３は、第１の実施例（図１１に示す）と比較して、標準回路記述を標準ソフト記述に変更した部分と、縮退回路記述を縮退ソフト記述に変更した部分と、ＦＰＧＡ（６２）をマルチコアシステムに変更した部分と、ＦＰＧＡ（６３）をロックステップコアシステムに変更した部分とが異なっている。図１３のコンピュータ２９０とディスプレイ装置２９１は、本実施例におけるソフトウェア生成装置２０１を構成している。【００７７】
制御システム１Ａは、コア１０，１１，１２，１３の４つのコアがマルチコア構成を採っている。【００７８】
コア１０はメモリ５０と接続しメモリ５０にコア１０のソフトを配置して処理を行う。同様にコア１１はメモリ５１と、コア１２はメモリ５２と、コア１３はメモリ５３とそれぞれ接続しそれぞれのソフトをメモリに配置して処理を行う。【００７９】
図１３の例では、ソフトＡ（３０）はメモリ５０，５１に配置されてコア１０，１１でマルチコア動作する。一方、ソフトＢ（３１）はメモリ５２にのみ配置されてコア１２で動作し、同様にソフトＣ（３２）もメモリ５３のみに配置されてコア１３で動作する。【００８０】
これらのコア１０，１１，１２，１３、メモリ５０，５１，５２，５３、ソフトＡ（３０）、ソフトＢ（３１）、ソフトＣ（３２）を纏めてここではマルチコアシステム２とする。【００８１】
制御システム１Ａのコア２０，２１は、ロックステップ（Ｌｏｃｋ−Ｓｔｅｐ、ＬＳ）を構成している。すなわち、コア２０，２１はメモリ６０を共有し、コア２１でソフトＰ（３４）を動作させる。【００８２】
これらのコア２０，２１、メモリ６０、ソフトＰ（３４）を纏めてここではロックステップコアシステム３とする。【００８３】
更に、図１３に示したシステム制御部６は、コア１０から制御出力１００、コア１１から制御出力１０１、コア１２から制御出力１０２、コア１３から制御出力１０３、コア２０から制御出力１１１、コア２１から制御出力１１０をそれぞれ入力とし、コア１０に対しリセット信号７０、コア１１に対しリセット信号７１、コア１２に対しリセット信号７２、コア１３に対しリセット信号７３、コア２０に対し切り替え制御信号８１、コア２１に対し切り替え制御信号８０をそれぞれ出力し、更に制御出力１０４，１０５，１０６，１０７，１１３を制御システム１Ａ外部へ出力する。【００８４】
図１３の例では、ソフトウェア生成装置２０１で生成した標準ソフト記述４０５をメモリライタ２６０から制御システム１Ａに書き込んだものがソフトＣ（３２）であり、本実施例におけるソフトウェア生成装置２０１で生成した縮退ソフト記述４０６をメモリライタ２６１から制御システム１Ａに書き込んだものが縮退ソフトＣ（３５）である。【００８５】
またこの図１３の制御システム１Ａでは、マルチコアシステム２内のコア１３でエラーが発生しソフトＣ（３２）が動作不可になった例を示している。【００８６】
エラーが発生したコア１３からの制御出力１０３により、システム制御部６からの切り替え制御信号８１，８０によりコア２０，２１はロックステップ動作モードからマルチコア動作モードに切り替わり、ソフトＣ（３２）に対応した縮退ソフトＣ（３５）がメモリ６０に配置される。【００８７】
このとき、エラーが発生したコア１３からの制御出力１０３は制御システム１Ａの外部に制御出力１０７として出力せず、縮退ソフトＣ（３５）が動作中のコア２０の制御出力１１１を制御出力１０７として出力する。【００８８】
このように、本実施例におけるソフトウェア生成装置２０１では、標準機能及び縮退機能がソフトウェアで実現される制御システム１Ａにおいて、標準機能と縮退機能を低コストで実装することが可能になる。
【実施例３】
【００８９】
本発明の第３の実施例について、図１４及び図１５を用いて説明する。【００９０】
図１４は、本実施例における回路生成装置の動作フローの一例を示したものである。本実施例における回路生成装置は、第１の実施例における回路生成装置（図１に示す）と比較して、縮退回路記述を生成する機能を縮退ソフト記述を生成する機能に置き換えた点で異なっている。【００９１】
図１５は、本実施例における回路生成装置を制御システムの開発環境に適用した場合の一例を示したものである。図１５は、第１の実施例（図１１に示す）と比較して、縮退回路記述を縮退ソフト記述に変更した部分と、ＦＰＧＡ（６３）をロックステップコアシステムに変更した部分とが異なっている。図１３のコンピュータ２９０とディスプレイ装置２９１は、本実施例における回路生成装置２０２を構成している。【００９２】
制御システム１ＢのＦＰＧＡ（６２）は、標準回路Ａ（６４）、標準回路Ｂ（６５）、標準回路Ｃ（６６）から成る。【００９３】
図１５の例では、回路生成装置２０２で生成した標準回路記述４０３をメモリライタ２６０から制御システム１Ｂに書き込んだものが標準回路Ｃ（６６）であり、本実施例における回路生成装置２０２で生成した縮退ソフト記述４０６をメモリライタ２６１から制御システム１Ｂに書き込んだものが縮退ソフトＣ（３５）である。【００９４】
またこの図１５の制御システム１Ｂでは、ＦＰＧＡ（６２）内の標準回路Ｃ（６６）でエラーが発生し標準回路Ｃ（６６）が動作不可になった例を示している。【００９５】
エラーが発生した標準回路Ｃ（６６）からの制御出力１０３により、システム制御部６からの切り替え制御信号８１，８０によりコア２０，２１はロックステップ動作モードからマルチコア動作モードに切り替わり、標準回路Ｃ（６６）に対応した縮退ソフトＣ（３５）がメモリ６０に配置される。【００９６】
このとき、エラーが発生した標準回路Ｃ（６６）からの制御出力１０３は制御システム１Ｂの外部に制御出力１０７として出力せず、縮退ソフトＣ（３５）が動作中のコア２０の制御出力１１１を制御出力１０７として出力する。【００９７】
このように、本実施例における回路生成装置２０２では、標準機能をハードウェアで実現しかつ縮退機能をソフトウェアで実現する制御システム１Ｂにおいて、標準機能と縮退機能を低コストで実装することが可能になる。すなわち、システムの標準機能と縮退機能をハードウェアとソフトウェアを問わずに実装できるため、ＦＰＧＡとマイクロコントローラを組み合わせて実装した基板や、ＦＰＧＡとＣＰＵが１−Ｃｈｉｐ化したデバイスなどに対しても低コストに標準機能と縮退機能を実装することが可能になる。
【実施例４】
【００９８】
本発明の第４の実施例について、図１６及び図１７を用いて説明する。【００９９】
図１６は、本実施例におけるソフトウェア生成装置の動作フローの一例を示したものである。本実施例におけるソフト生成装置は、第２の実施例におけるソフトウェア生成装置と比較して、縮退ソフト記述を生成する機能を縮退回路記述を生成する機能に置き換えた点で異なっている。【０１００】
図１７は、本実施例におけるソフトウェア生成装置を制御システムの開発環境に適用した場合の一例を示したものである。図１７は、第２の実施例（図１３に示す）と比較して、縮退ソフト記述を縮退回路記述に変更した部分と、ロックステップコアシステムをＦＰＧＡに変更した部分とが異なっている。図１７のコンピュータ２９０とディスプレイ装置２９１は、本実施例におけるソフトウェア生成装置２０３を構成している。【０１０１】
制御システム１ＣのＦＰＧＡ（６３）は、回路Ｐ（６７）と縮退回路Ｃ（６８）から成る。【０１０２】
図１７の例では、ソフトウェア生成装置２０３で生成した標準ソフト記述４０５をメモリライタ２６０から制御システム１Ｃに書き込んだものがソフトＣ（３２）であり、本実施例におけるソフトウェア生成装置２０３で生成した縮退回路記述４０４をメモリライタ２６１から制御システム１Ｃに書き込んだものが縮退回路Ｃ（６８）である。【０１０３】
またこの図１１の制御システム１Ｃでは、マルチコアシステム２内のコア１３でエラーが発生しソフトＣ（３２）が動作不可になった例を示している。【０１０４】
エラーが発生したコア１３からの制御出力１０３により、システム制御部６からの切り替え制御信号８１，８０によりソフトＣ（３２）に対応した縮退回路Ｃ（６８）が有効になる。【０１０５】
このとき、エラーが発生したコア１３からの制御出力１０３は制御システム１Ｃの外部に制御出力１０７として出力せず、縮退回路Ｃ（６８）の制御出力１１１を制御出力１０７として出力する。【０１０６】
このように、本実施例におけるソフトウェア生成装置２０３では、標準機能をソフトウェアで実現しかつ縮退機能をハードウェアで実現する制御システム１Ｃにおいて、標準機能と縮退機能を低コストで実装することが可能になる。すなわち、ＦＰＧＡとマイクロコントローラを組み合わせて実装した基板や、ＦＰＧＡとＣＰＵが１−Ｃｈｉｐ化したデバイスなどに対しても低コストに標準機能と縮退機能を実装することが可能になる。
【実施例５】
【０１０７】
本発明の第５の実施例について、図１８から図２４を用いて説明する。【０１０８】
図１８は、本実施例における回路生成装置の動作フローの一例を示したものであり、第１の実施例における動作フロー（図１に示す）と比較して、ステップＳ０２ステップＳ１０にて縮退用プラグマを抽出するフローが異なっている。【０１０９】
ステップＳ１０で縮退用プラグマ抽出を実行するために、本実施例の回路生成装置では例えば図１９に示すようなプラグマを使用する。【０１１０】
図１９に示したプラグマ一覧表４６３には、タイプとプラグマ名のタグが付いた２つのプラグマの例がある。タイプが高信頼でプラグマ名がｐｒａｇｍａ  ＨＬＳ  ｒｅｌｉａｂｌｅと、タイプが縮退でプラグマ名がｐｒａｇｍａ  ＨＬＳ  ｄｅｇｅｎｅｒａｔｅである。【０１１１】
図２０の動作記述４５０は図４で説明した動作記述４５０と同じものであるが、この動作記述４５０に対し、タイプが高信頼のプラグマを使用して記述した動作記述の一例が図２１である。【０１１２】
図２１の動作記述４５２は、動作記述４５０の１行目の関数名ａｃｃｕｍｕｌａｔｅに関連した関数名ａｃｃｕｍｕｌａｔｅ＿ｒｅｌｉａｂｌｅを１行目に記載し、２行目にはタイプが高信頼のプラグマ名ともとの関数名である＃ｐｒａｇｍａ  ＨＬＳ  ｒｅｌｉａｂｌｅ  ａｃｃｕｍｕｌａｔｅ；を記載している。この動作記述４５２だけで、動作記述４５０で定義した関数名ａｃｃｕｍｕｒａｔｅを高信頼化した回路を動作合成できる。【０１１３】
図２２の動作記述４５０も図４で説明した動作記述４５０と同じものであるが、この動作記述４５０に対し、タイプが縮退のプラグマを使用して記述した動作記述の一例が図２３である。【０１１４】
図２３の動作記述４５３は、動作記述４５０の１行目の関数名ａｃｃｕｍｕｌａｔｅに関連した関数名ａｃｃｕｍｕｌａｔｅ＿ｄｅｇｅｎｅｒａｔｅを１行目に記載し、２行目にはタイプが縮退のプラグマ名ともとの関数名である＃ｐｒａｇｍａ  ＨＬＳ  ｄｅｇｅｎｅｒａｔｅ  ａｃｃｕｍｕｌａｔｅ；を記載している。この動作記述４５３だけで、動作記述４５０で定義した関数名ａｃｃｕｍｕｒａｔｅを縮退した回路を動作合成できる。なお、図２４に示すように、タイプが縮退のプラグマの引数で縮退回路の制約条件（動作速度、面積、精度）を指定しても良い。【０１１５】
このように、本実施例における回路生成装置では、回路を生成するための専用プラグマを用意することで、設計者が明示的に高信頼回路や縮退回路などの設計を行うことが可能になる。
【実施例６】
【０１１６】
本発明の第６の実施例について、図２５を用いて説明する。【０１１７】
図２５は、本実施例における回路生成装置の動作フローの一例を示したものであり、第１の実施例における動作フロー（図１に示す）と比較して、フローの最後に検証支援情報を生成する部分を追加した点が異なっている。【０１１８】
ステップＳ０５において、制約条件を満たす縮退回路が生成された後、ステップＳ１２にて検証支援情報を生成し、検証支援情報４１０を出力する。【０１１９】
この検証支援情報４１０は、縮退回路記述４０４の機能が標準回路記述４０３の機能と互換性もしくは妥当性を持っているかどうかをシミュレーションにて判定する際に使用するテキストファイル形式の情報であり、市販のシミュレーションツールなどへの入力として使用する。【０１２０】
このように、本実施例における回路生成装置では、検証支援情報を生成することで、設計者が容易に縮退回路の設計を行うことができ、高信頼なシステムを設計する際の設計工数を短縮することが可能になる。なお、本実施例で説明した検証支援情報を生成する機能は、ソフトウェア生成装置にも同様に実装することが可能である。
【実施例７】
【０１２１】
本発明の第７の実施例について、図２６及び図２７を用いて説明する。【０１２２】
図２６及び図２７は、第１の実施例における回路生成装置２００（図１１に示す）をシステム設計ツールに適用した場合の一例を示したものである。【０１２３】
図２６に示したウィンドウ４８０は、回路設計で使用する設計ツールのＧＵＩの一例である。ウィンドウ４８０及び後述するウィンドウ４９０は、回路生成装置２００のディスプレイ装置２９１（図１に示す）に表示される。【０１２４】
ウィンドウ４８０の上部にあるメニューボタン４８１をクリックするとメニューウィンドウ４８２が開き、ここでは縮退回路仕様設定のメニューがある。【０１２５】
この縮退回路仕様設定のメニューをクリックすると図２７に示したようなウィンドウ４９０が開き、これは縮退回路の仕様設定で使用するＧＵＩの一例である。【０１２６】
このウィンドウ４９０の例では、標準回路の動作速度、面積、精度をいずれも１００に設定した上で、縮退回路の動作速度を９５以上、面積を８０以下、精度を７５以上にすることを設定している。【０１２７】
このように、回路生成装置２００をシステム設計における開発ツールに適用することで、設計者が容易に縮退回路の設計を行うことができ、高信頼なシステムを設計する際の設計工数を短縮することが可能になる。
【実施例８】
【０１２８】
本発明の第８の実施例について、図２８を用いて説明する。【０１２９】
図２８は、第１の実施例における回路生成装置２００（図１１に示す）で生成した標準回路及び縮退回路を車載システムに実装した場合の一例を示したものである。【０１３０】
自動車５００の内部は複数の電子制御ユニット（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ、ＥＣＵ）を接続した形で構成している。【０１３１】
この自動車５００では、カメラ５０１がカメラＥＣＵ（５１１）と接続し、ステア５０２がステアＥＣＵ（５１２）と接続し、モーター５０３がモーターＥＣＵ（５１３）と接続しており、さらにカメラＥＣＵ（５１１）、ステアＥＣＵ（５１２）、モーターＥＣＵ（５１３）の各ＥＣＵはそれぞれ統合ＥＣＵ（５１４）と接続し、協調動作することで自動車としての制御を行う。【０１３２】
この構成において、例えばステアＥＣＵ（５１２）でエラーが発生した場合、ステアＥＣＵ（５１２）内にある標準回路Ｃ（６６）に代わり、統合ＥＣＵ（５１４）内の縮退回路Ｃ（６８）を動作させることで、ステアＥＣＵ（５１２）が担っていた最低限の動作を継続し、周囲の状況に応じて前輪５０４と後輪５０５の回転を継続もしくは停止させることで自動車５００全体としては安全動作を担保する。【０１３３】
このように、回路生成装置２００を車載システムに適用することで、自動車を構成するＥＣＵの一部にエラーが発生した場合でも、自動車全体として縮退動作をしながら安全性を保つシステムを容易かつ低コストに実現することが可能になる。
【実施例９】
【０１３４】
本発明の第９の実施例について、図２９を用いて説明する。【０１３５】
図２９は、第１の実施例における回路生成装置２００（図１１に示す）で生成した標準回路及び縮退回路を産業制御システムに実装した場合の一例を示したものである。【０１３６】
この産業制御システムは、システムを統括制御するコンピュータ６００、コンピュータ６００によって制御する制御コントローラ６０１、制御機器６０４を制御するプログラマブルロジックコントローラ６０２、制御機器６０５を制御するプログラマブルロジックコントローラ６０３で構成し、制御コントローラ６０１、プログラマブルロジックコントローラ６０２，６０３はそれぞれ制御ネットワーク６０６を介して接続している。【０１３７】
この構成において、例えばプログラマブルロジックコントローラ６０２でエラーが発生した場合、プログラマブルロジックコントローラ６０２で動作する標準回路Ｃ（６６）に代えて、制御ネットワーク６０６を介して制御コントローラ６０１で縮退回路Ｃ（６８）を動作させることで、プログラマブルロジックコントローラ６０２が担っていた最低限の動作を継続し、制御機器６０４の動作を継続もしくは安全に停止させることで、産業制御システム全体としては安全動作を担保する。【０１３８】
このように、回路生成装置２００を産業制御システムに適用することで、産業制御システムを構成する一部のコントローラにエラーが発生した場合でも、システム全体として縮退動作をしながら安全性を保つシステムを容易かつ低コストに実現することが可能になる。【０１３９】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【０１４０】
１，１Ａ，１Ｂ，１Ｃ…制御システム、２…マルチコアシステム、３…ロックステップコアシステム、１０，１１，１２，１３，２０，２１…コア、５０，５１，５２，５３，６０…メモリ、６２，６３…ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、２００，２０２…回路生成装置、２０１，２０３…ソフトウェア生成装置、２６０，２６１…メモリライタ、２９０，６００…コンピュータ、２９１…ディスプレイ装置、４０１，４５０，４５１，４５２，４５３…動作記述、４０２…制約条件、４０３…標準回路記述、４０４…縮退回路記述、４０５…標準ソフト記述、４０６…縮退ソフト記述、４０７…標準回路結果、４０８…縮退回路結果、４１０…検証支援情報、４７０，４８０，４９０…ウィンドウ、４８１…メニューボタン、４８２…メニューウィンドウ、５００…自動車、５０１…カメラ、５０２…ステア、５０３…モーター、５０４…前輪、５０５…後輪、５１１…カメラＥＣＵ、５１２…ステアＥＣＵ、５１３…モーターＥＣＵ、５１４…統合ＥＣＵ、６０１…制御コントローラ、６０２，６０３…プログラマブルロジックコントローラ、６０４，６０５…制御機器。
【図１】
2019171428.tif 000003
【図２】
2019171428.tif 000004
【図３】
2019171428.tif 000005
【図４】
2019171428.tif 000006
【図５】
2019171428.tif 000007
【図６】
2019171428.tif 000008
【図７】
2019171428.tif 000009
【図８】
2019171428.tif 000010
【図９】
2019171428.tif 000011
【図１０】
2019171428.tif 000012
【図１１】
2019171428.tif 000013
【図１２】
2019171428.tif 000014
【図１３】
2019171428.tif 000015
【図１４】
2019171428.tif 000016
【図１５】
2019171428.tif 000017
【図１６】
2019171428.tif 000018
【図１７】
2019171428.tif 000019
【図１８】
2019171428.tif 000020
【図１９】
2019171428.tif 000021
【図２０】
2019171428.tif 000022
【図２１】
2019171428.tif 000023
【図２２】
2019171428.tif 000024
【図２３】
2019171428.tif 000025
【図２４】
2019171428.tif 000026
【図２５】
2019171428.tif 000027
【図２６】
2019171428.tif 000028
【図２７】
2019171428.tif 000029
【図２８】
2019171428.tif 000030
【図２９】
2019171428.tif 000031
【国際調査報告】
2019171428.tif 000032
2019171428.tif 000033
2019171428.tif 000034