1. 概要
Vivado新バージョンが出たのでインストールしました。起動時にディレクトリのパーミッションに関するエラーと、ボードファイルのディレクトリパスのエラーが出たのでメモを残しておきます。
2. 環境
- Ubuntu 18.04.3
- Vivado 2019.2
3. Vivadoインストール
いつもどおりにインストーラをダウンロードしてきて、実行権付与して、実行します。ひたすらダウンロードを待てばインストールの完了です。
$ chmod +x Xilinx_Unified_2019.2_1024_1831_Lin64.bin
$ sudo ./Xilinx_Unified_2019.2_1024_1831_Lin64.bin
途中でUbuntu 18.04.3はサポートしていませんと脅されたり、Vitisをインストールするよう誘惑されますが、心を無にしてVivadoのインストールを続けます。
デバイスはZYNQとArtixしか選択していないので、Download Sizeは15GBほど、Disk Usageは51GBほどでした。それでも4時間ほどは待ったと思います。Installation SummaryにUNIFIED Xilinx Installer
とあったり、そもそもインストーラのファイル名にUnified
とあったり、ハードウェア開発のツールもソフトウェア開発のツールもこれ一つでインストールできますよということですかね。
さて、設定ファイルを読み込んでvivadoを起動してみます。
$ source source /tools/Xilinx/Vivado/2019.2/settings64.sh
$ vivado &
****** Vivado v2019.2 (64-bit)
**** SW Build 2700185 on Thu Oct 24 18:45:48 MDT 2019
**** IP Build 2699827 on Thu Oct 24 21:16:38 MDT 2019
** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
start_gui
ERROR: [Common 17-267] Couldn't open 'libjvm.so': 'libjvm.so: cannot open shared object file: No such file or directory'
Make sure you are using a supported OS of RHEL5.x or greater.
ERROR: [Common 17-211] Error loading jvm.
これはサポートしていないOSにインストールした罰かと思いましたが、Xilinxサポートにちゃんとありました。インストールしたユーザと起動しようとするユーザが違うと出るエラーみたいです。次のコマンドでパーミッションの変更をすると無事Vivadoが起動しました。
$ sudo chmod -R o=g /tools/Xilinx/Vivado/2019.2/tps/lnx64/jre9.0.4
$ sudo chmod -R o=g /tools/Xilinx/.xinstall/Vivado_2019.2/tps/lnx64/jre9.0.4
4. Vivadoボードファイルのパス設定
Vivado 2019.2をインストールしていつも通りTclスクリプトを実行してプロジェクトを作成したところ、zybo-z7-10のボードファイルがないと怒られてしまいました。
$ vivado -mode batch -source ./script/create_project.tcl
****** Vivado v2019.2 (64-bit)
**** SW Build 2700185 on Thu Oct 24 18:45:48 MDT 2019
**** IP Build 2699827 on Thu Oct 24 21:16:38 MDT 2019
** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
source ./script/create_project.tcl
# create_project seven_segment ./project -part xc7z010clg400-1
# set_property board_part digilentinc.com:zybo-z7-10:part0:1.0 [current_project]
ERROR: [Board 49-71] The board_part definition was not found for digilentinc.com:zybo-z7-10:part0:1.0. The project's board_part property was not set, but the project's part property was set to xc7z010clg400-1. Valid board_part values can be retrieved with the 'get_board_parts' Tcl command. Check if board.repoPaths parameter is set and the board_part is installed from the tcl app store.
INFO: [Common 17-206] Exiting Vivado at Sun Nov 10 12:07:33 2019...
Tclの中身はこんな感じでプロジェクト名とディレクトリ、ターゲットを設定しています。
$ cat ./script/create_project.tcl
create_project project ./project -part xc7z010clg400-1
set_property board_part digilentinc.com:zybo-z7-10:part0:1.0 [current_project]
ボードファイルは下図のようにあらかじめプロジェクト作成画面で、Update Board Repositoriesを使ってダウンロードしたはずですが、どこにあるんでしょうか。。。ちなみにTclスクリプトではなくGUI画面でプロジェクトを作成するとエラーは出ないのでどこかにダウンロードはできているみたいです。
いつも手動でダウンロードしてきていた場所<インストールディレクトリ>/Vivado/2019.2/data/boards/board_files/
を探してもありません。
$ ls /tools/Xilinx/Vivado/2019.2/data/boards/board_files/
ac701 li-imx274-mipi xm105 zc702 zc706 zcu102 zcu104 zcu106 zed
調べたところ別ディレクトリにインストールされていました。
$ ls ~/.Xilinx/Vivado/2019.2/xhub/board_store/XilinxBoardStore/Vivado/2019.2/boards/Digilent/
arty arty-s7-50 cmod-s7-25 cora-z7-10 nexys_video zybo-z7-10
arty-a7-100 arty-z7-10 cmod_a7-15t genesys2 sword zybo-z7-20
arty-a7-35 arty-z7-20 cmod_a7-35t nexys4 zedboard
arty-s7-25 basys3 cora-z7-07s nexys4_ddr zybo
これらのファイルをいつものディレクトリにコピーしても良いのですが、ここにパスを通すみたいなことをこことか、ここに書いてあったのでパスを通すことにします。
1行目にboard.repoPaths
パラメータにボードファイルのあるディレクトリを設定する記述を追加しました。
$ cat ./script/create_project.tcl
set_param board.repoPaths ~/.Xilinx/Vivado/2019.2/xhub/board_store
create_project seven_segment ./project -part xc7z010clg400-1
set_property board_part digilentinc.com:zybo-z7-10:part0:1.0 [current_project]
これで無事tclスクリプトからプロジェクトを作成できるようになりました。