Xilinx Vivado
Vivado は公式に Arch Linux をサポートしていませんが、Xilinx ISE WebPACK と同じように、多少のハックでほとんどの機能が利用できます。
目次
要件
Xilinx Vivado は公式ウェブサイトからダウンロードすることができます [1]。"Vivado HLx <year>.<version>: All OS installer Single-File Download" tarball をダウンロードすることが推奨されていますが、非常に大きなファイル (19 GB) なので焦ってダウンロードする必要はありません。アップデート tarball は後からダウンロードしてインストールすることも可能です。
依存パッケージ
インストーラは ncurses5 ライブラリを必要とします。公式リポジトリにある ncurses 6 では動作しません。Arch User Repository から ncurses5-compat-libsAUR をインストールすることで問題を回避できます。また、Xilinx Document Navigator を起動するには libpng12 と lib32-libpng12 パッケージのインストールが必要です。
SDK 2018.3 (あるいはそれよりも前のバージョンも) は gtk2 ライブラリを必要とします。SDK を使うときは gtk2 をインストールしてください。
インストール
メインパッケージをインストールします。また、最新の更新パッチもインストールすることが推奨されます。
Vivado と SDK
tarball をダウンロード・解凍したら、マシンのアーキテクチャが正しく認識されるようにインストールスクリプトに変更を加えます。インストーラを解凍したディレクトリに移動してから次を実行してください:
$ sed -i.original 's/uname -i/uname -m/' xsetup
インストールスクリプトに変更が加えられ、元のスクリプトは xsetup.original
としてバックアップされます。変更を加えたら、スクリプトを実行してください。特に問題なくスイートをインストールできるはずです:
# ./xsetup
スイートは既定の場所 /opt/Xilinx
にインストールすることを推奨します。
更新パッチ
新しいパッチがリリースされるたびに、最新の更新パッチをインストールすることが推奨されています。更新パッチは WebPACK には適用できないので注意してください。Vivado WebPACK をインストールした場合、このセクションは飛ばしてください。
アップデートをインストールするには、スイートのインストールと同じことをする必要があります。ダウンロード・解凍後、展開した tarball が存在するディレクトリに移動して、インストールスクリプトに変更を加えてから実行してください:
$ sed -i.original 's/uname -i/uname -m/' xsetup # ./xsetup
ライセンス
ライセンスファイルを既に持っている場合、Vivado License Manager を使ってファイルをロードすることができます。WebPack ライセンスを取得する場合は、以下の手順が必要です。
Vivado は古い stdc++ ライブラリをインストールするため、Vivado Suite に含まれていないプログラム (デフォルトブラウザなど) を実行するときに問題が発生します。修正するには、以下を実行してください:
# cd /opt/Xilinx/Vivado/2015.4/lib/lnx64.o/ # mv libstdc++.so.6 libstdc++.so.6.orig # ln -s /usr/lib/libstdc++.so.6
Vivado Suite プログラムを全て閉じてから、ライセンスマネージャを起動してください:
$ /opt/Xilinx/Vivado/2015.4/bin/vlm
WebPack ライセンスを取得しようとすると、デフォルトブラウザが開き、通常通りライセンスが生成されるはずです。Vivado License Manager が生成されたライセンスを自動的にロードしない場合、.lic ファイルをダウンロードして、手動でロードしてください。
Digilent USB-JTAG ドライバー
Vivado から Digilent Adept USB-JTAG アダプタ (例: ZedBoard のオンボード JTAG アダプタ) を使うには、Digilent Adept Runtime をインストールする必要があります。
Arch User Repository から fxloadAUR をインストールしてください。
Digilent Adept Runtime をインストールする際は、Arch User Repository から digilent.adept.runtimeAUR をインストールすることを推奨します。
さらに、digilent.adept.utilitiesAUR をインストールするとボードの設定に役立ちます。
Linux ケーブルドライバー
root 権限で以下を実行:
# {vivado_install_dir}/data/xicom/cable_drivers/lin64/install_script/install_drivers/install_drivers
ヒントとテクニック
.desktop ファイルの作成
以下の .desktop ファイルを作成することで Vivado IDE, SDK, DocNav の起動が楽になります:
~/.local/share/applications/Xilinx-VivadoIDE.desktop
#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Type=Application Name=Xilinx Vivado IDE Exec=sh -c "unset LANG && unset QT_PLUGIN_PATH && source /opt/Xilinx/Vivado/2018.1/settings64.sh && vivado" Icon=/opt/Xilinx/Vivado/2018.1/doc/images/vivado_logo.png Categories=Development; Comment=Vivado Integrated Development Environment
~/.local/share/applications/Xilinx-SDK.desktop
#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Type=Application Name=Xilinx SDK Exec=sh -c "unset LANG && unset QT_PLUGIN_PATH && source /opt/Xilinx/SDK/2018.1/settings64.sh && xsdk" Icon=/opt/Xilinx/SDK/2018.1/data/sdk/images/sdk_logo.png Categories=Development; Comment=Xilinx Software Development Kit
~/.local/share/applications/Xilinx-DocNav.desktop
#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Type=Application Name=Xilinx Documentation Navigator Exec=sh -c "/opt/Xilinx/DocNav/docnav" Icon=/opt/Xilinx/DocNav/resources/doc_nav_application_48.png Categories=Development; Comment=Xilinx Documentation Navigator
ディスプレイスケーリングの有効化
vivado を起動して以下からスケーリング率を設定:
Tools -> Setting -> Display -> Scaling
トラブルシューティング
Synthesis segfaults
--disable-lock-elision
を使って glibc を再コンパイルする必要があります (abs から PKGBUILD を取得してください)。/usr/lib
のシステムの libc にパッチを適用するかわりに、新しくコンパイルした libpthread-2.25.so
と libc-2.25.so
を /opt/Xilinx/Vivado/2016.4/ids_lite/ISE/lib/lin64
にコピーします。glibc をアップグレードするたびに再コンパイルが必要です。
xsct segfault
xsct は以下のメッセージを吐いてクラッシュすることがあります:
Xilinx/SDK/2018.1/bin/xsct: line 141: 5611 Segmentation fault (core dumped) "$RDI_BINROOT"/unwrapped/"$RDI_PLATFORM$RDI_OPT_EXT"/rlwrap -rc -f "$RDI_APPROOT"/scripts/xsdb/xsdb/cmdlist -H "$HOME"/.xsctcmdhistory "$RDI_BINROOT"/loader -exec rdi_xsct "${RDI_ARGS[@]}"
vivado に混載されている rlwrap の問題で、おそらく Arch Linux に古い vsyscall のエミュレーションがないために起こります。問題を解決するには、rlwrap を落とすか (xsct の履歴と自動補完が消失します)、rlwrap パッケージをインストールして xsct の起動スクリプトの以下の行を編集してください:
../Xilinx/SDK/2018.1/bin/xsct
# Use rlwrap to invoke XSCT /usr/bin/rlwrap -rc -f "$RDI_APPROOT"/scripts/xsdb/xsdb/cmdlist -H "$HOME"/.xsctcmdhistory "$RDI_BINROOT"/loader -exec rdi_xsct "${RDI_ARGS[@]}" # OR run xsct without rlwrap #"$RDI_BINROOT"/loader -exec rdi_xsct "${RDI_ARGS[@]}"
Vivado HLS testbench error with GCC
Vivado は古いバージョンの glibc を必要とします (vivado 2018.1 の場合は 2.26)。
Xilinx フォーラムの こちらのスレッド では Xilinx による固定ヘッダーを更新することが提案されています。
vivado バージョン 2016 の場合、以下を実行:
# /opt/Xilinx/Vivado_HLS/<version>/lnx64/tools/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.3/install-tools/mkheaders /opt/Xilinx/Vivado_HLS/<version>/lnx64/tools/gcc/
vivado 2017 以降の場合、以下を実行:
# /opt/Xilinx/Vivado/2018.1/lnx64/tools/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.3/install-tools/mkheaders /opt/Xilinx/Vivado/2018.1/lnx64/tools/gcc
Wayland で Vivado がクラッシュする
Vivado がクラッシュしてエラーファイルに以下のような記述がある場合:
hs_err_pid*.log
# # An unexpected error has occurred (11) # Stack: /opt/Xilinx/Vivado/2018.2/tps/lnx64/jre/lib/amd64/server/libjvm.so(+0x923da9) [0x7fced0c19da9] /opt/Xilinx/Vivado/2018.2/tps/lnx64/jre/lib/amd64/server/libjvm.so(JVM_handle_linux_signal+0xb6) [0x7fced0c203f6] /opt/Xilinx/Vivado/2018.2/tps/lnx64/jre/lib/amd64/server/libjvm.so(+0x9209d3) [0x7fced0c169d3] /usr/lib/libc.so.6(+0x368f0) [0x7fcf0ea408f0] /opt/Xilinx/Vivado/2018.2/tps/lnx64/jre/lib/amd64/libawt_xawt.so(+0x42028) [0x7fceb1a20028] /opt/Xilinx/Vivado/2018.2/tps/lnx64/jre/lib/amd64/libawt_xawt.so(+0x42288) [0x7fceb1a20288] /opt/Xilinx/Vivado/2018.2/tps/lnx64/jre/lib/amd64/libawt_xawt.so(Java_sun_awt_X11_XRobotPeer_getRGBPixelsImpl+0x17c) [0x7fceb1a1867c] [0x7fcec0cb94cf]
Wayland の代わりに Xorg を使うようにしてください。Vivado が使っているバージョンの Java は Wayland との互換性に問題を抱えています。