Xilinx Platform Studio で生成したAXIベースシステムのシミュレーション
EDK(Embedded Development Kit)は、Xilinx FPGAデバイスに実装するための完全なエンベデッドプロセッサシステムを設計するためのツールとIPのスイートです。Xilinx Platform Studio (XPS)は、EDKの一部で、エンベデッドプロセッサシステムのハードウェア部分を設計するための開発環境になります。ハードウェア部分の機能は、HDLシミュレータを使用してデザインを実行することで検証可能です。たとえば、Aldec Active-HDLまたはRiviera-PROを使用して組み込みデザインをシミュレートすることができます(Figure 1)。
Figure 1. XPSとRiviera-PROを使用したエンベデッドデザインフロー
シミュレーション用のHDLファイルを含む検証プロセスの構造は、XPSによって自動的に設定されます。 XPSベースシステムの場合、AXI BFMのpcoreラッパーは、EDK Install IP catalog(1)のVerificationにあります。AXI BFMは、他のAXIベースのIPコアと同じ方法でEDKシステムに追加して接続できます。プロジェクトにコアを追加し、コアをパラメータ化し、そしてコアをシステムに接続します(AXIインターフェイスに関連したバスインタフェースによって)。
Figure 2. XPSのCIPウィザード
AXI BFMシミュレーションを含むカスタムAXIベースのIPを作成するには、XPS GUIで使用可能なXPS Create IP(CIP)ウィザード(Figure 2)を使用します。
-
ウィザードを有効にするには、Hardware—Create or Import Peripheral を選択します。
-
Next をクリックし、Create templates for a new peripheral を選択します。
-
Next をクリックし、周辺機器のリポジトリを選択します。
-
Next をクリックし、IPの名前 (custom_axi_ip)を設定します。
-
Next をクリックし、バスインタフェース(AXI4: Bust Capable…)を選択します。
-
Nextをクリックし、 User logic master support をチェックします。
-
Peripheral Simulation Support ページに達するまでNext をクリックします。
-
Generate BFM simulation platform (Figure 3)をチェックし、Next, Next, Finish の順でクリックします。
Figure 3. XPSでのAXI BFMシミュレーションプラットフォームの生成
ウィザードはカスタムIPコアを適切なAXI BFMプロジェクトと一致させ、シミュレーションで使用するIPおよびAXI BFMラッパーファイルを含むディレクトリを生成します(Figure 4)。
Figure 4. CIP ウィザードの出力ディレクトリ
AXI BFMシミュレーションは、/devl/bfsimサブディレクトリから実行できます(Xilinxは、AXIベースのIP BFMシミュレーションで使用するAXI BFMラッパーファイルを提供しています)。 AXIベースのマスタ/スレーブIPが生成されると、対応するAXI BFMコアが追加され、カスタムコアの開発を支援します。.
現在の例では、”User Logic Master Support”が有効になっています。したがって、custom_axi_ip には、AXI4マスタインタフェースとAXI4-Liteスレーブインタフェースがあり、それぞれAXI4バスとAXI4-Liteバスインタフェースで接続されています。AXI BFMシミュレーションディレクトリでは、シミュレーションにAXI4_MASTER_BFM_WRAPPER、AXI4_LITE_MASTER_BFM_WRAPPER、そしてAXI4_SLAVE_BFM_WRAPPERが使用されています。Riviera-PROで生成されたAXIベースのIPをシミュレートするには、次の手順を実行する必要があります:
Step 1
simgen// bfm_system.mhs -p // xc6vlx240tff1156-1 -lang // Verilog -lp // /home/Xilinx/ -s mgm // Target Simulator (mgm = Mentor Graphics ModelSim®) -tb // Generate Testbench template -od // /devl/bfmsim
生成プロセスが完了するまで待ちます(”Simulation Model Generator done!”メッセージ)。
Step 2 bfm_system_tb.v テストベンチファイルを/devl/bfmsim/scriptsから新しく生成された/devl/bfmsim/simulation/behavioral フォルダにコピーします:
Figure 5. Riviera-PRO バッチ置き換えダイアログ
Step 3 /devl/bfmsim/simulation/behavioralフォルダの.doマクロをRiviera-PROフォーマットに変換します:
-
すべての.doファイルで-novopt を-dbg に置き換えます。
Note: Riviera-PROのEdit—Replace in Files ツール(Figure 5) を使用してバッチを置き換えることも出来ます。
-
bfm_system_setup.do内のlibxil_vsim.so の名前をlibxil_riviera.so に変更します。
-
*_wave.do ファイルの"/bfm_system_tb${ps}dut" を"sim:/bfm_system_tb${ps}dut" に置き換えます。
-
すべての*_wave.do ファイルで、-noupdate を “” (削除) に置き換えます
-
bfm_system_wave.do の“Wave window configuration information”セクションをコメントアウトします。
Step 4 un.doマクロを準備し、/devl/bfmsim/simulation/behavioralフォルダに保存します:
do bfm_system_setup.do # Define macros and commands c # Compile BFM test modules s # Load BFM test platform w # Load Waveform Viewer run 100 us # Run test time
Step 5 Riviera-PROを起動し、コンソールにdo run.doと入力します。AXI BFMのライセンスが利用可能である場合(環境の設定方法の詳細については、Active-HDLでのAXIベースデザインのシミュレーション方法またはRiviera-PROでのAXIベースデザインのシミュレーション方法を参照)、シミュレーション実行で波形ビューアに適切な活動が表示されます。AXI BFMの設定の詳細は、Riviera-PROのコンソールで確認できます:
# KERNEL: BFM Xilinx: License succeeded for Xilinx_AXI_BFM, version 2010.100000
# KERNEL: **********************************************************
# KERNEL: * Cadence AXI 4 LITE MASTER BFM *
# KERNEL: **********************************************************
# KERNEL: * VERSION NUMBER : 2.1
# KERNEL: **********************************************************
# KERNEL: * CONFIGURATION:
# KERNEL: * NAME = MASTER_0
# KERNEL: * DATA_BUS_WIDTH = 32
# KERNEL: * ADDRESS_BUS_WIDTH = 32
...
Riviera-PROのサンプル波形(Figure 6)は、AXI4バスを介してBFM_BURST_PROCESSORによって実行された次のトランザクションを示しています:
-
BFM_MEMORYのアドレス 0x4000000ヘバーストライト
-
BFM_MEMORYのアドレス 0x4000040ヘバーストライト
-
BFM_MEMORYのアドレス 0x4000040カラバーストリード
Figure 6. BFM_BURST_PROCESSOR シミュレーション波形の断片
References
-
AXIバスファンクションモデルv2.1の製品仕様 http://www.xilinx.com/support/documentation/ip_documentation/cdn_axi_bfm/v2.1/ds824_axi_bfm.pdf