LoginSignup
9
5

More than 5 years have passed since last update.

Intel HLS Compilerを使える状態にする(CentOS編)

Last updated at Posted at 2017-11-07

今週リリースされたQuartus Prime 17.1からIntel HLS Compilerが付属するようになりましたが、インストールでハマるケースがありそうなので、取り急ぎメモを書きました。

とりあえずはCentOS7.3環境編です。

0, 事前準備

とりあえずyum updateはしておきます。
あとepelぐらいは入れておきます。

$ sudo yum update
$ sudo yum -y install epel-release

1, Quartus Prime Lite Editionのダウンロード

こちらから
http://dl.altera.com/?edition=lite

一括ダウンロード(Combined Filesというタブ)サイズが大きいので、Individual Filesというタブから必要なファイルだけダウンロードするほうが良いかもしれません。その際、ModelSimもダウンロードすることをお忘れなく。以下、一括ダウンロードした場合で説明します。

2, Quartusのインストール

Quartus-lite-17.1.0.590-linux.tarというファイルがダウンロードされたはずなので、解凍・インストールします。

$ tar xvf Quartus-lite-17.1.0.590-linux.tar
$ cd components
$ ./QuartusLiteSetup-17.1.0.590-linux.run

一応QuartusのGUIの起動を確認しておきましょう。

3, 環境変数設定

環境変数を設定します。.bashrcに書いても良いですし、別途環境設定用のシェルを書いても良いです。
ここでは、/home/intelというディレクトリにデフォルトのパス名でインストールした場合を想定します。

例)
export QSYS_ROOTDIR="/home/intel/intelFPGA_lite/17.1/quartus/sopc_builder/bin"

export PATH=/home/intel/intelFPGA_lite/17.1/quartus/bin:/home/intel/intelFPGA_lite/17.1/qsys/bin:/home/intel/intelFPGA_lite/17.1/quartus/sopc_builder/bin:/home/intel/intelFPGA_lite/17.1/modelsim_ase/bin:$PATH

試しにvsimと実行してみましょう。恐らくライブラリがない等怒られるはずです。

4, 諸々インストール

以下で必要なものをインストールします。

$ sudo yum -y install compat-gcc-44 compat-gcc-44-c++
$ sudo yum -y install glibc.i686 glibc-devel.i686 libX11.i686 libXext.i686 libXft.i686 ncurses-devel.i686

2018/2/8追記
OSのバージョンによっては足りないパッケージがあったようです。gcc以外は以下を入れるのが正解の模様
$ sudo yum install -y glibc.i686 glibc-devel.i686 libX11.i686
libXext.i686 libXft.i686 libgcc.i686 libgcc.x86_64
libstdc++.i686 libstdc++-devel.i686 ncurses-devel.i686
qt.i686 qt-x11.i686

重要なのはgcc/g++のバージョン4.4です。現状、HLSは当該GCCのみサポートです。
再度vsimを実行してみます。ModelSimのGUIが立ち上がったら成功です。

5, 環境変数追加

上記でgccの4.4.7がインストールされたと思います。普段は4.8とかもっと新しいのを使いたいので、HLSだけで使う用に環境変数設定します。

export CPLUS_INCLUDE_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.4.7:/usr/include/c++/4.4.7:/usr/include/c++/4.4.7/x86_64-redhat-linux

.bashrcにこれを入れると普段からこれを使ってしまうので、やはり環境設定用のシェルを作ったほうが良いかも。

6, HLSを準備

HLSのディレクトリに移動してみます。

$ cd intelFPGA_lite/17.1/hls

そこにinit_hls.shという環境設定用のシェルがあるので、sourceします。

$ source ./init_hls.sh

これで準備OKです。早速サンプルを動かしてみましょう。

7, サンプル実行

サンプルが置いてあるところに移動します。ここでは一番簡単そうなcounterというやつを実行してみましょう。

$ cd examples/counter

Makefileがあるのでmakeしてみます。

$ make

これでtest-x86-64という実行ファイルが出来上がったはずです。これはHLSコンパイラを使ってx86環境でエミュレーションするためのものです。実行するとPASSEDと表示されるはずです。

$ ./test-x86-64

次にgccでのコンパイルを試します。こちらのほうが動作が高速です。

$ make test-gpp
$ ./test-gpp

同じようにPASSEDと表示されます。
最後に合成してみます。

$ make test-fpga

test-fpga.prjというディレクトリが出来ます。ここに色々入っていますので、適当に色々見てみてください。componentsというディレクトリが今回作ったIPになります。
test-fpgaという実行ファイルが出来ているのに気づいたでしょうか。こちらも実行してみます。

$ ./test-fpga

今までより時間がかかりませんでしたか?これはModelSimで実行されたためです。全く同じPASSEDという表示が出たと思います。つまり、diffコマンドで簡単にgcc・エミュレータ・HWシミュレーションの結果を比較できることになります。

簡単ですがこの辺で。

9
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5