(57)【要約】  本発明は、割り当てリストを作成する方法に関しており、ここで割り当てリストは、ＦＰＧＡソースコードに基づいて生成され、ここでソースコードは、第１の位置の少なくとも１つの第１の信号を使用し、ここで第１の信号には、少なくとも１つの第１のレジスタが割り当てられており、ここで割り当てリスト内では、第１の信号と第１のレジスタとが互いに割り当てられて示され、ここで第２の位置の第２の信号が、ＦＰＧＡソースコード内で使用され、ここで第２の信号の値は、第１の計算規則に従って第１の信号の値から決定可能であることが自動的に識別され、ここで割り当てリスト内では、第２の信号、第１のレジスタおよび第１の計算規則が互いに割り当てられるように示される。
2019523915.tif 000002
【特許請求の範囲】
【請求項１】
割り当てリストを作成する方法であって、
前記割り当てリストは、ＦＰＧＡソースコード（１）に基づいて生成され、
前記ソースコード（１）は、第１の位置の少なくとも１つの第１の信号（２）を使用し、
前記第１の信号（２）には、少なくとも１つの第１のレジスタ（３）が割り当てられており、
前記割り当てリスト内では、前記第１の信号（２）と前記第１のレジスタ（３）とが互いに割り当てられるように示される方法において、
第２の位置の第２の信号（４，６，７，８，９）は、前記ＦＰＧＡソースコード（１）内で使用され、
前記第２の信号（４，６，７，８，９）の値は、第１の計算規則に従って前記第１の信号（２）の値から決定可能であることが自動的に識別され、
前記割り当てリスト内では、前記第２の信号（４）、前記第１のレジスタ（３）および前記第１の計算規則が互いに割り当てられるように示される、
ことを特徴とする方法。
【請求項２】
前記第１の信号（２）および前記第２の信号（４）は、同一であり、前記第１の計算規則は、同一性である、
請求項１記載の方法。
【請求項３】
前記第２の信号（６）は、前記第１の信号（２）のビットのサブセットからなり、割り当て規則は、前記第２の信号（６）の値を記述する前記第１の信号（２）のビットを定義する、
請求項１記載の方法。
【請求項４】
前記第２の信号（７）は、１つ以上のビット保持算術演算（７）によってのみ前記第１の信号（２）に接続される、
請求項１記載の方法。
【請求項５】
前記第２の信号（８，９）は、１つ以上のビット変更算術演算（１８，１９）によって前記第１の信号（２）に接続される、
請求項１記載の方法。
【請求項６】
前記ビット変更算術演算（１８，１９）は、同じクロックの計算結果を出力する、
請求項５記載の方法。
【請求項７】
前記ビット変更算術演算（１８，１９）は、組み合わせ論理演算である、
請求項５または６記載の方法。
【請求項８】
前記ビット変更算術演算（１９）は、前記第１の信号（２）を第３の信号（２２）で清算し、前記第３の信号（２２）には第３のレジスタ（２３）が割り当てられており、前記割り当てリスト内では、前記第１の信号（２）に付加的に前記第３のレジスタ（２３）が割り当てられ、前記第１の計算規則は、前記第２の信号（９）の値がどのように前記第１の信号（２）の値と前記第３の信号（２２）の値とから算出可能であるかを示す、
請求項５から７までのいずれか１項記載の方法。
【請求項９】
前記ＦＰＧＡソースコードの前記第２の信号（４，６，７，８，９）に、第２のレジスタ（５）が割り当てられており、前記割り当てリスト内では、前記第２のレジスタ（５）が前記第１のレジスタ（３）および前記第１の計算規則に対して付加的に前記第２の信号（４，６，７，８，９）に割り当てられるように示される、
請求項１から８までのいずれか１項記載の方法。
【請求項１０】
前記第２のレジスタ（５）の読み出し持続時間および前記第２の信号（４，６，７，８，９）の計算持続時間は、前記第１の信号（２）から推定され、前記推定に基づいて、より高速なメソッドが好ましいメソッドとして前記割り当てリスト内に示される、
請求項９記載の方法。
【請求項１１】
前記ＦＰＧＡソースコードは、ＦＰＧＡ上に実装され、実行時間中に、前記第１のレジスタ（３）は、前記ＦＰＧＡから読み出され、前記第２の信号（４，６，７，８，９）は、前記第１の計算規則を用いて前記割り当てリストから決定される、
請求項１から１０までのいずれか１項記載の方法。
【請求項１２】
前記ＦＰＧＡソースコード中の前記第２の信号（４，６，７，８，９）に第２のレジスタ（５）が割り当てられており、前記割り当てリスト内で、前記第１のレジスタ（３）と前記第１の計算規則とに対して付加的に前記第２のレジスタ（５）が、前記第２の信号（４，６，７，８，９）に割り当てられるように示され、実行時間中に、前記第２の信号（４，６，７，８，９）が前記第２のレジスタ（５）から読み出されるか否かまたは前記第２の信号（４，６，７，８，９）が前記第１の信号（２）から前記第１の計算規則を介して決定されるか否かが自動的に判別される、
請求項１１記載の方法。
【請求項１３】
実行時間中に信号値をＦＰＧＡから決定する方法であって、
割り当てリストが使用され、
第１の信号（２）の第１の値が、実行時間中に第１のレジスタ（３）から読み出される方法において、
前記割り当てリスト内で、前記第１の信号（２）、前記第１のレジスタ（３）、第２の信号（４）および第１の計算規則が、互いに割り当てられて示され、
前記第２の信号（４）の第２の値は、前記第１の計算規則を介して前記第１の値から決定される、
ことを特徴とする方法。
【請求項１４】
前記割り当てリストは、請求項１から１２までのいずれか１項記載の方法によって生成される、
請求項１３記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り当てリストを作成する方法に関している。
【背景技術】
【０００２】
複雑で動的なモデルのリアルタイムシミュレーションは、厳しい時間的周辺条件自体に基づいて、最新の計算ノードでも高い要求が課される。自動車のハードウェア・イン・ザ・ループ・シミュレーション（ＨｉＬ）では、そのようなモデルはとりわけ、高速な制御ループが閉成されなければならない箇所で使用される。このことは、例えば、燃費低減または排ガス低減において、ますます重要な役割を果たす、シリンダ内圧センサのシミュレーションの場合に当て嵌まる。しかしながら、例えば電動モータのような高い動特性を有する閉ループ制御システムにおいても、短い周期時間と短いレイテンシとが不可欠である。実際にはこれらは、ＣＰＵベースのシミュレーションでは、もはや、ほぼ実現不可能である。
【０００３】
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、モデルの動的部分の計算を担うことによって、リアルタイムシミュレーションにおいて計算ノードをサポートすることができる。高い柔軟性および複数の信号の並列処理が可能であることによって、ＦＰＧＡを使用することによって、困難なリアルタイム要求も容易に満たされる。ＦＰＧＡは、計算ノードのＣＰＵに対するハードウェアアクセラレータとして用いられる。相応に、例えば、環境モデルの極めて動的な部分がＦＰＧＡに移され、このようにして、制御機器に対して、十分に正確かつ迅速な応答時間が保証され続ける。ＦＰＧＡネットワークリストは、通常、ハードウェア記述言語で、ＦＰＧＡモデルに基づいて、構築プロセスにおいて形成される。
【０００４】
閉ループ制御システムのモデルは、精度への要求が高まるにつれて、ますます複雑になり、これに伴って、操作も困難になる。自動車Ｈｉｌ環境では、このようなモデルは通常、Ｔｈｅ  ＭａｔｈＷｏｒｋｓ  Ｉｎｃ．のツールセット、ＭＡＴＬＡＢ／Ｓｉｍｕｌｉｎｋを用いて作成される。Ｓｉｍｕｌｉｎｋは、このようなモデルの、ブロックダイアグラムの形態の、ブロックベースの概観を提供する。複数のモデル部分は、ブロックダイアグラムにおいて、複数のサブシステムにまとめられ、信号によって相互に結合される。ここで、これらのブロック間のデータフローは、信号線路によって表される。
【０００５】
ＦＰＧＡベースのシミュレーションは、Ｘｉｌｉｎｘ  Ｓｙｓｔｅｍ  Ｇｅｎｅｒａｔｏｒ（ＸＳＧ）およびｄＳＰＡＣＥ社のＦＰＧＡプログラミングブロックセットを用いて、ＣＰＵベースのシミュレーションと同様に、ブロックダイアグラムにおいて、Ｓｉｍｕｌｉｎｋによってモデリング可能である。
【０００６】
ただしＣＰＵシミュレーションとは異なり、このモデルは、反復プログラミング言語に変換されず、顧客固有のデジタル回路を記述するＦＰＧＡネットワークリストに変換される。このＦＰＧＡネットワークリストは、ＦＰＧＡコンフィギュレーションデータストリームに変換可能である。
【０００７】
この割り当てリストは、ＦＰＧＡの実行時間中の信号値の読み出しを可能にするために使用される。ソースコードからは、まずネットワークリストが生成され、次いでこのネットワークリストがビットストリームに変換され、このビットストリームがＦＰＧＡ上にロードされる。
この変換では、ＦＰＧＡのどのレジスタが、ソースコードのどのレジスタによって使用されるかが、つまりソースコードのどの信号が実行時間中にＦＰＧＡのどのレジスタに記憶されるかがトレースされる。所定の信号の値がＦＰＧＡから読み出されるべき場合には、割り当てリストを用いて、ＦＰＧＡのどのレジスタが読み出される必要があるかを決定することができる。この読み出し過程は、様々な技術を介して実現することができる。例えば、レジスタは、リードバックインターフェースを介して読み出すことが可能であり、このことは、欧州特許出願公開第２７６５５２８号明細書（ＥＰ２７６５５２８Ａ１）に記載されている。ここでは、ＦＰＧＡソースコードに記述された機能によって使用されるレジスタも、読み出しのための信号値の記憶のためにのみ使用され、ＦＰＧＡソースコードに記述された機能にとって重要でないレジスタも読み出すことが可能である。代替的に、レジスタは、アドレスデコーダを介して読み出すことも可能である。代替的に、レジスタは、シフトレジスタチェーンに接続して順次読み出すことも可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の課題は、従来技術を発展構成することである。
【課題を解決するための手段】
【０００９】
本発明は、割り当てリストを作成する方法に関しており、
ここで割り当てリストは、ＦＰＧＡソースコードに基づいて生成され、
ここでソースコードは、第１の位置の少なくとも１つの第１の信号を使用し、
ここで第１の信号には、少なくとも１つの第１のレジスタが割り当てられており、
ここで割り当てリスト内では、第１の信号と第１のレジスタとが互いに割り当てられて示され、
ここで第２の位置の第２の信号が、ＦＰＧＡソースコード内で使用され、
ここで第２の信号の値は、第１の計算規則に従って第１の信号の値から決定可能であることが自動的に識別され、
ここで割り当てリスト内では、第２の信号、第１のレジスタおよび第１の計算規則が互いに割り当てられるように示される。
【００１０】
本発明による方法によって作成された割り当てリストは、実行時間中の信号値の読み出しの場合に有利である。実行時間中に、第１の信号の値が第１のレジスタに記憶される。実行時間中に、信号値は、上述のように様々なタイプで読み出すことができる。計算規則により、第２の信号に割り当てられたレジスタを読み出す必要はない。第１の信号値および第２の信号値が読み出されるべき場合に、読み出す必要があるのは第１のレジスタのみで、このことにより時間の節約がもたらされる。
【００１１】
本発明による割り当てリストは、必ずしも第２の信号にレジスタが割り当てられている必要はない。第２の信号の値が読み出されるべき場合には、第１の信号に割り当てられている第１のレジスタが読み出され、第２の信号の値は、第１のレジスタの読み出された値から計算規則に応じて決定される。第２の信号は、レジスタに記憶される必要がないので、レジスタを節約することができる。ここではＦＰＧＡの実行時間中にレジスタに記憶されない信号値は決定可能である。
【００１２】
割り当てリストには、信号、レジスタ、および計算規則の割り当てが含まれている。したがって、リストの各対象は、少なくとも３つの要素を含む。したがって、割り当てリストは、割り当てテーブルとして把握することもできる。例えば、各行には１つの割り当てが記述され、第１の列には各信号が、第２の列には割り当てられたレジスタが、そして第３の列には、レジスタ値から信号が算出される計算規則が記述され得る。
【００１３】
本発明の一実施形態では、第１の信号および第２の信号は同一であり、計算規則は同一性である。
【００１４】
この場合、これらの信号は同一であるため、実行時間中のそれらの値も同一である。つまり、第２の信号の値を決定する際に、第１の信号値を引き継ぐことができる。
【００１５】
代替的な実施形態では、第２の信号は、第１の信号のビットのサブセットからなり、割り当て規則は、第２信号の値を記述する第１信号のビットを定義する。
【００１６】
この場合、割り当て規則によって定義されるビットのみが、第２の信号の値の決定の際に使用される。他のビットは破棄される。第１の信号値が不要の場合には、不要なビットの読み出しを省くことができる。
【００１７】
代替的な実施形態では、第２の信号は、１つ以上のビット保持算術演算によってのみ第１の信号に接続される。
【００１８】
ビット保持算術演算とは、ビット列の値が変化しないこと、つまりビット列が単にシフトされることを意味するものと理解されたい。これはシフティングとも称され、あるいは別の解釈では、これはキャスティングとも称される。
【００１９】
代替的な実施形態では、第２の信号は、１つ以上のビット変更算術演算によって第１の信号に接続される。
【００２０】
第２の信号値を決定するために、第１の信号の値が読み出され、ビット変更算術演算がシミュレートされる。
【００２１】
好ましい実施形態では、ビット変更算術演算は、同じクロックの計算結果を出力する。
【００２２】
第２の信号の信号値を決定するためには、第１の信号値がＦＰＧＡのレジスタから読み出された後で算術演算をシミュレートしなければならない。算術演算の結果が同じクロックで存在する場合には、算術演算のシミュレートにより、第１の信号値および第２の信号値が同じクロックであることが分かる。このことは有利である。なぜなら、多くの場合、ＦＰＧＡの状態を決定するために、多数の変数の一貫したマッピングを作成する必要があるからである。
【００２３】
一実施形態では、ビット変更算術演算は組み合わせ論理演算である。
【００２４】
クロック遅延のない組み合わせ論理演算、つまりそこでは同じクロックの結果が存在している論理演算は、例えば、
−論理演算（ＮＯＴ，ＡＮＤ，ＮＡＮＤ，ＯＲ，ＮＯＲ，ＸＯＲ）
−ルックアップテーブル演算
−パイプライン段のない単一算術演算（ＳＵＭ，ＳＵＢＴＲＡＣＴ，…）
であり、ビット保持算術演算の場合の手順に類似して、これらのビット変更算術演算の結果も同様に、入力変数への参照によって決定することができる。
【００２５】
一実施形態では、ビット変更算術演算は、第１の信号を第３の信号で清算し、ここでこの第３の信号には第３のレジスタが割り当てられており、ここで割り当てリスト内では第１の信号に付加的に第３のレジスタが割り当てられ、ここで第１の計算規則は、第２の信号の値がどのように第１の信号の値と第３の信号の値とから算出可能であるかを示す。
【００２６】
一般に、複数の入力側を有する算術演算では、各入力信号がレジスタに記憶される場合、これらの入力信号の値から１つ以上の出力信号を決定することができる。つまり複数の出力信号を読み出す必要はない。また、算術演算は、複数のより小さな算術演算から統合されてもよい。例えば、２つの信号値の加算に続けて、当該和と第３の値との乗算は、３つの入力信号と１つの出力信号との算術演算として把握することができる。
【００２７】
第３のレジスタは、実行時間中に第３の信号の値を記憶するために用いられる。次いで、実行時間中は、第１の信号の値を第１のレジスタから読み出すことができ、第３の信号の値を第３のレジスタから読み出すことができる。次いで、ビット変更算術演算の検算により、第２の信号の値の読み出しを要することなく、第２の信号の値を決定することができる。
【００２８】
さらなる実施形態では、ＦＰＧＡソースコードの第２の信号に、第２のレジスタが割り当てられており、ここで割り当てリスト内では、第２のレジスタが第１のレジスタおよび計算規則に対して付加的に第２の信号に割り当てられるように示される。
【００２９】
第２のレジスタにより、第２の信号値の代替的な決定メソッドが提供される。次いで、第２の信号値は、割り当てリストに基づき、第１のレジスタの読み出しと計算規則とによって、または第２のレジスタの読み出しを介して、決定することができる。２つの決定メソッドの２つの結果を比較することにより、エラーの示唆を検出することができる。それによって気付くことができるエラーは、例えば、
−第１の信号の値から第２の信号値を検算する際のＣＰＵのエラー
−ＦＰＧＡの計算エラー（これにより第２の値の計算には誤りがある）
−ＦＰＧＡ上のソースコードの実装におけるエラー
などである。
【００３０】
つまり、第２のレジスタにより、レジスタを節約できるという上述の利点はなくなるが、これに対して、割り当て規則により、エラー識別の手段は得られる。
【００３１】
さらなる実施形態では、第２のレジスタの読み出し持続時間および第２の信号値の計算持続時間が第１の信号値から推定され、当該推定に基づいて、より高速なメソッドが好ましいメソッドとして割り当てリストに示される。
【００３２】
実行時間中に、どのメソッドが適用されるべきかを非常に迅速に判別できることは有利である。
【００３３】
レジスタがシフトレジスタチェーンかまたはアドレスデコーダを介した読み出し用にセットアップされているならば、読み出しのために要する持続時間は、読み出し機構の特性から決定することができる。レジスタがリードバックインターフェースを介した読み出し用にセットアップされているならば、読み出し持続時間の良好な推定は、ビットストリーム内の値のビット位置が既知の場合、ネットワークリストの作成の後で初めて可能になる。
【００３４】
第１の信号値からの第２の信号値の計算持続時間は、既知のプロセッサにおいて、所要のプロセッサ命令とそれらの実行持続時間とから推定することができる。代替的に、この計算持続時間は、ターゲットプロセッサまたは同等のプロセッサ上で経験的に決定することもできる。
【００３５】
好ましい実施形態では、ＦＰＧＡソースコードはＦＰＧＡ上に実装され、ここで実行時間中に、第１のレジスタがＦＰＧＡから読み出され、第２の信号値は、計算規則を用いて割り当てリストから決定される。
【００３６】
実行時間中に、第１の信号の値が第１のレジスタに記憶される。実行時間中に、信号値が読み出される。レジスタの読み出しのための可能な技術は上述されている。計算規則により、第２の信号に割り当てられているレジスタを読み出す必要はない。そこでは第１のレジスタのみが読み出され、第２の値は計算規則を用いて決定される。このことは時間の節約をもたらす。第２の信号をレジスタ内に記憶させる必要がないので、レジスタは節約可能になる。
【００３７】
さらなる実施形態では、ＦＰＧＡソースコード中の第２の信号に第２のレジスタが割り当てられており、ここで割り当てリスト内では、第１のレジスタと計算規則とに対して付加的に第２のレジスタが、第２の信号に割り当てられるように示され、ここで実行時間中に、第２の信号値が第２のレジスタから読み出されるかまたは第２の信号値が第１の信号値から計算規則を介して決定されるか否かが自動的に判別される。
【００３８】
第２の信号値の決定の際には、実行時間条件が考慮され得ると有利である。第１の信号値も決定されるべき場合には、第２のレジスタから第２の信号値を読み出すよりも、第１の信号値から第２の信号値を算出する方が一般に速いはずである。第１の信号値が決定されるべきでない場合は、第１の信号値を第１のレジスタから読み出し、そこから第２の信号値を算出するよりも、第２のレジスタから第２の信号値を読み出す方が一般に速いはずである。
【００３９】
いくつかの開発環境では、複数の信号を１つのバスに統合することができる。そのような統合された信号のもとでは、バスの信号毎に、信号値が他のレジスタ値から計算規則を用いて決定可能か否かが個別に決定される。それに応じて各信号は、割り当てリスト内で個別に処理される。
【００４０】
本発明はさらに、実行時間中に信号値をＦＰＧＡから決定する方法に関しており、
ここで、割り当てリストが使用され、
ここで、第１の信号の第１の値が実行時間中に第１のレジスタから読み出され、
ここで、前記割り当てリストにおいて、第１の信号、第１のレジスタ、第２の信号、および第１の計算規則が、互いに割り当てられて示され、
ここで、第２の信号の第２の値は、第１の計算規則を介して第１の値から決定される。
【００４１】
この方法の利点は、第２の信号の値を読み出す必要がないことである。付加的に、レジスタに記憶されていない値を決定することもできる。
【００４２】
信号値の決定のための割り当てリストは、記載された方法に従って作成することができる。
【００４３】
以下では本発明を、図面を参照してより詳細に説明する。ここでは、同様の部分には、同じ参照番号が付けられている。図示された実施形態は著しく概略化されており、すなわち、間隔および水平方向および垂直方向の延在は縮尺通りではなく、そうでないことが明記されていない限り、導出可能な幾何学的相互関係も有していない。
【図面の簡単な説明】
【００４４】
【図１】同一信号の例を用いたレジスタの参照
【図２】ビットリダクションの例を用いたレジスタの参照
【図３】ビット保持算術演算の例を用いたレジスタの参照
【図４】ビット変更算術演算の例を用いたレジスタの参照
【図５】ビット変更算術演算の例を用いたレジスタの多重参照
【図６】本発明による方法のステップ
【発明を実施するための形態】
【００４５】
図１は、２つの相互にネストされたサブシステム１０，１１からなるグラフィカルＦＰＧＡソースコード１を示す。第１のサブシステム１０は、第１の論理ブロック１３および第２の論理ブロック１４を含む。第１の論理ブロック１３は、２つの入力信号１４，１５と第１の出力信号２とを有する。第１の出力信号２には、第１のレジスタ３が割り当てられている。この第１のレジスタ３は、実行時間中に第１の出力信号２の値を記憶し、実行時間中に当該値の読み出しを可能にするために用いられる。
【００４６】
第１のサブシステム１０は、第２のサブシステム１１に埋め込まれている。第１のサブシステム１０の第１の出力信号４は、第１のサブシステム１０内の第１の論理ブロック１３の第１の出力信号２と同一である。割り当てリストの作成の際には、このことが識別され、第１のサブシステムの第１の出力信号４に、第１のサブシステム１０内の第１のレジスタ３が割り当てられる。第１のサブシステム１０の第１の出力信号４と、第１のレジスタ３と、の間の割り当て規則として、同一性が割り当てリストに示される。それゆえ、第１のサブシステム１０の第１の出力信号４に割り当てられている第２のレジスタ５は、実装の際に削減することができる。これにより、ＦＰＧＡ内のリソースが節約される。代替的に、第２のレジスタ５を、ＦＰＧＡ内に実装することで、第１のサブシステム１０の第１の出力信号４の値をこの第２のレジスタ５から読み出すことができる。このことは、実行時間中のエラーを識別する手段を提供する。
【００４７】
図２は、さらなるグラフィカルＦＰＧＡソースコード１を示す。以下では、図１との相違点のみを説明する。第１の信号２は、この実施例では、いわゆるスライスブロック１６によって第２の信号６に継続処理される。このスライスブロック１６を用いて、信号の不要なビットを破棄することができる。例えば、第１の信号２は２０ビットの大きさで、それに対して第２の信号６は１２ビットのみであってもよい。なぜならこの１２ビットのみが必要になるからである。第２の信号６は、図１の第２の信号２と同様にレジスタに記憶できるかもしれないが、このことは図２では示されていない。
【００４８】
図３は、さらなるグラフィカルＦＰＧＡソースコード１を示す。以下では、図２との相違点のみを説明する。第１の信号２は、この実施例では、いわゆる再解釈ブロック１７によって第２の値７に継続処理される。再解釈ブロック１７は、信号のビット列は不変のままにさせるが、プログラム内の信号の論理的解釈には影響を与える。例えば、第１の信号２は３５ビットの整数を表し、それに対して第２の信号７は、１５ビットの仮数と１０ビットの指数とを有する浮動小数点数とすることができる。第２の信号７は、図１の第２の信号２と同様にレジスタに記憶できるかもしれないが、このことは図３では示されていない。
【００４９】
図４は、さらなるグラフィカルＦＰＧＡソースコード１を示す。以下では、図２との相違点のみを説明する。第１の信号２は、この実施例では、いわゆる減算ブロック１８によって第２の値８に継続処理される。この減算ブロック１８は、第１の信号２から定数１９を減算する。
【００５０】
定数１９の値は、第１の信号２の第１の値のように第２の信号８の値を決定するために読み出される必要はない。定数１９の値は、割り当てリスト内にまたは他の方法で固定的にファイルすることができ、それによって、第２の信号８の値の計算の際に定数１９の値にアクセスすることができる。代替的に、定数１９の値は、ＦＰＧＡ構築ツールまたはハードウェア内のエラーを排除するために、一度ＦＰＧＡから読み出すこともできる。代替的にまたは付加的に、定数１９の値は、環境条件またはハードウェアエラーによる誤差を除外するために、所定の間隔でＦＰＧＡから読み出すこともできる。
【００５１】
図５は、さらなるグラフィカルＦＰＧＡソースコード１を示す。以下では、図４との相違点のみを説明する。第１の信号２は、この実施例では、いわゆる加算ブロック２０によって第２の値９に継続処理される。この加算ブロック２０は、第１の信号２に第３の信号２２を加算する。第３の信号２２には、第３のレジスタ２３が割り当てられている。この第３のレジスタ２３は、実行時間中に第３の信号２２の値を記憶するようにセットアップされている。実行時間中には、第１の信号２の値が第１のレジスタ３から読み出され、第３の信号２２の値が第３のレジスタ２３から読み出される。第２の信号９の値は、これらの読み出された値の加算によって決定することができる。
【００５２】
図６は、本発明による方法のステップを示す。いくつかのステップは必須で、他のステップは任意である。第１の必須ステップＳ１１０では、ソースコード１が検査される。その際にはソースコード１で定義された信号が決定される。第２の必須ステップＳ１２０では、ソースコード１内の第１の信号２が決定される。第３の必須ステップＳ１３０では、どのレジスタ３に第２のステップＳ１２０で決定された第１の信号２が実行時間中に記憶されるかが決定される。第１の信号２に第１のレジスタ３が割り当てられていない場合、第１のレジスタ３はソースコードに挿入される。付加的に、第１のレジスタ３に対して、分離機構をソースコードに挿入してセットアップすることができ、あるいはシャドウレジスタ１０を、既に挿入されている分離機構に接続させることができる。分離機構は、例えば、レジスタのクロック線路またはレジスタのイネーブル信号を中断することができる。この分離機構は、レジスタを実行時間中に割り当てられた信号から一時的に分離させることができ、それによって、レジスタに記憶された値が分離中に更新されないようになる。好ましくは、複数のレジスタが同じ分離機構に接続される。これにより、複数のレジスタを同時に分離させることができ、信号値の一貫したセットをこれらのレジスタに記憶させることができる。このことは、第２の信号が複数の信号の値から算出されるべき場合に特に有利である。第４の必須ステップＳ１４０では、第２の信号４，６，７，８，９が決定され、第５の必須ステップＳ１５０では、計算規則が作成され、この計算規則を用いて、第４のステップＳ１４０で決定された第２の信号４，６，７，８，９は、第２のステップＳ１２０で決定された第１の信号２の値から決定することができる。この計算規則は、一般に、第１の信号２と第２の信号４，６，７，８，９の間のソースコード１において定義された計算の引き継ぎである。任意の第６のステップＳ１５５では、どのレジスタ５に第２の信号４，６，７，８，９が記憶されるかが決定される。そのような第２のレジスタ５が決定できる場合には、それが第７のステップ１６０で使用される。そのような第２のレジスタ５が決定できない場合には、第２のレジスタ５は、第３のステップＳ１３０からの第１のレジスタ３に類似して挿入される。
【００５３】
任意の第７のステップＳ１６０では、第３のステップＳ１３０で決定された第１のレジスタ３のために、かつ／または第６のステップＳ１５５で決定された第２のレジスタのために、読み出し機構がソースコードに挿入される。
【００５４】
任意の第８のステップＳ１７０では、読み出し機構が、第１のレジスタ３のためにソースコードに挿入されてセットアップされる。この読み出し機構の挿入およびセットアップは、例えば、ソースコードに実装ツールへの指示が挿入されることや、ネットワークリストがロードされるべきＦＰＧＡ上で、リードバックインターフェースを介した読み出しを可能にさせることからなっていてもよい。第１のレジスタ３の読み出しがそのような機構なしで可能である場合には、読み出し機構の挿入は不要である。また読み出し機構を、この方法の後半で初めて、ソースコードから作成されたＦＰＧＡプログラムに挿入することが想定されてもよい。
【００５５】
第２〜第８のステップは、複数の信号にレジスタと計算規則とを割り当てるために、多重に繰り返すことができる。
【００５６】
好ましくは、第２〜第８のステップは、自動化されてアルゴリズムにより繰り返し処理され、ここでのアルゴリズムは、ソースコードで定義されたすべての信号を系統的に処理する。
【００５７】
任意の第９のステップＳ１８０では、ソースコードからネットワークリストが合成される。任意の第１０のステップＳ１９０では、第９のステップＳ１８０で生成されたネットワークリストがビットストリームに変換され、次いで、このビットストリームは、任意の第１１のステップＳ２００でＦＰＧＡ上にロードされ、そこで実行可能となる。次いで、ＦＰＧＡの実行時間中は、任意の第１２のステップＳ２１０において、第３のステップＳ１３０で決定された第１のレジスタ３が読み出し可能となる。次いで、第２の信号４，６，７，８，９の値は、読み出された値から計算規則を介して決定することができる。
【図１】
2019523915.tif 000003
【図２】
2019523915.tif 000004
【図３】
2019523915.tif 000005
【図４】
2019523915.tif 000006
【図５】
2019523915.tif 000007
【図６】
2019523915.tif 000008
【国際調査報告】
2019523915.tif 000009
2019523915.tif 000010
2019523915.tif 000011
2019523915.tif 000012
2019523915.tif 000013
2019523915.tif 000014