Processing math: 100%

2020/01/02

Quartus Prime + ModelSimASEによるFPGAプロジェクト開発

Intel FPGAのEDAツールであるQuartus PrimeとHDLシミュレーションツールであるModelSimASE(Altera Starter Edition)1を用いたFPGAのプロジェクト開発について解説する. Quartusが使えるようになるということが目的ではなく, コマンドライン操作との対応関係をまとめるのが目的である.

これらツールのバージョンは以下の通り.

1 Intel FPGAになってもいまだにASEで呼ばれることが多い.

Quartus Prime 18.0.0 Build 614 04/24/2018 SJ Lite Edition
ModelSim - Intel FPGA Starter Edition 10.5b 2016.10

FPGAのプロジェクト開発は以下の流れで行う. デバイス設定やピンアサインメント, タイミング制約などに関しては言及しない.

  1. Quartus GUI立ち上げ
  2. プロジェクト作成
  3. プロジェクトファイル登録
  4. コンパイル
  5. Quartus Prime+ModelSimASE連携
  6. シミュレーション

以下でこれらの項目でのツールの使用方法について説明する. QuartusやModelSimのGUIにおける操作とコマンドラインやファイルを使ったスクリプトによる操作を対比して説明する.

0. Quartus GUIの立ち上げ

Quartus Primeの統合ツール(GUI)はインストールディレクトリ以下にある.

intelFPGA_lite/18.0/quartus/bin64/quartus

(Windows版では.exe形式であるが、どうせ余計なので以下ではLinux版に合わせて、ツールはすべて実行形式で示す.)

これを実行するとQuartus GUIが立ち上がる.

1. プロジェクト作成

Quartus GUIの立ち上げ時のスタートページ, またはツールバーのFile >から「New Project Wizard」を選択するとプロジェクトの作成を行うことができる. プロジェクトの作成時点でプロジェクトの実ファイルである<project>.qpfとプロジェクトの設定ファイルである<project>.qsfが生成される.

コマンドライン上からは以下のコマンドで<project>というプロジェクトを作成することができる.

quartus_sh --tcl_eval project_new <project>

2. プロジェクトファイル登録

「New Project Wizard」でプロジェクトを作成する際に「Add Files」から既存のファイルを追加することができる. またツールバーからProject > Add/Remove Files in Project...を選択しても同様にファイルを追加できる.

プロジェクトの設定は<project>.qsfファイル内に記述されており, これに追記することでファイルを追加することができる.

ファイル種別 記述
VHDL set_global_assignment -name VHDL_FILE <file>.vhd
Verilog HDL set_global_assignment -name VERILOG_FILE <file>.v
System Verilog set_global_assignment -name SYSTEMVERILOG_FILE <file>.sv
Block Design Files set_global_assignment -name BDF_FILE <file>.bdf
Quartus IP File set_global_assignment -name QIP_FILE <file>.qip
Qsys file set_global_assignment -name QSYS_FILE <file>.qsys

3. コンパイル

プロジェクトのコンパイルは以下の項目を実行することをさす.

  1. Analysis & Synthesis(論理合成)
  2. Fitter(配置配線)
  3. Assembler(プログラミングファイル生成)
  4. Timing Analysis(タイミング解析)
  5. EDA Netlist writer(ネットリストファイル生成)

ツールバーからProcessing > Start Compilationを選択すると, 上記すべてを実行するコンパイルができる.

コマンドライン上からは以下のコマンドで<project>というプロジェクトのコンパイルを実行できる.

quartus_sh --flow compile <project>

1. Analysis & Synthesis

プロジェクト作成初期や有償のIPの検証時は「Analysis & Synthesis」のみの実行が有用である. ツールバーからProcessing > Start > Start Analysis & Synthesisを選択すると実行できる.

コマンドライン上からは以下のコマンドで<project>というプロジェクトの「Analysis & Synthesis」を実行できる.

quartus_map <project>

またこのコマンドから各種ファイルの変換を行うことができる. もちろんGUIでも該当する操作を行うことができる.

Block Design File → HDL

ツールバーからFile > Create / Update > Create HDL Design File from Current File

quartus_map <project> --convert_bdf_to_vhdl=<file>(.bdf)
quartus_map <project> --convert_bdf_to_verilog=<file>(.bdf)

HDL → Block Symbol File(.bsf)

ツールバーからFile > Create / Update > Create Symbol Files for Current File

quartus_map <project> --generate_symbol=<file>(.vhd/.v/.sv)

2. Fitter

プロジェクトのRTL記述などが固まった時点でデバイスの変更やピンアサインメントを行う場合は「Fitter」のみの実行が有用である. ツールバーからProcessing > Start > Start Fitterを選択すると実行できる.

コマンドライン上からは以下のコマンドで<project>というプロジェクトの「Fitter」を実行できる.

