(57)【要約】【課題】ランタイムにFPGAにおけるモデル変数へのアクセスを実現し、また、FPGAベースのリアルタイムシミュレーションを作成する際の反復的な開発周期の短縮を実現する方法を提供する。【解決手段】FPGAハードウェア・コンフィギュレーション（２４）をFPGA（５）にロードするステップと、FPGA（５）において、FPGAハードウェア・コンフィギュレーション（２４）を実施するステップと、FPGA（５）の信号値を要求するステップと、FPGA（５）の機能レベル（６）から、FPGA（５）のコンフィギュレーションレベル（７）におけるコンフィギュレーションメモリ（８）に状態データを伝送するステップと、状態データをコンフィギュレーションメモリ（８）からリードバックデータとして読み出すステップと、リードバックデータから前記信号値を検出するステップとを備えている。【選択図】図１
2014154173.tif 000002
【特許請求の範囲】
【請求項１】
ランタイムにFPGA（５）の信号値にアクセスするための方法において、
FPGAハードウェア・コンフィギュレーション（２４）を前記FPGA（５）にロードするステップと、
前記FPGA（５）において、前記FPGAハードウェア・コンフィギュレーション（２４）を実施するステップと、
前記FPGA（５）の信号値を要求するステップと、
前記FPGA（５）の機能レベル（６）から、前記FPGA（５）のコンフィギュレーションレベル（７）におけるコンフィギュレーションメモリ（８）に状態データを伝送するステップと、
前記状態データを前記コンフィギュレーションメモリ（８）からリードバックデータとして読み出すステップと、
前記リードバックデータから前記信号値を検出するステップと、
を備えていることを特徴とする、方法。
【請求項２】
前記リードバックデータから前記信号値を検出するステップは、前記リードバックデータを少なくとも一つのレジスタ値にコピーすることを含む、請求項１に記載の方法。
【請求項３】
前記リードバックデータから前記信号値を検出するステップは、少なくとも一つのレジスタ値から前記信号値を検出することを含む、請求項１又は２に記載の方法。
【請求項４】
前記コンフィギュレーションメモリ（８）から前記状態データをリードバックデータとして読み出すステップは、前記信号値を検出するために必要とされる前記コンフィギュレーションメモリの領域を求めるステップと、前記コンフィギュレーションメモリ（８）の前記必要とされる領域の状態データをリードバックデータとして読み出すステップとを含む、請求項１乃至３のいずれか一項に記載の方法。
【請求項５】
状態データを前記FPGA（５）の機能レベル（６）から前記FPGA（５）のコンフィギュレーションレベル（７）におけるコンフィギュレーションメモリ（８）に伝送するステップは、前記信号値を検出するために必要とされる前記状態データの複数の部分を求めるステップと、前記状態データの前記部分をコンフィギュレーションメモリ（８）において保護するステップとを含む、請求項１乃至４のいずれか一項に記載の方法。
【請求項６】
前記FPGA（５）の信号値を要求するステップは、利用可能な信号値のリストを提供するステップと、前記リストから信号値を選択するステップとを含む、請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
付加的なステップ、即ち、
前記FPGA（５）に伝送するための信号値を設定するステップと、
前記信号値からライトバックデータを検出するステップと、
前記ライトバックデータを状態データとして前記FPGA（５）の前記コンフィギュレーションメモリ（８）に書き込むステップと、
前記状態データを前記コンフィギュレーションメモリ（８）から前記FPGA（５）の前記機能レベル（６）に伝送するステップと、
を備えている、請求項１乃至６のいずれか一項に記載の方法。
【請求項８】
ハードウェア記述言語でのFPGAモデル（２０）に基づくFPGAビルドの実施方法において、
FPGAハードウェア・コンフィギュレーション（２４）を作成するステップと、
前記FPGAハードウェア・コンフィギュレーション（２４）に基づき、少なくとも一つの信号値の状態データに関するコンフィギュレーションメモリ（８）の記憶ロケーション（９）を求めるステップと、
ランタイムにアクセス可能な信号値と、該信号値に対応する記憶ロケーション（９）とを有するリストを作成するステップと、
を備えていることを特徴とする、方法。
【請求項９】
読み出し可能な信号値と、該信号値に対応する記憶ロケーション（９）とを有しているリストを作成するステップは、前記信号値を形成するために、複数の記憶ロケーション（９）の結合状態を求めるステップを含む、請求項８に記載の方法。
【請求項１０】
信号値を検出するためにFPGAコード（４４）を生成する付加的なステップを備えており、
前記FPGAコード（４４）は、前記状態データを前記コンフィギュレーションメモリ（８）からリードバックデータとして読み出すこと、並びに、読み出し可能な信号値と、該信号値に対応する記憶ロケーション（９）とを有している前記リストに基づき、前記リードバックデータから前記信号値を検出することを含む、請求項９に記載の方法。
【請求項１１】
一つの信号値に関する複数の状態データを有している複数の記憶ロケーション（９）を、前記FPGA（５）の一つのリードバック列に配置することにより、前記FPGAハードウェア・コンフィギュレーションを最適化する付加的なステップを備えている、請求項８乃至１０のいずれか一項に記載の方法。
【請求項１２】
一つの信号値に関する複数の状態を有している複数の記憶ロケーション（９）を、前記FPGA（５）の隣接する複数の領域内に配置することにより、前記FPGAハードウェア・コンフィギュレーションを最適化する付加的なステップを備えている、請求項８乃至１１のいずれか一項に記載の方法。
【請求項１３】
状態データを提供するための複数の論理ブロックの出力端に複数の記憶ロケーション（９）を追加する付加的なステップを備えている、請求項８乃至１２のいずれか一項に記載の方法。
【請求項１４】
プロセッサユニット及びFPGAを備えている、請求項１乃至７のいずれか一項に記載の方法を実施する、データ処理装置（３）。
【請求項１５】
前記FPGA（５）はザイリンクスのFPGAである、請求項１４に記載のデータ処理装置（３）。
【請求項１６】
適切なデータ処理装置（３）にロード及び実行された後に、請求項１乃至７のいずれか一項に記載の方法のステップを実施する、コンピュータにより実現される命令を備えているコンピュータプログラム。
【請求項１７】
請求項１乃至７のいずれか一項に記載の方法がプログラミング可能なデータ処理装置（３）において実施されるように、前記データ処理装置（３）と協働することができる電子的に読み出し可能な制御信号を備えているディジタル記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ランタイムにFPGAの信号値にアクセスするための方法に関する。同様に本発明は、プロセッサユニット及びFPGAを備えている、上述の方法を実施するデータ処理装置に関する。更に本発明は、適切なデータ処理装置にロード及び実行された後に上述の方法のステップを実施する、コンピュータにより実現される命令を備えているコンピュータプログラム、並びに、上述の方法が実施されるように、プログラミング可能なデータ処理装置と協働することができる電子的に読み出し可能な制御信号を備えているディジタル記憶媒体に関する。最後に、本発明は、ハードウェア記述言語でのFPGAモデルに基づくFPGAビルドの実施方法に関する。
【背景技術】
【０００２】
複雑で動的なモデルのリアルタイムシミュレーションは、時間的な周辺条件自体が厳しいことから、現在のコンピュータノードに高い要求を課している。自動車のハードウェア・イン・ザ・ループ（HiL：Hardware-in-the-Loop）シミュレーションにおいては、その種のモデルは特に、高速な制御回路を接続しなければならないところで使用される。これは例えば、シリンダ内部圧力センサをシミュレーションする場合である。シリンダ内部圧力センサは燃費又は排ガスの低減において益々重要な役割を担ってきている。しかしながら、例えば電気モータのような高いダイナミクスを有している制御区間においても、短い周期時間及び待ち時間が不可欠である。しかしながら、そのような短い周期時間及び待ち時間はCPUベースのシミュレーションでは殆ど実現することはできない。
【０００３】
フィールド・プログラマブル・ゲート・アレイ（FPGA：Field Programmable Gate Array）は、モデルの動的な部分の計算を担うことにより、リアルタイムシミュレーションにおいてコンピュータノードを支援することができる。フレキシビリティが高く、また複数の信号の並列処理を実現できることから、FPGAを使用することにより、厳しいリアルタイム要求も容易に満たすことができる。FPGAはコンピュータノードのCPUのためのハードウェア・アクセラレータとして使用することができる。HiLシミュレータのためのその種の拡張形態として、例えばdSPACE社のDS5203-FPGA Boardが挙げられる。相応に、例えば環境モデルの非常に動的な部分がFPGAにスワップされるので、制御装置に対する非常に厳密で高速な応答時間は依然として保証される。FPGAハードウェア・コンフィギュレーションは通常の場合、ハードウェア記述言語でのFPGAモデルに基づくビルドプロセスにより生成される。
【０００４】
精度に対する要求が高まることによって、制御区間のモデルは一層複雑になり、従って管理も困難になる。自動車のHiL環境においては、その種のモデルは通常の場合、マスワークス（MathWorks）社のツールセットであるマトラブ／シミュリンク（Matlab/Simulink）を用いて作成される。シミュリンクはブロック回路図の形態のブロックベースの図をその種のモデルに提供する。モデルパーツをブロック回路図においてサブシステムに統合し、相互に信号と結合させることができる。それらのブロック間のデータフローは信号線路により表される。
【０００５】
CPUベースのリアルタイムシミュレーションにおいては、モデルのブロック回路図がシミュリンクコーダ（Simulink Coder）を用いてC/C++ソースファイルに翻訳される。それらのソースファイルは続いてコンパイラによって実行可能なアプリケーションに翻訳され、それらのアプリケーションをリアルタイム能力のあるオペレーションシステムを備えているコンピュータノードにおいて実行することができる。更に、CPUビルドの際にトレースファイル（Trace-File）が生成され、このトレースファイルはトポロジーファイル（Topologie File）を、例えばシミュリンクでのグラフィックモデリングを用いて表す。
【０００６】
モデルのCPUアプリケーションへの翻訳によって、シミュレーションの計算がシーケンシャルに固定のステップ幅で実施されることになる。それと共に、全てのモデル状態又はモデル変数、例えば信号線路上のデータ又はブロックの入力値／出力値の一貫性のあるコピーが、常にコンピュータノードのメインメモリに存在している。メインメモリへの直接的なアクセスにより、モデル変数を実験ツール、例えばコントロールデスク（ControlDesk）において分析及び／又は操作することができる。HiLシミュレーションの変数へのランダムな書き込み／読み出しアクセスを実現できる。トレースファイルに基づき、例えばモータ回転数のような信号値を選択することができ、また、ディスプレイを介して出力又は操作することができる。HiLの分野では、この動作が「測定」及び「調整」という概念に要約される。
【０００７】
FPGAベースのシミュレーションを、dSPACE社のFPGAプログラミング・ブロックセット（FPGA-Programming Blockset）及びザイリンクス・システム・ジェネレータ（XSG：Xilinx System Generator）を利用して、CPUベースのシミュレーションと同様に、シミュリンクを用いてブロック回路図でモデリングすることができる。
【０００８】
もっともそのようなモデルは、CPUベースのシミュレーションとは異なり、再帰的なプログラミング言語には翻訳されず、顧客固有のディジタル回路を記述するハードウェア記述言語に翻訳される。顧客固有の回路の記述は、合成（synthesis）プロセスによりFPGAコンフィギュレーションデータストリームに翻訳される。
【０００９】
幾つかのFPGAに関しては、デバッグを目的としてFPGAの完全な状態のフリーズ及び読み出しが可能である。しかしながら、FPGAの閉じられた入力／出力特性によって、コンピュータノードのメインメモリと同様に、モデル状態に任意にアクセスし、それらのモデル状態を必要に応じて変更することは不可能である。ユーザが測定又は調整したい各モデル変数は、明示的なモデリングによって、信号線路を介してFPGAのインタフェースに供給されなければならない。この適合に続いて、モデルが新たに翻訳されなければならず、これは数時間続く可能性がある。この状況はFPGAベースのリアルタイムシミュレーションの非常に長期の開発周期に繋がる虞がある。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従って、上述の従来技術を基礎とする本発明の課題は、ランタイムにFPGAにおけるモデル変数へのアクセスを実現し、また、FPGAベースのリアルタイムシミュレーションを作成する際の反復的な開発周期の短縮を実現する、冒頭で述べたような方法、データ処理装置、コンピュータプログラム、並びに、電子的に読み出し可能な制御信号を備えているディジタル記憶媒体を提供することである。
【課題を解決するための手段】
【００１１】
上記の課題は、本発明によれば独立請求項の特徴部分に記載されている構成によって解決される。本発明の有利な実施の形態は従属請求項に記載されている。
【００１２】
従って、本発明によれば、ランタイムにFPGAの信号値にアクセスするための方法が提供され、この方法は、FPGAハードウェア・コンフィギュレーションをFPGAにロードするステップと、FPGA上でFPGAハードウェア・コンフィギュレーションを実施するステップと、FPGAの信号値を要求するステップと、FPGAの機能レベルからFPGAのコンフィギュレーションレベルにおけるコンフィギュレーションメモリに状態データを伝送するステップと、状態データをコンフィギュレーションメモリからリードバックデータとして読み出すステップと、リードバックデータから信号値を検出するステップとを備えている。
【００１３】
更に本発明によれば、プロセッサユニット及びFPGAを備えている、上述の方法を実施するデータ処理装置が提供される。
【００１４】
本発明によれば、適切なデータ処理装置にロード及び実行された後に上述の方法のステップを実施する、コンピュータにより実現される命令を備えているコンピュータプログラムも提供される。
【００１５】
更に、上述の方法がデータ処理装置において実施されるように、プログラミング可能なデータ処理装置と協働することができる電子的に読み出し可能な制御信号を備えているディジタル記憶媒体が提供される。
【００１６】
本発明の基本的な着想とは、つまり、FPGAの動作中に状態データがFPGAから読み出され、その状態データから信号値が検出されることにより、ランタイムにおけるFPGAの信号値へのアクセスを実現することである。複数の状態データが読み出されて、必要に応じて結合されるが、その際にFPGAの構造的な変更は必要ない。FPGAの動作を中断する必要もない。従って、FPGAの信号値にランダムにアクセスすることができる。信号値へのアクセスを、トポロジーファイル（トレースファイル）を介するアクセス及びシミュリンクを用いるグラフィックモデリングも含めて、ソフトウェアの実行から公知であるように行うことができる。信号値、例えばモータ回転数を相応に選択して、表示又は操作することができる。
【００１７】
有利には、FPGAの実施に関して何ら変更は必要ないので、FPGAのリソース及び性能に対する要求も変わらない。従って、信号値へのアクセスは、生成されたFPGAハードウェア・コンフィギュレーションに関しても、また実行中にも、通常の動作に影響を及ぼすことはない。アクセスを実現するために、種々のモデル変数の状態を矛盾なく一貫性のあるものとして記憶することができる。適合されたFPGAハードウェア・コンフィギュレーションを生成して、それをFPGAに伝送する必要なく、所望の信号値へのアクセスを行うことができ、これによって開発期間を短縮することができる。FPGAの利用可能なリソース及びリアルタイム特性への影響は回避又は低減される。特に、FPGAハードウェア・コンフィギュレーションを変更することなく、種々の信号値をFPGAから必要に応じて読み出すことができる。
【００１８】
コンフィギュレーションレベルは、FPGAを初期化するために使用される、FPGAの論理レベルに関係する。初期コンフィギュレーションプロセスの間に、コンフィギュレーションデータがコンフィギュレーションメモリに書き込まれ、それによって、機能レベルは引き続きモデリングされたような特性を示す。この場合、動作中は例えばトリガにより、機能レベルの全てのレジスタ内容を再びコンフィギュレーションレベルにミラーリングすることができる。続いて、コンフィギュレーションメモリの内容を読み出し、その内容から信号値を検出することができる。信号値の選択を任意にランタイム中に変更することができる。有利には、複数の信号値へのアクセスが行われる。
【００１９】
リードバックデータはFPGAの任意のデータ単位を含むことができる。リードバックデータは個々のレジスタ値又はFPGAの比較的大きいメモリブロックを含むことができる。メモリブロックは例えばFPGAのリードバック列であると考えられる。
【００２０】
上述の方法のステップの順序は原則として変更可能であり、本明細書に記載した順序に限定されるものではない。
【００２１】
データ処理装置は原則として任意に実施することができる。FPGAは典型的には、拡張モジュールとしてデータ処理装置に配置されているか、又はデータ処理装置と接続されている。データ処理装置はデータコネクションを介して遠隔の制御コンピュータと接続することができる。特に有利には、信号値へのアクセスが制御コンピュータ上のアプリケーションを介して行われる。
【００２２】
信号値の表示をグラフィック表示として行うことができる。信号値を有利にはリストから「ドラッグ・アンド・ドロップ」により、信号値を表示するための表示機器に移動させることができる。
【００２３】
コンフィギュレーションメモリから状態データをリードバックデータとして読み出すことにはデータを変更することは含まれず、この読み出しは単に概念上の定義に関する。
【００２４】
リードバックデータからの信号値の検出を原則として任意の場所において、例えばFPGA、データ処理装置のCPU又は制御コンピュータにおいて行うことができる。相応に、状態データ、レジスタデータ又は信号値をそれぞれ必要に応じて伝送することができる。
【００２５】
FPGAの外部又は内部からのFPGAのコンフィギュレーションメモリへのアクセスはインタフェースを介して行われる。コンフィギュレーションメモリの通常のアーキテクチャは、１フレームの最小読み出し量で、１００MHzのクロック周波数において３２ビット幅を有しているインタフェースを含む。従って、FPGAのタイミング制御において正確な周期でアクセスが行われるFPGAデバッガ又はFPGAスコープの意味での本方法の使用は、今日一般的なFPGAでは不可能である。フレームはレジスタ値の他に、ルックアップテーブル並びにマルチプレクサコンフィギュレーション又は配線コンフィギュレーションについての情報を含むことができる。リードバックデータからの信号値の検出には、有利には、フレームからのレジスタ値の発見及び抽出が含まれる。
【００２６】
本発明の有利な実施の形態においては、リードバックデータから信号値を検出するステップには、リードバックデータを少なくとも一つのレジスタ値にコピーすることが含まれる。レジスタは機能レベルにおけるメモリを表し、そのデータを簡単にコピーすることができ、また信号値を検出するために使用することができる。これによって、信号値を検出するためのデータの識別が実現される。
【００２７】
本発明の有利な実施の形態においては、リードバックデータから信号値を検出するステップには、少なくとも一つのレジスタ値からの信号値を検出することが含まれる。少なくとも一つのレジスタにおける信号値の編成は任意で良いので、従って、信号値を検出するためには、レジスタ内容が処理されれば良い。特に、信号値を複数のレジスタに分散させることができ、また信号値を検出するためにレジスタの内容が共通して処理される。
【００２８】
本発明の有利な実施の形態においては、状態データをコンフィギュレーションメモリからリードバックデータとして読み出すステップには、信号値を検出するために必要とされるコンフィギュレーションメモリの領域を求めることと、コンフィギュレーションメモリのその必要な領域の状態データをリードバックデータとして読み出すことが含まれる。読み出すべき領域はランタイムに求められ、それにより、コンフィギュレーションメモリへのアクセスを、FPGAハードウェア・コンフィギュレーションの事前の適合を必要とすることなく行うことができる。必要とされる領域を求めることにより、状態データの読み出しをそれらの領域に限定することができるので、僅かなデータを読み出し、伝送し、また処理するだけで良い。
【００２９】
本発明の有利な実施の形態においては、状態データをFPGAの機能レベルからそのFPGAのコンフィギュレーションレベルにおけるコンフィギュレーションメモリに伝送するステップには、信号値を検出するために必要とされる状態データの部分を求めること、及び、状態データのその部分をコンフィギュレーションメモリにおいて保護することが含まれる。伝送すべき領域はランタイムに求められ、それにより、状態データの伝送を、FPGAハードウェア・コンフィギュレーションの事前の適合を必要とすることなく行うことができる。必要とされる領域を求めることにより、状態データの保護をそれらの領域に限定することができるので、僅かなデータを保護するだけで良い。
【００３０】
本発明の有利な実施の形態においては、FPGAの信号値を要求するステップには、利用可能な信号値のリストを提供すること、及び、そのリストから信号値を選択することが含まれる。リストを原則として任意の時点に作成することができる。有利には、FPGAハードウェア・コンフィギュレーションのモデルを使用してリストが作成される。特に有利には、各信号値に一つの一義的な識別番号が割り当てられ、この識別番号を介してアクセスが行われる。
【００３１】
本発明の有利な実施の形態において、本方法は、FPGAに伝送するための信号値を設定するステップと、信号値からライトバックデータを検出するステップと、状態データとしてライトバックデータをコンフィギュレーションメモリに書き込むステップと、コンフィギュレーションメモリからFPGAの機能レベルに状態データを伝送するステップとを備えている。上記において説明した、FPGAへの読み出しアクセスと同様に書き込みアクセスが行われる。このアクセスは同様に、FPGAに影響を及ぼすことなく、ランタイムに行われる。FPGAへの読み出しアクセスについて上記において説明した詳細はそれぞれ個別に、相応に書き込みアクセスについて適用することができる。
【００３２】
即ち、FPGAの動的なパーシャルリコンフィギュレーションが行われ、その際に、FPGAにおける関連する各部分が上書きされる。例えば、シミュリンク定数ブロックをリコンフィギュレーション可能なルックアップテーブルにコピーする必要がある。このリコンフィギュレーション可能なルックアップテーブルはその後、動的なパーシャルリコンフィギュレーションにより、任意の信号値を変更するために使用することができる。
【００３３】
状態データをFPGAの機能レベルに伝送する際には、ライトバックデータは信号値の他に付加的な情報を含むことができる。従って有利には、状態データが先ずライトバックデータのためのベースとして読み出され、続いて信号値がこの状態データに挿入される。これにより、FPGAのデータの完全性が保証される。
【００３４】
更に本発明によれば、ハードウェア記述言語でのFPGAモデルに基づくFPGAビルドの実施方法が提供され、この方法は、FPGAハードウェア・コンフィギュレーションを作成するステップと、FPGAハードウェア・コンフィギュレーションに基づき、少なくとも一つの信号値の状態データに関するコンフィギュレーションメモリの記憶ロケーションを求めるステップと、ランタイムにアクセス可能な信号値及びそれに対応する記憶ロケーションを有するリストを作成するステップとを備えている。
【００３５】
即ちこの方法の基本的な着想は、FPGAハードウェア・コンフィギュレーションの作成時に、信号値に関して必要とされるデータを既に検出し、その信号値を検出された状態データに基づきFPGAのランタイムに形成することができるように処理することである。
【００３６】
記憶ロケーションは有利にはFPGAのレジスタである。レジスタをモデルにおいて明示的にモデリングすることができるか、又は、例えば複数のブロックによって遅延を伴い暗示的にモデリングすることができる。モデルは有利にはグラフィック形式で生成される。
【００３７】
上述の方法のステップの順序は原則として変更可能であり、本明細書に記載した順序に限定されるものではない。例えば、ランタイムにアクセス可能な信号値を有するリストのハードウェア記述言語でのモデルに基づく作成をより早期の時点に行うことができる。
【００３８】
有利には、ここで説明するFPGAビルドの実施方法は、FPGAを用いるデータ処理装置のためのビルド方法の一部であり、その際、データ処理装置はFPGAを含んでいるか、又はFPGAと接続されている。この方法においては、更に、データ処理装置のCPUのためのビルドが実施され、その際、CPUトレースファイル・ジェネレータにおいてはCPUトレースファイルの生成が行われる。付加的に、ランタイムにアクセス可能な信号値と、その信号値に対応する記憶ロケーションとを有しているリスト（ここでは「ロジック・アロケーションファイル（Logic Allocation File）」とも称される）が機械読み出し可能なファイルに変換される。更に、CPUのトレースファイルと等価の、FPGAのためのトレースファイルが生成される。更なるステップにおいては、CPU及びFPGAのトレースファイルがトレースファイル・マージ器において統合される。これによって、例えば、制御コンピュータによって、CPU又はFPGAにおける実行に関する実現形態に依存せずに、信号値へのアクセスを行うことができる。
【００３９】
本発明の有利な実施の形態においては、ランタイムにアクセス可能な信号値と、その信号値に対応する記憶ロケーションとを有しているリストを作成するステップには、信号値を形成するための複数の記憶ロケーションの結合状態を求めることが含まれる。従って、リストは、信号値がどのように状態データから求められるかについての具体的な情報を含んでいる。
【００４０】
本発明の有利な実施の形態においては、本方法は、信号値を検出するためのFPGAコードを生成する付加的なステップを備えており、ここでFPGAコードは、リードバックデータとしてのコンフィギュレーションメモリからの状態データの読み出し、及び、読み出し可能な信号値と、その信号値に対応する記憶ロケーションとを有しているリストに基づく、リードバックデータからの信号値の検出を含んでいる。従って、信号値を検出するための状態データの後続の処理を完全にFPGAにおいて実施することができる。相応に、FPGAからは所定の信号値しか伝送されず、これによってFPGAのインタフェースの負荷が軽減される。
【００４１】
本発明の有利な実施の形態においては、本方法は、一つの信号値に関する複数の状態データを有している複数の記憶ロケーションを、FPGAの一つのリードバック列に配置することにより、FPGAハードウェア・コンフィギュレーションを最適化する付加的なステップを備えている。一つのリードバック列に配置することにより、信号値に関する状態データへのアクセスが加速される。信号値に関する全ての記憶ロケーションが一つのリードバック列に配置される場合には、それらの信号値に１回のオペレーションでアクセスすることができる。つまり、FPGAハードウェア・コンフィギュレーションを生成する前に記憶ロケーションのソートが行われる。
【００４２】
本発明の有利な実施の形態においては、本方法は、一つの信号値に関する複数の状態を有している複数の記憶ロケーションを、FPGAの隣接する複数の領域内に配置することにより、FPGAハードウェア・コンフィギュレーションを最適化する付加的なステップを備えている。隣接する領域をFPGAの単一のリードバック列に関連付けることができるか、又は隣接する複数のリードバック列に関連付けることができる。隣接させて配置することにより、記憶ロケーションへのアクセスが加速される。一つのリードバック列内に二つの信号値に関する複数の記憶ロケーションが配置されることにより、それら二つの信号値に１回のオペレーションでアクセスすることができる。相応のことが書き込みアクセスにも該当し、その場合、一つの記憶ロケーションにおいて少なくとも一時的にその記憶ロケーションに存在する信号値のみをFPGAに書き込むことができる。
【００４３】
本発明の有利な実施の形態においては、本方法は、状態データを提供するための複数の論理ブロックの出力端に複数の記憶ロケーションを追加する付加的なステップを備えている。記憶ロケーション、通常はレジスタによって状態データの読み出しが実現され、その状態データから信号値を検出することができる。利用可能な状態データの数が多くなると、より多くの信号値へのアクセスを行うことができる。
【００４４】
本発明の有利な実施の形態において、FPGAはザイリンクスのFPGAである。ザイリンクスのFPGAは、FPGAの反復的なコンフィギュレーションを実現できる以外にも、動作中のFPGAの部分的な読み出し及びコンフィギュレーションを実現することができる。
【００４５】
以下では、添付の図面を参照しながら、複数の有利な実施の形態に基づき本発明を詳細に説明する。
【図面の簡単な説明】
【００４６】
【図１】制御コンピュータ及びリアルタイムシステムを備えているデータ処理システムの概略図を示す。
【図２】図１に示したリアルタイムシステムのFPGAの詳細図を示す。
【図３】図１に示したリアルタイムシステムのためのビルドを実施するための方法のチャートを示す。
【図４】図３に示したFPGAビルドの詳細図を示す。
【図５】リードバック列における、図２に示したFPGAのコンフィギュレーションメモリの編成の詳細図を示す。
【図６】コンフィギュレーションメモリのリードバック列における関連するメモリ内容の概略図を示す。ここで、左側の図は最適化が行われていない分布を示し、中央の図はリードバック列における関連する記憶ロケーションを集中させることによる最適化を示し、右側の図は関連するリードバック列を隣接して配置することによる最適化を示す。
【図７】本方法にとって重要な全ての情報、例えばFPGAのヒエラルキー、信号のビット幅及び２進小数点位置、並びに、FPGAのコンフィギュレーションメモリにおける個々のレジスタのアドレス情報の例示的な表現形態を示す。
【図８】図３に示したビルド方法の結果の、図１に示したデータ処理システムの種々のコンポーネントへの分散を示す。
【発明を実施するための形態】
【００４７】
図１には、ここではホストシステムと表されている制御コンピュータ２と、リアルタイムシステム３とを備えているデータ処理システム１の本発明による構造が示されている。リアルタイムシステム３は、明示していないネットワークコネクションを介して制御コンピュータ２と接続されている。
【００４８】
リアルタイムシステム３は、図示していないCPUを備えている、参照符号CNで表されている計算ノード４と、FPGA５とを含んでいる。この実施例においてFPGA５はザイリンクスのFPGAである。リアルタイムシステム３はここでは任意のデータ処理装置である。FPGA５は概略的に図２に示されており、また、機能レベル６及びコンフィギュレーションレベル７を含んでいる。コンフィギュレーションレベル７には、複数の記憶ロケーション９を備えているコンフィギュレーションメモリ８が配置されている。コンフィギュレーションレベル７は、FPGA５を初期化するための、FPGA５の論理レベルである。初期コンフィギュレーションプロセスの間に、コンフィギュレーションデータがコンフィギュレーションメモリ８に書き込まれ、また機能レベル６に伝送される。記憶ロケーション９はFPGA５のレジスタに相当する。
【００４９】
FPGA５はFPGAボード１０に配置されており、インタフェース１１を介して、インタフェース１１にアクセスするためのコントローラ１２と接続されている。インタフェース１１はここでは、１フレームの最小読み出し量で、１００MHzのクロック周波数において３２ビット幅を有している。フレームはレジスタ値の他に、ルックアップテーブル並びにマルチプレクサコンフィギュレーション又は配線コンフィギュレーションについての情報を含むことができる。FPGAボード１０には、コントローラ１２によるアクセスのためのFPGA変数マッピングファイル（Variable Mapping File）１３が記憶されている。
【００５０】
リアルタイムシステム３を利用するために、下記において図３を参照しながら説明するようにビルドが実施される。ビルドのための基礎として、いずれもシミュリンクにより生成された、FPGAモデル２０並びにCPUモデル２１が使用される。FPGAモデル２０からは、FPGAビルド２２において、公知のハードウェア記述言語であるVHDL（VHSIC Hardware Description Language）により、ロジック・アロケーションファイル（Logic Allocation File）２３及びFPGAハードウェア・コンフィギュレーション２４が生成される。ロジック・アロケーションファイル２３においては、ランタイムにFPGA５においてアクセス可能な信号値の状態データに関する、コンフィギュレーションメモリ８の記憶ロケーション９を有するリストが記憶される。また、信号値を形成するための記憶ロケーション９の結合形態も求められ、その結合形態がロジック・アロケーションファイル２３に記憶され、それにより、ロジック・アロケーションファイル２３に基づき、状態データから信号値を検出することができる。
【００５１】
ロジック・アロケーションファイル２３からは、上記において既に述べたFPGA変数マッピングファイル１３が生成され、このFPGA変数マッピングファイル１３は、記憶ロケーション９と信号値の対応関係を機械読み出し可能な形態で含んでいる。CPUモデル２１からは、CPUビルド２６において、リアルタイムシステム３のCPUにおいて実行可能なアプリケーション２７が作成される。CPUビルド２６から出発して、更にCPUトレースファイル・ジェネレータ２８においては、CPUトレースファイル２９が生成される。同様に、FPGAトレースファイル・ジェネレータ３０においては、FPGAトレースファイル３１が生成される。更なるステップにおいては、両トレースファイル２９，３１がトレースファイル・マージ器３２において、一つの完全なトレースファイル３３に統合される。
【００５２】
このビルド方法は、総合結果として、アプリケーション２７、完全なトレースファイル３３、FPGA変数マッピングファイル１３及びFPGAハードウェア・コンフィギュレーション２４を有する、リアルタイムシステム３のためのダウンロード・アプリケーション３４を供給する。
【００５３】
FPGAビルド２２が図４に詳細に示されている。結果として、FPGAビルド２２からはFPGAサブシステムのブロック回路図４０が得られ、このブロック回路図は加算、乗算等のプリミティブブロックの組み合わせを含んでいる。プロセスの結果は、完成したビットストリーム並びにインタフェース記述を含んでいるModel.iniファイル４１である。インタフェース記述は、FPGAサブシステムにおいてインスタンスが生成されている全てのインタフェースのリストを含んでいる。この記述によって、FPGAインタフェースに対応するCPUインタフェースを生成することができる。FPGAビルド２２の第１のステップにおいては、FPGAサブシステムのブロック回路図４０から、ザイリンクス・システム・ジェネレータ（XSG）により、HDL記述４２が生成される。このHDL記述４２はこの実施例においてVHDL記述である。この記述は続いて合成ツールによってネットワークリストに翻訳される。
【００５４】
シミュリンクモデルのネットワークリストは、リードバック機能に必要とされるその他のリードバック・フレームワーク・コンポーネント４６により、一つの完全なネットワークリスト４７へと統合される。続いて、全体の設計がインプリメントプロセスによりビットストリームに翻訳され、Model.iniファイル４１に格納される。
【００５５】
シミュリンクブロック回路図のブロック出力とFPGAコンポーネント（D型フリップフロップ）又はFPGAコンポーネントに属するコンフィギュレーションメモリ８における記憶ロケーション９との間に関係性が確立される。このマッピングは逐次的に、FPGAビルド２２の間に構成又は簡略化され、FPGAトレースファイル・ジェネレータ３０によりFPGAトレースファイル３１に格納される。
【００５６】
FPGAサブシステムのブロック回路図がXSGによりHDLに翻訳されると、それらの二つの記述はその構造に関して類似している。このことは、例えばシミュリンクブロックとHDLエンティティのポートとの間の直接的な関係性を作成するために利用することができる。
【００５７】
本方法は更に、一つの信号値に関する複数の状態データを有している複数の記憶ロケーション９をFPGA５の一つのリードバック列に配置することにより、FPGAハードウェア・コンフィギュレーション２４を最適化するステップを備えている。リードバック列におけるコンフィギュレーションメモリ８の編成が図５に示されている。フレームはコンフィギュレーションメモリ８において１ビット幅及び１３１２ビット長の列を含み、機能レベル６の一つのCLB列にわたり延在している。一つのフレーム内の１ビットと、コンフィギュレーションを行う機能エレメントとの相関を、ザイリンクスのツールにより求めることができる。従って、信号値を検出するために、一つのフレームの一部のみが重要となる。一つのリードバック列に配置することにより、信号値に関する状態データへのアクセスが加速される。信号値に関する全ての記憶ロケーション９が一つのリードバック列に配置される場合には、それらの信号値に１回のオペレーションでアクセスすることができる。
【００５８】
図６の左側に示されているように、関連するリードバック列は差し当たりコンフィギュレーションメモリ８全体にわたり分散されている。FPGAハードウェア・コンフィギュレーション２４の最適化により、信号値に関する複数の状態を有している複数の記憶ロケーション９がFPGA５の隣接する複数の領域内に配置される。隣接する領域をFPGA５の単一のリードバック列に関連付けることができるか、又は隣接する複数のリードバック列に関連付けることができる。隣接する配置により、記憶ロケーション９へのアクセスが加速される。一つのリードバック列内に二つの信号値に関する複数の記憶ロケーション９を配置することにより、それら二つの信号値に１回のオペレーションでアクセスすることができる。図６の中央には、関連する複数の記憶ロケーション９を低減された数のリードバック列に集中させることによる最適化が示されている。図６の右側には、更なる最適化において、関連するリードバック列が更に隣接されてFPGA５内に配置されている。
【００５９】
本方法にとって重要な全ての情報、例えばFPGAモデルのヒエラルキー、信号のビット幅及び２進小数点位置、並びに、FPGAコンフィギュレーションメモリにおける個々のレジスタのアドレス情報の例示的な表現形態が図７に示されている。
【００６０】
FPGAサブシステムタイプの要素は、各リードバックモデルのインスタンスのルートを形成する。FPGAサブシステムは、シミュリンクのモデルヒエラルキーに依存して、再帰的に別のサブシステム・インスタンスを含んでいる。サブシステムはこのコンテキストにおいて、プリミティブブロック（例えば加算器）としても、シミュリンクサブシステムとしても実施することができる。サブシステム又はブロックの名称及び所属のHDLエンティティの名称は、サブシステムクラスのプロパティname又はhdlInstanceに記憶される。
【００６１】
各サブシステムは、シミュリンクモデルにおける各信号又はI/Oポートを表す複数の信号を含むことができる。各信号は、id特性を介して一義的な識別子を得る。信号の方向（入力／出力）は重要ではなく、またモデリングの際の冗長性が回避されるべきなので、信号クラスは慣習に応じてシミュリンクモデルにおけるブロック又はサブシステムの出力を表す。複数のサブシステムが同一の信号を共有する場合、信号参照（Signal-Reference）クラスのインスタンスを介して、他のサブシステム・インスタンスの信号を参照することができる。
【００６２】
信号を統合によってレジスタと関連付けることができる。この関連付けは同様に、信号クラスとレジスタクラスとの間で再び発見することができる。レジスタと、レジスタの初期値が記憶されるフレームとの関係性は、相応のクラスを介してモデリングされる。信号の特性はプロパティクラスを介してモデリングされる。リードバック及びそれに続く信号の処理にとって、特に、２進小数点（Binary-Point）、データタイプ（DataType）及び幅（Width）といった特性が重要である。
【００６３】
レジスタ要素はフレームクラスを介して複数のビットと関連付けられている。信号の幅と、それに属するレジスタの幅は場合によっては変更される可能性があるので、レジスタは信号と同様に固有の幅特性を有している。ビットはビット位置（pos）を介して差し当たり、レジスタのどのビットであるかを表す。更に、ビットインスタンスは、フレーム内のどの語（framewordOffset）にレジスタビットが存在するかの情報、またどのビットマスク（mask）でもってビット語をフレーム語からマスクすることができるかの情報を含んでいる。
【００６４】
リードバックモデルはXMLファイルに記憶されている。つまり、モデルをマルチツールで処理することができる。モデルはXSDスキームに対する妥当性検査により、構文的及び構造的に正確に維持される。
【００６５】
本方法は、信号値を検出するためにリードバック・アプリケーションとしてFPGAコード４４を生成する付加的なステップを備えており、このFPGAコード４４は、状態データをコンフィギュレーションメモリ８からリードバックデータとして読み出すこと、及び、FPGA変数マッピングファイル１３に基づいてリードバックデータから信号値を検出することを含んでいる。
【００６６】
図８には、ビルド方法の結果の種々のコンポーネントへの分散が示されている。シミュリンクモデル２０，２１に基づき、FPGAビルド２２を用いてビルドが実施される。FPGAハードウェア・コンフィギュレーション２４が生成され、FPGA５にロードされる。アプリケーション２７がコンピュータノード４にロードされ、また完全なトレースファイル３３が制御コンピュータ２に伝送される。
【００６７】
動作時に、FPGAハードウェア・コンフィギュレーション２４がFPGA５において開始及び実施される。アプリケーション２７はコンピュータノード４において開始及び実行される。制御コンピュータ２においては制御ソフトウェア５０が開始される。制御ソフトウェア５０はこの実施例において、dSPACE社のコントロールデスクソフトウェアである。コントロールデスク５０は図１に示されているようにコンピュータノード４を介してリアルタイムシステム３と通信する。
【００６８】
ランタイム中にFPGA５の信号値を表示するために、コントロールデスク５０を介してこれを要求することができる。種々の信号値へのアクセスは完全なトレースファイル３３及びシミュリンクを用いたグラフィックモデリングを介して行われる。信号値の表示はグラフィック表示として行われ、その際、信号値はリストから「ドラッグ・アンド・ドロップ」により、信号値を表示するための表示機器に移動される。リストに由来する信号値は一義的な識別番号に基づき識別される。
【００６９】
信号値は、コントロールデスク５０によりコンピュータノード４を介して要求される。このために、コンピュータノード４には、コントロールデスク５０からの要求を受信するデータ取得サービス（Data Acquisition Service）５１が実装されている。データ取得サービス５１により、FPGA５のためのコントローラ１２の信号値が要求される。これは、FPGA５の動作中に、FPGA５の機能レベル６からFPGA５のコンフィギュレーションメモリ８への状態データの伝送を開始する。つまり動作中には、トリガにより、機能レベル６の全てのレジスタ内容がコンフィギュレーションレベル７にミラーリングされる。択一的な実施の形態においては、FPGA変数マッピングファイル１３から、信号値の検出に必要とされる、状態データの部分が求められ、それらの部分のみがコンフィギュレーションメモリ８において保護される。
【００７０】
更には、FPGA５においては、リードバック・アプリケーション４４により状態データがコンフィギュレーションメモリ８からリードバックデータとして読み出される。読み出されたリードバックデータはここでは一つ又は複数のフレーム、即ち、FPGA５の一つ又は複数のリードバック列を含んでいる。その際、先ず、信号値の検出に必要とされるリードバック列が求められ、それらのリードバック列のみが読み出される。必要とされるリードバック列に関する情報はFPGA変数マッピングファイル１３を介して求めることができる。
【００７１】
リードバックデータに基づき、FPGA５において信号値が検出される。このためにレジスタ値がフレームから検索及び抽出される。それらの情報はFPGA変数マッピングファイル１３から得られる。リードバックデータの少なくとも一つのレジスタ値へのコピーが行われる。その際、必要に応じて、信号値が複数のレジスタの状態データから形成される。相応に、信号値を検出するために、レジスタの内容がFPGA変数マッピングファイル１３に応じて共通して処理される。
【００７２】
そのようにして検出された信号値は、FPGA５のインタフェース１１を介してコントローラ１２に伝送され、更にコントローラ１２はその信号値をコンピュータノード４のデータ取得サービス５１を介して、制御コンピュータ２のコントロールデスク５０に伝送する。
【００７３】
上記において説明した、FPGA５の信号値への読み出しアクセスと同様に書き込みアクセスが実現される。その際、FPGA５に伝送するための信号値が選択される。その信号値からライトバックデータが検出され、そのライトバックデータが状態データとしてFPGA５のコンフィギュレーションメモリ８に伝送される。コンフィギュレーションメモリ８からは、状態データがFPGA５の機能レベル６に伝送される。FPGA５への読み出しアクセスについて上記において説明した詳細はそれぞれ個別に、相応に書き込みアクセスについて適用することができる。
【００７４】
本方法は、リアルタイムシステム３にロード及び実行された後に上述の方法のステップを実施する、コンピュータにより実現される命令を備えているコンピュータプログラムとして実現されている。
【００７５】
ディジタル記憶媒体は、上述の方法がリアルタイムシステム３において実施されるように、リアルタイムシステム３と協働する、電子的に読み出し可能な制御信号を提供する。
【符号の説明】
【００７６】
１  データ処理システム、  ２  制御コンピュータ、  ３  リアルタイムシステム、データ処理装置、  ４  コンピュータノード、  ５  FPGA、  ６  機能レベル、  ７  コンフィギュレーションレベル、  ８  コンフィギュレーションメモリ、  ９  記憶ロケーション、  １０  FPGAボード、  １１  インタフェース、  １２  コントローラ、  １３  FPGA変数マッピングファイル、  ２０  FPGAモデル、  ２１  CPUモデル、  ２２  FPGAビルド、  ２３  ロジック・アロケーションファイル、  ２４  FPGAハードウェア・コンフィギュレーション、  ２６  CPUビルド、  ２７  アプリケーション、  ２８  CPUトレースファイル・ジェネレータ、  ２９  CPUトレースファイル、  ３０  FPGAトレースファイル・ジェネレータ、  ３１  FPGAトレースファイル、  ３２  トレースファイル・マージ器、  ３３  完全なトレースファイル、  ４０  ブロック回路図、  ４１  Model.iniファイル、  ４２  HDL記述、  ４３  リードバックファイル・ジェネレータ、  ４４  FPGAコード、リードバック・アプリケーション、  ４６  リードバック・フレームワーク・コンポーネント、  ４７  ネットワークリスト、  ５０  制御ソフトウェア、コントロールデスク、  ５１  データ取得サービス
【図１】
2014154173.tif 000003
【図２】
2014154173.tif 000004
【図３】
2014154173.tif 000005
【図４】
2014154173.tif 000006
【図５】
2014154173.tif 000007
【図６】
2014154173.tif 000008
【図７】
2014154173.tif 000009
【図８】
2014154173.tif 000010