すべてのプラットフォームに共通のインターフェース

VA IP コアのインターフェースの数とタイプを定義します('Defining the IP Core Properties'で説明されているとおりです)。

ただし、2つのインターフェースはすべてのプラットフォームで共通です。クロックインターフェースとレジスタスレイブインターフェースです。これらについては、ハードウェア記述ファイルの記入を実際に開始する前に、ここで説明します。

クロックインターフェース

ハードウェアでは、IP コアに2つのクロック入力(iDesignClkとiDesignClk2x)を提供する必要があります。このようなクロック信号は通常、(お客様の制御下で)FPGA のデジタルクロックマネージャーを使用して非常に簡単に生成できます。

これらのクロックは、以下の要件を満たしている必要があります。

  • 位相が同期していること

  • 周波数比が 2 であり、iDesignClk2xの方が高速であること。

クロック入力が設計速度に与える影響: VisualApplets デザインのすべてのオペレータは、iDesignClkの立ち上がりエッジに同期して動作します。

IP コアの定義中 eVA Designerでは、IP コア(つまり、 iDesignClk)の許容周波数範囲制約を設定します(セクション 'Entering FPGA Details'ステップ 3 で説明されているとおり)。この情報は VisualApplets に提供されます。VisualApplets を使用した設計時に、VisualApplets ユーザーは許容範囲内でターゲット周波数( iDesignClk用)を選択します。この情報は、合成およびインプリメンテーションに使用されます。VisualApplets デザインの合成後、ターゲット周波数は *.hap ファイル(合成された FPGA ビットストリームも含まれています)に保存されます。ランタイムシステムには、 *.hap ファイル。

レジスタスレーブインターフェース

からターゲット設計周波数を取得するための機能が含まれています。

動的設計パラメータ(画像アプリケーション内のオペレータインスタンスの動的パラメータなど)は、レジスタスレイブインターフェースを介して通信されます。このインターフェースは、読み取りおよび書き込み操作を提供します。

レジスタインターフェースには、次の Property があります。

  • I/O はクロック iDesignClkに同期しています。

  • リセットおよびイネーブル信号は、レジスタ値には影響しません。

  • データ幅は 32 bit です。

  • インターフェースのアドレス幅は 16 bit です。

  • 書き込みと読み取りは同時に発生する場合があります。

  • レジスタインターフェースを介してアクセスされるレジスタは、1 から 64 の間の任意の幅を持つことができます。スレイブインターフェースのデータ幅と VisualApplets パラメータの実際のレジスタ幅との間のマッピングは、自動的に行われます。パラメータレジスタの幅がレジスタインターフェースの幅よりも大きい場合、ランタイムソフトウェアはアクセスを自動的に分割します。この場合、1 つのパラメータが複数のレジスタアドレスを消費します。

 

レジスタインターフェースのポート

図 192. レジスタインターフェースのポート


上の図は、レジスタインターフェースに関連するポートを示しています。

書き込み: 書き込み用の通信プロトコルは、書き込みアドレス ivRegWrAddr、書き込みデータ ivRegWrData、および書き込みストローブ iRegWrValidに基づいています。アクティブハイの信号 iRegWrValidがアサートされると、アドレス ivRegWrAddrを持つVisualAppletsレジスタへの単一の書き込みアクセスが開始されます。書き込みアクセスは連続するクロックティックで実行できるため、暗黙的なバーストが許可されます。

読み取り: 読み取り用の通信プロトコルは、読み取りアドレス ivRegRdAddr、読み取りストローブ iRegRdValid、および読み取りデータの有効信号 oRegRdDataValidに基づき、データはポート ovRegRdDataから出力されます。アクティブハイの信号 iRegRdValidがアサートされると、アドレス ivRegRdAddrを持つVisualAppletsレジスタからの単一の読み取りアクセスが開始されます。返される出力値のレイテンシは、eVA IP CoreおよびVisualAppletsデザインの構成によって異なる場合があります。

ハードウェアプラットフォーム上のeVA IP CoreでVisualAppletsデザインを実行する場合、パラメータにはVisualAppletsランタイムソフトウェアインターフェースを介してアクセスできます。

