(57)【要約】  本発明は、マイクロコントローラなどの演算処理装置について、アーキテクチャまたは動作周波数が異なっていても互換性を容易に検証できる互換性検証装置を提供する。本発明による互換性検証装置は、第１および第２の演算処理装置がそれぞれ実行する第１および第２のプログラムにおける出力信号のタイミング制約情報を格納する記憶手段と、第１および第２の演算処理装置の実行結果を、記憶手段から入力するタイミング制約情報に基づいて比較し、比較結果を出力する比較手段とを備える。
2015049758.tif 000002
【特許請求の範囲】
【請求項１】
第１の演算処理装置と、前記第１の演算処理装置とはアーキテクチャまたは動作周波数が異なる第２の演算処理装置との互換性を検証する互換性検証装置において、
前記第１の演算処理装置が実行する第１のプログラムおよび前記第２の演算処理装置が実行する第２のプログラムにおける出力信号のタイミング制約情報を格納する記憶手段と、
前記第１の演算処理装置が前記第１のプログラムを実行した第１の結果と、前記第２の演算処理装置が前記第２のプログラムを実行した第２の結果とを、前記記憶手段から入力する前記タイミング制約情報に基づいて比較し、比較結果を出力する比較手段と、
を備えることを特徴とする互換性検証装置。
【請求項２】
請求項１に記載の互換性検証装置において、前記比較結果には、前記タイミング制約情報を満足するか否か、あるいは違反するか否かに関する第１の判定結果が含まれることを特徴とする互換性検証装置。
【請求項３】
請求項２に記載の互換性検証装置において、前記第１の結果における第１の出力データと、前記第２の結果における第２の出力データと、前記比較結果と、を表示する表示手段を備えることを特徴とする互換性検証装置。
【請求項４】
請求項２に記載の互換性検証装置において、前記タイミング制約情報は、制御周期，前記第１の結果における第１の出力データまたは前記第２の結果における第２の出力データの出力時刻，前記第１の出力データまたは前記第２の出力データの出力時刻の範囲，前記第１の出力データまたは前記第２の出力データの出力順番に関する情報の内のいずれかを含むことを特徴とする互換性検証装置。
【請求項５】
請求項４に記載の互換性検証装置において、前記第１の出力データと、前記第２の出力データと、前記比較結果と、を表示する表示手段を備えることを特徴とする互換性検証装置。
【請求項６】
請求項１に記載の互換性検証装置において、前記第１のプログラムおよび前記第２のプログラムから前記タイミング制約情報を抽出し、前記記憶手段に格納するタイミング制約情報生成手段を備えることを特徴とする互換性検証装置。
【請求項７】
請求項２に記載の互換性検証装置において、前記比較結果には、前記第１の結果における第１の出力データの値と前記第２の結果における第２の出力データの値の一致または不一致に関する第２の判定結果が含まれることを特徴とする互換性検証装置。
【請求項８】
請求項７に記載の互換性検証装置において、前記第１の結果における第１の出力データと、前記第２の結果における第２の出力データと、前記比較結果と、を表示する表示手段を備えることを特徴とする互換性検証装置。
【請求項９】
請求項１において、前記第１の結果を保存する第１のデバッガと、前記第２の結果を保存する第２のデバッガを備え、前記比較手段は、前記第１のデバッガから送信される前記第１の結果と前記第２のデバッガから送信される前記第２の結果を比較することを特徴とする互換性検証装置。
【請求項１０】
請求項１に記載の互換性検証装置において、前記第１の演算処理装置または前記第２の演算処理装置が、マイクロコントローラ，ＦＰＧＡ，ＡＳＩＣ，ＡＳＳＰの内のいずれかであることを特徴とする互換性検証装置。
【請求項１１】
請求項１に記載の互換性検証装置において、前記タイミング制約情報は、前記第１のプログラムおよび前記第２のプログラムにおいて、検証記述言語で記述されることを特徴とする互換性検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なるマイクロコントローラの互換性を検証する互換性検証装置に関する。
【背景技術】
【０００２】
業務用空調システム，建設機械，鉄道信号システム，プラント制御システムなど、産業用途向けの組み込みシステムは、製品寿命の長期化を要求されるため、メーカは納品したシステムを、納品終了後そして生産終了後も、数十年という長期に渡る保守サポートを行う。【０００３】
組み込みシステムについて長期の保守サポートを実現する場合、システムを実装しているマイクロコントローラなどの各部品を、保守期間中、確保しておく必要がある。しかしながら、半導体製造プロセスは日々微細化が進んでおり、半導体メーカも設備投資などで生産ラインを変更するため、供給中のマイクロコントローラなどが生産終了になることがある。このとき、組み込みシステムの保守を維持するためには、半導体メーカの生産終了前にまとめてマイクロコントローラを大量に購入することが考えられるが、これには多大なコストがかかり、また、大量のマイクロコントローラを適切な管理下で保存するための場所を要する。【０００４】
組み込みシステムの保守を維持する別の手段としては、生産終了になるマイクロコントローラとは別の新しいマイクロコントローラを用いて、動作させるプログラムを移植し互換動作をさせるという方法が有る。この場合、既存のマイクロコントローラとは別の新しいマイクロコントローラとの間で、動作させるプログラムの互換性の検証が必要であるが、マイクロコントローラ間のアーキテクチャが異なるため、例えば、同じタイミングで同じ値が出力されるとは限らず、互換性の検証が難しい。【０００５】
このような互換性検証の問題に対する従来技術として、例えば特許文献１に記載の技術が知られている。本技術においては、２つのＣＰＵ（Central Processing Unit）の動作が一致していることをシミュレーション結果に基づいて検証する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−１８７７９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明者の検討によれば、上記従来技術では、ソフトウェア互換性を持つが実行タイミングが異なる２つのＣＰＵ間での互換性の検証を前提としており、ＣＰＵアーキテクチャや動作周波数、搭載されている周辺回路の仕様などが異なるマイクロコントローラの分野では適用が難しいという問題がある。【０００８】
そこで、本発明は、アーキテクチャまたは動作周波数が異なる、マイクロコントローラなどの演算処理装置について、互換前と互換後でシステムとして同じ動作をしているかどうかの互換性を容易に検証できる互換性検証装置を提供する。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明による互換検証装置は、第１の演算処理装置と、第１の演算処理装置とはアーキテクチャまたは動作周波数が異なる第２の演算処理装置との互換性を検証するものであって、第１の演算処理装置が実行する第１のプログラムおよび第２の演算処理装置が実行する第２のプログラムにおける出力信号のタイミング制約情報を格納する記憶手段と、第１の演算処理装置が第１のプログラムを実行した第１の結果と、第２の演算処理装置が第２のプログラムを実行した第２の結果とを、記憶手段から入力するタイミング制約情報に基づいて比較し、比較結果を出力する比較手段と、を備える。
【発明の効果】
【００１０】
本発明によれば、アーキテクチャまたは動作周波数が異なる演算処理装置について、これらのプログラム実行結果をタイミング制約情報に基づいて比較することにより、容易に互換性を検証することが可能になる。【００１１】
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例１である互換性検証装置の全体構成を示すブロック図である。
【図２】マイクロコントローラの外観例を示す。
【図３】Ｃ言語で記載されるプログラムの例である。
【図４】実行結果を記載したファイル例の一部を示す。
【図５】タイミング制約情報生成部の処理の流れを示すフローチャートである。
【図６】タイミング制約情報を記載したファイルの一例を示す。
【図７】比較部の処理の流れを示すフローチャートである。
【図８】比較結果を記載したファイルの一例を示す。
【図９】システムの処理内容をＧＵＩ画面に表示させた画像表示の一例である。
【図１０】制御周期の制約に違反している実行結果を記載したファイルの一例である。
【図１１】実行結果の比較結果を示す。
【図１２】システムの処理内容をＧＵＩ画面に表示させた画像表示の一例である。
【図１３】複数組の出力信号の比較結果をＧＵＩ画面上に表示した画像表示の一例である。
【図１４】実施例２におけるプログラム実行結果およびプログラムを示す。
【図１５】実施例２におけるタイミング制約情報および比較結果を示す。
【図１６】比較結果の内容をＧＵＩ画面に表示した画像表示例である。
【図１７】実施例３におけるプログラムおよびタイミング制約情報を示す。
【図１８】出力信号のタイミング制約をＧＵＩ画面に表示した画像表示の例を示す。
【図１９】実施例４におけるプログラムを示す。
【図２０】実施例４におけるタイミング制約情報および比較結果を示す。
【図２１】比較結果の内容をＧＵＩ画面に表示した画像表示の例を示す。
【図２２】検証記述言語によって記述されるタイミング制約条件の例を示す。
【図２３】本発明の実施例６である互換性検証装置の全体構成を示すブロック図である。
【図２４】実施例６の変形例である互換性検証装置の全体構成を示すブロック図である。
【図２５】本発明の実施例７である互換性検証装置のハードウェア構成例を示す。
【図２６】本発明の実施例８である互換性検証装置のハードウェア構成例を示す。
【発明を実施するための形態】
【００１３】
以下、本発明の実施例を、図面を用いて説明する。なお、図中の符号は、本文中において、括弧を付して記す。
【実施例１】
【００１４】
図１は、本発明の実施例１である互換性検証装置の全体構成を示すブロック図である。【００１５】
マイクロコントローラＡ（１）は、プログラムＡ（３）を実行し、実行結果Ａ（５）を出力する。またマイクロコントローラＢ（２）は、マイクロコントローラＡ（１）とは異なるＣＰＵアーキテクチャや異なる周辺回路を持つ仕様となっており、マイクロコントローラＢ（２）用に書かれたプログラムＡ（３）と同じ内容のプログラムＢ（４）を実行し、実行結果Ｂ（６）を出力する。【００１６】
ここで、タイミング制約情報生成部７は、プログラムＡ（３）およびプログラムＢ（４）の中に記載されているシステムの制御周期などの設定情報を元に、タイミング制約情報８を出力する。【００１７】
比較部９は、実行結果Ａ（５）と実行結果Ｂ（６）の内容を比較する際に、タイミング制約情報８の内容に基づいて比較し、比較結果１０を出力する。【００１８】
図２は、図１の互換性検証装置で使用するマイクロコントローラの外観例を示す。【００１９】
図２（ａ）のマイクロコントローラＡ（１）と図２（ｂ）のマイクロコントローラＢ（２）は、それぞれ全く別のマイクロコントローラであり、パッケージおよびピン配置も異なる。【００２０】
例えば、マイクロコントローラＡ（１）のアナログ信号入力ピングループ２１はマイクロコントローラＢ（２）のアナログ信号入力ピングループ２４に対応し、マイクロコントローラＡ（１）のデジタル信号入力ピングループ２２はマイクロコントローラＢ（２）のデジタル信号入力ピングループ２５に対応し、同様に、マイクロコントローラＡ（１）のデジタル信号出力ピングループ２３はマイクロコントローラＢ（２）のデジタル信号出力ピングループ２６に対応する。【００２１】
この図２で示すように、本実施例の互換性検証装置は、端子の配置が異なるような、仕様の違うマイクロコントローラも対象としている。【００２２】
図３は、プログラミング言語の一種であるＣ言語で記載されるプログラムの例である。【００２３】
図３（ａ）のプログラムＡ（３）では、システムの制御周期を、マイクロコントローラＡ（１）に内蔵されているタイマモジュールによって設定する。プログラムＡ（３）の２行目では、ｓｅｔ＿ｔｉｍｅｒという関数を定義している。プログラムＡ（３）の４行目では、ｔｉｍｅｒ＿ｌｉｍｉｔという変数に、３［ｍｓ］の値を指定しており、６行目のｔｉｍｅｒ＿ｓｅｔ（ｔｉｍｅｒ＿ｌｉｍｉｔ）関数呼び出しによって、３［ｍｓ］に指定した制御周期を有効にしている。【００２４】
図３（ｂ）のプログラムＢ（４）では、システムの制御周期と出力データ信号のタイミング制約を、マイクロコントローラＢ（２）に内蔵されているタイマモジュールによって設定する。プログラムＢ（４）の２行目で、プログラムＡ（３）の２行目と同じくｓｅｔ＿ｔｉｍｅｒという関数を定義しているが、４行目から６行目の内容はプログラムＡ（３）とは異なっている。プログラムＢ（４）の４行目は、１６進表記で０ｘ００００Ａ０００の値をＴＩＭＥＲ＿ＬＩＭＩＴ＿ＲＥＧ変数に代入することで、このマイクロコントローラＢ（２）で制御周期を３［ｍｓ］に設定している。プログラムＢ（４）の５行目でタイマモジュールを有効にし、６行目でタイマモジュールによる時間計測を開始している。【００２５】
このように、２つのマイクロコントローラのアーキテクチャが異なる場合、それぞれのマイクロコントローラで同様の処理をさせようとしても、プログラミング言語による記述方法は異なる。【００２６】
また、図３（ｂ）のプログラムＢ（４）の９行目以降は、出力信号のタイミング制約の設定をするための関数ｏｕｔｄａｔａ＿ｌｉｍｉｔを追加している。システムからの出力データ信号をＯｕｔＤａｔａ［ｎ］（ｎは正の整数）で定義しているこのプログラムＢ（４）では、ｏｕｔｄａｔａ＿ｌｉｍｉｔ関数内の１２行目でＬｉｍｉｔ（ＯｕｔＤａｔａ［２］，  ２．５）；という記述により、２番目の出力データ信号を時刻２．５［ｍｓ］までに出力することを規定している。同様に、１３行目では５番目の出力データ信号を時刻５．５［ｍｓ］までに出力することを規定し、１４行目では８番目の出力データ信号を時刻８．５［ｍｓ］までに出力することを規定している。【００２７】
図４は、実行結果を記載したファイル例の一部を示す。【００２８】
図４（ａ）は、マイクロコントローラＡ（１）でプログラムＡ（３）を実行し、得られた実行結果Ａ（５）である。実行結果Ａ（５）の１行目は、１番目の出力データ信号ＯｕｔＤａｔａ［１］について、出力値が４’ｂ１０１０で、時刻０．７［ｍｓ］に出力されたことを表している。実行結果Ａ（５）の２行目以降も同様に、出力値と時刻が記録されている。【００２９】
また図４（ｂ）は、マイクロコントローラＢ（２）でプログラムＢ（４）を実行し、得られた実行結果Ｂ（６）の例である。実行結果Ｂ（６）は実行結果Ａ（５）と比較して、１行目から９行目に記載された出力値はいずれも等しいが、出力時刻が異なっている。例えば出力データ信号ＯｕｔＤａｔａ［１］は、実行結果Ａ（５）では時刻０．７［ｍｓ］に出力されているが、実行結果Ｂ（６）では同じ値が時刻０．５［ｍｓ］に出力されている。他の出力データ信号についても同様に、出力値は等しいが出力時刻が異なっている。【００３０】
このように、本実施例の互換性検証装置では、互換前のシステムと互換後のシステムにおいて、マイクロコントローラのアーキテクチャが異なることに起因して出力データ信号の出力時刻に差が生じる。【００３１】
図５は、図１のタイミング制約情報生成部７の処理の流れを示すフローチャートである。【００３２】
タイミング制約情報生成部７ではまず、入力情報として、ステップ（Ｓ０１）でプログラムＡを入力する。【００３３】
ステップ（Ｓ０２）では、ステップ（Ｓ０１）で入力したプログラムＡからプログラムの記述を一つ読み出し、ステップ（Ｓ０３）でタイミング制約に関する記述が無いかどうかを判定し、タイミング制約に関する記述が有ればステップ（Ｓ０４）に遷移する。すなわち、ステップ（Ｓ０３）では、プログラムＡにおけるタイミング制約に関する記述を抽出している。ここでのタイミング制約に関する記述としては、例えば、図３（ａ）で示したプログラムＡの４行目における制御周期の指定に関する記述が該当する。【００３４】
ステップ（Ｓ０４）では、プログラムＡのタイミング制約に関する記述から、出力信号に関するタイミング制約情報を生成する。【００３５】
そしてステップ（Ｓ０３）に戻り、プログラムＡのタイミング制約に関する記述が無くなるまでステップ（Ｓ０３）とステップ（Ｓ０４）を繰り返す。【００３６】
ステップ（Ｓ０３）でプログラムＡのタイミング制約に関する記述が無くなると、ステップ（Ｓ０５）に遷移し、入力情報として、プログラムＢを入力する。【００３７】
ステップ（Ｓ０６）では、ステップ（Ｓ０５）で入力したプログラムＢからプログラムの記述を一つ読み出し、ステップ（Ｓ０７）でタイミング制約に関する記述が無いかどうかを判定し、タイミング制約に関する記述に該当すればステップ（Ｓ０８）に遷移する。すなわち、ステップ（Ｓ０７）では、プログラムＢに関するタイミング制約に関する記述を抽出している。ここでのタイミング制約に関する記述としては、例えば、図３（ｂ）で示したプログラムＢの４行目における制御周期の指定に関する記述や、図３（ｂ）のプログラムＢの１２行目から１４行目における出力データ信号のタイミング制約の設定に関する記述が該当する。【００３８】
ステップ（Ｓ０８）では、プログラムＢのタイミング制約に関する記述から、出力信号に関するタイミング制約情報を生成する。【００３９】
そしてステップ（Ｓ０７）に戻り、プログラムＢのタイミング制約に関する記述が無くなるまでステップ（Ｓ０７）とステップ（Ｓ０８）を繰り返す。【００４０】
ステップ（Ｓ０７）でプログラムＢのタイミング制約に関する記述が無くなると、タイミング制約情報生成部７の処理は終了する。【００４１】
図６は、タイミング制約情報生成部７から生成された、タイミング制約情報８を記載したファイルの一例を示す。【００４２】
図６に示したタイミング制約情報８の１行目は、２番目の出力データ信号ＯｕｔＤａｔａ［２］が時刻２．５［ｍｓ］以内に出力されることを示しており、同様に、３行目は５番目の出力データ信号ＯｕｔＤａｔａ［５］が時刻５．５［ｍｓ］以内に出力されることを示し、５行目は８番目の出力データ信号ＯｕｔＤａｔａ［８］が時刻８．５［ｍｓ］以内に出力されることを示している。【００４３】
また、タイミング制約情報８の２行目は、制御周期の１周期目Ｃｏｎｔｒｏｌ  Ｃｙｃｌｅ  Ｌｉｍｉｔ［１］の終了時刻が３．０［ｍｓ］であり、同様に、４行目は制御周期の２周期目Ｃｏｎｔｒｏｌ  Ｃｙｃｌｅ  Ｌｉｍｉｔ［２］の終了時刻が６．０［ｍｓ］であり、６行目は制御周期の３周期目  Ｃｏｎｔｒｏｌ  Ｃｙｃｌｅ  Ｌｉｍｉｔ［３］の終了時刻が９．０［ｍｓ］であることを示している。【００４４】
ここでは、出力信号の信号毎のタイミング制約と、制御周期の終了時刻をまとめて一つのファイル内に記載しているが、それぞれを別のファイルに記載して保存し、タイミング制約情報を記録したファイルを分けてもよい。【００４５】
また、本実施例では、図６のタイミング制約情報８がタイミング制約情報生成部７から生成されるが、互換性検証前に、予めタイミング制約情報を記録したファイルを記憶装置に登録しておいても良い。【００４６】
図７は、図１の比較部９の処理の流れを示すフローチャートである。【００４７】
比較部９ではまず、入力情報として、ステップ（Ｓ１１）でプログラムＡの実行結果Ａを入力し、ステップ（Ｓ１２）でプログラムＢの実行結果Ｂを入力し、ステップ（Ｓ１３）でタイミング制約情報生成部７によって生成されたタイミング制約情報を入力する。【００４８】
次に、ステップ（Ｓ１４）でプログラムＡの実行結果Ａにおける出力信号を一つ読み出し、ステップ（Ｓ１５）でプログラムＢの実行結果Ｂにおける出力信号を一つ読み出し、またこのときにプログラムＡの出力信号もしくはプログラムＢの出力信号が無いと比較ができないため、ステップ（Ｓ１６）で出力データ信号が存在しないかどうかを判定する。【００４９】
ステップ（Ｓ１６）でプログラムＡの出力信号とプログラムＢの出力信号の両方が存在する場合、ステップ（Ｓ１７）でプログラムＡの出力信号の値とプログラムＢの出力信号の値を一つずつ比較する。【００５０】
比較した結果、両方の値が一致していればステップ（Ｓ１８）に遷移してデータ一致と判定し、値が一致したことを記録しておくが、両方の値が不一致であればステップ（Ｓ１９）に遷移してデータ不一致と判定し、不一致であることを記録しておく。【００５１】
次に、ステップ（Ｓ２０）に遷移し、出力信号に対応したタイミング情報制約情報を検索し、ステップ（Ｓ２１）で出力信号に対応したタイミング制約を満足しているかどうか判定する。【００５２】
出力信号の出力時刻がタイミング制約を満足している、もしくは出力信号に関するタイミング制約が無ければ、ステップ（Ｓ２２）で制約を満足していると判定して記録しておくが、タイミング制約に違反していれば、ステップ（Ｓ２３）で制約違反であると判定して記録しておく。【００５３】
ステップ（Ｓ２２）もしくはステップ（Ｓ２３）の終了後はステップ（Ｓ１４）に戻り、ステップ（Ｓ１５）を介してステップ（Ｓ１６）でプログラムＡの出力信号もしくはプログラムＢの出力信号が無くなるまで出力データ信号の比較とタイミング制約に違反しているかどうかの判定を繰り返す。【００５４】
図８は、図１に示した互換性検証装置における比較結果１０を記載したファイルの一例を示す。【００５５】
この比較結果１０は、図４（ａ）の実行結果Ａ（５）と図４（ｂ）の実行結果Ｂ（６）と図６のタイミング制約情報８を入力とし、図７の比較部のフローチャートに基づいて生成されたものである。【００５６】
比較結果１０の１行目には、このファイルに出力データ信号ＯｕｔＤａｔａの比較結果が記載されているという内容のコメントが記載されている。【００５７】
比較結果１０の２行目は、１番目の出力データ信号の比較の結果、互換前のシステムからの出力データ信号は時刻０．７［ｍｓ］に４’ｂ１０１０の値であったところ、互換後の出力データ信号は時刻０．５［ｍｓ］に同じ４’ｂ１０１０の値が出力されており、結果として互換前よりも０．２［ｍｓ］早く、１周期目の制御周期の終了時刻までにはまだ２．５［ｍｓ］余裕が残っており、結果として互換性に問題が無いということを示すＯＫが記載されている。【００５８】
また、比較結果１０の３行目は、２番目の出力データ信号の比較の結果、互換前の出力データ信号は時刻１．５［ｍｓ］に４’ｂ１１０１の値であったところ、互換後の出力データ信号は時刻１．２［ｍｓ］に同じ４’ｂ１１０１の値が出力されており、結果として互換前よりも０．３［ｍｓ］早く、１周期目の制御周期の終了時刻までにはまだ１．８［ｍｓ］余裕が残っており、結果としてＯＫが記載されている。同様に、比較結果１０の４行目は、３番目の出力データ信号の比較の結果、互換前の出力データ信号は時刻２．８［ｍｓ］に４’ｂ００１０の値であったところ、互換後の出力データ信号は時刻２．３［ｍｓ］に同じ４’ｂ００１０の値が出力されており、結果として互換前よりも０．５［ｍｓ］早く、１周期目の制御周期の終了時刻までにはまだ０．７［ｍｓ］余裕が残っており、結果としてＯＫが記載されている。【００５９】
このように、図８の比較結果１０の２行目から４行目では、制御周期の１周期目で出力された３回の出力データ信号はいずれも互換前よりも互換後の方が早く出力され、いずれの値も一致していたため、互換性に問題が無いという判定がされている。【００６０】
また、図８の比較結果１０の５行目から７行目は、２行目から４行目と同様に、制御周期の２周期目で出力された出力データ信号の結果を示し、８行目から１０行目も同様に、制御周期の３周期目で出力された出力データ信号の結果を示しており、このテキストファイルの内容は、いずれも互換性に問題が無いことを示している。【００６１】
図９は、図１の互換性検証装置による、互換前のシステムの処理内容と互換後のシステムの処理内容を、ＧＵＩ（Graphical User Interface）画面に表示させた画像表示の一例である。【００６２】
ＧＵＩ画面１９１は、画面上部にマイクロコントローラＡの処理内容を表示し、画面下部にマイクロコントローラＢの処理内容を表示している。ＧＵＩ画面１９１では、互換前のマイクロコントローラＡから出力される出力タイミング信号Ａが互換後のマイクロコントローラＢの出力タイミング信号Ｂに対応し、マイクロコントローラＡから出力される出力アドレス信号ＡがマイクロコントローラＢの出力アドレス信号Ｂに対応し、マイクロコントローラＡから出力される出力データ信号ＡがマイクロコントローラＢの出力データ信号Ｂに対応する。【００６３】
マイクロコントローラＡはクロックＡで動作しており、出力タイミング信号ＡがＨｉｇｈの時に、出力アドレス信号Ａで示されたアドレスに対して出力データ信号Ａの内容を出力する。この例では、クロックサイクルｃ２において、出力アドレス信号Ａで示すアドレスに出力データ信号Ａ（２０１）を出力している。同様に、クロックサイクルｃ８において出力データ信号Ａ（２０２）を出力し、クロックサイクルｃ１３において出力データ信号Ａ（２０３）を出力している。また、このシステムでは制御周期が３［ｍｓ］に設定されており、制御周期タイミングライン３１から制御周期タイミングライン３２の間が１周期となっていて、出力データ信号Ａ（２０１，２０２，２０３）はいずれも１周期の間に出力が完了している。【００６４】
マイクロコントローラＡと同様の処理内容のソフトウェアを実行させるマイクロコントローラＢは、クロックＡとは異なる周波数のクロックＢに同期して動作しており、それゆえ、マイクロコントローラＡとは出力されるデータのタイミングが異なっている。【００６５】
マイクロコントローラＢからの出力データ信号Ｂ（３０１）は、マイクロコントローラＡの出力データ信号Ａ（２０１）に対応していることを矢印５１が示しており、値は４’ｂ１０１０で等しいが、出力のタイミングがマイクロコントローラＡと比較して０．２［ｍｓ］早く、ポップアップ表示１０１はその内容を表示する。同様に、矢印５２にて出力データ信号Ａ（２０２）に対応することが表示される出力データ信号Ｂ（３０２）は４’ｂ１１０１の値で互換前よりも０．３［ｍｓ］早く出力され、その内容がポップアップ表示１０２に表示され、矢印５３にて出力データ信号Ａ（２０３）に対応することが表示される出力データ信号Ｂ（３０３）は４’ｂ００１０の値で互換前よりも０．５［ｍｓ］早く出力され、その内容がポップアップ表示１０３に表示される。このシステムでは、マイクロコントローラＡでソフトウェアを動作させていた場合と比較して、同じ制御周期内に出力データ信号がいずれも早く確定しているので、３［ｍｓ］の制御周期に間に合っていることとなり、出力値も出力時刻も問題無いことをポップアップ表示１０４に表示する。【００６６】
このＧＵＩ画面における出力信号，矢印の表示，ポップアップ表示などは、マイクロコントローラでソフトウェアによる処理を実行させ、処理終了後に得られた実行結果と比較結果を使って表示してもよいし、もしくは、マイクロコントローラでソフトウェアを実行させながら得られるトレースデータを使ってリアルタイムでＧＵＩ画面上に表示しても良い。【００６７】
図１０は、出力データ信号の出力タイミングが制御周期の制約に違反している場合の実行結果を記載したファイルの一例である。【００６８】
図１０（ａ）は、マイクロコントローラＡ（１）でプログラムＡ（３）を実行して得られた実行結果Ａ（５）であり、また、図１０（ｂ）は、マイクロコントローラＢ（２）でプログラム（４）を実行して得られた実行結果Ｂ（６）であって、いずれも、図４に示した実行結果とファイルの表記方法は同様である。【００６９】
実行結果Ａ（５）の１行目は、１番目の出力データ信号ＯｕｔＤａｔａ［１］について、出力値が４’ｂ１０１０で、時刻０．７［ｍｓ］に出力されたことを表している。実行結果Ａ（５）の２行目以降も同様に、出力値と時刻が記録されている。【００７０】
ここで、実行結果Ｂ（６）は実行結果Ａ（５）と比較して、１行目から９行目に記載された出力値は等しいが、出力された時刻が異なっている。例えば出力データ信号ＯｕｔＤａｔａ［１］は、実行結果Ａ（５）では時刻０．７［ｍｓ］に出力されているが、実行結果Ｂ（６）では同じ値が時刻１．１［ｍｓ］に出力されている。他の出力についても同様に、出力値は等しいが出力時刻が異なっており、図１０（ｂ）ではいずれも図１０（ａ）よりも出力時刻が遅くなっている。【００７１】
図１１は実行結果の比較結果を示す。【００７２】
図１１の比較結果１０は、図１０（ａ）の実行結果Ａ（５）と図１０（ｂ）の実行結果Ｂ（６）と図６のタイミング制約情報８を入力とし、図７の比較部のフローチャートに基づいて生成されたものであり、図８に示した比較結果とファイルの表記方法は同様である。【００７３】
比較結果１０の２行目は、１番目の出力データ信号の比較の結果、互換前の出力データ信号は時刻０．７［ｍｓ］に４’ｂ１０１０の値であるが、互換後の出力データ信号は時刻１．１［ｍｓ］に同じ４’ｂ１０１０の値が出力されており、結果として互換前よりも０．４［ｍｓ］遅く、１周期目の制御周期の終了時刻までにはまだ１．９［ｍｓ］余裕が残っており、互換性には問題が無いということを示すＯＫが記載されている。【００７４】
また、比較結果１０の３行目は、２番目の出力データ信号の比較の結果、互換前の出力データ信号は時刻１．５［ｍｓ］に４’ｂ１１０１の値であるが、互換後の出力データ信号は時刻１．７［ｍｓ］に同じ４’ｂ１１０１の値が出力されており、結果として互換前よりも０．２［ｍｓ］遅く、１周期目の制御周期の終了時刻までにはまだ１．３［ｍｓ］余裕が残っており、ＯＫが記載されている。【００７５】
しかし、比較結果１０の４行目では、３番目の出力データ信号の比較の結果、互換前の出力データ信号は時刻２．８［ｍｓ］に４’ｂ００１０の値であるが、互換後の出力データ信号は時刻３．４［ｍｓ］に同じ４’ｂ００１０の値が出力されているが、結果として互換前よりも０．６［ｍｓ］遅く、１周期目の制御周期の終了時刻よりも０．４［ｍｓ］遅れていることが示されており、互換性に問題が生じたことを示すＮＧが記載されている。【００７６】
このように、図１１の比較結果１０の２行目から３行目では、制御周期の１周期目で出力された２回の出力データ信号はいずれも互換後でも制御周期内で出力され、いずれの値も一致しているため、互換性に問題が無いという判定がされている。しかし、４行目では、互換後の出力データ信号の出力時刻が制御周期の終了時刻の制約に違反しているため、互換性に問題があるという判定がされている。【００７７】
また、図１１の比較結果１０の５行目から７行目は、２行目から４行目と同様に、制御周期の２周期目で出力された出力データ信号の結果を示し、８行目から１０行目も同様に、制御周期の３周期目で出力された出力データ信号の結果を示している。【００７８】
図１２は、図９と同様に、図１の互換性検証装置による、互換前のシステムの処理内容と互換後のシステムの処理内容を、ＧＵＩ（Graphical User Interface）画面に表示させた画像表示の一例を示す。【００７９】
図１２に示すＧＵＩ画面１９２は、図９に示したＧＵＩ画面１９１と比較して、画面上部のマイクロコントローラＡの処理内容は同様であるが、画面下部のマイクロコントローラＢの処理内容が、マイクロコントローラＡと比べて遅い場合を示している。【００８０】
矢印６１にて出力データ信号Ａ（２１１）に対応することが表示される出力データ信号Ｂ（３１１）は４’ｂ１０１０の値で互換前よりも０．４［ｍｓ］遅く出力され、その内容がポップアップ表示１１１に表示し、矢印６２にて出力データ信号Ａ（２１２）に対応することが表示される出力データ信号Ｂ（３１２）は４’ｂ１１０１の値で互換前よりも０．２［ｍｓ］遅く出力され、その内容がポップアップ表示１１２に表示される。【００８１】
これら２つの出力データ信号Ｂはいずれも、制御周期タイミングライン３２よりも早く出力値が確定しているため、システム上で互換性に関して問題は無い。しかし、矢印６３にて出力データ信号Ａ（２１３）に対応することが表示される出力データ信号Ｂ（３１３）は４’ｂ００１０の値で互換前よりも０．６［ｍｓ］遅く出力され、制御周期タイミングライン３２よりも後に出力されているため制御周期に間に合わない。このため、マイクロコントローラＡを搭載したシステムと互換動作をしないことになり、ポップアップ表示１１４では出力値は問題無いが（Ｄａｔａ  ＯＫ）、タイミング制約に違反していることを表示する（Ｌｉｍｉｔ  ＮＧ）。【００８２】
このように、本実施例の互換性検証装置では、互換後のシステムがタイミング制約に違反した場合に、どの信号がいつタイミング違反を起こしたかを設計者がＧＵＩ上で容易に確認することが可能になる。【００８３】
図１３は、複数組の出力信号について、タイミング制約を満足しているかどうかなどの比較結果をＧＵＩ画面上に表示した画像表示の一例である。【００８４】
図１３に示すＧＵＩ画面１９３上には、矢印８１にて出力データ信号Ａ１（２３１）に対応することが表示される出力データ信号Ｂ１（３３１）、矢印８２にて出力データ信号Ａ１（２３２）に対応することが表示される出力データ信号Ｂ１（３３２）、矢印８３にて出力データ信号Ａ１（２３３）に対応することが表示される出力データ信号Ｂ１（３３３）が表示されている。【００８５】
さらに、別の出力データ信号として、矢印８４にて出力データ信号Ａ２（２３４）に対応することが表示される出力データ信号Ｂ２（３３４）、矢印８５にて出力データ信号Ａ２（２３５）に対応することが表示される出力データ信号Ｂ２（３３５）、矢印８６にて出力データ信号Ａ２（２３６）に対応することが表示される出力データ信号Ｂ２（３３６）が否幼児されている。このうち出力データ信号Ｂ２（３３６）の出力タイミングは制御周期タイミングライン３２よりも後になっているため、互換後のシステムが互換性を満足しないという内容をポップアップ表示１３７で表示する。【００８６】
図１３では複数の出力データ信号に着目したＧＵＩ画面への表示を示したが、出力したい信号のみ、例えば、出力タイミングが制御周期に違反した信号のみを表示するようにしてもよい。【００８７】
このように、実施例１によれば、タイミング制約情報に基づいてプログラム実行結果を比較することにより、マイクロコントローラのアーキテクチャや動作周波数によらず、容易に互換性を検証することができる。さらに、本実施例によれば、あるマイクロコントローラで動作させていたシステムを別のマイクロコントローラで動作させた場合に、処理の内容が、要求される制御周期の終了時刻やタイミング制約を満足しているか違反しているかどうかを、テキストファイルの内容やＧＵＩ画面上で確認することが可能になる。これにより、タイミング制約に違反している部分のソフトウェアを重点的に互換設計することができ、システム全体の互換性を検証する工数を削減することができる。
【実施例２】
【００８８】
次に、本発明の実施例２である互換性検証装置について説明する。本実施例については、実施例１と異なり、互換後のシステムから出力される出力データ信号が制御周期のタイミング制約範囲内であっても、互換性を満足しないと判定する場合がある。【００８９】
図１４は、実施例２におけるプログラム実行結果およびプログラムを示す。【００９０】
実施例１で説明した互換性検証装置における図４の実行結果と比較すると、図１４（ａ）の実行結果Ａ（５）は図４（ａ）の実行結果Ａと内容は同様であるが、図１４（ｂ）の実行結果Ｂ（６）は、図４（ｂ）の実行結果Ｂと比較して、遅く出力されるデータが有る。例えば、２行目の出力データ信号ＯｕｔＤａｔａ［２］の出力時刻が１．７［ｍｓ］と、０．５［ｍｓ］遅く出力されている。同様に、５行目の出力データ信号ＯｕｔＤａｔａ［５］の出力時刻が４．７［ｍｓ］と０．５［ｍｓ］遅く出力され、８行目の出力データ信号ＯｕｔＤａｔａ［８］の出力時刻が７．７［ｍｓ］と０．５［ｍｓ］遅く出力されている。【００９１】
また、図１４（ｃ）に示したプログラムＢ（４）では、出力信号のタイミング制約を設定するための関数ｏｕｔｄａｔａ＿ｌｉｍｉｔにおいて、４行目でＬｉｍｉｔ（ＯｕｔＤａｔａ［２］，  １．５）；という記述により、２番目の出力データ信号が１．５［ｍｓ］までに出力されることを規定している。同様に、５行目では５番目の出力データ信号が４．５［ｍｓ］までに出力されることを規定し、６行目では８番目の出力データ信号が７．５［ｍｓ］までに出力されることを規定している。すなわち、図３（ｂ）のプログラムＢとは異なる値の出力タイミングが設定されている。【００９２】
図１５は、実施例２におけるタイミング制約情報および比較結果を示す。【００９３】
図１５（ａ）のタイミング制約情報８は、図１４（ｃ）のプログラムＢ（４）を入力としてタイミング制約情報生成部７から生成されたファイル例を示す。【００９４】
図１５（ａ）のタイミング制約情報８の１行目では、２番目の出力データ信号ＯｕｔＤａｔａ［２］が時刻１．５［ｍｓ］以内に出力されることを示しており、これは、図１４（ｃ）のプログラムＢ（４）の４行目に記載されたタイミング制約に基づいて生成されているからである。同様に、３行目は５番目の出力データ信号ＯｕｔＤａｔａ［５］が時刻４．５［ｍｓ］以内に出力されることを示し、５行目は８番目の出力データ信号ＯｕｔＤａｔａ［８］が時刻７．５［ｍｓ］以内に出力されることを示している。【００９５】
図１５（ｂ）の比較結果１０は、図１４（ａ）の実行結果Ａ（５）と図１４（ｂ）の実行結果Ｂ（６）と図１５（ａ）のタイミング制約情報８を入力とし、図７のフローチャートに基づいて生成されたものであり、実施例１の図１１に示した比較結果とファイルの表記方法は同様である。【００９６】
ここで、比較結果１０の３行目は、２番目の出力データ信号の比較の結果、互換前の出力データ信号は時刻１．５［ｍｓ］に４’ｂ１１０１の値であるのに対し、互換後の出力データ信号は時刻１．７［ｍｓ］に同じ４’ｂ１１０１の値が出力されており、結果として互換前よりも０．２［ｍｓ］遅く、１周期目の制御周期の終了時刻までにはまだ１．３［ｍｓ］余裕が残っているにもかかわらず、互換性に問題が生じているとしてＮＧが記載されている。これは、図１５（ａ）のタイミング制約情報の１行目において、互換後のマイクロコントローラＢからの２番目の出力データ信号のタイミング制約条件として、時刻１．５［ｍｓ］までに出力されなければならないことが規定されているが、時刻１．７［ｍｓ］に出力されたため、タイミング制約を０．２［ｍｓ］違反したことにより、互換性を満足しないと判定し、検証結果としてＮＧが記載されているものである。同様に、比較結果１０の６行目の５番目の出力データ信号の比較、および９行目の８番目の出力データ信号の比較についても、同様の理由で互換性に問題が生じていると判定してＮＧが記載されている。【００９７】
図１６は、図１５（ｂ）の比較結果１０の内容をＧＵＩ画面に表示した画像表示例である。【００９８】
図１６に示すＧＵＩ画面１９４は、図９に示したＧＵＩ画面１９１と比較して、画面上部のマイクロコントローラＡの処理内容は同様であるが、画面下部のマイクロコントローラＢの処理内容の中で、一部の出力データ信号Ｂの出力時刻がマイクロコントローラＡと比べて遅いことを示している。【００９９】
矢印７１にて出力データ信号Ａ（２２１）に対応することが表示される出力データ信号Ｂ（３２１）は４’ｂ１０１０の値で互換前よりも０．２［ｍｓ］早く出力され、その内容がポップアップ表示１２１に表示される。また、矢印７３にて出力データ信号Ａ（２２３）に対応することが表示される出力データ信号Ｂ（３２３）は４’ｂ００１０の値で互換前よりも０．３［ｍｓ］早く出力され、その内容がポップアップ表示１２３に表示される。【０１００】
ここで、矢印７２にて出力データ信号Ａ（２２２）に対応することが表示される出力データ信号Ｂ（３２２）は４’ｂ１１０１の値で互換前よりも０．２［ｍｓ］遅く出力され、その内容が、互換性に問題があることを示すＮＧと共にポップアップ表示１２２で表示される。【０１０１】
このように、図１５（ａ）のタイミング制約情報８の２行目で規定されたタイミング制約に違反することが、図１５（ｂ）の比較結果１０の３行目のＮＧ表記と同様に、ＧＵＩ画面１９２上でも同様に確認できる。【０１０２】
上記のように、互換後のマイクロコントローラＢでは、互換前のマイクロコントローラＡのタイミング制約を満足しないために互換動作しないと判定され、出力値は問題無いがタイミング制約に違反していることを示すＮＧをポップアップ表示１２４で表示する。【０１０３】
このように、実施例２によれば、互換後のシステムからの出力データ信号が全て制御周期内に収まっている場合でも、ある一つ以上の出力データ信号の出力時刻が互換前のシステムにおける対応する出力データ信号のタイミング制約条件に違反した場合に、互換性に問題があるということを表示して設計者に提示するので、互換性を満足するシステムを構築するための設計コストを削減することが可能になる。
【実施例３】
【０１０４】
次に、本発明の実施例３である互換性検証装置について説明する。本実施例においては、実施例１，２と異なり、互換後のシステムから出力される各出力データ信号に対して、出力時刻の許容範囲が設定される。【０１０５】
図１７は、実施例３におけるプログラムおよびタイミング制約情報を示す。【０１０６】
図１７（ａ）は、本実施例における互換後のマイクロコントローラで実行するプログラムＢの一部を示す。本プログラムＢは、実施例１の図３（ｂ）のプログラムＢ（４）と比較して、１行目から１１行目までは同様であるが、１２行目から１４行目のタイミング制約条件の設定部分が異なっている。【０１０７】
システムからの出力データ信号をＯｕｔＤａｔａ［ｎ］（ｎは正の整数）で定義している図１７（ａ）のプログラムＢ（４）では、ｏｕｔｄａｔａ＿ｌｉｍｉｔ関数内の１２行目でＲａｎｇｅ（ＯｕｔＤａｔａ［１］，  ０．２，  ０．７）；という記述により、１番目の出力データ信号が時刻０．２［ｍｓ］から０．７［ｍｓ］までの間に出力されることを規定している。同様に、１３行目では２番目の出力データ信号が時刻１．３［ｍｓ］から１．７［ｍｓ］までの間に出力されることを規定し、１４行目では３番目の出力データ信号が時刻２．４［ｍｓ］から２．５［ｍｓ］までの間に出力されることを規定している。【０１０８】
図１７（ｂ）のタイミング制約情報８は、タイミング制約情報生成部７が図１７（ａ）のプログラムＢ（４）を入力として生成するファイル例である。【０１０９】
図１７（ｂ）のタイミング制約情報８の１行目では、１番目の出力データ信号ＯｕｔＤａｔａ［１］が時刻０．２［ｍｓ］以降に出力されることを示しており、また２行目では、１番目の出力データ信号ＯｕｔＤａｔａ［１］が時刻０．７［ｍｓ］以前に出力されることを示している。これらの情報は、図１７（ａ）のプログラムＢ（４）の１２行目に記載されたタイミング制約から生成される。同様に、３行目および４行目は、それぞれ、２番目の出力データ信号ＯｕｔＤａｔａ［２］が時刻１．３［ｍｓ］以降および１．７［ｍｓ］以前に出力されることを示す。また、５行目および６行目は、それぞれ、３番目の出力データ信号ＯｕｔＤａｔａ［３］が時刻２．４［ｍｓ］以降および２．５以前に出力されることを示す。【０１１０】
図１８は、上記のような図１７（ｂ）のタイミング制約情報に基づいて出力信号のタイミング制約をＧＵＩ画面に表示した画像表示の例を示す。【０１１１】
図１８に示すＧＵＩ画面１９５は、図９に示したＧＵＩ画面１９１と比較して、画面上部のマイクロコントローラＡの処理内容は同様であるが、画面下部のマイクロコントローラＢの処理内容の画面内に、出力データ信号Ｂの各出力時刻の許容範囲が表示されている部分が異なっている。【０１１２】
矢印９１にて出力データ信号Ａ（２４１）に対応することが表示される出力データ信号Ｂ（３４１）は４’ｂ１０１０の値で互換前よりも０．２［ｍｓ］早く出力されている。このとき、図１７（ｂ）のタイミング制約の規定値に基づき、互換性を保つためのタイミング制約の下限と上限を示すタイミング制約下限ライン１６１とタイミング制約上限ライン１６２をＧＵＩ画面１９５上に表示する。【０１１３】
出力データ信号Ｂ（３４１）は、タイミング制約下限ライン１６１とタイミング制約上限ライン１６２の範囲内で出力されているため、互換性に関して問題が無いことをポップアップ表示１４１で表示する。同様に、矢印９２にて出力データ信号Ａ（２４２）に対応することが表示される出力データ信号Ｂ（３４２）は４’ｂ１１０１の値で互換前よりも０．３［ｍｓ］早く出力されており、タイミング制約下限ライン１６３とタイミング制約上限ライン１６４の範囲内で出力されているため、互換性に関して問題が無いことをポップアップ表示１４２で表示する。【０１１４】
矢印９３にて出力データ信号Ａ（２４３）に対応することが表示される出力データ信号Ｂ（３４３）は、４’ｂ００１０の値で互換前よりも０．２［ｍｓ］遅く出力されており、タイミング制約下限ライン１６５とタイミング制約上限ライン１６６での範囲内の時刻外で出力されている。すなわち、図１７（ｂ）のタイミング制約の５行目と６行目で規定されたタイミング制約条件に違反していることがＧＵＩ画面１９５上で表示されている。このような場合は互換性に問題があるため、ポップアップ表示１４３でＮＧを表示すると共に、制御周期の区切りの制御周期タイミングライン３２においても、出力値は問題ないがタイミング制約に違反していることをポップアップ表示１４４で表示する。【０１１５】
このように、実施例３によれば、プログラムにタイミング制約条件を記載しておくことで、互換後のシステムからの出力データ信号がタイミング制約条件に違反することを表示して設計者に提示することができるので、互換性を満足するシステムを構築するための設計コストを削減することができる。【０１１６】
なお、本実施例ではタイミング制約下限ラインとタイミング制約上限ラインの両方をＧＵＩ画面に表示するが、これに限らず、タイミング制約下限ラインのみ、もしくはタイミング制約上限ラインのみを指定してＧＵＩ画面に表示するようにしてもよい。
【実施例４】
【０１１７】
次に、本発明の実施例４である互換性検証装置について説明する。本実施例においては、実施例１，２，３と異なり、互換後のシステムにおいて、互換前のシステムと比較して出力信号の順番が入れ替わったとしても、互換性を満足すると判定する場合がある。【０１１８】
図１９は、実施例４におけるプログラムを示す。【０１１９】
図１９に示すプログラムＢ（４）は、図３（ｂ）に示したマイクロコントローラＢ上で動作させるＣ言語プログラムと比較して、１７行目以降に出力値の順番の入れ替わりを許容する設定を記載した関数を追加した部分が異なっている。【０１２０】
システムからの出力データ信号をＯｕｔＤａｔａ［ｎ］（ｎは正の整数）で定義している図１９のプログラムＢ（４）では、ｏｕｔｄａｔａ＿ｓｗａｐ関数内の２０行目でＳｗａｐ（ＯｕｔＤａｔａ［２］，  ＯｕｔＤａｔａ［３］）；という記述により、互換後のシステムにおいて２番目の出力データ信号と３番目の出力データ信号の入れ替わりを許容することを規定している。従って、２番目の出力データ信号と３番目の出力データ信号が入れ替わっても、互換前のシステムとの互換性に問題は無い。同様に、２１行目では５番目の出力データ信号と６番目の出力データ信号の入れ替わりを許容することを規定し、２２行目では８番目の出力データ信号と９番目の出力データ信号の入れ替わりを許容することを規定している。【０１２１】
図２０は、実施例４におけるタイミング制約情報および比較結果を示す。【０１２２】
図２０（ａ）のタイミング制約情報８は、図１９のプログラムＢ（４）を入力としてタイミング制約情報生成部７から生成されるファイル例を示す。【０１２３】
図２０（ａ）のタイミング制約情報８の１行目では、２番目の出力データ信号ＯｕｔＤａｔａ［２］が３番目の出力データ信号ＯｕｔＤａｔａ［３］より後に出力されても問題無いことを表している。また、２行目では、３番目の出力データ信号ＯｕｔＤａｔａ［３］が２番目の出力データ信号ＯｕｔＤａｔａ［２］より前に出力されても問題無いことを表している。これらの情報は、図１９のプログラムＢ（４）の２０行目に記載されるタイミング制約に基づいて生成される。【０１２４】
同様に、タイミング制約情報８の４行目は５番目の出力データ信号ＯｕｔＤａｔａ［５］が６番目の出力データ信号ＯｕｔＤａｔａ［６］より後に出力されても問題無いことを表す。また、５行目は、６番目の出力データ信号ＯｕｔＤａｔａ［６］が５番目の出力データ信号ＯｕｔＤａｔａ［５］より前に出力されても問題無いことを表す。これらの情報は、図１９のプログラムＢ（４）の２１行目に記載されるタイミング制約に基づいて生成される。タイミング制約情報８の７行目と８行目についても同様である。【０１２５】
図２０（ｂ）は、図２０（ａ）のタイミング制約情報８を比較部１０に入力して、互換前のシステムと互換後のシステムの出力データ信号を比較した比較結果を示す。【０１２６】
図２０（ｂ）に示す比較結果１０の１行目と２行目は、図８に示した比較結果と同様である。【０１２７】
ここで、図２０（ｂ）の比較結果１０の３行目に記録された２番目の出力データ信号について、互換前のシステムでは時刻１．５［ｍｓ］において４’ｂ１１０１の値が出力されているが、互換後のシステムでは時刻１．４［ｍｓ］において４’ｂ００１０の値が出力されており、出力データ信号の値が異なっていることが記録されている。しかしながら、図２０（ａ）のタイミング制約情報８の１行目と２行目において、２番目の出力データ信号と３番目の出力データ信号の出力順の入れ替わりを許容することが規定されているため、比較結果１０ではこの時点ではまだＮＧ判定を出さず、出力順が入れ替わった可能性を示すＳｗａｐ？を記載している。【０１２８】
比較結果１０の４行目に記録される３番目の出力データ信号について、互換前のシステムでは時刻２．８［ｍｓ］において４’ｂ００１０の値が出力されているが、互換後のシステムでは時刻２．７［ｍｓ］において４’ｂ１１０１の値が出力されており、出力データ信号の値が異なっていることが記録されている。【０１２９】
ここで、互換後のシステムの３番目の出力データ信号の値４’ｂ１１０１が、互換前のシステムの２番目の出力データ信号の値４’ｂ１１０１と一致し、同様に互換後のシステムの２番目の出力データ信号の値４’ｂ００１０が互換前のシステムの３番目の出力データ信号の値４’ｂ００１０と一致することがこの時点で分かるため、図２０（ａ）のタイミング制約情報８で規定される出力データ信号の出力順の入れ替わりを許容する設定に適合すると判定され、互換性を満足することを示すＳｗａｐ  ＯＫを記録している。【０１３０】
同様に、比較結果１０の６行目に記録される５番目の出力データ信号と７行目に記録された６番目の出力データ信号についても、入れ替わりを許容する設定に適合すると判定され、互換性を満足している。また、９行目に記録された８番目の出力データ信号と１０行目に記録された９番目の出力データ信号についても、入れ替わりを許容する設定に適合すると判定され、互換性を満足している。【０１３１】
図２１は、上記のような図２０（ｂ）の比較結果１０の内容をＧＵＩ画面に表示した画像表示の例を示す。【０１３２】
図２１に示すＧＵＩ画面１９６は、図９に示したＧＵＩ画面１９６と比較して、画面上部のマイクロコントローラＡの処理内容は同様であるが、画面下部のマイクロコントローラＢの処理内容の中で、一部の出力データ信号Ｂの出力順がマイクロコントローラＡと比べて異なっていることを表示している。【０１３３】
矢印９４にて出力データ信号Ａ（２５１）に対応することが示される出力データ信号Ｂ（３５１）は４’ｂ１０１０の値で互換前よりも０．２［ｍｓ］早く出力され、その内容がポップアップ表示１５１に表示されている。【０１３４】
矢印９６にて出力データ信号Ａ（２５３）に対応することが示される出力データ信号Ｂ（３５３）は４’ｂ００１０の値で互換前よりも１．０［ｍｓ］早く出力され、ポップアップ表示１５３でＳｗａｐ？が表示される。さらに、矢印９５にて出力データ信号Ａ（２５２）に対応することが示される出力データ信号Ｂ（３５２）は４’ｂ１１０１の値で互換前よりも０．８［ｍｓ］遅く出力され、ポップアップ表示１５２にＳｗａｐ  ＯＫが表示される。このように、図２０（ａ）のタイミング制約情報８の１行目と２行目で規定される出力順の入れ替わりを許容する設定に適合することが、図２０（ｂ）の比較結果１０の３行目と４行目のＳｗａｐに関する表記と同様に、ＧＵＩ画面１９６上に表示される。【０１３５】
上述したような信号の出力順の入れ替わりを許容する具体例としては、一つのマイクロコントローラによってＬＥＤ（Light Emitting Diode）の点灯とＬＣＤ（Liquid Crystal Display）への文字列表示の処理の両方を実行する場合、先にＬＥＤを点灯させた後でＬＣＤに文字列を表示させても、先にＬＣＤに文字列を表示させた後でＬＥＤを点灯させても、システムの動作としては問題が無い場合がある。このような場合は、互換後のシステムのマイクロコントローラ上で動作させるプログラムの処理そのものを変更するよりも、出力順の入れ替わりを許容することを規定することでシステムとしては互換性が有ると判定させた方が、変更及び検証の工数が少なくて済む。【０１３６】
実施例４によれば、互換後のシステムが互換前のシステムと互換性を損なわない範囲内で、出力データ信号の入れ替わりを許容するような設定を追加することで、システムとしての互換性を保証することができる。これにより、全ての出力データ信号の出力順を必ずしも一致させなくともよい場合には、互換性を保ったシステムを構築するための工数を削減することが可能になる。【０１３７】
また本実施例では、Ｃ言語で定義したＳｗａｐ関数の第２引数と第３引数によって入れ替わりを許容する規定をするが、これに限らず、引数を４つ以上にして、３つ以上の出力データ信号がどの順番で出力されても互換性を損なわない範囲で許容することを規定してもよい。
【実施例５】
【０１３８】
次に、本発明の実施例５である互換性検証装置について説明する。本実施例においては、実施例１〜４と異なり、信号間の依存関係や出力信号のタイミング制約条件を、検証記述言語を使って記載する。【０１３９】
図２２は、プログラム中において検証記述言語によって記述されるタイミング制約条件の例を示す。【０１４０】
図２２（ａ）は、出力データ信号（ＯｕｔＤａｔａ）のタイミング制約条件をＰＳＬ（Property Specification Language）を用いて記述した例である。【０１４１】
図２２（ａ）では、４行目でｏｕｔｄａｔａ＿ｔｒａｎｓａｃｔｉｏｎというプロパティ名を定義し、５行目では出力アドレス信号Ａｄｄｒが３２’ｈＦＦＦＦ０１００の値で、かつ出力タイミング信号ＯｕｔＴｉｍｉｎｇが１’ｂ１であるとき、６行目に記載されているように時刻０．５［ｍｓ］から１．０［ｍｓ］の間に出力データ信号ＯｕｔＤａｔａの値が４’ｈ０１０１になることを表している。【０１４２】
図２２（ｂ）は、図２２（ａ）に記載されるタイミング制約条件をＳＶＡ（SystemVerilog Assertion）を用いて記述した例である。【０１４３】
このように、互換性検証装置へのタイミング制約条件の与え方としては、プログラムの中にプログラミング言語で記載する方法の他に、検証記述言語を使うことができる。【０１４４】
なお、ＰＳＬやＳＶＡ以外にも、検証用や仕様記述用に使用されている言語を使ってタイミング制約条件を記載しても良い。【０１４５】
本実施例によれば、タイミング制約条件が広く一般に使用されている検証記述言語を用いて記述されるので、新規にタイミング制約に関する文法を定義する必要をなくしたり、市販されている他の開発ツールと互換性検証装置を連携したりすることが可能になる。
【実施例６】
【０１４６】
図２３は、本発明の実施例６である互換性検証装置の全体構成を示すブロック図である。【０１４７】
本実施例は、図１で示した実施例１と異なり、マイクロコントローラＢ（２）にＦＰＧＡ（Field Programmable Gate Array)が外付けされている。これは、本実施例のマイクロコントローラＡ（１）に内蔵されている周辺回路の一部が、互換用のマイクロコントローラＢ（２）の内部に実装されていないためである。すなわち、マイクロコントローラＢ（２）に外付けしたＦＰＧＡ（１１）に、マイクロコントローラＡ（１）の周辺回路の一部を実装し、マイクロコントローラＢ（２）と接続して連動して動作させることで互換システムを構築し、互換性の検証を可能ならしめている。【０１４８】
図２３では、マイクロコントローラに外付けする回路としてＦＰＧＡを用いているが、これに限らず、マイクロコントローラに外付けする回路としては、ＡＳＩＣ（Application Specific Integrated Circuit）やＡＳＳＰ（Application Specific Standard Circuit）などを用いることができる。【０１４９】
図２４は、図２３に示した実施例６の変形例である互換性検証装置の全体構成を示すブロック図である。本変形例は、図１で示した互換性検証装置におけるマイクロコントローラＢ（２）の代わりに、マイクロコントローラＡのソフトＩＰ（Intellectual Property）（１３）をＦＰＧＡ（１２）に実装している。【０１５０】
マイクロコントローラＡ（１）のソフトＩＰ（１３）を、マイクロコントローラＡ（１）と同等の性能で実装できるＦＰＧＡであれば、もとのマイクロコントローラと高い互換性のあるシステムを構築できるので、本変形例の互換性検証装置によって互換性の検証ができる。【０１５１】
このように、実施例６およびその変形例によれば、マイクロコントローラとアーキテクチャの異なるマイクロコントローラに代えて、ＦＰＧＡ，ＡＳＩＣおよびＡＳＳＰなどの半導体回路を用いることにより、もとのマイクロコントローラと互換性のあるシステムを容易に構築することができる。
【実施例７】
【０１５２】
図２５は、本発明の実施例７である互換性検証装置のハードウェア構成例を示す。【０１５３】
端末５００は、内部に記憶装置を持つコンピュータであり、デバッガＡ（５０１）およびデバッガＢ（５０２）と接続される。デバッガＡ（５０１）は、基板５０３に搭載されるマイクロコントローラＡ（１）の端子と信号を送受信するコネクタＡ（５０５）と接続されている。同様に、デバッガＢ（５０２）は、基板５０４に搭載されるマイクロコントローラＢ（２）の端子と信号を送受信するコネクタＢ（５０６）と接続される。【０１５４】
本実施例では、図１で示した互換性検証装置におけるプログラムＡ（３）はマイクロコントローラＡ（１）の内蔵フラッシュメモリなどに格納され、プログラムＢ（４）はマイクロコントローラＢ（２）の内蔵フラッシュメモリなどに格納される。実行結果Ａ（５）と実行結果Ｂ（６）、および生成されるタイミング制約情報８と比較結果１０は、端末５００内部の記憶装置に保存される。また、タイミング制約情報生成部７，比較部９の各機能は、端末５００内部の演算処理装置が、同内部の記憶装置に記憶される各機能に応じたプログラムに従って動作することにより得られる。【０１５５】
デバッガＡ（５０１）は、マイクロコントローラＡ（１）で実行したプログラムＡ（３）の実行結果Ａ（５）をデバッガＡ（５０１）内部のトレースメモリにリアルタイムで逐次保存し、端末５００に送信する。同様に、デバッガＢ（５０２）は、マイクロコントローラＢ（２）で実行したプログラムＢ（４）の実行結果Ｂ（６）をデバッガＢ（５０２）内部のトレースメモリにリアルタイムで逐次保存し、端末５００に送信する。端末５００は、デバッガＡ（５０１）およびデバッガＢ（５０２）から送信された実行結果Ａ（５）および実行結果Ｂ（６）を、端末５００内部の記憶装置に保存する。【０１５６】
端末５００は、タイミング制約情報８を生成して、保存した実行結果Ａ（５）と実行結果Ｂ（６）について、実施例１から実施例４で示したようなタイミング制約に基づく互換性検証を行い、比較結果１０を端末５００内部の記憶装置に保存する。また、端末５００は、この比較結果１０をテキストファイルとして出力したり、端末５００が備えるＧＵＩ画面などに画像表示したりする。【０１５７】
なお、デバッガＡ（５０１）やデバッガＢ（５０２）としては、マイクロコントローラＡ（１）およびマイクロコントローラＢ（２）にそれぞれ対応するＩＣＥ（In-Circuit Emulator）やＪＴＡＧ（Joint Test Action Group）エミュレータなどを用いることができる。【０１５８】
本実施例によれば、マイクロコントローラの実行結果をリアルタイムで長時間保存することができ、互換後のマイクロコントローラが元のマイクロコントローラとの互換性をどの程度満足しているかを、設計者がテキストファイルや端末の画面に表示される情報によって容易に確認することができる。
【実施例８】
【０１５９】
図２６は、本発明の実施例８である互換性検証装置のハードウェア構成例を示す。本実施例は、産業用途向けの組み込みシステムの一例である業務用空調装置の制御システムにおいて、旧型の制御基板と、機能が同等な新型の基板との互換性を検証する。【０１６０】
本実施例の主なハードウェア構成は図２５の実施例７と同様であるが、異なる点は次のとおりである。【０１６１】
互換前の室外機Ａ（５０７）は内部に搭載される互換前の基板５０３によって動作し、互換後の室外機Ｂ（５０８）は内部に搭載される互換後の基板５０４によって動作する。室外機Ａ（５０７）は、基板Ａ（５０３）に搭載されたマイクロプロセッサＡ（１）の内蔵フラッシュメモリなどに格納されるプログラムＡ（３）によって制御され、デバッガＡ（５０１）経由で端末５００に実行結果Ａ（５）が保存される。【０１６２】
また、室外機Ｂ（５０８）は、基板Ｂ（５０４）に搭載されるマイクロプロセッサＢ（２）の内蔵フラッシュメモリなどに格納されるプログラムＢ（４）によって制御され、デバッガＢ（５０２）経由で端末５００に実行結果Ｂ（６）が保存される。【０１６３】
端末５００は、タイミング制約情報８を生成して、保存した実行結果Ａ（５）と実行結果Ｂ（６）について、実施例１から実施例４で示したようなタイミング制約に基づく互換性検証を行う。【０１６４】
本実施例８によれば、システムの改修に多大なコストがかかる産業用途向けの組み込みシステムにおいて、容易に互換性を検証することができ、システム移行の際の互換性検証にかかる工数を削減することができる。【０１６５】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。【０１６６】
例えば、比較結果のテキストファイルの内容をＧＵＩ画面上に表示しても良い。
【符号の説明】
【０１６７】
１，２  …  マイクロコントローラ，３，４  …  プログラム，５，６  …  実行結果，７  …  タイミング制約情報生成部，８  …  タイミング制約情報，９  …  比較部，１０  …  比較結果，１１，１２  …  ＦＰＧＡ，１９１，１９２，１９３，１９４，１９５，１９６  …  ＧＵＩ画面，５００  …  端末，５０１，５０２  …  デバッガ，５０３，５０４  …  基板，５０５，５０６  …  コネクタ，５０７，５０８  …  室外機
【図１】
2015049758.tif 000003
【図２】
2015049758.tif 000004
【図３】
2015049758.tif 000005
【図４】
2015049758.tif 000006
【図５】
2015049758.tif 000007
【図６】
2015049758.tif 000008
【図７】
2015049758.tif 000009
【図８】
2015049758.tif 000010
【図９】
2015049758.tif 000011
【図１０】
2015049758.tif 000012
【図１１】
2015049758.tif 000013
【図１２】
2015049758.tif 000014
【図１３】
2015049758.tif 000015
【図１４】
2015049758.tif 000016
【図１５】
2015049758.tif 000017
【図１６】
2015049758.tif 000018
【図１７】
2015049758.tif 000019
【図１８】
2015049758.tif 000020
【図１９】
2015049758.tif 000021
【図２０】
2015049758.tif 000022
【図２１】
2015049758.tif 000023
【図２２】
2015049758.tif 000024
【図２３】
2015049758.tif 000025
【図２４】
2015049758.tif 000026
【図２５】
2015049758.tif 000027
【図２６】
2015049758.tif 000028
【手続補正書】
【提出日】平成28年3月25日(2016.3.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の演算処理装置と、前記第１の演算処理装置とはアーキテクチャまたは動作周波数が異なる第２の演算処理装置との互換性を検証する互換性検証装置において、
前記第１の演算処理装置が実行する第１のプログラムおよび前記第２の演算処理装置が実行する第２のプログラムにおける出力信号のタイミング制約情報を格納する記憶手段と、
前記第１の演算処理装置が前記第１のプログラムを実行した第１の結果と、前記第２の演算処理装置が前記第２のプログラムを実行した第２の結果とを、前記記憶手段から入力する前記タイミング制約情報に基づいて比較し、比較結果を出力する比較手段と、
を備え、
前記比較結果には、前記タイミング制約情報を満足するか否か、あるいは違反するか否かに関する第１の判定結果が含まれ、
前記タイミング制約情報は、制御周期，前記第１の結果における第１の出力データまたは前記第２の結果における第２の出力データの出力時刻，前記第１の出力データまたは前記第２の出力データの出力時刻の範囲，前記第１の出力データまたは前記第２の出力データの出力順番に関する情報の内のいずれかを含むことを特徴とする互換性検証装置。
【請求項２】
請求項１に記載の互換性検証装置において、前記第１の出力データと、前記第２の出力データと、前記比較結果と、を表示する表示手段を備えることを特徴とする互換性検証装置。
【請求項３】
第１の演算処理装置と、前記第１の演算処理装置とはアーキテクチャまたは動作周波数が異なる第２の演算処理装置との互換性を検証する互換性検証装置において、
前記第１の演算処理装置が実行する第１のプログラムおよび前記第２の演算処理装置が実行する第２のプログラムにおける出力信号のタイミング制約情報を格納する記憶手段と、
前記第１の演算処理装置が前記第１のプログラムを実行した第１の結果と、前記第２の演算処理装置が前記第２のプログラムを実行した第２の結果とを、前記記憶手段から入力する前記タイミング制約情報に基づいて比較し、比較結果を出力する比較手段と、
を備え、
前記第１の結果を保存する第１のデバッガと、前記第２の結果を保存する第２のデバッガを備え、前記比較手段は、前記第１のデバッガから送信される前記第１の結果と前記第２のデバッガから送信される前記第２の結果を比較することを特徴とする互換性検証装置。
【請求項４】
第１の演算処理装置と、前記第１の演算処理装置とはアーキテクチャまたは動作周波数が異なる第２の演算処理装置との互換性を検証する互換性検証装置において、
前記第１の演算処理装置が実行する第１のプログラムおよび前記第２の演算処理装置が実行する第２のプログラムにおける出力信号のタイミング制約情報を格納する記憶手段と、
前記第１の演算処理装置が前記第１のプログラムを実行した第１の結果と、前記第２の演算処理装置が前記第２のプログラムを実行した第２の結果とを、前記記憶手段から入力する前記タイミング制約情報に基づいて比較し、比較結果を出力する比較手段と、
を備え、
前記タイミング制約情報は、前記第１のプログラムおよび前記第２のプログラムにおいて、検証記述言語で記述されることを特徴とする互換性検証装置。
【国際調査報告】
2015049758.tif 000029
2015049758.tif 000030