Altera Design Software

提供: ArchWiki
2015年11月15日 (日) 20:44時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

この記事では 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 に同梱)
ノート: 以下のチュートリアルは v13.0 から v15.0 の古いバージョンの Quartus II と ModelSim のサブスクリプションエディションとウェブエディションを対象にしています。

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/applicationsquartus.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/quartuslinux から 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 Starter Edition ではインストールパスとして /opt/altera/15.0/modelsim_ase/ が使われ ModelSim Subscription Edition ではインストールパスとして /opt/altera/15.0/modelsim_ae/ が使われます。以下では ModelSim Subcription Edition を使う場合を想定しています。

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 スクリプトに書き込み権限を付与する必要があります。

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/ にあります。

ライブラリのインストール

libxftncurses ライブラリをインストールしてください: 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