JP6436916B2 - ランタイムにfpgaの信号値を変更するための方法、当該方法を実施するためのデータ処理装置、コンピュータプログラムおよびディジタル記憶媒体 - Google Patents

ランタイムにfpgaの信号値を変更するための方法、当該方法を実施するためのデータ処理装置、コンピュータプログラムおよびディジタル記憶媒体 Download PDF

Info

Publication number
JP6436916B2
JP6436916B2 JP2015556530A JP2015556530A JP6436916B2 JP 6436916 B2 JP6436916 B2 JP 6436916B2 JP 2015556530 A JP2015556530 A JP 2015556530A JP 2015556530 A JP2015556530 A JP 2015556530A JP 6436916 B2 JP6436916 B2 JP 6436916B2
Authority
JP
Japan
Prior art keywords
fpga
signal value
data
signal
configuration
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.)
Active
Application number
JP2015556530A
Other languages
English (en)
Other versions
JP2016517191A (ja
Inventor
カルテ ハイコ
カルテ ハイコ
フンケ ルーカス
フンケ ルーカス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dspace Digital Signal Processing and Control Engineering GmbH
Original Assignee
Dspace Digital Signal Processing and Control Engineering GmbH
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
Priority claimed from DE201310101300 external-priority patent/DE102013101300A1/de
Priority claimed from EP13154741.6A external-priority patent/EP2765528B1/de
Application filed by Dspace Digital Signal Processing and Control Engineering GmbH filed Critical Dspace Digital Signal Processing and Control Engineering GmbH
Publication of JP2016517191A publication Critical patent/JP2016517191A/ja
Application granted granted Critical
Publication of JP6436916B2 publication Critical patent/JP6436916B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • 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
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Description

本発明は、ランタイムにFPGAの信号値を変更するための方法に関する。同様に本発明は、プロセッサユニット及びFPGAを備えており、且つ、上記の方法を実施するように構成されているデータ処理装置に関する。また本発明は、適切なデータ処理装置におけるロード及び実行後に、上述の方法の各ステップを実行させる、コンピュータ実行命令を有しているコンピュータプログラム製品、並びに、上述の方法が実施されるように、プログラミング可能なデータ処理装置と協働することができる、電子的に読み出し可能な制御信号を有しているディジタル記憶媒体に関する。最後に、本発明は、ハードウェア記述言語で記述されたFPGAモデルに基づき、FPGAビルド(Build)を実行するための方法に関する。ハードウェア記述言語を、例えばVHDL(Very-high-speed-integrated-circuits Hardware Description Language)のようにテキスト形式で表すことができるか、又は、線図的に、例えばSimulinkプログラムとして表すことができる。
複雑な動的モデルのリアルタイムシミュレーションは、時間に関する周辺条件自体が厳しいことから、現在の計算ノードに高い要求を課している。自動車分野のHIL(Hardware-in-the-Loop)シミュレーションでは、その種のモデルは特に、例えば環境モデルの非常に動的な部分に関して高速な制御回路を接続する必要がある個所に導入される。そのようなケースは例えばシリンダ内部圧力センサをシミュレートする場合に該当する。シリンダ内部圧力センサは、燃費又は排ガスの低減においてますます重要な役割を担うようになっている。しかしながらまた、高いダイナミクスを有している制御区間、例えば電気モータにおいても、短いサイクル時間及びレイテンシは不可欠である。これらをCPUベースのシミュレーションで実現することは実際のところほぼ不可能である。シミュレートされる環境モデル(例えばシミュレートされる電気モータ)又は制御回路はいっそう厳密且つ複雑に成らざるを得ないので、Rapid Control Prototypin(RCP)の分野においてもFPGAはますます進出している。この関係から、例えば複雑な制御部分がFPGAに移行され、その結果、十分に精確且つ高速な反応時間の保証が維持されている。
フィールドプログラマブルゲートアレイ(FPGA : Field Programmable Gate Array)は、モデルの動的な部分の計算を担当することによって、リアルタイムシミュレーションにおいて計算ノードを支援することができる。柔軟性が高く、また複数の信号の並列処理を実現できることから、FPGAを使用することによって、厳しいリアルタイム要求も容易に満たすことができる。計算ノードのCPUのためのハードウェアアクセラレータとしてFPGAを使用することができる。HILシミュレータのためのその種の拡張パーツとして、例えばdSPACE社のDS5203-FPGA Boardが挙げられる。従って、例えば、非常に動的な部分がFPGAに移行され、その結果、非常に精確且つ高速な反応時間が制御回路に対して保証されている。FPGAハードウェアコンフィギュレーションは、通常の場合、ハードウェア記述言語で記述されたFPGAモデルに基づき、ビルドプロセスにより生成される。
精度に対する要求が高まることによって、制御区間のモデルはいっそう複雑になり、従って扱いにくくなる。自動車のHIL環境では、その種のモデルは通常の場合、MathWorks社のツールセットであるMatlab/Simulinkを用いて作成される。Simulinkは、ブロック線図の形態でその種のモデルについてのブロックベースのビューを提供する。複数のモデル部分をブロック線図において、幾つかのサブシステムに統合し、また、信号によって相互に結合することができる。それらのブロック間のデータフローは信号線によって表される。
CPUベースのリアルタイムシミュレーションにおいては、先ず、モデルのブロック線図がSimulink Coderを用いてC/C++ソースファイルに翻訳される。続けて、それらのソースファイルがコンパイラを介して実行可能なアプリケーションに翻訳され、それらのアプリケーションをリアルタイム能力のあるオペレーションシステムを有している計算ノードにおいて実行することができる。更に、CPUビルドではトレースファイル(Trace File)が生成され、このトレースファイルは、例えばSimulinkにおいて線図的にモデリングされたトポロジファイル(Topology File)を表す。TRCファイルには、アクセス可能なあらゆる変数が含まれており、またそれらの変数は種々の記憶位置にマッピングされている。それらの変数は有利にはモデルのトポロジに類似するトポロジで記憶されている。
モデルがCPUアプリケーションに翻訳されると、シミュレーションの計算が固定のステップ幅でシーケンシャルに実施される。従って、全てのモデル状態又はモデル変数、例えば信号線におけるデータ又はブロックの入力値/出力値の一貫性のあるマッピングが常に計算ノードのメインメモリに存在する。メインメモリに直接的にアクセスすることによって、モデル変数を試験ツール、例えばControlDeskにおいて解析及び/又は操作することができる。HILシミュレーションの変数へのランダム書き込み/読み出しアクセスが実現される。トレースファイルに基づき、例えばエンジン回転数のような信号値を選択することができ、また、ディスプレイを介して出力又は操作することができる。HIL環境では、この動作が「測定」及び「調整」という概念に包括される。
FPGAベースのシミュレーションを、dSpace社のFPGA Programming Blockset及びXilinx社のSystem Generator(XSG)を使用して、CPUベースのシミュレーションと同様に、Simulinkを用いてブロック線図によりモデリングすることができる。
もっともこのモデルは、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の信号値にランダムにアクセスすることができる。信号値の変更を、トポロジファイル(トレースファイル)を介するアクセス及びSimulinkを用いる線図的なモデリングを含めて、CPUにおけるソフトウェアの実行から公知であるように行うことができる。信号値、例えば点火時点を相応に選択及び表示及び/又は変更することができる。
FPGAの信号値を変更するためには、信号値に関する値がFPGAに書き込まれることだけが必要とされる。書き込まれた値が、信号値の以前にセットされていた値と異なっていることは必要ない。但し、実際のところ信号値の値は一般的に変更されるので、ここでは「変更」という語句を用いている。
同様に、FPGAの動作中に状態データがFPGAから読み出され、そこから信号値が決定されることによって、FPGAの信号値へのアクセスを実現することができる。複数の状態データが読み出され、必要に応じて結合されるが、その際に、FPGAを構造的に変化させることは必要ない。また、FPGAの動作を中断する必要もない。従って、FPGAの信号値にランダムにアクセスすることができる。信号値へのアクセスを、トポロジファイル(トレースファイル)を介するアクセス及びSimulinkを用いる線図的なモデリングを含めて、ソフトウェアの実行から公知であるように行うことができる。信号値、例えばエンジン回転数を相応に選択し、表示又は操作することができる。
更に、ランタイムにFPGAの信号値にアクセスするための方法が提供され、この方法は、FPGAハードウェアコンフィギュレーションをFPGAにロードするステップと、FPGAハードウェアコンフィギュレーションをFPGAにおいて実行するステップと、FPGAの信号値を要求するステップと、FPGAの機能レベルからFPGAのコンフィギュレーションレベルにおけるコンフィギュレーションメモリに状態データを伝送するステップと、状態データをコンフィギュレーションメモリからリードバックデータとして読み出すステップと、リードバックデータから信号値を決定するステップとを備えている。個々のステップは、上記において説明した信号値を変更するための方法の各ステップに対応する。
有利には、FPGAのインプリメンテーションに関して変更は必要ないので、FPGAのリソース及び性能に対する要求も変わらない。従って、信号値へのアクセスは、生成されたFPGAハードウェアコンフィギュレーションに関しても、また実行中にも、通常の動作に影響を及ぼすことはない。アクセスを実現するために、種々のモデル変数の複数の状態を一貫性があるように記憶することができる。適合されたFPGAハードウェアコンフィギュレーションを生成して、それをFPGAに伝送せずとも、所望の信号値にアクセスすることができるので、それによって開発期間を短縮することができる。FPGAの利用可能なリソース及びリアルタイム動作への影響は回避又は低減される。特に、FPGAハードウェアコンフィギュレーションを変更することなく、種々の信号値をFPGAから必要に応じて読み出すことができる。
コンフィギュレーションレベルは、FPGAを初期設定するために使用される、FPGAの論理レベルである。初期コンフィギュレーションプロセスの間に、コンフィギュレーションデータがコンフィギュレーションメモリに書き込まれ、その後、機能レベルはモデリングされたように動作する。続いて、動作中に例えばトリガによって、機能レベルの全てのレジスタ内容を再びコンフィギュレーションレベルにミラーリングすることができる。続いて、コンフィギュレーションメモリの内容を読み出し、その内容から信号値を決定することができる。それとは逆に、動作中に、例えばトリガによってコンフィギュレーションメモリの全ての内容を、コンフィギュレーションレベルから機能レベルのレジスタ内容に伝送することができる。その種のトリガとして例えばリセット信号が考えられる。リセット信号をFPGAの一部に対してセットすることができるか、又は、明示的に複数のレジスタに対してFPGAプログラムにおいてセットすることができる。コンフィギュレーションレベルにおける変化が直接的に機能レベルに作用する場合には、ルックアップテーブル及びマルチプレクサの変化に関してはその種のトリガは不要であると考えられる。
信号値の選択をランタイム中に任意に変えることができる。有利には、リードバックデータ及び/又はライトバックデータとしての複数の信号値へのアクセスが行われる。
リードバックデータ及び/又はライトバックデータは、FPGAの任意のデータ単位を含むことができる。リードバックデータ及び/又はライトバックデータは、FPGAの比較的大きいメモリブロック又は個々のレジスタ値を含むことができる。それらのメモリブロックとして、例えばFPGAのリードバックカラムが考えられる。リードバックデータとライトバックデータは構造的に等しいものであって、単に概念上区別されるに過ぎない。有利には、変更すべき信号値が定数としてFPGAに実装されており、例えば、開発の間にだけ適合させる必要があるSimulinkのConstantブロックとして実装されている。
原則として、上述の方法の順序は変更可能であり、本明細書に記載した順序に限定されるものではない。特に、本方法を、FPGAハードウェアコンフィギュレーションのロード及び実行後に、信号値を変更するため及び/又は信号値にアクセスするために実施し、反復的に信号値にアクセスするか、又は、信号値を変更することができる。
FPGAへの書き込みアクセスが行われる。このアクセスはFPGAに影響を及ぼすことなく、ランタイムに行われる。FPGAの信号値への読み出しアクセスに関して上記において詳細に説明した各事項は、信号値を変更するための書き込みアクセスに関しても相応に該当し、またそれぞれ別個に相応に適用することができる。
FPGAの信号値を変更するための書き込みアクセスの際に、FPGAの動的なパーシャルリコンフィギュレーションが行われ、その際に、信号値を含んでいる、FPGAにおける関連性のある各部分がランタイムに上書きされる。例えば、SimulinkのConstantブロック又は信号値の他の任意のモデリングを、リコンフィギュレート可能なルックアップテーブル、リコンフィギュレート可能なレジスタ又はリコンフィギュレート可能なマルチプレクサにマッピングすることができる。ルックアップテーブル、レジスタ又はマルチプレクサの動的なパーシャルリコンフィギュレーションによって、FPGAのランタイムに、マッピングされた信号値を変更することができる。複数のビットを含む信号値を、必要に応じて、複数のエレメントに分割してマッピングすることができる。利用されるFPGA及びFPGAプログラムに応じて、FPGAエレメントへの信号値を種々にマッピングすることが有利であると考えられる。FPGAプログラムをビルドする前の解析によって、有利なマッピングを決定することができる。
データ処理装置を原則として任意に構成することができる。FPGAは典型的には、拡張モジュールとしてデータ処理装置に設けられているか、又はデータ処理装置と接続されている。データ処理装置を、データコネクションを介して遠隔の制御コンピュータと接続することができる。
特に有利には、信号値へのアクセスが制御コンピュータにおけるアプリケーションを介して行われる。
信号値の表示をグラフィック表示として行うことができる。信号値を有利にはリストから「ドラッグ・アンド・ドロップ」によって、画面上に表示されている、信号値を表示するための機器の上に移動させることができる。それとは逆に、変更すべき信号値をリストから「ドラッグ・アンド・ドロップ」によって選択することも同様に可能である。また、変更すべき信号値に関する値を、「ドラッグ・アンド・ドロップ」によって、選択された信号値の上に置くこともできる。
リードバックデータとしての状態データのコンフィギュレーションメモリからの読み出しはデータの変更を含まず、単に概念上の定義に関する。相応のことがライトバックデータについても該当する。ライトバックデータという語句は単に、FPGAにおいて信号値を変更するためにFPGAに書き込まれる信号値を表している。
リードバックデータからの信号値の決定及び/又は信号値からのライトバックデータの決定を原則として任意の個所において、例えばFPGA、データ処理装置のCPU又は制御コンピュータにおいて行うことができる。相応に、状態データ、レジスタデータ又は信号値をそれぞれ必要に応じて伝送することができる。
FPGAの外部からのFPGAのコンフィギュレーションメモリへの読み出しアクセス及び/又は書き込みアクセスはインタフェースを介して行われる。コンフィギュレーションメモリの通常のアーキテクチャは、1フレームの最小読み出し量で、32ビット幅及び100MHzのクロック周波数を有するインタフェースを含んでいる。相応のことが書き込みアクセスについても該当する。従って、FPGAのクロックで正確な周期のアクセスが行われるFPGAデバッガ又はFPGAスコープの意味における本方法の使用は、今日一般的なFPGAでは不可能である。一つのフレームにはレジスタ値の他に、ルックアップテーブル並びにマルチプレクサコンフィギュレーション又は配置配線コンフィギュレーションについての情報を含ませることができる。リードバックデータからの信号値の決定は、例えば、一つのフレームからの複数のレジスタ値の発見及び抽出を含んでいる。相応に、信号値からのライトバックデータの決定は、例えば、一つのフレームにおける複数のレジスタ値の発見及び信号値に応じたレジスタ値のセットを含んでいる。FPGAのコンフィギュレーションメモリへの読み出しアクセス及び/又は書き込みアクセスは、FPGAの内部からも、内部インタフェースを介して実現することができる。その種の内部インタフェースは、例えばXilinx社の「internal configuration access port(ICAP)」である。
本発明の有利な実施の形態において、本方法は、状態データをコンフィギュレーションメモリから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ハードウェアコンフィギュレーションのモデルを使用して識別番号が決定される。特に有利には、アクセスを行う際に参照される一義的な識別番号が各領域に割り当てられている。従って信号値は例えばコンフィギュレーションメモリの一つの領域に、その識別番号を介してアドレッシングすることができる。識別番号を例えば、モデルブロックを識別するためのブロックIDとして実施することができる。ブロックIDは、FPGAプログラムを作成するための種々のステップにわたりモニタリングすることができる。ブロックIDを介して、レジスタ、ルックアップテーブル又はマルチプレクサのような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トレースファイルジェネレータ(Trace File Generator)においてはCPUトレースファイルの生成が行われる。更に、ランタイムにアクセス可能な信号値及びそれに対応する記憶位置を有するリスト(ここでは「ロジックアロケーションファイル(Logic Allocation File)」と称される)が機械読み出し可能なファイルに変換される。更に、CPUのトレースファイルと等価の、FPGAのためのトレースファイルが生成される。更なるステップにおいては、CPUのトレースファイルとFPGAのトレースファイルとがトレースファイルマージャ(Trace File Merger)において統合される。これによって、例えば、制御コンピュータによって、CPU又はFPGAにおける実行のためのインプリメンテーションに依存せずに、信号値へのアクセス及び/又は信号値の変更を行うことができる。
本発明の有利な実施の形態においては、本方法は、コンフィギュレーションメモリからFPGAの機能レベルに状態データを伝送するためのリセット信号を実装する付加的なステップを備えており、その場合、状態データのコンフィギュレーションメモリからFPGAの機能レベルへの伝送は、複数の信号値を有するFPGAハードウェアコンフィギュレーションの隣接する領域から状態データを部分的に伝送することを含んでいる。リセット信号は、コンフィギュレーションメモリからFPGAの機能レベルへの状態データの伝送を開始させる信号である。相応の伝送を、短時間で、例えば数サイクルで行うことができ、その際、リセット信号のセットによって、状態データをコンフィギュレーションメモリから機能レベルに伝送する時点を制御することができる。動作中は、FPGAの動的なパーシャルリコンフィギュレーションによって、FPGAにおける関連性のある各部分を上書きすることができる。例えばSimulinkのConstantブロックである信号値が、リコンフィギュレーション可能なルックアップテーブル、レジスタ又はマルチプレクサにマッピングされる。続いて、信号値は動的なパーシャルリコンフィギュレーションによって、任意の値に変更される。
本発明の有利な実施の形態においては、コンフィギュレーションメモリからFPGAの機能レベルに状態データを伝送するためのリセット信号を実装するステップは、コンフィギュレーションメモリからFPGAの機能レベルに状態データを部分的に伝送するためのリセット信号を実装することを含んでいる。状態データを部分的に伝送することによって、信号値の変更を効果的に実行することができる。FPGAの僅かなリソースしか必要とされないので、それによって、特にリアルタイムシステムにおける使用が容易になる。
本発明の有利な実施の形態においては、アクセス可能な信号値及び/又は変更可能な信号値及びそれに対応する記憶位置を有するリストを作成するステップは、信号値を形成するための複数の記憶位置の結合形態を求めることを含んでいる。従ってリストは、どのようにして信号値が状態データから求められるかについての具体的な情報を含んでいる。
本発明の有利な実施の形態において、本方法は、信号値を決定するためのFPGAコードを生成する付加的なステップを備えており、このFPGAコードには、読み出し可能な信号値及びそれに対応する記憶位置を有するリストに基づく、コンフィギュレーションメモリからのリードバックデータとしての状態データの読み出し、及び、リードバックデータからの信号値の決定が含まれている。従って、信号値を決定するための状態データの後続の処理を完全にFPGAにおいて実行することができる。相応に、FPGAからは決定された信号値だけを伝送することができ、それによってFPGAのインタフェースの負荷が軽減される。
本発明の有利な実施の形態において、本方法は、信号値を変更するためのFPGAコードを生成する付加的なステップを備えており、このFPGAコードには、読み出し可能な信号値及びそれに対応する記憶位置を有するリストに基づく、信号値からのライトバックデータの決定、及び、状態データとしてのライトバックデータのFPGAのコンフィギュレーションメモリへの書き込みが含まれている。従って、状態データを決定するための信号値の処理を完全にFPGAにおいて実行することができる。相応に、変更すべき信号値だけをFPGAに伝送することができ、それによってFPGAのインタフェースの負荷が軽減される。FPGAは内部インタフェースを介して、自身の固有のコンフィギュレーションメモリを読み出すことができ、またコンフィギュレーションメモリに書き込むことができる。その種の内部インタフェースは、例えばXilinx社の「internal configuration access port(ICAP)」である。択一的に、マイクロプロセッサ、例えばMicroBlazeを用いてインプリメンテーションを実現することもできる。
FPGAのコンフィギュレーションレベルは、リードバックを介してカラム毎でのみ読み出すことができる、又は、パーシャルリコンフィギュレーションを介して書き込むことができる。以下では、それらのカラムをリードバックカラムと称する。本発明の有利な実施の形態において、本方法は、一つの信号値に関する複数の状態データを内容としている複数の記憶位置を、FPGAの一つのリードバックカラムに配置することによって、FPGAハードウェアコンフィギュレーションを最適化する付加的なステップを備えている。一つのリードバックカラム内に配置することによって、一つの信号値に関する複数の状態データへのアクセス及び/又はFPGAにおける信号値の変更が加速される。一つの信号値に関する全ての記憶位置が一つのリードバックカラム内に配置される場合には、1回のオペレーションで信号値にアクセスすることができる。つまり、FPGAハードウェアコンフィギュレーションを生成する前に、複数の記憶位置の複数のリードバックカラムへのソートが行われる。
本発明の有利な実施の形態において、本方法は、一つの信号値に関する複数の状態を内容としている複数の記憶位置を、FPGAの隣接する領域に配置することによって、FPGAハードウェアコンフィギュレーションを最適化する付加的なステップを備えている。隣接する領域をFPGAの単一のリードバックカラムに関連付けることができるか、又は隣接する複数の複数のリードバックカラムに関連付けることができる。そのように隣接させて配置することによって、複数の記憶位置へのアクセスが高速化される。二つの信号値に関する複数の記憶位置が一つのリードバックカラム内に配置される場合には、1回のオペレーションでそれら二つの信号値にアクセスすることができる。相応のことが書き込みアクセスにも該当し、書き込みアクセスにおいては、一つの記憶位置において少なくとも一時的にその記憶位置に存在する信号値のみをFPGAに書き込むことができる。
本発明の有利な実施の形態において、本方法は、状態データを提供する複数の論理ブロックの出力端に記憶位置を追加する付加的なステップを備えている。通常はレジスタである記憶位置は状態データを読み出して、その状態データから信号値を決定することができる。利用できる状態データの数が多くなると、より多くの信号値にアクセスすることができる。
本発明の有利な実施の形態においては、FPGAはXilinx社のFPGAである。Xilinx社のFPGAは、FPGAの反復的なコンフィギュレーションを実現できる以外に、動作中のFPGAの部分的な読み出し及びコンフィギュレーションも実現することができる。
以下では、添付の図面を参照しながら、複数の有利な実施の形態に基づき、本発明を詳細に説明する。
制御コンピュータ及びリアルタイムシステムを備えているデータ処理システムの概略図を示す。 図1に示したリアルタイムシステムのFPGAの詳細図を示す。 図1に示したリアルタイムシステムに関するビルドを実施するための方法を示す。 図3に示したFPGAビルドの詳細図を示す。 図2に示したFPGAのコンフィギュレーションメモリのリードバックカラムでの編成の詳細図を示す。 コンフィギュレーションメモリの複数のリードバックカラムにおける関連性のあるメモリ内容の概略図を示し、左側には、最適化が行われていない分布が示されており、中央には、関連性のある記憶位置が集められることによる最適化が示されており、右側には、関連性のあるリードバック列に配置することによる最適化が示されている。 XMLモデルに関するスキーマを示す。 図3に示したビルド方法の結果の、図1に示したデータ処理システムの種々のコンポーネントへの分配を示す。 照会を行ったコンピュータにFPGAの状態データを伝送するためのタイムチャートを示す。 一つの有利な実施の形態による、FPGAの信号値にアクセスするための方法のフローチャートを示す。 一つの有利な実施の形態による、FPGAの信号値を変更するための方法のフローチャートを示す。 レジスタを用いるFPGAの信号値の実装の概略図を示す。 ルックアップテーブルを用いるFPGAの信号値の実装の概略図を示す。 マルチプレクサを用いるFPGAの信号値の実装の概略図を示す。 VCC/GNDへのルーティングを用いるFPGAの信号値の実装の概略図を示す。 図1に示したリアルタイムシステムに関するビルドを実施するための図3に示した方法を基礎とした、信号をモデリングするための付加的な詳細が示されている図を示す。
図1には、ここではホストシステムとも称される制御コンピュータ2と、リアルタイムシステム3とを備えているデータ処理システム1の本発明による構造が示されている。リアルタイムシステム3は、明示的には図示していないネットワークコネクションを介して、制御コンピュータ2と接続されている。
リアルタイムシステム3は、図示していないCPUを備えている、参照符号CNで表されている計算ノード4と、この実施例ではXilinx社のFPGAであるFPGA5とを含んでいる。リアルタイムシステム3はここでは任意のデータ処理装置である。FPGA5は概略的に図2に示されており、また、機能レベル6及びコンフィギュレーションレベル7を含んでいる。コンフィギュレーションレベル7には、複数の記憶位置9を備えているコンフィギュレーションメモリ8が配置されている。コンフィギュレーションレベル7は、FPGA5を初期設定するための、FPGA5の論理レベルである。初期コンフィギュレーションプロセスの間に、コンフィギュレーションデータがコンフィギュレーションメモリ8に書き込まれ、また機能レベル6に伝送される。この実施例において、記憶位置9は、例えば図12に示されているような、FPGA5のレジスタ60に相当する。代替的な実施の形態では、記憶位置9が、図13に示されているようなルックアップテーブル61を用いて、図14に示されているようなマルチプレクサ62を用いて、又は、図15に示されているような、スイッチボックス63内で実現されており、且つ、基本的なバイナリ値で表されている電源電圧又は基準電位への択一的な配置配線に関するVCC/GNDへのルーティングを用いて実装されている。
FPGA5はFPGAボード10に配置されており、且つ、インタフェース11を介して、そのインタフェース11にアクセスするコントローラ12と接続されている。インタフェース11はここでは、1フレームの最小読み出し量で、100MHzのクロック周波数において32ビット幅を有している。一つのフレームには、レジスタ値、ルックアップテーブル61及び/又はマルチプレクサ62若しくは配置配線のコンフィギュレーションについての情報の任意の組み合わせを含ませることができる。FPGAボード10には、コントローラ12によるアクセスについてのFPGA変数マッピングファイル(Variable Mapping File)13が記憶されている。FPGA5の信号値へのアクセス、又はFPGA5の信号値の変更に関する以下の説明は、それぞれ、上述の変更又はアクセスに関して相応に当てはまる。信号値をそれぞれ、択一的に、レジスタ60、ルックアップテーブル61、マルチプレクサ62又はVCC/GNDへのルーティングによって実装することができる。
リアルタイムシステム3を利用するために、下記において図3又は図16を参照しながら説明するように、ビルドが実施される。ビルドの開始にあたる基礎として、いずれもSimulinkを用いて生成されたFPGAモデル20及びCPUモデル21が使用される。FPGAモデル20を基礎として、FPGAビルド22において、公知のハードウェア記述言語であるVHDLによって、ロジックアロケーションファイル23及びFPGAハードウェアコンフィギュレーション24が生成される。ロジックアロケーションファイル23には、ランタイムにFPGA5においてアクセス可能な信号値の状態データに関する、コンフィギュレーションメモリ8の記憶位置9を有するリストが記憶される。また、信号値を形成するための記憶位置9の結合形態が求められ、ロジックアロケーションファイル23に記憶され、それにより、ロジックアロケーションファイル23を基礎として、状態データから信号値を決定することができ、またそれとは逆に、信号値から状態データを決定することができる。
ロジックアロケーションファイル23を基礎として、上記において既に述べた、機械読み出し可能なFPGA変数マッピングファイル13が生成され、このFPGA変数マッピングファイル13は、記憶位置9と信号値の対応関係を機械読み出し可能な形態で含んでいる。この他に、図16に詳細に示されているように、FPGAモデル20及びロジックアロケーションファイル23を使用して、信号XMLモデル70が形成される。信号XMLモデル70を基礎として、マッピングファイルジェネレータ(Mapping File Generator)71において、FPGA変数マッピングファイル13が生成される。CPUモデル21を基礎として、CPUビルド26において、リアルタイムシステム3のCPUにおいて実行可能なアプリケーション27が作成される。更に、CPUビルド26を基礎として、CPUトレースファイルジェネレータ28においては、CPUトレースファイル29が生成される。同様に、入力情報として信号XMLモデル70を受け取るFPGAトレースファイルジェネレータ30においては、FPGAトレースファイル31が生成される。後続のステップにおいては、2つのトレースファイル29,31がトレースファイルマージャ32において、一つの完全なトレースファイル33に統合される。
ビルド方法は、全体的な結果として、アプリケーション27、完全なトレースファイル33、FPGA変数マッピングファイル13及びFPGAハードウェアコンフィギュレーション24を有する、リアルタイムシステム3のためのダウンロードアプリケーション34を供給する。
図4には、FPGAビルド22が詳細に示されている。入力として、FPGAビルド22はFPGAサブシステムのブロック線図40を取得し、このFPGAサブシステムは加算、乗算等の基本ブロックを複数組み合わせたものを含んでいる。このプロセスの結果として、完成したビットストリーム並びにインタフェース記述を含むModel.iniファイル41が得られる。インタフェース記述は、FPGAサブシステムにおいてインスタンスが生成されている全てのインタフェースのリストを含んでいる。この記述によって、FPGAインタフェースに対応するCPUインタフェースを生成することができる。FPGAビルド22の第1のステップにおいては、FPGAサブシステムのブロック線図40から、Xilinx社のSystem Generator(XSG)42によって、HDL記述が生成される。HDL記述はこの実施例においてVHDL記述である。この記述は続いて合成ツール(XST)によってネットリストに翻訳される。
Simulinkモデルのネットリストは、XSGビルドの後に、他のフレームワークコンポーネントと共に、一つの完全なネットリストに統合される。続いて、全体のデザインがインプリメンテーションプロセスによってビットストリームに翻訳される。
Simulinkブロック線図のブロック出力と、FPGAコンポーネント(Dフリップフロップ)又はコンフィギュレーションメモリ8におけるFPGAコンポーネントに属する記憶位置9との間に関係性が確立される。このマッピングは逐次的に、FPGAビルド22の間に構成又は精製(リファイン)される。
FPGAサブシステムのブロック線図がXSGによってHDLに翻訳されると、それらの二つの記述はその構造に関して類似している。これを、例えばSimulinkブロックのブロック出力とエンティティのポートとの間の直接的な関係性を構築するために利用することができる。
本方法は更に、一つの信号値に関する複数の状態データを内容としている記憶位置9を、FPGA5の一つのリードバックカラムに配置することによって、FPGAハードウェアコンフィギュレーション24を最適化するステップを備えている。コンフィギュレーションメモリ8を複数のリードバックカラムに編成したものが図5に示されている。一つのフレームは、コンフィギュレーションメモリ8においては1ビット幅且つ1312ビット長のカラムを含み、機能レベル6の一つのCLBカラムにわたり延在している。一つのフレーム内の一つのビットと、そのビットをコンフィギュレートする機能エレメントとの相関を、Xilinx社のツールによって求めることができる。従って、一つの信号値を決定するためには、一つのフレームの一部だけが重要になる。一つのリードバックカラム内に配置することによって、一つの信号値に関する複数の状態データへのアクセスが加速される。一つの信号値に関する全ての記憶位置9が一つのリードバックカラム内に配置される場合には、1回のオペレーションでその信号値にアクセスすることができる。一つの有利な実施の形態においては、FPGA5のランタイムに変更されない複数の信号値は、ランタイムに変化する可能性があるFPGAコンフィギュレーションとは離されて、複数のリードバックカラムに配置される。
図6の左側に示されているように、関連性のある複数のリードバックカラムが、当初はコンフィギュレーションメモリ8全体にわたり分散している。FPGAハードウェアコンフィギュレーション24の最適化によって、一つの信号値に関する複数の状態を内容としている複数の記憶位置9がFPGA5の隣接する領域に配置される。隣接する領域をFPGA5の単一のリードバックカラムに関連付けることができるか、又は隣接する複数のリードバックカラムに関連付けることができる。そのように隣接させて配置することによって、複数の記憶位置9へのアクセスが高速化される。一つのリードバックカラム内に二つの信号値に関する複数の記憶位置9を配置することによって、1回のオペレーションでそれら二つの信号値にアクセスすることができる。図6の中央には、関連性のある複数の記憶位置9を集めることによって、リードバックカラムの数を低減した最適化が示されている。図6の右側の図によれば、更なる最適化によって、関連性のあるリードバックカラムが隣接するようにFPGA5に配置することが付加的に行われている。
信号の関連性のある情報を含んでいるXMLモデル70のスキーマが図7に例示的に示されている。
FPGASubsystem型の要素は、各リードバックモデルのインスタンスのルートを形成する。FPGAサブシステムは、Simulinkのモデル階層に依存して、再帰的に別のサブシステムのインスタンスを含んでいる。このコンテキストにおいて、サブシステムを、基本ブロック(例えば加算器)としても、Simulinkサブシステムとしても実施することができる。サブシステム又はブロックの名前及び所属のHDLエンティティの名前は、サブシステムクラスのプロパティname又はhdlInstanceに記憶される。
各サブシステムは、SimulinkモデルにおけるI/Oポート又は信号を表す複数の信号を含むことができる。各信号は、idプロパティを介して一義的な識別子を得る。信号の方向(入力/出力)は重要ではなく、またモデリングの際の冗長性は回避されるべきなので、Signalクラスは規則に従い、シミュリンクモデルにおける複数のブロック又はサブシステムの出力を表す。複数のサブシステムが同一の信号を共有する場合、SignalReferenceクラスのインスタンスを介して、他のサブシステムインスタンスの信号を参照することができる。
信号を合成によってレジスタ60と結合させることができる。この結合は同様に、SignalクラスとRegisterクラスとの間で見て取れる。レジスタ60と、レジスタ60の初期値が記憶される複数のフレームとの関係性は、相応のクラスを介してモデリングされる。信号のプロパティはPropertiesクラスを介してモデリングされる。リードバック及びそれに続く信号の処理には、特に、プロパティBinaryPoint、DataType及びWidthが関係する。
Registerクラスの要素はFrameクラスを介して複数のビットと関連付けられている。信号の幅と、それに属するレジスタ60の幅は場合によっては変化する可能性があるので、レジスタ60は信号と同様に固有のwidthプロパティを有している。Bitクラスは差し当たりビット位置(pos)を介して、レジスタ60のどのビットが関係するかを表す。更に、Bitクラスのインスタンスは、フレーム内のどの語(framewordOffset)にレジスタのビットが存在するか、またどのビットマスク(mask)でもってビットの値をフレーム語からマスクすることができるかの情報を含んでいる。
リードバックモデルはXMLファイルに記憶されている。モデルを例えばツール全体にわたり処理することができる。モデルはXSDスキーマに対するバリデーションによって、構文的及び構造的に正しいものに保たれる。
本方法は、信号値を決定するためにリードバックアプリケーションとしてFPGAコード44を生成する付加的なステップを備えており、このFPGAコード44には、FPGA変数マッピングファイル13に基づく、コンフィギュレーションメモリ8からのリードバックデータとしての状態データの読み出し、及び、リードバックデータからの信号値の決定が含まれている。
本方法は、信号値を変更するためにライトバックアプリケーションとしてFPGAコード44を生成する付加的なステップを備えており、このFPGAコード44には、FPGA変数マッピングファイル13に基づく、信号値からのライトバックデータの決定、及び、状態データとしてのライトバックデータのFPGA5のコンフィギュレーションメモリ8への書き込みが含まれている。詳細については、下記において図11を参照しながら説明する。
図8には、ビルド方法の結果が種々のコンポーネントに分配される様子が示されている。Simulinkモデル20,21を基礎として、FPGAビルド22によってビルドが実施される。FPGAハードウェアコンフィギュレーション24が生成され、FPGA5にロードされる。このことは、図10を参照して説明する方法においてステップS100に対応する。アプリケーション27が計算ノード4にロードされ、また完全なトレースファイル33が制御コンピュータ2に伝送される。
動作時に、FPGAハードウェアコンフィギュレーション24がFPGA5において開始及び実行される。このことは、図10を参照して説明する方法においてステップS110に対応する。アプリケーション27は計算ノード4において開始及び実行される。制御コンピュータ2においては制御ソフトウェア50が開始される。制御ソフトウェア50はこの実施例において、dSPACE社のソフトウェアControlDeskである。ControlDesk50は、図1に示されているように、計算ノード4を介してリアルタイムシステム3と通信する。
ランタイム中にFPGA5の信号値を表示するために、ControlDesk50を介して、その信号値を要求することができる。このことは、図10を参照して説明する方法においてステップS120に対応する。種々の信号値へのアクセスは、完全なトレースファイル33及びSimulinkを用いた線図的なモデリングを介して行われる。信号値の表示はグラフィック表示として行われ、その際、信号値はリストから「ドラッグ・アンド・ドロップ」によって、画面上に表示されている、信号値を表示するための機器の上に移動される。リストからの信号値は一義的な識別番号に基づき識別される。
ControlDesk50は計算ノード4に対して信号値を要求する。このために、コンピュータノード4には、ControlDesk50からの要求を受信するデータ取得サービス(Data Acquisition Service)51が実装されている。データ取得サービス51は、FPGA5のためのコントローラ12に対して信号値を要求する。コントローラ12は、FPGA5の動作中に、FPGA5の機能レベル6からFPGA5のコンフィギュレーションメモリ8への状態データの伝送を開始する。このステップは、図10を参照して説明する方法においてステップS130に対応する。つまり動作中には、トリガによって、機能レベル6の全てのレジスタ内容がコンフィギュレーションレベル7にミラーリングされる。択一的な実施の形態においては、FPGA変数マッピングファイル13から、信号値の決定に必要とされる状態データの部分が求められ、それらの部分のみがコンフィギュレーションメモリ8において保護される。
更に、FPGA5においては、リードバックアプリケーション44によって、状態データがコンフィギュレーションメモリ8からリードバックデータとして読み出される。このことは、図10を参照して説明する方法においてステップS140に対応する。読み出されたリードバックデータはここでは一つ又は複数のフレーム、即ち、FPGA5の一つ又は複数のリードバックカラムを含んでいる。その際、先ず、信号値の決定に必要とされるリードバックカラムが求められ、それらのリードバックカラムのみが読み出される。必要とされるリードバックカラムに関する情報を、FPGA変数マッピングファイル13を介して求めることができる。
リードバックデータに基づき、FPGA5において信号値が決定される。このことは、図10を参照して説明する方法においてステップS150に対応する。更に、レジスタ値がフレームから検索及び抽出される。それらの情報はFPGA変数マッピングファイル13から得られる。リードバックデータの少なくとも一つのレジスタ値へのマッピングが行われる。その際に、必要であれば、信号値が複数のレジスタ60の状態データから形成される。相応に、信号値を決定するために、レジスタ60の各内容がFPGA変数マッピングファイル13に従い一緒に処理される。
そのようにして決定された信号値は、FPGA5のインタフェース11を介してコントローラ12に伝送され、またコントローラ12は、計算ノード4のデータ取得サービス51を介して、制御コンピュータ2のControlDesk50に信号値を伝送する。
FPGAの機能レベルから、照会を行ったコンピュータに状態データを伝送するためのタイムチャートが図9に示されている。
上記において説明した、FPGA5の信号値への読み出しアクセスと同様に、FPGA5の信号値を変更するための書き込みアクセスも実現される。この書き込みアクセスについては、下記において図11を参照しながら説明する。
FPGA5の信号値を変更するための方法は、ステップS200において、FPGAハードウェアコンフィギュレーション24をFPGA5にロードすることによって開始される。このステップS200は上記において説明したステップS100に対応する。
上記において説明したステップS110と同様に、ステップS210においては、FPGAハードウェアコンフィギュレーション24がFPGA5において開始及び実行される。
ステップS215においては、セットすべきFPGA信号値が選択される。FPGA信号値を変更するための基礎として、ステップS220からS250においては、上記において説明した相応のステップS120からS150と同様に、信号値がFPGA5の機能レベル6から読み出される。
ステップS260において、信号値がセットされる。このために、先ず、読み出された信号値がユーザに表示され、それに基づき、ユーザは信号値に関する新たな値をセットする。
ステップS270においては、信号値からライトバックデータが決定される。ライトバックデータの決定は、上記においてステップS150に関して説明した、リードバックデータからの信号値の決定の原理に基づき行われる。相応に、信号値は一つ又は複数のレジスタ60に関するライトバックデータにマッピングされる。信号値の変化によって、事前にステップS230において伝送された状態データにも変化が生じる。
ステップS280においては、ライトバックデータが状態データとして、FPGAのコンフィギュレーションメモリ8に書き込まれる。コンフィギュレーションメモリ8へのライトバックデータの書き込みは、上記においてステップS140に関して説明した、状態データの読み出しの原理に基づき行われる。相応に、機能レベル6において信号値のコンフィギュレーションを有している領域の全ての状態データがコンフィギュレーションメモリ8にミラーリングされる。
ステップS290においては、ライトバックデータが、コンフィギュレーションメモリ8からFPGA5の機能レベル6に伝送される。コンフィギュレーションメモリ8へのライトバックデータの伝送は、上記においてステップS130に関して説明した、機能レベル6の状態データの伝送の原理に基づき行われる。
以下では、図12から図15を参照しながら、信号値の種々の実装を説明する。
図12においては、有利な実施の形態に即したレジスタ60による信号値の実装が示されている。ここでは、信号値の各ビットがレジスタ60によってマッピングされる。レジスタ60は、ランタイムに所望の信号値に応じて変更されなければならない、FPGAのコンフィギュレーションストリーム(ビットストリーム)における関連性のある領域を決定するためのエンティティとして使用される。従って、レジスタ60は複数の入力を有している必要はない。またシステムクロックとの接続部をオプションとして実装することもできる。この実装では、各信号値がレジスタ60の形態で実装されることを考慮する必要がある。択一的に、デザインのハードウェア記述において、即ちVHDL記述において、信号値を相応のレジスタマクロに置換することもできる。初期FPGAデザインをインプリメンテーションした後に、レポートファイルに基づき、即ちロジックアロケーションファイル23に基づき、FPGAビットストリームにおける、全ての信号値の各レジスタビットの正確なアドレスを決定することができる。初期データストリームをロード及び実行した後に、ランタイム中に、レジスタ60の各値がパーシャルリコンフィギュレーションによって変更されることによって、信号値を変更することができる。続いて、リセット信号がセットされ、その結果、変更された全てのレジスタ60に対して、信号値の新たな値がアクティブになる。
レジスタ60を使用する場合、リソース要求は、調整すべき信号値の1ビットにつき一つのレジスタ60に制限される。信号値を表すために必要とされるレジスタ60を、ユーザはもはや自由に使用することはできない。FPGA5における専用の大域的なリセットネットワークを使用することによって、付加的なリセットネットワークが、残りのFPGAデザインのルーティングの実現に影響を及ぼすことはほぼない。信号値を変更するために操作しなければならないFPGA5のコンフィギュレーションストリームの部分を容易に決定することができる。
図13には、代替的な実施の形態として、ルックアップテーブル(LUT)61の出力を介して個々のビットを表すことによる信号値の実装が示されている。各FPGA処理ユニット(CLB)は複数のルックアップテーブル61を有しており、それらのルックアップテーブル61は通常の場合、任意のロジック機能を実現するために使用される。ここでは、ルックアップテーブル61が信号値のソースとして使用され、それらの信号値のロジック機能をランタイムにパーシャルリコンフィギュレーションによって変更することができる。
この実装では、VHDL記述において、各信号値について相応に多数のLUTマクロのインスタンスが生成されなければならないことを考慮する必要がある。FPGAインプリメンテーションプロセスの後に、ルックアップテーブル61の内容を操作するためには、コンフィギュレーションデータストリームのどの部分を操作しなければならないかを決定する必要がある。その後、ランタイム中に、FPGA5のコンフィギュレーションストリームにおける相応の領域が求められ、パーシャルリコンフィギュレーションによって変更されることによって、信号値が相応に変更される。
図14においては、別の代替的な実施の形態に即したマルチプレクサ62による信号値の実装が示されている。信号値の1ビットはマルチプレクサ62の出力として実現されている。マルチプレクサ62の二つの入力端は0(S1)と1(S2)に接続されている。マルチプレクサ62のセレクタ(C)は、マルチプレクサ62の二つの入力の切換を行うために、FPGAコンフィギュレーションのビットを介して制御される。この実装においては、信号値がマルチプレクサ62の形態で実装され、その実装後には、コンフィギュレーションストリーム内のどの位置においてマルチプレクサ62を再び発見することができるかが既知であることが保証されなければならない。その後、ランタイム中に、FPGA5のコンフィギュレーションストリームにおける相応の領域が求められ、パーシャルリコンフィギュレーションによって変更されることによって、信号値が相応に変更される。
レジスタ60又はルックアップテーブル61によって信号値を表す場合よりも、マルチプレクサ62を用いた信号値の実装では、使用されるロジックリソースが少なくて済む。
図15においては、更に別の実施の形態に即した、VCC/GNDへのルーティングによる信号値の実装が示されている。これは、非常にリソースを節約して、信号値を実装することができる。スイッチボックス63においては、制約条件(Constraint)の形でこの実装に影響が及ぼされない限りは、信号値の各ビットは0又は1のコネクタに配置配線される。信号値の個々のビットのルーティングを、ランタイム中に、スイッチボックス63内のパーシャルリコンフィギュレーションによって、実線で表されている本来の1から、破線で表されている0になるように、又はその逆に0から1になるように変更することができる。
動作中は、FPGA5のパーシャルリコンフィギュレーションによって、FPGA5における関連性のある各部分を上書きすることができる。ここでは、SimulinkのConstantブロックである信号値が、リコンフィギュレーション可能なルックアップテーブル61、レジスタ60又はマルチプレクサ62にマッピングされる。続いて、信号値は動的なパーシャルリコンフィギュレーションによって、任意の値に変更される。
本方法は、リアルタイムシステム3におけるロード及び実行後に、上述の方法の各ステップを実行させる、コンピュータ実行命令を有しているコンピュータプログラム製品として実現されている。
ディジタル記憶媒体は、上述の方法がリアルタイムシステム3において実施されるように、リアルタイムシステム3と協働する、電子的に読み出し可能な制御信号を提供する。
1 データ処理システム
2 制御コンピュータ
3 リアルタイムシステム、データ処理装置
4 計算ノード
5 FPGA
6 機能レベル
7 コンフィギュレーションレベル
8 コンフィギュレーションメモリ
9 記憶位置
10 FPGAボード
11 インタフェース
12 コントローラ
13 FPGA変数マッピングファイル
20 FPGAモデル
21 CPUモデル
22 FPGAビルド
23 ロジックアロケーションファイル
24 FPGAハードウェアコンフィギュレーション
26 CPUビルド
27 アプリケーション
28 CPUトレースファイルジェネレータ
29 CPUトレースファイル
30 FPGAトレースファイルジェネレータ
31 FPGAトレースファイル
32 トレースファイルマージャ
33 完全なトレースファイル
40 ブロック線図
41 Model.iniファイル
42 Xilinx社のSystem Generator
43 リードバックファイルの生成
44 FPGAコード、リードバックアプリケーション
45 リードバックアプリケーションのソース
50 制御ソフトウェア、ControlDesk
51 データ取得サービス
60 レジスタ
61 ルックアップテーブル
62 マルチプレクサ
63 スイッチボックス
70 信号XMLモデル
71 マッピングファイルジェネレータ

Claims (14)

  1. ランタイムにFPGA(5)の信号値を変更するための方法において、
    少なくとも一つの信号値を有するFPGAハードウェアコンフィギュレーション(24)を前記FPGA(5)にロードするステップと、
    前記FPGAハードウェアコンフィギュレーション(24)を前記FPGA(5)において実行するステップと、
    前記FPGA(5)に伝送するための信号値をセットするステップと、
    前記信号値からライトバックデータを決定するステップであって、前記信号値からライトバックデータを決定するステップは、前記ライトバックデータへの前記信号値のマッピングを含んでいる、ステップと、
    前記ライトバックデータを状態データとして前記FPGA(5)のコンフィギュレーションメモリ(8)に書き込むステップと、
    前記状態データを前記コンフィギュレーションメモリ(8)から前記FPGA(5)の機能レベルに伝送するステップと、
    を備えており、
    前記FPGA(5)のコンフィギュレーションメモリ(8)に書き込むステップの際に、前記FPGA(5)の動的なパーシャルリコンフィギュレーションを行うことにより、前記マッピングされた信号値を変更する、ことを特徴とする、方法。
  2. 前記方法は、前記状態データを前記コンフィギュレーションメモリ(8)から前記FPGA(5)の前記機能レベル(6)に伝送する前に、状態データを前記FPGA(5)の前記機能レベル(6)から前記FPGA(5)のコンフィギュレーションレベル(7)における前記コンフィギュレーションメモリ(8)に伝送する付加的なステップを備えている、請求項1に記載の方法。
  3. 前記ライトバックデータを状態データとして前記FPGA(5)のコンフィギュレーションメモリ(8)に書き込むステップは、前記信号値を変更するために必要とされる、前記コンフィギュレーションメモリ(8)の領域を求めること、及び、前記コンフィギュレーションメモリ(8)の前記必要とされる領域の状態データをライトバックデータとして書き込むことを含んでいる、請求項1又は2に記載の方法。
  4. 前記状態データを前記コンフィギュレーションメモリ(8)から前記FPGA(5)の前記機能レベル(6)に伝送するステップは、前記状態データを書き込むために必要とされる、前記FPGA(5)の前記機能レベル(6)の部分を求めること、及び、前記状態データの当該部分を前記機能レベル(6)に伝送することを含んでいる、請求項1乃至のいずれか一項に記載の方法。
  5. 前記信号値を変更するために必要とされる、前記コンフィギュレーションメモリ(8)の領域を求めること、及び/又は、前記状態データの書き込みに必要とされる、前記FPGA(5)の前記機能レベル(6)の部分を求めることは、識別番号を介して各領域を識別することを含んでいる、請求項1乃至のいずれか一項に記載の方法。
  6. 前記FPGA(5)に伝送するための前記信号値をセットするステップは、利用可能な信号値のリストを準備すること、及び、該リストから信号値を選択することを含んでいる、請求項1乃至のいずれか一項に記載の方法。
  7. 前記FPGAハードウェアコンフィギュレーション(24)を前記FPGA(5)において実行するステップは、前記FPGAハードウェアコンフィギュレーション(24)をリアルタイムアプリケーションとして実行することを含んでおり、
    FPGA(5)の信号値を変更するための前記方法を、前記リアルタイムアプリケーションのランタイムに実施する、請求項1乃至のいずれか一項に記載の方法。
  8. 前記状態データを前記コンフィギュレーションメモリ(8)から前記FPGA(5)の前記機能レベル(6)に伝送するステップは、リセット信号を前記FPGA(5)に送信することを含んでいる、請求項1乃至のいずれか一項に記載の方法。
  9. リセット信号を前記FPGA(5)に送信するステップは、前記状態データを前記コンフィギュレーションメモリ(8)から前記FPGA(5)の前記機能レベル(6)に部分的に伝送するためのリセット信号を送信することを含んでいる、請求項に記載の方法。
  10. 数の信号値を有する前記FPGAハードウェアコンフィギュレーション(24)を作成するステップであって、前記複数の信号値の状態データの記憶位置は前記コンフィギュレーションメモリ(8)内で互いに隣接している、ステップと、
    記FPGAハードウェアコンフィギュレーション(24)に基づき、前記複数の信号値の状態データのための、前記コンフィギュレーションメモリ(8)の記憶位置(9)を求めるステップと、
    ランタイムにアクセス可能及び/又は変更可能な信号値及び該信号値記憶位置(9)リストを作成するステップと、
    さらに備えていることを特徴とする、請求項1に記載の方法。
  11. 前記コンフィギュレーションメモリ(8)から前記FPGA(5)の前記機能レベル(6)に状態データを伝送するためのリセット信号を実装する付加的なステップを備えており、
    状態データの前記コンフィギュレーションメモリ(8)から前記FPGA(5)の前記機能レベル(6)への伝送は、複数の前記信号値を有する前記FPGAハードウェアコンフィギュレーション(24)の前記隣接する記憶位置から前記状態データを部分的に伝送することを含んでいる、請求項10に記載の方法。
  12. プロセッサユニット及びFPGAを備えており、且つ、請求項1乃至のいずれか一項に記載の方法を実施するように構成されているデータ処理装置(3)。
  13. 適切なデータ処理装置(3)におけるロード及び実行後に、請求項1乃至のいずれか一項に記載の方法の各ステップを実行させる、コンピュータ実行命令を有しているコンピュータプログラム。
  14. 請求項1乃至のいずれか一項に記載の方法がプログラミング可能なデータ処理装置(3)において実施されるように、該データ処理装置(3)と協働することができる、電子的に読み出し可能な制御信号を有しているディジタル記憶媒体。
JP2015556530A 2013-02-11 2014-02-11 ランタイムにfpgaの信号値を変更するための方法、当該方法を実施するためのデータ処理装置、コンピュータプログラムおよびディジタル記憶媒体 Active JP6436916B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP13154741.6 2013-02-11
DE201310101300 DE102013101300A1 (de) 2013-02-11 2013-02-11 Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
EP13154741.6A EP2765528B1 (de) 2013-02-11 2013-02-11 Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE102013101300.7 2013-02-11
PCT/EP2014/052625 WO2014122320A2 (de) 2013-02-11 2014-02-11 Verändern eines signalwerts eines fpga zur laufzeit

Publications (2)

Publication Number Publication Date
JP2016517191A JP2016517191A (ja) 2016-06-09
JP6436916B2 true JP6436916B2 (ja) 2018-12-12

Family

ID=50073193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015556530A Active JP6436916B2 (ja) 2013-02-11 2014-02-11 ランタイムにfpgaの信号値を変更するための方法、当該方法を実施するためのデータ処理装置、コンピュータプログラムおよびディジタル記憶媒体

Country Status (5)

Country Link
US (1) US10311193B2 (ja)
EP (1) EP2954440B1 (ja)
JP (1) JP6436916B2 (ja)
CN (1) CN104981807B (ja)
WO (1) WO2014122320A2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3001318A1 (de) * 2014-09-24 2016-03-30 dSPACE digital signal processing and control engineering GmbH Bestimmung von Signalen für Readback aus FPGA
US9503094B1 (en) * 2015-10-05 2016-11-22 Altera Corporation Programmable logic device virtualization
US9904543B2 (en) * 2015-10-26 2018-02-27 Hewlett-Packard Development Company, L.P. Setting a build indicator to enable or disable a feature
EP3244326B1 (de) * 2016-05-10 2021-07-07 dSPACE digital signal processing and control engineering GmbH Verfahren zum erstellen einer fpga-netzliste
CN110795024B (zh) * 2019-10-12 2021-03-26 北京四方继保自动化股份有限公司 一种基于xml的保护设备通用人机交互系统及方法
CN112949235B (zh) * 2021-04-16 2022-07-12 山东高云半导体科技有限公司 电子设备的配置方法、装置、处理器及存储介质
EP4375869A1 (de) * 2022-11-25 2024-05-29 dSPACE GmbH Verfahren zum erstellen und bereitstellen eines fpga build results eines fpga-modells
CN116187241B (zh) * 2023-05-04 2023-08-11 中科亿海微电子科技(苏州)有限公司 一种fpga配置电路架构、配置方法、存储介质和电子设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5425036A (en) 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
US6292762B1 (en) 1998-07-13 2001-09-18 Compaq Computer Corporation Method for determining a random permutation of variables by applying a test function
US20060117274A1 (en) 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
US7240303B1 (en) 1999-11-30 2007-07-03 Synplicity, Inc. Hardware/software co-debugging in a hardware description language
US6453456B1 (en) 2000-03-22 2002-09-17 Xilinx, Inc. System and method for interactive implementation and testing of logic cores on a programmable logic device
US6373779B1 (en) * 2000-05-19 2002-04-16 Xilinx, Inc. Block RAM having multiple configurable write modes for use in a field programmable gate array
US6535043B2 (en) 2000-05-26 2003-03-18 Lattice Semiconductor Corp Clock signal selection system, method of generating a clock signal and programmable clock manager including same
US6931543B1 (en) * 2000-11-28 2005-08-16 Xilinx, Inc. Programmable logic device with decryption algorithm and decryption key
US6922665B1 (en) 2001-01-08 2005-07-26 Xilinx, Inc. Method and system for device-level simulation of a circuit design for a programmable logic device
US20030105620A1 (en) 2001-01-29 2003-06-05 Matt Bowen System, method and article of manufacture for interface constructs in a programming language capable of programming hardware architetures
US7827510B1 (en) 2002-06-07 2010-11-02 Synopsys, Inc. Enhanced hardware debugging with embedded FPGAS in a hardware description language
US20050209840A1 (en) 2004-01-09 2005-09-22 Mikhail Baklashov Method and apparatus for functional language temporal extensions, dynamic modeling, and verification in a system-level simulation environment
US7689726B1 (en) * 2004-10-01 2010-03-30 Xilinx, Inc. Bootable integrated circuit device for readback encoding of configuration data
US7353162B2 (en) 2005-02-11 2008-04-01 S2C, Inc. Scalable reconfigurable prototyping system and method
US7546572B1 (en) 2005-09-20 2009-06-09 Xilinx, Inc. Shared memory interface in a programmable logic device using partial reconfiguration
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US8234457B2 (en) * 2006-06-30 2012-07-31 Seagate Technology Llc Dynamic adaptive flushing of cached data
US7900168B2 (en) 2007-07-12 2011-03-01 The Mathworks, Inc. Customizable synthesis of tunable parameters for code generation
JP2009031933A (ja) 2007-07-25 2009-02-12 S2C Inc スケーラブル再構成可能型プロトタイプシステムと方法
US8352229B1 (en) 2009-01-26 2013-01-08 Xilinx, Inc. Reloadable just-in-time compilation simulation engine for high level modeling systems
CN101493809B (zh) * 2009-03-03 2010-09-08 哈尔滨工业大学 一种基于fpga的多核心星载计算机
CN102332307B (zh) * 2011-07-28 2015-08-05 中国空间技术研究院 Sram型fpga单粒子效应试验系统及方法
US20130046912A1 (en) 2011-08-18 2013-02-21 Maxeler Technologies, Ltd. Methods of monitoring operation of programmable logic
US8739089B2 (en) * 2011-08-29 2014-05-27 Synopsys, Inc. Systems and methods for increasing debugging visibility of prototyping systems
CN102520333A (zh) * 2011-12-15 2012-06-27 北京航空航天大学 一种对空间应用数字信号处理器进行单粒子翻转效应模拟的装置
CN102636744B (zh) * 2012-04-24 2014-06-11 中国科学院空间科学与应用研究中心 一种检测fpga单粒子效应与其时序特性关系的装置及方法

Also Published As

Publication number Publication date
WO2014122320A2 (de) 2014-08-14
EP2954440A2 (de) 2015-12-16
JP2016517191A (ja) 2016-06-09
WO2014122320A3 (de) 2015-01-15
CN104981807A (zh) 2015-10-14
CN104981807B (zh) 2019-04-23
EP2954440B1 (de) 2022-01-12
US10311193B2 (en) 2019-06-04
US20150347669A1 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
JP6436916B2 (ja) ランタイムにfpgaの信号値を変更するための方法、当該方法を実施するためのデータ処理装置、コンピュータプログラムおよびディジタル記憶媒体
JP6448195B2 (ja) ランタイムにfpgaの信号値にランダムにアクセスするための方法、データ処理装置、コンピュータプログラム、ディジタル記憶媒体及びfpgaビルドの実施方法
US9529946B1 (en) Performance estimation using configurable hardware emulation
US7707019B1 (en) Command buffering for hardware co-simulation
US9929734B2 (en) Method for changing the configuration of a programmable logic module
US10394989B2 (en) Method for creating an FPGA netlist
Gong et al. ReSim: A reusable library for RTL simulation of dynamic partial reconfiguration
Givargis et al. Parameterized system design
Schallenberg et al. OSSS+ R: A framework for application level modelling and synthesis of reconfigurable systems
US10318687B2 (en) Implementing a constant in FPGA code
Gong et al. Functional verification of dynamically reconfigurable FPGA-based systems
US10223077B2 (en) Determination of signals for readback from FPGA
US9898563B2 (en) Modeling memory in emulation based on cache
Kourfali et al. An integrated on-silicon verification method for FPGA overlays
JP2006309667A (ja) 動作合成検証装置及び方法
Kliem et al. Scalability evaluation of an FPGA-based multi-core architecture with hardware-enforced domain partitioning
US20190138310A1 (en) Method for reading out variables from an fpga
Caba et al. Rapid prototyping and verification of hardware modules generated using hls
Preußer et al. The portable open-source ip core and utility library poc
US9608871B1 (en) Intellectual property cores with traffic scenario data
JP2004310568A (ja) シミュレータ装置、シミュレーション方法および性能解析方法
US11151294B1 (en) Emulated register access in hybrid emulation
Gong et al. Modeling Reconfiguration
Gong et al. Verification Challenges
US9990452B2 (en) Low power corruption of memory in emulation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180507

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: 20181015

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181113

R150 Certificate of patent or registration of utility model

Ref document number: 6436916

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250