VisualAppletsは、実行時にデザインパラメータにアクセスするためのさまざまなモデルをサポートしています。

  • HAPファイルに基づくeVAランタイム環境の使用: このアプローチは、Baslerのフレームグラバーのランタイムインターフェースによく似ています。HAPファイルには、デザイン固有のパラメータに簡単にアクセスするために必要なすべての情報が含まれています。HAPファイルをロードし、FPGAコンフィギュレーションデータを抽出し、デザインパラメータへのアクセスを提供するランタイムソフトウェアAPIが提供されます。

  • 生成されたGenICam XMLコードに基づくGenICam APIの使用: ターゲットプラットフォームがGenICam互換インターフェースを介してソフトウェアに接続されている場合、このオプションにより、画像処理パラメータをGenICam APIにシームレスに統合できます。追加のソフトウェアコンポーネントは必要ありません。

  • VisualAppletsによって生成された汎用的なデザイン固有のC APIコードの使用: 生成されたコードはプラットフォームに依存しないANSI-Cコードです。起動時に、VA IP Coreレジスタスレーブを介したレジスタへの書き込みおよび読み取りアクセスのためのコールバック関数が登録されます。その後、コードは名前で指定されたパラメータへのアクセスを提供し、トランスレーション関数がコールバック関数を介した通信をトリガーします。このアプローチは、組み込みシステム(Zynq7000など)でのソフトウェア統合に最適です。

[注] ランタイムインターフェースファイルの自動生成

デザイン固有のランタイムインターフェースのファイルは、VisualAppletsによって自動的に生成されます(3つのアクセスモデルすべてに対応)。

ランタイムソフトウェアインターフェースのオプションの詳細については、「Runtime Software Interface」を参照してください。

リセットおよびイネーブル

VA IP Coreは、専用ポートを使用する代わりに、レジスタスレーブインターフェースを使用してResetおよびEnable信号も制御します。これにより、ResetおよびEnableはランタイムソフトウェアを介してユーザーの制御下に置かれ、事前に不明な数のプロセスを個別に制御できます。

ResetおよびEnable信号は、VA IP Coreデザインと次のように相互作用します。

  • 各プロセスには、1ビットレジスタによって設定される独自のResetおよびEnable信号(アクティブハイ)があります。

  • Resetをアサートすると、プロセス全体が初期状態になります。

  • Enableをアサートすると、処理が開始されます。

  • Enableを非アクティブ化すると、処理が停止します。Enable=0の場合、入力FIFOは読み取られません。出力FIFOに関しては、画像処理パイプラインの状態によっては、Enableをネゲートした後も一部のデータがFIFOに書き込まれる可能性がありますが、フロー制御によりFIFOの内容が破損するのを安全に防ぎます。

  • Resetは、Enable=0の場合のみアサートできます。

  • Resetを実行すると、すべてのFIFOが空になります。

  • Enableは、FIFOインターフェースを持つハードウェア固有のすべてのオペレータに影響を与えます。

  • ResetおよびEnableは、オペレータのパラメータには影響しません。

  • ResetおよびEnableは、GPIOポートには影響しません。

  • IPコアのすべてのImgInおよびImgOutインターフェースには、出力ポートResetOおよびEnableOがあります。これらの出力は、そのインターフェースが使用されているプロセスの対応するResetおよびEnable信号に接続されます。したがって、該当するインターフェースに接続されたロジックは、リセットおよびディセーブル状態で適切なアクションを実行できます。

  • Enableをネゲートした後は、再度イネーブルにする前にデザインをリセットする必要があります。Enable = 0に設定した後、Resetをアサートせずに続けてEnable = 1に設定すると、一部のVisualAppletsデザインで予期しない動作を引き起こす可能性があります。

プロセスの推奨START手順:

  1. Resetを送信します。

  2. Enableをアサートします。

プロセスの推奨停止(STOP)手順:

  1. Enableを非アクティブ化します。

  2. Resetを送信します。

プラットフォーム固有のオペレーターのFIFOへの読み取りまたは書き込みアクセスは、対象プロセスのEnable信号によって有効になります(フロー制御に起因する設計依存のレイテンシがいくつか発生します)。また、プロセスのReset信号は、そのプロセスに関連付けられているすべてのI/O FIFOのリセットポートに接続されます。