IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧 ▶ 東芝デバイス&ストレージ株式会社の特許一覧

<>
  • 特許-設計処理方法 図1
  • 特許-設計処理方法 図2
  • 特許-設計処理方法 図3
  • 特許-設計処理方法 図4
  • 特許-設計処理方法 図5
  • 特許-設計処理方法 図6
  • 特許-設計処理方法 図7
  • 特許-設計処理方法 図8
  • 特許-設計処理方法 図9
  • 特許-設計処理方法 図10
  • 特許-設計処理方法 図11A
  • 特許-設計処理方法 図11B
  • 特許-設計処理方法 図12
  • 特許-設計処理方法 図13
  • 特許-設計処理方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-15
(45)【発行日】2023-12-25
(54)【発明の名称】設計処理方法
(51)【国際特許分類】
   G06F 30/32 20200101AFI20231218BHJP
   G06F 30/3308 20200101ALI20231218BHJP
   H01L 21/82 20060101ALI20231218BHJP
【FI】
G06F30/32
G06F30/3308
H01L21/82 C
【請求項の数】 7
(21)【出願番号】P 2021045083
(22)【出願日】2021-03-18
(65)【公開番号】P2022144187
(43)【公開日】2022-10-03
【審査請求日】2023-01-26
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】山崎 正夫
(72)【発明者】
【氏名】渡邊 竜明
【審査官】堀井 啓明
(56)【参考文献】
【文献】特開2006-318200(JP,A)
【文献】特開平10-333713(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00-30/398
H01L 21/82
(57)【特許請求の範囲】
【請求項1】
モデル開発環境がブロック線図によるモデルの設計と前記モデルのシミュレーションとを行う設計処理方法であって、
前記モデル開発環境からの初期化指示により、ハードウエアIPを表現する複数のブロックセットが、前記ブロックセット内の各ブロックのそれぞれに対応するハードウエア動作をする各動作機構に初期値を設定し、
前記モデル開発環境からのシミュレーションの実行指示により、前記各ブロックは前記各動作機構に動作計算を指示して、前記各動作機構から動作結果を取得し、
前記モデル開発環境は前記各ブロックが取得した各動作結果を前記ブロックセットから取得し、
前記モデル開発環境からの終了指示により、前記各ブロックが前記各動作機構に停止を指示する、
設計処理方法。
【請求項2】
前記ブロックセットは、前記ハードウエアIPの値が固定となる初期設定用のブロックと、前記ハードウエアIPの値が動作中に変化する制御用のブロックとを有し、
前記動作機構は、前記制御用のブロックから動作を指示された入力時間で動作を計算し、計算後の動作結果を前記ブロックに返し、
前記モデル開発環境は、前記ブロックに返った前記動作結果を取得してシミュレーションの結果を得る、
ことを特徴とする請求項1に記載の設計処理方法。
【請求項3】
前記ブロックセットは、ハードウエアの物理的入出力を表現するHW表現ブロックと、ソフトウエアから前記ハードウエアへの論理的入出力を表現するSW表現ブロックとを有し、
前記HW表現ブロックおよび前記SW表現ブロックからの呼び出しにより、前記動作機構は、前記HW表現ブロックおよび前記SW表現ブロックのそれぞれ入力に応じて前記ハードウエアの動作をし、前記入力に対する動作結果を前記HW表現ブロックおよび前記SW表現ブロックに返す、
ことを特徴とする請求項1に記載の設計処理方法。
【請求項4】
前記モデル開発環境は、前記ハードウエアIPのコード生成時において前記ブロックセットの各ブロックが前記SW表現ブロックか前記HW表現ブロックかを判定し、
前記SW表現ブロックの場合にコード生成を行う、
ことを特徴とする請求項3に記載の設計処理方法。
【請求項5】
前記モデル開発環境は、
前記ブロックセットの各ブロックが前記SW表現ブロックの場合、前記SW表現ブロックが初期設定用のブロックか制御用のブロックかを判定し、
前記初期設定用のブロックの場合には初期化用のコードとして1回のコード生成を行い、前記制御用のブロックの場合には制御用のコードとして複数回のコード生成を行う、
ことを特徴とする請求項4に記載の設計処理方法。
【請求項6】
前記モデル開発環境は、前記SW表現ブロック同士の入出力の接続関係に基づく順序で実行する、
請求項3乃至5のうちのいずれか一項に記載の設計処理方法。
【請求項7】
前記モデル開発環境は、前記モデル開発環境が提供する汎用ブロックに対し、前記ブロックセットを組み合わせて使用する、
ことを特徴とする請求項1乃至6のうちの何れか一項に記載の設計処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、設計処理方法に関する。
【背景技術】
【0002】
従来、一般に提供されるモデル開発環境は汎用ロジックを対象にシミュレーションやコード生成を実現する。そのため、組み込みシステム開発において必要となる各社独自のハードウエアIP(例えばMCU(Micro Controller Unit)に搭載するADC(Analog-to-Digital Converter)など)を一般のモデル開発環境で扱えるようにするには手入力により調整作業等が必要になる。
【0003】
従来技術として、ハードウエアモジュールとソフトウエアモジュールの組み合わせから、ハードウエアとソフトウエアのシステムアーキテクチャを生成する技術などもある。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2001-202397号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、汎用的ではないハードウエアIPであってもモデル開発環境で扱うことが可能な設計処理方法の提供を目的とする。
【課題を解決するための手段】
【0006】
一つの実施形態の設計処理方法によれば、モデル開発環境がブロック線図によるモデルの設計と前記モデルのシミュレーションとを行う設計処理方法であって、前記モデル開発環境からの初期化指示により、ハードウエアIPを表現する複数のブロックセットが、前記ブロックセット内の各ブロックのそれぞれに対応するハードウエア動作をする各動作機構に初期値を設定し、前記モデル開発環境からのシミュレーションの実行指示により、前記各ブロックは前記各動作機構に動作計算を指示して、前記各動作機構から動作結果を取得し、前記モデル開発環境は前記各ブロックが取得した各動作結果を前記ブロックセットから取得し、前記モデル開発環境からの終了指示により、前記各ブロックが前記各動作機構に停止を指示するという特徴を有する。
【図面の簡単な説明】
【0007】
図1図1は、実施形態にかかる設計支援装置の装置構成の一例を示す図である。
図2図2は、実施形態にかかるブロックセットの基本構成を示す図である。
図3図3は、実施形態にかかる、シミュレーション実行時の制御部の動作のシーケンスを示す図である。
図4図4は、実施形態にかかるコード生成のフローの一例を示す図である。
図5図5は、実施形態にかかるADCのブロックセットの構成の一例を示す図である。
図6図6は、実施形態にかかるモデル開発環境下で作成したモデルの一例を示す図である。
図7図7は、実施形態にかかるサンプルモデルのシミュレーション結果の一例を示す図である。
図8図8は、実施形態にかかるシミュレーション時の各部の動作のタイミングの一例を示す図である。
図9図9は、実施形態にかかるサンプルモデルのコード生成結果の一例を示す図である。
図10図10は、変形例1にかかる順序決定用の入出力を使用するための説明図である。
図11A図11Aは、変形例2にかかるADCとPDMの連携機能を表現したサンプルモデルの一例を示す図である。
図11B図11Bは、変形例2にかかるサンプルモデルのシミュレーション結果の一例を示す図である。
図12図12は、変形例2にかかるモデルのシミュレーション結果の一例を示す図である。
図13図13は、変形例2にかかるADCとPMDとHW動作シミュレーション機構との連携を示す動作シーケンスの一例を示す図である。
図14図14は、変形例2にかかる50μs間隔でシミュレーションを行い、図13のシミュレーション結果を得たと仮定した場合の、100μsにおけるPMDからADCへの変換動作の開始指示までの詳細なシーケンスの一例を示す図である。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、実施形態にかかる設計処理方法について詳細に説明する。
【0009】
(実施形態)
図1は、実施形態にかかる設計支援装置の装置構成の一例を示す図である。図1に示す設計支援装置1は、ハードウエア構成として制御装置10、記憶装置11、入力装置13、表示装置14、および通信装置15を有する。各装置はバス12を介して接続されている。この例では、主に制御装置10が「制御手段」に対応し、記憶装置11が「記憶手段」に対応する。
【0010】
制御装置10は、例えばCPU(Central Processing Unit)を有し、記憶装置11に記憶されている所定のプログラムを実行する。記憶装置11は、ハードディスクやSSD(Solid State Drive)等であり、設計支援を行うプログラムやデータを記憶する。記憶装置11は、例えば所定のプログラムやデータとして、モデル開発環境プログラム30、モデル開発環境が内部に備える汎用ブロック(機能ブロック等)31、ADC(Analog-to-Digital Converter)等のハードウエアIP40を表現するブロックセット41、HW動作シミュレーション機構50の機構情報51などを記憶する。
【0011】
モデル開発環境とは、システム等のモデル(つまりモデルベース)を設計するモデル開発環境のことであり、例えば、既存の技術であればMATLAB(登録商標)とSimulink(登録商標)などが適用できる。Simulinkでは汎用ブロックを使用したブロック線図によりモデルを設計し、MATLABが生成したコードをモデル上で実行してシミュレーションを行う。ブロックセット41は、組込みシステム等のハードウエアIP(例えばADC)を表現するブロックの集まりであり、ハードウエアIP毎に用意する。
【0012】
HW動作シミュレーション機構50は、ハードウエアIP(ADC等のハードウエア)の動作を模擬する動作機構部である。ハードウエアIPに応じて機構情報51を有する。本実施形態においてHW動作シミュレーション機構50は、モデル開発環境上では使用せず、ブロックセット41からの呼び出しにより使用する。なお、HW動作シミュレーション機構50はシミュレーション用の機構であるためコード生成時には作動しない。
【0013】
入力装置13は、ユーザ(設計者等)が制御装置10に各種入力操作を行うマウスやキーボードである。例えば、ブロックの選択や、ブロック間の線の接続や、各種の実行指示などを行う。
【0014】
表示装置14は、UI画面等の画面情報を表示する液晶等の表示ディスプレイである。例えば、ブロック線図などの画面情報を表示する。
【0015】
通信装置15は、例えばネットワークを介して外部装置と通信を行う通信インタフェースである。通信装置15は、データの更新等に利用可能である。
【0016】
図2は、図1に示すブロックセット41の基本構成を示す図である。図2に示すようにブロックセット41はハードウエアの物理的入出力を表現するHW表現ブロック42とソフトウエアからハードウエアへの論理的入出力を表現するSW表現ブロック43とを有する。
【0017】
さらに、SW表現ブロック43は、ハードウエアIPの値が固定となる初期設定用のブロック43aと、ハードウエアIPの値が動作中に変化する制御用のブロック43bとを有する。
【0018】
ブロックセット41は、モデル開発環境上では実際にモデルの部品として使用され、シミュレーション実行時にHW表現ブロック42およびSW表現ブロック43がHW動作シミュレーション機構50を外部機構として呼び出して使用する。例えばHW動作シミュレーション機構50は、HW表現ブロック42およびSW表現ブロック43のそれぞれ入力に応じてハードウエアIPの動作を模擬し、入力に対する動作結果をHW表現ブロック42およびSW表現ブロック43に返す。
【0019】
(設計処理方法)
図3は、設計支援装置1におけるシミュレーション実行時の制御部20の動作のシーケンスを示す図である。図1に示す制御装置10のCPUがモデル開発環境プログラム30を実行することで制御装置10がモデル開発環境20として動作する。図3に示す一例において、モデル開発環境20は、初期化指示(S10)と、シミュレーションの実行指示(S20)と、終了指示(S30)の3種類の指示をブロックセット41に対して行う。以下、モデル開発環境20からの指示に基づくシミュレーション動作について説明する。
【0020】
まずモデル開発環境20から初期化指示(S10)があると、ブロックセット41内の各ブロックは、対応するHW動作シミュレーション機構50の機構情報51を読み込み(S11)、初期値が必要なものについてHW動作シミュレーション機構50に初期値を設定する(S12)。このS11~S12の動作により、ブロックセット41内の各ブロックとHW動作シミュレーション機構50との連携準備および動作設定を行う。
【0021】
続いてモデル開発環境20からシミュレーション実行指示S20があると、ブロックセット41内の各ブロックは、それぞれ対応するHW動作シミュレーション機構50にHW動作計算を指示し(S21)、HW動作シミュレーション機構50からHW動作結果を取得する(S22)。例えば、ブロックセット41内の各ブロックは、現在時間とブロックに接続されている入力値とをHW動作シミュレーション機構50に渡して、そのHW動作シミュレーション機構50からHW動作の計算結果を得る。HW動作シミュレーション機構50は、入力時間(入力された現在時間)でHW動作を計算し(S21-1)、HW動作の結果を対応するブロックに返す(S22)。こうしてモデル開発環境20はブロックセット41内の各ブロックに返ってきた結果を取得し、シミュレーション結果を得る。
【0022】
このようにシミュレーションを行った後、モデル開発環境20から終了指示S30があると、ブロックセット41は、対応するHW動作シミュレーション機構に停止を指示する(S31)。
【0023】
本設計支援装置1では、ハードウエアIPの振る舞いをHW動作シミュレーション機構50に隠ぺいし、ブロックセット41をモデル開発環境下のモデルとHW動作シミュレーション機構50のインタフェースとして扱う。こうすることで、ブロックセット41によるHW動作シミュレーション機構50との連携を可能にする。
【0024】
(コード生成)
次に、設計支援装置1におけるコード生成について説明する。コード生成を行う場合、ブロックセット41内の各ブロックがどのような種類のコードを生成するのかを分離する必要がある。そこで本実施形態では、次の条件でコード生成を行うようにする。
【0025】
まず、HW表現ブロック42については、コード生成時にハードウエアIPの動作は影響しないのでコードの生成を行わないものとして扱う。つまり、HW表現ブロック42はハードウエアとしての物理的入出力を表すため、ソフトウエアの視点から見えない。そのためHW表現ブロック42をコード生成において存在しないものとして扱い、生成されるコードにハードウエアの物理的入出力の情報が現れないようにする。
【0026】
次に、SW表現ブロック43については、初期設定用ブロック43aと制御用ブロック43bとで生成するコードの内容を変化させる。例えば初期設定用ブロック43aについては初期化時に1度だけ呼ばれるコードを生成し、制御用ブロック43bについては動作中に複数回呼ばれるコードを生成する。このように初期設定用ブロック43aと制御用ブロック43bとが生成するコードを明確に分離する。こうすることで、複数の制御用ブロック43bから重複した初期設定コードが生成されることや、矛盾した初期設定コードが生成されることを防止する。本設計支援装置1では、これらの条件で次のようなフローによりコード生成を行う。
【0027】
図4は、コード生成のフローの一例を示す図である。本設計支援装置1の制御部20が「生成手段」としても機能し、モデル開発環境下のモデルに構成されている各ブロックを一つずつ指定し、図4に示すフローを繰り返し実行して各ブロックのコード生成を行う。まず、制御部20は、指定したブロックがSW表現ブロック43かを判定する(S101)。制御部20は、指定したブロックがSW表現ブロック43でない場合(S101:No)、当該ブロックのコード生成を行わない(S102)。
【0028】
一方、制御部20は、指定したブロックがSW表現ブロック43である場合(S101:Yes)、当該ブロックが初期設定用ブロック43aかを判定する(S103)。
【0029】
SW表現ブロック43は初期設定用ブロック43aか制御用ブロック43bかのどちらかである。従って、当該ブロックが初期設定用ブロック43aである場合には(S103:Yes)、初期設定コード(初期化関数用コード)を生成し(S104)、当該ブロックが初期設定用ブロック43aでない場合には(S103:No)、制御用コードを生成する(S105)。生成したコードは、組込みシステム(MPUやDSP等)に展開して実装することができる。
【0030】
以上のように、制御部20はコード生成部としても機能し、モデル開発環境下のモデルに構成されている各ブロックについて必要なコード生成を行う。
【0031】
次に、設計支援装置1に設けるハードウエアIPの具体例を示す。ここでは一例としてADCのハードウエアIPをブロックセット(以下、ADCのブロックセットと言う)41として設ける場合について説明する。
【0032】
図5は、ADCのブロックセット41の構成の一例を示す図である。図5に示すADCのブロックセット41は、1つのHW表現ブロック421と、6つのSW表現ブロック431~436とによりADCというハードウエアIPを表現する。各ブロックには、ブロックの種類を吹き出しで示している。なお、一例として1つのHW表現ブロック421と、6つのSW表現ブロック431~436とにより構成しているが、それぞれの表現ブロックのブロック数はハードウエアIPの種類等に応じて適宜決めてよい。
【0033】
HW表現ブロック421の場合、ADCのハードウエアとしての物理的入出力を考える。この例で使用するADCの場合、AD変換対象や参照電圧というADCへの入力のみが存在する。そのため、HW表現ブロック421は入力のみを表す1つのブロックで表している。
【0034】
SW表現ブロック431~436の場合、ADCをソフトウエアから使用する場合のAPI(Application Programming Interface)を考える。この例で使用するADCの場合、ADCの初期設定、変換開始と停止、変換結果の取得、変換完了割り込み、動作状態取得などの制御が考えられる。そのため、SW表現ブロック431~436は、それらの各動作をモデル上で表現するために必要と考えた6ブロックで表している。なお、この例では、SW表現ブロック431が初期設定用ブロックに相当し、SW表現ブロック432が変換開始の制御用ブロックに相当し、SW表現ブロック433が変換停止の制御用ブロックに相当し、SW表現ブロック434が変換結果の取得の制御用ブロックに相当し、SW表現ブロック435が変換完了割込みの制御用ブロックに相当し、SW表現ブロック436が動作状態取得の制御用ブロックに相当する。
【0035】
APIレベルでSW表現ブロック431~436に分けると、それぞれのSW表現ブロック431~436が出力すべきコードの範囲が明確となり、実行中のSW表現ブロック間の不整合を回避することも可能になる。
【0036】
続いて、モデル開発環境下において図5に示すブロックセット41を用いて作成したモデルの一例を示し、各部の役割について説明する。
【0037】
図6は、モデル開発環境下で作成したモデルの一例(サンプルモデル)を示す図である。図6に示すサンプルモデル200は、設計者が表示装置14に表示されるUI画面を入力装置13で操作することにより、モデル開発環境が提供する汎用ブロック(機能ブロック)と、ADCのブロックセット41を適宜使用して作成したモデルである。一例として、ソフトウエアが5μs毎にADCでのAD変換を開始し、AD変換完了割り込みで結果を取得するという動作を表現したモデルを示している。各ブロックには、ブロックの種類を吹き出しで示している。
【0038】
図6(a)のサンプルモデル200は、ADCの物理接続表現部210と、ADCのSW処理表現部220と、シミュレーション時の出力表示部230とに分類される。
【0039】
ADCの物理接続表現部210は、HW表現ブロック421に機能ブロック451、452を組み合わせて物理接続関係を表現した部分である。例えば、ADCにSIN波形が入力されていることを想定し、ADCにSIN波形が接続されているという物理的接続関係を表現するとする。その場合、図6に示すようにHW表現ブロック421に対し、機能ブロック451である固定値出力ブロック451で参照電圧の5Vを入力し、機能ブロック452であるSIN波形出力ブロック452で変換対象の振幅2.5VのSIN波形を接続する。
【0040】
ADCのSW処理表現部220は、目的のソフトウエア動作を表現するために、図6に示すように変換開始と、変換結果取得と、変換完了割り込み発生と、初期設定の4つのSW表現ブロック432、434、435、431とを次のように組み合わせて表現した部分である。変換完了割り込みでの変換結果取得を表現するため、変換結果取得のSW表現ブロック434に変換完了割り込みのSW表現ブロック435を接続する。また、初期設定のSW表現ブロック431は初期設定用であるため、そのまま置く。さらに、この例のように5μs毎の変換開始を表現する場合は、変換開始のSW表現ブロック432に機能ブロックである5μs周期に設定した一定周期実行ブロック453を接続する。
【0041】
シミュレーション時の出力表示部230は、このシミュレーション結果をグラフに出力するために、機能ブロックを組み合わせた部分である。なお、この例では、グラフ出力ブロック455を使用し、SIN波形出力ブロック456はグラフ出力ブロック455の接続前に、変換結果取得出力の範囲と合わせるために乗算ブロック457で値を変化させている。図6(b)には、シミュレーションの際の各部の状態を参考として示している。
【0042】
図7は、サンプルモデルのシミュレーション結果の一例を示す図である。図7には一例のADCの動作シミュレーションの結果を示している。このシミュレーション結果からは、対象としたADCでAD変換に必要な2μsだけ遅延した形で、5μs周期でHW表現ブロック421に入力されたSIN波形が変換されている様子が分かる。このように、本装置によればADCのハードウエアIPを正しくシミュレーションすることができる。
【0043】
図8は、シミュレーション時の図6に示す各部の動作のタイミングの一例を示す図である。図8には一例として1μs毎にモデル開発環境がシミュレーションを実行する場合の動作のタイミングを示している。
【0044】
HW表現ブロック421は1μs毎にHW動作シミュレーション機構50に対して各時間でのADCへの入力値を与える。HW動作シミュレーション機構50は変換開始ブロック432から与えられた0μsでのHW表現ブロック421からの入力値2.5Vを選択し、2μsまで変換中状態になる。HW動作シミュレーション機構50はHW表現ブロック421から2μsの時間を与えられた際に変換完了タイミングと判断し、変換完了割込みブロック435に実行を指示する。変換完了割込みブロック435に接続された変換結果取得ブロック434は、2μsでの結果取得をHW動作シミュレーション機構50に要求し、HW動作シミュレーション機構50は2μsでの変換結果である2048を返す。その後、HW動作シミュレーション機構50は変換開始ブロック432から与えられた5μsでのHW表現ブロック421からの入力値5Vを選択し、再度7μsまで変換中状態になる。このようにHW動作シミュレーション機構50に各ブロックの時間を与え、HW動作シミュレーション機構50がその時間でのHW動作として適切な振る舞いを行うことでシミュレーション上でのハードウエアIPの動作シミュレーションを実現している。
【0045】
コード生成時の各SW表現ブロックは、モデル開発環境からコード生成を指示された際に、各ブロックに設定されたルールに従って出力するコードを決定し、出力する。例えば、一例のサンプルモデル200に使用されている4つのSW表現ブロック431、432、434、435はそれぞれ以下のルールをもつ。
【0046】
(ルール)
変換開始ブロック:AD変換開始関数を出力する。
【0047】
変換結果取得ブロック:接続先のブロックの入力として変換結果取得関数を出力する。
【0048】
変換完了割り込みブロック:接続先のブロックが生成するコードを処理とする割り込み関数を出力する。
【0049】
初期設定ブロック:変換完了割り込みブロックがあればその割り込み関数ハンドラを引数とした初期化関数を出力し、無ければNULLを引数とした初期化関数を出力する。
【0050】
図9は、サンプルモデル200のコード生成結果の一例を示す図である。コード生成結果では、上記ルールに従い4つのSW表現ブロック431、432、434、435から正しく制御Cコードが生成されていることが分かる。変換開始ブロック432からは、AD変換開始用関数ADC_StartConversionが5μs実行の関数Subsystem_stepに出力されている。変換結果取得ブロック434からは、変換結果取得関数ADC_GetConversionResultがSubsystem_Y.Out1の入力として出力されている。変換完了割り込みブロック435からは、接続先である変換結果取得関数を処理とした割り込み用関数Subsystem_ADC0_callbackが出力されている。初期設定用ブロック431からは、初期化関数Subsystem_ADC0_initialize関数が割り込み関数ハンドラSubsystem_ADC0_callbackを引数としてモデル初期化関数Subsystem_initializeに出力されている。
【0051】
このような結果から、本装置によりハードウエアIPのシミュレーションおよびコード生成が同一のモデルから実施できていることが分かる。
【0052】
(変形例1)
論理的入出力に加え順序決定用の入出力を使用できるように変形した例を示す。順序決定用の入出力の効果を示すため、順序決定用の入出力を使用しない場合と比較して説明する。
【0053】
図10は、変形例1にかかる順序決定用の入出力を使用するための説明図である。図10(a)は、順序決定用の入出力を使用しない場合のサンプルモデルの例であり、図10(b)は、順序決定用の入出力を使用した場合のサンプルモデルの例である。各図に示す右肩の数字(x:y)は実行優先順位を示し、数字が小さいものから順に実行される。
【0054】
モデル開発環境では入出力の接続関係から実行順序を決定する。図10(a)の順序決定用の入出力を使用しないモデルでは、SW表現ブロック同士が接続されていないため、実行順序はモデル開発環境の内部処理に依存し、不定となってしまう。図10(a)に示す例では、変換結果取得はADC UNIT0実行後にADC UNIT1を実行するが、変換開始はADC UNIT1実行後にADC UNIT0を実行する。この順序は意図しない順序である可能性が高く、サンプルモデルの配置からはこの順序になることを読み取ることはできない。
【0055】
このような接続関係を持たないSW表現ブロックが存在する理由は、SW表現ブロックがソフトウエアからハードウエアへの入出力を表すことから、HWに対して固定値の入出力を行うSW表現ブロックは入出力を持たないためである。例えばADCならば、変換開始ブロックはADCへ変換開始を指示するブロックである。実際のソフトウエアコードで使用するAPIとして考えた場合、このAPIは引数と戻り値両方を持たないため、対応する変換開始ブロックも入出力両方を持たない。変換結果取得ブロックはADCから変換結果を取得するブロックである。APIとして考えた場合に、このAPIは戻り値を持つが引数は持たないため、変換結果取得ブロックは出力だけを持ち、入力を持たない。結果として、このモデルでは変換開始ブロックと変換結果取得ブロック間が接続されず、ブロックの実行順序が不定となってしまう。各ブロックに優先度を割り当てることで制御することはできるが、モデルの可読性は改善することができない。
【0056】
この問題は、シミュレーション動作およびコード生成に影響を与えない形で順序決定用の入出力を追加することで解決することができる。SW表現ブロックに順序決定用の入出力を追加することで、図10(b)のように各変換開始ブロック、変換結果取得ブロックを接続することができる。これにより変換開始後の結果取得、結果取得後の変換開始の順序が決定的になり、モデルの可読性も向上する。また、順序決定用の入出力は、シミュレーション動作およびコード生成に影響を与えないよう次のように実装する。シミュレーション時には入力側は値を破棄し、出力側は任意の値を出力できるようにすることでシミュレーション中に他の処理の結果に影響を与えない値を選択可能とする。コード生成時には入出力ともにコードを生成しないようにすることで、コード生成結果に影響を与えないようにする。そのため、シミュレーションやコード生成に影響を与えずにモデルの実行順序を決定的にし、可読性を向上させることができる。
【0057】
(変形例2)
モデル開発環境上で異なるハードウエアIP間で連携動作を可能にする変形例について示す。HW動作シミュレーション機構を別のハードウエアIPのHW動作シミュレーション機構と連携させることでハードウエアIP間の連携機能を持つハードウエアIPを表現できるようにする。ここでは、一例としてADCとPMDを連携するハードウエアIPとして説明する。ADCとPMDのハードウエア連携機能として、PMDが出力する出力信号に応じたタイミングでADCの変換動作を自動開始する機能がある。
【0058】
図11Aは、変形例2にかかるADCとPDMの連携機能を表現したサンプルモデルの一例を示す図である。このサンプルモデル500は、PMDが100μs毎に出力が切り替わる信号を出力し、出力が切り替わるタイミングでADCの変換動作が自動開始するハードウエア連携動作を表現したモデルである。各ブロックには、ブロックの種類を吹き出しで指示している。
【0059】
このモデル500では、ADC初期設定(PMD同期変換開始)と、SIN波形をADCに入力するブロックと、PMD初期設定と、PMDのAD変換トリガ設定と、自動AD変換結果とPWM出力との比較を行うブロックと、を使用する。
ADC初期設定(PMD同期変換開始)は、ADCのSW表現ブロック(初期設定用)と、変換開始のSW表現ブロック(制御用)とで表現したSW表現ブロックである。SIN波形をADCへ入力ブロックは、汎用の固定値出力ブロックとSin波形出力ブロックと、ADCのHW表現ブロックとで表現したHWブロックである。PMD初期設定は、PMDのPWM出力設定を表現したSW表現ブロックである。PMDのAD変換トリガ設定は、汎用ブロックの固定値出力ブロックとPMDのADC変換タイミング設定のブロックとを表現したSW表現ブロックである。自動AD変換結果とPWM出力とを比較するブロックは、ADCの変換結果を取得するSW表現ブロックと、PMDのHW表現ブロックとを表現したブロックである。
図11Aに示すADCのHW表現ブロックには実施形態に示す例と同様に汎用ブロックを使用して参照電圧とSIN波形を接続する。ADCの変換開始は、変形例2ではシミュレーション開始時にADCを起動する目的で1度しか実行しないが、PMDのAD変換トリガ設定によりPMDのAD変換タイミングを設定できるため、ADCとPMDのハードウエア連携機能により、PMDの出力が切り替わるタイミングでADCの変換動作が自動開始する。
つまり、ここでADCの変換開始ブロックは、シミュレーション開始時にADCを起動する目的で1度のみしか実行しないが、ADCとPMDのハードウエア連携機能を実現することにより、PMDの出力が切り替わるタイミングでADCの変換動作が自動開始する動作をシミュレーションすることができる。
【0060】
図11Bは、図11Aに示すモデルのシミュレーション結果の一例を示す図である。変換開始ブロックはシミュレーション開始時の1度のみしか実行されないが、PMDの出力が切り替わるタイミングでADCの変換動作が行われ、変換結果取得ブロックの値が変わっていることが分かる。
【0061】
図13は、ADCとPMDとHW動作シミュレーション機構との連携を示す動作シーケンスの一例を示す図である。図13は、図3の動作シーケンスにおいて、ブロックセット41をPMDブロックセット41-1とADCブロックセット41-2の2種類とし、HW動作シミュレーション機構50をPMDとADCのそれぞれのHW動作シミュレーション機構50-1、50-2として動作を示したものである。
【0062】
図13に示す一例において、モデル開発環境20は、PMDブロックセット41-1とADCブロックセット41-2のそれぞれに対し、初期化指示(S10)と、シミュレーションの実行指示(S20)と、終了指示(S30)の3種類の指示を行う。図13に示す例では、PMDブロックセット41-1に対し初期化指示(S10-1)と、シミュレーションの実行指示(S20-1)とを行い、ADCブロックセット41-2に対し初期化指示(S10-2)と、シミュレーションの実行指示(S20-2)とを行う動作を示した。なお、それぞれの終了指示(S30)については、それぞれのHW動作シミュレーション機構を停止するだけなので、図13では図示を省略している。
【0063】
図13では、まずモデル開発環境20がPMDブロックセット41-1に初期化を指示する(S10-1)。PMDブロックセット41-1は、初期化の指示があると、PMDブロックセット41-1内の各ブロックが、対応するPMDのHW動作シミュレーション機構50-1のPMD機構情報を読み込み(S51)、初期値が必要なものについてPMDのHW動作シミュレーション機構50-1に初期値を設定する(S52)。続いて、PMDのHW動作シミュレーション機構50-1が、ADCのHW動作シミュレーション機構50-2のADC機構情報を読み込む(S53)。
【0064】
続いて、モデル開発環境20がADCブロックセット41-2に初期化を指示する(S10-2)。ADCブロックセット41-2は、初期化の指示があると、ADCブロックセット41-2内の各ブロックが、対応するADCのHW動作シミュレーション機構50-2のADC機構情報を読み込み(S55)、初期値が必要なものについてADCのHW動作シミュレーション機構50-2に初期値を設定する(S56)。
【0065】
続いてモデル開発環境20がPMDブロックセット41-1に対しシミュレーション実行を指示する(S20-1)。シミュレーション実行指示があると、PMDブロックセット41-1内の各ブロックは、対応するPMDのHW動作シミュレーション機構50-1にPMD動作計算を指示し(S61)、PMDのHW動作シミュレーション機構50-1からPMD動作結果を取得する(S62)。PMDのHW動作シミュレーション機構50-1は、入力時間(入力された現在時間)でPMD動作を計算し(S61-1)、その計算後、ADCのHW動作シミュレーション機構50-2に現在時間を渡してADC変換開始を指示する(S61-2)。ADCのHW動作シミュレーション機構50-2は、ADC変換動作を行う(S61-3)。
【0066】
続いてモデル開発環境20がADCブロックセット41-2に対しシミュレーション実行を指示する(S20-2)。シミュレーション実行指示があると、ADCブロックセット41-2内の各ブロックは、ADCのHW動作シミュレーション機構50-2にADC動作計算を指示し(S65)、ADCのHW動作シミュレーション機構50-2からADC動作結果を取得する(S66)。ADCのHW動作シミュレーション機構50-2は、ADC動作計算が指示されると、ADC動作計算を実行する(S65-1)。
【0067】
その後、モデル開発環境20から終了指示を行い、PMDのHW動作シミュレーション機構50-1とADCのHW動作シミュレーション機構50-2とを停止する。
【0068】
この例では、ハードウエアIP間の連係動作をモデル開発環境上で表現するため、モデル開発環境からの初期化命令時にPMDのHW動作シミュレーション機構はADCのHW動作シミュレーション機構を読み込む。これにより、PMDのHW動作シミュレーション機構がモデル開発環境を経由することなく、ADCのHW動作シミュレーション機構に指令を与えることができる。ADCのHW動作シミュレーション機構を読み込んだPMDのHW動作シミュレーション機構は、シミュレーション実行中にPMDブロックセットに呼び出された際、PMD出力が切り替わるタイミングならばADCのHW動作シミュレーション機構に対して変換動作の開始を指示する。このようにADCとPMDのHW動作シミュレーション同士を直接連携させることで、ADCやPMDのブロックセットには影響を与えず、モデル開発環境上での操作無しでADCとPMDのハードウエア連携機能のシミュレーションを実現している。
【0069】
図14は、50μs間隔でシミュレーションを行い、図13のシミュレーション結果を得たと仮定した場合の、100μsにおけるPMDからADCへの変換動作の開始指示までの詳細なシーケンスの一例を示す図である。0μsおよび50μsでのシミュレーション(S100~S200)では、PMDの出力は変化しない。そのため、PMDのHW表現ブロックから呼び出されたPMDのHW動作シミュレーション機構は、ADCのHW動作シミュレーション機構へ指示をせず、初期値の0を出力する。PMDのHW表現ブロックの処理後にADCの変換結果取得ブロックはADCのHW動作シミュレーション機構から変換結果を取得するが、ADCのHW動作シミュレーション機構は変換動作を指示されていないため、初期値の0を返す。100μsではPMDの出力は変化するため、PMDのHW表現ブロックから呼び出されたPMDのHW動作シミュレーション機構は、ADCのHW動作シミュレーション機構へ変換動作の開始を指示し、変化後の値である1を返す。指示されたADCのHW動作シミュレーション機構は、その時点での入力値を変換し、内部の変換結果を更新する。その後にADCの変換結果取得ブロックはADCのHW動作シミュレーション機構から変換結果を取得するが、ADCのHW動作シミュレーション機構内部の変換結果が更新されているため更新後の値3800を取得し、モデル開発環境へ返す。
【0070】
(実施形態の効果)
従来技術では組込みシステム開発に必要とされるハードウエアIPをモデル開発環境で扱う場合に、シミュレーションとコード生成とを手入力で行うなどの手間が発生していた。一方、本実施形態の設計支援装置では、ハードウエアIPを表現する複数のブロックをブロックセットとして含めるようにしたため、汎用的ではないハードウエアIPであってもモデル開発環境で扱うことが可能になる。さらに、本実施形態の設計支援装置では、モデルにハードウエアIPのブロックセットが使用されている場合、そのブロックセットが有するブロック毎に対応するハードウエアの動作結果を取得してシミュレーションを行う。このため、シミュレーションとコード生成とを手入力無しで、あるいは最低限の手入力のみで行うことが可能になり、従ってユーザによる入力操作の手間を大幅に軽減するという効果を奏する。さらに、従来の開発環境を利用し、各社独自のハードウエアIPでの設計も容易になるという効果も奏する。
【0071】
特に、従来技術では、各社独自の専用ブロックをモデル開発環境で使用する場合、2つの問題が存在していた。1つ目はシミュレーション用モデルとコード生成用モデルの等価性の問題である。シミュレーションとコード生成で異なるブロックを使用するため、シミュレーション用モデルとコード生成用モデルは異なるモデルとなる。それぞれのモデルが一致しているかを確認するために、シミュレーション用モデルのシミュレーション結果とコード生成用モデルのコード生成結果を比較する必要がある。2つ目はシミュレーション用ブロックとコード生成用ブロックの入出力と使用するブロック数の違いである。シミュレーション用ブロックはハードウエアと1対1対応した物理的入出力を持つブロックである。一方でコード生成用ブロックはAPIと1対1対応した論理的入出力を持つブロックである。シミュレーション用モデルとコード生成用モデルでは入出力と、使用するブロック数と、共に異なるため、単純なブロック置き換えでは対応することができない。
【0072】
本実施形態の設計支援装置では、ハードウエアIPのブロックセットを、ハードウエアとしての物理的入出力を表現するHW表現ブロックと、ソフトウエアからハードウエアへの論理的入出力を表現するSW表現ブロックとで表現する。このため、従来の問題点も解決することができる。
【0073】
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0074】
1 設計支援装置、10 制御装置、11 記憶装置、13 入力装置、14 表示装置、15 通信装置、20 モデル開発環境、30 モデル開発環境プログラム、31 汎用ブロック(機能ブロック等)、40 ハードウエアIP、41 ブロックセット、50 HW動作シミュレーション機構、51 機構情報。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11A
図11B
図12
図13
図14