![]() | LabVIEW 2016 FPGAモジュールヘルプ |
![]() | LabVIEW 2017 FPGAモジュールヘルプ |
![]() | LabVIEW 2018 FPGAモジュールヘルプ |
![]() | LabVIEW 2019 FPGAモジュールヘルプ |
![]() | LabVIEW 2020_PGAモジュールヘルプ |
パイプライン処理は、FPGA VIのクロックレートとスループットを高めるための手法です。パイプライン型設計では、シーケンシャルなコードの効率を上げるためFPGAの並列処理機能を利用します。パイプラインを実行するには、コードを複数のステップに分割して、各ステップの入力と出力をループ内のフィードバックノードまたはシフトレジスタに配線します。
シングルサイクルタイミングループで標準実行を行ったFPGA VIとパイプライン実行を行ったFPGA VIを以下のセクションに示します。
以下のブロックダイアグラムでは、サブVI A、B、およびCが、シングルサイクルタイミングループの内側で順々に実行されます。このため、シングルサイクルタイミングループのクロックレートを、3つのすべてのサブVIの実行時間の合計が収まるように設定します。
以下のブロックダイアグラムでは、サブVIの入力と出力がフィードバックノードに配線されているため、サブVIのパイプライン処理がLabVIEWによって行われています。このFPGA VIでは、すべてのサブVIは1クロックサイクル内で並列実行され、最大クロックレートは最大の組み合わせパスを含むサブVIのみにより制限されます。
また、シフトレジスタを使用して、以下のブロックダイアグラムに示すようにパイプライン処理をしたコードを実装することができます。
パイプライン処理をしたコードを実装する際には、以下の動作を考慮してください。
以下の例について検証します。
この例では、サブVI A、B、Cを実行するのに3つの異なる実行ステップがあるため、3つのパイプライン深度ができています。このコードには3つの実行ステップが必要なため、出力はクロックサイクル3まで有効になりません。有効な各クロックサイクルCの出力は、必ずクロックサイクルC – (N – 1) の入力に対応しています。
クロックサイクル | 説明 |
クロックサイクル1 | クロックサイクル1では、サブVI Aで最初の測定値 (Meas1) が処理される間に、サブVI BとサブVI Cの両方でシフトレジスタのデフォルト値 (Default) が処理されるため、無効な出力が生じます。 |
クロックサイクル2 | クロックサイクル2では、サブVI Aで2番目の測定値 (Meas2) が処理される間に、サブVI Bでクロックサイクル1からのサブVI Aの出力が処理され、サブVI CによってサブVI Bからの無効な入力が処理されるため、無効な出力が生じます。 |
クロックサイクル3 | クロックサイクル3では、すべての入力が有効になり、サブVI Cの出力が初めて有効になるため、パイプラインが一杯になります。サブVI Aで3番目の測定値 (Meas3) が処理されると、サブVI Bでクロックサイクル2のサブVI Aの出力が処理され、サブVI Cでクロックサイクル2のサブVI Bの出力が処理されるため、最初の測定値 (Meas1) に対応する出力が生じます。パイプラインが一杯になると、それ以降のすべてのクロックサイクルで、2つのクロックサイクルの定数遅延がある状態の有効出力が発生します。 |
![]() |
ヒント 無効な出力による不要な動作を回避し、N回のクロックサイクルが経過した後にのみ制御アルゴリズムでアクチュエータが有効になるようにするために、ケースストラクチャを使用することを検討してください。 |
パイプライン処理をシングルサイクルタイミングループで使用することにより、より高速なクロック領域を利用でき、スループットを向上することができます。
下記の図の上のセクションは非パイプライン型のループの実行タイミングを示します。このコードは3つのサブVIで構成されており、それぞれに12.5 nsの伝播遅延が必要です。サブVI AからサブVI Cの合計伝播遅延は、40 MHzでコンパイルするのに長すぎる37.5 nsです。
図の中央のセクションは、コードのパイプライン処理により伝播遅延が12.5 nsに減少し、ループが40 MHzでコンパイル可能になる方法を示します。
図の下のセクションは、パイプライン処理をしたループの伝播遅延が12.5 nsしかないために、80 MHzもの高いクロックレートでループがコンパイルされる様子を示します。
![]() |
メモ パイプライン型設計のクロックサイクル単位でのレイテンシは、非パイプライン型設計の場合よりも増加します。ただし、パイプライン処理ではクロック周期を減らすことが可能なため、時間単位で考えた場合のレイテンシは大差はありません。 |
役に立った
役に立たなかった