Windows 向け Intel HLS Compiler セットアップ方法（非公式：Visual Studio 無し版）



# 概要
最近、インテルの FPGA 製品向けにリリースされている Intel High Level Synthesis Compiler（以降は、HLS Compiler）の環境セットアップを試す機会があったのでその内容を紹介します。セットアップにあたっては以下の条件を満たす必要がありました。 

* Quartus Prime Standard Edition との組み合わせ（Cyclone V ターゲット）で使いたい。
* Windows 10 環境で検証したいが Microsoft Visual Studio 2017 はインストールしたくない。


しかしながら、この２つを満たそうとした場合には、それぞれ以下の迷いが生じます。

* 最近のツールバージョンでは HLS Compiler は Pro Edition しかリリースされていない。
    * Standard Edition（Cyclone V）の場合はどうすれば良いのか？？
* Windows 向けの要件には Visutal Studio 2017 のインストールが明記されている。
    * 公式手順通りにセットアップするには Visual Studio 2017 が絶対に必要なのか？？

今回は、これらの迷いに対する解決方法の共有を兼ねて、HLS Compiler の環境セットアップ手順を記載したいと思います。

:::note warn
<font color="Red">一部、非公式の方法を含みます。同じ方法を試す場合は自己責任でお願いします。</font>
:::

