JP2021501953A - エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 - Google Patents

エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 Download PDF

Info

Publication number
JP2021501953A
JP2021501953A JP2020544111A JP2020544111A JP2021501953A JP 2021501953 A JP2021501953 A JP 2021501953A JP 2020544111 A JP2020544111 A JP 2020544111A JP 2020544111 A JP2020544111 A JP 2020544111A JP 2021501953 A JP2021501953 A JP 2021501953A
Authority
JP
Japan
Prior art keywords
code
calibration
debug
hardware
initial
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.)
Granted
Application number
JP2020544111A
Other languages
English (en)
Other versions
JP7262818B2 (ja
Inventor
ヴェジール,ロイク
ロデハイン,シルヴェイン
Original Assignee
シリコン モビリティ エスアエス
シリコン モビリティ エスアエス
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by シリコン モビリティ エスアエス, シリコン モビリティ エスアエス filed Critical シリコン モビリティ エスアエス
Publication of JP2021501953A publication Critical patent/JP2021501953A/ja
Application granted granted Critical
Publication of JP7262818B2 publication Critical patent/JP7262818B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本発明は、少なくとも1つのソフトウェアプログラマブルユニット及び少なくとも1つのハードウェアプログラマブルユニットを備えるヘテロジニアスハードウェアシステム上で実行するのに適する複数のコードの自動化生成のための方法を提供し、上記コードは実行可能な較正命令を含み、上記方法は、(i)1つ以上のコード記述を含む初期コードをロードすること、(ii)上記初期コード上で、較正パラメーターとして考えられるコード記述内の変数及び/又はモニターされる値であると考えられるコード記述内の変数を指定する、ユーザー較正命令を提供すること、(iii)上記コードを、利用可能なユニットごとに少なくとも1つ、較正命令を備える上記ロードされた初期コードに基づいて、自動的に生成するステップを含む。【選択図】図1

Description

本発明は、電気エンジンデジタル制御ドメインの分野に関し、特に、純電気自動車又はハイブリッド自動車の電気モーターの制御を対象とする(が、それに限定されない)。
本発明は、上記ドメインについてのデバッグ及び/又はテスト及び/又は較正又は調節の文脈におけるコードハンドリングに関連する方法、及び、上記方法及び/又は関連するコードによって可能にされる種々の使用、特定のターゲットハードウェアシステム、その使用及び配置構成、並びに、ソフトウェア環境、上記方法をサポート又は使用するプラットフォームに関する。
モーター制御システムを開発するための一般的に使用される方法は以下の通りである:
1.ステップ#1:ループアルゴリズム開発におけるモデル
・このフェーズにおいて、制御のモデル及びシステム(モーター、パワートレイン、...)のモデルが開発され、純粋な仮想的な方法で(Matlab/Simulinkの種類のシミュレーションソフトウェアを使用して)デバッグされる。
・このステージにおいて、全ての理論的な(理想と仮定される)制御曲線が計算され妥当性検証される。
・このフェーズで開発されたモデルが、「ゴールデン(golden)」参照として考えられる。
2.ステップ#2:ECUへの制御アルゴリズムマッピング
・このフェーズにおいて、ステップ#1からの理想的な制御アルゴリズムが、選択されたエンジン制御ユニットハードウェアに適合する操作アルゴリズムに変換される。
・このフェーズは、おおよそ自動化することができる(特に、ECUが純粋なソフトウェア実装である場合)。しかしながら、マニュアルエンジニアリングが、通常、以下の場合に必要である。すなわち、
i.制御の一部が、外部FPGAデバイス内でマッピングされるために主制御から分離される場合(これは、高速なリアルタイム動作を扱うためのものである)、
ii.制御アルゴリズムの一部が、マイクロコントローラーターゲット特有のハードウェアアクセラレーター(数学演算子等)上にマッピングされる場合である。
・いずれの場合も、マッピングフェーズが、ハードウェア制限に対処するために制御アルゴリズム精度における妥協をもたらす。
3.ステップ#3:ループアルゴリズム調節におけるハードウェア
・この動作は、正確に制御された動作状態下に電気モーターが置かれる実験台において通常行われる。
・このフェーズにおいて、較正インフラストラクチャが、調節パラメーターを投入し、動作変数曲線を採取することができるように、制御アルゴリズムに付加される。
・これらの曲線は、理想曲線と比較され、パラメーター値に関するフィードバックループが、最適値に達するために実行される。
・この操作は、非常に多数の調節パラメーターに適用される。
・この操作は、必要に応じて理想モデルを再訪するためにステップ#1へのフィードバックをもたらすこともできる。
・このフェーズの終わりにおいて、制御アルゴリズムが最終と考えられ、縮小された調節パラメーターのセットが、ステップ#4で使用するために規定される。
4.ステップ#4:ループアルゴリズム調節における車両
・この動作は、現実の動作状態の実際の車両において行われる。
・この較正メカニズムは、調節パラメーターの数が減少したことを除いてステップ#3と同じである。
好ましくは、開発フローは高度に自動化される。これは、制御アルゴリズムモデからECU上で実行される操作コードまで、基本的に、手作業によるコーディングが含まれないことを意味する。
この原理は、多数の利益を提供し、その利益は、以下を含む。
・実装エラーのリスクが最小である(手作業による再コーディングがない)、
・全てのECUターゲットハードウェア制限が、アルゴリズム開発の早期フェーズにおいて考慮される。これは、アルゴリズムの精度における適切な妥協が、ステップ#2の代わりに、ステップ#1で決定されることを意味する。
上記で導入したように、較正タスクは、アルゴリズムの予め規定された一部のパラメーターに較正値を投入し、一部のキー変数の値を抽出するために、一部の追加のコンピューティング機能が初期制御アルゴリズムに付加されることを示唆する。
そのため、較正インフラストラクチャは、規定によれば、制御アルゴリズムに関して侵入的である。
侵入的であることは、2つの角度から考えることができる:
・操作コードにおいて、較正インフラストラクチャはそこに存在しなければならない。これを回避する方法は存在しない。
・開発フェーズにおいて、問題は、どのステップで、この較正フェーズがフロー内に現れるかを規定することである。
○このインフラストラクチャが、ステップ#1中に規定される。
これは、「ゴールデン」モデル内に「非機能的(non-functional)」操作が付加されるため、問題である。したがって、このモデルをゴールデンであるともはや考えることができない。
○又は、インフラストラクチャが、ステップ#2において、生成されたコードに対する手作業のオーバーライドとして付加される。
これは、モデルベース自動化フローが破壊されるため、問題である。
初期コードからコードを自動化生成する(automated generating)ための方法(特許文献1及び/又は非特許文献1等)が存在するが、それらのいずれも、ヘテロジニアスハードウェアシステムであって、少なくとも1つのソフトウェアプログラマブルユニット及び少なくとも1つのハードウェアプログラマブルユニットを備え、コードを、利用可能なユニットごとに少なくとも1つ自動的に生成するステップを必要とする、ヘテロジニアスハードウェアシステムの詳細を対象としないし、それを扱わない。
初期コードからコードを自動化生成するための方法が存在するが、それらのいずれも、上記コードがデバッグ及び/又はテスト命令を備えることを必要とする、上記で述べた特にターゲットプラットフォームのための、デバッグ及び/又はテストの文脈でのコードハンドリングの詳細を対象としないし、それを扱わない。
米国特許6742175号
「Automatic flight code generation with integrated static and run−time error checking and code analysis」XP 007905828
較正インフラストラクチャであって、(好ましくは全く)ゴールデンモデルの修正がない及び/又は生成されたコードの手作業によるオーバーライドがない状態で、操作コード内に含むのに適するようにさせることによって上記で述べた問題に対処する、較正インフラストラクチャを有することが本発明の目的である。
本発明の第1の態様において、本発明は、少なくとも1つのソフトウェアプログラマブルユニット及び少なくとも1つのハードウェアプログラマブルユニットを備えるヘテロジニアスハードウェアシステム上で実行するのに適する複数のコードの自動化生成のための方法に関し、上記コードは較正命令を含み、上記方法は、(i)1つ以上のコード記述を含む初期(高レベルシミュレーション)コードをロードすること、(ii)較正命令をロードすること、(iii)上記コード40を、利用可能なユニットごとに少なくとも1つ、上記ロードされた初期コード及び上記ロードされた較正命令に基づいて、自動的に生成することを含む。
本発明の第2の態様において、本発明は、電気エンジンと、このエンジンのための(リアルタイム)制御を提供するエンジン制御ユニットハードウェアとを備える配置構成(駆動車両の一部又は駆動車両の一部であるのに適する)に関し、上記エンジン制御ユニットハードウェアは、少なくとも1つのソフトウェアプログラマブルユニット及び少なくとも1つのハードウェアプログラマブルユニットを備えるヘテロジニアスハードウェアシステムを備え、上記ユニットは、本発明の第1の態様の方法によって生成されるコードを実行する。
本発明の第3の態様において、本発明は、先行する態様の方法及び/又は配置構成によって可能にされる更なる方法、特に、コードの機能的な類似性を制御する方法に関し、方法は、(i)1つ以上のコード記述を含む初期(高レベルシミュレーション)コードを実行(シミュレート)することと、(ii)本発明の第1の態様の方法によって、上記初期(高レベルシミュレーション)コードから生成されるコードを実行することと、iii)上記実行の結果を比較して、上記コードの(実質的に)機能的な類似性を検証するとともに、例えば、これら(比較結果、例えば、差)を使用して、較正プロセスを誘導することとを含む。
本発明の第4の態様において、本発明は、コンピューター可読コードを含む関連するコンピュータープログラム製品に関し、コンピューター可読コードは、コンピューターシステム上で実行されると、先行する方法請求項のうちのいずれかの方法をコンピューターシステムに実行させる。
本発明の第5の態様において、本発明は、上述したコンピュータープログラム製品を記憶する、関連する非一時的機械可読記憶媒体に関する。
本発明(左側)及び本発明がサポートする較正課題の文脈を示す図である。 本発明が特定の利点を有するFPCUデバイスを示す図である。 発明された方法の高レベルステップ、入力及び出力(コード)、並びに、ソフトウェア環境及び関与する異なるハードウェア等の関連要素を概略的に示す図である。 本発明の更なる使用の高レベルステップを概略的に示す図である。 本発明の例示的な実施形態を示す図である。 本発明の特定の実現のステップの(順序付けられた)リストの詳述された更なるリストを示す図である。 本発明で使用される一例示的なインターフェースを示す図である。 本発明の使用中に生成される特定のハードウェア構造(特に、右側)を示す図である。 較正によって引き起こされるデータ転送に関して、本発明によって行われ実装される技術的考察を示す時間ダイヤグラムである。 本発明の例示的な実装態様において使用される或る特定の詳細なフローチャートである。 本発明の例示的な実装態様において使用される或る特定の詳細なフローチャートである。 本発明が特定の更なる有利な特徴を有するデバッグインフラストラクチャを有する図2のFPCUデバイスの変形を示す図である。 特に図12のFPCUについての、本発明(左側)の文脈の変形及び本発明がサポートする較正課題を示す図である。 図12及び図13の文脈についての一例示的な例を示す図である。
本発明は、(i)デバッグ及び/又はテスト及び/又は較正又は調節を含む、(マルチ)コード設計、(半)自動(マルチ)コード生成、及び(マルチ)コード実行等のコードハンドリングに関連する方法、及び、上記方法及び/又は設計されたコード、生成されたコードによって可能にされる種々の使用、並びに、(ii)(特定のリソース等を適合させることにより)適するように作られたターゲットハードウェアシステム、特に、ヘテロジニアスハードウェアシステム(したがって、マルチコードを必要とする)、上記方法をサポートする及び/又は上記方法から最適に利益を得るための、それらのハードウェアシステムを含む適したターゲット(アプリケーション)システムに関する。
本発明は、特に、上記に関し、上記ターゲット(アプリケーション)システムの1つ以上の部分について、コード記述が利用可能であり、上記(マルチ)コード設計方法は、最初に、上記1つ以上のコード記述から始まり、さらに、上記(マルチ)コード設計方法は、その入力が後続の(半)自動(マルチ)コード生成に適しなければならないように適合され、(半)自動(マルチ)コード生成が、それ自体、ターゲットハードウェアシステムのための種々のコード(上記でマルチコードを意味する)を生成するために適合される。さらに、本発明によって提供される、発明された設計及び/又は生成及び/又は実行及び/又はシミュレーション環境(又はフレームワーク)によって提供される、デバッグ及び/又はテスト及び/又は較正又は調節能力は、デバッグ及び/又はテスト及び/又は較正又は調節に関連する、任意の命令、コード等が付加される前のコードである、オリジナルの(マルチ)コードを十分に保護するように適合される。
発明された特に設計された方法は、調節又は較正及び/又は参照(高レベルアブストラクション)との比較等の種々の(半)自動化可能な使用の配備を可能にする。さらに、これらの方法は、ターゲット(アプリケーション)システムのためのかつターゲット(アプリケーション)システムによって要求される安全な実行(手作業によるコード操作を回避すること及び/又は十分過ぎるほどのテスト/デバッグ及び較正機会を提供することによる)と組み合わせた最適性能のために設計しながら、ハードウェアシステムのハードウェア制限を、(例えば、どれほど多くの追加のコードを提供することができるかを詳しく調査することを設計者が求められるため、それらの限界で)考慮することができることを同様に保証する。
したがって、本発明は、コードを設計する設計方法であって、1つ以上のシステムコード記述を含む初期コードから始めて、初期コードをロードし、デバッグ、テスト、又は較正命令をロードし、ターゲットハードウェアシステム、より詳細にはヘテロジニアスハードウェアシステムのプログラミング又はヘテロジニアスハードシステム上での実行に適する更なるコードの更なる(半)自動生成のための、設計方法を提供し、したがって、複数の更なるコードが生成され、上記生成方法は、上記設計されたコードから始めて、上記設計されたコードをロードし、どのデバッグ、テスト、又は較正命令が使用されるかに関する命令をロードする。上記生成方法は、上記設計方法内に直接統合することができる。上記ハードウェアシステム及び/又はアプリケーションシステムがデバッグ、テスト、又は較正機器に接続されて、関連機能を提供することができるが、生成方法及び/又は統合された設計方法は、そのような機器を誘導するのに適するコードの生成も含むことができる。
上述した種々のコードの可用性を仮定すると、本発明は、デバッグ、テスト、又は較正機器に接続された上記ターゲットハードウェアシステム又はそれらのために使用される任意の他のコンピューティングサポートシステム上での、上記生成されたコードの1つ以上の実行に基づいて、デバッグ、テスト、又は較正方法を提供する。さらに、自動化調節又は較正及び/又は参照(高レベルアブストラクション)との比較は、これらの実行をユーザーが規定するループ内に埋め込むことによって提供することができる。
上記のより一般的な用語で更に述べるように、本発明は、種々のコードハンドリング方法に関し、したがって、種々のコードハンドリング方法は、それ自体、コンピューター配置構成上で実行可能なコンピューター可読コードを通して実現され、上記コード及び関連するコンピューター配置構成はともに、環境又はフレームワーク又はインフラストラクチャを形成する。
述べたように、本発明は、特に上記に関し、上記ターゲット(アプリケーション)システムの1つ以上について、モデルとも呼ばれるシステムコード記述が利用可能であり、したがって、上記方法はモデルベースと呼ぶことができる。典型的なターゲットアプリケーションは、純電気自動車又はハイブリッド自動車の電気モーターにおいて見出される電気エンジン、したがって、その(デジタル)制御である。したがって、上記モデル(複数の場合もある)の例示的な実施形態は、モーター、パワートレインに関連する。初期コードが、(Matlab又はSimulinkコード等であるがそれらに限定されない)高レベル(シミュレーション)コードであることにここで留意する価値がある。
本発明は、エンジン制御ユニットハードウェアのための方法、特に、ヘテロジニアスハードウェアシステム(したがって、マルチコードを必要とする)、特に、少なくとも1つ以上のマイクロプロセッサコア及び1つ以上のプログラマブルロジックマトリクスを備えるFPCUシステムに基づく方法に特に関し、したがって、上記マルチコードは、上記コアのための操作コード及び上記プログラマブルロジックマトリクスのためのハードウェア記述言語コードを含む。さらに、上記ハードウェアシステムは、好ましくは、自動車(automotive)パワートレイン制御に専用の周辺機器(回路)及びプログラマブルロジックから周辺機器を制御するためのカスタムインターコネクト構造を含む。エンジン制御ユニットハードウェアにおいて、特に、プログラマブルロジックマトリクスによって手配される(taken care of)高速リアルタイム操作を、ターゲットアプリケーションドメインが課したことに、このステージで留意する価値がある。
本発明は、選択されたECUマイクロコントローラーデバイスが実際にはFPCU(Field Programmable Control Unit:フィールドプログラマブル制御ユニット)である特定の文脈において特に適用される。
特定の一実施形態において、FPCUは、以下の要素を同じシリコン上に埋め込んだデバイスである。以下の要素とは、
・1つ以上の標準的なマイクロプロセッサコア、
・幾つかの標準的なデバッグ及びトレースハードウェアインフラストラクチャ、
・幾つかの汎用マイクロコントローラーモジュール(DMA、ウォッチドグ、タイマー、...)、
・サブシステムであって、
○埋め込み式プログラマブルロジックマトリクス(FLU)、
○自動車パワートレイン制御に専用の周辺機器のセット(PWM、キャプチャー、ADC、CAN、...)
○FLU内にマッピングされた任意のロジックからこれらの周辺機器の直接制御を可能にするカスタムインターコネクト構造、
○FLUから/へのデータ転送を可能にするDPRAM、
を含む、サブシステム、である。
述べたように、本発明は、デバッグ及び/又はテスト及び/又は較正又は調節能力をサポートする。そのようなサポートを導入することによって引き起こされるこの技術的問題は、較正に対してここで述べられるが、同様な考察は、デバッグ及び/又はテスト能力について行うことができる。本質的に、較正は、追加のコードが、設計コードに対して、また同様に、更なる(半)自動生成コード、したがって、構成されるマトリクスにおいて、付加されることを必要とし、実行コードは、少なくとも原理上、意図されるコードと異なり、これは、必要とされる高速リアルタイム操作と組み合わせたハードウェア制限を特に考慮して、操作に影響を及ぼす場合がある。したがって、較正又は調節に関連付けられた任意の命令、コード等が存在する前のコードである、オリジナルの(マルチ)コード(したがって、ゴールデンモデルとも呼ぶ)を十分に保護するという要求が存在する。
したがって、本発明は、コードを設計し、1つ以上のシステムコード記述を含む初期コードから始め、初期コードをロードし、(デバッグ、テスト、又は)較正命令(較正パラメーターとして考えられるコード記述内の変数及び/又はモニターされる値として考えられるコード記述内の変数を指定する)をロードし、これらの命令を上記初期コードに(或る特定の程度まで)特定の方法で、(例えば、十分な明瞭な注釈によって又はメタデータとして)付加するための設計方法を提供し、それにより、ターゲットハードウェアシステム(より詳細には、ヘテロジニアスハードウェアシステム、したがって、複数の更なるコードが生成される)のプログラミング又はその上での実行に適する更なるコードの更なる(半)自動生成は、(例えば、更なる(半)自動生成が、提供される注釈を認識するため)更なる(半)自動生成が最初に生成することになるコード以外に、上記較正に関連する追加のコードを提供する。したがって、上記コアのための追加の操作較正コード(例えば、Cコード)及び上記プログラマブルマトリクスのための較正ハードウェア記述言語コードが生成される。
ハードウェアレベルで、較正に関連するデータ転送を較正が必要とし、そのデータ転送が、通常、較正されるシステムの通常の使用中におけるより要求が厳しいことをこのステージで指摘することができる。したがって、好ましくは、ターゲットヘテロジニアスハードウェアシステム特有のリソース(オンチップRAM等の内部メモリ、コア又はプログラマブルマトリクスへのデータ転送を可能にするインターコネクト、及び上記メモリに向かう入力/出力ポート等)はこれらのデータ転送をサポートするのに十分である。これらの追加の更なるコードの更なる(半)自動生成が、提供されるこれらの特有のリソースに依存するか又は特有のリソースに依存するように強制されることをここで強調することができる。
本発明の寄与における更なる洞察がここで述べられる。
一部の追加のコンピューティング機能が、初期制御アルゴリズムに付加されて、アルゴリズムの予め規定された一部のパラメーターに較正値を投入し、一部のキー変数の値を抽出することを、較正タスクが示唆するため、そのようなアクションは、制御アルゴリズムに関して侵入的である。
これは、「ゴールデン」モデルにおいて「非機能」操作が付加されるため、問題である。したがって、一般的に言えば、このモデルをゴールデンと考えることはもはやできない。さらに、好ましくは、較正なしの設計フローにおいて、モデルベースの自動化フローが使用される一方で、生成されるコードに対する手作業によるオーバーライドとして較正を付加することは、モデルベースの自動化フローを破壊する。
述べたように、本発明は、コードを設計/生成し、特にシステムモデル及び/又はその制御モデルを含む1つ以上のシステムコード記述を含む初期コードから始め、初期コードをロードし、デバッグ、テスト、又は較正命令を(パラメーターの投入及び/又は変数の抽出のために)ロードする設計方法を提供する。本発明は、ゴールデンモデルの修正が好ましくは絶対になく、生成されるコードの手作業によるオーバーライドが好ましくはない状態で、操作モードに含まれる較正特徴を有するように、コードを設計/生成する方法を提供する。
FPCUデバイスの文脈で、制御アルゴリズムは、マイクロプロセッサコア(複数の場合もある)上でのソフトウェア実行とFLU上でのハードウェア実行とに分割される。
両方の場合に、操作コードは、モデルから自動生成される。
・プロセッサのためのCコード
・FLUのためのHDL
モデルレベルにおいて、モデルベースのフローは、アルゴリズムのどの部分がプロセッサ上で又はFLU上で実行されるかを、設計者が容易に規定することを可能にする。
問題は、較正を付加するために同じ柔軟性を維持できることである。これは、これらの較正操作が、プロセッサ内又はFLU内であることができるが、ユーザーモデルから、両者が同じ方法で指定されるべきであることを意味する。
この文脈は図1によって示される。
本発明は、コードを設計し、1つ以上のシステムコード記述を含む初期コードから始めて、初期コードをロードし、ヘテロジニアスハードウェアシステムのプログラミング又はヘテロジニアスハードウェアシステム上での実行に適する更なるコードを(半)自動生成する設計方法を更に改良し、したがって、複数の更なるコードが生成され、それにより、ハードウェアシステムの種々の部分上への上記コード記述のマッピングは、設計者によって特定の方法で規定される。実際には、本発明は、較正(及び同様なものの)命令の付加を可能にする設計方法をここで提供し、それにより、ハードウェアシステムの種々の部分上への較正命令に対する関連コードのマッピングは、オリジナルの設計方法の場合と同じ方法で、設計者によって規定される。
本方法が、複数のコード40の自動化生成のための方法を提供し、方法が、(i)1つ以上のコード記述(ゴールデンモデル)を含む初期(高レベルシミュレーション)コード10をロードすること、(ii)較正命令20(メタデータ)をロードすること、(iii)上記コードを、利用可能なユニットごとに少なくとも1つ(したがって、(50)は、マイクロプロセッサコアであるソフトウェアプログラマブルユニットのためのソフトウェアのためのものであり、(60)は、プログラマブルロジックマトリクスである上記ハードウェアプログラマブルユニットのためのハードウェア記述言語コードである)、上記ロードされた初期コード及び上記ロードされた較正命令に基づいて、自動生成すること(30)を含むことを想起されたい。
したがって、開発される解決策は以下の要素を含む。以下の要素とは、
・特定のメタデータをゴールデンモデルにどのように関連付けることができるかを規定する方法であって、
この方法は、以下の情報:
○較正パラメーター(したがって、較正値オーバーライドに対する候補)として考えられるべきモデル変数又は信号のリスト、
○モニターされる値として考えられるべき変数又は信号のリスト、
をどのように指定することができるかを述べる、方法、
・コンピューター実行式ソフトウェアであって、
○メタデータ内で規定されるパラメーター変数について、
Cコードであって、このコードがゴールデンモデル内でCPUコアマッピング済み関数に対応する場合、対応するソフトウェア変数の値をオーバーライドすることを可能にする、Cコードを自動生成すること、
HDLコードであって、このコードがゴールデンモデル内でFLUマッピング済み関数に対応する場合、対応するHDL信号の値をオーバーライドすることを可能にする、HDLコードを自動生成すること、
○メタデータにおいて規定されるモニターされる変数について、
Cコードであって、このコードがゴールデンモデル内でCPUコアマッピング済み関数に対応する場合、対応するソフトウェア変数の値をサンプリングすることを可能にする、Cコードを自動生成すること、
HDLコードであって、このコードがゴールデンモデル内でFLUマッピング済み関数に対応する場合、対応するHDL信号の値をサンプリングすることを可能にする、HDLコードを自動生成すること、
を可能にする、コンピューター実行式ソフトウェア、である。
生成されるコードは、FPCUデバッグ又は外部較正デバイスから/へ較正データを受信/送信するためのCAN通信ポートに依存する。
要約すると、(更なる)コード50、60の(半)自動生成は、最初に生成することになるコード70、80以外に、上記較正に関連する追加のコード、特に、上記コアのための追加の操作較正コード90(例えば、Cコード)を提供し、上記プログラマブルマトリクスのための較正ハードウェア記述言語コード100が生成され、特に、上記コード90、100は、それぞれの最初のコード70、80において(較正又は同様の命令に示されるように)変数の値をオーバーライドする及び/又はサンプリングすることを可能にする。
このステージにおいて、発明される方法の幾つかの要素を更に明確にする価値がある。較正命令(又は、調節、テスト、又はデバッグの場合の同様なもの)を含む上記コードが生成されるため、より詳細には、そのような較正命令によって、パラメーター値を提供し、較正操作に必要とされる変数値を抽出するために必要な最小量のコードが意味され、較正操作は、手作業で更に実施されている場合があるが、好ましくは、発明された方法によって可能にされるように自動的に(或る特定の程度まで)行われる。自動的に生成される較正命令は、上述したハードウェアシステムのサブシステム上で実行される命令である。これは、ロードされる較正命令と対照的である。これらの較正命令は、代わりに初期(高レベルシミュレーション)コードの同じレベルで提供され、したがって、高レベル較正命令と呼ばれ、また、追加の較正命令の生成についての単に開始基盤として、ハードウェアシステム上で実行される実行可能な較正命令とも呼ばれる。これらの高レベル較正命令のローディングが、必ずしもコードの1つのバルクローディングではなく、ロードされる初期シミュレーションコードを(特定の方法で)変更するステップを含むことができることも興味深い。したがって、コードの自動生成は、入力として受信し、その後、シミュレーションコードを修正した。上記で説明したように、ソフトウェアコンパイラー及びプログラマブルユニットマッピングツールの組み合わせによって実施される自動生成のステップは、これらの較正命令を認識し、これに相応して働くように適合されなければならない。
したがって、本発明は、少なくとも1つのソフトウェアプログラマブルユニット210及び少なくとも1つのハードウェアプログラマブルユニット220を備えるヘテロジニアスハードウェアシステム200上で実行するのに適する複数のコードの自動化生成のための方法として正式に規定することができ、上記コードは実行可能な較正命令を含み、上記方法は、(i)1つ以上のコード記述を含む初期(高レベルシミュレーション)コード10をロードすること、(ii)高レベル較正命令20を提供又はロードすること、(iii)上記コード40を、利用可能なユニットごとに少なくとも1つ、(i)上記ロードされた初期コード及び上記提供若しくはロードされた較正命令、又は(ii)上記提供された較正命令によって修正された上記初期コードに基づいて、自動生成すること(30)を含み、それにより、上記自動生成ステップは、上記提供又はロードされた(高レベル)較正命令に基づいて上記較正に関連する追加の(実行)コードを生成するために適合される。
本発明は、設計及び/又は較正(デバッグ、テスト)フレームワーク、より詳細には、上述した方法をサポート又は促進するための、1つ以上のコンピューター上で動作するためにコンパイルされるソフトウェア環境を提供し、したがって、コンピューター可読コードを含むコンピュータープログラム製品A(及び、関連する非一時的機械可読記憶媒体)にも関しており、コンピューター可読コードは、コンピューターシステム上で実行されると、コンピュータープログラム製品をコンピューターシステムに実行させる。
図3に示すように、本発明は、したがって、少なくとも1つのソフトウェアプログラマブルユニット210及び少なくとも1つのハードウェアプログラマブルユニット220を備えるヘテロジニアスハードウェアシステム200上で実行するのに適する複数のコードの自動化生成のためのソフトウェア環境300を提供し、上記コードは較正命令を含み、上記方法は、(i)(注釈又はメタデータの使用によって)較正命令によって又はそれを用いて修正された初期コード320をロードすること、及び、(ii)上記コード40を、利用可能なユニットごとに少なくとも1つ、ロードされたコードに基づいて自動生成すること(30)を含む。
本発明は、少なくとも1つのソフトウェアプログラマブルユニット210及び少なくとも1つのハードウェアプログラマブルユニット220を備えるヘテロジニアスハードウェアシステム200上で実行するのに適する複数のコードの自動化生成のためのソフトウェア環境310を更に提供し、上記コードは較正命令を含み、上記方法は、(i)1つ以上のコード記述を含む初期(高レベルシミュレーション)コード10をロードすること、(ii)較正命令20をロードすること、(iii)上記コード40を、利用可能なユニットごとに少なくとも1つ、上記ロードされた初期コード及び上記ロードされた較正命令に基づいて、自動的に生成すること(310)、修正する及び/又は注釈する中間ステップをもし伴えば、その後、自動的に生成することを含む。
本発明の一実施形態において述べたように、較正機器330も提供され、方法及び関連するソフトウェア環境は、上記ヘテロジニアスハードウェアシステムに接続される較正機器を誘導するのに適するコード340を同様に自動的に生成する。
したがって、本発明は、種々の配置構成、特に、設計又は較正フレームワークによって構成されるコンピューターシステムを有する第1の配置構成と、上記第1の配置構成及び上記第1の配置構成がコードを生成するヘテロジニアスハードウェアシステムを含む第2の配置構成と、上記第1の配置構成及び/又は第2の配置構成を含み、上記較正機器を更に含む第3の配置構成と、いわばテスト下のデバイス(例えば、電気エンジン、及び、ヘテロジニアスハードウェアシステムがその一部である上記エンジンについて(リアルタイム)制御を提供するエンジン制御ユニットハードウェア)を備える第4の配置構成とを提供し、これらの配置構成の所定の部分は、上記で論じたそれらの機能を実施するが、所定の部分が共有するコードと、所定の部分が生成するデータストリーム(命令、結果)と、特に、自動アプローチにより、所定の部分の特殊性(ヘテロジニアスなリアルタイム制約)が、ユーザーに対しそれを隠蔽しながら、必要に応じて考慮されることとによって、しっかりと相互接続される。
この時点で、同様に、本発明の更なる機能を指摘することができる。実際には(確かに高性能デバイスであるが)、ハードウェア200は、ハードウェアが実行できるコードの量に対する制限を有し、較正中に、追加の(自動的に生成される)コードがハードウェア上にロードされ、ハードウェアによって実行される必要があるため、ユーザー又は設計者は、このことを考慮する傾向がある又は考慮するよう強制される場合があり、それが、悪い結果を更にもたらす場合がある。好ましくは、ユーザー又は設計者又はテスターは、この問題を(過度に)心配する必要なく、自身のデバッグ、テスト、若しくは較正アプローチを設計できるべきであるか、又は、自身のアプローチ開発からこの懸念を切り離す可能性を少なくとも有するべきである。本発明は、これを、自動生成器又はコンパイラーによって認識可能な方法で較正命令を(例えば、自身の方策又はアプローチを実施するために、自身が好む本格的な(full-fledged)方法で)提供することによって可能にし、ユーザーは、好ましい実施形態において、或る特定のステージでどの較正命令を使用するかを示す命令350を提供することもできる(したがって、ハードウェアに適合するサブセットが生成される)。ユーザー又は設計者は、ここで、この方策を段階的に、コードを書き直す労力を伴わずに実行することができる。好ましい実施形態において、ソフトウェア環境は、適合の程度を更に示し、したがって、ユーザー又は設計者がこの方策を段階的に使用していくことを誘導する。
図4に示す本発明によって可能にされる更に別の機能(及び図5に示される更なる例示的な実施形態)は、その機能が、自動較正フィードバックループを実施する可能性をここでサポートすることであり、自動較正フィードバックループは、較正機器から及び/又はテスト下のデバイスに関する他の測定からデータを受信することから始め、ハードウェアシステムに給送される較正パラメーターを変更する。ソフトウェア環境は、データを受信し、受信データに従って、また更に、実行される自動較正ループをユーザーがどれほど好むかに関するユーザー命令410(例えば、パラメーター範囲及び離散化ステップ)に従ってパラメーターを準備するための手段400を有する。ユーザーは、ハードウェア、較正機器の動作をもはや調整する必要はなく、コードにもコード内のパラメーターにも適応する必要はない。これは、全て環境によって自動的にサポートされる。
初期コード10が、同様にシミュレートされ、それにより、シミュレーションデータ420を生成できるようにソフトウェア内で内容的に変更されないことを想起されたい。これは、コードの機能的な類似性を制御する方法を可能にし、その方法は、(i)1つ以上のコード記述を含む初期(高レベルシミュレーション)コードを実行(シミュレート)することと、(ii)方法によって上記初期(高レベルシミュレーション)コードから生成されるコードを実行することと、(iii)上記実行の結果を比較して、上記コードの(実質的に)機能的な類似性を検証するするとともに、好ましくは、この比較結果を使用して、上記で述べた自動較正ループを誘導することとを含む。
本発明の上述した機能を代替的に述べるのは、較正インフラストラクチャが内部アルゴリズム変数の進化の一部の曲線を経時的に抽出できることを強調するためである。自動生成式較正インフラストラクチャのおかげで、未処理データは、FPCUオンチップRAMに記憶され、デバッグ又はCANポートを通して現行技術水準の機器によって読み出すことができる。この未処理データが読み出されると、問題は、較正インフラストラクチャによってモニターされる変数のそれぞれの変数及び任意の変数に対応するデータのブロックを分離できることである。「メタデータ(meta-data)」ベースのフロー及び関連する自動生成プログラムのおかげで、デバッグ機器がデータ曲線を抽出することを可能にすることになる構成スクリプトを自動生成し、構成スクリプトをゴールデンモデル内のそれらの理想値と比較することが可能である。
図6は、ユーザー入力(ステップ350によるユーザー注釈付きモデル320)から、生成される資料50、60、80、100、340までの処理フローの概要を提供する。フローの各部分は以下で詳述される。
本発明の一実施形態において、フローのモデルメタデータ割り当て部分は特定のMatlab GUI拡張に依存する。これらの拡張は、最終ユーザーによって開発されるシミュレーションモデルの処理オペレーターボックス間の接続信号上で利用可能なコンテクスチャルメニューに基づいて、(Matlab)ユーザーインターフェースから実行することができる。一例示的な実施形態が図7に示される。
これらの拡張は、役割として、
・或る特定のワイヤが較正又はデバッグについての候補として考えられるべきか否かを指定することを可能にする専用ダイアログウィンドウを作成し、制御する、
・較正された/デバッグされた信号のそれぞれにユーザーが識別名を関連付けることを可能にする、
・これらの情報を拡張としてモデルデータベースに記憶する、
を有する。
信号リスト採集ステップは全自動プログラムである。このプロセスは、フローの以下の部分について較正及びデバッグ信号のリストを準備する。
このプロセスは、以下のように要約することができる。
1.モデルデータベース内で先行するステップから入力メタデータを抽出する。本発明の一例示的な実施形態において、このプロセスは、これらの情報にアクセスするフックを与えるMatlabスクリプティングAPIに依存する。
2.各「タグ付き(tagged)」信号について:
a.(例えば、Matlab APIから)信号名及びモデル階層構造を得る、
b.(例えば、Matlab APIから)信号データ型を得る、
c.このデータ型に関連する必要なデータ記憶サイズを計算する、
3.信号リスト及びメモリサイズ要件をフローの次のステップのために中間データベースに記憶する。これが、上記で述べた較正方策段階的アプローチについての指示を与えることができることに留意されたい。
Cコード生成器は全自動プログラムである。このプロセスは、デバッグ及びトレース能力を含むために、コンパイルされるとともに、ユーザー規定のアプリケーションソフトウェアとリンクされるべき埋め込み式ソフトウェアCコードを自動的に生成する。生成されるコードは信号メモリマッピング情報を提供する単純なヘッダーファイルである。
HDLコード生成器は、オンチップメモリから/への較正/デバッグデータ転送を適切に実行することができるHDLモジュールを生成する全自動プログラムである。生成されるこのモジュールは、Matlabモデルから生成される「ゴールデン」HDLに更に接続されるものとする。この接続は、処理フローの次のフェーズで行われる(HDLインテグレーション生成器)。
このモジュールは、図8に示す入力/出力ポートとともに生成される。
デバッグタグ付き信号のアレイ:
○フローの先行のステップにおいて準備したデバッグ信号リストから、生成器は、適切なビット幅を有する各信号についての入力ポートを作成する。
・較正タグ付き信号のアレイ:
○フローの先行のステップにおいて準備した較正信号リストから、生成器は、適切なビット幅を有する各信号についての出力ポートを作成する。
・ループスタートトリガー
○この信号は、ゴールデンモデルから抽出される。それは、ゴールデンモデルアルゴリズムの各反復においてアサートされる。
・オンチップRAMアクセスバス
○これは、埋め込み式FPGAとシステムRAMとの間のデータ転送インターフェースである。
・較正ハンドシェイク
○これは、ゴールデンモデルアルゴリズム反復ループに関する較正データ更新の適切な同期化を可能にする較正インフラストラクチャ間の要求/肯定応答プロトコルである。
生成されるモジュールによって解決される主要な課題は:
・オンチップRAMから/へのデータ転送をできる限り高速に実施する、
・競合を回避するため、ゴールデンモデル反復と同期してデータ転送を実施する、
である。
図9は、埋め込み式FPGA内にマッピングされたリアルタイム制御ループアルゴリズムの典型的な挙動を示す。挙動は、基本的に3つのフェーズで作られる:
1.取得:埋め込み式FPGAは、外部システムセンサーモジュール(例:ADC)から複数の入力を採取する。
2.処理:FPGAは、これらの入力を演算し、出力データ値を計算する。
3.更新:演算された出力データは、デジタルモジュール(すなわち、PWM)を通りパワートレインアクチュエーターを通って転送される。
この挙動は、本発明者らの較正及びデバッグインフラストラクチャに以下の困難な制約を課す。
1.処理フェーズは、較正データをアルゴリズムのためのパラメーターとして使用することである。したがって、このフェーズ中に、較正パラメーターを安全に変更することは可能でない。
2.処理フェーズは、デバッグデータを計算することである。そのため、これらの値が、処理の終了まで有効であることを保証できない。
結論:課題解決は、デバッグ及び較正データ転送を取得及び更新期間に制限するメカニズムを有することである。
図10に示す生成されるHDLモジュールにおけるデバッグデータ転送プロセスは、直前に特定されたデバッグ信号の値をオンチップRAMに転送することに専用である。図11に示す生成されるHDLモジュールにおける較正データ転送プロセスは、直前に特定された較正信号の値をオンチップRAMに転送することに専用である。
HDLインテグレーション生成器は全自動プログラムである。
HDLインテグレーション生成器は、
・(標準的なMatlab HDL生成器を使用して)Matlabモデルから生成されるゴールデンHDLモデル、
・直前に生成されたRAMロガーモジュール、
の両方をインスタンス化するHDLラッパーを自動的に生成することにその本質がある。
そして、その後、両者間のワイヤ接続を作成する。
デバッガースクリプト生成器は、フローの第1のフェーズから演算されるデバッグ信号及び関連するメモリマッピングのリストを入力としてとる自動プログラムである。
この情報に基づいて、デバッガースクリプト生成器は、ターゲットデバッガーシステムの言語でスクリプトのセットを生成する。これらのスクリプトの目的は、デバイスから流出する未処理ビットストリームから、各デバッグ信号に対応するデータのチャンクを、デバッガーが適切に抽出することを可能にする。
要約すると、コード生成ステップは、複数のサブステップから構成され、複数のサブステップは、その入力コード(モデルデータベース)からの自動化信号リスト採取ステップで始まり、フローの後続の部分に適する較正及びデバッグ信号のリストをもたらす。別のステップは、デバッグ及びトレース能力を含むために、コンパイルされるとともに、ユーザー規定のアプリケーションソフトウェアとリンクされるべきソフトウェアCコードを提供する自動Cコード生成器である。生成されるコードは信号メモリマッピング情報を提供する。更に別のステップは、オンチップメモリから/への較正/デバッグデータ転送を適切に実行することができるHDLモジュールを生成する自動HDLコード生成器である。生成されるこのモジュールは、HDLインテグレーション生成器である次のサブステップによって、モデルから生成される「ゴールデン」HDLに更に接続されるものとし、HDLインテグレーション生成器は、デバッグ及び較正データ転送を特定された取得及び更新期間に制限するメカニズムをサポートすることによって競合を回避するため、ゴールデンモデル反復と同期して(オンチップ)メモリ(RAM)からの、またそこへのデータ転送を実施するためのHDLモジュールを提供する。最後に、自動HDLインテグレーション生成器サブステップは、ゴールデンHDLモデル及び直前に生成されたRAMロガーモジュールをともにインスタンス化するHDLラッパーを自動的に生成し、その後、両者間のワイヤ接続を作成する。さらに、自動デバッガースクリプト生成器サブステップは、フローの第1のフェーズから演算されるデバッグ信号及び関連するメモリマッピングのリストを入力としてとり、この情報に基づいてターゲットデバッガーシステムの言語でスクリプトのセットを生成する。
最後に、デバッグ及びトレースインフラストラクチャとして一般に知られるデバッグインフラストラクチャ700をFPCUが有する図12及び図13の特定の文脈を強調する価値がある。実際には、そのようなインフラストラクチャは、利用可能とすることができ、
(1)種々の侵入的要素のおかげで、回路全体にわたって全てのデバッグ及びトレースデータを採取すること:
・CPUによって実行される命令のプロービング、
・システムバス上でのデータ転送のプロービング、
・FPCU内の多くのイベント(IRQ、DMA要求、トリガー、...)のプロービング、
・FLUの周りの全ての入力及び出力トランザクションのプロービング、
(2)これらの全てのデータのタイムスタンプ
(3)これらのデータのパッキング及びエンコーディング
(4)これらのデータのオンチップトレースメモリへの記憶
(5)適切なインターフェースを通した外部デバッグ機器への転送
を担当することができる。
FPCUがデバッグインフラストラクチャ700を有する場合について上記で述べた方法に更なる特徴を提供し、それにより、現行の技術水準では想定されないより複雑なデバッグ及びテストシナリオをサポートすることが本発明の特定の寄与である。
したがって、本発明は、少なくとも1つのソフトウェアプログラマブルユニット210及び少なくとも1つのハードウェアプログラマブルユニット220並びにデバッグ及びテストインフラストラクチャ700を備えるヘテロジニアスハードウェアシステム200上で実行するのに適する複数のコードの自動化生成のための方法において、上記コードは実行可能なデバッグ及び/又はテスト命令を含み、上記方法は、(i)1つ以上のコード記述を含む初期コード10をロードすること、(ii)上記初期コード10上で、較正パラメーターとして考えられるコード記述内の変数及び/又はモニターされる値であると考えられるコード記述内の変数を指定する、ユーザーデバッグ及び/又はテスト命令20を提供すること、(iii)上記コード40を、利用可能なユニットごとに少なくとも1つ、デバッグ及び/又はテスト命令を備える上記ロードされた初期コードに基づいて、自動的に生成する(30)ステップを含み、中間ステップ800が想定され、特に、上記コード40を、利用可能なユニットごとに少なくとも1つ、デバッグ及び/又はテスト命令を備える上記ロードされた初期コードに基づいて、自動的に生成する(30)ステップ(iii)は、ソフトウェアプログラマブルユニット210及びハードウェアプログラマブルユニット220についてそれぞれ生成されるコードが、上記デバッグ及び/又はテスト命令を備えることになるか否か、又は、上記デバッグ及びテストインフラストラクチャ700がデバッグ及び/又はテスト命令(その一部)を実施することになるか否かを自動的に判定する(800)ステップ(a)と、その後、上記コード40を、利用可能なユニットごとに少なくとも1つ、デバッグ及び/又はテスト命令を備える上記ロードされた初期コードに基づいて、ステップ(a)の上記自動判定に基づいて、自動的に生成する(810)ステップ(b)とを含むことを特徴とする、方法を提供する。
単純な例(図14に示す)がここで述べられる:
・アナログデータが、ADC周辺機器を通してサンプリングされ、FLUによって前処理され、FLUに送信される別のデータに変換されるモデルの単純な例を採用する。
・FLU及びCPU処理における幾つかの中間変数も想像することができる。
・この例において、デバッグプロービングのための候補である5つの変数が存在する。
−VAR_A:FLUの内部でありかつデバッグインフラストラクチャによって可視性がある(FLUインターフェースプロービング)、
−VAR_B:FLUインターフェースロジックによってのみアクセス可能、
−VAR_C:FLU及びデバッグインフラストラクチャによってアクセス可能、
−VAR_D:デバッグインフラストラクチャ及びCPUによってアクセス可能、
−VAR_E:CPUソフトウェアによってのみアクセス可能。
そのため、コード生成コンフィギュレーター800の役割は、3つのコンポーネントのうちのどのコンポーネントがデバッグ及びテストについての変数を管理するのに最も適切かを決定することである。このソフトウェアは、ゴールデンモデルを解析して、3つの要素のうちのどの要素が所与の変数に関して可視性を有するかを理解することができる。これに基づいて、ソフトウェアは、変数管理を適切なコード生成器に割り当てることになる。
例示的な実施形態において、決定は、以下のようになる。
○変数がデバッグインフラストラクチャから可視性がある場合、変数は、デバッグ機器スクリプトを通して扱われることになる。なぜならば、これが、侵入的でない管理であるからである。
○そうでない場合、すなわち、変数が、CPUとFLUとの両方によって可視である場合、選択は、通常、ハードのリアル処理の影響を制限するためにCPUであることになる。
○他の優先度管理は、他の制約に基づいて規定することができる。
例:CPUソフトウェアが、ゴールデンモデル関数によって既に100%ロードされている場合、アルゴリズムは、FLU内の変数を管理することを決定することができる。
10 コード,ゴールデンモデル,コード1
20 テスト命令,較正メタデータ,較正命令,デバッグ&テストメタデータ
30 標準的な自動生成
40 コード,ビットストリームを含むコード3
50 コード,Cコード
60 コード
70 操作コード(プロセッサ上のC)
80 操作コード(FLU上のHDL),HDLコード
90 コード,Cでの較正アドオン,Cでのデバッグ&テストアドオン
100 コード,HDLでの較正アドオン,HDLコード,HDLでのデバッグ&テストアドオン
200 ヘテロジニアスハードウェアシステム,FPCUデバイス
210 ソフトウェアプログラマブルユニット,CPUコア
220 ハードウェアプログラマブルユニット,操作コード(FLU上のHDL)
240 オンチップRAM
300,310 ソフトウェア環境
320 ユーザー注釈付きモデル,コード2=コード1+注釈,モデルメタデータ割り当て
330 較正機器,デバッグ及び較正機器,デバッグ機器
340 コード,コード4,デバッグ機器構成,デバッガー,デバッグ機器スクリプト
350 ユーザー命令,モデルメタデータ割り当て
400 手段
410 ユーザー命令
420 シミュレーションデータ
600 信号リスト採取
610 HDLコード生成器
620 HDLインテグレーション生成器
700 デバッグインフラストラクチャ,テストインフラストラクチャ,SOCデバッグ及びトレースインフラストラクチャ
800 コード生成コンフィギュレーター,デバッグ&テスト生成器構成
810 デバッグ&テストCコード生成器

