Vivado Design Suite には、ユーザー設定に基づいて 1 つのデザインに複数のシミュレーション セットを含める機能があります (AR: 64111 )。特に、1 つのデザインに対して複数のテストベンチを作成できます。たとえば、エラボレート済みデザインのビヘイビアー シミュレーションで使用するスティミュラスを提供するテストベンチと、インプリメント済みデザインのタイミング シミュレーションで使用するスティミュラスを提供するテストベンチを用意することが可能です。
AXI VIP 2017.1 リリースのサンプル デザインには、 表: AXI VIP のシミュレーション セット に示すシミュレーション セットが用意されています。 sim_all_config は、すべての機能を備えたシミュレーション セットです。機能の一覧は、 「AXI VIP のサンプル テストベンチとテスト」 を参照してください。ここには、 AXI VIP を複雑な方法で使用したいくつかの例も示しています。
ユーザーの便宜を図るため、このサンプル デザインには上記のシミュレーション セット以外にシンプルなコードを使用したシミュレーション セットが 10 種類用意されています。これら 10 個のシミュレーション セットの命名規則は次のとおりです。
sim_<basic または adv>_mst_<mode>__pt_<mode>__slv_<mode>
ただし、 mode = active、mem、passive、または combo
たとえば、 sim_basic_mst_passive__pt_mst__slv_comb は AXI マスター VIP がパッシブ モードの場合の AXI VIP の基本機能を実行するシミュレーション セットであることを表しています。AXI パススルー VIP はランタイム マスター モードで、メモリ モデルなしの AXI スレーブ VIP と通信します。
10 種類のシミュレーション セットの各テストベンチには、 generic_tb.sv 、マスター スティミュラス、およびスレーブ スティミュラスの 3 つのファイルがそれぞれ含まれます。
• generic_tb は、スレーブ側 (AXI スレーブ VIP またはランタイム スレーブ モードの AXI パススルー VIP) を基準にして、マスター側 (AXI マスター VIP またはランタイム マスター モードの AXI パススルー VIP) に対するシンプルなセルフチェックを実行します。
• マスター スティミュラスは、AXI マスター VIP またはランタイム マスター モードの AXI パススルー VIP によって生成されます。
• スレーブ スティミュラスは、AXI スレーブ VIP またはランタイム スレーブ モードの AXI パススルー VIP (メモリ モデルあり、またはなし) によって生成されます。スレーブ メモリ スティミュラス ファイルが含まれており、このファイルにアクセスするとメモリ モデルありの AXI スレーブ VIP をチェックできます。
ベーシック シミュレーション セットとアドバンスト シミュレーション セットの違いとして、ベーシック シミュレーション セットは AXI VIP を使用するためにテストベンチで必要なコード スニペットを示しています。アドバンスト シミュレーション セットには、ユーザー設定可能な READY 信号などのオプション API も追加されています。詳細は、Vivado Design Suite のサンプル デザインを参照してください。API の使用法は、 ザイリンクス AXI VIP API の資料 [参照 12] を参照してください。
次に、各モードに対するトランザクションの生成方法を示します。
1. AXI マスター VIP 用のトランザクションを生成する方法は、 表: AXI VIP のシミュレーション セット に示した 10 種のシミュレーション セットのいずれかに含まれる mst_stimulus.sv を参照してください。
2. ベーシック AXI スレーブ VIP 用のトランザクション応答を生成する方法は、 表: AXI VIP のシミュレーション セット に示した 10 種のシミュレーション セットのいずれかに含まれる slv_basic_stimulus.sv を参照してください。メモリ モデルの要件は、 mem_basic_stimulus.sv を参照してください。
3. アドバンスト AXI スレーブ VIP 用のトランザクション応答を生成する方法は、 表: AXI VIP のシミュレーション セット に示した 10 種のシミュレーション セットのいずれかに含まれる slv_stimulus.sv を参照してください。メモリ モデルの要件は、 mem_stimulus.sv を参照してください。
4. AXI パススルー VIP 用のトランザクションを生成する方法は、 表: AXI VIP のシミュレーション セット に示したシミュレーション セットのいずれかに含まれる passthrough_mst_stimulus.sv を参照してください。
5. ベーシック AXI パススルー VIP 用のトランザクション応答を生成する方法は、 表: AXI VIP のシミュレーション セット に示したシミュレーション セットのいずれかに含まれる passthrough_slv_basic_stimulus.sv を参照してください。メモリ モデルの要件は、 passthrough_mem_basic_stimulus.sv を参照してください。
6. アドバンスト AXI パススルー VIP 用のトランザクション応答を生成する方法は、 表: AXI VIP のシミュレーション セット に示したシミュレーション セットのいずれかに含まれる passthrough_slv_stimulus.sv を参照してください。メモリ モデルの要件は、 passthrough_mem_stimulus.sv を参照してください。
7. [Sources] ウィンドウで AXI VIP のサンプル デザインを開くと、11 種類のシミュレーション セットが表示されます。いずれかのシミュレーション セットを選択してシミュレーションを実行することも、各テストベンチのソース コードを表示することもできます。
次の 4 つの図に、 AXI VIP のベーシック シミュレーション セット、アドバンスト シミュレーション セット、および sim_all_config シミュレーション セットを示します。
この図 に、Vivado IDE でのシミュレーション設定例を示します。