# もくじ
* [Intel HLS Compiler のシステム要件（for Windows）](#intel-hls-compiler-のシステム要件for-windows)
* [Intel HLS Compiler のインストール（Cyclone V ターゲット）](#intel-hls-compiler-のインストールcyclone-v-ターゲット)
* [VS2017 用 C++ コンパイラーのインストール（非公式の手順）](#vs2017-用-c-コンパイラーのインストール非公式の手順)
* [HLS ビルド用のコマンドプロンプト設定](#hls-ビルド用のコマンドプロンプト設定)
* [HLS 用コマンドプロンプト起動 ＆ バージョン確認](#hls-用コマンドプロンプト起動--バージョン確認)
* [まとめ](#まとめ)


<a id="anchor1"></a>
# Intel HLS Compiler のシステム要件（for Windows） 
システム要件やインストール手順は、Getting Started Guide に一通り載っています。基本手順はこちらを参照してください。

https://www.intel.com/content/www/us/en/programmable/documentation/ewa1462479481465.html#lpd1467738276041

サポート OS は以下のいずれかとなっています。今回は Windows 10 で対応しました。

* Microsoft* Windows* 10
* Microsoft* Windows Server* 2016

あとは、C++ コンパイラーのために Visual Studio のインストールも要件に入っています。

* Microsoft* Visual Studio* 2017 Professional
* Microsoft* Visual Studio* 2017 Community

しかしながら、セットアップ対象のパソコンには、諸事情により Visual Studio をインストールできません。。非公式ながら、その代替策として、VS2017 用の C++ コンパイラーのみをインストールする方法を試してみた次第になります。

<a id="anchor2"></a>
# Intel HLS Compiler のインストール（Cyclone V ターゲット）
こちらも Getting Started Guide に説明があります。
『[1.3. Installing the Intel HLS Compiler Pro Edition for Cyclone V Device Support](https://www.intel.com/content/www/us/en/programmable/documentation/ewa1462479481465.html#hxq1605582323136)』
Intel HLS Compiler の最新バージョンは、Pro Edition しかリリースされていませんが、Quartus Prime Standard Edition もしくは Lite Edition と組み合わせることで Cyclone V をターゲットに使用することが可能です。

Cyclone V ターゲットで使用する場合は、HLS Compiler の初期化スクリプト（init_hls.bat）を実行する前に、環境変数 `QUARTUS_ROOTDIR_OVERRIDE` に Quartus Prime Standard Edition や Lite Edition のパスを指定しておきます。その他に特別な手順は必要ありません。

以下のように、Standard Edition や Lite Edition 用のパスにインストールすると、HLS Compiler 用ディレクトリーへの移動が近くて便利です。
![intelHLSCompiler_Installdir.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725222/053ab5aa-0fe5-5dd8-569c-bf7e0b84ea86.png)

<a id="anchor3"></a>
# VS2017 用 C++ コンパイラーのインストール（非公式の手順）

Build Tools for Visual Studio 2019 に付属の C++17 (MSVC v141) を使用したセットアップ手順となります。

１．以下のサイトより「Build Tools for Visual Studio 2019」をダウンロードします。
　 https://visualstudio.microsoft.com/ja/downloads/

２．ダウンロードしたインストーラーを実行します。
　・「C++ によるデスクトップ開発」をチェックON
　・「MSVC v141 - VS 2017 C++ x64/x86 ビルドツール (v14.16)」をチェックON
　上記２つを有効化してインストールを実行。
![BuildTools_for_VS2019_Installoptions.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725222/23183fee-1788-f256-f6a2-c9845319f230.png)
コンパイラーのインストールは上記手順で完了です。以下、使いやすくするための環境設定を行っていきます。

<a id="anchor4"></a>
# HLS ビルド用のコマンドプロンプト設定

Windows メニューより「Visual Studio 2019 -> x64 Native Tools Command Prompt for VS 2019」を実行します。

このプロンプト上で、C:\intelFPGA\<version>\hls¥init_hls.bat を実行するだけでも HLS コンパイラ (i++) が利用可能ですが、
その場合は、C++ コンパイラが Visual Studio 2019 付属の新しいバージョン（MSVC v142）での利用になります。

:::note warn
HLS の要件になっているバージョンのコンパイラで利用する場合は、オプション指定の追加が必要です。
:::

オプション指定を追加する場合は、Windows メニューより「Visual Studio 2019 -> x64 Native Tools Command Prompt for VS 2019」を右クリックして、「その他 -> ファイルの場所を開く」を実行します。
![VS2019_x64NativeToolsCmd_Menu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725222/af30d3c6-c0e1-8f55-a0c9-20670a85e7c9.png)

ファイルの場所を開いたら、以下のようにショートカットを複製＆設定変更を行います。
![Edit_ShortCut2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725222/d9dfc9c5-7ed8-7a1e-8ce4-658a56df58dd.png)

設定後のショートカットを自分が使いやすい場所に配置したらセットアップ完了です。

<a id="anchor5"></a>
# HLS 用コマンドプロンプト起動 ＆ バージョン確認 
作成したショートカットを起動して、init_hls.bat を実行すると以下の表示になります。

![HLS_CommandPrompt_Start.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725222/07a286a8-121c-90e8-1a9f-9e26ab9fe4a7.png)

:::note info
※Microsoft Visual C++ (MSVC 2019)に対する Warning が表示されますが、一緒に表示される PATH の内容を確認すると HLS の要件にマッチするコンパイラバージョンを参照していることが確認できます。
:::

このプロンプト上で HLS コンパイラ (i++) を実行することで、要件にマッチした C++ コンパイラーとの組み合わせで HLS を利用することが可能となります。

<a id="anchor6"></a>
# まとめ
という訳で、無事に Visual Studio をインストールせずに HLS を試す事ができました。
今回、私が Visual Studio を使用しない方法を試したのは、ネットワークの都合で Microsoft Store へのアクセスが行えなかったことが理由でした。（以下、私が遭遇した状況です）
![VS2017_download_page.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725222/e6ed0bb3-e73b-8754-6063-4784329dee3a.png)

Visual Studio を使用するためには、Microsoft アカウントと Microsoft Store へのアクセスの両方が必要となりますが、私と同じように、いずれか一方が満たせないような場合に、この記事の内容を参考にしてもらえたら幸いです。＃ 非公式という点が気になる場合は、Windows ではなく Linux PC で試す選択もありかとおもいます。