Claims (18)

  1. 少なくとも1つのソフトウェアプログラマブルユニット(210)及び少なくとも1つのハードウェアプログラマブルユニット(220)並びに任意選択でデバッグ及びテストインフラストラクチャ(700)を備えるヘテロジニアスハードウェアシステム(200)上で実行するのに適する複数のコードの自動化生成のための方法であって、前記コードは実行可能なデバッグ及び/又はテスト命令を含み、前記方法は、(i)1つ以上のコード記述を含む初期コード(10)をロードすることと、(ii)前記初期コード(10)上で、較正パラメーターとして考えられる前記コード記述内の変数及び/又はモニターされる値であると考えられる前記コード記述内の変数を指定する、ユーザーデバッグ及び/又はテスト命令(20)を提供することと、(iii)前記コード(40)を、利用可能なユニットごとに少なくとも1つ、デバッグ及び/又はテスト命令を備える前記ロードされた初期コードに基づいて、自動的に生成する(30)ステップとを含む、方法。
  2. 前記ユーザーは、前記ソフトウェアプログラマブルユニット(210)及び前記ハードウェアプログラマブルユニット(220)についてそれぞれ前記生成されるコードが、前記デバッグ及び/又はテスト命令を備えることになるか否か、又は、備えるとき、前記デバッグ及びテストインフラストラクチャ(700)が前記デバッグ及び/又はテスト命令(前記デバッグ及び/又はテスト命令の一部)を実施することになるか否かを(提供することはできるが)提供する必要はない、請求項1に記載の方法。
  3. 前記コード(40)は、前記初期コード内の前記ユーザーデバッグ及び/又はテスト命令内で示される変数の値をオーバーライドする及び/又はサンプリングすることを可能にする、請求項1に記載の方法。
  4. (iii)前記コード(40)を、利用可能なユニットごとに少なくとも1つ、デバッグ及び/又はテスト命令を備える前記ロードされた初期コードに基づいて、自動的に生成する(30)ステップは、前記ソフトウェアプログラマブルユニット(210)及び前記ハードウェアプログラマブルユニット(220)についてそれぞれ前記生成されるコードが、前記デバッグ及び/又はテスト命令を備えることになるか否か、又は、備えるとき、前記デバッグ及びテストインフラストラクチャ(700)が前記デバッグ及び/又はテスト命令(前記デバッグ及び/又はテスト命令の一部)を実施することになるか否かを自動的に判定する(800)ステップ(a)と、その後、前記コード(40)を、利用可能なユニットごとに少なくとも1つ、デバッグ及び/又はテスト命令を備える前記ロードされた初期コードに基づいて、ステップ(a)の前記自動判定に基づいて、自動的に生成する(810)ステップ(b)とを含む、請求項2に記載の方法。
  5. 前記ステップ(a)(800)は、前記パラメーター又は変数が、前記デバッグ及びテストインフラストラクチャ(700)及び/又は前記ソフトウェアプログラマブルユニット(210)上にロードされた前記コードによってアクセスされるか否かを判定することに基づく、請求項4に記載の方法。
  6. (iv)前記ヘテロジニアスハードウェアシステムに接続される較正及び/又はデバッグ機器(330)に適するコード(340)を自動的に生成するステップを更に備え、任意選択で(請求項4に応じて)、前記ステップ(iv)はステップ(a)の前記自動判定に基づく、請求項1に記載の方法。
  7. 前記ソフトウェアプログラマブルユニット(210)はマイクロプロセッサコアであり、前記マイクロプロセッサコアの対応するコードはソフトウェア言語コード(50)であり、前記ハードウェアプログラマブルユニット(220)はプログラマブルロジックマトリクスであり、前記プログラマブルロジックマトリクスの対応するコードはハードウェア記述言語コード(60)である、請求項1〜6のいずれか一項に記載の方法。
  8. 前記ヘテロジニアスハードウェアシステムは、デバッグ及び/又はテストに関連するデータ転送をサポートする特定のリソース(230)を含み、前記自動的に生成されるコード(40)は前記リソースを利用する、請求項1〜7のいずれか一項に記載の方法。
  9. ステップ(iii)は、デバッグ及び/又はテスト命令を備える前記ロードされた初期コードからの信号のリストの自動化採取(のステップ)を含み、較正信号のリストをもたらす、請求項1に記載の方法。
  10. ステップ(iii)は、特定のリソース(230)の一部であるオンチップメモリ(240)からの/への較正データ転送を、特定された採取及び/又は更新期間に前記較正データ転送を制限するメカニズムをサポートすることによって実行することができるHDLモジュールを生成するための自動HDLモジュールコード(100)生成のステップ(610)を含み、好ましくは、前記自動HDLモジュールコード生成は較正信号の前記リストを使用する、請求項7及び8(及び好ましくは請求項9)に記載の方法。
  11. ステップ(iii)は、(a)前記初期コードからHDLを生成するステップ(630)及び(コード(60)を得るために)前記生成されたHDLを前記生成されたHDLモジュールに(有線)接続するステップ(620)を含み、好ましくは、前記ステップ(620)は較正信号の前記リストを使用する、請求項10に記載の方法。
  12. 初期コードの機能的な類似性及び前記初期コードから生成された自動的に生成されるコードを制御する方法であって、(i)1つ以上のコード記述を含む初期(高レベルシミュレーション)コードを実行(シミュレート)することと、(ii)請求項1〜11のいずれか一項に記載の方法によって、前記初期(高レベルシミュレーション)コードから生成されるコードを実行することと、(iii)前記実行の結果を比較して、前記コードの(実質的に)機能的な類似性を検証することとを含む、方法。
  13. 電気エンジン及び前記エンジンのための制御を提供するエンジン制御ユニットハードウェアを備える配置構成であって、前記エンジン制御ユニットハードウェアは、少なくとも1つのソフトウェアプログラマブルユニット及び少なくとも1つのハードウェアプログラマブルユニットを備えるヘテロジニアスハードウェアシステムを備え、前記ユニットは、請求項1〜11のいずれか一項に記載の方法によって生成されるコードを実行するために適合される、配置構成。
  14. 前記ソフトウェアプログラマブルユニットはマイクロプロセッサコアであり、前記マイクロプロセッサコアの対応するコードはソフトウェア言語コードであり、前記ハードウェアプログラマブルユニットはプログラマブルロジックマトリクスであり、前記プログラマブルロジックマトリクスの対応するコードはハードウェア記述言語コードである、請求項13に記載の配置構成。
  15. 前記ヘテロジニアスハードウェアシステムは、較正に関連するデータ転送をサポートする特定のリソースを含む、請求項13又は14に記載の配置構成。
  16. 請求項13〜15のいずれか一項に記載の配置構成並びに前記ヘテロジニアスハードウェアシステム及び前記エンジンに接続される較正機器を備える較正配置構成であって、前記較正機器は、請求項6の方法によって生成されるコードを実行するために適合される、較正配置構成。
  17. コンピューター可読コードを含むコンピュータープログラム製品であって、前記コンピューター可読コードは、コンピューターシステム上で実行されると、請求項1〜12のいずれか一項に記載の方法を前記コンピューターシステムに実行させる、コンピュータープログラム製品。
  18. 請求項17に記載のコンピュータープログラム製品を記憶する非一時的機械可読記憶媒体。
