FC2カウンター FPGAの部屋 Vivado プロジェクトを配布する方法

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

FPGAの部屋

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

Vivado プロジェクトを配布する方法

Vivado プロジェクトを配布する方法には2つあると思う。

1つ目は、File メニュー -> Archive Project.... を選択して、プロジェクトをアーカイブする方法だ。
Vivado_Archives_1_150914.png

すると、Archive Project ダイアログが表示され、OKボタンをクリックするとプロジェクトがアーカイブされる。
Vivado_Archives_2_150914.png

dvi2vga_lap.xpr.zip が作られた。
Vivado_Archives_3_150914.png

これを解凍すると、今まで他のフォルダに有るIPライブラリもプロジェクト内にまとめられて、プロジェクト内で完結するようになるのだが、XilinxのIPまでアーカイブされている。
Vivado_Archives_4_150914.png

そのバージョンのIPでしか動かないこともあるのだと思うし、当然の処置だと思うが、これでは、XilinxのIPソースコードが入っているので、パブリックにダウンロードさせることが難しそうだ。
この方法は自分用、もしくは身内に配るのに良さそうだ。


パブリックにダウンロードさせる方法としては、2つ目の tcl スクリプトでプロジェクトやブロックデザインを生成する方法がある。

まずはブロックデザインの生成を tcl スクリプトにエクスポートする。

ブロックデザインを開いて、File メニューから Export -> Export Block Design... を選択する。
Vivado_Archives_5_150914.png

Export Block Design ダイアログが開く。
Tcl file を指定して OK ボタンをクリックする。
Vivado_Archives_6_150914.png

tcl ファイルが生成された。
Vivado_Archives_7_150914.png

tcl ファイルを開けると、ブロックデザインを生成する tcl スクリプトが書かれている。
Vivado_Archives_8_150914.png

元々、Vivado のGUI も tcl スクリプトが実行されているのが、tcl console を見ていると分かる。Vivado は tcl スクリプトで動いているのだろう。

次に、プロジェクトの生成を行う tcl スクリプトを生成する。

File メニュー -> Write Project Tcl... を選択した。
Vivado_Archives_9_150914.png

Write Project Tcl ダウンロードが表示された。
dvi2vga_lap.tcl と Output File に入力して、OKボタンをクリックする。
Vivado_Archives_10_150914.png

成功したというダイアログが出た。
Vivado_Archives_11_150914.png

dvi2vga_lap.tcl ができた。
Vivado_Archives_12_150914.png

dvi2vga_lap.tcl を開いた。プロジェクトを生成する tcl スクリプトが書かれている。
Vivado_Archives_13_150914.png

これだと、無いファイルも要求されているので、自分で tcl スクリプトを書き換えた。ブロックデザインも読んでくるようにした。sim は無いので、削除した。
dvi2vga_lap.tcl を示す。
Vivado_Archives_14_150914.png

# dvi2vga_lap.tcl
# I have to modify the output file of "write project tcl ...". 
# by marsee
# 2015/09/13

# Set the reference directory for source file relative paths (by default the value is script directory path)
set origin_dir "."

# Create project
create_project dvi2vga_lap ./dvi2vga_lap

# Set the directory path for the new project
set proj_dir [get_property directory [current_project]]

# Set project properties
set obj [get_projects dvi2vga_lap]
set_property "default_lib" "xil_defaultlib" $obj
set_property "part" "xc7z010clg400-1" $obj
set_property "simulator_language" "Mixed" $obj

# Create 'sources_1' fileset (if not found)
if {[string equal [get_filesets -quiet sources_1] ""]} {
  create_fileset -srcset sources_1
}

# Set IP repository paths
set obj [get_filesets sources_1]
set_property "ip_repo_paths" "[file normalize "$origin_dir/config_files/lap_fil_axis_cnone"] [file normalize "$origin_dir/config_files/synchro/synchro.srcs/sources_1/new"] [file normalize "$origin_dir/config_files/dvi2rgb_v1_5"] [file normalize "$origin_dir/config_files/rgb2vga_v1_0"]" $obj

# Rebuild user ip_repo's index before adding any source files
update_ip_catalog -rebuild

source "$origin_dir/config_files/dvi2vga.tcl"

regenerate_bd_layout

save_bd_design

make_wrapper -files [get_files "$origin_dir/dvi2vga_lap/dvi2vga_lap.srcs/sources_1/bd/dvi2vga/dvi2vga.bd"] -top
add_files -norecurse "$origin_dir/dvi2vga_lap/dvi2vga_lap.srcs/sources_1/bd/dvi2vga/hdl/dvi2vga_wrapper.v"

add_files -fileset constrs_1 -norecurse "$origin_dir/config_files/dvi2vga.xdc"

update_compile_order -fileset sources_1
update_compile_order -fileset sim_1


config_files フォルダの下に、必要なファイルを置くようにしている。

この dvi2vga_lap.tcl と config_files フォルダを一緒にフォルダに置いておく。
Vivado_Archives_15_150914.png

config_files フォルダ。
Vivado_Archives_16_150914.png

Vivado を起動して(バージョンは2015.2)、dvi2vga_lap.tcl と config_files フォルダが置いてあるフォルダまで cd する。

tcl console に source dvi2vga_lap.tcl と入力して、tcl スクリプトを実行する。
Vivado_Archives_17_150914.png

ブロックデザインを生成している途中を示す。
Vivado_Archives_18_150914.png

プロジェクトの生成が終了した。
Vivado_Archives_19_150914.png

元のフォルダを見ると、dvi2vga_lap フォルダが生成されている。
Vivado_Archives_20_150914.png

こちらの方法は、Xilinx のIP は同じバージョンにする必要があるので、Vivado のバージョンを合わせる必要がある。
  1. 2015年09月14日 04:41 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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