5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Xilinx ISEをUbuntu(Linux)で使う

Last updated at Posted at 2021-10-23

前置き

日本語で解説されている記事がなかったのと,既存の記事を鵜呑みするだけではできなかったものがいくつかあったため,それの修正も兼ねて記事を書きます.以下の環境で動作確認済みです.

種別 環境
OS Ubuntu 21.04
CPU Arch x86_64(64bit)
shell zsh(記事はbash向け)

本記事は,Xilinx ISE 14.7 WebPACKをUbuntuにインストールするまでの流れを解説しています.

ダウンロード

まずはXilinxのサイトよりLinux版のXilinxをダウンロードしましょう.この時,アーカイブだけで6.09GBもあります.必ずchecksumしましょう.
image.png

$ md5sum Xilinx_ISE_DS_Lin_14.7_1015_1.tar
e8065b2ffb411bb74ae32efa475f9817  Xilinx_ISE_DS_Lin_14.7_1015_1.ta

このときに出てくる値の正誤により,ダウンロードが正常にできているかが確認できます.インストール中に気づくのは悲惨であるため,必ず確認しましょう(USBメモリ等で誰かに共有したときも同様ですよ!).

ISEのインストール

インストーラを実行する前に,実行するための依存関係を入れます.以下はUbuntu(Debian系)でのインストールコマンドです.

sh
sudo apt install libncurses5

Xilinx_ISE_DS_Lin_14.7_1015_1.tarを展開しましょう.ファイルマネージャ等でダブルクリックしても良いし,コマンドラインで実行しても良いです

sh
tar -xvf Xilinx_ISE_DS_Lin_14.7_1015_1.tar
cd Xilinx_ISE_DS_Lin_14.7_1015_1

次に,インストーラに実行権限を与え,実行します

sh
sudo chmod +x xsetup
sudo ./xsetup

するとGUIのウィザードが出てきます.(この先選択が必要な箇所だけ説明します)
今回はISE WebPACKを選択します.
image.png

一応Install Cable Driversにチェックを入れます...がここでは100%失敗しますので安心して下さい(対策は後述).
image.png

インストール先のパスはどこでも大丈夫ですが,変える場合は変えたことを自分で把握しておいて下さい.今後は/opt/Xilinxにインストールした前提で説明していきます.
image.png

インストールして待ちます.この時ありがちなエラーを示しておきます.

  • Drive Install Failedみたいなやつ
    ここでは必ず失敗するものなのでOKです
  • ... not found みたいなやつ
    .tarを展開したときに失敗しているか,そもそもの.tarの中身が正しくないことが多いです.「ダウンロード」からやり直して下さい...

起動ショートカットの追加

ショートカットを作成します.ここではgeditを使いますが,vimでもemacsでもnanoでもOKです.

sh
sudo gedit /opt/Xilinx/14.7/ISE_DS/ise

以下を貼り付けて下さい.(引用元)

/opt/Xilinx/14.7/ISE_DS/ise
#!/bin/bash
export LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.so
ISE_DS_DIR=/opt/Xilinx/14.7/ISE_DS
export gmake=/usr/bin/make
cd "$ISE_DS_DIR"
source "$ISE_DS_DIR"/settings64.sh
export LANG=''  # reset locale to English to fix decimal/comma seperation
"$ISE_DS_DIR"/ISE/bin/lin64/ise

上記のスクリプトに実行権限を与えます.

sh
sudo chmod a+x /opt/Xilinx/14.7/ISE_DS/ise

デスクトップファイルの作成(Ubuntu向け)

次にデスクトップファイルを作成します.

sh
sudo gedit /usr/share/applications/ISE.desktop
/usr/share/applications/ISE.desktop
[Desktop Entry]
Version=1.0
Name=ISE
Exec=/opt/Xilinx/14.7/ISE_DS/ise
Terminal=false
Icon=/opt/Xilinx/14.7/ISE_DS/ISE/data/images/pn-ise.png
Type=Application
Categories=Development

これで,アプリケーション一覧にISEが追加されます.

image.png

パスを通す

zshなどを使っている場合は~/.bashrc~/.zshrcに置き換えてくださいね.

sh
echo PATH=\$PATH:/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/ >> ~/.bashrc
source ~/.bashrc

試しに,iseと入力して起動したら,正しくパスが通っています.

sh
ise

無事ウィンドウが出てきたら,閉じてください.

間違ったパス

こちらの記事を参考にセットアップされた方は,おそらく間違ったパスを設定されています(/opt/Xilinx/13.2/ISE_DS/ISE/bin/lin64/になってる).残しておいてもよいですが,気になるようでしたら.bashrcから該当の行を削除してください.

Cable Driver のインストール

先程失敗したCable Driverのインストールを行います.まず,必要なパッケージのインストール.

sh
sudo apt install libusb-dev libftdi-dev build-essential libc6-dev fxload git

次に,Cable Driverをダウンロードします.

sh
cd /opt/Xilinx
sudo git clone https://git.zerfleddert.de/git/usb-driver

このとき,git cloneが失敗するときは,https://git.zerfleddert.de/git/usb-driverのリンクが変わっている可能性があります.ここを確認し,自分で直してください...

完了したら,早速makeしましょう(make -j $(nproc)でも良いですが,そこまで量は多くないです)

sh
cd /opt/Xilinx/usb-driver
sudo make

最後に,セットアップを実行して完了です!

sudo ./setup_pcusb /opt/Xilinx/14.7/ISE_DS/ISE/

より快適に使うために(VSCodeなど)

LinuxにインストールしたISE Webpackは,なんと日本語入力ができないどころか,日本語が表示できません.より快適に使うために,他のエディタを開く設定をすることをおすすめします.

こちらではVSCodeでの設定方法を紹介していますのでぜひ.

環境変数について(おまけ)

usb-driverのREADMEには

export LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.soしてからimpact起動してね!

とありますが,楽だからといって~/.bashrcなどに置くことは推奨しません.
.bashrcにおいた結果,なぜかターミナルからVSCodeが起動しなくなりました.
ここにもあるように,起動用のスクリプトに含ませ,ISE起動時のみに適用するほうが良いです.

参考文献

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?