【課題を解決するための手段】
【0013】
本発明によればこの課題は、各FPGAアプリケーションに対し、
データ伝送対象とするレジスタの最大数をコンフィギュレーションするステップと、すべてのレジスタに対し、共通の固定レジスタ幅をコンフィギュレーションするステップと、
データ伝送対象とした最大数のレジスタのうち
データ伝送すべきレジスタに対し、送信側でイネーブル信号をセットするステップと、送信側から受信側へ、前記イネーブル信号を伝送するステップと、前記イネーブル信号がセットされているレジスタ
のデータを、送信側から受信側へ伝送するステップと、を含むことを特徴とする、適応型インタフェースを実装する方法により解決される。従属請求項には本発明の有利な実施形態が示されている。
【0014】
このように本発明によれば、少なくとも1つのFPGAアプリケーションを備えた少なくとも1つのFPGAと、対応する送信側または受信側として構築されたFPGAと接続するための、少なくとも1つのI/Oモジュールとの間に、適応型インタフェースを実装する方法が提供される。この場合、少なくとも1つのFPGAと少なくとも1つのI/Oモジュールとの間に、シリアルインタフェースが形成されている。本発明による方法は、各FPGAアプリケーションに対し、伝送対象とするレジスタの最大数をコンフィギュレーションするステップと、すべてのレジスタに対し、共通の固定レジスタ幅をコンフィギュレーションするステップと、伝送対象とした最大数のレジスタのうち伝送すべきレジスタに対し、送信側でイネーブル信号をセットするステップと、送信側から受信側へ、イネーブル信号を伝送するステップと、イネーブル信号がセットされているレジスタを、送信側から受信側へ伝送するステップと、を含んでいる。
【0015】
さらに本発明によれば、少なくとも1つのFPGAアプリケーションを備えた少なくとも1つのFPGAと、対応する送信側または受信側として構成されたFPGAと接続するための、少なくとも1つのI/Oモジュールとを備えたFPGA制御システムが提供される。この場合、少なくとも1つのFPGAと少なくとも1つのI/Oモジュールとの間に、シリアルインタフェースが形成されている。このFPGA制御システムは、少なくとも1つのFPGAと少なくとも1つのI/Oモジュールとの間に、上述の方法に従って適応型インタフェースを実装するように構成されている。
【0016】
つまり本発明の基本的な着想は、FPGAアプリケーションとI/Oモジュールとの間に適応型インタフェースを設けることにより、標準的なインプリメンテーションを利用できるようにし、さらにそのつど望まれる要求に対しそれをコンフィギュレーションできるようにしたことで、簡単な実装を実現する、という点にある。コンフィギュレーションによって、I/Oファンクションの具体的な用途に関連するデータだけが、適応型インタフェースを介して伝送される。各FPGAアプリケーションのために伝送対象とするレジスタの最大数と、共通の固定レジスタ幅をコンフィギュレーションすることによって、FPGAアプリケーションとI/Oモジュールを、様々なFPGAファンクションに簡単に適合させることができ、これによって簡単な開ループ制御システムおよび閉ループ制御システムを、高い効率で提供できるようになる。
【0017】
有利には、各FPGAファンクションのために伝送対象とするレジスタの最大数のコンフィギュレーションと、すべてのレジスタに共通の固定レジスタ幅のコンフィギュレーションには、各FPGAモデルのために伝送対象とする最大レジスタ数と、1つのレジスタにおいて伝送すべき最大ビット数の選択が含まれる。このコンフィギュレーションは有利には、すべてのFPGAアプリケーションのための包括的なコンフィギュレーションである。この場合、FPGAモデルは、すべてのFPGAアプリケーション全体に関わるものであり、FPGAモデルは個々のモデルを複数有することができる。
【0018】
送信側でイネーブル信号をセットすることにより、未使用のレジスタのデータは伝送されないようになり、このようにして利用可能な帯域幅を効率的に利用できるようになる。しかも帯域幅の利用をダイナミックに適合することができるので、データ量が少なければ僅かなレイテンシを達成できるようになる。このように同じ適応型インタフェースを用いて、高いデータレートと低いレイテンシの提供を実現できるようになる。したがって、僅かなチャネル数を介した最小のレイテンシを伴う用途でも、チャネル数の多い用途でも、高い信頼性を伴って簡単に実現することができる。その際、僅かなコンフィギュレーションパラメータを予め設定するだけでよく、それによって適応型インタフェースを簡単かつ快適に利用できるようになる。
【0019】
FPGAにインプリメントされるレジスタの個数は、FPGAコードの生成時点において、FPGAモデルおよび/またはI/Oモジュールにおいてそれぞれ選択されたI/Oファンクションの要求に従って設定される。I/Oファンクションのインプリメントに必要とされるFPGAリソースを、コンフィギュレーションに基づき適合させることができる。スタティックに定められているイネーブル信号の場合、未使用のレジスタに基づきFPGAリソースをさらに最適化することができる。たとえばただ1つのレジスタだけしか必要とされなければ、FPGAリソースは最小限まで低減される。この場合、FPGAアプリケーションのレジスタにおけるビット数は、送信側の入力と等価である。
【0020】
有利にはイネーブル信号は、FPGAアプリケーションからI/Oモジュールへの伝送方向において、ベースとなるFPGAモデルにおいてデータチャネルが用いられるとただちに、自動的にアクティブにされる。同様のことは、I/OモジュールからFPGAアプリケーションへの伝送方向におけるイネーブル信号についてもあてはまり、FPGAモデルにI/Oモジュールをインプリメントすることにより、この信号を自動的にセットすることができる。
【0021】
有利であるのは、レジスタにおける未使用のビットを定数値にセットすることである。このような予め定められた値によって、取り扱いが簡単になる。
【0022】
シリアルインタフェースをLVDSインタフェースとして実装するのが有利であり、このインタフェースによって高いデータ伝送レートを実現できる。複数のLVDSインタフェースを並列に接続することによって、帯域幅をフレキシブルに高めることができる。LVDSインタフェースは通常、たとえば8ビットといった固定長のデータブロックを伝送するために構成されている。有利には、LVDSインタフェースのデータブロック長が、コンフィギュレーション設定としてコンフィギュレーションされる。さらに有利であるのは、1つのレジスタのビット数が、シグナリングのためのオーバヘッドと合わせてLVDSインタフェースのデータブロック長の倍数となるよう、このビット数を選定することである。たとえば各レジスタが34ビットを有するように構成することができ、それらのビットは、6ビットのオーバヘッドとともに、全体で5個のLVDSインタフェースのデータブロックで伝送される。
【0023】
したがってこの場合、FPGAとI/Oモジュールとの間で用いられる物理的なインタフェースすなわちシリアルインタフェースは、上位のプロトコルによって抽象化される。上位のプロトコルの抽象化されたコンポーネントは、簡単に別のモジュールとモデルに組み込むことができ、たとえばブロックセットまたはIPコアおよび/またはネットワークリストなどによって組み込むことができる。適応型インタフェースがジェネリックないしは汎用的であることから、このような適応型インタフェースによって、種々のI/Oモジュールの結合を行うことができる。その際に必要とされるのは、インタフェースのコンフィギュレーションを同じように行うことだけである。有利にはインタフェースの相応のコンフィギュレーションは、最初にすべてのI/Oモジュールについて行われ、それによって共通の使用を確保することができる。一般にFPGAの複数のレジスタは、それぞれ1つのポートをマッピングする。
【0024】
上述のことはそれぞれ送信側と受信側とに該当し、すなわち単方向のインタフェースに該当する。この場合、FPGAアプリケーションとI/Oモジュールが送信側もしくは受信側としてインプリメントされているが、これを交換してもよい。しかもインタフェースを、双方向インタフェースとして構成することもできる。
【0025】
本発明の有利な実施形態によれば、イネーブル信号がセットされているレジスタのデータを送信側から受信側へ伝送するステップは、伝送すべきレジスタが伝送スタンバイ状態にあることを表すために、送信側でストローブ信号を発生するステップを含んでいる。ストローブ信号は、有利には送信側においてモデルによりセットされ、これによってレジスタ内のデータに矛盾がなく首尾一貫しており、伝送を開始できることが表される。ストローブ信号は有利には単一のビットとして実装される。ストローブ信号によって送信側に対し、シリアルインタフェースを介して伝送するためのデータがレジスタ内に存在することがシグナリングされる。このようにしてそれらのデータを、ストローブ信号によりスタートさせて送信側でレジスタから読み出して伝送することができ、これによってそれらのデータは、受信側で適合したレジスタに書き込まれる。送信側はストローブ信号に基づいて、すべてのレジスタのデータが互いに首尾一貫して伝達されることを、確実に前提とすることができる。原理的にこのストローブ信号によって、複数のI/Oモジュールの同期合わせを行うことができる。
【0026】
本発明の有利な実施形態によれば、イネーブル信号がセットされているレジスタを送信側から受信側へ伝送するステップは、受信側へのレジスタの伝送が完了したことを表すために、送信側でレディ信号を発生するステップを含んでいる。つまりこのレディ信号によって送信側で伝送がきちんと完了したことがFPGAモデルにシグナリングされ、次のデータを伝送するためにレジスタを新たに満たすことができる。したがって伝送完了に伴い、新たな伝送に対し準備のできた状態となる。レディ信号は有利には単一のビットとして実装される。
【0027】
送信側によってデータをレジスタから送信しようという場合、最初にレディ信号のステータスがチェックされる。すでに伝送が進行中であれば、そのことはレディ信号により表され、データ伝送を行うことはできない。有利にはレディ信は、インタフェースが初期化された後、すなわち少なくともイネーブル信号が送信側から受信側へ伝達された後、はじめてアクティブにされる。レディ信号によってデータ送信が許可されるとただちに、FPGAアプリケーションは伝達を始める。これによってインタフェースは僅かなレイテンシで、データ伝送が行われないアイドル状態からデータ伝送をスタートさせることができる。
【0028】
本発明の有利な実施形態によれば、イネーブル信号がセットされているレジスタのデータを送信側から受信側へ伝送するステップは、送信側からのレジスタのデータの受信が完了したことを表すために、受信側でレディ信号を発生するステップを含んでいる。これによって受信側で個々のハードウェアインプリメンテーションデバイスは、伝送が行われたレジスタから、それらのインプリメンテーションに特定のデータを読み出すことができる。このようにして読み出し時の遅延が回避されるので、別のデータの後続の伝送も同様に遅延なく行われるようになる。
【0029】
ストローブ信号および/またはレディ信号のインプリメンテーションは、任意にハイレベルとしてまたはローレベルとして行うことができ、つまり0または1として行うことができる。
【0030】
本発明の有利な実施形態によれば、イネーブル信号がセットされているレジスタを送信側から受信側へ伝送するステップは、各レジスタにおける同種のリーディングビットを省略するステップを含んでいる。このようにして全体として伝送すべきデータ量を、同種のリーディングビットの個数分だけ低減することができる。その際、基本的に1つのインプリメンテーションを選択することができ、それによれば、要求に応じてリーディングゼロまたはリーディングワンを、同種のリーディングビットとして検出し、省くことができる。つまり1つのインプリメンテーションによれば、リーディングワンが同種のリーディングビットとして検出される一方、別のインプリメンテーションによれば、リーディングゼロが同種のリーディングビットとして検出される。受信側において、受信されなかったビットすなわち省略されたビットを、同種のリーディングビットの値を有するビットとして補うことができる。有利には、同種のリーディングビットの形式をコンフィギュレーションすることができる。
【0031】
別の選択肢として、1つのレジスタ全体を伝送することができ、このことは個々のレジスタ各々に対する制御信号を介してシグナリングすることができる。
【0032】
本発明の有利な実施形態によれば、各レジスタにおける同種のリーディングビットを省略するステップは、同種のリーディングビットを有する予め規定されたレジスタ区間を省略するステップを含んでいる。つまりこの場合、このレジスタ区間全体が同種のリーディングビットを含んでいるときのみ、同種のリーディングビットが省略される。したがってこの場合、リーディングビットの伝送を省くためには、上述のレジスタ区間の長さに対応する個数のリーディングビットが、同種のものでなければならない。その際に有利であるのは、上述の予め規定されたレジスタ区間の長さを、シリアルインタフェースの伝送ブロック長に対応するように選定することである。殊に有利であるのは、上述の予め規定されたレジスタ区間の長さを、LVDSインタフェースの伝送ブロック長に対応するように選定することである。この場合、レジスタ区間の長さを、シグナリングのためのオーバヘッドと合わせて1つの伝送ブロック長に対応するように選定することができる。これによれば1つの伝送ブロックがそれぞれ完全に、もしくは実質的に完全に、予め規定されたレジスタ区間のために利用される。予め規定されたレジスタ区間のサイズを、グローバル値として定義してもよいし、あるいはFPGAモデルの実装中にダイナミックに整合させてもよい。このようにしてシリアルインタフェースの伝送ブロックが節約されることで、データ伝送を加速することができる。
【0033】
さらに別の選択肢として、1つのレジスタ全体を伝送することができ、このことを個々のレジスタ区間各々に対する相応の制御信号を介してシグナリングすることができる。
【0034】
本発明の有利な実施形態によれば、イネーブル信号がセットされているレジスタを送信側から受信側へ伝送するステップは、同種でないビットとしてリーディングビットを追加するステップを含んでいる。このことにより、強制的にレジスタ全体が伝送され、したがってインタフェースが一定のデータレートで動作するようになる。これに応じて、データ伝送のジッタを低減もしくは回避することができる。
【0035】
本発明の有利な実施形態によれば、イネーブル信号がセットされているレジスタを送信側から受信側へ伝送するステップは、イネーブル信号がセットされているレジスタを、内容変更についてチェックし、変更された内容を有するレジスタを伝送するステップを含んでいる。この場合、原則的に、変更されたレジスタのデータをそのまま伝達することができる。ただし有利であるのは、変更だけを伝送することである。このようにすれば、あるレジスタのビットが変更されなければ、変更をたとえば0として伝送することができ、他方、変更されたビットはたとえば1として伝送される。
【0036】
このため、同種のリーディングビットここでは0の伝送省略と組み合わせて、0と1を含む任意のコーディングであっても、変更されなかったレジスタ内容の伝送を省略することができる。このようにしてたとえば、リーディングビットを表す希にしか変更されない信号を伴うシステムにおいて、たとえばその信号が同種のビットすなわち0または1に対応しなくても、伝送すべきデータを低減することができる。したがって、同種ではないリーディングビットだからといって、レジスタのすべてのビットを伝送しなくてもよい。
【0037】
本発明の有利な実施形態によれば、本発明による方法は、送信側と受信側とでレジスタ内容を同期合わせするステップを含んでいる。受信側へのデータの完全性ないしは無欠性を確保するために、あるいはそれをチェックするために、この同期合わせを周期的に、時間的な限度内で、および/またはイベントに関連づけて、行うことができる。この目的でデータが、それらがレジスタにあるとおりに伝送され、すなわちレジスタ全体のデータが伝送される。このことは、個々のレジスタごとに対応する制御信号によってシグナリングされる。有利には通常動作中、レジスタ内容の変更が伝送され、その際に同期合わせを行うことによって、レジスタ内容の完全性が保証され、すなわち送信側のレジスタ内容と受信側のレジスタ内容の整合が保証される。格別有利であるのは、このような同期合わせを周期的に実施することである。
【0038】
本発明の有利な実施形態によれば、伝送対象とした最大数のレジスタのうち伝送すべきレジスタに対し、送信側でイネーブル信号をセットするステップは、レジスタの伝送前にイネーブル信号をダイナミックにセットするステップを含んでおり、送信側から受信側へのイネーブル信号の伝送が、それぞれレジスタの伝送前に行われる。たとえばイネーブル信号を、受信側へのデータ伝送の前に行うことができる。これによって、適応型インタフェースの高度なフレキシビリティが達成される。
【0039】
本発明の有利な実施形態によれば、伝送対象とした最大数のレジスタのうち伝送すべきレジスタに対し、送信側でイネーブル信号をセットするステップは、伝送すべきレジスタが変化したときに、イネーブル信号をダイナミックにセットするステップを含んでいる。この場合、送信側から受信側へのイネーブル信号の伝送は、伝送すべきレジスタの変更後にそのつど行われる。このようにしてイネーブル信号を、たとえばシステム起動時に受信側に伝送することができる。イネーブル信号の変更は、必要なときにだけ伝送される。これによってイネーブル信号を伝送するためにリソースをほとんど必要とせず、データスループットもしくはレイテンシにごく僅かに影響を及ぼす程度である。
【0040】
本発明の有利な実施形態によれば、送信側から受信側へのイネーブル信号の伝送が、シリアルインタフェースの伝送休止期間中に行われる。つまりイネーブル信号の変更つまりはそれに付随するコンフィギュレーションの変更は、インタフェースがアイドルモードにありいかなるデータも伝送しないときに行われる。これによってイネーブル信号を伝送するためにリソースをほとんど必要とせず、データスループットもしくはレイテンシにごく僅かに影響を及ぼす程度である。原則的に、イネーブル信号が変化していなければ、アイドルモード中にイネーブル信号を繰り返し伝送することもできる。
【0041】
本発明の有利な実施形態によれば、本発明による方法は、送信側に対しても受信側に対しても汎用的なファンクションブロックを追加する付加的なステップを含んでいる。これによってたとえばFPGAアプリケーションにおいて、ブロックセット「ブロック」がモデルに組み込まれる。このブロックが、すべての固有のI/Oモジュール5に対し同じように保持されているようにすることができる。オプションとしてブロックセットブロックの代わりに、(V)HDL−IPコアがユーザモデルの(V)HDLソースコードに組み込まれ、あるいはネットワークリストとしてユーザデザインに組み込まれる。さらに有利には、ファンクションブロックをグラフィックプログラミングのためのブロックとして追加することができ、これによってプログラミングを簡単に実現することができる。
【0042】
本発明の有利な実施形態によれば、本発明による方法は、適応型インタフェースのためのコンフィギュレーションを自動的に確定する付加的なステップを含んでいる。自動的なコンフィギュレーションには、各FPGAアプリケーションのために伝送対象とするレジスタの最大数と、すべてのレジスタに共通の固定レジスタ幅が含まれる。オプションとして、予め規定されたレジスタ幅の長さに関して、自動的なコンフィギュレーションを行うこともできる。有利には、自動的なコンフィギュレーションのためのベースは、シリアルインタフェースを介してデータを伝送するためのブロックサイズである。自動的なコンフィギュレーションによって、最適な帯域幅および/またはレイテンシを確実に達成できるようになる。
【0043】
次に、図面を参照しながら有利な実施形態に基づき本発明について詳しく説明する。