インストール - Xilinx ISE
概要
ここでは、SUSEにXilinx ISEをインストールする手順を記載する。
Xilinx ISEのインストールは簡単であるが、Platform USB Cable IIおよびCable IVのドライバのインストールは複雑である。
他のLinuxディストリビューションや他のISE / Vivadoのバージョンも、このページに沿ってインストールできる場合がある。
Xinlix ISEの使用方法、ライセンスの管理方法、HDLの記述方法については説明しない。
依存関係のライブラリのインストール
以下の依存関係のライブラリをインストールする。
sudo zypper install libncurses5
Xilinx ISEのインストール
スーパーユーザになり、Xilinx ISEが存在するメディアに移動して、以下のコマンドを実行する。
su ./xsetup
インストール画面が起動するので、画面の指示に従ってインストールを行う。
Platform USB Cable IIのドライバのインストールを求められたら、ドライバのインストールを選択する。
Xilinx ISEに必要な環境変数について通知するメッセージは無視すること。(詳細は、最後のセクションの"Xilinx ISEの起動スクリプトの設定"を参照すること)
また、インストール手順の最後に表示される、Platform USBのドライバのインストールが失敗したというメッセージは無視する。後でインストールおよび設定を行う。
Xilinx ISEのインストール完了後、以下のディレクトリにアクセスする。
(ここには、ファームウェアファイルが存在する)
cd /<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/common/bin/lin64/
ファームウェアファイルを/usr/shareディレクトリにコピーする。
sudo cp *.hex /usr/share
xusbdfwu.rulesファイルを/etc/udev/rules.dディレクトリにコピーする。
sudo cp xusbdfwu.rules /etc/udev/rules.d/
/etc/udev/rules.d/xusbdfwu.rulesファイルを、以下のように編集(文字列の置き換え)する。
sudo vi /etc/udev/rules.d/xusbdfwu.rules
$TEMPNODE → $tempnode BUS → SUBSYSTEMS SYSFS → ATTRS
また、sed
コマンドを実行して、文字列を置き換えすることもできる。
シェルスクリプトとして作成すると便利である。
sudo sed -i -e 's/$TEMPNODE/$tempnode/g' /etc/udev/rules.d/xusbdfwu.rules sudo sed -i -e 's/BUS/SUBSYSTEMS/g' /etc/udev/rules.d/xusbdfwu.rules sudo sed -i -e 's/SYSFS/ATTRS/g' /etc/udev/rules.d/xusbdfwu.rules
恐らく、次の設定は不要であるが、念の為に記載しておく。
sudo cp /usr/lib/libstdc++.so.6 /<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/common/lib/lin64/ または sudo ln -s /usr/lib/libstdc++.so.6 /<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/common/lib/lin/libstc++.so.6
Platform Cable USB IIの設定
Platform Cable USB IIの動作確認
- Xinlix ISEが起動していないことを確認する。
また、Platform Cable USB IIがLinuxホストに接続されていないことを確認する。 - Platform Cable USB IIの動作に必要な依存関係のライブラリをインストールする。
sudo zypper install fxload make gcc libpng12-0 libusb-compat-devel
- PCを再起動する。
- PCにPlatform Cable USB IIを接続して、Platform Cable USB IIのLEDが黄色に点灯するかどうか確認する。
USB延長コードは電源に悪影響を与える可能性があるため、非推奨である。
LEDが黄色に点灯しない場合
LEDが点灯しない場合は、以下のコマンドを実行する。
この時、hex拡張子のファイルが多く出力される。
ls -l /usr/share/*.hex
もし、hex拡張子のファイルが存在しない場合は、Xilinx ISEを再インストールする。
この時、インストール時に、Platform Cable USB IIドライバが選択されていることを確認する。
それでもPlatform Cable USB IIのLEDが黄色に点灯しない場合は、以下のコマンドを実行する。
lsusb | grep Xilinx
Platform Cable USB IIへのファームウェアのアップロードが失敗した場合、次のような行が出力される。
これは、Platform Cable USB IIは認識されていることを示す。
Bus 005 Device 004: ID 03fd:0013 Xilinx, Inc. Platform Cable USB II
ファームウェアのアップロードが成功した場合、以下のように出力される。
ここで重要なのは、上記や下記の赤で記載した番号である。
下記の0008は、Platform Cable USB IIのファームウェアが正しく読み込まれたことを示している。
Bus 005 Device 004: ID 03fd:0008 Xilinx, Inc. Platform Cable USB II
次に、/etc/udev/rules.d/libusb-driver.rulesファイルを作成する。
sudo vi /etc/udev/rules.d/libusb-driver.rules
# /etc/udev/rules.d/libusb-driver.rulesファイル ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03fd", MODE="666"
設定を反映させるため、PCを再起動する。
Platform Cable USB IIのドライバのインストール
- 以下に示すWebサイトから、Platform Cable USB IIのドライバのソースコードをダウンロードする。
- http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver?a=snapshot;h=HEAD;sf=tgz
- または
- http://www.rmdir.de/~michael/xilinx/
- ※注意
- usb-driver-HEAD-<スナップショット名>.tar.gzファイルをダウンロードできない場合は、Xilinxへメールで連絡してファイルを送信してもらうことができる。
- ダウンロードしたファイルを解凍する。
tar xf usb-driver-HEAD.tar.gz
- 解凍したディレクトリに移動して、libusb-driverをビルドする。
make -j $(nproc)
- libusb-driver.soファイルが生成されたかどうか確認する。
- libusb-driver.soファイルを、~/InstallSoftware/Xilinx_ISEディレクトリにコピーする。
mkdir -p ~/InstallSoftware/Xilinx_ISE
cp libusb-driver.so ~/InstallSoftware/Xilinx_ISE
Xilinx ISEの起動スクリプトの設定
Xilinx ISEはいくつかの環境変数を必要とするため、シェルスクリプトを使用して初期化することが好ましい。
なお、このシェルスクリプトは、一般ユーザで実行する。
- Xilinx ISEのインストールディレクトリに、ISE-Start.shファイルを作成する。
以下の内容を、ISE-Start.shファイルに記述する。sudo vi /opt/Xilinx/14.7/ISE_DS/ISE-Start.sh
#!/bin/sh
source /<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/settings64.sh # uncomment if required
#source /opt/Xilinx/10.1/ISE/settings32.sh # comment if required
#source /opt/Xilinx/11.1/ISE/settings32.sh # uncomment if required
export LD_PRELOAD=/<上記のセクションでコンパイルしたlibusb-driver.soが存在するディレクトリ>/libusb-driver.so
ise # comment if neccessary
#impact # uncomment if neccessaryexit
- ISE-Start.shファイルに実行権限を付加する。
sudo chmod 755 /opt/Xilinx/14.7/ISE_DS/ISE-Start.sh
- デスクトップにISE-Start.shファイルのランチャーを作成する。
このアイコンを押下することで、Xilinx ISEが起動する。
また、Xilinx ISEのライセンスとPlatform Cable USB IIの設定を行うことにより、Platform Cable USB IIまたはParallel IVを使用する準備ができる。 - 最後に、デスクトップエントリファイルを作成する。
# ~/.local/share/applications/Xilinx_ISE-14_7.desktopファイル [Desktop Entry] Type=Application Name=Xilinx ISE 14.7 GenericName=Xilinx ISE Comment=FPGA Design Exec="/opt/Xilinx/14.7/ISE_DS/ISE-Start.sh" %F Icon=/home/<ユーザ名>/.icons/ISE_DS_Logo.png StartupWMClass=Xilinx_ISE Terminal=false Categories=Development;Xilinx;
※注意 1
使用しているXilinx ISEのバージョンおよびシステムアーキテクチャ(x86またはx64)に応じて、sourceで始まる行をコメントまたはコメント解除する。
※注意 2
Impactを直接実行する場合は、iseで始まる行をコメントアウトして、Impactで始まる行をコメント解除する。
Digilentプラグインのインストール
Digilentプラグインを使用すると、Xilinxの開発環境において、Digilent USB-JTAG FPGAコンフィギュレーション回路を直接使用できる。
Impact、ChipScope Pro、EDK Xilinx Microprocessor Debugger(XMD)、DK Xilinx Software Development Kit(SDK)がサポートされている。
必須環境において、Digilent Adept Runtime 2.9以降が必要となる。
このセクションでは、Digilentプラグインのインストール手順を記載する。
Digilentプラグインのダウンロードは、以下のWebサイトからダウンロードする。
https://store.digilentinc.com/digilent-plugin-for-xilinx-tools-download-only/
ダウンロードしたDigilentプラグインを解凍して、以下のディレクトリに移動する。
cd libCseDigilent_<バージョン名>-x86_64/ISE14x/plugin
Xilinx ISEのインストールディレクトリにある古いDigilentプラグインのバックアップを取得する。
cd /opt/<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent sudo mv libCseDigilent.so libCseDigilent_org.so sudo mv libCseDigilent.xml libCseDigilent_org.xml
新しい2つのプラグインを、Xilinx ISEのインストールディレクトリにコピーする。
cd libCseDigilent_<バージョン名>-x86_64/ISE14x/plugin sudo cp libCseDigilent.so libCseDigilent.xml /opt/<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent
Adeptランタイムのインストール
Digilent製品を使用する場合、Adeptランタイムのインストールが必要である。
このセクションでは、Adeptランタイムのインストール手順を記載する。
Adeptランタイムは、以下のWebサイトからダウンロードする。
https://store.digilentinc.com/digilent-plugin-for-xilinx-tools-download-only/
自動インストール
以前、Adeptランタイムをインストールしている場合、既に/etc/ld.so.conf.d/digilent-adept.confファイルが存在している可能性がある。
もし、古いファイルが含まれている場合、新しいAdeptランタイムをインストールする前に、手動で削除する必要がある。
基本的なインストールでは、install.shファイルを実行する。
ほとんどの環境において、必要な全てのコンポーネントをインストールすることができる。
sudo ./install.sh
もし、何らかの理由でインストールできない場合やインストールプロセスをより細かく制御する場合は、
各コンポーネントを手動でインストールする方法を、以下に記載する。
Adept共有ライブラリ
Degilentライブラリのランタイムは複数の共有ライブラリで構成されている。
これらのライブラリは/lib64ディレクトリにある。
該当するディレクトリの内容は、ランタイムがインストールされているディストリビューションに適した場所にコピーする必要がある。
/usr/local/lib64/digilent/adeptと/usr/lib64/digilent/adeptを推奨する。
以下のコマンドを実行して、Adept共有ライブラリをインストールする。
sudo mkdir -p /usr/lib64/digilent/adept sudo cp -fd lib/* /usr/lib64/digilent/adept sudo chmod -R 755 /usr/lib64/digilent/adept
ダイナミックローダ設定ファイル(digilent-adept-libraries.conf)
Adeptランタイムを使用するアプリケーションがダイナミックローダを実行するためには、ランタイムが構成する共有ライブラリを見つける必要がある。
digilent-adept-libraries.confファイルには、x86およびx64のランタイムのデフォルトのインストールパスが含まれている。
このファイルを編集して、インストールに適したパスを含むようにする。
以下のコマンドを実行して、ダイナミックローダ設定ファイルをインストールする。
sudo cp -f digilent-adept-libraries.conf /etc/ld.so.conf.d sudo chmod 644 /etc/ld.so.conf.d/digilent-adept-libraries.conf
次に、ダイナミックローダでキャッシュを更新する必要がある。
以下のコマンドを実行して、キャッシュを強制的に更新する。
sudo /sbin/ldconfig
ファームウェアイメージ
Adeptランタイムには、ランタイムが正しく機能するために、インストールする必要のあるファームウェアイメージが含まれる。
これらのイメージは、data/firmwareディレクトリにある。
Adeptランタイムは、firmwareディレクトリ直下にあるDigilentディレクトリで、これらのイメージを見つけることを想定している。
既知の場所に配置された構成ファイルは、Digilentディレクトリへのパスをランタイムに通知するために使用される。
構成ファイルについては、「AdeptRuntimeConfigurationFile」というタイトルのセクションで説明しています。
また、ディレクトリへのパスは、環境変数DIGILENT_DATA_DIRで指定することもできる。
Digilentディレクトリは、ユーザの任意の場所に配置できる。
一般的に、このディレクトリは/usr/share/digilent/adept/dataに配置される。
例えば、Digilentディレクトリを使用する場合は、ファームウェアイメージを/usr/share/digilent/adept/data/firmwareにインストールする。
以下のコマンドを実行して、ファームウェアイメージをインストールする。
sudo mkdir -p / usr / share / digilent / adept / data / firmware sudo cp -f data /firmware/*.HEX/usr/share/digilent/adept/data/firmware sudo cp -f data /firmware/*.so/usr/share/digilent/adept/data/firmware sudo chmod 644 /usr/share/digilent/adept/data/firmware/*.HEX sudo chmod 755 /usr/share/digilent/adept/data/firmware/*.so