FC2カウンター FPGAの部屋 Vivado Simulator用のOVL2.8.1のOVLライブラリをコンパイルして登録した

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Vivado Simulator用のOVL2.8.1のOVLライブラリをコンパイルして登録した

参考にした自分のブログは、”ISim で OVL Ver. 2.7 のOVLライブラリのコンパイルと登録”。Vivado Simulator のバージョンは2014.1とする。

Vivado Simulator で、OVLライブラリを使うためにコンパイルを行った。OVLのバージョンは、”LSI設計雑記帳”さんの”[検証][OVL] OVL 2.8.1リリース”の記事で知った。

まずは、accellera の Download OVL (Open Verification Language) のページから std_ovl_v2p8.1_Apr2014.tgz をダンロードして解凍した。

フォルダ名を std_ovl_v281 とした。(testフォルダとVivado_Libフォルダが自分で作ったフォルダです)
OVL_VivadoSim_1_140523.png

Vivado_Libフォルダを作って、Vivado Simulator 用のライブラリのコンパイルを行った。
OVL_VivadoSim_2_140523.png

調査したところ、Vivado Simulator のVerilog HDLのコンパイル・コマンドは xvlog 、VHDLのコンパイル・コマンドは、xvhdl ということがわかった。これは、”Vivado Design Suite ユーザー ガイド ロジック シミュレーシ ョ ン UG900 (v2013.4) 2013 年 12 月 18 日”の第 5 章 :  Vivado シミ ュレータのコマンド ラインおよび Tcl を参考にした。
この資料を参考に、”ISim で OVL Ver. 2.7 のOVLライブラリのコンパイルと登録”のバッチファイルを変更しただけでは、1つのVerilog HDL ファイルをコンパイルしただけで終了してしまった。(最初にOVLのVerilog HDL ファイルからコンパイルしています)
なぜかと調べると、xvlog, xvhdl コマンド共に、バッチファイルで実装されていた。バッチファイルからバッチファイルを読んでいたので、1つのコマンドを実行した時に終了してしまっていた。
OVL_VivadoSim_3_140523.png

そこで、バッチファイルからバッチファイルを呼び出す方法を探すと、”Windows、バッチファイルからバッチファイルを呼び出す方法あれこれ”が見つかった。バッチファイルからバッチファイルを呼び出すときには、call を前につけて呼び出すことにしたら、うまく行った。

最初に、OVLのVerilog HDL ファイルをコンパイルするバッチファイル、OVL_Verilog_Lib_Comp_VivadoSim.bat を下に示す。


call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_always.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_always_on_edge.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_arbiter.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_bits.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_change.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_code_distance.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_coverage.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_decrement.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_crc.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_cycle_sequence.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_delta.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_even_parity.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_fifo.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_fifo_index.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_frame.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_handshake.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_hold_value.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_implication.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_increment.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_memory_async.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_memory_sync.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_multiport_fifo.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_mutex.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_never.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_never_unknown.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_never_unknown_async.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_next.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_next_state.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_no_contention.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_no_overflow.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_no_transition.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_no_underflow.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_odd_parity.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_one_cold.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_one_hot.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_proposition.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_quiescent_state.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_range.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_reg_loaded.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_req_ack_unique.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_req_requires.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_stack.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_time.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_transition.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_unchange.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_valid_id.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_value.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_value_coverage.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_width.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_window.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_win_change.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_win_unchange.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_xproduct_bit_coverage.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_xproduct_value_coverage.v
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvlog -d OVL_VERILOG -d OVL_ASSERT_ON -d OVL_FINISH_OFF -i D:\HDL\OVL\std_ovl_v281 -work accellera_ovl_vlog D:\HDL\OVL\std_ovl_v281\ovl_zero_one_hot.v


このバッチファイルを実行すると、下に xsim.dir フォルダが生成され、その下の、accellera_ovl_vlog フォルダの下に、OVLのVerilog HDL の各ファイルが .sdb という拡張子でコンパイルされていた。
OVL_VivadoSim_4_140523.png

これで、OVLのVerilog HDL のライブラリのコンパイルは終了した。次に、VHDLのライブラリをコンパイルする。

OVLのVHDL ファイルをコンパイルするバッチファイル、OVL_VHDL_Lib_Comp_VivadoSim.bat を下に示す。


call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\std_ovl.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\std_ovl_procs.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\std_ovl_components_vlog.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\std_ovl_clock_gating.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\std_ovl_reset_gating.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_always.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_always_on_edge.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_change.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_cycle_sequence.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_decrement.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_delta.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_even_parity.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_fifo_index.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_frame.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_handshake.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_implication.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_increment.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_never.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_never_unknown.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_never_unknown_async.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_next.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_no_overflow.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_no_transition.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_no_underflow.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_odd_parity.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_one_cold.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_one_hot.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_proposition.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_quiescent_state.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_range.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_time.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_transition.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_unchange.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_width.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_win_change.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_win_unchange.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_window.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\ovl_zero_one_hot.vhd

call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\vhdl93\ovl_always_rtl.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\vhdl93\ovl_cycle_sequence_rtl.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\vhdl93\ovl_implication_rtl.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\vhdl93\ovl_never_rtl.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\vhdl93\ovl_never_unknown_async_rtl.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\vhdl93\ovl_never_unknown_rtl.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\vhdl93\ovl_next_rtl.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\vhdl93\ovl_one_hot_rtl.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\vhdl93\ovl_range_rtl.vhd
call C:\HDL\Xilinx\Vivado\2014.1\bin\xvhdl -work accellera_ovl_vhdl D:\HDL\OVL\std_ovl_v281\vhdl93\ovl_zero_one_hot_rtl.vhd


このバッチファイルを実行すると、xsim.dir フォルダの下に accellera_ovl_vhdl フォルダが生成されて、OVLのVHDL ファイルが、.vdb という拡張子で生成されていた。
OVL_VivadoSim_5_140523.png

次に、コンパイルしたOVLライブラリを Vivado Simulator のライブラリとして登録する。

Vivado Simulator のライブラリは、どうやら、Xilinx/Vivado/2014.1/data/xsim にあるようだ。vhdl, verilog フォルダがある。xsim.ini がライブラリの設定ファイルのようだ。xsim.ini に accellera_ovl_vlog と accellera_ovl_vhdl を追加した。


accellera_ovl_vlog=$RDI_DATADIR/xsim/verilog/accellera_ovl_vlog
accellera_ovl_vhdl=$RDI_DATADIR/xsim/vhdl/accellera_ovl_vhdl


次に、C:\HDL\Xilinx\Vivado\2014.1\data\xsim\verilog フォルダに、accellera_ovl_vlog をコピーした。
OVL_VivadoSim_6_140523.png

続いて、C:\HDL\Xilinx\Vivado\2014.1\data\xsim\vhdl フォルダに、accellera_ovl_vhdl をコピーした。
OVL_VivadoSim_7_140523.png
  1. 2014年05月23日 04:19 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/2822-b149e519
この記事にトラックバックする(FC2ブログユーザー)