インテル® FPGA SDK for OpenCL™プロ・エディション: プログラミング・ガイド

ID 683846
日付 4/01/2019
Public
ドキュメント目次

12.1.1.3. ストールのないRTL

インテル® FPGA SDK for OpenCL™オフライン・コンパイラーでは、レイテンシーを固定しRTLモジュール周辺のストールロジックを削除することにより、ハードウェアのリソース使用率とパフォーマンスを最適化できます。
可変レイテンシーを持ち、Avalon®-STの入出力信号を使用するRTLモジュールは、入力データの準備が整うまで待機します。一方インテル FPGA SDK for OpenCLパイプラインは、RTLモジュールからの有効な出力データを受け取るまでストールします。固定レイテンシーを有するRTLモジュールでは、 <RTL module description file name>.xml仕様ファイルを次の記述のように変更することで、RTLのストールを削除することができます。
  1. 可能な場合にRTLモジュール周囲のストールロジックを削除するようオフライン・コンパイラーに指示するには、FUNCTION要素のIS_STALL_FREE属性を"yes"に設定します。
    この変更は、RTLモジュールがEXPECTED_LATENCYサイクルごとに有効なデータを生成することをオフライン・コンパイラーに通知します。
    注: EXPECTED_LATENCYは、FUNCTION要素の.xmlファイルで指定する属性です。
  2. レイテンシーがモジュールのパイプライン・ステージ数に等しくなるようEXPECTED_LATENCYの値を指定します。
    注意:
    不正確なEXPECTED_LATENCYの値を指定すると、RTLモジュールがパイプラインの他の部分と同期しなくなります。

ストールのないRTLモジュールは、無効な (ivalidがLowの) 入力信号を受け取る可能性があります。この場合モジュールは入力を無視し、出力に無効なデータを生成します。ストールのないRTLモジュールに内部状態がない場合、モジュールを通して無効な入力を伝播するほうが容易な場合があります。ただし内部状態を持つRTLモジュールでは、ivalid=0入力の処理に注意する必要があります。