quartus_fit <project>

3. Assembler

同じ文章が続いてだんだん飽きてきたがコンフィグレーション設定の変更のみを行いたい場合などは「Assembler」のみの実行が有用であるそんなことあるか?. ツールバーからProcessing > Start > Start Assemblerを選択すると実行できる.

コマンドライン上からは以下のコマンドで<project>というプロジェクトの「Assembler」を実行できる.

quartus_asm <project>

4. Timing Analysis

タイミング制約を行いたい場合などは「Timing Analysis」のみの実行が有用である. ツールバーからProcessing > Start > Timing Analysisrを選択すると実行できる.

quartus_sta <project>

4. EDA Netlist writer

ツールバーからProcessing > Start > EDA Netlist writerを選択すると実行できる.

quartus_eda <project>

5. Quartus Prime+ModelSimASE連携

QuartusではNativeLinkという機能により外部のEDAシミュレーションツールと連携してテストベンチシミュレーションを行うことができる.

Quartus Primeから外部のEDAツールを利用するためには, まずQuartusに使用するツールを登録しなければならない. ツールバーからTools > Options... を選択し, 「Options」の設定画面を表示する. 「Category」のGeneral > EDA Tool Optionsを選択する. ここで使用するEDAツールのパスを登録することができる. ここではModelSimASEを使用するため「ModelSim-Altera」にパス(intelFPGA_lite\18.0\modelsim_ase\win32aloem\)を登録する. この操作はQuartusに記憶されるため一度限りである.

また各プロジェクトでEDAツールの選択とテストベンチファイルの設定を行う. ツールバーからAssignments > Settings...を選択し, 「Settings」の画面から「Category」のEDA Tool Settings > Simulationを選択する. 「Simulation」の画面で以下の項目を設定する. なおTime scaleの項目は無視される.

項目 内容
Tool name ModelSim-Altera
Format for output netlist System Verilog HDL
Time scale 1ns
Compile test bench <testbench>
項目 内容
Name <testbench>
Test Bench File(s) <file>.sv

これらの項目は<project>.qsfファイル内に以下のように記述されている.

set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (SystemVerilog)"
set_global_assignment -name EDA_TIME_SCALE "1 ns" -section_id eda_simulation
set_global_assignment -name EDA_OUTPUT_DATA_FORMAT "SYSTEMVERILOG HDL" -section_id eda_simulation
set_global_assignment -name EDA_TEST_BENCH_ENABLE_STATUS TEST_BENCH_MODE -section_id eda_simulation
set_global_assignment -name EDA_NATIVELINK_SIMULATION_TEST_BENCH <testbench> -section_id eda_simulation
set_global_assignment -name EDA_TEST_BENCH_NAME <testbench> -section_id eda_simulation
set_global_assignment -name EDA_DESIGN_INSTANCE_NAME NA -section_id <testbench>
set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME <testbench> -section_id <testbench>
set_global_assignment -name EDA_TEST_BENCH_FILE <file>.sv -section_id <testbench>

5. シミュレーション

ツールバーのTools > Run Simulation Tool > RTL Simulationからシミュレーションを実行できる.

このときNativeLink機能によりsimulation/modelsim/以下にModelSim用のスクリプトファイル(*.do)が生成され, このスクリプトが実行される.

スクリプトファイルの生成をコマンドラインで実行するには以下のように該当するTclスクリプトを使用する.

quartus_sh -t intelFPGA_lite\18.0\quartus\common\tcl\internal\nativelink\qnativesim.tcl --rtl_sim <project>

また*.doファイルはModelSimのコマンドライン実行でも実行することができる.

vsim -do <file>.do

Tips

各種コマンドはBashコマンドと組み合わせるとよい

ex. プロジェクトファイル登録

find . -name ".vhd" | xargs -I% echo "set_global_assignment -name VHDL_FILE %" >> <project>.psf

NativeLinkによって生成されたスクリプトはタイムスケールが1ps固定

EDA Settingsに記載しても, テストベンチファイル内に `timescaleを記載してもすべて無視される. *.doファイル生成用Tclスクリプト内にvsim -t 1psが直書きされているためである. *.doファイルの書き換えのみで対応可能である.

Message Viewerの表示

ModelSimにはシミュレーション実行時のメッセージを表示する機能がある. ツールバーのView > Message Viewerで表示できる. しかしシミュレーション実行時に設定が必要なため, *.doファイルを以下のように書き換える必要がある.

- vsim
+ vsim -msgmode both -displaymsgmode both

参考

インテル Quartus Prime プロ・エディション ユーザーガイド: スクリプティング
Intel Quartus Prime Pro Settings File Reference Manual
Quartus Prime - EDA ツールの設定方法

0 件のコメント:

コメントを投稿