![]() | LabVIEW 2016 FPGAモジュールヘルプ |
![]() | LabVIEW 2017 FPGAモジュールヘルプ |
![]() | LabVIEW 2018 FPGAモジュールヘルプ |
![]() | LabVIEW 2019 FPGAモジュールヘルプ |
![]() | LabVIEW 2020_PGAモジュールヘルプ |
FPGA VIの異なる部分間、FPGAターゲットのVI間、またはデバイス間でデータを転送するには、FIFOを使用します。FIFOは受信された順番で要素を保持し、先入れ先出しのアクセスポリシーでこれらの要素へのアクセスを提供するデータストラクチャです。
以下の図は、FIFOを移動する要素の動作を示しています。
以下の方法で、FIFOを使用してデータを転送します。
FIFOプロパティダイアログボックスで、FIFOの作成と構成を実行します。
VI定義FIFOを除くすべてのFIFOには、プロジェクトの対応項目があります。そのため、VI定義FIFO以外のFIFOを使用してFPGA VIを別のユーザに送信する場合は、プロジェクト全体を送信する必要があります。そうしないと、FPGA VIを実行することはできません。
次のフローチャートを使用して、お使いのアプリケーションの要件に最適なFIFO構成を確認してください。
![]() |
メモ FPGAターゲットプロパティダイアログボックスの一般ページでターゲット情報コンポーネントを使用して、FPGAターゲットがサポートするブロックメモリリソースの数を取得できます。 |
以下の図は、同じFPGA VI内の2つのシングルサイクルタイミングループ間でデータを転送する際に使用するターゲット指定FIFOの例を示しています。シングルサイクルタイミングループは2つの異なるクロック領域にあります。上位ループは80 MHzクロックを使用して、下位ループは40 MHzクロックを使用します。この例では、80 MHzクロック領域のFPGA I/Oノードはデバイスからの温度の読み取り値を集録します。FIFOメソッドノードはFIFOにデータを書き込みます。FIFOの空の要素を即時に書き込めない場合、ノードがタイムアウトしてループが停止し、書き込みタイムアウト?表示器がTRUEに設定されます。FIFOメソッドノードは40 MHzクロック領域でデータを読み取り、その後にデータを「0より小さい?」関数に渡します。温度が0未満の場合、関数はデバイスが凍結?表示器をTRUEに設定します。データを即時に読み取れない場合、FIFOメソッドノードがタイムアウトしてループが停止し、読み取りタイムアウト?表示器がTRUEに設定されます。
![]() |
メモ FIFOメソッドノードにタイムアウト入力パラメータが含まれている場合、ノードがシングルサイクルタイミングループ内にある際にはゼロの定数をパラメータに配線する必要があります。 |
以下の方法でデータを転送することができます。
![]() |
メモ 同じFIFOに複数の読み取りまたは書き込みを含める場合、FIFOは共有リソースとなります。データの破損およびジッタを防ぐには、単一のFIFOに対して同時に複数の読み取りまたは書き込み要求を行うことは避けてください。 |
役に立った
役に立たなかった