JP2020544111A 2017-11-02 2018-10-31 エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 Active JP7262818B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762580830P 2017-11-02 2017-11-02
EP17199622.6 2017-11-02
US62/580,830 2017-11-02
EP17199622 2017-11-02
PCT/EP2018/079835 WO2019086519A1 (en) 2017-11-02 2018-10-31 Software environment for control engine debug, test, calibration and tuning

Publications (2)

Publication Number Publication Date
JP2021501953A true JP2021501953A (ja) 2021-01-21
JP7262818B2 JP7262818B2 (ja) 2023-04-24

Family

ID=64049267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020544111A Active JP7262818B2 (ja) 2017-11-02 2018-10-31 エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境

Country Status (5)

Country Link
US (2) US11397663B2 (ja)
EP (1) EP3704587A1 (ja)
JP (1) JP7262818B2 (ja)
CN (1) CN111480150A (ja)
WO (1) WO2019086519A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3704587A1 (en) * 2017-11-02 2020-09-09 Silicon Mobility SAS Software environment for control engine debug, test, calibration and tuning
CN112433826B (zh) * 2021-01-27 2021-04-20 南京芯驰半导体科技有限公司 混合异构虚拟化通信方法及芯片
US11755459B2 (en) * 2021-03-23 2023-09-12 Western Digital Technologies, Inc. Management of a debug buffer based on priority information
US11886837B2 (en) * 2021-04-10 2024-01-30 Accenture Global Solutions Limited Simulation-based software design and delivery attribute tradeoff identification and resolution
CN116955894B (zh) * 2023-09-20 2024-01-09 肇庆星诺奇传动科技有限公司 一种在线自适应螺纹长度信息校准方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013003854A (ja) * 2011-06-16 2013-01-07 Fujitsu Ltd テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置
JP2013148968A (ja) * 2012-01-17 2013-08-01 Fujitsu Ltd テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法
JP2015210814A (ja) * 2014-04-29 2015-11-24 株式会社日立製作所 被制御システムの制御ソフトウェアをテストする方法およびシステム

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742175B1 (en) 1998-10-13 2004-05-25 Codagen Technologies Corp. Component-based source code generator
US6581191B1 (en) * 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US6823497B2 (en) * 1999-11-30 2004-11-23 Synplicity, Inc. Method and user interface for debugging an electronic system
US7240303B1 (en) * 1999-11-30 2007-07-03 Synplicity, Inc. Hardware/software co-debugging in a hardware description language
US20020072893A1 (en) * 2000-10-12 2002-06-13 Alex Wilson System, method and article of manufacture for using a microprocessor emulation in a hardware application with non time-critical functions
US7222315B2 (en) * 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
JP2002230061A (ja) * 2001-01-30 2002-08-16 Matsushita Electric Ind Co Ltd 半導体回路接続データベース及びこれを用いた半導体回路設計方法
JP2002366602A (ja) * 2001-04-06 2002-12-20 Seiko Epson Corp ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム
US20030056197A1 (en) * 2001-08-30 2003-03-20 Dennis Peter D. J. Method and apparatus to facilitate debugging computer code within an operating system kernel
US6961924B2 (en) * 2002-05-21 2005-11-01 International Business Machines Corporation Displaying variable usage while debugging
US7086017B1 (en) * 2002-06-10 2006-08-01 Xilinx, Inc. Method of post-implementation simulation of a HDL design
US6996735B2 (en) * 2002-11-22 2006-02-07 Texas Instruments Incorporated Apparatus for alignment of data collected from multiple pipe stages with heterogeneous retention policies in an unprotected pipeline
US7409652B1 (en) 2004-06-04 2008-08-05 Altera Corporation Debuggable opaque IP
US7703073B2 (en) * 2004-06-08 2010-04-20 Covia Labs, Inc. Device interoperability format rule set and method for assembling interoperability application package
EP2011004B1 (en) * 2006-04-04 2019-01-02 TIBCO Software Inc. Method and system for providing a visual debugger for an interpreted statistical language
US9354944B2 (en) * 2009-07-27 2016-05-31 Advanced Micro Devices, Inc. Mapping processing logic having data-parallel threads across processors
US20110258421A1 (en) * 2010-04-19 2011-10-20 International Business Machines Corporation Architecture Support for Debugging Multithreaded Code
US9141831B2 (en) * 2010-07-08 2015-09-22 Texas Instruments Incorporated Scheduler, security context cache, packet processor, and authentication, encryption modules
CN101923466B (zh) * 2010-07-23 2014-04-16 清华大学 装饰器模式的指令的存取方法
US8776025B2 (en) * 2011-11-04 2014-07-08 International Business Machines Corporation Integrated debugger and code coverage tool
US20130125093A1 (en) 2011-11-11 2013-05-16 General Electric Company Generating object-oriented programming language code from a multi-domain dynamic simulation model
CN102902620B (zh) * 2011-12-23 2015-06-03 同济大学 基于gdb的异构计算调试环境的实现系统
US9135131B2 (en) * 2012-02-16 2015-09-15 National Instruments Corporation Customizing operation of a test instrument based on information from a system under test
US9354998B2 (en) * 2012-05-04 2016-05-31 Aegis.Net, Inc. Automated conformance and interoperability test lab
RU2012127578A (ru) * 2012-07-02 2014-01-10 ЭлЭсАй Корпорейшн Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред
DE102012211981A1 (de) * 2012-07-10 2014-01-16 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren und Vorrichtung zum Erstellen und Testen eines Steuergeräteprogramms
EP3499371B1 (en) * 2012-11-09 2023-06-07 Coherent Logix Incorporated Real time analysis and control for a multiprocessor system
CN103049270A (zh) * 2012-12-27 2013-04-17 福州福大自动化科技有限公司 人机界面软件的无脚本组态和调试方法
US9053230B2 (en) * 2013-01-14 2015-06-09 International Business Machines Corporation Framework and repository for analysis of software products
US9235395B2 (en) * 2013-05-30 2016-01-12 National Instruments Corporation Graphical development and deployment of parallel floating-point math functionality on a system with heterogeneous hardware components
US9600398B2 (en) * 2013-10-29 2017-03-21 Synopsys, Inc. Method and apparatus for debugging HDL design code and test program code
US9477807B1 (en) * 2015-06-11 2016-10-25 International Business Machines Corporation Automating system on a chip customized design integration, specification, and verification through a single, integrated service
CN105550430B (zh) * 2015-12-09 2019-01-01 中国船舶重工集团公司第七二六研究所 基于模型设计的通用型红外焦平面设备开发系统
DE102017103732A1 (de) * 2016-02-25 2017-08-31 Infineon Technologies Austria Ag Hardwareüberwachungsvorrichtung, Laufzeitüberwachungsvorrichtung und entsprechende Verfahren
WO2017165712A1 (en) * 2016-03-23 2017-09-28 FogHorn Systems, Inc. Composition of pattern-driven reactions in real-time dataflow programming
US11042471B2 (en) * 2017-08-25 2021-06-22 Oracle International Corporation System and method for providing a test manager for use with a mainframe rehosting platform
EP3704587A1 (en) * 2017-11-02 2020-09-09 Silicon Mobility SAS Software environment for control engine debug, test, calibration and tuning
US10678675B2 (en) * 2017-11-14 2020-06-09 Microsoft Technology Licensing, Llc Assistive, language-agnostic debugging with multi-collaborator control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013003854A (ja) * 2011-06-16 2013-01-07 Fujitsu Ltd テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置
JP2013148968A (ja) * 2012-01-17 2013-08-01 Fujitsu Ltd テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法
JP2015210814A (ja) * 2014-04-29 2015-11-24 株式会社日立製作所 被制御システムの制御ソフトウェアをテストする方法およびシステム

