JP2019523915A - 割り当てリストを作成する方法 - Google Patents
割り当てリストを作成する方法 Download PDFInfo
- Publication number
- JP2019523915A JP2019523915A JP2018549857A JP2018549857A JP2019523915A JP 2019523915 A JP2019523915 A JP 2019523915A JP 2018549857 A JP2018549857 A JP 2018549857A JP 2018549857 A JP2018549857 A JP 2018549857A JP 2019523915 A JP2019523915 A JP 2019523915A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- register
- value
- fpga
- assigned
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/333—Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Logic Circuits (AREA)
Abstract
本発明は、割り当てリストを作成する方法に関しており、ここで割り当てリストは、FPGAソースコードに基づいて生成され、ここでソースコードは、第1の位置の少なくとも1つの第1の信号を使用し、ここで第1の信号には、少なくとも1つの第1のレジスタが割り当てられており、ここで割り当てリスト内では、第1の信号と第1のレジスタとが互いに割り当てられて示され、ここで第2の位置の第2の信号が、FPGAソースコード内で使用され、ここで第2の信号の値は、第1の計算規則に従って第1の信号の値から決定可能であることが自動的に識別され、ここで割り当てリスト内では、第2の信号、第1のレジスタおよび第1の計算規則が互いに割り当てられるように示される。
Description
本発明は、割り当てリストを作成する方法に関している。
複雑で動的なモデルのリアルタイムシミュレーションは、厳しい時間的周辺条件自体に基づいて、最新の計算ノードでも高い要求が課される。自動車のハードウェア・イン・ザ・ループ・シミュレーション(HiL)では、そのようなモデルはとりわけ、高速な制御ループが閉成されなければならない箇所で使用される。このことは、例えば、燃費低減または排ガス低減において、ますます重要な役割を果たす、シリンダ内圧センサのシミュレーションの場合に当て嵌まる。しかしながら、例えば電動モータのような高い動特性を有する閉ループ制御システムにおいても、短い周期時間と短いレイテンシとが不可欠である。実際にはこれらは、CPUベースのシミュレーションでは、もはや、ほぼ実現不可能である。
フィールドプログラマブルゲートアレイ(FPGA)は、モデルの動的部分の計算を担うことによって、リアルタイムシミュレーションにおいて計算ノードをサポートすることができる。高い柔軟性および複数の信号の並列処理が可能であることによって、FPGAを使用することによって、困難なリアルタイム要求も容易に満たされる。FPGAは、計算ノードのCPUに対するハードウェアアクセラレータとして用いられる。相応に、例えば、環境モデルの極めて動的な部分がFPGAに移され、このようにして、制御機器に対して、十分に正確かつ迅速な応答時間が保証され続ける。FPGAネットワークリストは、通常、ハードウェア記述言語で、FPGAモデルに基づいて、構築プロセスにおいて形成される。
閉ループ制御システムのモデルは、精度への要求が高まるにつれて、ますます複雑になり、これに伴って、操作も困難になる。自動車Hil環境では、このようなモデルは通常、The MathWorks Inc.のツールセット、MATLAB/Simulinkを用いて作成される。Simulinkは、このようなモデルの、ブロックダイアグラムの形態の、ブロックベースの概観を提供する。複数のモデル部分は、ブロックダイアグラムにおいて、複数のサブシステムにまとめられ、信号によって相互に結合される。ここで、これらのブロック間のデータフローは、信号線路によって表される。
FPGAベースのシミュレーションは、Xilinx System Generator(XSG)およびdSPACE社のFPGAプログラミングブロックセットを用いて、CPUベースのシミュレーションと同様に、ブロックダイアグラムにおいて、Simulinkによってモデリング可能である。
ただしCPUシミュレーションとは異なり、このモデルは、反復プログラミング言語に変換されず、顧客固有のデジタル回路を記述するFPGAネットワークリストに変換される。このFPGAネットワークリストは、FPGAコンフィギュレーションデータストリームに変換可能である。
この割り当てリストは、FPGAの実行時間中の信号値の読み出しを可能にするために使用される。ソースコードからは、まずネットワークリストが生成され、次いでこのネットワークリストがビットストリームに変換され、このビットストリームがFPGA上にロードされる。
この変換では、FPGAのどのレジスタが、ソースコードのどのレジスタによって使用されるかが、つまりソースコードのどの信号が実行時間中にFPGAのどのレジスタに記憶されるかがトレースされる。所定の信号の値がFPGAから読み出されるべき場合には、割り当てリストを用いて、FPGAのどのレジスタが読み出される必要があるかを決定することができる。この読み出し過程は、様々な技術を介して実現することができる。例えば、レジスタは、リードバックインターフェースを介して読み出すことが可能であり、このことは、欧州特許出願公開第2765528号明細書(EP2765528A1)に記載されている。ここでは、FPGAソースコードに記述された機能によって使用されるレジスタも、読み出しのための信号値の記憶のためにのみ使用され、FPGAソースコードに記述された機能にとって重要でないレジスタも読み出すことが可能である。代替的に、レジスタは、アドレスデコーダを介して読み出すことも可能である。代替的に、レジスタは、シフトレジスタチェーンに接続して順次読み出すことも可能である。
この変換では、FPGAのどのレジスタが、ソースコードのどのレジスタによって使用されるかが、つまりソースコードのどの信号が実行時間中にFPGAのどのレジスタに記憶されるかがトレースされる。所定の信号の値がFPGAから読み出されるべき場合には、割り当てリストを用いて、FPGAのどのレジスタが読み出される必要があるかを決定することができる。この読み出し過程は、様々な技術を介して実現することができる。例えば、レジスタは、リードバックインターフェースを介して読み出すことが可能であり、このことは、欧州特許出願公開第2765528号明細書(EP2765528A1)に記載されている。ここでは、FPGAソースコードに記述された機能によって使用されるレジスタも、読み出しのための信号値の記憶のためにのみ使用され、FPGAソースコードに記述された機能にとって重要でないレジスタも読み出すことが可能である。代替的に、レジスタは、アドレスデコーダを介して読み出すことも可能である。代替的に、レジスタは、シフトレジスタチェーンに接続して順次読み出すことも可能である。
本発明の課題は、従来技術を発展構成することである。
本発明は、割り当てリストを作成する方法に関しており、
ここで割り当てリストは、FPGAソースコードに基づいて生成され、
ここでソースコードは、第1の位置の少なくとも1つの第1の信号を使用し、
ここで第1の信号には、少なくとも1つの第1のレジスタが割り当てられており、
ここで割り当てリスト内では、第1の信号と第1のレジスタとが互いに割り当てられて示され、
ここで第2の位置の第2の信号が、FPGAソースコード内で使用され、
ここで第2の信号の値は、第1の計算規則に従って第1の信号の値から決定可能であることが自動的に識別され、
ここで割り当てリスト内では、第2の信号、第1のレジスタおよび第1の計算規則が互いに割り当てられるように示される。
ここで割り当てリストは、FPGAソースコードに基づいて生成され、
ここでソースコードは、第1の位置の少なくとも1つの第1の信号を使用し、
ここで第1の信号には、少なくとも1つの第1のレジスタが割り当てられており、
ここで割り当てリスト内では、第1の信号と第1のレジスタとが互いに割り当てられて示され、
ここで第2の位置の第2の信号が、FPGAソースコード内で使用され、
ここで第2の信号の値は、第1の計算規則に従って第1の信号の値から決定可能であることが自動的に識別され、
ここで割り当てリスト内では、第2の信号、第1のレジスタおよび第1の計算規則が互いに割り当てられるように示される。
本発明による方法によって作成された割り当てリストは、実行時間中の信号値の読み出しの場合に有利である。実行時間中に、第1の信号の値が第1のレジスタに記憶される。実行時間中に、信号値は、上述のように様々なタイプで読み出すことができる。計算規則により、第2の信号に割り当てられたレジスタを読み出す必要はない。第1の信号値および第2の信号値が読み出されるべき場合に、読み出す必要があるのは第1のレジスタのみで、このことにより時間の節約がもたらされる。
本発明による割り当てリストは、必ずしも第2の信号にレジスタが割り当てられている必要はない。第2の信号の値が読み出されるべき場合には、第1の信号に割り当てられている第1のレジスタが読み出され、第2の信号の値は、第1のレジスタの読み出された値から計算規則に応じて決定される。第2の信号は、レジスタに記憶される必要がないので、レジスタを節約することができる。ここではFPGAの実行時間中にレジスタに記憶されない信号値は決定可能である。
割り当てリストには、信号、レジスタ、および計算規則の割り当てが含まれている。したがって、リストの各対象は、少なくとも3つの要素を含む。したがって、割り当てリストは、割り当てテーブルとして把握することもできる。例えば、各行には1つの割り当てが記述され、第1の列には各信号が、第2の列には割り当てられたレジスタが、そして第3の列には、レジスタ値から信号が算出される計算規則が記述され得る。
本発明の一実施形態では、第1の信号および第2の信号は同一であり、計算規則は同一性である。
この場合、これらの信号は同一であるため、実行時間中のそれらの値も同一である。つまり、第2の信号の値を決定する際に、第1の信号値を引き継ぐことができる。
代替的な実施形態では、第2の信号は、第1の信号のビットのサブセットからなり、割り当て規則は、第2信号の値を記述する第1信号のビットを定義する。
この場合、割り当て規則によって定義されるビットのみが、第2の信号の値の決定の際に使用される。他のビットは破棄される。第1の信号値が不要の場合には、不要なビットの読み出しを省くことができる。
代替的な実施形態では、第2の信号は、1つ以上のビット保持算術演算によってのみ第1の信号に接続される。
ビット保持算術演算とは、ビット列の値が変化しないこと、つまりビット列が単にシフトされることを意味するものと理解されたい。これはシフティングとも称され、あるいは別の解釈では、これはキャスティングとも称される。
代替的な実施形態では、第2の信号は、1つ以上のビット変更算術演算によって第1の信号に接続される。
第2の信号値を決定するために、第1の信号の値が読み出され、ビット変更算術演算がシミュレートされる。
好ましい実施形態では、ビット変更算術演算は、同じクロックの計算結果を出力する。
第2の信号の信号値を決定するためには、第1の信号値がFPGAのレジスタから読み出された後で算術演算をシミュレートしなければならない。算術演算の結果が同じクロックで存在する場合には、算術演算のシミュレートにより、第1の信号値および第2の信号値が同じクロックであることが分かる。このことは有利である。なぜなら、多くの場合、FPGAの状態を決定するために、多数の変数の一貫したマッピングを作成する必要があるからである。
一実施形態では、ビット変更算術演算は組み合わせ論理演算である。
クロック遅延のない組み合わせ論理演算、つまりそこでは同じクロックの結果が存在している論理演算は、例えば、
−論理演算(NOT,AND,NAND,OR,NOR,XOR)
−ルックアップテーブル演算
−パイプライン段のない単一算術演算(SUM,SUBTRACT,…)
であり、ビット保持算術演算の場合の手順に類似して、これらのビット変更算術演算の結果も同様に、入力変数への参照によって決定することができる。
−論理演算(NOT,AND,NAND,OR,NOR,XOR)
−ルックアップテーブル演算
−パイプライン段のない単一算術演算(SUM,SUBTRACT,…)
であり、ビット保持算術演算の場合の手順に類似して、これらのビット変更算術演算の結果も同様に、入力変数への参照によって決定することができる。
一実施形態では、ビット変更算術演算は、第1の信号を第3の信号で清算し、ここでこの第3の信号には第3のレジスタが割り当てられており、ここで割り当てリスト内では第1の信号に付加的に第3のレジスタが割り当てられ、ここで第1の計算規則は、第2の信号の値がどのように第1の信号の値と第3の信号の値とから算出可能であるかを示す。
一般に、複数の入力側を有する算術演算では、各入力信号がレジスタに記憶される場合、これらの入力信号の値から1つ以上の出力信号を決定することができる。つまり複数の出力信号を読み出す必要はない。また、算術演算は、複数のより小さな算術演算から統合されてもよい。例えば、2つの信号値の加算に続けて、当該和と第3の値との乗算は、3つの入力信号と1つの出力信号との算術演算として把握することができる。
第3のレジスタは、実行時間中に第3の信号の値を記憶するために用いられる。次いで、実行時間中は、第1の信号の値を第1のレジスタから読み出すことができ、第3の信号の値を第3のレジスタから読み出すことができる。次いで、ビット変更算術演算の検算により、第2の信号の値の読み出しを要することなく、第2の信号の値を決定することができる。
さらなる実施形態では、FPGAソースコードの第2の信号に、第2のレジスタが割り当てられており、ここで割り当てリスト内では、第2のレジスタが第1のレジスタおよび計算規則に対して付加的に第2の信号に割り当てられるように示される。
第2のレジスタにより、第2の信号値の代替的な決定メソッドが提供される。次いで、第2の信号値は、割り当てリストに基づき、第1のレジスタの読み出しと計算規則とによって、または第2のレジスタの読み出しを介して、決定することができる。2つの決定メソッドの2つの結果を比較することにより、エラーの示唆を検出することができる。それによって気付くことができるエラーは、例えば、
−第1の信号の値から第2の信号値を検算する際のCPUのエラー
−FPGAの計算エラー(これにより第2の値の計算には誤りがある)
−FPGA上のソースコードの実装におけるエラー
などである。
−第1の信号の値から第2の信号値を検算する際のCPUのエラー
−FPGAの計算エラー(これにより第2の値の計算には誤りがある)
−FPGA上のソースコードの実装におけるエラー
などである。
つまり、第2のレジスタにより、レジスタを節約できるという上述の利点はなくなるが、これに対して、割り当て規則により、エラー識別の手段は得られる。
さらなる実施形態では、第2のレジスタの読み出し持続時間および第2の信号値の計算持続時間が第1の信号値から推定され、当該推定に基づいて、より高速なメソッドが好ましいメソッドとして割り当てリストに示される。
実行時間中に、どのメソッドが適用されるべきかを非常に迅速に判別できることは有利である。
レジスタがシフトレジスタチェーンかまたはアドレスデコーダを介した読み出し用にセットアップされているならば、読み出しのために要する持続時間は、読み出し機構の特性から決定することができる。レジスタがリードバックインターフェースを介した読み出し用にセットアップされているならば、読み出し持続時間の良好な推定は、ビットストリーム内の値のビット位置が既知の場合、ネットワークリストの作成の後で初めて可能になる。
第1の信号値からの第2の信号値の計算持続時間は、既知のプロセッサにおいて、所要のプロセッサ命令とそれらの実行持続時間とから推定することができる。代替的に、この計算持続時間は、ターゲットプロセッサまたは同等のプロセッサ上で経験的に決定することもできる。
好ましい実施形態では、FPGAソースコードはFPGA上に実装され、ここで実行時間中に、第1のレジスタがFPGAから読み出され、第2の信号値は、計算規則を用いて割り当てリストから決定される。
実行時間中に、第1の信号の値が第1のレジスタに記憶される。実行時間中に、信号値が読み出される。レジスタの読み出しのための可能な技術は上述されている。計算規則により、第2の信号に割り当てられているレジスタを読み出す必要はない。そこでは第1のレジスタのみが読み出され、第2の値は計算規則を用いて決定される。このことは時間の節約をもたらす。第2の信号をレジスタ内に記憶させる必要がないので、レジスタは節約可能になる。
さらなる実施形態では、FPGAソースコード中の第2の信号に第2のレジスタが割り当てられており、ここで割り当てリスト内では、第1のレジスタと計算規則とに対して付加的に第2のレジスタが、第2の信号に割り当てられるように示され、ここで実行時間中に、第2の信号値が第2のレジスタから読み出されるかまたは第2の信号値が第1の信号値から計算規則を介して決定されるか否かが自動的に判別される。
第2の信号値の決定の際には、実行時間条件が考慮され得ると有利である。第1の信号値も決定されるべき場合には、第2のレジスタから第2の信号値を読み出すよりも、第1の信号値から第2の信号値を算出する方が一般に速いはずである。第1の信号値が決定されるべきでない場合は、第1の信号値を第1のレジスタから読み出し、そこから第2の信号値を算出するよりも、第2のレジスタから第2の信号値を読み出す方が一般に速いはずである。
いくつかの開発環境では、複数の信号を1つのバスに統合することができる。そのような統合された信号のもとでは、バスの信号毎に、信号値が他のレジスタ値から計算規則を用いて決定可能か否かが個別に決定される。それに応じて各信号は、割り当てリスト内で個別に処理される。
本発明はさらに、実行時間中に信号値をFPGAから決定する方法に関しており、
ここで、割り当てリストが使用され、
ここで、第1の信号の第1の値が実行時間中に第1のレジスタから読み出され、
ここで、前記割り当てリストにおいて、第1の信号、第1のレジスタ、第2の信号、および第1の計算規則が、互いに割り当てられて示され、
ここで、第2の信号の第2の値は、第1の計算規則を介して第1の値から決定される。
ここで、割り当てリストが使用され、
ここで、第1の信号の第1の値が実行時間中に第1のレジスタから読み出され、
ここで、前記割り当てリストにおいて、第1の信号、第1のレジスタ、第2の信号、および第1の計算規則が、互いに割り当てられて示され、
ここで、第2の信号の第2の値は、第1の計算規則を介して第1の値から決定される。
この方法の利点は、第2の信号の値を読み出す必要がないことである。付加的に、レジスタに記憶されていない値を決定することもできる。
信号値の決定のための割り当てリストは、記載された方法に従って作成することができる。
以下では本発明を、図面を参照してより詳細に説明する。ここでは、同様の部分には、同じ参照番号が付けられている。図示された実施形態は著しく概略化されており、すなわち、間隔および水平方向および垂直方向の延在は縮尺通りではなく、そうでないことが明記されていない限り、導出可能な幾何学的相互関係も有していない。
図1は、2つの相互にネストされたサブシステム10,11からなるグラフィカルFPGAソースコード1を示す。第1のサブシステム10は、第1の論理ブロック13および第2の論理ブロック14を含む。第1の論理ブロック13は、2つの入力信号14,15と第1の出力信号2とを有する。第1の出力信号2には、第1のレジスタ3が割り当てられている。この第1のレジスタ3は、実行時間中に第1の出力信号2の値を記憶し、実行時間中に当該値の読み出しを可能にするために用いられる。
第1のサブシステム10は、第2のサブシステム11に埋め込まれている。第1のサブシステム10の第1の出力信号4は、第1のサブシステム10内の第1の論理ブロック13の第1の出力信号2と同一である。割り当てリストの作成の際には、このことが識別され、第1のサブシステムの第1の出力信号4に、第1のサブシステム10内の第1のレジスタ3が割り当てられる。第1のサブシステム10の第1の出力信号4と、第1のレジスタ3と、の間の割り当て規則として、同一性が割り当てリストに示される。それゆえ、第1のサブシステム10の第1の出力信号4に割り当てられている第2のレジスタ5は、実装の際に削減することができる。これにより、FPGA内のリソースが節約される。代替的に、第2のレジスタ5を、FPGA内に実装することで、第1のサブシステム10の第1の出力信号4の値をこの第2のレジスタ5から読み出すことができる。このことは、実行時間中のエラーを識別する手段を提供する。
図2は、さらなるグラフィカルFPGAソースコード1を示す。以下では、図1との相違点のみを説明する。第1の信号2は、この実施例では、いわゆるスライスブロック16によって第2の信号6に継続処理される。このスライスブロック16を用いて、信号の不要なビットを破棄することができる。例えば、第1の信号2は20ビットの大きさで、それに対して第2の信号6は12ビットのみであってもよい。なぜならこの12ビットのみが必要になるからである。第2の信号6は、図1の第2の信号2と同様にレジスタに記憶できるかもしれないが、このことは図2では示されていない。
図3は、さらなるグラフィカルFPGAソースコード1を示す。以下では、図2との相違点のみを説明する。第1の信号2は、この実施例では、いわゆる再解釈ブロック17によって第2の値7に継続処理される。再解釈ブロック17は、信号のビット列は不変のままにさせるが、プログラム内の信号の論理的解釈には影響を与える。例えば、第1の信号2は35ビットの整数を表し、それに対して第2の信号7は、15ビットの仮数と10ビットの指数とを有する浮動小数点数とすることができる。第2の信号7は、図1の第2の信号2と同様にレジスタに記憶できるかもしれないが、このことは図3では示されていない。
図4は、さらなるグラフィカルFPGAソースコード1を示す。以下では、図2との相違点のみを説明する。第1の信号2は、この実施例では、いわゆる減算ブロック18によって第2の値8に継続処理される。この減算ブロック18は、第1の信号2から定数19を減算する。
定数19の値は、第1の信号2の第1の値のように第2の信号8の値を決定するために読み出される必要はない。定数19の値は、割り当てリスト内にまたは他の方法で固定的にファイルすることができ、それによって、第2の信号8の値の計算の際に定数19の値にアクセスすることができる。代替的に、定数19の値は、FPGA構築ツールまたはハードウェア内のエラーを排除するために、一度FPGAから読み出すこともできる。代替的にまたは付加的に、定数19の値は、環境条件またはハードウェアエラーによる誤差を除外するために、所定の間隔でFPGAから読み出すこともできる。
図5は、さらなるグラフィカルFPGAソースコード1を示す。以下では、図4との相違点のみを説明する。第1の信号2は、この実施例では、いわゆる加算ブロック20によって第2の値9に継続処理される。この加算ブロック20は、第1の信号2に第3の信号22を加算する。第3の信号22には、第3のレジスタ23が割り当てられている。この第3のレジスタ23は、実行時間中に第3の信号22の値を記憶するようにセットアップされている。実行時間中には、第1の信号2の値が第1のレジスタ3から読み出され、第3の信号22の値が第3のレジスタ23から読み出される。第2の信号9の値は、これらの読み出された値の加算によって決定することができる。
図6は、本発明による方法のステップを示す。いくつかのステップは必須で、他のステップは任意である。第1の必須ステップS110では、ソースコード1が検査される。その際にはソースコード1で定義された信号が決定される。第2の必須ステップS120では、ソースコード1内の第1の信号2が決定される。第3の必須ステップS130では、どのレジスタ3に第2のステップS120で決定された第1の信号2が実行時間中に記憶されるかが決定される。第1の信号2に第1のレジスタ3が割り当てられていない場合、第1のレジスタ3はソースコードに挿入される。付加的に、第1のレジスタ3に対して、分離機構をソースコードに挿入してセットアップすることができ、あるいはシャドウレジスタ10を、既に挿入されている分離機構に接続させることができる。分離機構は、例えば、レジスタのクロック線路またはレジスタのイネーブル信号を中断することができる。この分離機構は、レジスタを実行時間中に割り当てられた信号から一時的に分離させることができ、それによって、レジスタに記憶された値が分離中に更新されないようになる。好ましくは、複数のレジスタが同じ分離機構に接続される。これにより、複数のレジスタを同時に分離させることができ、信号値の一貫したセットをこれらのレジスタに記憶させることができる。このことは、第2の信号が複数の信号の値から算出されるべき場合に特に有利である。第4の必須ステップS140では、第2の信号4,6,7,8,9が決定され、第5の必須ステップS150では、計算規則が作成され、この計算規則を用いて、第4のステップS140で決定された第2の信号4,6,7,8,9は、第2のステップS120で決定された第1の信号2の値から決定することができる。この計算規則は、一般に、第1の信号2と第2の信号4,6,7,8,9の間のソースコード1において定義された計算の引き継ぎである。任意の第6のステップS155では、どのレジスタ5に第2の信号4,6,7,8,9が記憶されるかが決定される。そのような第2のレジスタ5が決定できる場合には、それが第7のステップ160で使用される。そのような第2のレジスタ5が決定できない場合には、第2のレジスタ5は、第3のステップS130からの第1のレジスタ3に類似して挿入される。
任意の第7のステップS160では、第3のステップS130で決定された第1のレジスタ3のために、かつ/または第6のステップS155で決定された第2のレジスタのために、読み出し機構がソースコードに挿入される。
任意の第8のステップS170では、読み出し機構が、第1のレジスタ3のためにソースコードに挿入されてセットアップされる。この読み出し機構の挿入およびセットアップは、例えば、ソースコードに実装ツールへの指示が挿入されることや、ネットワークリストがロードされるべきFPGA上で、リードバックインターフェースを介した読み出しを可能にさせることからなっていてもよい。第1のレジスタ3の読み出しがそのような機構なしで可能である場合には、読み出し機構の挿入は不要である。また読み出し機構を、この方法の後半で初めて、ソースコードから作成されたFPGAプログラムに挿入することが想定されてもよい。
第2〜第8のステップは、複数の信号にレジスタと計算規則とを割り当てるために、多重に繰り返すことができる。
好ましくは、第2〜第8のステップは、自動化されてアルゴリズムにより繰り返し処理され、ここでのアルゴリズムは、ソースコードで定義されたすべての信号を系統的に処理する。
任意の第9のステップS180では、ソースコードからネットワークリストが合成される。任意の第10のステップS190では、第9のステップS180で生成されたネットワークリストがビットストリームに変換され、次いで、このビットストリームは、任意の第11のステップS200でFPGA上にロードされ、そこで実行可能となる。次いで、FPGAの実行時間中は、任意の第12のステップS210において、第3のステップS130で決定された第1のレジスタ3が読み出し可能となる。次いで、第2の信号4,6,7,8,9の値は、読み出された値から計算規則を介して決定することができる。
Claims (14)
- 割り当てリストを作成する方法であって、
前記割り当てリストは、FPGAソースコード(1)に基づいて生成され、
前記ソースコード(1)は、第1の位置の少なくとも1つの第1の信号(2)を使用し、
前記第1の信号(2)には、少なくとも1つの第1のレジスタ(3)が割り当てられており、
前記割り当てリスト内では、前記第1の信号(2)と前記第1のレジスタ(3)とが互いに割り当てられるように示される方法において、
第2の位置の第2の信号(4,6,7,8,9)は、前記FPGAソースコード(1)内で使用され、
前記第2の信号(4,6,7,8,9)の値は、第1の計算規則に従って前記第1の信号(2)の値から決定可能であることが自動的に識別され、
前記割り当てリスト内では、前記第2の信号(4)、前記第1のレジスタ(3)および前記第1の計算規則が互いに割り当てられるように示される、
ことを特徴とする方法。 - 前記第1の信号(2)および前記第2の信号(4)は、同一であり、前記第1の計算規則は、同一性である、
請求項1記載の方法。 - 前記第2の信号(6)は、前記第1の信号(2)のビットのサブセットからなり、割り当て規則は、前記第2の信号(6)の値を記述する前記第1の信号(2)のビットを定義する、
請求項1記載の方法。 - 前記第2の信号(7)は、1つ以上のビット保持算術演算(7)によってのみ前記第1の信号(2)に接続される、
請求項1記載の方法。 - 前記第2の信号(8,9)は、1つ以上のビット変更算術演算(18,19)によって前記第1の信号(2)に接続される、
請求項1記載の方法。 - 前記ビット変更算術演算(18,19)は、同じクロックの計算結果を出力する、
請求項5記載の方法。 - 前記ビット変更算術演算(18,19)は、組み合わせ論理演算である、
請求項5または6記載の方法。 - 前記ビット変更算術演算(19)は、前記第1の信号(2)を第3の信号(22)で清算し、前記第3の信号(22)には第3のレジスタ(23)が割り当てられており、前記割り当てリスト内では、前記第1の信号(2)に付加的に前記第3のレジスタ(23)が割り当てられ、前記第1の計算規則は、前記第2の信号(9)の値がどのように前記第1の信号(2)の値と前記第3の信号(22)の値とから算出可能であるかを示す、
請求項5から7までのいずれか1項記載の方法。 - 前記FPGAソースコードの前記第2の信号(4,6,7,8,9)に、第2のレジスタ(5)が割り当てられており、前記割り当てリスト内では、前記第2のレジスタ(5)が前記第1のレジスタ(3)および前記第1の計算規則に対して付加的に前記第2の信号(4,6,7,8,9)に割り当てられるように示される、
請求項1から8までのいずれか1項記載の方法。 - 前記第2のレジスタ(5)の読み出し持続時間および前記第2の信号(4,6,7,8,9)の計算持続時間は、前記第1の信号(2)から推定され、前記推定に基づいて、より高速なメソッドが好ましいメソッドとして前記割り当てリスト内に示される、
請求項9記載の方法。 - 前記FPGAソースコードは、FPGA上に実装され、実行時間中に、前記第1のレジスタ(3)は、前記FPGAから読み出され、前記第2の信号(4,6,7,8,9)は、前記第1の計算規則を用いて前記割り当てリストから決定される、
請求項1から10までのいずれか1項記載の方法。 - 前記FPGAソースコード中の前記第2の信号(4,6,7,8,9)に第2のレジスタ(5)が割り当てられており、前記割り当てリスト内で、前記第1のレジスタ(3)と前記第1の計算規則とに対して付加的に前記第2のレジスタ(5)が、前記第2の信号(4,6,7,8,9)に割り当てられるように示され、実行時間中に、前記第2の信号(4,6,7,8,9)が前記第2のレジスタ(5)から読み出されるか否かまたは前記第2の信号(4,6,7,8,9)が前記第1の信号(2)から前記第1の計算規則を介して決定されるか否かが自動的に判別される、
請求項11記載の方法。 - 実行時間中に信号値をFPGAから決定する方法であって、
割り当てリストが使用され、
第1の信号(2)の第1の値が、実行時間中に第1のレジスタ(3)から読み出される方法において、
前記割り当てリスト内で、前記第1の信号(2)、前記第1のレジスタ(3)、第2の信号(4)および第1の計算規則が、互いに割り当てられて示され、
前記第2の信号(4)の第2の値は、前記第1の計算規則を介して前記第1の値から決定される、
ことを特徴とする方法。 - 前記割り当てリストは、請求項1から12までのいずれか1項記載の方法によって生成される、
請求項13記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16168901.3 | 2016-05-10 | ||
EP16168901.3A EP3244327A1 (de) | 2016-05-10 | 2016-05-10 | Verfahren zum erstellen einer zuordnungsliste |
PCT/EP2017/060346 WO2017194343A1 (de) | 2016-05-10 | 2017-05-02 | Verfahren zum erstellen einer zuordnungsliste |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019523915A true JP2019523915A (ja) | 2019-08-29 |
Family
ID=55967105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018549857A Pending JP2019523915A (ja) | 2016-05-10 | 2017-05-02 | 割り当てリストを作成する方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11586793B2 (ja) |
EP (2) | EP3244327A1 (ja) |
JP (1) | JP2019523915A (ja) |
CN (1) | CN108780470B (ja) |
DE (1) | DE112017002401A5 (ja) |
WO (1) | WO2017194343A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014154173A (ja) * | 2013-02-11 | 2014-08-25 | Dspace Digital Signal Processing & Control Engineering Gmbh | ランタイムにfpgaの信号値にランダムにアクセスするための方法、データ処理装置、コンピュータプログラム、ディジタル記憶媒体及びfpgaビルドの実施方法 |
JP2016071883A (ja) * | 2014-09-24 | 2016-05-09 | ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングdspace digital signal processing and control engineering GmbH | Fpgaからリードバックするための信号の特定 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9251300B2 (en) * | 2013-10-25 | 2016-02-02 | Altera Corporation | Methods and tools for designing integrated circuits with auto-pipelining capabilities |
-
2016
- 2016-05-10 EP EP16168901.3A patent/EP3244327A1/de not_active Withdrawn
-
2017
- 2017-05-02 CN CN201780015065.5A patent/CN108780470B/zh active Active
- 2017-05-02 DE DE112017002401.3T patent/DE112017002401A5/de not_active Withdrawn
- 2017-05-02 EP EP17719635.9A patent/EP3455751B1/de active Active
- 2017-05-02 JP JP2018549857A patent/JP2019523915A/ja active Pending
- 2017-05-02 WO PCT/EP2017/060346 patent/WO2017194343A1/de unknown
-
2018
- 2018-11-13 US US16/188,893 patent/US11586793B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014154173A (ja) * | 2013-02-11 | 2014-08-25 | Dspace Digital Signal Processing & Control Engineering Gmbh | ランタイムにfpgaの信号値にランダムにアクセスするための方法、データ処理装置、コンピュータプログラム、ディジタル記憶媒体及びfpgaビルドの実施方法 |
JP2016071883A (ja) * | 2014-09-24 | 2016-05-09 | ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングdspace digital signal processing and control engineering GmbH | Fpgaからリードバックするための信号の特定 |
Also Published As
Publication number | Publication date |
---|---|
EP3244327A1 (de) | 2017-11-15 |
US11586793B2 (en) | 2023-02-21 |
CN108780470B (zh) | 2023-04-04 |
WO2017194343A1 (de) | 2017-11-16 |
CN108780470A (zh) | 2018-11-09 |
EP3455751B1 (de) | 2021-07-07 |
DE112017002401A5 (de) | 2019-01-24 |
EP3455751A1 (de) | 2019-03-20 |
US20190147129A1 (en) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | An analytical framework for evaluating the error characteristics of approximate adders | |
US10606970B2 (en) | Selection of corners and/or margins using statistical static timing analysis of an integrated circuit | |
CN107357948B (zh) | 用于建立fpga网表的方法 | |
JP5779237B2 (ja) | 合成中に非同期および同期リセット解除を実行するための方法および装置 | |
Brock et al. | Formally specifying and mechanically verifying programs for the Motorola complex arithmetic processor DSP | |
Lorenz et al. | Data-and state-dependent power characterisation and simulation of black-box RTL IP components at system level | |
JP2019523915A (ja) | 割り当てリストを作成する方法 | |
JP6682036B2 (ja) | 規模算出装置及び規模算出プログラム | |
JP2009140222A (ja) | Lsiの電力見積方法及びその装置 | |
JP6649731B2 (ja) | Fpgaからリードバックするための信号の特定 | |
US7051312B1 (en) | Upper-bound calculation for placed circuit design performance | |
US11023357B1 (en) | Method and system for sequential equivalence checking | |
US9600613B1 (en) | Block-level code coverage in simulation of circuit designs | |
JP3171182B2 (ja) | 機能合成方法,機能合成装置およびその記録媒体 | |
TWI608372B (zh) | 電力狀態覆蓋度量標準及其估計方法 | |
JP2005129054A (ja) | 回路設計方法 | |
US10853546B1 (en) | Method and system for sequential equivalence checking | |
US20090326901A1 (en) | Apparatus and method for estimating change amount in register transfer level structure and computer-readable recording medium | |
US20150213168A1 (en) | Logic equivalency check using vector stream event simulation | |
Novo et al. | Accuracy vs speed tradeoffs in the estimation of fixed-point errors on linear time-invariant systems | |
Severens et al. | Estimating circuit delays in FPGAs after technology mapping | |
Wang et al. | Architectural error prediction using probabilistic error masking matrices | |
JP6394278B2 (ja) | 有限状態機械の設計検証装置、設計検証方法、及び設計検証プログラム | |
Bhaghath et al. | A comparison on timing analysis using probabilistic approaches | |
Will | CAE-based Robust Design Optimization (RDO) in the virtual product development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210308 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20211108 |