タイトルのまま...なのですが,
普段使いのUbuntu 16.04でIntel HLSを使おうとしたところ,gcc-4.4が必要とか32bit環境が必要とか,面倒だったので,Dockerでやりました,というメモ.
実際にやることは,@yukitaketakeさんの
Intel HLS Compilerを使える状態にする(CentOS編)のままです.
なお,ホストであるUbuntu 16.04環境の /opt/Intel/intelFPGA_lite/17.1/ 以下にQuartus Prime一式がインストールしてある,という想定です.
Quartus Prime環境について
Quartus Primeは↓のようにインストールされているはず.
% ls /opt/Intel/intelFPGA_lite/17.1
hls/ ip/ licenses/ logs/ modelsim_ase/ nios2eds/ quartus/ uninstall/
そのままだと,ModelSimの実行ファイルへのパスが辿れないので,
ln -s /opt/Intel/intelFPGA_lite/17.1/modelsim_ase/linux \
/opt/Intel/intelFPGA_lite/17.1/modelsim_ase/linux_rh60
としておく.
準備
適当な作業ディレクトリを用意する
% mkdir -p $HOME/docker/hls
% cd $HOME/docker/hls
とか.
Dockerファイルの用意
↓の中身の Dockerfile という名前のファイルを$HOME/docker/hlsの下に用意する.
FROM centos:centos7
RUN yum -y update
RUN yum -y groupinstall "Development Tools"
RUN yum -y install epel-release
RUN yum -y install which
RUN yum -y install compat-gcc-44 compat-gcc-44-c++
RUN yum -y install glibc.i686 glibc-devel.i686 libX11.i686 libXext.i686 libXft.i686 ncurses-devel.i686
ADD quartus_env.sh /
最後にADDしている quartus_env.sh というファイルは環境変数設定用のスクリプト.
↓の内容を, quartus_env.sh というファイルに書いておく.
export QSYS_ROOTDIR=/opt/Intel/intelFPGA_lite/17.1/quartus/sopc_builder/bin
export PATH=/opt/Intel/intelFPGA_lite/17.1/quartus/bin:$PATH
export PATH=/opt/Intel/intelFPGA_lite/17.1/qsys/bin:$PATH
export PATH=/opt/Intel/intelFPGA_lite/17.1/modelsim_ase/bin:$PATH
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
ここまで,終わると,
% pwd
/home/miyo/docker/hls
% ls
Dockerfile quartus_env.sh
と2つのファイルが $HOME/docker/hls に作成されたことになる (上の例では,$HOME=/home/miyo/).
コンテナの作成と起動
ファイルが用意できたら,コンテナ作って起動.
sudo docker build -t user/hls:1.1 .
sudo docker run -v /opt:/opt --name hls-test -i -t user/hls:1.1 /bin/bash
ホストの/optをDockerゲスト内でも/optにマウントして使えるようにしている.
exitしたあとは,startでまた起動すればいい.
sudo docker start -a -i hls-test
そのあとは
Docker環境で,こんな感じで動作確認.
% source /quartus_env.sh
% source /opt/Intel/intelFPGA_lite/17.1/hls/init_hls.sh
% cd /root
% cp -r /opt/Intel/intelFPGA_lite/17.1/hls/examples .
% cd examples/counter/
% make
% ./test-x86-64
% make test-gpp
% ./test-gpp
% make test-fpga
% ./test-fpga