このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。
AXI マネージャーのシミュレーション
メモ
MATLAB® AXI マスターの名前が AXI マネージャーに変更されました。ソフトウェアおよびドキュメントでは、「マネージャ」および「従属」という用語がそれぞれ「マスター」および「スレーブ」に置き換わります。
アルゴリズムを FPGA に展開する前に、アルゴリズムをシミュレートし、ボード上のシミュレートされたメモリまたはメモリ マップされたレジスタに対して読み取りおよび書き込み操作を実行できます。提供されている SystemVerilog readmemory
およびwritememory
タスクを使用して、ボード上のメモリ マップされた場所の読み取りおよび書き込みを行います。シミュレーションはVivado®シミュレーターでのみ利用でき、動作シミュレーションのみを実行できます。
AXI マネージャー IP をデザインに統合するには、 AXI Manager IP を FPGA デザインに統合を参照してください。AXI マネージャー IP をデザインに統合した後、テスト対象デザイン (DUT)、メモリ インターフェイス ジェネレーター (MIG)、AXI マネージャー IP、クロック、およびリセット ロジックを含む SystemVerilog ラッパーを作成します。その後、SystemVerilog テストベンチでラッパーをインスタンス化し、シミュレーションできます。
HDL ラッパーの作成
FPGA デザインのラッパーを作成します。ラッパーには、ユーザー ロジックと FPGA ロジックがすべて含まれています。ラッパーへのインターフェイスには、クロック ポートとリセット ポート、およびメモリまたはその他のオンボード周辺機器へのオプションの DDR3 インターフェイスが含まれます。Vivadoでデザインを作成して設定した後、 Vivadoの「Sources」ウィンドウに移動します。「Sources」タブの「Design Sources」の下のデザイン名を右クリックし、 「Create HDL Wrapper
」を選択します。このアクション、 design_name
_wrapper.v
という名前の HDL ファイルが作成されます。ここで、design_name
/hdldesign_name
はVivadoの名前です。 $プロジェクト。
SystemVerilog テストベンチ
HDL Verifier™ は、 SystemVerilog シミュレーションでデザインを操作するための SystemVerilog タスクを提供します。SystemVerilog ラッパーを作成した後、SystemVerilog テストベンチでラッパーをインスタンス化します。テストベンチには、メモリ モデルなどのオンボード IP モデルも含まれています。クロックとリセット信号を DUT に駆動します。HDL Verifierに固有の定義を含めるには、テストベンチ ファイルに次のコードを入力して、 hdlverifier
パッケージをテストベンチにインポートします。
import hdlverifier::*;
メモリ位置にデータを書き込む、またはメモリ位置からデータを読み取るには、次の 2 つのセクションで説明するように、それぞれwritememory
およびreadmemory
SystemVerilog タスクを使用します。AXI マネージャー シミュレーションの使用例については、 JTAG ベースの AXI Manager を使用した FPGA メモリへのアクセスを参照してください。
writememory(addr,wdata,burst_type)
SystemVerilog タスク
シミュレーションで AXI4 メモリ マップド従属にデータを書き込みます。
addr
– 書き込み操作の開始アドレスアドレスは、AXI マネージャーの IP アドレス幅に応じて、32 ビットまたは 64 ビットにゼロ拡張されます。アドレスは、FPGA ボード上の AXI マネージャー IP によって制御される AXI 下位メモリの場所を参照する必要があります。詳細については、メモリマッピングのガイドラインを参照してください。
wdata
– 書き込むデータワードデフォルトでは、テストベンチは連続したアドレス ブロックにデータを書き込み、操作ごとにアドレスをインクリメントします。アドレス インクリメント モードをオフにして、各データ値を同じ場所に書き込むには、
burst_type
パラメーターをHDLV_AXI_BURST_TYPE_FIXED
に設定します。burst_type
– AXI4 バースト タイプインクリメント モードの場合は
HDLV_AXI_BURST_TYPE_INCR
を指定し、固定バースト モードの場合はHDLV_AXI_BURST_TYPE_FIXED
を指定します。HDLV_AXI_BURST_TYPE_INCR
モードでは、AXI マネージャーは、指定されたアドレスから始まる連続したメモリ位置からデータのベクトルを読み取ります。HDLV_AXI_BURST_TYPE_FIXED
モードでは、AXI マネージャーは同じアドレスからすべてのデータを読み取ります。
readmemory(addr,length,burst_type)
SystemVerilog タスク
シミュレーションで AXI4 メモリ マップド従属からデータを読み取ります。
addr
– 読み取り操作の開始アドレスアドレスは、AXI マネージャーの IP アドレス幅に応じて、32 ビットまたは 64 ビットにゼロ拡張されます。デフォルトでは、アドレス幅は 32 ビットに設定されています。幅を 64 ビットに設定するには、HDL テスト ベンチで
parameter AXI_ADDR_WIDTH=64
を指定します。アドレスは、FPGA ボード上の AXI マネージャー IP によって制御される AXI 下位メモリの場所を参照する必要があります。詳細については、メモリマッピングのガイドラインを参照してください。length
– 読み取る場所の数読み取るメモリ位置の数を指定します。デフォルトでは、テストベンチは連続したアドレス ブロックから読み取り、操作ごとにアドレスをインクリメントします。アドレス インクリメント モードをオフにして、同じ場所から繰り返し読み取るには、
burst_type
パラメーターをHDLV_AXI_BURST_TYPE_FIXED
に設定します。burst_type
– AXI4 バースト タイプインクリメント モードの場合は
HDLV_AXI_BURST_TYPE_INCR
を指定し、固定バースト モードの場合はHDLV_AXI_BURST_TYPE_FIXED
を指定します。HDLV_AXI_BURST_TYPE_INCR
モードでは、AXI マネージャーは、指定されたアドレスから始まる連続したメモリ位置からデータのベクトルを読み取ります。HDLV_AXI_BURST_TYPE_FIXED
モードでは、AXI マネージャーは同じアドレスからすべてのデータを読み取ります。
メモリマッピングのガイドライン
AXI マネージャー IP データ幅が 32 ビットの場合、メモリは 4 バイトにアラインされ、アドレスは 4 バイトずつ増加します (
0x0
、0x4
、0x8
)。この場合、0x1
は無効なアドレスであるため、エラーが発生します。AXI マネージャー IP データ幅が 64 ビットの場合、メモリは 8 バイトにアラインされ、アドレスは 8 バイトずつ増加します (
0x0
、0x8
、0x10
)。この場合、0x1
または0x4
は無効なアドレスなので、エラーが発生します。AXI マネージャー IP データ幅が 32 ビットで、Burst typeパラメーターが
Increment
に設定されている場合、アドレスは 4 バイトずつ増加します。AXI マネージャー IP データ幅が 64 ビットで、Burst typeパラメーターが
Increment
に設定されている場合、アドレスは 8 バイトずつ増加します。32 ビット レジスタへのアクセスに 64 ビット AXI マネージャーを使用しないでください。