WindowsにQuartus 18.01をインストールして、MAX10評価ボードのLEDを光らせました

Windows開発環境を手に入れたので、せっかくなので、Intel Quartusをインストールしてみることにしました。 備忘録として、MAX10サンプル動作まで記載します。

Windows用の19.1 Liteは11/17(日)時点でまだ公開されてないようでしたので、18.1を使っています。

Quartus 18.1 Liteインストール

  1. 以下URLにアクセスし、Sign Inでアカウント作成します。
  2. 作成したアカウントでログイン後にLite/18.1を選択し、Windowsにチェックします。
    そして、「Quartus Prime (includes Nios II EDS)」を選択すればダウンロードできました!

ModelSim-Intel FPGA Editionも別途ダウンーロードとインストールしましたが、↑の環境にもmodelsimが含まれてそうなので不要かもしれません。

所持しているMAX10評価ボードの確認

私の所持しているMAX10評価ボードは数年前に出た以下のようでした。 乗っているデバイスは「10M08SAES」でMax10のOverviewを確認したところ、 08が8000Logicで、SAが「Single supply - analog and flash features with RSU option」、ESが「Engineering sample」のようです。

評価ボート: EK-10M08E144 Intel | 開発ボード、キット、プログラマ | DigiKey

MAX10 Overview: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/max-10/m10_overview.pdf

USB Blaster認識

では、まず評価ボードがPCと接続されているか確認するために、 QuartusのProgrammerを立ち上げて、Detect deviceを実行してみます。 すると、そもそもUSB Blasterがツールで認識されてないことがわかりました。(No Hardware)

以下URLを参考したところ、どうもUSB blasterのドライバ当てることが必要なようでした。 そのため、デバイスマネージャからUSB Blasterを選択して、quartusディレクトリ内のドライバを当ててみました。

すると、再度Programmerを立ち上げると、USB Blasterを選択でき、Detect deviceを実行すると認識されました! (10M08のいくつかのデバイスがででくるので、0M08SAESを選択)

https://www.macnica.co.jp/business/semiconductor/articles/intel/130517/

サンプルプロジェクト作成

ツールからMAX10が認識されたので、次は簡単なサンプルプロジェクトを立ち上げてみることにしました。

以下URLから評価ボードのテンプレートがあるので、ダウンロードします。 そして、QuartusでNew projectを進める中で、ダウンロードしたテンプレートを適用します。

MAX 10 Evaluation Kit Baseline Pinout | Design Store for Intel® FPGAs

  1. いくつか項目ありますが、「10M08SAE144C8GES」の項目を選択します。
  2. プロジェクトが作成され、max10_10m08_topをクリックします。
  3. 以下のように適当にLEDに値を設定するようにソースコードに追加します。
  4. コンパイルします。(Compile Designをダブルクリック)
  5. Program Deviceを選択し、書き込みます。
  6. LEDを確認し、1の箇所のLEDが消えていて、0の箇所が光っていることを確認します。
    (以下例の場合はLED2とLED5のみ光っている)
  assign LED1 = 1;
  assign LED2 = 0;
  assign LED3 = 1;
  assign LED4 = 1;

modeslsimを使ったシミュレーション

以下にて、modelsimで波形を確認することができました! 手軽ですね。

  1. OptionsからEDA Tool Optionsを開き、ModelSim-Alteraに「C:\intelFPGA_lite\18.1\modelsim_ase\win32aloem」のように設定します。
    modelsim_aseではなぜかダメなようでしたので注意です!
  2. Tools -> Run Simulaiton Tool -> RTL Simulation
    modelsimが起動します。
  3. modelsim内のObjectsタブでいくつかのピンを選択し、Add waveをクリックします。
  4. Transcriptにrun 10とか打つと、simulationが開始され、波形が確認できました!

テストベンチの設定は以下で可能でした。

  1. Assignments -> SettingでEDA Tool Setting内のSimulationを選択
  2. Copile test benchのTest Benchsを選択
  3. Newをクリックし、Test bench nameをtest1などにし、End Simulaiton atに実行時間を設定し、Test bench and simulation filesにtest benchを設定し、Add
    (test bench内に↑で作成したデザインをインスタンス化するようにする)
  4. RTL Simulationを実行するとテストベンチを使って、Simulationしてくれます。

ネットリスト確認

QuartusでTools->Netlist Viewrs->RTL Viewerで論理のスケマティクが確認可能でした! なかなかわかりやすそうです!

あとがき

久しぶりにFPGAを起動することができました! せっかくここまで動かせたので、次は以下に取り組んでいこうと思ってます。

  1. chisel/veriatorとmodelsim/UVM連携
  2. MAX10評価ボードと、PC間の通信(シリアル or JTAG or others)