Home記事一覧フォーラム

Altera(Intel)のFPGA開発ツール「Quartus Prime」をUbuntuにインストールする

【更新履歴】
2017/11/08 Quartus Prime 17.1に対応
2015/11/10 Quartus Prime 15.1に対応
2015/05/21 Ubuntu 15.04に対応
2015/05/10 新規公開

Quartus PrimeをUbuntu (64bit版)にインストールします。
PCにUbuntuをインストールする方法については、「PCにUbuntu 16.04 (Xenial Xerus)を「軽量化」インストールする」を参照してください。

Quartus Primeのダウンロード

ここでは、無料で使用できるQuartus Prime Lite editionをダウンロードします。

Quartus Prime ライト・エディション ダウンロード・センター

ここから、最新バージョン、Linux版、「ダイレクト・ダウンロード」「一式ファイル」を選択してダウンロードします。ダウンロード時にAlteraサイトへのログインが必要です。まだAlteraサイトのユーザーアカウントを取得していない場合は新規登録してください。

今回はQuartus-lite-17.1.0.590-linux.tar(MD5: 9F6F40457B10E6E395E2B015D71F29BE)をダウンロードしました。バージョンアップされている場合、以下の説明のバージョンの部分を読み替えてください。このページに書かれているMD5チェックサムは後で照合するために書き留めておきます。

インストール

インストーラーを展開するためのディレクトリを作ります。
端末で、

mkdir -p ~/quartus-installer

このディレクトリに先ほどダウンロードしたファイルをファイルマネージャ等で移動します。

cd ~/quartus-installer

MD5Sumをチェックします。

md5sum Quartus-lite-17.1.0.590-linux.tar

tar xf Quartus-lite-17.1.0.590-linux.tar

bash setup.sh


「Next」をクリックします。


「I accept the agreement」にチェックして「Next」をクリックします。


インストールするディレクトリを設定して「Next」をクリックします。(デフォルトではホームディレクトリ/intelFPGA_lite/バージョンNo./ になります。)


デフォルト設定で「Next」をクリックします。


「Next」をクリックします。


デフォルト設定で「Finish」をクリックします。


インストール後最初の起動時にこの画面が出ます。「Run the Quartus Prime software」を選択して「OK」をクリックします。


起動したらここでは一旦終了します。

インストール後、デスクトップフォルダ(/home/ユーザー名/Desktopまたは/home/ユーザー名/デスクトップ)に「Quartus Prime xx.x Lite Edition」というランチャーアイコンができます。これをファイルマネージャでダブルクリックすると起動します。

コマンドラインで実行できるようにするため、~/.profileの末尾に以下のように書き込みます。(バージョン名は読み替えて設定してください。)

nano ~/.profile

PATH=$PATH:$HOME/intelFPGA_lite/17.1/quartus/bin
PATH=$PATH:$HOME/intelFPGA_lite/17.1/modelsim_ase/linuxaloem
export QSYS_ROOTDIR="$HOME/intelFPGA_lite/17.1/quartus/sopc_builder/bin"

設定は次回のログイン後から有効になります。
ターミナルで「quartus」と入力すると起動します。

Altera BlasterのUSB設定

USB接続でFPGAに書き込めるようにするための設定です。

sudo rnano /etc/udev/rules.d/99-alterablaster.rules

SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", MODE="0666"

sudo udevadm control --reload-rules

追加設定

Ubuntu環境ではModelSimやHLSは公式サポートされていませんが、以下の設定を行えば一部不完全ながら動作させることは可能です。

【ModelSim、HLS Compilerのための設定】
以下のパッケージをインストールします。

sudo apt-get install build-essential gcc-multilib g++-multilib libxft2:i386 libxext6:i386 libncurses5:i386 libzmq3-dev:i386 libxtst6:i386 libxml2:i386 libedit2:i386 libxi6:i386

【ModelSimの起動方法】
コマンドラインで「vsim」を実行するか、QuartusのメニューからTools:Run Simulation Tool:RTL Simulationを実行します。

【HLSのコンパイル方法】
デフォルト設定でインストールした場合、「ホームディレクトリ/intelFPGA_lite/17.1/hls/examples」以下にサンプルプロジェクトがあります。他の場所にインストールした場合やバージョンが異なる場合は読み替えてください。これを適当な場所にコピーしてからそのディレクトリに移動(ここではexamples/counter)して、以下のようにコンパイルします。

cd examples/counter

source $HOME/intelFPGA_lite/17.1/hls/init_hls.sh

