IPのシミュレーションAXIマスターオリジナルIPを製作する為に、Xilinx社提供のサンプルコードでのシミュレーションをご紹介します。(BFM)を使用すれば良いのですが、こちらは有償となっておりますので、MicroBlazeのIPを接続してシミュレーションする環境をご紹介いたします。Processor(MicroBlaze)を含めないAvnet社製MicroBoardの環境準備avnet社のホームページよりMicroBoardのXBDを入手します。Downloadsから入手できます。avnet_edk14_3_xbd_files.zip/boards/Avnet_S6LX9_MicroBoard_RevBを/Xilinx/14.7/ISE_DS\EDK/board/Xilinx/boardsにコピーします。avnet_edk14_3_xbd_files.zip/ipxact/S6_MicroBoard_v1_0を/Xilinx/14.7/ISE_DS\EDK/board/Xilinx/ipxactにコピーします。MicroBoardプロジェクトの作成ISEプロジェクトを作成します。RevBを選択します。その他は変更せずにfinishまで進めます。Processorを追加します。Wizardの使用を確認されるので、Yesを選択します。Systemがデフォルトで選択されていますので、そのまま次に進みます。BoardおよびSystemに関する設定はデフォルトのままで次に進みます。processorとperipheralに関する設定です。今回は、AXI-MASTERのシミュレーションに特化しますので不要なペリフェラルをすべて削除します。MCB3_LPDDR(Cached)以外はすべてRemoveして、Finishします。Wizardが終了するとXPSが起動します。今回は、AXI-MASTERのシミュレーションに特化しますのでaxilite_0とmicroblaze関連のIP及びdebug_moduleを削除します。AR37425.zipをxilinx社のホームページからダウンロード-解凍して、axi_master_v1_00_aフォルダをAXI_MASTER_TEST/AXI_MASTER_TEST/pcoresにコピーします。Masterが追加されます。MCB_LPDDRのAddressを確認します。0xA4000000-0xA7FFFFFFになっています。Masterが追加されます。C_M_AXI_TARGETは、前項で確認したMCB_LPDDRの先頭アドレスである0xA4000000を設定します。C_M_AXI_BURST_LENは、AXIのバースト長を指定します。今回はディフォルトのままにします。C_OFFSET_WIDTHはサンプルの書き込み範囲のビット数を示しております。初期値は9になっていますので0xA4000000から0xA40001FFまでの512バイトのWrite/Readテストを行います。C_M_AXI_PROTOCOLはAXI(ディフォルト値)とします。その他は変更不要です。axi_master_0が追加されますので、axi_master_0をaxi4_0にバス接続します。MCB3_LPDDRをaxi4_0にバス接続します。これで、axi_master_0とMCB3_LPDDRがAXI4で接続されました。SDRAMのシミュレーションモデルを生成する為に、MCB3_LPDDRのMIGを起動します。設定の変更は必要ありませんので、そのまま進んでいき、finishします。SDRAMのシミュレーションモデルが生成されます。axi_master_0のポートを接続します。Viewを確認します。Checkを行いErrorおよびWarningがないことを確認してXPSを終了します。Sourceを実行します。AXI_MASTER_TEST_top.vが生成されます。WizardでISEプロジェクトに新しくテストベンチファイルを追加します。AXI_MASTER_TEST_topを選択します。SDRAMのシミュレーションモデル「AXI_MASTER_TEST/AXI_MASTER_TEST/__xps\MCB3_LPDDRのlpddr_model.v」をプロジェクトに追加します。lpddr_modelがプロジェクトに追加されました。lpddr_modelとの接続等をテストベンチファイルAXI_MASTER_TEST_tf.vに記述します。simulatorを実行すると、ワーニングが発生します。4ビットとなっています。`includesにあるlpddr_model_parameters.vhを見てみると、メモリ種別に対するifdefがあります。XPSを再度立ち上げて、MCB3_LPDDRのMIGを起動しすると、MCB3_LPDDRのメモリパートは、MCBMT46H32M16XXXX-5が選択されています。Value)にx512Mb|sg5|x16と入力します。(CL=3))パラメータは必ず”|”で結合してください。x16これらでは、認識しません。mem::Dm[1:0]となり、シミュレーションが成功します。コメントは受け付けていません。お問い合わせさまざまな技術情報を掲載いたします。ご興味などございましたら、お気軽にお問い合わせください。