Quartus Prime Lite Version 21.1のインストール

Quartus Prime Liteをインストールしてみたけど、最新のバージョン(19あたりからか?)のはまりどころが多い感じなのでメモ。

 

1.Questa Intel FPGA Starter Edition (ModelSim-Altera Starter Editionからの置き換え)

まず、ModelSim→Questaに名前が変わっている。Mentor GraphicsがSiemensに買収されたのでブランド名が変更になったらしい。まあバージョンアップとしては連続性があるもののようだけど、いろいろ細かい違いがある。

・Starterライセンス

まず、無料で使えるStarter Editionが、ModelSimのときはそのまま使えた(ライセンス登録しなければ制限付き無償版)のが、Starter Editionにも無償版のライセンス登録が必要になったらしい。なので、単にインストールするだけだと動かない。手順はマクニカのWebサイトに割と丁寧に解説されている

Questa* - Intel® FPGA Starter Edition ライセンスファイルの取得および設定方法 - 半導体事業 - マクニカ (macnica.co.jp)

(これに限らずマクニカのサイト、Intel (旧Altera)FPGAの解説記事が充実している)

ここで自分の時はもう一つ落とし穴があって、上記のリンク先の記事の通り、Intelサイトに登録しないとStarter Editionライセンスの請求ができないんだけど、単に手順通り登録した直後は、機能制限のあるユーザ扱いで(ドキュメント閲覧のみ?)ライセンス請求のメニューが出てこなかった。どうしたら権限が変わるのかわからなかったけど、翌日には追加のメニューが表示されるようになったので、登録後に時間待ちが必要なのかもしれない。

・シミュレーション実行時の内部信号観測

Questaでシミュレーション実行後に信号を観測するとき、ModelSimの解説記事なんかの手順通りにやると波形観測の信号選択ができない。どうも後から内部信号の観測はできない最適化が行われるらしく、波形表示画面で任意の信号表示するには、内部信号の可視性を維持するモードにしないといけないようだ。

以前のバージョンではデフォルトで内部信号が可視になっていたのが、Questaではデフォルトが変わったらしい。

コマンドでは、voptコマンドで+accオプションを指定する。HDLのコンパイル後に、トップレベルモジュールを指定して

vopt -L <ライブラリ参照> +acc <トップレベルモジュール> -o <モジュール名_opt> 

とし、モジュール名_optをシミュレータで読み込む。

vsim -L <ライブラリ参照> -c <デザインライブラリ>.<モジュール名_opt>

2. Nios II IDE

・インストール

Nios IIの開発ツール、EclipseベースだがEclipse本体のインストールは別途手動で行わなくてはいけない。Quartusのインストーラは、Nios II IDEのメニュー項目は作るが、Ecipseインストール前にそのメニュー項目から起動しようとしても何も起こらない。コマンドラインから実行ファイルをたたくと、Eclipseが起動できないとのエラーメッセージが出ている。

手動インストールの手順は、Nios II IDEのインストール先

C:\intelFPGA_lite\21.1\nios2eds\bin\README

にあるREADMEファイルに書かれている。Eclipse本体をダウンロード、展開し、eclipse_nios2にフォルダ名を変えてプラグインを上書き展開する。

・WSLのセットアップ

Nios II IDEはどうもUnix環境を前提にしたスクリプト群を含んでいるらしく、以前のインストールにはCygwinが含まれていたとのこと。しかし現在のバージョンでは、WSLの存在を前提としている。事前にWSLを有効化し、Ubuntu環境もインストールしておく必要がある。

さらに追加で以下のステップが必要。

  1. dos2unixのインストール
  2. WSLENV環境変数の設定

まず一つ目、Nios II IDEスクリプトがWSLのdos2unixを呼び出すため、インストールしておく必要がある。Ubuntuなら、

sudo apt install dos2unix

でOK。二つ目、インストーラなりが設定してくれない環境変数がある。設定→詳細情報→システムの詳細設定→環境変数から、以下の環境変数とその値を設定する。

変数名: WSLENV

値: SOPC_KIT_NIOS2/p

これはWSL環境とWindows側で環境変数を共有する仕組みらしく、SOPC_KIT_NIOS2が共有が必要な環境変数。この環境変数自体の設定はNios II IDE自体がやっている。さらに、環境変数名に"/p"がつくことでパス名表記の変換をしてくれるらしい。

とりあえずここまでやったら、Quartus Prime Lite 21.1で論理合成からRTLシミュレーション、プログラム、Nios IIプログラム作成を行うことができた。Nios IIシステムの論理シミュレーションはどうかな...