« Prev | Next » 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ポートに接続されます。本アプリケーションノートでは、以下を前提としています。 Xilinx Zynq-7000デバイスとVivado Design Suite 2014.4以降を所有している。 Riviera-PROバージョン2014.10以降のライセンスを持ち、正しくインストールされている。 VIVADO用のAXIライセンス(AXI BFMシミュレーションモデル)とIP Integratorライセンスを持っている。 Riviera-PROにXilinxシミュレーションライブラリのうち必要なものがある。必要となるのは unisims_ver と secureip (axi_bfmもこれに含まれる)。 Xilinxシミュレーションライブラリのコンパイルが必要な場合は、次をご参照ください。http://www.aldec.com/en/support/resources/documentation/articles/1710 または コンパイル済みシミュレーションライブラリはアルデックのウェブサイトからダウンロードできます。http://www.aldec.com/en/downloads 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でアルデックのシミュレータを有効にする Windowsの場合は c:\Users\\AppData\Roaming\Xilinx\Vivado、Linuxの場合は /.Xilinx/Vivado ディレクトリで、ini.tclファイルを開くかまたはなければ作成して、次の行を追加します。 set_param project.enableAldecUnifiedFlow 1 Vivado環境で、ToolsメニューでXilinx Tcl Storeオプションを利用できる状態にしてXilinx Tcl Storeを開き、ウィンドウ下にあるRefreshボタンをクリックします。Storeで利用可能なアプリケーションリストが更新されます。 Riviera-PRO Simulatorがアプリケーションリストにあるはずです。その隣にあるInstallボタンをクリックして、Riviera-PROを有効にします。 Zynq BFMシミュレーションの実行 次に進む前に、上記の要件がすべて整っているかどうかご確認ください。 Riviera-PROのインストールへのパスを%PATH%環境変数に追加します。これが正しく設定されているかどうか確認するには、Windowsコマンドプロンプトを開き、"path"とタイプしてENTERを押します。Riviera-PROのインストールディレクトリが出力の中にあるかどうか確認します。 図1: PATH環境変数のチェック 注: Vivadoが動作中にこのパスを追加した場合、Vivadoでこのパスを有効にするには、Vivadoを再起動する必要があります。 サンプルデザインがVivadoに正しく読み込まれたかどうか確認します。zynqシステムのブロックデザインはXilinx AR#55345のものと類似しています。 Flow Navigatorで、Simulationセクションの下のSimulation Settingsをクリックします。Project Settingsウィンドウが開きますので、Generalカテゴリ下のTarget LanguageがVerilogになっていることを確認します。 図2: General Project Settings Project SettingsウィンドウでSimulationカテゴリを選びます。Compilationタブで、Target simulatorをRiviera-PRO Simulatorに変更します。riviera.compile.vlog.more_optionsフィールドに+define+XILINX_ISIMを追加し、riviera.compile.debugフィールドのチェックボックスをチェックします。後者のオプションはシミュレーション中にデバッグ機能を有効にし、Riviera-PROのデバッグツールを使えるようにするためのオプションです。 図3: コンパイルオプション Simulationタブで、riviera.simulate.runtimeフィールドに-allという値を設定します。こうすると、シミュレーションイベントのスケジュールがなくなる時点まで、またはコードまたは信号のブレークポイントで止まるまで、シミュレーションが進みます。 図4: シミュレーションオプション 注: シミュレーションとシミュレーションの間にRiviera-PROのバージョンがアップデートされた場合、Project Settings ウィンドウの Simulationカテゴリにある Clean Up Simulation ファイルオプションで、以前のバージョンのアルデックシミュレータで生成されたファイルを削除する必要があります。 Flow Navigatorで、Run Simulationをクリックし、次いでRun Behavioral SimulationをクリックしてVivadoからRiviera-PROを起動します。デザインのコンパイルとシミュレーション実行に必要なコマンドが記述された.doスクリプトが作成されます。 図5: Riviera-PROの起動 Riviera-PROが起動したらすぐ、ツールバーの「赤いバツ」ボタンをクリックして実行中のオペレーションをブレークします。Riviera-PROでVivadoからZynq BFMシミュレーション用に作成されたスクリプトの実行が止まります。このスクリプトをRiviera-PROで実行するには微修正が必要なので、この作業が必要になります。 図6: 進行中のオペレーションをブレーク デザインフォルダの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 File | Save Asメニューでスクリプトの名前を変更します。変更が必要なのは、Vivadoでデザインを変更してRiviera-PROを再起動するたびに、スクリプトは上書きされるためです。 スクリプトを実行します。シミュレーション結果を波形で確認します。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をシミュレーションする際に問題が発生した場合は、アルデックのカスタマーポータルからサポートまでお問い合わせください。 Previous article Next article