「Xilinx ISE WebPACK」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:開発 Category:計算と科学 en:Xilinx ISE WebPACK Xilinx ISE WebPACK は完全な FPGA/CPLD プログラマブルロジックデザインスイ...」)
 
 
(2人の利用者による、間の6版が非表示)
1行目: 1行目:
[[Category:開発]]
+
[[Category:電子設計自動化]]
[[Category:計算と科学]]
 
 
[[en:Xilinx ISE WebPACK]]
 
[[en:Xilinx ISE WebPACK]]
 
Xilinx ISE WebPACK は完全な FPGA/CPLD プログラマブルロジックデザインスイートです:
 
Xilinx ISE WebPACK は完全な FPGA/CPLD プログラマブルロジックデザインスイートです:
7行目: 6行目:
 
* ファンクショナル (振る舞い) シミュレーションと (配置配線後の) タイミングシミュレーション
 
* ファンクショナル (振る舞い) シミュレーションと (配置配線後の) タイミングシミュレーション
 
* 通信ケーブルによる対象機器への設定データのダウンロード
 
* 通信ケーブルによる対象機器への設定データのダウンロード
  +
  +
ISE WebPACK の開発は [[Xilinx Vivado]] ができたことで停止していますが、新しいスイートでサポートされていない古いデバイスの開発には有用です。
   
 
Arch Linux は公式サポートされているディストリビューションではありませんが、多くの機能は Arch Linux で動作します。
 
Arch Linux は公式サポートされているディストリビューションではありませんが、多くの機能は Arch Linux で動作します。
   
 
== 必須要件 ==
 
== 必須要件 ==
  +
  +
=== ISE WebPACK のダウンロード ===
  +
Xilinx ISE WebPACK は再配布が許可されていないプロプライエタリライセンスでリリースされているフリーソフトウェアです。[http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html 公式のダウンロードページ] からデータをダウンロードできます。
   
 
=== 依存パッケージ ===
 
=== 依存パッケージ ===
  +
