Altera Design Software
この記事では Altera の以下のソフトウェアをダウンロード・インストール・設定する方法を説明します:
- Quartus II Subscription Edition v15.0
- USB-Blaster (I と II) Download Cable Driver
- ModelSim-Altera Edition 10.3d (Quartus II Subscription Edition v15.0 に同梱)
Quartus II Subscription Edition
以下の手順で Arch Linux に Altera Quartus II Subscription Edition v15.0 をダウンロード・インストール・設定することができます。
Quartus II は Altera の FPGA/CPLD 製品などを設計・操作するための Altera の開発ソフトウェアコレクションです。
64ビット環境の Arch Linux を対象にしていますが、32ビットのアプリケーションも問題なく動作するはずです。
Quartus II Subscription Edition v15.0 は 公式で RHEL 5 と RHEL 6 をサポートしていますが、ディストリビューションとはあまり関係がない大量のプロプライエタリソフトウェアの中の一つなので、Arch Linux にインストールするのはとても簡単です。
Quartus II の入手
Altera のダウンロードセクション を開いて、オペレーティングシステムで Linux を選択し、一式ファイルの tar アーカイブ (例: Quartus-15.0.0.145-linux-complete.tar
) を入手してください。
依存パッケージのインストール
メインの Quartus II ソフトウェアは64ビットですが、Quartus II に付属している Altera ツールの多くは32ビットソフトウェアです。例えば Nios II EDS や Qsys などがそれにあたります。したがって、Arch Linux の Multilib リポジトリから lib32-
ライブラリやプログラムを大量にインストールする必要があります。もちろん、32ビットの Arch Linux を使っている場合、Multilib バージョンは必要ありません。
pacman を使って Multilib のパッケージをインストールするには、まず multilib リポジトリを有効化する必要があります。
以下に記述した必要なパッケージは Altera Software Installation and Licensing (sect. 1-4) から引用しています。
まず必要なパッケージのネイティブバージョンをインストールしてください: expat fontconfig freetype2 xorg-fonts-type1 glibc gtk2 libcanberra libpng libpng12AUR libice libsm util-linux ncurses tcl tcllib zlib libx11 libxau libxdmcp libxext libxft libxrender libxt libxtst。
そして Multilib バージョンをインストールしてください: lib32-expat lib32-fontconfig lib32-freetype2 lib32-glibc lib32-gtk2 lib32-libcanberra lib32-libpng lib32-libpng12AUR lib32-libice lib32-libsm lib32-util-linux lib32-ncurses lib32-zlib lib32-libx11 lib32-libxau lib32-libxdmcp lib32-libxext lib32-libxft lib32-libxrender lib32-libxt lib32-libxtst。
これで Quartus II をインストール・起動する準備が整いました。
インストール
インストールするには、先にダウンロードした tar アーカイブを展開します:
$ tar -xvf Quartus-15.0.0.145-linux-complete.tar
そして setup.sh
を起動してください。ホームディレクトリの外に Quartus II をインストールするときは、root で実行してください:
# ./setup.sh
上述のパッケージが全てインストールされていれば、GUI のインストールウィザードが開きます。コマンドラインのインタラクティブなインストールウィザードが開くかもしれませんが、どちらも同じです。
デフォルトのインストールパスは /root/altera/15.0
ですが、/opt/altera/15.0
の方が好ましいでしょう。この記事では後者を用います。
インストール時 Quartus II の64ビットオプションを含めるようにしてください。
Quartus II の起動
/opt/altera/15.0
に Quartus II をインストールしたら、Quartus II のバイナリは /opt/altera/15.0/quartus/bin
に配置されます。Quartus II (64ビット版) を起動:
$ /opt/altera/15.0/quartus/bin/quartus --64bit
32ビット版を起動:
$ /opt/altera/15.0/quartus/bin/quartus
Qsys, Nios II EDS, Chip Planner, SignalTap II などの他の Altera ツールは Quartus II の Tools メニューから起動できます。何も問題ありません。
Quartus II とシステムの統合
以下の方法で Quartus II とシステムを統合させることができますが、必須ではありません。
PATH
変数
Quartus の bin
フォルダを PATH
変数に追加することで絶対パスを指定しなくても起動できるようになります。/etc/profile.d
ディレクトリに quartus.sh
ファイルを作成してください:
/etc/profile.d/quartus.sh
export PATH=$PATH:/opt/altera/15.0/quartus/bin
また、実行可能属性を付与してください:
# chmod +x /etc/profile.d/quartus.sh
上記の profile.d
ファイルはログイン時にロードされます。以下のように Bash でファイルを source することで即時適用できます:
$ source /etc/profile.d/quartus.sh
Quartus に関連する他の環境変数は 公式のインストールマニュアル に載っています。
quartus
コマンドが Bash から認識されるようになりますが、64ビット版を起動するには依然として --64bit
引数を付ける必要があります。何回もタイピングするのが面倒なときは quartus64
のようにシェルのエイリアスを設定すると良いでしょう。
アプリケーションメニューエントリ - Quartus II
~/.local/share/applications
に quartus.desktop
ファイルを作成することでシステムに (多くのデスクトップ環境やウィンドウマネージャが準拠している) freedesktop.org のアプリケーションメニューエントリを追加できます:
~/.local/share/applications/quartus.desktop
[Desktop Entry] Version=1.0 Name=Quartus II Subscription Edition v15.0 Comment=Quartus II design software for Altera FPGA's Exec=/opt/altera/15.0/quartus/bin/quartus --64bit Icon=/opt/altera/15.0/quartus/adm/quartusii.png Terminal=false Type=Application Categories=Development
サブスクリプションエディションのライセンスの確認
Quartus II の設定インターフェイスから Quartus II サブスクリプションエディションのライセンスファイルのパスを設定するだけではライセンスの確認は正しく行われません。ライセンスの確認ではデバイス eth0
の MAC アドレスが調べられます。このデバイス名はイーサネットコントローラの古い名前で、現在は起動時に systemd
によって動的にデバイスに (マシンによって異なる) 名前が割り当てられます。デバイスの名前を確認で使われる eth0
に戻す必要があります。
新しい udev ルールを作成:
/etc/udev/rules.d/10-network.rules
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="eth0"
xx:xx:xx:xx:xx:xx
はネットワークデバイスの IP アドレスに置き換えてください。作成後、udevadm
を使ってファイルをリロードします:
# udevadm control --reload
また、Quartus II サブスクリプションエディションのライセンスの確認作業では Quartus II のライセンスごとにネットワークデバイスの MAC アドレスを確認するため、旧式のネットワークツールである ifconfig
を使用します。ifconfig
ツールは昔のネットワークパッケージ net-tools に入っています。Quartus II サブスクリプションエディションのライセンスの確認を正しく行わせるため net-tools パッケージをインストールしてください。
USB-Blaster Download Cable Driver
USB-Blaster (I と II) Download Cable はコンピュータから FPGA, CPLD, EEPROM 設定デバイスに設定データをダウンロードするケーブルです。しかしながら Altera は RHEL, SUSE Entreprise, CentOS しか公式にサポートしていないため Arch Linux でも使えるようにするために多少の設定が必要になります。このケーブルに関する詳細は USB-Blaster Download Cable User Guide を参照してください。
新しい udev ルールを作成:
/etc/udev/rules.d/51-altera-usb-blaster.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666"
それから、udevadm
を使ってファイルをリロードします (このコマンドを実行する前に USB 端子から Altera デバイスを切断してください):
# udevadm control --reload
全てが問題ないか確認するために、USB-Blaster Download Cable を使って FPGA や CPLD ボードを接続して次のコマンドを実行:
$ /opt/altera/15.0/quartus/bin/jtagconfig
以下のような出力がされるはずです:
1) USB-Blaster [USB 1-1.1] 020B30DD EP2C15/20
jtagconfig の出力にボードの名前が含まれていない場合、nios2 ツールの起動に問題が発生している可能性があります。この問題を回避するために、/etc/jtagd
に jtagd の設定をコピーしてください:
# mkdir /etc/jtagd # cp /opt/altera/15.0/quartus/linux/pgm_parts.txt /etc/jtagd/jtagd.pgm_parts
それから jtagd を再起動します:
$ jtagconfig 1) USB-Blaster [2-4] 020F30DD $ killall jtagd $ jtagd $ jtagconfig 1) USB-Blaster [2-4] 020F30DD EP3C25/EP4CE22
Quartus II の64ビット版をインストールしていないのに "linux64" に関するエラーメッセージが表示される場合、/opt/altera/15.0/quartus
に linux
から linux64
へのシンボリックリンクを作成してください:
# ln -s /opt/altera/15.0/quartus/linux /opt/altera/15.0/quartus/linux64
ModelSim-Altera Edition
インストール
ModelSim-Altera Edition 10.3d は上で書いた Quartus II のインストールで使用する一式ファイルの tar アーカイブ Quartus-15.0.0.145-linux-complete.tar
からダウンロード・インストールされます。
Archlinux との互換性
カーネル 4.x 以上
Modelsim は Linux カーネルのバージョン4以上で問題が起こります。vsim
スクリプトを編集して対応して下さい。このファイルは読み取り専用になっていることがあり、そのときは書き込み権限を一時的に付与してから以下の変更を行って下さい:
以下の行を:
/opt/altera/15.0/modelsim_ae/bin/vsim line 206
*) vco="linux_rh60" ;;
以下のように変更します:
/opt/altera/15.0/modelsim_ae/bin/vsim line 206
*) vco="linux" ;;
freetype2 2.5.0.1-1
freetype2 バージョン 2.5.0.1-1 から 2.5.0.1-2 にアップグレード (2013年10月 [1]) すると ModelSim で以下のエラーが発生します:
$ vsim Error in startup script: Initialization problem, exiting. Initialization problem, exiting. Initialization problem, exiting. while executing "EnvHistory::Reset" (procedure "PropertiesInit" line 3) invoked from within "PropertiesInit" invoked from within "ncFyP12 -+" (file "/opt/questasim/linux_x86_64/../tcl/vsim/vsim" line 1) ** Fatal: Read failure in vlm process (0,0)
この問題を解決する方法は2つあります。1つはパッケージをダウングレードすることです (Arch Linux Archive を使用)。もう1つはもっと簡潔な方法で、システム全体のアップデートを止めないで、代わりに ModelSim の freetype のバージョンだけを古いものに置き換えます (元は http://communities.mentor.com/mgcx/message/46770 で提案された方法です):
- altera のフォルダ (例:
$HOME/altera/xx.x/lib32/
) にある freetype ライブラリやシンボリックリンクをコピー:
libfreetype.so libfreetype.so.6 libfreetype.so.6.10.2
/opt/altera/15.0/modelsim_ae/bin/vsim
の ModelSim スクリプトを編集して上の方に以下を追加 (#!/bin/sh
の後):
export LD_LIBRARY_PATH=/home/user/altera/xx.x/lib32
Quartus から直接 ModelSim を起動するとエラーが消えない場合があります。そのときは、同じ行を quartus/bin/quartus_sh
に追加してください。
ncurses 5.9
ncurses バージョン 5.9-7 から 6.0-1 (以上) にアップグレード (2015年9月 [2]) すると ModelSim で以下のエラーが発生します:
$ vsim vish: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory [1] + exit 127 vsim
この問題を解決する方法は2つあります。1つは ncurses5-compat-libsAUR を使用してライブラリの32ビット版をコンパイルするように PKGBUILD を修正する方法です。この方法では最新版の ncurses で ncurses5 互換の ABI を提供します。
もう1つの方法は ncurses 5.9 のソースをダウンロード・コンパイルして、生成されたライブラリとシンボリックリンクを freetype2 ライブラリと同じディレクトリにコピーすることです。
GCC 5.x で ncurses 5.9 をコンパイルすると問題が起こることがあります。Arch Linux Archive を使うことでコンパイル済みのライブラリを入手できます。パッケージは http://ala.seblu.net/packages/l/lib32-ncurses/ にあります。
ライブラリのインストール
libxft と ncurses ライブラリをインストールしてください: libxft, ncurses, libxext。
64ビット版を使う場合、multilib リポジトリから次のライブラリをインストールしてください: lib32-libxft, lib32-ncurses, lib32-libxext。
アプリケーションメニューエントリ - ModelSim-Altera Edition
~/.local/share/applications
ディレクトリに modelsim.desktop
ファイルを作成することで、システムのアプリケーションメニューに Modelsim を追加できます:
~/.local/share/applications/modelsim.desktop
[Desktop Entry] Version=1.0 Name=ModelSim-Altera Edition 10.3d Comment=ModelSim simulation software for Altera FPGA's Exec=/opt/altera/15.0/modelsim_ae/bin/vsim Icon=/opt/altera/15.0/modelsim_ae/modesim.gif Terminal=true Type=Application Categories=Development
"ModelSim Failed to access library 'work'" エラーの解決
解決方法は次のページに載っています: http://jackeyblog.blogspot.com/2005/07/note-myself-modelsim-failed-to-access.html
新しいディレクトリでシミュレーションを実行したときに、以下のエラーが表示される場合:
Error: (vcom-19) Failed to access library 'work' at "work".
新しい work
ディレクトリを作成してください。ModelSim コンソールで以下を実行します:
ModelSim> vlib work