Quartus Prime Tips

はじめに

時々必要になるが、その時には多分忘れているであろう知識を書き残しておく。

Questa Intel FPGA Edition のセットアップ

Quartus Prime のインストール時に同時にインストールできる(インストーラの画面でチェックを入れる)が、そのままでは使えない。下記のページにあるように、ライセンスの設定が必要。これは罠。

Questa* – Intel® FPGA Starter Edition ライセンスファイルの取得および設定方法

NativeLink で起動したシミュレータのコマンドライン操作

NativeLink 機能を使うと IP を含むプロジェクトが正しくシミュレーションできるよう、Quartus Prime がお膳立てしてシミュレータを起動してくれる。そこまではいい。

では、その後でテスト・ベンチを更新したり、新しく自作モジュールを追加したりした後に Quartus Prime に戻らずに(つまりシミュレータを再起動せずに)再コンパイルとシミュレーションの再実行を行うにはどうすればよいか?

Quartus Prime のプロジェクト > Settings > EDA Tool Settings > Simulation > Output directory で示された場所(起動したシミュレータのカレント・ディレクトリと一致する)にシミュレーション用の Tcl スクリプト・ファイルが生成される。スクリプト・ファイルの名前は [top entity name]_run_msim_rtl_systemverilog.do である。これをエディタで開くと何が行われているのか解る。冒頭はディレクトリの準備や IP のコンパイルであり、自作の RTL ファイルのコンパイル(vlog ...)がそれに続く。その後にシミュレーション実行(vsim ..., add wave *, run -all)がある。

もちろん、この do ファイルを Tcl コンソールから再実行してもよいが、一般にベンダ提供の IP のコンパイルには時間が掛かるので、自作 RTL ファイルのみを再度コンパイルしたいことが多い。その際は前記 do ファイルをヒントに、変更・追加した RTL ファイルのみをコンパイルするコマンドを Tcl コンソールに打ち込み、vsim ..., run -all を再実行すればよい。

コンパイラが Quartus Prime であるか否かを判定する

下記の Web ページで紹介されているように、ALTERA_RESERVED_QIS が定義されているか否かで判る。

How to determine that synthesis is done in Quartus?

プロジェクトを再生するための必要十分なファイル群

Quartus Prime のプロジェクトを Git でバージョン管理する際に、どのファイルを管理対象とすれば(つまりそれ以外は消えてもいい)必要十分であるか知っておく必要がある。それは次のファイルである。

Quartus Prime Lite Edition / Pro Edition 共通

  • プロジェクト情報ファイル:*.qpf, *.qsf
  • 自分で作った HDL ファイル(*.sv 等)と制約ファイル (*.sdc)
  • Platform Designer の情報ファイル:*.qsys

Quartus Prime Lite Edition 特有

IP 情報ファイル:*.qip, *.sip (前者が論理合成用、後者がシミュレーション用)qsys フォルダの中にもあったりする。

Quartus Prime Pro Edition 特有

IP 情報ファイル:*.ip これらは qsys フォルダの中にもあったりする。

Platform Designer 作った子階層の型名を変更する

検証環境:Quartus Prime Lite 23.1std

Platform Designer で ‘Add a new subsystem to the current system’ すると子階層が作られる。その際に「インスタンス名」はウィザードで指定できるが、「型名」は常に ‘subsystemA’ となる。これを変えるには次の手順が有効である。

  1. 一旦プロジェクトを閉じて VS Code 等でプロジェクトのフォルダをワークスペースとして開き、配下のファイル群中の ‘subsystemA’ を全て所望の型名に書き換える。
  2. subsystemA を名前に含むフォルダとファイルの名前の subsystemA の部分を所望の型名に書き換える。

Platform Designer で階層構造を作る例

Platform Designer で階層構造 (sub-system) を作り、かつ sub-system の配下の複数の Avalon-MM Agent の agent インタフェースを仲介機構
(Avalon-MM Pipeline Bridge) で⼀つの agent インタフェースにまとめて上位の階層に⾒せる具体例。

投稿者: motchy

An embedded software and FPGA engineer for measuring instrument.

コメントを残す