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

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

12.1.1.7. RTLモジュールのXML構文

この章では、倍精度平方根関数を実装するRTLモジュールのシンプルなXML仕様ファイルの構文を提供します。 RTLモジュールは、VerilogラッパーでVHDLに実装されています。

次のXML仕様ファイルは、OpenCL™のヘルパー関数my_sqrtfdを実装するRTLモジュールmy_fp_sqrt_doubleのものです (どちらの名前もライン2にあります)。

 1: <RTL_SPEC>
  2:   <FUNCTION name="my_sqrtfd" module="my_fp_sqrt_double">
  3:     <ATTRIBUTES>  
  4:       <IS_STALL_FREE value="yes"/>
  5:       <IS_FIXED_LATENCY value="yes"/>
  6:       <EXPECTED_LATENCY value="31"/>
  7:       <CAPACITY value="1"/>
  8:       <HAS_SIDE_EFFECTS value="no"/>
  9:       <ALLOW_MERGING value="yes"/>
 10:     </ATTRIBUTES> 
 11:     <INTERFACE>
 12:       <AVALON port="clock" type="clock"/>
 13:       <AVALON port="resetn" type="resetn"/>
 14:       <AVALON port="ivalid" type="ivalid"/>
 15:       <AVALON port="iready" type="iready"/>
 16:       <AVALON port="ovalid" type="ovalid"/>
 17:       <AVALON port="oready" type="oready"/>
 18:       <INPUT port="datain" width="64"/>
 19:       <OUTPUT port="dataout" width="64"/>
 20:     </INTERFACE>
 21:     <C_MODEL>
 22:       <FILE name="c_model.cl" />
 23:     </C_MODEL>
 24:     <REQUIREMENTS>
 25:       <FILE name="my_fp_sqrt_double_s5.v" />
 26:       <FILE name="fp_sqrt_double_s5.vhd" />
 27:     </REQUIREMENTS>
 28:     <RESOURCES>
 29:       <ALUTS value="2057"/>
 30:       <FFS value="3098"/>
 31:       <RAMS value="15"/>
 32:       <MLABS value="43"/>
 33:       <DSPS value="1.5"/>
 34:     </RESOURCES>
 35:   </FUNCTION>
 36: </RTL_SPEC>
表 5.  XML仕様ファイルにおける要素と属性
XML要素 説明
RTL_SPEC XML仕様ファイルにおける最上位の要素です。このような最上位の要素はファイルに1つしか存在できません。
FUNCTION

RTLモジュールが実装するOpenCL関数を定義する要素です。FUNCTION要素のname属性は、関数の名前を指定します。

OpenCLカーネルから呼び出すことのできる、異なる関数を宣言する複数のFUNCTION要素を持つことが可能です。異なるパラメーターを指定することで、同じRTLモジュールに複数の関数を実装できます。

ATTRIBUTES RTLモジュールのさまざまな特性 (レイテンシーなど) を記述する他のXML要素を含む要素です。例にあるRTLモジュールは、32の値を持つWIDTHというPARAMETER設定を1つ取ります。その他のATTRIBUTES固有の要素に関しては、表 6 を参照ください。
注: 異なるモジュールに複数のOpenCLヘルパー関数を作成する場合や、異なるPARAMETER設定で同じRTLモジュールを使用する場合は、関数ごとに個別のFUNCTION要素を作成する必要があります。
INTERFACE RTLモジュールのインターフェイスを記述する他のXML要素を含む要素です。例にあるXML仕様ファイルでは、すべてのRTLモジュールが提供する必要のあるAvalon®-STインターフェイス信号 (clockresetnivalidireadyovalidoready) を示しています。この信号名は.xmlファイルで指定する名前と一致している必要があります。信号名が一致しない場合、ライブラリー作成時にエラーが発生します。
C_MODEL 関数にOpenCL Cモデルを実装する1つ以上のファイルを指定する要素です。モデルはエミュレーション時にのみ使用されます。ただし、C_MODEL要素と関連するファイルは、ライブラリー・ファイル作成時に存在している必要があります。
REQUIREMENTS 1つ以上のRTLリソースファイル (.v.sv.vhd.hex.mif) を指定する要素です。これらのファイルに指定されたパスは、XML仕様ファイルの位置に対応します。各RTLリソースファイルは、OpenCLシステム全体に対応する、関連するPlatform Designer・コンポーネントの一部になります。
注: インテル® FPGA SDK for OpenCL™ ライブラリー機能は、.qipファイルをサポートしません。サポートされていないリソース・ファイル・タイプを含むライブラリーを使用しOpenCLカーネルをコンパイルすると、 インテル® FPGA SDK for OpenCL™オフライン・コンパイラーのエラーが発生します。
 
RESOURCES RTLモジュールが使用するFPGAリソースを指定するオプションの要素です。この要素を指定しない場合、RTLモジュールが使用するFPGAリソースはデフォルトのゼロになります。