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.
We use cookies to ensure we give you the best user experience and to provide you with content we believe will be of relevance to you. If you continue to use our site, you consent to our use of cookies. A detailed overview on the use of cookies and other website information is located in our Privacy Policy.