fumiLab

fumimakerが作ったもの、やったことについて書いていきます。

Vivadoプロジェクトをエクスポートして共有する

GitHubとかにあげたくなったらどうすればいいのか調べてやってみたので記録しておきます.

まず,参考になるのはこちらのサイト方です.

marsee101.blog.fc2.com

wakky.tech

qiita.com

自分でもやってみて,うまくいかない事があったので,やり方をメモします.

環境

やりかた

とりあえず,VivadoでWrite Tclします.

image-20220611210340986

オプションはこのようにしました.Recreate block designとすることでBDも一緒に作ってくれる.この出力ディレクトリの関係をもとにTCLが作られるので,出力ディレクトリは配布するときと同じ関係になるようにする必要があります.

image-20220611210843382

出力されたものを確認できました.

image-20220611212108416

配布するディレクトリ(vivado_test)を新たに作ってそこにTCLやsrcをコピーし,VivadoでそのディレクトリにCDしsource ./display_lantency.tclしました.

image-20220611214905251

pwd
C:/Github/vivado_test
ls
WARNING: [Common 17-259] Unknown Tcl command 'ls' sending command to the OS shell for execution. It is recommended to use 'exec' to send the command to the OS shell.
display_latency.tcl
display_latency_def_val.txt
display_latency_dump.txt
ip_repo
src

ERROR: [Vivado 12-172] File or Directory 'C:/Github/vivado_test/vivado/display_latency/display_latency.srcs/sources_1/bd/design_1/hdl/design_1_wrapper.v' does not existというエラーが発生.どうやらbdファイルがないようだ.確かにsrcには含まれていない.これってVivadoが勝手に生成してくれるやつなのでプロジェクト内部のものを自分でコピーしてやる必要がある.

自分の環境だとC:\Github\pubtest\vivado\display_latency\display_latency.srcs\sources_1\bd\design_1にdbファイルがあった.このディレクトリを崩してはいけないようなので仕方なくこの構造のまま持っていきます.

なお,display_latency.srcsには色々ありますが,生成されたtclを見ると

"vivado_test\vivado\display_latency\display_latency.srcs\sources_1\bd\design_1\hdl\design_1_wrapper.v"
"vivado_test\vivado\display_latency\display_latency.srcs\sources_1\bd\design_1\design_1.bd"
"vivado_test\vivado\display_latency\display_latency.srcs\sources_1\bd\design_1\synth\design_1.v"

の3つが必要そうなのでそれ以外は全部消しておきます.これら3つのファイルが正しいパスにある状態で再度開いてみます.

正常にいけました.

image-20220611213558431

HLS で作ったIPは予め含んで於けばOKっぽい.

おわりに

このやり方で正しいのかわからないですし,正常に言ってるのもたまたまかもしれません.そもそもなんでこんなクソめんどくさいやり方をしなければいけないのかというと,プロジェクトに含まれるXilinxのIPをそのまま公開するわけにいかない,ということらしい.確かにそうだけど,もうちょっとなんかやり方ないのかなと思います.(大変すぎる).プロの方は自前のスクリプトを描いて自動化しているとかなんとか.

はやくこれになりたい.今日はそんなところです.