Riviera-PRO上でのXilinx ZynqのBFMの機能シミュレーション

はじめに

Zynq-7000のバスファンクショナルモデル(BFM)は、Zynq-7000ベースのアプリケーションの機能シミュレーションをサポートする目的でXilinx™が開発したものです。これを用いてプログラマブル・ロジック(PL)の機能検証が可能です。このBFMは処理系/プロセッシング・システム(PS)、プログラマブル・ロジック(PL)インタフェース、PSロジックのメモリを模倣しています。

要求事項と制限

このシナリオにはPLがないため、Cadence AXI BFMのPLを模倣しています。このBFMはZynq-7000 BFMの個々のAXIポートに接続されます。本アプリケーションノートでは、以下を前提としています。

  1. Xilinx Zynq-7000デバイスとVivado Design Suite 2014.4以降を所有している。

  2. Riviera-PROバージョン2014.10以降のライセンスを持ち、正しくインストールされている。

  3. VIVADO用のAXIライセンス(AXI BFMシミュレーションモデル)とIP Integratorライセンスを持っている。

  4. Riviera-PROにXilinxシミュレーションライブラリのうち必要なものがある。必要となるのは unisims_ver と secureip (axi_bfmもこれに含まれる)。

  5. Xilinxのウェブサイトからサンプルデザイン zynq_bfm_example.tar.gz をダウンロードします。本ドキュメントの指示に従ってサンプルデザインをVivadoにセットアップします。

注: Xilinx Vivado と Riviera-PRO は同じビット版でなければなりません。64ビット版のRiviera-PROを使用する場合は、64ビット版Vivadoが必要です。32ビット版を使う場合は、Vivadoも32ビット版を用意してください。32ビット版を使用する場合は、Vivado起動時に-m32引数をvivado.batファイルに渡してください。

Xilinx Vivadoでアルデックのシミュレータを有効にする

  1. Windowsの場合は c:\Users\\AppData\Roaming\Xilinx\Vivado、Linuxの場合は /.Xilinx/Vivado ディレクトリで、ini.tclファイルを開くかまたはなければ作成して、次の行を追加します。

    set_param project.enableAldecUnifiedFlow 1
    
  2. Vivado環境で、ToolsメニューでXilinx Tcl Storeオプションを利用できる状態にしてXilinx Tcl Storeを開き、ウィンドウ下にあるRefreshボタンをクリックします。Storeで利用可能なアプリケーションリストが更新されます。

  3. Riviera-PRO Simulatorがアプリケーションリストにあるはずです。その隣にあるInstallボタンをクリックして、Riviera-PROを有効にします。

Zynq BFMシミュレーションの実行

次に進む前に、上記の要件がすべて整っているかどうかご確認ください。

  1. Riviera-PROのインストールへのパスを%PATH%環境変数に追加します。これが正しく設定されているかどうか確認するには、Windowsコマンドプロンプトを開き、"path"とタイプしてENTERを押します。Riviera-PROのインストールディレクトリが出力の中にあるかどうか確認します。

    図1: PATH環境変数のチェック

    注: Vivadoが動作中にこのパスを追加した場合、Vivadoでこのパスを有効にするには、Vivadoを再起動する必要があります。

  2. サンプルデザインがVivadoに正しく読み込まれたかどうか確認します。zynqシステムのブロックデザインはXilinx AR#55345のものと類似しています。

  3. Flow Navigatorで、Simulationセクションの下のSimulation Settingsをクリックします。Project Settingsウィンドウが開きますので、Generalカテゴリ下のTarget LanguageがVerilogになっていることを確認します。

    図2: General Project Settings

  4. Project SettingsウィンドウでSimulationカテゴリを選びます。Compilationタブで、Target simulatorをRiviera-PRO Simulatorに変更します。riviera.compile.vlog.more_optionsフィールドに+define+XILINX_ISIMを追加し、riviera.compile.debugフィールドのチェックボックスをチェックします。後者のオプションはシミュレーション中にデバッグ機能を有効にし、Riviera-PROのデバッグツールを使えるようにするためのオプションです。

    図3: コンパイルオプション

  5. Simulationタブで、riviera.simulate.runtimeフィールドに-allという値を設定します。こうすると、シミュレーションイベントのスケジュールがなくなる時点まで、またはコードまたは信号のブレークポイントで止まるまで、シミュレーションが進みます。

    図4: シミュレーションオプション

    注: シミュレーションとシミュレーションの間にRiviera-PROのバージョンがアップデートされた場合、Project Settings ウィンドウの Simulationカテゴリにある Clean Up Simulation ファイルオプションで、以前のバージョンのアルデックシミュレータで生成されたファイルを削除する必要があります。

  6. Flow Navigatorで、Run Simulationをクリックし、次いでRun Behavioral SimulationをクリックしてVivadoからRiviera-PROを起動します。デザインのコンパイルとシミュレーション実行に必要なコマンドが記述された.doスクリプトが作成されます。

    図5: Riviera-PROの起動

  7. Riviera-PROが起動したらすぐ、ツールバーの「赤いバツ」ボタンをクリックして実行中のオペレーションをブレークします。Riviera-PROでVivadoからZynq BFMシミュレーション用に作成されたスクリプトの実行が止まります。このスクリプトをRiviera-PROで実行するには微修正が必要なので、この作業が必要になります。

    図6: 進行中のオペレーションをブレーク

  8. デザインフォルダのtest_simulate.doスクリプトを探して開きます。

    図7: スクリプトを開く

    スクリプトに、次のコマンドを追加します。それぞれ、secureipライブラリとunisims_verライブラリをマッピングするコマンドです。

    amap secureip "$aldec\\vlib\\xilinx_vivado\\secureip\\secureip.lib"
    amap unisims_ver "$aldec\\vlib\\xilinx_vivado\\unisims_ver\\unisims_ver.lib"
    

    asimコマンドでは、libxil_vsim.dllライブラリをlibxil_riviera.dllに変更します。Riviera-PROとVivadoが32ビット版か64ビット版かに合わせて、ライブラリのバージョンも適切なものを選びます。

    • 32ビット版はC:/Xilinx/Vivado/2014.4/lib/win32.oに保存されています。

    • 64ビット版はC:/Xilinx/Vivado/2014.4/lib/win64.oに保存されています。

    64ビット版Riviera-PROでは、asim呼び出しは次のようにします。

    asim -t 1ps +access +r +m+test -L unisims_ver -L unimacro_ver -L secureip -L xil_defaultlib -O5 \
    -pli "C:/Xilinx/Vivado/2014.4/lib/win64.o/libxil_riviera.dll" xil_defaultlib.test xil_defaultlib.glbl
    
  9. File | Save Asメニューでスクリプトの名前を変更します。変更が必要なのは、Vivadoでデザインを変更してRiviera-PROを再起動するたびに、スクリプトは上書きされるためです。

  10. スクリプトを実行します。シミュレーション結果を波形で確認します。Console出力は次のようになります。

    図8: シミュレーション結果

おわりに

XilinxのZynq-7000 BFMのシミュレーションはRiviera-PROで実行可能です。Zynq-7000 BFMについて詳しくは、次のリンクをご参照ください。 http://www.xilinx.com/support/documentation/ip_documentation/cdn_zynq_bfm/v1_00/ds897-zynq-bfm.pdf

Riviera-PROでZynq-7000 BFMをシミュレーションする際に問題が発生した場合は、アルデックのカスタマーポータルからサポートまでお問い合わせください。

Ask Us a Question
x

Ask Us a Question

x
Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.