(57)【特許請求の範囲】
【請求項１】
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コード（３）を作成する前記ステップは、“マップ（Map）”ステップ及び“プレイス（Place）”ステップ及び“ルート（Route）”ステップのうちの少なくとも１つのステップを含み、
前記FPGA（８）からリードバックによって読み出し可能な信号を識別するための前記自動的な分析を実施する前記ステップは、前記“マップ（Map）”ステップ及び前記“プレイス（Place）”ステップ及び前記“ルート（Route）”ステップのうちの少なくとも１つのステップの結果を相応に分析するステップを含むことを特徴とする、
請求項１から７のいずれか一項記載の方法。
【請求項９】
前記FPGAモデル（２）から前記FPGAコード（３）を作成する前記ステップは、ネットワークリストを作成するための合成を実施するステップを含み、
前記FPGAモデル（２）から前記FPGAコード（３）を作成する前記ステップは、“マップ（Map）”ステップ及び“プレイス（Place）”ステップ及び“ルート（Route）”ステップのうちの少なくとも１つのステップを含み、
前記FPGA（８）からリードバックによって読み出し可能な信号を識別するための前記自動的な分析を実施する前記ステップは、
前記FPGA（８）からリードバックによって読み出し可能な信号を識別するために前記FPGAモデル（２）を分析する前記ステップと、
前記FPGA（８）からリードバックによって読み出し可能な信号を識別するために前記ネットワークリストを分析する前記ステップと、
前記“マップ（Map）”ステップ及び／又は前記“プレイス（Place）”ステップ及び／又は前記“ルート（Route）”ステップのうちの少なくとも１つのステップの結果を分析する前記ステップと、
を含むグループから少なくとも２つのステップを含み、
前記FPGA（８）からリードバックによって読み出し可能な信号を識別するための前記自動的な分析を実施する前記ステップは、前記少なくとも２つのステップに基づいた、前記FPGA（８）からリードバックによって読み出し可能な信号の識別結果を比較するステップを含むことを特徴とする、
請求項１から８のいずれか一項記載の方法。
【請求項１０】
前記FPGAモデル（２）を生成する前記ステップは、前記FPGAモデル（２）内において読み出すためのモデル信号をマーキングするステップを含み、
前記FPGA（８）からリードバックによって読み出し可能な信号を出力する前記ステップは、前記FPGA（８）からリードバックによって読み出し可能な信号が、マーキングされた前記モデル信号を含んでいるかどうかをチェックするステップと、前記リードバックによって読み出し可能な信号が、マーキングされた前記モデル信号を含まない場合に、警告を出力するステップとを含むことを特徴とする、
請求項１から９のいずれか一項記載の方法。
【請求項１１】
前記FPGAモデル（２）を作成する前記ステップは、前記FPGAモデル（２）内において読み出すためのモデル信号をマーキングするステップを含み、
前記FPGAモデル（２）から前記FPGAコード（３）を作成する前記ステップは、リードバックによって読み出し可能な信号として読み出すための前記モデル信号を、自動的にインプリメンテーションするステップを含むことを特徴とする、
請求項１から１０のいずれか一項記載の方法。
【請求項１２】
前記FPGA（８）からリードバックによって読み出し可能な信号を出力する前記ステップは、前記FPGAモデル（２）内において、前記FPGA（８）からリードバックによって読み出し可能な信号に該当するモデル信号を自動的にマーキングするステップを含むことを特徴とする、
請求項１から１１のいずれか一項記載の方法。
【請求項１３】
請求項１から１２のいずれか一項記載の方法を実施するように構成されている、データ処理装置（１）。
【請求項１４】
コンピュータに、請求項１から１２のいずれか一項記載の方法の各ステップを実行させるためのプログラム。
【請求項１５】
コンピュータに、請求項１から１２のいずれか一項記載の方法の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、FPGAビルド後にFPGAからリードバックによって読み出し可能な、FPGAプログラムのモデル信号を、自動的に特定するための方法に関する。本発明はさらに、上述した方法を実施するために構成されたデータ処理装置に関する。本発明はさらに、適当なデータ処理装置にてロード及び実行された後に上述した方法の各ステップを実施する、コンピュータに実装された命令を備えるコンピュータプログラム製品に関する。本発明はさらに、電子的に読み出し可能な制御信号を備えるデジタルメモリ媒体であって、該制御信号は、データ処理装置にて上述した方法が実施されるように、プログラミング可能なデータ処理装置と協働する、デジタルメモリ媒体に関する。
【０００２】
複雑な動的モデルのリアルタイムシミュレーションは、厳しい時間的制約に起因して、近年の計算ノード自体に対して厳しい要件を課している。自動車のハードウェアインザループシミュレーション（HiL）では、このようなモデルは特に、高速制御回路を接続する必要があるところで使用される。このことは例えば、シリンダ圧力センサのシミュレーションに該当し、このシミュレーションは、燃費の改善又は排気ガスの削減においてますます重要な役割を果たしている。しかしながら、例えば電気モータのような高度なダイナミクスを有する制御システムにおいても、短いレイテンシとサイクルタイムが不可欠である。これらは、CPUをベースにしたシミュレーションによっては実質的にほぼ実施不可能である。
【０００３】
フィールドプログラマブルゲートアレイ（FPGA）は、モデルの動的な部分の計算を担うことによって、計算ノードのリアルタイムシミュレーションをサポートすることができる。FPGAはフレキシビリティが高く、信号の並列処理が可能であるので、FPGAを使用することによってハードリアルタイムの厳しい要件を容易に満たすことが可能となる。FPGAは、計算ノードのCPUのためのハードウェアアクセラレータとして使用することができる。HiLシミュレータのためのこのような拡張は、例えばdSPACE社のDS5203-FPGA Boardである。従って、例えば環境モデルの極めて動的な部分がFPGAに移行され、これによって、制御装置のために充分精確かつ高速な応答時間が保証されたまま維持される。FPGAコードともよばれる一般的なプログラムの作成に基づいたFPGAハードウェアコンフィギュレーションは、通常、ハードウェア記述言語で記述されたFPGAモデルに基づいて、ビルドプロセスにおいて作成される。
【０００４】
制御システムのモデルは、精度に対する要求の増加によってますます複雑化し、これによって処理も困難になってきている。自動車のHiL環境においては、このようなモデルは、基本的にMathwork社のMatlab/Simulinkのツールセットを用いて作成される。Simulinkは、このようなモデルを、ブロックをベースにしたブロック図の形態で図示している。ブロック図において、複数のモデル部分をサブシステムにまとめ、これらを信号によって相互に連結させることができる。これらのブロック間のデータの流れは、信号線路を介して表される。
【０００５】
CPUをベースにしたリアルタイムシミュレーションでは、モデルのブロック図は、Simulink Coderを使用して、まずはC/C++のソースファイルに翻訳される。次いで、これらのソースファイルは、コンパイラにより、リアルタイムオペレーティングシステムによって計算ノード上で実行可能なアプリケーションに翻訳される。これに加えて、CPUビルドにおいてトレースファイルが作成される。トレースファイルは、例えばSimulinkにおけるグラフィカルモデリングされたトポロジーファイルである。
【０００６】
モデルをCPUアプリケーションに翻訳すると、その結果、シミュレーションの計算は、固定的なステップサイズでシーケンシャルに実施されることとなる。従って、例えば信号線路におけるデータ及び／又はブロックの入力／出力値のデータのような、全てのモデル状態又はモデル変数の整合的なマッピングが、常に、計算ノードのメインメモリ内に存在する。メインメモリに直接アクセスすることによって、例えばContolDeskのような実験ツールにおいてモデル変数を分析及び／又は操作することができる。HiLシミュレーションの変数に対するランダムな読み出し／書き込みアクセスが可能である。トレースファイルに基づいて、例えばエンジン回転数のような信号値を選択し、ディスプレイによって出力又は操作することができる。この手順は、HiL環境では“計測”及び“適合”なる用語にまとめられる。
【０００７】
FPGAをベースにしたシミュレーションは、例えばXilinx System Generator （XSG）と、dSPACE社のFPGA-Programming Blocksetとを用いて、CPUをベースにしたシミュレーションと同様に、Simulinkによるブロック図においてモデル化することができる。
【０００８】
しかしながらこのモデルは、CPUシミュレーションとは異なり、反復型のプログラミング言語には翻訳されず、カスタマイズされたデジタル回路を記述するハードウェア記述言語に翻訳される。カスタマイズされた回路の記述は、FPGAコードを作成する際に合成工程によってFPGAコンフィギュレーションデータストリームに翻訳される。従って、ユーザが計測又は適合したい各モデル変数を、明示的なモデル化によって信号線路を介してFPGAのインターフェースへと導かなければならない。この適合に次いで、モデルを新たに翻訳しなければならず、これには数時間かかる可能性がある。このような状況により、FPGAをベースにしたリアルタイムシミュレーションの開発サイクルが極めて長くなる恐れがある。
【０００９】
いくつかのFPGAの場合は、デバッグする目的でFPGAの全体の状態を停止させ、読み出すことが可能である。しかしながら、FPGAの閉鎖的な入出力特性により、計算ノードのメインメモリと同じようにモデル状態に任意アクセスすることは不可能である。すなわち、動作中に信号をFPGAから読み出すことや、場合によってこの信号を変更することは不可能である。FPGAからの信号の読み出しは、例えばリードバッグ（Readback）を介して実施することができる。リードバックは、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にて実現されるコンポーネントのためのCPUモデルを含んでいる全体モデルの一部として実施することができる。
【００２０】
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モデルを作成するステップを含み、前記FPGAからリードバックによって読み出し可能な信号を識別するための前記自動的な分析を実施する前記ステップは、前記上位のサブシステムにおいて開始される前記FPGAモデルの自動的かつ再帰的な分析を実施するステップを含む。これによりFPGAモデルにおいて、サブシステムとして、FPGAモデルの作成を容易にする関数ブロックを作成することができる。このようにすると、サブシステムを容易に再利用することができる。サブシステムを使用することによってさらに、FPGAモデルの視認性が改善される。なぜなら、階層的なFPGAモデルの最上位のレベルの上には、部分的にわずかなブロックだけを示せばよいからである。FPGAモデルの自動的かつ再帰的な分析は、分析する際に全てのサブシステム、すなわち例えば関数ブロックを再帰的に分析することによって、FPGAモデルのこのような形式の作成をサポートする。
【００２７】
本発明の有利な実施形態においては、前記上位のサブシステムにおいて開始される前記FPGAモデルの自動的かつ再帰的な分析を実施する前記ステップは、上位のサブシステムと下位のサブシステムとにおける同一の信号を特定するステップを含む。例えばリードバックによって読み出し不可能なインプリメンテーションを有するサブシステムの出力信号が、下位のサブシステムにおいて、最初には判別できない方法で、すなわち上位のシステムでは判別できない方法で、信号をリードバックによって読み出し可能にするインプリメンテーションを有することがある。特に好ましくは、上位のサブシステムと下位のサブシステムとの間で信号が追跡され、これによって、階層的なサブシステム同士の各信号を後で対応付ける必要なく、所定の信号を容易に分析することが可能となる。
【００２８】
本発明の有利な実施形態においては、前記FPGAモデルから前記FPGAコードを作成する前記ステップは、ネットワークリストを作成するための合成を実施するステップを含み、前記FPGAからリードバックによって読み出し可能な信号を識別するための前記自動的な分析を実施する前記ステップは、前記FPGAからリードバックによって読み出し可能な信号を識別するために前記ネットワークリストを分析するステップを含む。ネットワークリストを作成するための合成を実施するステップは、通常、FPGAモデルから直接始まるステップであって、FPGAコードの作成における早期の段階で、通常は第１段階で実施されるステップである。従って、FPGAコードの作成における早期の時点に分析を実施することができ、どの信号がFPGAからリードバックによって読み出し可能であるかを、FPGAコードの作成中における早期の時点に識別することができる。ネットワークリストを作成するための合成の際には、好ましくは合成ツールにおいて、FPGAモデルに基づくシステムのハイレベル記述がネットワークリストへと変換される。合成後には基本的に、どの信号がレジスタにマッピングされるかが既に確定している。しかしながら、具体的な特性は、ターゲット技術へのマッピング後に初めて判明する。ネットワークリストを作成するための合成を実施するステップは、FPGAモデルからFPGAコードを作成する場合には基本的に公知であるので、さらに説明する必要はない。
【００２９】
本発明の有利な実施形態においては、前記FPGAモデルから前記FPGAコードを作成する前記ステップは、“マップ（Map）”ステップ及び“プレイス（Place）”ステップ及び“ルート（Route）”ステップのうちの少なくとも１つのステップを含み、前記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からリードバックによって読み出し可能な信号が、マーキングされた前記モデル信号を含んでいるかどうかをチェックするステップと、前記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モデルの一例を示す図である。
【図４】図３の階層的なFPGAモデルのための自動的な分析の実施の一例を示す図である。
【発明を実施するための形態】
【００３９】
図１は、好ましい第１実施形態に基づく、FPGAビルド後にFPGAからリードバックによって読み出し可能な、FPGAプログラムのモデル信号を、自動的に特定するための本発明の方法のフローチャートを示す。
【００４０】
先に図２を参照すると、本方法を実施するためのハードウェアコンポーネントと、FPGAコードを実行するためのハードウェアコンポーネントとの相互作用が示されている。図２は、FPGAモデル２と、FPGAモデル２からFPGAコード３を作成するためのデータ処理装置１を図示している。FPGAモデル２からFPGAコード３を作成するために、データ処理装置１においてビルド４が実施される。FPGAビルド４において、FPGAモデル２から、周知のハードウェア記述言語であるＶＨＤＬを介して、FPGAコード３としてFPGAハードウェアコンフィギュレーションが作成される。以下に詳細に説明する図１の方法は、データ処理装置１において実施される。基本的には、FPGAモデル２の作成とビルド４とを、それぞれ異なるデータ処理装置１において実施することも可能である。
【００４１】
一般的にビルド４においては、FPGAコード３の他にCPUコード５も作成される。CPUコード５及びFPGAコード３は、FPGAモデル２を含む１つの共通のモデルから作成される。このモデルは、本実施例においてはSimulink（シミュリンク）によって作成される。次いで、CPUコード５及びFPGAコード３を、計算ノード６へと伝送することができる。従って、計算ノード６は、CPUコード５を実行するためのCPU７と、FPGAコード３を実行するためのFPGA８とを含む。FPGA８は、本実施例においてはXilinx社のFPGAである。
【００４２】
図２にはさらに、計算ノード６を制御するためのホストシステム９が図示されている。計算ノード６は、図示されていないネットワーク接続を介してホストシステム９と接続されている。ビルド４において、追加的にトレースファイル１０が作成され、ホストシステム９はこのトレースファイル１０によって、計算ノード６の動作中にCPU７の信号値とFPGAにプログラミング８の信号値とにアクセスすることが可能となる。FPGA８への読み出しアクセスは、リードバックを介して実施され、書き込みアクセスは、パーシャルリコンフィギュレーションを介して実施される。
【００４３】
以下に、FPGAビルド後にFPGAからリードバックによって読み出し可能な、FPGAプログラムのモデル信号を、自動的に特定するための方法について説明する。
【００４４】
本方法は、ステップＳ１００において、データ処理装置１におけるFPGAモデル２の作成によって開始する。FPGAモデル２は、FPGA８によって実現すべき機能を記述するものである。FPGAモデル２の一部の例が、図３にも図示されている。図３においても見て取れるように、FPGAモデル２は、階層的なFPGAモデル２である。図３には、下位のサブシステム１２を備える上位のサブシステム１１が図示されている。これらのサブシステム１１，１２は、個々の独立したブロックを構成している。
【００４５】
図３に図示されているように、上位のサブシステム１１において、リードバックによって読み出すためのFPGAモデル２内のモデル信号をマーキングするために、信号経路１３にリードマーキング１４がセットされる。FPGAモデル２の変更は実施されない。
【００４６】
ステップＳ１１０において、FPGA８からリードバックによって読み出し可能な信号を識別するための自動的な分析を実施する第１ステップが実施される。これに関して、FPGA８からリードバックによって読み出し可能な信号を識別するために、FPGAモデル２が分析される。
【００４７】
この際に、信号を保存又は一時保存するためのレジスタ１５（図３に図示）が、FPGA８内において信号経路１３の任意の位置にインプリメンテーションされていることが、自動的に検出される。さらには、信号の信号経路１３の任意の位置における遅延素子のインプリメンテーションが、自動的に検出される。信号経路１３は自動的に追跡されるので、信号経路１３の任意の位置に存在する、相応の信号をリードバックによって読み出し可能にするためのインプリメンテーションを、識別して収集することができる。この場合に、自動的な分析は、上位のサブシステム１１にて開始するFPGAモデル２の再帰的な分析を実施する。
【００４８】
再帰的な分析においては、下位のサブシステム１１と上位のサブシステム１２とにおける同一の信号が特定される。従って、両サブシステム１１，１２の一方において、リードバックによって読み出し可能にインプリメンテーションされた信号は、リードバックによって任意の位置において読み出し可能な信号して使用される。再帰的な分析の実施は、図４に図示されている。図４から見て取れるように、ここではトレーサビリティ予測（TraceabilityForecast）と呼ばれるモジュール１６において、それぞれの信号ｓに対して、リードバックによって読み出し可能であるか否かの予測が作成される。このためにまず、関数srcblockによって信号ｓのソースブロックが読み込まれる。次いで、ステップisSubsystemにおけるチェックによって、入力されたブロックがFPGAモデル２内のサブシステムであるかかがチェックされる。該当する場合には、関数TraceabilityForecastが再度呼び出される。該当しない場合には、ステップisAtomicにおいて、入力されたブロックがサブシステムでないか、すなわちこれ以上アトミックブロックに分割することができないかがチェックされる。該当する場合には、ステップisRegisteredにおいて、合成後にブロックがレジスタ１５にマッピングされるかどうか、すなわち信号がレジスタ１５に保存又は一時保存されるかどうかがチェックされる。このことは、レジスタ１５又は遅延素子がインプリメンテーションされる上述のケースの場合には該当しているが、この他にも、このブロックが遅延Ｚｘ（但しｘ＞０）を有する場合、又は、このブロックが予め規定されたリストの一部である場合、すなわちこのブロックが、読み出し可能なインプリメンテーションを含んでいることが予め規定された特殊ブロックである場合にも、このことが該当する。次のステップでは、関数equalsにおいて、階層段を超えた２つの信号、すなわち上位のサブシステム１１と下位のサブシステム１２とにおける２つの信号が、同じ１つの信号を表しているかどうかがチェックされる。該当する場合には、ステップdoMarkSignalにおいて、この信号が、FPGAからリードバックによって読み戻し可能な信号であるとしてマーキングされ、FPGAからリードバックによって読み出し可能な信号が含まれた第１リストへと付け加えられる。
【００４９】
ステップＳ１２０において、ビルド４が開始される。ビルド４はFPGAモデル２から始まり、ビルド４の終了時にFPGAコードが作成される。FPGAコード２は、ハードウェア記述言語で記述されたFPGAモデルに基づくFPGAハードウェアコンフィギュレーションである。
【００５０】
ステップＳ１３０において、ビルド４の第１ステップとして、ネットワークリストを作成するための合成が実施される。この際には合成ツールにおいて、FPGAモデル２に基づくシステムのハイレベル記述がネットワークリストへと変換される。
【００５１】
ステップＳ１４０において、FPGA８からリードバックによって読み出し可能な信号を識別するために、ネットワークリストが自動的に分析される。そして、ビルド４後にFPGA８からリードバックによって読み出し可能な信号が含まれた第２リストが作成される。
【００５２】
ステップＳ１５０において、ステップＳ１１０で作成されたリストと、Ｓ１４０で作成されたリストとが比較される。すなわち、FPGA８からリードバックによって読み出し可能な信号をそれぞれに含んでいる第１リストと第２リストとが比較される。そして、FPGA８からリードバックによって読み出し可能な信号を含む１つの統合されたリストが作成され、この統合されたリストに含まれる信号は、第１リストにおいても第２リストにおいても、FPGA８からリードバックによって読み出し可能な信号であるとして含まれているのである。２つのリストのうちの一方にしか含まれていない信号、すなわち、統合されたリストへと引き継がれなかった信号が存在する場合には、警告が作成され、例えばFPGAモデル２において表示される。
【００５３】
ステップＳ１６０において、FPGA８からリードバックによって読み出し可能な信号の出力が実施される。FPGA８からリードバックによって読み出し可能な信号の出力は、FPGAコードを作成するための開発環境におけるリストの形態で実施される。これに加えて、FPGAモデル２において、当該FPGAモデル２における、FPGA８からリードバックによって読み出し可能な信号に該当するモデル信号が、自動的にマーキングされる。
【００５４】
ステップＳ１７０において、リードマーキング１４によってマーキングされた全ての信号が、FPGA８からリードバックによって読み出し可能であるかどうか、すなわち統合されたリストの一部であるかどうかがチェックされる。リードマーキング１４によってマーキングされた信号が、リードバックによって読み出し不可能である場合には、モデル信号のリードマーキング１４を手掛かりにして警告を作成、表示することによって警告が出力される。
【００５５】
ステップＳ１７０におけるチェックによって、リードマーキング１４によってマーキングされた信号が、FPGA８からリードバックによって読み出し不可能であることが判明した場合には、ステップＳ１８０において当該モデル信号は、FPGA８内において、リードバックによって読み出し可能な信号として自動的にインプリメンテーションされる。このために、当該信号の信号経路１３には、信号値を一時保存するためのレジスタ１５が自動的にインプリメンテーションされる。レジスタ１５の自動的なインプリメンテーションが失敗した場合には、相応の警告が出力される。
【００５６】
ステップＳ１９０において、FPGAコード３の作成が終了される。相応にして、ビルド４において、“マップ（Map）”ステップと、“プレイス（Place）”ステップと、“ルート（Route）”ステップとが実施され、FPGAコード３が作成される。
【００５７】
FPGAコード３の作成後にFPGA８からリードバックによって読み出し可能な、FPGA８の信号を特定するための本方法によれば、これらのFPGA８の信号を、FPGA８によってサポートされる限りにおいて、FPGA８の相応のパーシャルリコンフィギュレーションを介して記述することも可能であることが判明している。本発明の第２実施形態においては、FPGAコード３の作成後にパーシャルリコンフィギュレーションによって変更可能な信号を特定するために、上述した方法が実施される。このためにはただ、FPGA８が、上述したパーシャルリコンフィギュレーションのような相応のマニピュレーション手段を用意するだけでよい。
【００５８】
本方法は、コンピュータに実装された命令を備えるコンピュータプログラム製品として実現され、該コンピュータプログラム製品は、テータ処理装置１にてロード及び実行された後に上述した方法の各ステップを実施する。
【００５９】
デジタルメモリ媒体は、電子的に読み出し可能な制御信号を供給し、この制御信号は、データ処理装置１にて上述した方法が実施されるように、データ処理装置１と協働する。
【符号の説明】
【００６０】
１  データ処理装置
２  FPGAモデル
３  FPGAコード３
４  ビルド
５  CPUコード
６  計算ノード
７  CPU
８  FPGA
９  ホストシステム
１０  トレースファイル
１１  上位のサブシステム
１２  下位のサブシステム
１３  信号経路
１４  リードマーキング
１５  レジスタ
１６  トレーサビリティ予測（TraceabilityForecast）モジュール
【図１】
0006649731.tif 000002
【図２】
0006649731.tif 000003
【図３】
0006649731.tif 000004
【図４】
0006649731.tif 000005