RTL タイプのカーネルは、制御レジスタおよび Vadd
サブモジュールのサンプル デザインで構成される最上位 Verilog デザインが含まれます。次の図に、2 つの AXI4 マスター インターフェイスを含む最上位デザインを示します。制御レジスタ モジュールを変更する場合は、このモジュールと Vivado カーネル プロジェクトの imports ディレクトリにある kernel.xml ファイルとの一致が保持されるようにしてください。サンプル ブロック カスタム ロジックに置き換えるか、デザインの開始点として使用できます。
図 1. カーネル タイプ RTL の最上位
次の図に示す Vadd
サンプル ブロックは、単純な加算器関数、AXI4 読み出しマスター、および AXI4 書き込みマスターで構成されています。定義されている AXI4 インターフェイスそれぞれに、個別のサンプル加算器コードがあります。各インターフェイスに最初に関連付けられている引数は、サンプルのデータ ポインターとして使用されます。各サンプルは 16 KB のデータを読み出し、32 ビットの「1 を足す」演算を実行し、16 KB のデータを元の位置に書き込みます (読み出しアドレスと書き込みアドレスは同じ)。
図 2. カーネル タイプ RTL の例
次の表では、カーネルの Vivado プロジェクトのルートにある重要なファイルについて説明します。<kernel_name>
は RTL Kernel ウィザードで指定したカーネルの名前になります。
ファイル名 | 説明 | 配布されるカーネル タイプ |
---|---|---|
<kernel_name>_ex.xpr | Vivado プロジェクト ファイル | All |
imports ディレクトリ | ||
<kernel_name>.v | カーネル最上位モジュール | All |
<kernel_name>_control_s_axi.v | RTL 制御レジスタ モジュール | RTL |
<kernel_name>_example.sv | RTL サンプル ブロック | RTL |
<kernel_name>_example_vadd.sv | RTL サンプル AXI4 ベクター加算ブロック | RTL |
<kernel_name>_example_axi_read_master.sv | RTL サンプル AXI4 読み出しマスター | RTL |
<kernel_name>_example_axi_write_master.sv | RTL サンプル AXI4 書き込みマスター | RTL |
<kernel_name>_example_adder.sv | RTL サンプル AXI4-Stream 加算ブロック | RTL |
<kernel_name>_example_counter.sv | RTL サンプル カウンター | RTL |
<kernel_name>_exdes_tb_basic.sv | シミュレーション テストベンチ | All |
<kernel_name>_cmodel.cpp | ソフトウェア エミュレーション用のソフトウェア C モデル サンプル。 | All |
<kernel_name>_ooc.xdc | アウト オブ コンテキスト ザイリンクス制約ファイル | All |
<kernel_name>_user.xdc | カーネル ユーザー制約用のザイリンクス制約ファイル。 | All |
kernel.xml | カーネル記述ファイル | All |
package_kernel.tcl | カーネル パッケージ スクリプトのプロシージャ定義 | All |
post_synth_impl.tcl | Tcl インプリメンテーション後ファイル | All |
exports ディレクトリ | ||
src/host_example.cpp | ホスト コード例 | All |
makefile | makefile サンプル | All |