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 プロジェクト ファイル | すべて |
imports ディレクトリ | ||
<kernel_name>.v | カーネル最上位モジュール | すべて |
<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 | シミュレーション テストベンチ | すべて |
<kernel_name>_cmodel.cpp | ソフトウェア エミュレーション用のソフトウェア C モデル サンプル。 | すべて |
<kernel_name>_ooc.xdc | アウト オブ コンテキスト ザイリンクス制約ファイル | すべて |
<kernel_name>_user.xdc | カーネル ユーザー制約用のザイリンクス制約ファイル。 | すべて |
kernel.xml | カーネル記述ファイル | すべて |
package_kernel.tcl | カーネル パッケージ スクリプトのプロシージャ定義 | すべて |
post_synth_impl.tcl | Tcl インプリメンテーション後ファイル | すべて |
exports ディレクトリ | ||
src/host_example.cpp | ホスト コード例 | すべて |
makefile | makefile サンプル | すべて |