export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/x86_64-linux-gnu/c++/5

CXXFLAGS="--simulator none" make test-fpga

現時点ではシミュレートを含めるとエラーが出るため「--simulator none」を指定してコンパイルのみ行っています。

FPGAプロジェクト・ファイルは「examples/counter/test-fpga.prj」以下に生成されています。


examples/tutorials 以下のサンプルの場合のmake方法:

cd examples/tutorials/interfaces/mm_slaves

USERCXXFLAGS="--simulator none" make all

不具合対策

※旧バージョンからの情報です。新しいバージョンでは修正されている可能性があります。

1. 書き込みに失敗する問題

何度も書き込みに失敗する問題が出た場合は、一旦Programmerを閉じてから端末で

pkill jtagd

を実行してから再度Programmerを起動して「Hardware Setup」で「USB-Blaster」を選択しなおします。選択画面に「USB-Blaster」が表示されない場合はそのウィンドウを一旦閉じて開き直します。


2. ヘルプ画面を起動した時、以下のようなエラーが出て機能しない問題

/home/***/intelFPGA_lite/17.1/quartus/common/help/webhelp/index.htm#quartus/gl_quartus_welcome.htm: そのようなファイルやディレクトリはありません

このエラーが出た場合は、直接、ホームディレクトリ/intelFPGA_lite/17.1/quartus/common/help/webhelp/index.htm をWebブラウザで開きます。


3. libudev.so.0 not found が出る問題

チェック方法:

sudo pkill jtagd

jtagd --foreground --debug

これでデバッグメッセージに「No USB device change detection because libudev.so.0 not found」と出る場合は、以下の方法でシンボリックリンクを作成します。

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1 /usr/lib/libudev.so.0

HLSコンパイル時のエラーについて

Ubuntu16.04、gcc5.4の環境(公式にはHLSは非サポート)ではHLSコンパイル時にシミュレーション連携の設定にしていると以下のようなエラーが出ます。

# ** Fatal: ** Error: (vsim-3828) Could not link 'vsim_auto_compile.so': cmd = '
/home/username/intelFPGA_lite/17.1/modelsim_ase/gcc-4.7.4-linux/bin/gcc -shared -fPIC -m32 -B/usr/lib32 -o "/tmp/username@hostname_dpi_6222/linuxpe_gcc-4.7.4/vsim_auto_compile.so" "/tmp/username@hostname_dpi_6222/linuxpe_gcc-4.7.4/exportwrapper.o" '

↑ModelSimでのコンパイルには配布物に含まれる intelFPGA_lite/17.1/modelsim_ase/gcc-4.7.4-linux/bin/gcc (32bit版gcc4.7)が使用されている。
しかし配布物に何らかのライブラリが足りないようで、「-B/usr/lib32」でシステム側のライブラリパスが自動的に指定され、そこからライブラリを探している模様。

# (vsim-50) A call to system(/home/username/intelFPGA_lite/17.1/modelsim_ase/gcc-4.7.4-linux/bin/gcc -shared -fPIC -m32 -B/usr/lib32 -o "/tmp/username@hostname_dpi_6222/linuxpe_gcc-4.7.4/vsim_auto_compile.so" "/tmp/username@hostname_dpi_6222/linuxpe_gcc-4.7.4/exportwrapper.o" >'/tmp/questatmp.T2OoX4' 2>&1) returned error code '1'.
# The logfile contains the following messages:
# /home/username/intelFPGA_lite/17.1/modelsim_ase/gcc-4.7.4-linux/bin/../libexec/gcc/i686-pc-linux-gnu/4.7.4/ld: /usr/lib32/crti.o: unrecognized relocation (0x2b) in section `.init'

↑足りない配布物は「crti.o」(libc6-devパッケージに含まれる)である模様。システム側の /usr/lib32/crti.o とはバージョンが合わずリンクに失敗している。
ModelSimのgcc-4.7.4に対応したライブラリが配布物に含まれていれば、システム側のライブラリのバージョンに依存せずコンパイルできるのかもしれない。

# /home/username/intelFPGA_lite/17.1/modelsim_ase/gcc-4.7.4-linux/bin/../libexec/gcc/i686-pc-linux-gnu/4.7.4/ld: final link failed: Bad value
# collect2: error: ld returned 1 exit status
#
# No such file or directory. (errno = ENOENT)
#
#
# FATAL ERROR while loading design
# ** Error: Error loading design
# Executing ONERROR command at macro ./tb/sim/mentor/msim_compile.tcl line 8