Xilinx Vivado

From ArchWiki
Jump to navigation Jump to search

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 を起動するには libpng12lib32-libpng12 パッケージのインストールが必要です。

SDK 2018.3 (あるいはそれよりも前のバージョンも) は gtk2 ライブラリを必要とします。SDK を使うときは gtk2 をインストールしてください。

インストール

メインパッケージをインストールします。また、最新の更新パッチもインストールすることが推奨されます。

Vivado と SDK

警告: 以下のパッチは 2018.1 バージョンでは必要なくなりました。xsetup ファイルを解凍して実行するだけで大丈夫です。

tarball をダウンロード・解凍したら、マシンのアーキテクチャが正しく認識されるようにインストールスクリプトに変更を加えます。インストーラを解凍したディレクトリに移動してから次を実行してください:

$ sed -i.original 's/uname -i/uname -m/' xsetup

インストールスクリプトに変更が加えられ、元のスクリプトは xsetup.original としてバックアップされます。変更を加えたら、スクリプトを実行してください。特に問題なくスイートをインストールできるはずです:

# ./xsetup

スイートは既定の場所 /opt/Xilinx にインストールすることを推奨します。

更新パッチ

警告: 以下のパッチは 2018.1 バージョンでは必要なくなっています。

新しいパッチがリリースされるたびに、最新の更新パッチをインストールすることが推奨されています。更新パッチは WebPACK には適用できないので注意してください。Vivado WebPACK をインストールした場合、このセクションは飛ばしてください。

アップデートをインストールするには、スイートのインストールと同じことをする必要があります。ダウンロード・解凍後、展開した tarball が存在するディレクトリに移動して、インストールスクリプトに変更を加えてから実行してください:

$ sed -i.original 's/uname -i/uname -m/' xsetup
# ./xsetup

ライセンス

警告: 2018.1 Webpack バージョンでは明示的にライセンスファイルをダウンロードしなくても動作します。

ライセンスファイルを既に持っている場合、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 ファイルの作成

ノート: 2018.3 以降の場合、.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.solibc-2.25.so/opt/Xilinx/Vivado/2016.4/ids_lite/ISE/lib/lin64 にコピーします。glibc をアップグレードするたびに再コンパイルが必要です。

詳しくは https://forums.xilinx.com/t5/Synthesis/Vivado-crashes-on-Arch-Linux-when-performing-synthesis/td-p/706847 を参照。

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 との互換性に問題を抱えています。