(57)【要約】【課題】浮動小数点型で記述されたモデルに基づき生成された固定小数点型のオブジェクトに含まれうる誤差の要因を特定しやすくすること。【解決手段】浮動小数点型で記述された第１モデルに基づき生成された固定小数点型のオブジェクトを検証する設計支援装置であって、オブジェクトを生成する際に使用したコードに基づいて固定小数点型の記述を浮動小数点型の記述に変換し、浮動小数点型の記述に変換されたコードに基づいて第２オブジェクトを生成する第１生成部と、第１テストデータを与えたときの第１モデルからの第１出力値と、第１テストデータを与えたときのオブジェクトからの第２出力値との間に一致性があるか否かを判定する第１一致性検証部と、第２テストデータを与えたときの第１モデルからの第３出力値と、第２テストデータを与えたときの第２オブジェクトからの第４出力値との間に一致性があるか否かを判定する第２一致性検証部とを含む。【選択図】図１
2017091055.tif 000002
【特許請求の範囲】
【請求項１】
浮動小数点型で記述された第１モデルに基づき生成された固定小数点型のオブジェクトを検証する設計支援装置であって、
前記オブジェクトを生成する際に使用したコードに基づいて固定小数点型の記述を浮動小数点型の記述に変換し、浮動小数点型の記述に変換されたコードに基づいて第２オブジェクトを生成する第１生成部と、
第１テストデータを与えたときの前記第１モデルからの第１出力値と、前記第１テストデータを与えたときの前記オブジェクトからの第２出力値との間に一致性があるか否かを判定する第１一致性検証部と、
第２テストデータを与えたときの前記第１モデルからの第３出力値と、前記第２テストデータを与えたときの前記第２オブジェクトからの第４出力値との間に一致性があるか否かを判定する第２一致性検証部とを含む、設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、浮動小数点型で記述されたモデルに基づき生成された固定小数点型のオブジェクトを検証する設計支援装置に関する。
【背景技術】
【０００２】
浮動小数点型の変数を用いて演算処理を表す基準モデルと、基準モデルにおける変数の型が浮動小数点型から固定小数点型に変更された比較モデルと読み込み、基準モデルにおけるブロックと、比較モデルにおけるブロックを順次実行し、同一のブロックにて得られた演算結果の差分を算出し、差分が許容範囲を超えたブロックの強調表示を行う設計支援装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2012-198804号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、浮動小数点型で記述されたモデルに基づき生成された固定小数点型のオブジェクトには、いわゆるバグに起因した誤差のほか、浮動小数点型から固定小数点型への変換に起因した量子化誤差が含まれうる。検証の際に設計者が見つけたい誤差は、バグに起因した誤差である。しかしながら、上記の特許文献１に開示されるような従来技術では、これらの誤差を判別しないため、誤差要因を特定するための目視による検証が必要である。
【０００５】
そこで、本発明は、浮動小数点型で記述されたモデルに基づき生成された固定小数点型のオブジェクトに含まれうる誤差の要因を特定しやすくする設計支援装置の提供を目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明によれば、浮動小数点型で記述された第１モデルに基づき生成された固定小数点型のオブジェクトを検証する設計支援装置であって、
前記オブジェクトを生成する際に使用したコードに基づいて固定小数点型の記述を浮動小数点型の記述に変換し、浮動小数点型の記述に変換されたコードに基づいて第２オブジェクトを生成する第１生成部と、
第１テストデータを与えたときの前記第１モデルからの第１出力値と、前記第１テストデータを与えたときの前記オブジェクトからの第２出力値との間に一致性があるか否かを判定する第１一致性検証部と、
第２テストデータを与えたときの前記第１モデルからの第３出力値と、前記第２テストデータを与えたときの前記第２オブジェクトからの第４出力値との間に一致性があるか否かを判定する第２一致性検証部とを含む、設計支援装置が提供される。
【発明の効果】
【０００７】
本発明によれば、浮動小数点型で記述されたモデルに基づき生成された固定小数点型のオブジェクトに含まれうる誤差の要因を特定しやすくする設計支援装置が得られる。
【図面の簡単な説明】
【０００８】
【図１】設計支援装置を用いて実行できる一致性検証処理の一例を示すフローチャートである。
【図２】図１の処理の説明図である。
【図３】第１一致性検証及び第２一致性検証のそれぞれにおける差分要因を表す表図である。
【図４】設計支援装置を用いて実行できるタグ埋め込み処理及び浮動小数点化処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明を実施するための最良の形態の説明を行う。
【００１０】
設計支援装置は、オペレーションシステム等がインストールされているコンピューター、マウスやキーボード等のようなユーザインターフェースを含む。また、設計支援装置は、コード生成ツール、一致性検証ツールを含む。
【００１１】
図１は、設計支援装置を用いて実行できる一致性検証処理の一例を示すフローチャートである。尚、以下の各種処理は、設計者が行うが、一部又は全部を設計支援装置が自動的に実現することもできる。
【００１２】
ステップＳ１００では、設計者は、設計支援装置を用いて、浮動小数点型で記述されたモデル（以下、「浮動小数点型モデル」と称する）に基づいて、固定小数点型のコード（本例ではＣコード）を生成し、生成した固定小数点型のＣコードに基づいて、固定小数点型オブジェクトを生成する。浮動小数点型モデルから固定小数点型オブジェクトの生成は、例えばＭＡＴＬＡＢ（登録商標）などのモデル・コード生成ツールを用いて実現できる。
【００１３】
ステップＳ１０２では、設計者は、設計支援装置を用いて、浮動小数点型モデルとステップＳ１００で生成した固定小数点型オブジェクトとの一致性を検証する。以下、ステップＳ１０２の一致性検証を、後述のステップＳ１１２の一致性検証との区別のために、「第１一致性検証」と称する。かかる第１一致性検証は、一致性検証ツールを用いて実現できる。例えば、一致性検証ツールは、所定のテストデータ（第１テストデータの一例）を浮動小数点型モデルと固定小数点型オブジェクトのそれぞれに与え、各出力結果（第１出力値及び第２出力値一例）をブロックごとに比較する。
【００１４】
ステップＳ１０４では、設計者は、設計支援装置を用いて、ステップＳ１０２での検証結果に基づいて、浮動小数点型モデルと固定小数点型オブジェクトとの間に一致性があるか否かを判定する。尚、検証ツールは、ブロックごとに、各出力結果に差分がある場合に、一致性がないことを示す情報を出力してもよい。この場合、設計者は、かかる情報に基づいて、ブロックごとに一致性があるか否かを判定できる。判定結果が"ＹＥＳ"の場合、ステップＳ１０６に進み、それ以外の場合は、ステップＳ１０８に進む。
【００１５】
ステップＳ１０６では、設計者は、浮動小数点型モデルと固定小数点型オブジェクトとの間の一致性が"合格"であると判断する（即ち浮動小数点型モデルに基づく固定小数点型オブジェクトには、バグが無いと判断する）。
【００１６】
ステップＳ１０８では、設計者は、設計支援装置を用いて、ステップＳ１００で生成した固定小数点型オブジェクトの生成の際に用いた固定小数点型のＣコードを浮動小数点化する。
【００１７】
ステップＳ１１０では、設計者は、設計支援装置を用いて、ステップＳ１０８で浮動小数点化したＣコードに基づいて、浮動小数点型のオブジェクト（第２オブジェクトの一例）を生成する。
【００１８】
ステップＳ１１２では、設計者は、設計支援装置を用いて、浮動小数点型モデルと、ステップＳ１１０で生成した浮動小数点型のオブジェクトとの一致性を検証する。以下、ステップＳ１１２の一致性検証を、「第２一致性検証」と称する。かかる一致性検証は、第１一致性検証と同様、一致性検証ツールを用いて実現できる。例えば、一致性検証ツールは、所定のテストデータ（第２テストデータの一例）を浮動小数点型モデルと浮動小数点型オブジェクトのそれぞれに与え、各出力結果（第３出力値及び第４出力値一例）をブロックごとに比較する。尚、ステップＳ１１２で用いるテストデータは、ステップＳ１０２での一致性検証に用いるテストデータと同じデータであってもよいし、異なるデータであってもよい。ステップＳ１１２で用いるテストデータは、ステップＳ１０２での一致性検証に用いるテストデータと同じデータである場合、同テストデータは、ステップＳ１１０で生成した浮動小数点型のオブジェクトにだけ与えられ、その結果として得られる出力結果が、ステップＳ１０２で得られた浮動小数点型モデルの出力結果と比較されればよい。
【００１９】
ステップＳ１１４では、設計者は、設計支援装置を用いて、ステップＳ１１２での検証結果に基づいて、浮動小数点型モデルと浮動小数点型オブジェクトとの間に一致性があるか否かを判定する。尚、検証ツールは、ブロックごとに、各出力結果に差分がある場合に、一致性がないことを示す情報を出力してもよい。この場合、設計者は、かかる情報に基づいて、ブロックごとに一致性があるか否かを判定できる。判定結果が"ＹＥＳ"の場合、ステップＳ１１６に進み、それ以外の場合は、ステップＳ１１８に進む。
【００２０】
ステップＳ１１６では、設計者は、ステップＳ１０２で得られる差分は、量子化誤差によるものであると判断し、ステップＳ１０６に進む。
【００２１】
ステップＳ１１８では、設計者は、ステップＳ１０２で得られる差分の原因を目視により特定する。例えば、設計者は、第１一致性検証で一致性が確認できないブロックごとに、差分の原因を目視により特定する。
【００２２】
ステップＳ１２０では、設計者は、ステップＳ１１８の目視結果に基づいて、ステップＳ１０２で得られる差分の原因が量子化誤差であるか否かを判定する。判定結果が"ＹＥＳ"の場合、ステップＳ１０６に進み、それ以外の場合は、ステップＳ１２２に進む。
【００２３】
ステップＳ１２２では、設計者は、浮動小数点型モデルと固定小数点型オブジェクトとの間の不一致性が"不合格"であると判断する（即ち浮動小数点型モデルに基づく固定小数点型オブジェクトには、バグがあると判断する）。
【００２４】
図２は、図１の処理の説明図である。図３は、第１一致性検証及び第２一致性検証のそれぞれにおける差分要因（誤差要因）を表す表図である。
【００２５】
図２には、浮動小数点型モデルとして、Simulinkモデルが図示されている。Simulinkモデルは、固定小数点化され、固定小数点型のＣコードが得られる（ステップＳ２００）。固定小数点型のＣコードは、オブジェクトに変換される（ステップＳ２０２）。この一連の処理は、図１のステップＳ１００の処理に対応する。このようにして得られた固定小数点型オブジェクトは、Simulinkモデルに対して一致性が検証される（Ｐ１参照）。これは、上述した図１のステップＳ１０２の第１一致性検証に対応する。
【００２６】
ここで、図２に吹き出しＸ１及びＸ２で模式的に示すように、Simulinkモデルに基づき固定小数点型のＣコードが生成される際、バクＡが混入し得り、且つ、固定小数点化に伴う量子化誤差が発生し得る。第１一致性検証では、図３に示すように、このようなバグＡ及び量子化誤差が差分要因となる。即ち、このようなバグＡ及び量子化誤差は、ステップＳ１０４での否定判定の原因となる。
【００２７】
固定小数点型のＣコードは、図１のステップＳ１０８により、浮動小数点化され、浮動小数点型のＣコードが得られる（ステップＳ２０４）。浮動小数点型のＣコードは、図１のステップＳ１１０により、オブジェクトに変換される（ステップＳ２０６）。このようにして得られた浮動小数点型オブジェクトは、Simulinkモデルに対して一致性が検証される（Ｐ２参照）。これは、上述した図１のステップＳ１１２の第２一致性検証に対応する。
【００２８】
図２に吹き出しＸ３で模式的に示すように、Simulinkモデルに基づく固定小数点型のＣコードから浮動小数点型のＣコードが生成される際、Simulinkモデルに基づく固定小数点型のＣコード生成の際の固定小数点化に伴う量子化誤差は、無くなる（元に戻されるため）。他方、図２に吹き出しＸ４で模式的に示すように、固定小数点型のＣコードから浮動小数点型のＣコードが生成される際、バクＢが混入し得る。第２一致性検証では、図３に示すように、このようなバグＡ（残存）及びバグＢが差分要因となる。即ち、このようなバグＡ及びバグＢは、ステップＳ１１４での否定判定の原因となる。
【００２９】
従って、例えば、Simulinkモデルに基づき固定小数点型のＣコードが生成される際、バクが混入せず、固定小数点化に伴う量子化誤差だけが発生した場合、ステップＳ１０４での否定判定の原因となる。これに伴い、第２一致性検証が行われる。このとき、第２一致性検証のために、固定小数点型のＣコードから浮動小数点型のＣコードが生成される際に、バグが混入しなかった場合、量子化誤差は消える。このように、第１一致性検証で一致性が確認できない場合であっても、バクが無く、量子化誤差の可能性がある。しかしながら、このような誤差要因の特定は、目視によりチェックするしかなく、設計者の負担が大きくなる。
【００３０】
この点、第１一致性検証で一致性が確認できないときの誤差要因が量子化誤差だけである場合、上述のように第２一致性検証で一致性が確認できる場合がある。この点を利用して、上述した実施例によれば、第１一致性検証及び第２一致性検証を行うことで、浮動小数点型で記述されたモデルに基づき生成された固定小数点型のオブジェクトに含まれうる誤差の要因を特定しやすくすることができる。即ち、第１一致性検証だけで一致性が確認できないときは、設計者は、目視によりチェックを省略し、誤差の要因が量子化誤差であると判断できる。この結果、誤差要因を特定するための目視による検証機会が低減され又は無くなり、設計効率を高めることができる。
【００３１】
尚、上述した実施例では、第１一致性検証を行ってから、第２一致性検証を行っているが、逆であってもよい。即ち、第２一致性検証を行ってから、第１一致性検証を行ってもよい。この場合、設計者は、第２一致性検証で一致性が確認できない場合に、第１一致性検証を行うこととする。ここで、一般的に図３に示した差分要因のうち、一致性検証により出てくる差分の大半は、量子化誤差によるものである。そのため、第１一致性検証で確認できる差分の数は、第２一致性検証で確認できる差分の数よりも多い。従って、第２一致性検証を第１一致性検証よりも先に行う方が、検証する差分数が少なくて済み、効率的な検証を実現できる。
【００３２】
次に、図４を参照して、図１の一致性検証処理に適用されるのが好適なタグ埋め込み処理及び浮動小数点化処理について説明する。
【００３３】
図４は、設計支援装置を用いて実行できるタグ埋め込み処理及び浮動小数点化処理の一例を示すフローチャートである。尚、以下の各種処理は、設計者が行うが、一部又は全部を設計支援装置が自動的に実現することもできる。
【００３４】
ステップＳ４００乃至ステップＳ４０２の処理は、図１のステップＳ１００の処理に含まれる態様で、実行できる。
【００３５】
ステップＳ４００乃至ステップＳ４０２では、設計者は、設計支援装置を用いて、浮動小数点型モデルから、固定小数点化の処理に対してタグを埋め込みながら、固定小数点型Ｃコードを生成する。尚、タグは、固定小数点化の処理の個所を特定できる態様で埋め込まれる限り、任意の個所に埋め込まれてもよく、例えば固定小数点を含む計算式の全体に対してタグが付与されてもよいし、該計算式中の固定小数点化の部位に対して個別的にタグが付与されてもよい。
【００３６】
ステップＳ４０４乃至ステップＳ４１０の処理は、図１のステップＳ１０８の処理として実行できる。
【００３７】
ステップＳ４０４では、設計者は、設計支援装置を用いて、ステップＳ４０２で生成された固定小数点型Ｃコードをチェックする。
【００３８】
ステップＳ４０６では、設計者は、ステップＳ４０４でのチェック結果に基づいて、固定小数点型Ｃコードに、タグが埋め込まれているか否かを判定する。判定結果が"ＹＥＳ"の場合、ステップＳ４０８に進み、それ以外の場合は、そのまま終了する（即ち固定小数点化がなされていないと判断する）。
【００３９】
ステップＳ４０８では、設計者は、設計支援装置を用いて、タグに基づいて固定小数点化処理の個所を特定する。
【００４０】
ステップＳ４１０では、設計者は、設計支援装置を用いて、ステップＳ４０８で特定した固定小数点化処理の記述を削除する（即ち、浮動小数点化の記述に変換する）。
【００４１】
ところで、従来では、固定小数点型Ｃコードを浮動小数点化するためには、設計者は、１つ１つの処理を精査し、ＬＳＢ(Least Significant Bit)変換など固定小数点化の処理に当たる個所を特定する必要があった。他方、固定小数点型Ｃコードを見ただけでは、固定小数点化の処理と制御ロジック上の処理とを機械的に切り分けることは難しい。例えば、固定小数点型Ｃコードにおいて、ＬＳＢ変換などの処理は、以下のように記述される。
（５００／０．１）÷（１０．０／０．５）×（５／２）
これは、一例として、面積１０．０ｍ２（ＬＳＢ＝０．５）の領域に、力５００Ｎ（ＬＳＢ＝０．１）が掛かるときの圧力（ＬＳＢ＝０．５）を算出する式を表す。上記の記述において、（５００／０．１）の"／０．１"、（１０．０／０．５）の"／０．５"、及び"×（５／２）"は、固定小数点化の処理であるが、一見しただけでは、物理量や係数と区別するのが難しい。これは、固定小数点化のための数値と他の物理量等とを区別するためには、各値の意味やＬＳＢを考慮する必要があるためである。
【００４２】
この点、図４に示す処理によれば、浮動小数点型モデルから固定小数点型Ｃコードを生成する際に、固定小数点化の処理に対してタグが埋め込まれる。従って、固定小数点型Ｃコードにおけるタグの有無を判断し、タグが埋め込まれた処理を固定小数点化処理と判断できる。これにより、固定小数点化の処理と物理量とを区別することが容易となり、図１のステップＳ１０８の処理を高効率に実現できる。また、タグの埋め込みやタグの有無の判別は機械的に実現するのが容易であるので、図４に示す処理は、機械化（ソフトウェアにより実行）が容易である。
【００４３】
尚、図４に示す処理は、浮動小数点型モデルから固定小数点型Ｃコードを生成する際に、固定小数点化の処理に対してタグが埋め込まれるが、固定小数点型モデルから固定小数点型Ｃコードを生成する際に、図４に示す処理を利用することもできる。即ち、固定小数点型モデルから固定小数点型Ｃコードを生成する際に、固定小数点化の処理に対してタグが埋め込まれるようにしてもよい。この場合も、固定小数点型Ｃコードにおける固定小数点化のための数値と他の物理量等とを区別することが容易となる。
【００４４】
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなく、上述した実施例に種々の変形及び置換を加えることができる。
【符号の説明】
【００４５】
Ｐ１    第１一致性検証
Ｐ２    第２一致性検証
【図１】
2017091055.tif 000003
【図２】
2017091055.tif 000004
【図３】
2017091055.tif 000005
【図４】
2017091055.tif 000006