ISE Webpack に含まれているツールの一部 (やインストーラー) は {{AUR|ncurses5-compat-libs}} に依存しています。さらに、他のツール (FPGA エディタなど) は {{Pkg|libstdc++5}}, {{Pkg|openmotif}}, {{Pkg|xorg-fonts-75dpi}}, {{Pkg|xorg-fonts-100dpi}} を必要とします [https://forums.xilinx.com/t5/General-Technical-Discussion/Xilinx-issues-on-Linux/td-p/194576]。
組み込み ARM コア (Xilinx Zynq SoC デバイスなど) 用にソフトウェアを開発する場合、Xilinx Embedded Development Kit (EDK) にバンドルされている GCC クロスコンパイラをインストールすることになります。このコンパイラは {{Pkg|glibc}} と {{Pkg|ncurses}} パッケージを必要とします。i686 環境の場合、大抵これらのパッケージは既にインストールされています。
 
   
64ビットの Arch 環境の場合、[[multilib]] リポジトリからパッケージをインストールする必要があります ({{Pkg|lib32-glibc}} と {{Pkg|lib32-ncurses}})
+
組み込み ARM コア (Xilinx Zynq SoC デバイスなど) 用にソフトウェアを開発する場合、Xilinx Embedded Development Kit (EDK) にバンドルされている GCC クロスコンパイラをインストールすることになります。このコンパイラは {{Pkg|glibc}} と {{Pkg|ncurses}} パッケージを必要とします。64ビットの Arch 環境の場合、[[multilib]] リポジトリの {{Pkg|lib32-glibc}} と [[AUR]] の {{AUR|lib32-ncurses5-compat-libs}} パッケージをインストールする必要があります。
   
 
=== デフォルトシェル ===
 
=== デフォルトシェル ===
インストール時に、埋め込みプロセッサの Mentor CodeSourcery ツールチェインを Xilinx ツールと一緒にインストールすることができます。デフォルトのシェルが "dash" に設定されている場合、このインストールは何も出力をしないで失敗します。{{ic|/usr/bin/sh}} が {{ic|/usr/bin/bash}} になっていることを確認してください。
+
インストール時に、埋め込みプロセッサの Mentor CodeSourcery ツールチェインを Xilinx ツールと一緒にインストールすることができます。デフォルトのシェルが [[dash]] に設定されている場合、このインストールは何も出力をしないで失敗します。{{ic|/usr/bin/sh}} が {{ic|/usr/bin/bash}} になっていることを確認してください。
   
 
次のコマンドを実行することで確認できます:
 
次のコマンドを実行することで確認できます:
27行目: 31行目:
 
{{ic|/usr/bin/sh}} は {{ic|/usr/bin/bash}} になっています (Arch Linux でのデフォルト)。
 
{{ic|/usr/bin/sh}} は {{ic|/usr/bin/bash}} になっています (Arch Linux でのデフォルト)。
   
出力が異なる場合、root で以下のコマンド実行してください:
+
出力が異なる場合、{{ic|/usr/bin/sh}} bash にリンクしてください:
$ rm /usr/bin/sh
+
# ln -sfT bash /usr/bin/sh
$ ln -s bash /usr/bin/sh
 
   
 
== インストール ==
 
== インストール ==
  +
=== AUR からインストール ===
{{Note|The installation is last known to work with Xilinx ISE 14.7, requiring the dynamic library fix described below.}}
 
  +
{{AUR|xilinx-ise}} パッケージをインストールしてください。ビルドを開始する前に {{ic|PKGBUILD}} と同じフォルダにインストールデータが含まれた tarball を配置する必要があります。
   
  +
=== 手動インストール ===
ISE デザインツールは [http://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/design-tools.html 公式のダウンロードページ] からダウンロードできます。登録とライセンス契約が必要ですが、料金はかかりません。つまり、"言論の自由"のフリーではなく、"無料のビール"と同じ意味のフリーです。
 
  +
{{Note|以下のインストール方法で動作するのを確認したのは Xilinx ISE 14.7 で、動的ライブラリの修正が必要です。}}
   
tarball のダウドが完了したら、解凍してください:
+
ストルデータを含む tarball を展開してください:
 
$ tar -xvf Xilinx_ISE_DS_Lin_14.7_1015_1.tar
 
$ tar -xvf Xilinx_ISE_DS_Lin_14.7_1015_1.tar
   
51行目: 56行目:
   
 
=== ISE デザインツールの起動 ===
 
=== ISE デザインツールの起動 ===
ISE デザインツールには環境変数 (主に PATH と LD_LIBRARY_PATH) を変更するシェルスクリプトが含まれています。ISE ツールを起動する前にこのスクリプトを source する必要があります:
+
ISE デザインツールには環境変数 (主に {{ic|PATH}}{{ic|LD_LIBRARY_PATH}}) を変更するシェルスクリプトが含まれています。ISE ツールを起動する前にこのスクリプトを source する必要があります:
 
$ source /opt/Xilinx/14.7/ISE_DS/settings64.sh
 
$ source /opt/Xilinx/14.7/ISE_DS/settings64.sh
 
また、32ビット環境の場合:
 
また、32ビット環境の場合:
 
$ source /opt/Xilinx/14.7/ISE_DS/settings32.sh
 
$ source /opt/Xilinx/14.7/ISE_DS/settings32.sh
   
スクリプトを読み込むことで、ISE デザインツールに PATH が通るのでツールの名前をターミナルに入力することで起動できます (例: {{ic|ise}}, {{ic|planAhead}}, {{ic|xsdk}}, ...)。
+
スクリプトを読み込むことで、ISE デザインツールに {{ic|PATH}} が通るのでツールの名前をターミナルに入力することで起動できます (例: {{ic|ise}}, {{ic|planAhead}}, {{ic|xsdk}}, ...)。
   
 
==== デスクトップアイコンによる起動 ====
 
==== デスクトップアイコンによる起動 ====
{{ic|/usr/share/applications/}} にファイルを作成することもできます。
+
{{ic|/usr/share/applications/}} に[[デスクトップエントリ]]を作成する方法で起動できます。
   
ise.desktop:
+
{{hc|/usr/share/applications/ise.desktop|2=
#!/usr/bin/env xdg-open
+
#!/usr/bin/env xdg-open
[Desktop Entry]
+
[Desktop Entry]
Version=1.0
+
Version=1.0
Type=Application
+
Type=Application
Name=Xilinx ISE
+
Name=Xilinx ISE
Exec=sh -c "unset LANG && unset QT_PLUGIN_PATH && source /opt/Xilinx/14.7/ISE_DS/settings64.sh && ise"
+
Exec=sh -c "unset LANG && unset QT_PLUGIN_PATH && source /opt/Xilinx/14.7/ISE_DS/settings64.sh && ise"
Icon=/opt/Xilinx/14.7/ISE_DS/ISE/data/images/pn-ise.png
+
Icon=/opt/Xilinx/14.7/ISE_DS/ISE/data/images/pn-ise.png
Categories=Development;
+
Categories=Development;
Comment=Xilinx ISE
+
Comment=Xilinx ISE
StartupWMClass=_pn
+
StartupWMClass=_pn
  +
}}
   
ファイルを作成したら、ホームのデスクトップフォルダにのファイルをコピーしてデスクトップから ISE ツールを起動できます。
+
ファイルを作成したら、ホームのデスクトップフォルダ ({{ic|~/Desktop}}) 上記のファイルをコピーしてデスクトップから ISE ツールを起動できます。
   
 
=== ライセンスのインストール ===
 
=== ライセンスのインストール ===
83行目: 89行目:
 
Arch Linux はデフォルトで systemd の [[ネットワーク設定#デバイス名|Predictable Network Interface Names]] を使っています。そのためシステム上のネットワークインターフェイスの名前は "eth0" や "eth1" などにはなりません。
 
Arch Linux はデフォルトで systemd の [[ネットワーク設定#デバイス名|Predictable Network Interface Names]] を使っています。そのためシステム上のネットワークインターフェイスの名前は "eth0" や "eth1" などにはなりません。
   
しかし、Xilinx License Manager はそのような名前を検索してシステムの MAC アドレスを確認します。そして、ノードロックライセンスにその MAC アドレスが使われます。ノードロックライセンスが必要な場合、この機能を無効にしてネットワークインターフェイスの命名規則をカーネルによる名前に戻して、ライセンスを取得した NIC の名前を固定する必要があります。以下役に立ちます:
+
しかし、Xilinx License Manager はそのような名前を検索してシステムの MAC アドレスを確認します。そして、ノードロックライセンスにその MAC アドレスが使われます。ノードロックライセンスが必要な場合、この機能を無効にしてネットワークインターフェイスの命名規則をカーネルによる名前に戻して、ライセンスを取得した NIC の名前を固定する必要があります。[[ネットワーク設定#デバイス名変更]]に [[udev]] ルルを作成して設定する方法書かれています
 
# echo 'SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="eth1"' > /etc/udev/rules.d/10-net-naming.rules
 
 
For more specific, refer to the page [http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames systemd wiki] describes how to work and what you have other(formal) ways.
 
   
 
== インストール後の設定 ==
 
== インストール後の設定 ==
  +
インストールした後、Xilinx からは公式にサポートされていない Linux ディストリビューションで Xilinx ツールを動かすことによる問題を回避するために手動で設定が必要になります。いくつかのフィックスは [http://zedboard.org/content/ise-142-bug-reports このフォーラムポスト] から引用しています。
After installation, a few manual fixes are required to work around problems caused by running the Xilinx tools on a Linux distribution that is not officially supported by Xilinx. Some of these fixes are taken from [http://zedboard.org/content/ise-142-bug-reports this forum post.]
 
   
 
=== 動的ライブラリの修正 (libstdc++.so) ===
 
=== 動的ライブラリの修正 (libstdc++.so) ===
  +
{{Note|以下の修正は AUR パッケージでは初めから行われています。}}
The ISE tools supply an outdated version of the libstdc++.so library, which may cause segfaults when using the Xilinx Microprocessor Debugger and prevents the usage of the oxygen-gtk theme. This outdated version is located in two directories within the installation tree: {{ic|/opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/}} and {{ic|/opt/Xilinx/14.7/ISE_DS/common/lib/lin64}}. To use Arch's newer version of libstdc++, rename or delete the original files and replace them with symlinks:
 
cd /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/
 
mv libstdc++.so libstdc++.so-orig
 
mv libstdc++.so.6 libstdc++.so.6-orig
 
mv libstdc++.so.6.0.8 libstdc++.so.6.0.8-orig
 
ln -s /usr/lib/libstdc++.so
 
ln -s libstdc++.so libstdc++.so.6
 
ln -s libstdc++.so libstdc++.so.6.0.8
 
   
  +
ISE ツールは古いバージョンの libstdc++.so ライブラリを使っているため、Xilinx Microprocessor Debugger を使用した時にセグメンテーションフォルトが発生することがあり、oxygen-gtk テーマが使用できなくなります。この古いバージョンはインストールツリー内の2つのディレクトリに含まれています: {{ic|/opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/}} と {{ic|/opt/Xilinx/14.7/ISE_DS/common/lib/lin64}}。Arch の新しい libstdc++ を使用するには、元のファイルの名前を変更または削除して、シンボリックリンクで置き換えてください:
Then, repeat this process in the {{ic|/opt/Xilinx/14.7/ISE_DS/common/lib/lin64}} directory.
 
  +
$ cd /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/
  +
$ mv libstdc++.so libstdc++.so.bak
  +
$ mv libstdc++.so.6 libstdc++.so.6.bak
  +
$ mv libstdc++.so.6.0.8 libstdc++.so.6.0.8.bak
  +
$ ln -s /usr/lib/libstdc++.so
  +
$ ln -s libstdc++.so libstdc++.so.6
  +
$ ln -s libstdc++.so libstdc++.so.6.0.8
  +
  +
上記の作業は {{ic|/opt/Xilinx/14.7/ISE_DS/common/lib/lin64}} ディレクトリでも行って下さい。
   
 
=== Digilent USB-JTAG ドライバー ===
 
=== Digilent USB-JTAG ドライバー ===
To use Digilent Adept USB-JTAG adapters (e.g. the onboard JTAG adapter on the [http://www.zedboard.org ZedBoard]) from within the Xilinx design tools, you need to install the Digilent [http://www.digilentinc.com/Products/Detail.cfm?Prod=ADEPT2 Adept Runtime] and [http://www.digilentinc.com/Products/Detail.cfm?Prod=DIGILENT-PLUGIN Plugin].
+
Xilinx デザインツールから Digilent Adept USB-JTAG アダプタ ([http://www.zedboard.org ZedBoard] のオンボード JTAG アダプタなど) を使うには、Digilent [http://store.digilentinc.com/digilent-adept-2-download-only/ Adept Runtime] [http://store.digilentinc.com/digilent-plugin-for-xilinx-tools-download-only/ Plugin] をインストールする必要があります。
  +
  +
先に [[Arch User Repository]] から {{AUR|fxload}} をインストールしてください。
   
  +
Digilent Adept Runtime をインストールするには、[[Arch User Repository]] から {{AUR|digilent.adept.runtime}} をビルド・インストールするのを推奨します。
Make sure you have installed {{AUR|fxload}} from the [[Arch User Repository]] .
 
   
  +
さらに、{{AUR|digilent.adept.utilities}} をインストールすることでボードの設定が楽になります。
To install the Digilent Adept Runtime, it is recommended to build and install {{AUR|adept-runtime-xilinx}} and its dependencies {{AUR|libftd2xx-digilent}} and {{AUR|usbdrv}} from the [[Arch User Repository]].
 
   
  +
Digilent プラグインをインストールするには、2つのファイルを ISE プラグインディレクトリにコピーする必要があります。root で以下のコマンドを実行して下さい:
To install the Digilent plugin, you have to copy two files to the ISE plugin directory. Run the following commands as root:
 
 
$ mkdir -p /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent
 
$ mkdir -p /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent
 
$ cd /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/digilent/libCseDigilent_2.4.4-x86_64/lin64/14.1/libCseDigilent
 
$ cd /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/digilent/libCseDigilent_2.4.4-x86_64/lin64/14.1/libCseDigilent
117行目: 123行目:
 
$ chmod -x /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent/libCseDigilent.xml
 
$ chmod -x /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent/libCseDigilent.xml
   
  +
最後に、Digilent USB-JTAG アダプタにアクセスするユーザーを "uucp" グループに追加してください。
Finally, add every user that should have access to the Digilent USB-JTAG adapter to the "uucp" group.
 
   
  +
次のコマンドで JTAG アダプタの USB Vendor/Product ID を確認して:
 
You may have to add the USB Vendor/Product IDs of your JTAG adapter which can be found with
 
You may have to add the USB Vendor/Product IDs of your JTAG adapter which can be found with
 
$ lsusb | grep Xilinx
 
$ lsusb | grep Xilinx
to the udev rules in {{ic|/etc/udev/rules.d/20-digilent.rules}}.
+
{{ic|/etc/udev/rules.d/20-digilent.rules}} の udev ルールに追加してください:
  +
SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="xxxx", GROUP="users", MODE="666"
   
If it still doesn't work, you can make further reading in [http://www.george-smart.co.uk/wiki/Xilinx_JTAG_Linux Xilinx_JTAG_Linux]. The magic git repo there may be help.
+
それでも動作しない場合、[http://www.george-smart.co.uk/wiki/Xilinx_JTAG_Linux Xilinx_JTAG_Linux] を読んで下さい。magic git リポジトリが役に立ちます。
   
 
=== Xilinx Platform Cable USB-JTAG ドライバー ===
 
=== Xilinx Platform Cable USB-JTAG ドライバー ===
   
  +
先に [[Arch User Repository]] から {{AUR|fxload}} または {{AUR|fxload-libusb}} をインストールしてください。ソースからドライバーをビルドする必要があります (git などをインストールする必要があり、足りていないと make がエラーメッセージを表示します):
Make sure you have installed {{AUR|fxload}} from the [[Arch User Repository]] .
 
We need to build driver from source (git and some make stuff need to be installed, make will say what programs or libraries are missed):
 
   
 
$ cd /opt/Xilinx
 
$ cd /opt/Xilinx
135行目: 142行目:
 
$ sudo make
 
$ sudo make
   
If you using 32-bit version of ISE on 64-bit system, pass "lib32" to make:
+
64ビット環境で32ビット版の ISE を使う場合、"lib32" make してください:
   
 
$ sudo make lib32
 
$ sudo make lib32
   
  +
それからドライバーをインストールしてください (14.7 はあなたの使用しているバージョンに置き換えてください):
And install driver (replace 14.7 to your version):
 
   
 
$ ./setup_pcusb /opt/Xilinx/14.7/ISE_DS/ISE/
 
$ ./setup_pcusb /opt/Xilinx/14.7/ISE_DS/ISE/
   
  +
古いバージョンの場合:
When performing this command, the udev rules file will be created. You can reload udev rules to apply changes immidiately:
 
  +
  +
$ ./setup_pcusb /opt/Xilinx/10.x/ISE/
  +
  +
新しいバージョンの fxload ({{AUR|fxload-libusb}}) では、{{ic|/etc/udev/rules.d/xusbdfwu.rules}} ファイルを以下のように変更する必要があります:
  +
  +
{{hc|$ /etc/udev/rules.d/xusbdfwu.rules|<nowiki>
  +
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0008", MODE="666"
  +
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0007", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusbdfwu.hex -d 03fd:0007"
  +
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0009", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusb_xup.hex -d 03fd:0009"
  +
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000d", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusb_emb.hex -d 03fd:000d"
  +
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000f", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusb_xlp.hex -d 03fd:000f"
  +
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0013", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusb_xp2.hex -d 03fd:0013"
  +
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0015", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusb_xse.hex -d 03fd:0015"
  +
</nowiki>}}
  +
  +
コマンドを実行すると、udev ルールが作成されます。udev ルールをリロードすることで変更をすぐに適用できます:
   
 
$ sudo udevadm control --reload-rules
 
$ sudo udevadm control --reload-rules
   
  +
ドライバーが正しくインストールされ udev ルールが機能すれば、状態 LED がオンになります (VREF PIN の電圧によって色は緑あるいは赤になります)。
If driver installed correctly and udev rule works, STATUS led should turn on (green or red depending on voltage presence on VREF PIN)
 
  +
  +
{{Note|以下の設定は Xilinx ISE のバージョンが 11.1 未満の場合にのみ必要です。}}
  +
  +
古いバージョンでは、iMPACT が適切なドライバーをロードしません (windrvr6 ドライバーが使用されます)。{{ic|LD_PRELOAD}} 環境変数を設定して libusb ドライバーを iMPACT にロードさせることで解決できます:
  +
  +
$ export LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.so
   
 
=== ロケールの問題 ===
 
=== ロケールの問題 ===
  +
PlanAhead は小数点に '.' 以外のリテラルを使用するロケールを嫌います (例えばドイツ語は ',' を使います)。PlanAhead を実行する前に次のコマンドを実行して下さい:
PlanAhead doesn't like locales using other literals than '.' as the decimal point (e.g. German, which uses ','). Run the following command before launching PlanAhead:
 
 
$ unset LANG
 
$ unset LANG
   
 
=== PlanAhead でセグメンテーションフォルト ===
 
=== PlanAhead でセグメンテーションフォルト ===
  +
PlanAhead を起動して .ucf ファイルを生成すると、セグメンテーションフォルトが発生することがあります。この問題は前のトピックと関係ありません。ISE コンソールは以下のように表示します:
When launching PlanAhead to generate a .ucf file, a segmentation fault may occur. The issue seems unrelated to the previous topic. The ISE console will show
 
 
"/opt/Xilinx/14.7/ISE_DS/PlanAhead/bin/rdiArgs.sh: line 64: 14275 Segmentation fault $RDI_PROG $*"
 
"/opt/Xilinx/14.7/ISE_DS/PlanAhead/bin/rdiArgs.sh: line 64: 14275 Segmentation fault $RDI_PROG $*"
The problem seems to come from the bundled JRE as described [http://forums.xilinx.com/t5/Installation-and-Licensing/RHEL5-64-bit-ISE-13-1-PlanAhead-launch-from-w-in-ISE-fails/td-p/148624/page/2 here]. To fix the issue, symlink the OpenJDK libjvm.so into the Xilinx's installation directory.
+
[http://forums.xilinx.com/t5/Installation-and-Licensing/RHEL5-64-bit-ISE-13-1-PlanAhead-launch-from-w-in-ISE-fails/td-p/148624/page/2 こちら] に記述されているようにバンドルされている JRE が問題の原因です。この問題を修正するには、OpenJDK libjvm.so から Xilinx のインストールディレクトリにシンボリックリンクを作成してください。
 
# cd /opt/Xilinx/14.7/ISE_DS/PlanAhead/tps/lnx64/jre/lib/amd64/server
 
# cd /opt/Xilinx/14.7/ISE_DS/PlanAhead/tps/lnx64/jre/lib/amd64/server
 
# mv libjvm.so{,-orig}
 
# mv libjvm.so{,-orig}
175行目: 204行目:
   
 
$ unset QT_PLUGIN_PATH
 
$ unset QT_PLUGIN_PATH
  +
  +
=== CORE Generator でコアの作成ができない ===
  +
ときどき、CORE Generator がコアの作成に失敗して以下のような出力をすることがあります:
  +
  +
ERROR:sim - Unable to evaluate Tcl file:
  +
/opt/Xilinx/14.7/ISE_DS/ISE/coregen/ip/xilinx/primary/com/xilinx/ip/clk_wiz_v3_6/generate/run_legacy_tcl_flow.tcl
  +
ERROR:sim - Failed executing Tcl generator.
  +
  +
==== 解決方法 #1 ====
  +
  +
この場合、{{ic|_JAVA_OPTIONS}} 環境変数が設定されていないことを確認してください。次のコマンドで coregen を実行した場合:
  +
  +
$ source /opt/Xilinx/14.7/ISE_DS/settings64.sh && coregen
  +
  +
"unset _JAVA_OPTIONS" を付ける必要があります:
  +
  +
$ unset _JAVA_OPTIONS && source /opt/Xilinx/14.7/ISE_DS/settings64.sh && coregen
  +
  +
==== Solution #2 ====
  +
  +
Solution #1 no longer works due to: coregen's bundled java fails to start. Workaround force using ISE bundled java6 instead of java5.
  +
  +
Backup old version
  +
  +
$ mv /opt/Xilinx/14.7/ISE_DS/ISE/java/lin64/jre/bin/java /opt/Xilinx/14.7/ISE_DS/ISE/java/lin64/jre/bin/java.old
  +
  +
Add symbolic link to java6
  +
  +
$ ln -s /opt/Xilinx/14.7/ISE_DS/ISE/java6/lin64/jre/bin/java /opt/Xilinx/14.7/ISE_DS/ISE/java/lin64/jre/bin/java
  +
  +
==== Solution #3 ====
  +
  +
If the previous methods fail, try to run the 32-bit version of coregen:
  +
  +
$ unset _JAVA_OPTIONS && source /opt/Xilinx/14.7/ISE_DS/settings32.sh && coregen

2022年10月27日 (木) 10:10時点における最新版

Xilinx ISE WebPACK は完全な FPGA/CPLD プログラマブルロジックデザインスイートです:

  • 回路図キャプチャまたは Verilog/VHDL によるプログラマブルロジックの設計
  • 特定のロジックの合成と配置配線による様々な Xilinx FPGA と CPLD
  • ファンクショナル (振る舞い) シミュレーションと (配置配線後の) タイミングシミュレーション
  • 通信ケーブルによる対象機器への設定データのダウンロード

ISE WebPACK の開発は Xilinx Vivado ができたことで停止していますが、新しいスイートでサポートされていない古いデバイスの開発には有用です。

Arch Linux は公式サポートされているディストリビューションではありませんが、多くの機能は Arch Linux で動作します。

必須要件

ISE WebPACK のダウンロード

Xilinx ISE WebPACK は再配布が許可されていないプロプライエタリライセンスでリリースされているフリーソフトウェアです。公式のダウンロードページ からデータをダウンロードできます。

依存パッケージ

ISE Webpack に含まれているツールの一部 (やインストーラー) は ncurses5-compat-libsAUR に依存しています。さらに、他のツール (FPGA エディタなど) は libstdc++5, openmotif, xorg-fonts-75dpi, xorg-fonts-100dpi を必要とします [1]

組み込み ARM コア (Xilinx Zynq SoC デバイスなど) 用にソフトウェアを開発する場合、Xilinx Embedded Development Kit (EDK) にバンドルされている GCC クロスコンパイラをインストールすることになります。このコンパイラは glibcncurses パッケージを必要とします。64ビットの Arch 環境の場合、multilib リポジトリの lib32-glibcAURlib32-ncurses5-compat-libsAUR パッケージをインストールする必要があります。

デフォルトシェル

インストール時に、埋め込みプロセッサの Mentor CodeSourcery ツールチェインを Xilinx ツールと一緒にインストールすることができます。デフォルトのシェルが dash に設定されている場合、このインストールは何も出力をしないで失敗します。/usr/bin/sh/usr/bin/bash になっていることを確認してください。

次のコマンドを実行することで確認できます:

$ ls -l /usr/bin/sh

以下のように出力された場合:

lrwxrwxrwx 1 root root 15 13 Mar 06:47 /usr/bin/sh -> bash

/usr/bin/sh/usr/bin/bash になっています (Arch Linux でのデフォルト)。

出力が異なる場合、/usr/bin/sh を bash にリンクしてください:

# ln -sfT bash /usr/bin/sh

インストール

AUR からインストール

xilinx-iseAUR パッケージをインストールしてください。ビルドを開始する前に PKGBUILD と同じフォルダにインストールデータが含まれた tarball を配置する必要があります。

手動インストール

ノート: 以下のインストール方法で動作するのを確認したのは Xilinx ISE 14.7 で、動的ライブラリの修正が必要です。

インストールデータを含む tarball を展開してください:

$ tar -xvf Xilinx_ISE_DS_Lin_14.7_1015_1.tar

ISE デザインツールインストーラは Qt アプリケーションです。KDE デスクトップ環境を使っている場合、インストーラは "Oxygen" ウィジェットテーマをロードしようとしますが、Xilinx ISE デザインツールに付属している Qt フレームワークが古いために失敗します。インストーラを実行する前に QT_PLUGIN_PATH 環境変数を削除する必要があります:

$ unset QT_PLUGIN_PATH

それから、ISE デザインツールをインストールしてください:

$ cd Xilinx_ISE_DS_Lin_14.7_1015_1
$ ./xsetup

指示に従って ISE をインストールしてください。デフォルトで、アプリケーションは /opt/Xilinx/ にインストールされるため、このディレクトリに書き込みを行う権限がインストーラを実行するユーザーにあることを確認してください。

インストール中、"Install Cable Drivers" のオプションのチェックを外して下さい。チェックしたままにするとインストール中にエラーが発生します。

ISE デザインツールの起動

ISE デザインツールには環境変数 (主に PATHLD_LIBRARY_PATH) を変更するシェルスクリプトが含まれています。ISE ツールを起動する前にこのスクリプトを source する必要があります:

$ source /opt/Xilinx/14.7/ISE_DS/settings64.sh

また、32ビット環境の場合:

$ source /opt/Xilinx/14.7/ISE_DS/settings32.sh

スクリプトを読み込むことで、ISE デザインツールに PATH が通るのでツールの名前をターミナルに入力することで起動できます (例: ise, planAhead, xsdk, ...)。

デスクトップアイコンによる起動

/usr/share/applications/デスクトップエントリを作成する方法でも起動できます。

/usr/share/applications/ise.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Name=Xilinx ISE
Exec=sh -c "unset LANG && unset QT_PLUGIN_PATH && source /opt/Xilinx/14.7/ISE_DS/settings64.sh && ise"
Icon=/opt/Xilinx/14.7/ISE_DS/ISE/data/images/pn-ise.png
Categories=Development;
Comment=Xilinx ISE
StartupWMClass=_pn

ファイルを作成したら、ホームのデスクトップフォルダ (~/Desktop) に上記のファイルをコピーしてデスクトップから ISE ツールを起動できます。

ライセンスのインストール

Xilinx の Licensing Site から WebPACK のライセンスをリクエストすると、ライセンスファイルがメールで届きます。このファイルは Xilinx License Manager でインポートすることができます (ターミナルから xlcm -manage を実行)。

また、~/.Xilinx/opt/Xilinx/14.7/ISE_DS/ISE/coregen/core_licenses ディレクトリにファイルをコピーするだけでもライセンスをインポートできます。

ノードロックライセンス

Arch Linux はデフォルトで systemd の Predictable Network Interface Names を使っています。そのためシステム上のネットワークインターフェイスの名前は "eth0" や "eth1" などにはなりません。

しかし、Xilinx License Manager はそのような名前を検索してシステムの MAC アドレスを確認します。そして、ノードロックライセンスにその MAC アドレスが使われます。ノードロックライセンスが必要な場合、この機能を無効にしてネットワークインターフェイスの命名規則をカーネルによる名前に戻して、ライセンスを取得した NIC の名前を固定する必要があります。ネットワーク設定#デバイス名の変更udev ルールを作成して設定する方法が書かれています。

インストール後の設定

インストールした後、Xilinx からは公式にサポートされていない Linux ディストリビューションで Xilinx ツールを動かすことによる問題を回避するために手動で設定が必要になります。いくつかのフィックスは このフォーラムポスト から引用しています。

動的ライブラリの修正 (libstdc++.so)

ノート: 以下の修正は AUR パッケージでは初めから行われています。

ISE ツールは古いバージョンの libstdc++.so ライブラリを使っているため、Xilinx Microprocessor Debugger を使用した時にセグメンテーションフォルトが発生することがあり、oxygen-gtk テーマが使用できなくなります。この古いバージョンはインストールツリー内の2つのディレクトリに含まれています: /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64//opt/Xilinx/14.7/ISE_DS/common/lib/lin64。Arch の新しい libstdc++ を使用するには、元のファイルの名前を変更または削除して、シンボリックリンクで置き換えてください:

$ cd /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/
$ mv libstdc++.so libstdc++.so.bak
$ mv libstdc++.so.6 libstdc++.so.6.bak
$ mv libstdc++.so.6.0.8 libstdc++.so.6.0.8.bak
$ ln -s /usr/lib/libstdc++.so
$ ln -s libstdc++.so libstdc++.so.6
$ ln -s libstdc++.so libstdc++.so.6.0.8

上記の作業は /opt/Xilinx/14.7/ISE_DS/common/lib/lin64 ディレクトリでも行って下さい。

Digilent USB-JTAG ドライバー

Xilinx デザインツールから Digilent Adept USB-JTAG アダプタ (ZedBoard のオンボード JTAG アダプタなど) を使うには、Digilent Adept RuntimePlugin をインストールする必要があります。

先に Arch User Repository から fxloadAUR をインストールしてください。

Digilent Adept Runtime をインストールするには、Arch User Repository から digilent.adept.runtimeAUR をビルド・インストールするのを推奨します。

さらに、digilent.adept.utilitiesAUR をインストールすることでボードの設定が楽になります。

Digilent プラグインをインストールするには、2つのファイルを ISE プラグインディレクトリにコピーする必要があります。root で以下のコマンドを実行して下さい:

$ mkdir -p /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent
$ cd /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/digilent/libCseDigilent_2.4.4-x86_64/lin64/14.1/libCseDigilent
$ cp libCseDigilent.{so,xml} /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent
$ chmod -x /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent/libCseDigilent.xml

最後に、Digilent USB-JTAG アダプタにアクセスするユーザーを "uucp" グループに追加してください。

次のコマンドで JTAG アダプタの USB Vendor/Product ID を確認して: You may have to add the USB Vendor/Product IDs of your JTAG adapter which can be found with

$ lsusb | grep Xilinx

/etc/udev/rules.d/20-digilent.rules の udev ルールに追加してください:

SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="xxxx", GROUP="users", MODE="666"

それでも動作しない場合、Xilinx_JTAG_Linux を読んで下さい。magic git リポジトリが役に立ちます。

Xilinx Platform Cable USB-JTAG ドライバー

先に Arch User Repository から fxloadAUR または fxload-libusbAUR をインストールしてください。ソースからドライバーをビルドする必要があります (git などをインストールする必要があり、足りていないと make がエラーメッセージを表示します):

$ cd /opt/Xilinx
$ sudo git clone git://git.zerfleddert.de/usb-driver
$ cd usb-driver/
$ sudo make

64ビット環境で32ビット版の ISE を使う場合、"lib32" を make してください:

$ sudo make lib32

それからドライバーをインストールしてください (14.7 はあなたの使用しているバージョンに置き換えてください):

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

古いバージョンの場合:

$ ./setup_pcusb /opt/Xilinx/10.x/ISE/

新しいバージョンの fxload (fxload-libusbAUR) では、/etc/udev/rules.d/xusbdfwu.rules ファイルを以下のように変更する必要があります:

$ /etc/udev/rules.d/xusbdfwu.rules
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0008", MODE="666"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0007", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusbdfwu.hex -d 03fd:0007"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0009", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusb_xup.hex -d 03fd:0009"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000d", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusb_emb.hex -d 03fd:000d"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000f", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusb_xlp.hex -d 03fd:000f"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0013", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusb_xp2.hex -d 03fd:0013"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0015", RUN+="/usr/bin/fxload-libusb -t fx2 -I /usr/share/xusb_xse.hex -d 03fd:0015"

コマンドを実行すると、udev ルールが作成されます。udev ルールをリロードすることで変更をすぐに適用できます:

$ sudo udevadm control --reload-rules

ドライバーが正しくインストールされ udev ルールが機能すれば、状態 LED がオンになります (VREF PIN の電圧によって色は緑あるいは赤になります)。

ノート: 以下の設定は Xilinx ISE のバージョンが 11.1 未満の場合にのみ必要です。

古いバージョンでは、iMPACT が適切なドライバーをロードしません (windrvr6 ドライバーが使用されます)。LD_PRELOAD 環境変数を設定して libusb ドライバーを iMPACT にロードさせることで解決できます:

$ export LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.so

ロケールの問題

PlanAhead は小数点に '.' 以外のリテラルを使用するロケールを嫌います (例えばドイツ語は ',' を使います)。PlanAhead を実行する前に次のコマンドを実行して下さい:

$ unset LANG

PlanAhead でセグメンテーションフォルト

PlanAhead を起動して .ucf ファイルを生成すると、セグメンテーションフォルトが発生することがあります。この問題は前のトピックと関係ありません。ISE コンソールは以下のように表示します:

"/opt/Xilinx/14.7/ISE_DS/PlanAhead/bin/rdiArgs.sh: line 64: 14275 Segmentation fault      $RDI_PROG $*"

こちら に記述されているようにバンドルされている JRE が問題の原因です。この問題を修正するには、OpenJDK の libjvm.so から Xilinx のインストールディレクトリにシンボリックリンクを作成してください。

# cd /opt/Xilinx/14.7/ISE_DS/PlanAhead/tps/lnx64/jre/lib/amd64/server
# mv libjvm.so{,-orig}
# ln -s /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/server/libjvm.so

GNU make

XSDK looks for the gmake executable, which is not present in Arch Linux by default. Create a symlink somewhere in your path, e.g.

$ ln -s /usr/bin/make /home/<user>/bin/gmake

Make sure this directory is in your PATH variable.

KDE の中から Xilinx ツールを実行

KDE by default defines the QT_PLUGIN_PATH shell variable. Some of the Xilinx ISE tools (ISE, Impact, XPS) are Qt applications, which means that they will search for Qt plugins in the locations defined by this shell variable.

Because the Xilinx tools are compiled against and ship with an older version of the Qt framework which cannot use these plugins, they will crash when launched with this environment variable present.

To fix this issue, run the following command before launching the tools:

$ unset QT_PLUGIN_PATH

CORE Generator でコアの作成ができない

ときどき、CORE Generator がコアの作成に失敗して以下のような出力をすることがあります:

ERROR:sim - Unable to evaluate Tcl file:
   /opt/Xilinx/14.7/ISE_DS/ISE/coregen/ip/xilinx/primary/com/xilinx/ip/clk_wiz_v3_6/generate/run_legacy_tcl_flow.tcl
ERROR:sim - Failed executing Tcl generator.

解決方法 #1

この場合、_JAVA_OPTIONS 環境変数が設定されていないことを確認してください。次のコマンドで coregen を実行した場合:

$ source /opt/Xilinx/14.7/ISE_DS/settings64.sh && coregen

"unset _JAVA_OPTIONS" を付ける必要があります:

$ unset _JAVA_OPTIONS && source /opt/Xilinx/14.7/ISE_DS/settings64.sh && coregen

Solution #2

Solution #1 no longer works due to: coregen's bundled java fails to start. Workaround force using ISE bundled java6 instead of java5.

Backup old version

$ mv /opt/Xilinx/14.7/ISE_DS/ISE/java/lin64/jre/bin/java /opt/Xilinx/14.7/ISE_DS/ISE/java/lin64/jre/bin/java.old

Add symbolic link to java6

$ ln -s /opt/Xilinx/14.7/ISE_DS/ISE/java6/lin64/jre/bin/java /opt/Xilinx/14.7/ISE_DS/ISE/java/lin64/jre/bin/java

Solution #3

If the previous methods fail, try to run the 32-bit version of coregen:

$ unset _JAVA_OPTIONS && source /opt/Xilinx/14.7/ISE_DS/settings32.sh && coregen