Also Published As

Publication number Publication date
US20210182181A1 (en) 2021-06-17
JP7262818B2 (ja) 2023-04-24
US20220391306A1 (en) 2022-12-08
US11954015B2 (en) 2024-04-09
CN111480150A (zh) 2020-07-31
EP3704587A1 (en) 2020-09-09
WO2019086519A1 (en) 2019-05-09
US11397663B2 (en) 2022-07-26

Similar Documents

Publication Publication Date Title
JP7262818B2 (ja) エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境
KR102166753B1 (ko) 자동화된 반도체 디바이스 테스트를 위한 테스트 계획을 컴파일하기 위해 사용되는 개발 환경 내에 편집 및 갱신 기능 구현
US9501269B2 (en) Automatic source code generation for accelerated function calls
US10423571B2 (en) Method for configuring a real or virtual electronic control unit
US9952837B1 (en) Reusable component in a modeling environment
KR20220002644A (ko) 집적 회로들에 대한 동적 설계 흐름들의 생성
EP2561441A1 (en) Improved embedded system performance
US11250193B1 (en) Productivity platform using system-on-chip with programmable circuitry
US20190163452A1 (en) Method and system for generating program code
CN111985055B (zh) 一种模型封装方法、装置及电子设备
US8972931B1 (en) Contextual verification of generated code
US9058427B2 (en) Iterative generation of symbolic test drivers for object-oriented languages
Sandmann et al. Autosar-compliant development workflows: From architecture to implementation-tool interoperability for round-trip engineering and verification and validation
US8510708B2 (en) Method for optimizing a control program for actuators
US10430200B2 (en) Slave processor within a system-on-chip
US10474610B1 (en) Hardware trace and introspection for productivity platform using a system-on-chip
JP5269450B2 (ja) 試験システム及びバックアノテーション方法
CN109542760B (zh) 一种基于设备规约的虚拟原型变异测试用例生成方法
Blair Beckhoff and twincat 3 system development guide
Picard et al. Multilevel simulation of heterogeneous reconfigurable platforms
Mohamed HW/SW Co-Verification and Co-Debugging
Mendoza et al. Framework for dynamic verification of multi-domain virtual platforms in industrial automation
US10365897B1 (en) Model ring component
Gluch et al. Automated code generation for safety-related applications: a case study
CN116048999A (zh) 一种嵌入式软件数据访问方法、装置、终端及存储介质

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20200618

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230405

R150 Certificate of patent or registration of utility model

Ref document number: 7262818

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150