「インストール - Xilinx ISE」の版間の差分
(同じ利用者による、間の33版が非表示) | |||
8行目: | 8行目: | ||
== 依存関係のライブラリのインストール == | == 依存関係のライブラリのインストール == | ||
==== パッケージ管理システムからインストール ==== | |||
sudo zypper install | sudo zypper install libncurses5 libftdi1-devel | ||
<br> | |||
==== ソースコードからインストール ==== | |||
NCurses 5ライブラリ (64ビット向け) のインストールするには、[[インストール - Code Composer Studio#libncurses5のインストール]]を参照すること。<br> | |||
<br> | |||
libftdi1ライブラリをインストールする前に、libusb 1.0ライブラリおよびlibconfuseライブラリをインストールする必要がある。<br> | |||
* libusb 1.0 | |||
*: ユーザ空間からUSBデバイスと通信するためのライブラリである。 | |||
*: libftdiライブラリにより必要とされる。 | |||
* libconfuse | |||
*: 設定ファイル解析用ライブラリである。 | |||
*: ftdi_eepromライブラリにより必要とされる。 | |||
<br> | |||
libftdi1ライブラリのインストールに必要なライブラリをインストールする。<br> | |||
sudo zypper install swig libboost_headers1_66_0-devel libusb-1_0-devel python3-devel | |||
<br> | |||
まず、[https://github.com/libconfuse/libconfuse libconfuseの公式Webサイト]にアクセスして、ソースコードをダウンロードする。<br> | |||
ダウンロードしたファイルを解凍する。<br> | |||
tar xf confuse-<バージョン>.tar.xz | |||
cd confuse-<バージョン> | |||
<br> | |||
libconfuseをビルドおよびインストールする。<br> | |||
mkdir build && cd build | |||
../configure --prefix=<libconfuseのインストールディレクトリ> | |||
make -j $(nproc) | |||
make install | |||
<br> | |||
~/.profileファイル等に、以下の環境変数を追記する。<br> | |||
<syntaxhighlight lang="sh"> | |||
# ~/.profileファイル | |||
export PATH="/<libconfuseのインストールディレクトリ>/bin:$PATH" | |||
export LD_LIBRARY_PATH="/<libconfuseのインストールディレクトリ>/lib64:/<libconfuseのインストールディレクトリ>/lib:$LD_LIBRARY_PATH" | |||
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)" | |||
export PKG_CONFIG_PATH="/<libconfuseのインストールディレクトリ>/lib64/pkgconfig:/<libconfuseのインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH" | |||
</syntaxhighlight> | |||
<br> | |||
次に、libftdi1ライブラリをインストールする。<br> | |||
[https://www.intra2net.com/en/developer/libftdi/download.php libftdi1ライブラリの公式Webサイト]にアクセスして、ソースコードをダウンロードする。<br> | |||
ダウンロードしたファイルを解凍する。<br> | |||
tar xf libftdi1-<バージョン>.tar.bz2 | |||
cd libftdi1-<バージョン> | |||
<br> | |||
mkdir build && cd build | |||
cmake -DCMAKE_BUILD_TYPE=Release \ | |||
-DCMAKE_INSTALL_PREFIX=<libftdi1ライブラリのインストールディレクトリ> \ | |||
.. | |||
make -j $(nproc) | |||
make install | |||
<br> | |||
~/.profileファイル等に、以下の環境変数を追記する。<br> | |||
<syntaxhighlight lang="sh"> | |||
# ~/.profileファイル | |||
export PATH="/<libftdi1のインストールディレクトリ>/bin:$PATH" | |||
export LD_LIBRARY_PATH="/<libftdi1のインストールディレクトリ>/lib64:/<libftdi1のインストールディレクトリ>/lib:$LD_LIBRARY_PATH" | |||
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)" | |||
export PKG_CONFIG_PATH="/<libftdi1のインストールディレクトリ>/lib64/pkgconfig:/<libftdi1のインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH" | |||
</syntaxhighlight> | |||
<br><br> | |||
== Xilinx ISEのダウンロード == | |||
[https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/vivado-design-tools/archive-ise.html Xilinxの公式Webサイト]にアクセスして、Xilinx ISEをダウンロードする。<br> | |||
<br><br> | <br><br> | ||
16行目: | 80行目: | ||
su | su | ||
./xsetup | ./xsetup | ||
# または | |||
su -p -c "./xsetup" | |||
<br> | <br> | ||
インストール画面が起動するので、画面の指示に従ってインストールを行う。<br> | インストール画面が起動するので、画面の指示に従ってインストールを行う。<br> | ||
Platform USB Cable IIのドライバのインストールを求められたら、ドライバのインストールを選択する。<br> | Platform USB Cable IIのドライバのインストールを求められたら、ドライバのインストールを選択する。<br> | ||
<br> | <br> | ||
Xilinx ISEに必要な環境変数について通知するメッセージは無視すること。 | Xilinx ISEに必要な環境変数について通知するメッセージは無視すること。<br> | ||
詳細は、以降のセクションにある[[インストール - Xilinx ISE#Xilinx ISEの起動スクリプトの設定|Xilinx ISEの起動スクリプトの設定]]を参照すること。<br> | |||
<br> | |||
また、以下に示す、インストール後に表示されるPlatform USBのドライバのインストールが失敗したというメッセージは無視する。<br> | |||
Platform USBのドライバのインストールおよび設定は、Xilinx ISEのインストール後に行う。<br> | |||
Driver installation failed. | |||
Please check the /.xinstall/install.log file for more information on the cause of the installation failure. | |||
# 訳 : | |||
ドライバーのインストールに失敗しました。 | |||
インストールに失敗した原因については、/.xinstall/install.logファイルを確認してください。 | |||
<br> | <br> | ||
Xilinx ISEのインストール完了後、以下のディレクトリにアクセスする。<br> | Xilinx ISEのインストール完了後、以下のディレクトリにアクセスする。<br> | ||
47行目: | 125行目: | ||
<br> | <br> | ||
[[ファイル:Xilinx ISE Setup 1.png|フレームなし|中央]] | [[ファイル:Xilinx ISE Setup 1.png|フレームなし|中央]] | ||
<br> | |||
もしくは、以下に示すように編集する。<br> | |||
# /etc/udev/rules.d/xusbdfwu.rulesファイル | |||
SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0008", MODE="666" | |||
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0007", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusbdfwu.hex -D $tempnode" | |||
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0009", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusb_xup.hex -D $tempnode" | |||
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000d", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusb_emb.hex -D $tempnode" | |||
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000f", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusb_xlp.hex -D $tempnode" | |||
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0013", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusb_xp2.hex -D $tempnode" | |||
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0015", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusb_xse.hex -D $tempnode" | |||
<br> | |||
sudo udevadm control --reload-rules | |||
<br> | <br> | ||
恐らく、次の設定は不要であるが、念の為に記載しておく。<br> | 恐らく、次の設定は不要であるが、念の為に記載しておく。<br> | ||
cd /<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/ISE/lib/lin64 | |||
sudo mv libstdc++.so libstdc++_org.so | |||
sudo ln -s /usr/ | sudo mv libstdc++.so.6 libstdc++_org.so.6 | ||
sudo mv libstdc++.so.6.0.8 libstdc++_org.so.6.0.8 | |||
sudo ln -s /usr/lib64/libstdc++.so.6 libstdc++.so | |||
sudo ln -s libstdc++.so libstdc++.so.6 | |||
sudo ln -s libstdc++.so libstdc++.so.6.0.8 | |||
cd /<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/common/lib/lin64/ | |||
sudo mv libstdc++.so libstdc++_org.so | |||
sudo mv libstdc++.so.6 libstdc++_org.so.6 | |||
sudo mv libstdc++.so.6.0.8 libstdc++_org.so.6.0.8 | |||
sudo ln -s /usr/lib64/libstdc++.so.6 libstdc++.so | |||
sudo ln -s libstdc++.so libstdc++.so.6 | |||
sudo ln -s libstdc++.so libstdc++.so.6.0.8 | |||
<br><br> | <br><br> | ||
59行目: | 163行目: | ||
# Platform Cable USB IIの動作に必要な依存関係のライブラリをインストールする。 | # Platform Cable USB IIの動作に必要な依存関係のライブラリをインストールする。 | ||
#: <code>sudo zypper install fxload make gcc libpng12-0 libusb-compat-devel</code> | #: <code>sudo zypper install fxload make gcc libpng12-0 libusb-compat-devel</code> | ||
# | #: <br> | ||
# | # 次に、/etc/udev/rules.d/libusb-driver.rulesファイルを作成する。<br> | ||
#: <code>sudo vi /etc/udev/rules.d/libusb-driver.rules</code> | |||
#: <code># /etc/udev/rules.d/libusb-driver.rulesファイル</code> | |||
#: <code>ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03fd", MODE="666"</code> | |||
#: <br> | |||
# 設定を反映させるため、PCを再起動する。<br> | |||
# 再起動後、PCにPlatform Cable USB IIを接続して、Platform Cable USB II本体のLEDが黄色に点灯するかどうか確認する。<br><u>USB延長コードは電源に悪影響を与える可能性があるため、非推奨である。</u> | |||
<br> | <br> | ||
==== LEDが黄色に点灯しない場合 ==== | ==== LEDが黄色に点灯しない場合 ==== | ||
Platform Cable USB IIのLEDが黄色に点灯しない場合は、以下のコマンドを実行する。<br> | |||
lsusb | grep Xilinx | lsusb | grep Xilinx | ||
<br> | <br> | ||
82行目: | 185行目: | ||
Bus 005 Device 004: ID 03fd:<span style="color: #C00000>0008</span> Xilinx, Inc. Platform Cable USB II | Bus 005 Device 004: ID 03fd:<span style="color: #C00000>0008</span> Xilinx, Inc. Platform Cable USB II | ||
<br> | <br> | ||
LEDが点灯しない場合は、以下のコマンドを実行する。<br> | |||
この時、hex拡張子のファイルが多く出力される。<br> | |||
ls -l /usr/share/*.hex | |||
<br> | <br> | ||
もし、hex拡張子のファイルが存在しない場合は、Xilinx ISEを再インストールする。<br> | |||
この時、インストール時に、Platform Cable USB IIドライバが選択されていることを確認する。<br> | |||
<br> | |||
<br><br> | <br><br> | ||
100行目: | 201行目: | ||
#: <u>※注意</u> | #: <u>※注意</u> | ||
#: <u>usb-driver-HEAD-<スナップショット名>.tar.gzファイルをダウンロードできない場合は、Xilinxへメールで連絡してファイルを送信してもらうことができる。</u> | #: <u>usb-driver-HEAD-<スナップショット名>.tar.gzファイルをダウンロードできない場合は、Xilinxへメールで連絡してファイルを送信してもらうことができる。</u> | ||
#: <br> | |||
#: <code>git clone</code>コマンドを実行して、ソースコードをダウンロードすることもできる。 | |||
#: <code>git clone git://git.zerfleddert.de/usb-driver</code> | |||
#: <code>cd usb-driver</code> | |||
#: <br> | #: <br> | ||
# ダウンロードしたファイルを解凍する。 | # ダウンロードしたファイルを解凍する。 | ||
150行目: | 255行目: | ||
<u>※注意 2</u><br> | <u>※注意 2</u><br> | ||
<u>Impactを直接実行する場合は、iseで始まる行をコメントアウトして、Impactで始まる行をコメント解除する。</u><br> | <u>Impactを直接実行する場合は、iseで始まる行をコメントアウトして、Impactで始まる行をコメント解除する。</u><br> | ||
<br><br> | |||
== Xilinx ISEのアンインストール == | |||
以下に示すディレクトリおよびファイルを削除する。<br> | |||
# Xilinx ISEのアンインストール | |||
sudo rm -rf /opt/Xilinx | |||
# Xilinx ISEのドライバおよびファームウェアのアンインストール | |||
sudo rm -rf \ | |||
/usr/local/sbin/dftdrvdtch /usr/local/lib64/digilent /usr/local/share/digilent \ | |||
/etc/digilent-adept.conf /etc/hotplug/usb /etc/hotplug/usb.usermap \ | |||
/etc/udev/rules.d/xusbdfwu.rules \ | |||
/usr/share/xusb_emb.hex /usr/share/xusb_xlp.hex /usr/share/xusb_xp2.hex /usr/share/xusb_xpr.hex \ | |||
/usr/share/xusb_xse.hex /usr/share/xusb_xup.hex /usr/share/xusbdfwu.hex \ | |||
/lib/modules/$(uname -r)/kernel/drivers/misc/install_windrvr6 | |||
<br><br> | |||
== Xilinx ISE 14.7 for Windows 10のインストール == | |||
<u>※注意</u><br> | |||
<u>この方法は、Xilinxの公式手順とは異なり、VirtualBoxを使用せずにWindows 10上で直接Xilinx ISE 14.7を起動および実行する手順である。</u><br> | |||
<br> | |||
まず、[https://japan.xilinx.com/downloadNav/vivado-design-tools/archive-ise.html Xilinxの公式Webサイト]にアクセスして、<br> | |||
ISE Design Suite - 14.7 Full Product Installationの項目から、以下に示す2つのうちいずれかをダウンロードする。(ダウンロードには、Xilinxへのサインインが必要となる)<br> | |||
* フルDVD シングルファイルのダウンロードイメージ | |||
* Windows 7/XP/Server用フルインストーラ― | |||
<br> | |||
Xilinx ISE 14.7 (ISE Design Suite System EditionまたはISE WebPack)をインストールする。<br> | |||
<br> | |||
インストール完了後、Xilinx ISE 14.7のインストールディレクトリに移動する。<br> | |||
さらに、14.7\ISE_DS\ISE\lib\nt64ディレクトリに移動する。<br> | |||
このディレクトリ内にあるlibPortability.dllファイルの名前を、libPortability_org.dllファイルへ変更する。<br> | |||
また、このディレクトリ内にあるlibPortabilityNOSH.dllファイルをコピーして、libPortability.dllファイルへ名前を変更する。<br> | |||
<br> | |||
次に、Xilinx ISE 14.7のインストールディレクトリに移動して、14.7\ISE_DS\common\lib\nt64ディレクトリに移動する。<br> | |||
上記と同様、このディレクトリ内にあるlibPortability.dllファイルの名前を、libPortability_org.dllファイルへ変更する。<br> | |||
また、\<Xilinx ISE 14.7のインストールディレクトリ>\14.7\ISE_DS\ISE\lib\nt64\libPortabilityNOSH.dllファイルをコピーして、<br> | |||
\<Xilinx ISE 14.7のインストールディレクトリ>\ISE_DS\common\lib\nt64ディレクトリにコピーする。<br> | |||
libPortabilityNOSH.dllファイルの名前を、libPortability.dllファイルへ変更する。<br> | |||
<br> | |||
Xilinx ISE 14.7が正常に起動するかどうかを確認する。<br> | |||
最後に、ライセンス認証を行う。<br> | |||
<br><br> | <br><br> | ||
159行目: | 305行目: | ||
<br> | <br> | ||
Digilentプラグインのインストール手順を、以下に記載する。<br> | Digilentプラグインのインストール手順を、以下に記載する。<br> | ||
# Digilentの公式Webサイトから、Digilentプラグインをダウンロードする。 | # Digilentの公式Webサイトから、Digilentプラグインをダウンロードする。<br><u>Windows 7を使用する場合、digilent.adept.system_v2.19.2.exe以前のバージョンを使用する必要がある。</u> | ||
#: https://digilent.com/reference/software/adept/start | |||
#: または | |||
#: https://reference.digilentinc.com/software/digilent-plugin-xilinx-tools/start | #: https://reference.digilentinc.com/software/digilent-plugin-xilinx-tools/start | ||
#: または | #: または | ||
175行目: | 323行目: | ||
#: <code>cd libCseDigilent_<バージョン名>-x86_64/ISE14x/plugin</code> | #: <code>cd libCseDigilent_<バージョン名>-x86_64/ISE14x/plugin</code> | ||
#: <code>sudo cp libCseDigilent.so libCseDigilent.xml /<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent</code> | #: <code>sudo cp libCseDigilent.so libCseDigilent.xml /<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent</code> | ||
<br> | |||
プラグインファイルであるlibCseDigilent.soおよびlibCseDigilent.xmlは、Xilinx ISE 13.1以降において、以下に示す場所にコピーする必要がある。<br> | |||
# ホームディレクトリにある.cseディレクトリ。 | |||
#: Windowsでは、ホームディレクトリのパスは%USERPROFILE%環境変数で指定される。 | |||
#: Linuxでは、ホームディレクトリのパスは$HOMEで指定される。 | |||
#: <br> | |||
# 全てのユーザディレクトリにある.cseディレクトリ。 | |||
#: "all users"ディレクトリへのパスは、%ALLUSERSPROFILE%環境変数で指定される。 | |||
#: Linuxでは、環境変数$XIL_CSE_PLUGIN_DIRで指定したパスが使用される。 | |||
#: <br> | |||
# Xilinx ISEのインストールディレクトリ。 | |||
<br> | |||
Xilinx ISEが.cseディレクトリ内にあるプラグインを検索する場合、以下に示す場所にある互換性のあるプラグインを検索する。<br> | |||
プラットフォーム、ISEのバージョン、ベンダー、プラグイン名が一致するディレクトリにプラグインが見つかれば、それがロードされて検索は終了する。<br> | |||
* Windowsでは、.cse\nt\14.7\plugins\Digilent\libCseDigilentディレクトリが検索される。 | |||
* Linuxでは、.cse/lin/14.7/plugins/Digilent/libCseDigilentディレクトリが検索される。 | |||
<br> | |||
以下の例では、ホームディレクトリに.cseディレクトリを作成して、libCseDigilent.soおよびlibCseDigilent.xmlを規定の場所にコピーしている。<br> | |||
cp libCseDigilent_<バージョン>-x86_64/ISE14x/plugin/libCseDigilent.so \ | |||
libCseDigilent_<バージョン>-x86_64/ISE14x/plugin/libCseDigilent.xml \ | |||
$HOME/.cse/lin/14.7/plugins/Digilent/libCseDigilent | |||
<br> | |||
vi ~/.profile | |||
<br> | |||
# ~/.profileファイル | |||
export XIL_CSE_PLUGIN_DIR="$HOME/.cse" | |||
<br><br> | <br><br> | ||
183行目: | 358行目: | ||
Adeptランタイムは、以下のWebサイトからダウンロードする。<br> | Adeptランタイムは、以下のWebサイトからダウンロードする。<br> | ||
https://store.digilentinc.com/digilent-plugin-for-xilinx-tools-download-only/ | https://store.digilentinc.com/digilent-plugin-for-xilinx-tools-download-only/ | ||
<br> | |||
Adeptランタイムの実行に必要な依存関係のライブラリをインストールする。<br> | |||
sudo zypper install avahi libavahi-core7 libavahi-glib1 libavahi-common3 libavahi-client3 | |||
<br> | |||
もし、最新のlibusbライブラリをソースコードからビルドおよびインストールする必要がある場合は、以下の手順を行う。<br> | |||
# libusbライブラリのビルドに必要なライブラリをインストールする。 | |||
#: <code>sudo zyper install libudev-devel</code> | |||
# [https://github.com/libusb/libusb/releases libusbのGithub]にアクセスして、libusbライブラリのソースコードをダウンロードする。 | |||
# ダウンロードしたファイルを解凍して、ビルド用ディレクトリを作成する。 | |||
#: <code>tar xf libusb-<バージョン>.tar.bz2</code> | |||
#: <code>cd libusb-<バージョン> && mkdir build && cd build</code> | |||
# libusbライブラリをビルドおよびインストールする。 | |||
#: <code>../configure --prefix=<libusbライブラリのインストールディレクトリ></code> | |||
#: <code>make -j $(nproc)</code> | |||
#: <code>make install</code> | |||
# ~/.profileファイル等に、環境変数<code>LD_LIBRARY_PATH</code>と<code>PKG_CONFIG_PATH</code>の設定を追記する。 | |||
#: <code>export LD_LIBRARY_PATH="/<libusbライブラリのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"</code> | |||
#: <code>export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"</code> | |||
#: <code>export PKG_CONFIG_PATH="/<libusbライブラリのインストールディレクトリ>/lib64/pkgconfig:$PKG_CONFIG_PATH"</code> | |||
<br> | <br> | ||
==== 自動インストール ==== | ==== 自動インストール ==== | ||
以前、Adeptランタイムをインストールしている場合、既に/etc/ld.so.conf.d/digilent-adept.confファイルが存在している可能性がある。<br> | 以前、Adeptランタイムをインストールしている場合、既に/etc/ld.so.conf.d/digilent-adept.confファイルが存在している可能性がある。<br> | ||
もし、古いファイルが含まれている場合、新しいAdeptランタイムをインストールする前に、手動で削除する必要がある。<br> | もし、古いファイルが含まれている場合、新しいAdeptランタイムをインストールする前に、手動で削除する必要がある。<br> | ||
<br> | |||
手動でAdeptラインタイムを削除する場合、以下に示すディレクトリおよびファイルを削除する。<br> | |||
sudo rm -rf /usr/lib64/digilent/adept \ | |||
/usr/local/share/digilent \ | |||
/usr/sbin/dftdrvdtch \ | |||
/etc/ld.so.conf.d/digilent-adept-libraries.conf \ | |||
/etc/digilent-adept.conf \ | |||
/etc/udev/rules.d/52-digilent-usb.rules | |||
<br> | <br> | ||
基本的なインストールでは、install.shファイルを実行する。<br> | 基本的なインストールでは、install.shファイルを実行する。<br> | ||
192行目: | 394行目: | ||
sudo ./install.sh | sudo ./install.sh | ||
<br> | <br> | ||
もし、何らかの理由でインストールできない場合やインストールプロセスをより細かく制御する場合は、各コンポーネントを手動でインストールする方法を、以下に記載する。<br> | |||
<br> | <br> | ||
==== 手動インストール ==== | ==== 手動インストール ==== | ||
236行目: | 437行目: | ||
<br> | <br> | ||
以下のコマンドを実行して、ファームウェアイメージをインストールする。<br> | 以下のコマンドを実行して、ファームウェアイメージをインストールする。<br> | ||
sudo mkdir -p / 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/*.HEX /usr/share/digilent/adept/data/firmware | ||
sudo cp -f data /firmware/*.so/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 644 /usr/share/digilent/adept/data/firmware/*.HEX | ||
sudo chmod 755 /usr/share/digilent/adept/data/firmware/*.so | sudo chmod 755 /usr/share/digilent/adept/data/firmware/*.so | ||
<br> | |||
==== 既知の問題 ==== | |||
VMware Workstationを使用しており、かつ、ゲストOSがLinuxの場合、Adeptランタイムにおいて問題が発生する可能性がある。<br> | |||
VMware Workstationは、USB SET_INTERFACEリクエストをWindowsホストに渡さないため、Linuxカーネルとデバイス間の通信に失敗することがある。<br> | |||
この問題は、プロセスがインターフェイスを解放するたびにUSBデバイスにSET_INTERFACEリクエストを送信するLinuxカーネル 2.6.28以前で発生する。<br> | |||
<br> | |||
また、VMware Workstationを使用しており、DigilentのUSBデバイスとの通信に問題がある場合は、以下に示す環境変数を設定する。<br> | |||
以下の環境変数を設定すると、SET_INTERFACEリクエストの回避が可能になる。<br> | |||
vi ~/.profile | |||
<br> | |||
# ~/.profileファイル | |||
ADEPT_SETIFWAEN=1 | |||
<br> | |||
ただし、DigilentのUSBデバイスと正常に通信できるようになるが、永続的な解決策としては推奨しない。<br> | |||
最も良い解決策は、より新しいカーネルにアップグレードして使用する、または、ホストOSでAdeptランタイムを使用することである。<br> | |||
<br> | |||
また、古いUdevを使用している場合、/devディレクトリにUSBデバイスのエントリが作成されない。<br> | |||
USBデバイスのエントリが存在しない場合、一般ユーザにDigilentのUSBデバイスの読み書きの権限を付加することができない。<br> | |||
そのため、古いUdevでAdeptランタイムを使用する場合は、スーパーユーザ権限が必要となる。<br> | |||
<br><br> | |||
== Adeptユーティリティのインストール == | |||
==== Adeptユーティリティとは ==== | |||
Adeptユーティリティは、Adeptランタイムと組み合わせて使用することにより、Digilentのデバイスを管理および通信するためのコマンド群である。<br> | |||
<br> | |||
Adeptユーティリティは、以下に示す3つのソフトウェアで構成されている。<br> | |||
* Adeptユーティリティ(dadutil) | |||
*: Digilentデバイスの検出、デバイス情報の問い合わせ、デバイステーブルの操作、デバイス情報の設定等のコマンドを提供する。 | |||
* JTAG Configユーティリティ(djtgcfg) | |||
*: コマンドを使用して、Digilentボード上のFPGAおよびCPLDの初期化、プログラム、消去を行うことができる。 | |||
* NetFPGA-SUME Flash Configurationユーティリティ(djtgcfg) | |||
*: DigilentのNetFPGA-SUME上のフラッシュメモリの特定のセクションにビットまたはビンファイルを書き込むことができるユーティリティである。 | |||
<br> | |||
==== Adeptユーティリティの自動インストール ==== | |||
Adeptユーティリティのインストールは、同梱のinstall.shファイルをスーパーユーザ権限で実行する。<br> | |||
このinstall.shファイルは、適切な機能を実現するために必要な全てのコンポーネントをインストールする。<br> | |||
sudo ./install.sh | |||
<br> | |||
==== Adeptユーティリティの手動インストール ==== | |||
Adeptユーティリティの実行ファイルを任意のディレクトリにコピーする。<br> | |||
cp /<Adeptユーティリティが存在するディレクトリ>/bin64/* /<Adeptユーティリティのインストールディレクトリ>/bin | |||
chmod 755 /<Adeptユーティリティのインストールディレクトリ>/bin/dadutil | |||
chmod 755 /<Adeptユーティリティのインストールディレクトリ>/bin/djtgcfg | |||
# または | |||
sudo cp /<Adeptユーティリティが存在するディレクトリ>/bin64/* /usr/local/bin | |||
sudo chmod 755 /usr/local/bin/dadutil | |||
sudo chmod 755 /usr/local/bin/djtgcfg | |||
<br> | |||
次に、ビットストリームファイルをインストールする。<br> | |||
Adeptユーティリティに含まれるソフトウェアは、FPGA上で動作するソフトウェア固有のロジックと通信する場合がある。<br> | |||
Adeptユーティリティには、通信に必要なソフトウェア固有のロジックを定義するビットファイルが含まれている。<br> | |||
<br> | |||
これらのビットファイルは、 該当するソフトウェアに対応する名前のディレクトリ内に格納されている。<br> | |||
例えば、dsumecfg向けのビットファイルはbitstreams/dsumecfgディレクトリに格納されている。<br> | |||
<br> | |||
各ビットファイルは、$DigilentPath/$ApplicationName/bitstreamsにコピーする必要がある。<br> | |||
$DigilentPathは、/etc/digilent-adept.confファイルの<code>DigilentPath</code>キーに定義されているパス、$ApplicationNameはソフトウェア名である。<br> | |||
初期設定では、<code>$DigilentPath</code>の値は<code>/usr/share/diglient</code>である。<br> | |||
<br> | |||
ビットストリームをインストールして、パーミッションを設定する。<br> | |||
sudo mkdir -p /usr/share/digilent/dsumecfg/bitstreams | |||
sudo cp -f /<Adeptユーティリティのインストールディレクトリ>/bitstreams/dsumecfg/* /usr/share/digilent/dsumecfg/bitstreams | |||
sudo chmod 644 /usr/share/digilent/dsumecfg/bitstreams/* | |||
<br> | |||
最後に、MANファイルをインストールする。<br> | |||
Adeptユーティリティは、提供するソフトウェアごとにMANファイルが存在する。<br> | |||
インストールすることにより、<code>man <ソフトウェア名></code>コマンドを実行して、特定のソフトウェアのドキュメントを読むことができる。<br> | |||
<br> | |||
MANファイルは、<code>manpath</code>コマンドおよび<code>echo $MANPATH</code>で示されるディレクトリにインストールする。<br> | |||
初期設定では、/usr/local/manディレクトリ、/usr/share/man等となる。<br> | |||
<br> | |||
AdeptユーティリティのMANファイルをインストールして、パーミッションを設定する。<br> | |||
sudo cp -f /<Adeptユーティリティのインストールディレクトリ>/man/dadutil.1 /usr/local/man/man1 | |||
sudo chmod 644 /usr/local/man/man1/dadutil.1 | |||
<br> | |||
==== Adeptユーティリティのアンインストール ==== | |||
以下に示すファイルおよびディレクトリを削除する。<br> | |||
sudo rm -rf /<Adeptユーティリティのインストールディレクトリ>/bin/dadutil /<Adeptユーティリティのインストールディレクトリ>/bin/djtgcfg | |||
sudo rm -rf /usr/share/digilent/dsumecfg/bitstreams | |||
sudo rm -rf /usr/local/man/man1/dadutil.1 | |||
<br> | |||
==== Adeptユーティリティの使用方法 ==== | |||
Adeptユーティリティを使用して、XilinxのFPGAに書き込む場合、生成したbitファイル、書き込むデバイス名、デバイス内のインデックス番号を入力する必要がある。<br> | |||
<u>デバイス内のインデックス番号は、コンフィギュレーションROMの番号を選択すること。</u><br> | |||
<br> | |||
以下の例では、Basys2にbitファイルを書き込んでいる。<br> | |||
まず、デバイス名(User Name)を確認する。<br> | |||
djtgcfg enum | |||
# 出力例 | |||
Found 1 device(s) | |||
Device: Basys2 | |||
Device Transport Type: 00010001 (USB) | |||
Product Name: Digilent Basys2-100 | |||
User Name: Basys2 | |||
Serial Number: 210155473605 | |||
<br> | |||
次に、デバイス内にあるコンフィギュレーションROMのインデックス番号を確認する。<br> | |||
djtgcfg init -d Basys2 | |||
# 出力例 | |||
Initializing scan chain... | |||
Found Device ID: d5045093 | |||
Found Device ID: 11c10093 | |||
Found 2 device(s): | |||
Device 0: XC3S100E | |||
Device 1: XCF02S | |||
<br> | |||
デバイス内にあるコンフィギュレーションROMにbitファイルを書き込む。<br> | |||
djtgcfg prog -f <bitファイルのパス> -d <デバイス名> -i <インデックス番号> | |||
例. Basys2に書き込む場合 | |||
djtgcfg prog -f $HOME/Program/FPGA/Clock/Clock24.bit -d Basys2 -i 1 | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:Verilog-HDL]][[カテゴリ:SUSE]] | [[カテゴリ:Verilog-HDL]][[カテゴリ:SUSE]] |
2024年5月5日 (日) 12:04時点における最新版
概要
ここでは、SUSEにXilinx ISEをインストールする手順を記載する。
Xilinx ISEのインストールは簡単であるが、Platform USB Cable IIおよびCable IVのドライバのインストールは複雑である。
他のLinuxディストリビューションや他のISE / Vivadoのバージョンも、このページに沿ってインストールできる場合がある。
Xinlix ISEの使用方法、ライセンスの管理方法、HDLの記述方法については説明しない。
依存関係のライブラリのインストール
パッケージ管理システムからインストール
sudo zypper install libncurses5 libftdi1-devel
ソースコードからインストール
NCurses 5ライブラリ (64ビット向け) のインストールするには、インストール - Code Composer Studio#libncurses5のインストールを参照すること。
libftdi1ライブラリをインストールする前に、libusb 1.0ライブラリおよびlibconfuseライブラリをインストールする必要がある。
- libusb 1.0
- ユーザ空間からUSBデバイスと通信するためのライブラリである。
- libftdiライブラリにより必要とされる。
- libconfuse
- 設定ファイル解析用ライブラリである。
- ftdi_eepromライブラリにより必要とされる。
libftdi1ライブラリのインストールに必要なライブラリをインストールする。
sudo zypper install swig libboost_headers1_66_0-devel libusb-1_0-devel python3-devel
まず、libconfuseの公式Webサイトにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf confuse-<バージョン>.tar.xz cd confuse-<バージョン>
libconfuseをビルドおよびインストールする。
mkdir build && cd build ../configure --prefix=<libconfuseのインストールディレクトリ> make -j $(nproc) make install
~/.profileファイル等に、以下の環境変数を追記する。
# ~/.profileファイル
export PATH="/<libconfuseのインストールディレクトリ>/bin:$PATH"
export LD_LIBRARY_PATH="/<libconfuseのインストールディレクトリ>/lib64:/<libconfuseのインストールディレクトリ>/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"
export PKG_CONFIG_PATH="/<libconfuseのインストールディレクトリ>/lib64/pkgconfig:/<libconfuseのインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH"
次に、libftdi1ライブラリをインストールする。
libftdi1ライブラリの公式Webサイトにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf libftdi1-<バージョン>.tar.bz2 cd libftdi1-<バージョン>
mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=<libftdi1ライブラリのインストールディレクトリ> \ .. make -j $(nproc) make install
~/.profileファイル等に、以下の環境変数を追記する。
# ~/.profileファイル
export PATH="/<libftdi1のインストールディレクトリ>/bin:$PATH"
export LD_LIBRARY_PATH="/<libftdi1のインストールディレクトリ>/lib64:/<libftdi1のインストールディレクトリ>/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"
export PKG_CONFIG_PATH="/<libftdi1のインストールディレクトリ>/lib64/pkgconfig:/<libftdi1のインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH"
Xilinx ISEのダウンロード
Xilinxの公式Webサイトにアクセスして、Xilinx ISEをダウンロードする。
Xilinx ISEのインストール
スーパーユーザになり、Xilinx ISEが存在するメディアに移動して、以下のコマンドを実行する。
su ./xsetup # または su -p -c "./xsetup"
インストール画面が起動するので、画面の指示に従ってインストールを行う。
Platform USB Cable IIのドライバのインストールを求められたら、ドライバのインストールを選択する。
Xilinx ISEに必要な環境変数について通知するメッセージは無視すること。
詳細は、以降のセクションにあるXilinx ISEの起動スクリプトの設定を参照すること。
また、以下に示す、インストール後に表示されるPlatform USBのドライバのインストールが失敗したというメッセージは無視する。
Platform USBのドライバのインストールおよび設定は、Xilinx ISEのインストール後に行う。
Driver installation failed. Please check the /.xinstall/install.log file for more information on the cause of the installation failure. # 訳 : ドライバーのインストールに失敗しました。 インストールに失敗した原因については、/.xinstall/install.logファイルを確認してください。
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
もしくは、以下に示すように編集する。
# /etc/udev/rules.d/xusbdfwu.rulesファイル SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0008", MODE="666" SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0007", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusbdfwu.hex -D $tempnode" SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0009", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusb_xup.hex -D $tempnode" SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000d", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusb_emb.hex -D $tempnode" SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000f", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusb_xlp.hex -D $tempnode" SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0013", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusb_xp2.hex -D $tempnode" SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0015", RUN\+="/sbin/fxload -v -t fx2 -I /<Xilinx ISEのインストールディレクトリ>/<バージョン>/ISE_DS/ISE/bin/lin/xusb_xse.hex -D $tempnode"
sudo udevadm control --reload-rules
恐らく、次の設定は不要であるが、念の為に記載しておく。
cd /<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/ISE/lib/lin64 sudo mv libstdc++.so libstdc++_org.so sudo mv libstdc++.so.6 libstdc++_org.so.6 sudo mv libstdc++.so.6.0.8 libstdc++_org.so.6.0.8 sudo ln -s /usr/lib64/libstdc++.so.6 libstdc++.so sudo ln -s libstdc++.so libstdc++.so.6 sudo ln -s libstdc++.so libstdc++.so.6.0.8 cd /<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/common/lib/lin64/ sudo mv libstdc++.so libstdc++_org.so sudo mv libstdc++.so.6 libstdc++_org.so.6 sudo mv libstdc++.so.6.0.8 libstdc++_org.so.6.0.8 sudo ln -s /usr/lib64/libstdc++.so.6 libstdc++.so sudo ln -s libstdc++.so libstdc++.so.6 sudo ln -s libstdc++.so libstdc++.so.6.0.8
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
- 次に、/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を再起動する。
- 再起動後、PCにPlatform Cable USB IIを接続して、Platform Cable USB II本体のLEDが黄色に点灯するかどうか確認する。
USB延長コードは電源に悪影響を与える可能性があるため、非推奨である。
LEDが黄色に点灯しない場合
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
LEDが点灯しない場合は、以下のコマンドを実行する。
この時、hex拡張子のファイルが多く出力される。
ls -l /usr/share/*.hex
もし、hex拡張子のファイルが存在しない場合は、Xilinx ISEを再インストールする。
この時、インストール時に、Platform Cable USB IIドライバが選択されていることを確認する。
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へメールで連絡してファイルを送信してもらうことができる。
git clone
コマンドを実行して、ソースコードをダウンロードすることもできる。git clone git://git.zerfleddert.de/usb-driver
cd usb-driver
- ダウンロードしたファイルを解凍する。
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で始まる行をコメント解除する。
Xilinx ISEのアンインストール
以下に示すディレクトリおよびファイルを削除する。
# Xilinx ISEのアンインストール sudo rm -rf /opt/Xilinx # Xilinx ISEのドライバおよびファームウェアのアンインストール sudo rm -rf \ /usr/local/sbin/dftdrvdtch /usr/local/lib64/digilent /usr/local/share/digilent \ /etc/digilent-adept.conf /etc/hotplug/usb /etc/hotplug/usb.usermap \ /etc/udev/rules.d/xusbdfwu.rules \ /usr/share/xusb_emb.hex /usr/share/xusb_xlp.hex /usr/share/xusb_xp2.hex /usr/share/xusb_xpr.hex \ /usr/share/xusb_xse.hex /usr/share/xusb_xup.hex /usr/share/xusbdfwu.hex \ /lib/modules/$(uname -r)/kernel/drivers/misc/install_windrvr6
Xilinx ISE 14.7 for Windows 10のインストール
※注意
この方法は、Xilinxの公式手順とは異なり、VirtualBoxを使用せずにWindows 10上で直接Xilinx ISE 14.7を起動および実行する手順である。
まず、Xilinxの公式Webサイトにアクセスして、
ISE Design Suite - 14.7 Full Product Installationの項目から、以下に示す2つのうちいずれかをダウンロードする。(ダウンロードには、Xilinxへのサインインが必要となる)
- フルDVD シングルファイルのダウンロードイメージ
- Windows 7/XP/Server用フルインストーラ―
Xilinx ISE 14.7 (ISE Design Suite System EditionまたはISE WebPack)をインストールする。
インストール完了後、Xilinx ISE 14.7のインストールディレクトリに移動する。
さらに、14.7\ISE_DS\ISE\lib\nt64ディレクトリに移動する。
このディレクトリ内にあるlibPortability.dllファイルの名前を、libPortability_org.dllファイルへ変更する。
また、このディレクトリ内にあるlibPortabilityNOSH.dllファイルをコピーして、libPortability.dllファイルへ名前を変更する。
次に、Xilinx ISE 14.7のインストールディレクトリに移動して、14.7\ISE_DS\common\lib\nt64ディレクトリに移動する。
上記と同様、このディレクトリ内にあるlibPortability.dllファイルの名前を、libPortability_org.dllファイルへ変更する。
また、\<Xilinx ISE 14.7のインストールディレクトリ>\14.7\ISE_DS\ISE\lib\nt64\libPortabilityNOSH.dllファイルをコピーして、
\<Xilinx ISE 14.7のインストールディレクトリ>\ISE_DS\common\lib\nt64ディレクトリにコピーする。
libPortabilityNOSH.dllファイルの名前を、libPortability.dllファイルへ変更する。
Xilinx ISE 14.7が正常に起動するかどうかを確認する。
最後に、ライセンス認証を行う。
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サイトから、Digilentプラグインをダウンロードする。
Windows 7を使用する場合、digilent.adept.system_v2.19.2.exe以前のバージョンを使用する必要がある。 - ダウンロードしたDigilentプラグインを解凍して、以下のディレクトリに移動する。
cd libCseDigilent_<バージョン名>-x86_64/ISE14x/plugin
- Xilinx ISEのインストールディレクトリにある古いDigilentプラグインをバックアップする。
cd /<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のインストールディレクトリ>/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilentディレクトリにコピーする。 cd libCseDigilent_<バージョン名>-x86_64/ISE14x/plugin
sudo cp libCseDigilent.so libCseDigilent.xml /<Xilinx ISEのインストールディレクトリ>/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent
プラグインファイルであるlibCseDigilent.soおよびlibCseDigilent.xmlは、Xilinx ISE 13.1以降において、以下に示す場所にコピーする必要がある。
- ホームディレクトリにある.cseディレクトリ。
- Windowsでは、ホームディレクトリのパスは%USERPROFILE%環境変数で指定される。
- Linuxでは、ホームディレクトリのパスは$HOMEで指定される。
- 全てのユーザディレクトリにある.cseディレクトリ。
- "all users"ディレクトリへのパスは、%ALLUSERSPROFILE%環境変数で指定される。
- Linuxでは、環境変数$XIL_CSE_PLUGIN_DIRで指定したパスが使用される。
- Xilinx ISEのインストールディレクトリ。
Xilinx ISEが.cseディレクトリ内にあるプラグインを検索する場合、以下に示す場所にある互換性のあるプラグインを検索する。
プラットフォーム、ISEのバージョン、ベンダー、プラグイン名が一致するディレクトリにプラグインが見つかれば、それがロードされて検索は終了する。
- Windowsでは、.cse\nt\14.7\plugins\Digilent\libCseDigilentディレクトリが検索される。
- Linuxでは、.cse/lin/14.7/plugins/Digilent/libCseDigilentディレクトリが検索される。
以下の例では、ホームディレクトリに.cseディレクトリを作成して、libCseDigilent.soおよびlibCseDigilent.xmlを規定の場所にコピーしている。
cp libCseDigilent_<バージョン>-x86_64/ISE14x/plugin/libCseDigilent.so \ libCseDigilent_<バージョン>-x86_64/ISE14x/plugin/libCseDigilent.xml \ $HOME/.cse/lin/14.7/plugins/Digilent/libCseDigilent
vi ~/.profile
# ~/.profileファイル export XIL_CSE_PLUGIN_DIR="$HOME/.cse"
Adeptランタイムのインストール
Digilent製品を使用する場合、Adeptランタイムのインストールが必要である。
このセクションでは、Adeptランタイムのインストール手順を記載する。
Adeptランタイムは、以下のWebサイトからダウンロードする。
https://store.digilentinc.com/digilent-plugin-for-xilinx-tools-download-only/
Adeptランタイムの実行に必要な依存関係のライブラリをインストールする。
sudo zypper install avahi libavahi-core7 libavahi-glib1 libavahi-common3 libavahi-client3
もし、最新のlibusbライブラリをソースコードからビルドおよびインストールする必要がある場合は、以下の手順を行う。
- libusbライブラリのビルドに必要なライブラリをインストールする。
sudo zyper install libudev-devel
- libusbのGithubにアクセスして、libusbライブラリのソースコードをダウンロードする。
- ダウンロードしたファイルを解凍して、ビルド用ディレクトリを作成する。
tar xf libusb-<バージョン>.tar.bz2
cd libusb-<バージョン> && mkdir build && cd build
- libusbライブラリをビルドおよびインストールする。
../configure --prefix=<libusbライブラリのインストールディレクトリ>
make -j $(nproc)
make install
- ~/.profileファイル等に、環境変数
LD_LIBRARY_PATH
とPKG_CONFIG_PATH
の設定を追記する。export LD_LIBRARY_PATH="/<libusbライブラリのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"
export PKG_CONFIG_PATH="/<libusbライブラリのインストールディレクトリ>/lib64/pkgconfig:$PKG_CONFIG_PATH"
自動インストール
以前、Adeptランタイムをインストールしている場合、既に/etc/ld.so.conf.d/digilent-adept.confファイルが存在している可能性がある。
もし、古いファイルが含まれている場合、新しいAdeptランタイムをインストールする前に、手動で削除する必要がある。
手動でAdeptラインタイムを削除する場合、以下に示すディレクトリおよびファイルを削除する。
sudo rm -rf /usr/lib64/digilent/adept \ /usr/local/share/digilent \ /usr/sbin/dftdrvdtch \ /etc/ld.so.conf.d/digilent-adept-libraries.conf \ /etc/digilent-adept.conf \ /etc/udev/rules.d/52-digilent-usb.rules
基本的なインストールでは、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
既知の問題
VMware Workstationを使用しており、かつ、ゲストOSがLinuxの場合、Adeptランタイムにおいて問題が発生する可能性がある。
VMware Workstationは、USB SET_INTERFACEリクエストをWindowsホストに渡さないため、Linuxカーネルとデバイス間の通信に失敗することがある。
この問題は、プロセスがインターフェイスを解放するたびにUSBデバイスにSET_INTERFACEリクエストを送信するLinuxカーネル 2.6.28以前で発生する。
また、VMware Workstationを使用しており、DigilentのUSBデバイスとの通信に問題がある場合は、以下に示す環境変数を設定する。
以下の環境変数を設定すると、SET_INTERFACEリクエストの回避が可能になる。
vi ~/.profile
# ~/.profileファイル ADEPT_SETIFWAEN=1
ただし、DigilentのUSBデバイスと正常に通信できるようになるが、永続的な解決策としては推奨しない。
最も良い解決策は、より新しいカーネルにアップグレードして使用する、または、ホストOSでAdeptランタイムを使用することである。
また、古いUdevを使用している場合、/devディレクトリにUSBデバイスのエントリが作成されない。
USBデバイスのエントリが存在しない場合、一般ユーザにDigilentのUSBデバイスの読み書きの権限を付加することができない。
そのため、古いUdevでAdeptランタイムを使用する場合は、スーパーユーザ権限が必要となる。
Adeptユーティリティのインストール
Adeptユーティリティとは
Adeptユーティリティは、Adeptランタイムと組み合わせて使用することにより、Digilentのデバイスを管理および通信するためのコマンド群である。
Adeptユーティリティは、以下に示す3つのソフトウェアで構成されている。
- Adeptユーティリティ(dadutil)
- Digilentデバイスの検出、デバイス情報の問い合わせ、デバイステーブルの操作、デバイス情報の設定等のコマンドを提供する。
- JTAG Configユーティリティ(djtgcfg)
- コマンドを使用して、Digilentボード上のFPGAおよびCPLDの初期化、プログラム、消去を行うことができる。
- NetFPGA-SUME Flash Configurationユーティリティ(djtgcfg)
- DigilentのNetFPGA-SUME上のフラッシュメモリの特定のセクションにビットまたはビンファイルを書き込むことができるユーティリティである。
Adeptユーティリティの自動インストール
Adeptユーティリティのインストールは、同梱のinstall.shファイルをスーパーユーザ権限で実行する。
このinstall.shファイルは、適切な機能を実現するために必要な全てのコンポーネントをインストールする。
sudo ./install.sh
Adeptユーティリティの手動インストール
Adeptユーティリティの実行ファイルを任意のディレクトリにコピーする。
cp /<Adeptユーティリティが存在するディレクトリ>/bin64/* /<Adeptユーティリティのインストールディレクトリ>/bin chmod 755 /<Adeptユーティリティのインストールディレクトリ>/bin/dadutil chmod 755 /<Adeptユーティリティのインストールディレクトリ>/bin/djtgcfg # または sudo cp /<Adeptユーティリティが存在するディレクトリ>/bin64/* /usr/local/bin sudo chmod 755 /usr/local/bin/dadutil sudo chmod 755 /usr/local/bin/djtgcfg
次に、ビットストリームファイルをインストールする。
Adeptユーティリティに含まれるソフトウェアは、FPGA上で動作するソフトウェア固有のロジックと通信する場合がある。
Adeptユーティリティには、通信に必要なソフトウェア固有のロジックを定義するビットファイルが含まれている。
これらのビットファイルは、 該当するソフトウェアに対応する名前のディレクトリ内に格納されている。
例えば、dsumecfg向けのビットファイルはbitstreams/dsumecfgディレクトリに格納されている。
各ビットファイルは、$DigilentPath/$ApplicationName/bitstreamsにコピーする必要がある。
$DigilentPathは、/etc/digilent-adept.confファイルのDigilentPath
キーに定義されているパス、$ApplicationNameはソフトウェア名である。
初期設定では、$DigilentPath
の値は/usr/share/diglient
である。
ビットストリームをインストールして、パーミッションを設定する。
sudo mkdir -p /usr/share/digilent/dsumecfg/bitstreams sudo cp -f /<Adeptユーティリティのインストールディレクトリ>/bitstreams/dsumecfg/* /usr/share/digilent/dsumecfg/bitstreams sudo chmod 644 /usr/share/digilent/dsumecfg/bitstreams/*
最後に、MANファイルをインストールする。
Adeptユーティリティは、提供するソフトウェアごとにMANファイルが存在する。
インストールすることにより、man <ソフトウェア名>
コマンドを実行して、特定のソフトウェアのドキュメントを読むことができる。
MANファイルは、manpath
コマンドおよびecho $MANPATH
で示されるディレクトリにインストールする。
初期設定では、/usr/local/manディレクトリ、/usr/share/man等となる。
AdeptユーティリティのMANファイルをインストールして、パーミッションを設定する。
sudo cp -f /<Adeptユーティリティのインストールディレクトリ>/man/dadutil.1 /usr/local/man/man1 sudo chmod 644 /usr/local/man/man1/dadutil.1
Adeptユーティリティのアンインストール
以下に示すファイルおよびディレクトリを削除する。
sudo rm -rf /<Adeptユーティリティのインストールディレクトリ>/bin/dadutil /<Adeptユーティリティのインストールディレクトリ>/bin/djtgcfg sudo rm -rf /usr/share/digilent/dsumecfg/bitstreams sudo rm -rf /usr/local/man/man1/dadutil.1
Adeptユーティリティの使用方法
Adeptユーティリティを使用して、XilinxのFPGAに書き込む場合、生成したbitファイル、書き込むデバイス名、デバイス内のインデックス番号を入力する必要がある。
デバイス内のインデックス番号は、コンフィギュレーションROMの番号を選択すること。
以下の例では、Basys2にbitファイルを書き込んでいる。
まず、デバイス名(User Name)を確認する。
djtgcfg enum # 出力例 Found 1 device(s) Device: Basys2 Device Transport Type: 00010001 (USB) Product Name: Digilent Basys2-100 User Name: Basys2 Serial Number: 210155473605
次に、デバイス内にあるコンフィギュレーションROMのインデックス番号を確認する。
djtgcfg init -d Basys2 # 出力例 Initializing scan chain... Found Device ID: d5045093 Found Device ID: 11c10093 Found 2 device(s): Device 0: XC3S100E Device 1: XCF02S
デバイス内にあるコンフィギュレーションROMにbitファイルを書き込む。
djtgcfg prog -f <bitファイルのパス> -d <デバイス名> -i <インデックス番号> 例. Basys2に書き込む場合 djtgcfg prog -f $HOME/Program/FPGA/Clock/Clock24.bit -d Basys2 -i 1