特許第6104210号(P6104210)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツングの特許一覧

特許6104210適応型インタフェースを実装する方法およびFPGA制御システム
<>
  • 特許6104210-適応型インタフェースを実装する方法およびFPGA制御システム 図000002
  • 特許6104210-適応型インタフェースを実装する方法およびFPGA制御システム 図000003
  • 特許6104210-適応型インタフェースを実装する方法およびFPGA制御システム 図000004
  • 特許6104210-適応型インタフェースを実装する方法およびFPGA制御システム 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6104210
(24)【登録日】2017年3月10日
(45)【発行日】2017年3月29日
(54)【発明の名称】適応型インタフェースを実装する方法およびFPGA制御システム
(51)【国際特許分類】
   H03K 19/173 20060101AFI20170316BHJP
   G06F 13/38 20060101ALI20170316BHJP
【FI】
   H03K19/173
   G06F13/38 330Z
【請求項の数】15
【全頁数】15
(21)【出願番号】特願2014-95807(P2014-95807)
(22)【出願日】2014年5月7日
(65)【公開番号】特開2014-220813(P2014-220813A)
(43)【公開日】2014年11月20日
【審査請求日】2015年7月1日
(31)【優先権主張番号】13167208.1
(32)【優先日】2013年5月10日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】506012213
【氏名又は名称】ディスペース デジタル シグナル プロセッシング アンド コントロール エンジニアリング ゲゼルシャフト ミット ベシュレンクテル ハフツング
【氏名又は名称原語表記】dspace digital signal processing and control engineering GmbH
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100099483
【弁理士】
【氏名又は名称】久野 琢也
(72)【発明者】
【氏名】ディアク ハッセ
(72)【発明者】
【氏名】ローベアト ポールナウ
【審査官】 白井 亮
(56)【参考文献】
【文献】 特開2006−018729(JP,A)
【文献】 特開2000−285069(JP,A)
【文献】 特開平04−322347(JP,A)
【文献】 特開2003−017999(JP,A)
【文献】 米国特許第07268582(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H03K 19/173
G06F 13/38
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのFPGAアプリケーション(8)を備えた少なくとも1つのFPGA(2)と、対応する送信側(3)または受信側(4)として構築された前記FPGA(2)に接続するための、少なくとも1つのI/Oモジュール(5)との間に、適応型インタフェース(7)を実装する方法であって、
前記少なくとも1つのFPGA(2)と、前記少なくとも1つのI/Oモジュール(5)との間に、シリアルインタフェース(6)が形成されている、
適応型インタフェース(7)を実装する方法において、
各FPGAアプリケーション(8)に対し、データ伝送対象とするレジスタ(9)の最大数をコンフィギュレーションするステップと、
すべてのレジスタ(9)に対し、共通の固定レジスタ幅をコンフィギュレーションするステップと、
データ伝送対象とした最大数のレジスタ(9)のうちデータ伝送すべきレジスタ(9)に対し、送信側(3)でイネーブル信号(EN)をセットするステップと、
送信側(3)から受信側(4)へ、前記イネーブル信号(EN)を伝送するステップと、
前記イネーブル信号(EN)がセットされているレジスタ(9)のデータを、送信側(3)から受信側(4)へ伝送するステップと、
を含むことを特徴とする、
適応型インタフェース(7)を実装する方法。
【請求項2】
前記イネーブル信号(EN)がセットされているレジスタ(9)のデータを送信側(3)から受信側(4)へ伝送する前記ステップは、データ伝送すべきレジスタ(9)が伝送スタンバイ状態にあることを表すために、送信側(3)でストローブ信号(Str)を発生するステップを含む、請求項1に記載の方法。
【請求項3】
前記イネーブル信号(EN)がセットされているレジスタ(9)のデータを送信側(3)から受信側(4)へ伝送する前記ステップは、受信側(4)へのレジスタ(9)のデータ伝送が完了したことを表すために、送信側(3)でレディ信号(RDY)を発生するステップを含む、請求項1または2に記載の方法。
【請求項4】
前記イネーブル信号(EN)がセットされているレジスタ(9)のデータを送信側(3)から受信側(4)へ伝送する前記ステップは、送信側(3)からのレジスタ(9)のデータの受信が完了したことを表すために、受信側(4)でレディ信号(RDY)を発生するステップを含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記イネーブル信号(EN)がセットされているレジスタ(9)のデータを送信側(3)から受信側(4)へ伝送する前記ステップは、各レジスタ(9)における同種のリーディングビットを省略するステップを含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
各レジスタ(9)における同種のリーディングビットを省略する前記ステップは、同種のリーディングビットを有する予め規定されたレジスタ区間を省略するステップを含む、請求項5に記載の方法。
【請求項7】
前記イネーブル信号(EN)がセットされているレジスタ(9)のデータを送信側(3)から受信側(4)へ伝送する前記ステップは、同種でないビットとしてリーディングビットを追加するステップを含む、請求項5または6に記載の方法。
【請求項8】
前記イネーブル信号(EN)がセットされているレジスタ(9)のデータを送信側(3)から受信側(4)へ伝送する前記ステップは、前記イネーブル信号(EN)がセットされているレジスタ(9)を、内容変更についてチェックし、変更された内容を有するレジスタ(9)のデータを伝送するステップを含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
送信側(3)と受信側(4)とでレジスタ内容を同期合わせするステップを含む、請求項8に記載の方法。
【請求項10】
データ伝送対象とした最大数のレジスタ(9)のうちデータ伝送すべきレジスタ(9)に対し、送信側(3)でイネーブル信号(EN)をセットする前記ステップは、前記レジスタ(9)のデータ伝送前に前記イネーブル信号(EN)をダイナミックにセットするステップを含み、
送信側(3)から受信側(4)への前記イネーブル信号(EN)の伝送を、それぞれ前記レジスタ(9)の伝送前に行う、
請求項1から9のいずれか一項に記載の方法。
【請求項11】
データ伝送対象とした最大数のレジスタ(9)のうちデータ伝送すべきレジスタ(9)に対し、送信側(3)でイネーブル信号(EN)をセットする前記ステップは、データ伝送すべきレジスタ(9)の変更時に前記イネーブル信号(EN)をダイナミックにセットするステップを含み、
送信側(3)から受信側(4)への前記イネーブル信号(EN)の伝送を、それぞれデータ伝送すべきレジスタ(9)の変更後に行う、
請求項1から9のいずれか一項に記載の方法。
【請求項12】
送信側(3)から受信側(4)への前記イネーブル信号(EN)の伝送を、前記シリアルインタフェース(6)の伝送休止期間中に行う、請求項1から11のいずれか一項に記載の方法。
【請求項13】
送信側(3)に対しても受信側(4)に対しても汎用的なファンクションブロックを追加する付加的なステップを含む、請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記適応型インタフェース(7)のためのコンフィギュレーションを自動的に確定する付加的なステップを含む、請求項1から13のいずれか一項に記載の方法。
【請求項15】
FPGA制御システム(1)であって、
少なくとも1つのFPGAアプリケーション(8)を備えた少なくとも1つのFPGA(2)と、対応する送信側(3)または受信側(4)として構成された前記FPGA(2)に接続するための、少なくとも1つのI/Oモジュール(5)とを備え、
前記少なくとも1つのFPGA(2)と前記少なくとも1つのI/Oモジュール(5)との間に、シリアルインタフェース(6)が形成されており、
該FPGA制御システム(1)は、前記少なくとも1つのFPGA(2)と前記少なくとも1つのI/Oモジュール(5)との間に、請求項1から14のいずれか一項に記載の方法に従って、適応型インタフェース(7)を実装するように構成されている、
FPGA制御システム(1)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、少なくとも1つのFPGAアプリケーションを備えた少なくとも1つのFPGAと、対応する送信側または受信側として構成された前記FPGAと接続するための、少なくとも1つのI/Oモジュールとの間に、適応型インタフェースを実装する方法に関する。
【0002】
さらに本発明は、FPGA制御システムに関する。この場合、少なくとも1つのFPGAアプリケーションを備えた少なくとも1つのFPGAと、対応する送信側または受信側として構成されたFPGAと接続するための、少なくとも1つのI/Oモジュールとを備えている。
【背景技術】
【0003】
ハイエンドの用途では、閉ループ制御回路モデルのサイクル時間をもっと短くしようという要求が高まっている。したがってこの種の閉ループ制御回路モデルは、閉ループ制御アルゴリズムをベースとして、しばしばFPGA制御システムにおいてフィールドプログラマブルゲートアレイ(FPGA)にインリメントされ、それによって100ns〜5μsのサンプリングレートで著しく高速な閉ループ制御回路をインプリメントすることができる。この場合、閉ループ制御回路を、モジュール型で構成することができる。このようなモジュール型のFPGA回路もしくはモデルFPGA回路には、一般にプロトライプシステムであると、必要とされるセンサおよび/またはアクチュエータに対しダイレクトに応答できるようにする目的に適ったI/O結線を利用することが用意されていない。
【0004】
したがって、I/Oモジュールを介して行われるセンサおよび/またはアクチュエータに対する適応化が必要とされる。I/Oモジュールを、たとえばプラグシステムなどを介してモデルハードウェアすなわちFPGAと接続することができ、その際、I/Oモジュールを差し込むための直付けのプラグまたはケーブルプラグを用いることができる。
【0005】
このようなモジュール型システムにおいて問題となるのは、任意のI/Oモジュールを短いレイテンシと広い帯域幅でモデルFPGAに接続することである。
【0006】
この問題を解決するために従来技術において知られているのは、特定のI/Oモジュールごとに適切なインタフェースを適切なプロトコルで定義することである。このようにすることで、短いレイテンシをできるかぎり広い帯域幅で達成することができる。とはいうものの定義されたインタフェース各々を、個々にFPGAアプリケーションの側にも個々のI/Oモジュールのためにも作成しなければならず、そのことに付随して多大なコストがかかってしまう。
【0007】
別の選択肢として従来技術において知られているのは、モジュール型のバスをインプリメントすることであり、そのようなバスは通常、最大に達成可能な固定帯域幅と固定レイテンシを有する。この場合、アドレスデータバスを介して接続が行われる様々なモジュール型システムが知られている。その際に基本的に、パラレルバスたとえばPHSバスまたはISAバスと、シリアルバスたとえばPCIExpressとが区別される。
【0008】
パラレルバスの場合であると帯域幅は通常、既存のデータラインの本数によって定まる。N本のデータラインを備えたバスであれば、1ビットを伝送する場合でもあるいはNビットを伝送する場合でも、レイテンシは等しい。最大に達成可能な帯域幅とレイテンシは、すべてのI/Oモジュールに関して等しい。
【0009】
モジュール型システムのためのシリアルバスの場合には、プロトコルを本来の有効データに埋め込んで使用する。この公知のプロトルは最小プロトコルオーバヘッドを有しており、プロトコルによって最小有効データ量が規定されていれば、このオーバヘッドはたとえば1ビットの伝送であってもあるいは32ビットの伝送であっても関係なく同じである。たとえば、常にn*バイト(8ビット)またはn*32ビットだけしか伝送できない。この場合、1つの有効データビットだけを伝送しようにも、最小有効データ量全体を伝送しなければならない。このようなプロトコルオーバヘッドや最小有効データ量により、インタフェースを固有にインプリメントすることに比べて、帯域幅とレイテンシが悪くなってしまう。
【0010】
適用されるFPGAモデルによっては、一定のデータレートが必要とされる場合もある。一定のデータレートからの偏差をジッタと称する。
【0011】
上述のことはそれぞれ送信側および受信側に該当し、すなわち単方向のインタフェースに該当する。この場合、送信側もしくは受信側としてのFPGAアプリケーションとI/Oモジュールのインプリメンテーションは、互いに入れ替えられる可能性がある。しかもインタフェースが、双方向インタフェースとして構成されている場合もある。
【発明の概要】
【発明が解決しようとする課題】
【0012】
上述の従来技術から出発して本発明の課題は、冒頭で述べた形式をもつ既述の方法ならびにFPGA制御システムにおいて、要求されたデータレートとレイテンシによって高いデータレートと短いレイテンシを生じさせて、送信側と受信側との間で可変にデータ伝送を行えるようにし、このような可変の伝送を僅かなコストで実施もしくは提供できるようにすることである。
【課題を解決するための手段】
【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】
次に、図面を参照しながら有利な実施形態に基づき本発明について詳しく説明する。
【図面の簡単な説明】
【0044】
図1】1つのFPGAおよびシリアルインタフェースを介してこのFPGAと接続されたI/Oモジュールを備えた、1つの有利な実施形態によるFPGA制御システムを示す図
図2図1によるFPGA制御システムの詳細図
図3】1つの有利な実施形態による方法を示すフローチャート
図4】適応型インタフェースのファンクションを示す図
【発明を実施するための形態】
【0045】
図1には、1つの有利な実施形態によるFPGA制御システム1が示されている。このFPGA制御システム1は、送信側3としてのFPGA2と、受信側4とを有している。この実施形態によれば受信側4は、図2に詳しく示されているような2つのI/Oモジュール5を有している。
【0046】
送信側3と受信側4との間に、シリアルインタフェース6が形成されている。シリアルインタフェース6は適応型インタフェース7のベースとなるものであり、これはFPGA2とI/Oモジュール5との間にインプリメントされており、シリアルインタフェース6を伝送媒体として利用する。シリアルインタフェース6は、データ伝送のために8ビットのブロックサイズを備えたLVDSインタフェースとして構成されている。
【0047】
FPGA2には複数のFPGAアプリケーション8がインプリメントされており、これらはそれぞれレジスタ9を介して適応型インタフェース7と接続されている。受信側4において、I/Oモジュール5には複数のハードウェアインプリメンテーションデバイス10が構築されており、これらも同様にレジスタ9を介して適応型インタフェース7と接続されている。
【0048】
次に、FPGA2とI/Oモジュール5との間に適応型インタフェース7をインプリメントする方法について説明する。
【0049】
最初にステップS10において、FPGAアプリケーション8とハードウェアインプリメンテーションデバイス10のモデリングが実行される。この場合、それぞれ送信側3にも受信側4にも用いられる汎用のファンクションブロックは、ブロックセットブロックとして個々のモデルに組み込まれる。このブロックセットブロックは、すべての固有のI/Oモジュール5に対し同一である。ブロックセットブロックの追加は、グラフィックプログラミングとして行われる。
【0050】
ステップS20において、適応型インタフェース7のためのコンフィギュレーションが自動的に確定される。自動的なコンフィギュレーションには、各FPGAアプリケーション8のために伝送対象とするレジスタ9の最大数と、すべてのレジスタ9に共通の固定レジスタ幅が含まれる。このコンフィギュレーションは、シリアルインタフェース6を介してデータを伝送するためのブロックサイズをベースに行われる。この実施例によれば、FPGAアプリケーション8には、n,m,o個のレジスタ9が実装されており、ここでレジスタ9の個数n,m,oはそれぞれ12にセットされ、レジスタ幅として34ビットが選択されている。レジスタ9によって使用されるビットは、ビット番号0から始まり、以降、ビット番号はビットB−1まで増加していく。レジスタ9において未使用のビットには、定数値"Null"がセットされる。その際、FPGA2にインプリメントされるレジスタ9の個数は、FPGAアプリケーション8およびI/Oモジュール5においてそれぞれ選択されたI/Oファンクションの要求に即して、FPGAコードの生成時点に選定される。この場合、FPGAアプリケーション8のレジスタ9におけるビット数は、送信側3の入力(ポート)と等価である。
【0051】
別の選択肢として1つの実施形態によれば、ステップS20がステップS10の前に実行される。
【0052】
ステップS30において、伝送対象とした最大数のレジスタ9のうち伝送すべきレジスタ9のために、送信側でイネーブル信号ENがセットされる。イネーブル信号ENは、FPGAアプリケーション8からI/Oモジュール5への伝送方向において、ベースとなるFPGAモデルにおいてデータチャネルが用いられるとただちに、自動的にアクティブにされる。さらにイネーブル信号ENは、送信側3からシリアルインタフェース6を介して受信側4へ伝送され、これによって適応型インタフェース7が初期化される。ついで、1つのビットとしてインプリメントされているレディ信号RDYがアクティブにされる。
【0053】
ステップS40において、イネーブル信号ENがセットされているレジスタ9のデータが、送信側3から受信側4へ伝達される。この目的で、最初にレディ信号RDYがチェックされる。すでに伝送が進行中であれば、そのことはレディ信号RDYによって表され、データ伝送を行うことはできない。そしてレディ信号RDYが到来するとただちに、個々のFPGAアプリケーション8から伝送すべきデータが、レジスタ9に書き込まれる。
【0054】
シリアルインタフェース6を介したレジスタ9からのデータの伝達は、FPGA2によりストローブ信号Strがセットされることよりスタートする。これに応じてレディ信号RDYは非アクティブ状態にされる。
【0055】
送信側3においてストローブ信号Strとともに、レジスタ9からのデータの読み出しならびに伝送がスタートする。ついでそれらのデータは受信側4において、適合するレジスタ9に書き込まれる。その後、受信側4においてレディ信号RDYが準備されて、送信側3からのレジスタ9のデータの受信が完了したことが表され、受信側4において各ハードウェアインプリメンテーションデバイス10は、伝送されたレジスタ9から特定のデータを読み出す。
【0056】
イネーブル信号ENが変化すると、そのことは受信側4に伝送される。そうでなければ、レジスタ9のデータの伝送がただちに行われる。この場合、以下で述べるように、レジスタ9の内容が低減される。
【0057】
レジスタ9のデータが送信側3から受信側4へ伝送される場合、最初にレジスタ9ごとに、イネーブル信号ENがセットされているか否かがチェックされる。イネーブル信号ENがセットされていなければ、そのレジスタ9のデータは伝送されず、次のレジスタ9が選択される。
【0058】
イネーブル信号ENがセットされている残りのレジスタ9について、リーディングゼロは同種のリーディングビットとして捉えられる。同種のリーディングビットは、各レジスタ9それぞれについて伝達時には省かれる。同種のリーディングビットを省略することにより、LVDインタフェース6において伝送すべきデータブロックの個数が整合される。伝送すべき残りのビット数が1〜6の場合、8ビットである1つのLVDSデータブロックとなり、伝送すべきビット数が7〜13の場合、それぞれ8ビットである2つのLVDSデータブロックとなり、伝送すべきビット数が14〜20の場合、それぞれ8ビットである3つのLVDSデータブロックとなり、伝送すべきビット数が21〜27の場合、それぞれ8ビットである4つのLVDSデータブロックとなり、伝送すべきビット数が28〜34の場合、それぞれ8ビットである5つのLVDSデータブロックとなる。このことに加えLVDSデータブロックにおいて、「別のパケットが続く」という情報もしくは「最後のパケットである」という情報が、規定された制御ビットによって伝送される。さらに詳細な点については、あとで図4を参照しながら説明する。
【0059】
受信側4において受信されないビットすなわち省略されたビットは、同種のリーディングビットの値を有する受信ビットとして表され、つまり"Null"で埋められる。レジスタ9に値"Null"だけしか含まれないのであれば、レジスタ9の伝送全体が制御構造に合わせて低減される。
【0060】
レジスタ9のデータをさらに伝送するために送信側3において、伝送対象とした最大数のレジスタ9のうち伝送すべきレジスタ9のためのイネーブル信号ENを、必要に応じて変更することができ、したがってダイナミックにセットすることができる。イネーブル信号ENが変更されると、既述のようにレジスタ9の伝達開始時にそのことが伝送される。別の選択肢として、シリアルインタフェース6の伝送休期間中に、すなわちシリアルインタフェース6がアイドルモードでデータを伝送していないときに、イネーブル信号ENが送信側3から受信側4へ伝送される。さらに別の選択肢として、アイドルモード中、そのつど到来するイネーブル信号ENが、その変更とは無関係に繰り返し伝送される。
【0061】
代案となる1つの実施形態によれば、レジスタ9にレジスタ内容の変更がデータとして書き込まれる。値の変更は1としてシグナリングされ、変更されないビットは0にセットされる。なお、この方法は上述のようにして実施される。
【0062】
さらに代案となる1つの実施形態によれば、上述のようなレジスタ9の内容の低減は行われない。したがってこの代替実施形態の場合、リーディングビットが何であれ、イネーブル信号ENがセットされているすべてのレジスタ9のデータが伝送される。このことは、個々のレジスタ9ごとに対応する制御信号によってシグナリングされる。このようにして、送信側3と受信側4におけるレジスタ内容の同期合わせが行われる。この同期合わせは周期的に行われる。さらに代案となる別の実施形態によれば、送信側3と受信側4におけるレジスタ内容の同期合わせが、既述のようなレジスタ内容の変更の伝達と組み合わせて行われる。つまりレジスタ内容の変更を伝送するときに、レジスタ内容全体を伝送することによって、同期合わせが行われる。
【0063】
さらに別の択一的な実施形態によれば、各レジスタ9においてリーディングビットが同種ではないビットとしてセットされ、つまり1にセットされる。このことにより、強制的にレジスタ9全体が伝送され、したがって適応型インタフェース7は一定のデータレートで動作することになる。
【0064】
次に、図4を参照しながらデータ伝送のフローについて例示する。
【0065】
スイッチオン後、シリアルインタフェース6はアイドルモードにおかれる(SYNC = 1, CMD = 1, IDLE = 1)。このモード中、周期的かつ持続的に、1つのFPGAアプリケーション8における12個のイネーブル信号ENのステータスが受信側4へ伝送される。その際、12ビットすべてを伝送するために、それぞれ8ビットから成る4つのLVDSデータブロックが必要とされ、スイッチオン後、送信側3から受信側4へのレジスタ9のデータの伝送を初期化する目的で、少なくとも1回、この伝送を完了させなければならない。
【0066】
送信側3によりストローブ信号Strが送信されるとただちに、送信側3は次のLVDSデータブロックの開始とともに、レジスタ9に到来するI/Oデータのための伝送モードに切り替わる(SYNC = 0)。そしてレジスタ9は、ポート1から始まってすべての入力ポートへ順次連続して伝送される。ただし、イネーブル信号ENがセットされていないレジスタは飛ばされる。
【0067】
各レジスタ9のデータの伝送は、最大で4x7ビットのパケット(SYNC = 0)およびこれに加えて終端識別子までこのパケットに続く6ビットのパケット(SYNC = 1, CMD = 0)に分割され、上述のようにLSBから始められる。1つのレジスタ9のデータの伝送完了後、間を空けることなくただちに次のレジスタ9が続く。
【0068】
12個のレジスタ9すべてが処理された後、コントローラは再びアイドルモードに戻り(SYNC = 1, CMD = 1, IDELE = 1)、イネーブルビット入力のステータスを改めて周期的に伝送する。
【0069】
これまで述べてきた実施例は、送信側3としてFPGA2を、受信側4としてI/Oモジュール5をそれぞれ用いた構成に関わるものであった。別の選択肢となる1つの実施形態によれば、FPGA2が受信側4を成し、I/Oモジュール5が送信側3を成す。さらに別の選択肢となる1つの実施形態によれば、これに応じてイネーブル信号ENは、FPGAモデルにI/Oモジュール5をインプリメントすることによって自動的にセットされる。
【符号の説明】
【0070】
1 FPGA制御システム
2 FPGA
3 送信側
4 受信側
5 I/Oモジュール
6 シリアルインタフェース
7 適応型インタフェース
8 FPGAアプリケーション
9 レジスタ
10 ハードウェアインプリメンテーションデバイス
図1
図2
図3
図4