「MAX 10 NEEK」へソフトコアCPUを組み込むMAX 10 FPGAで学ぶFPGA開発入門(9)(4/6 ページ)

» 2016年04月12日 12時00分 公開
[大原 雄介MONOist]

Quartus IIに戻って

 さて、ここからはQuartus IIに戻る。左のFiles画面で、まず現在表示中のNEEK_NIOS2.v、それとQSYSで生成したqipファイル(今回だとNEEK_NIOS2_QSYS/synthesis/NEEK_NIOS2_QSYS.qip)をプロジェクトに追加する(Photo20)。

 ここでNEEK_NIOS2_QSYS.vの中身を見ると、こんな宣言になっているハズ(Photo21)なので、この記述にあわせて、NEEK_NIOS2.vをこんな風に書き換える(Photo22)。List 1に書き換えた後のソースを示すが、要するにNEEK_NIOS_QSYSへ制御を移す宣言である。この際にクロックソースは、もともと供給される50MHzのもの(MAX10_CLK1_50)を指定し、PIOポートにはLEDRを指定する。リセットは常時Offということで、1(True)を与えておく形だ。

  1. List 1:
  2. //=======================================================
  3. // This code is generated by Terasic System Builder
  4. //=======================================================
  5. module NEEK_NIOS2(
  6. //////////// CLOCK //////////
  7. input ADC_CLK_10,
  8. input MAX10_CLK1_50,
  9. input MAX10_CLK2_50,
  10. input MAX10_CLK3_50,
  11. //////////// LEDR //////////
  12. output [9:0] LEDR,
  13. //////////// HEX //////////
  14. output [6:0] HEX0,
  15. output [6:0] HEX1,
  16. //////////// PS2 //////////
  17. inout PS2_CLK,
  18. inout PS2_CLK2,
  19. inout PS2_DAT,
  20. inout PS2_DAT2
  21. );
  22. NEEK_NIOS2_QSYS u0(
  23. .clk_clk (MAX10_CLK1_50), // clk.clk
  24. .led_pio_export (LEDR), // pio_0_external_connection.export
  25. .reset_reset_n (1'b1) // reset.reset_n
  26. );
  27. //=======================================================
  28. // REG/WIRE declarations
  29. //=======================================================
  30. //=======================================================
  31. // Structural coding
  32. //=======================================================
  33. endmodule
List 1
Photo20:ファイルの追加は、左上のFileタブの中で、"Files"フォルダを右クリックして "Add/Remove Files in Project..."を呼び出して、そこで行う Photo20:ファイルの追加は、左上のFileタブの中で、"Files"フォルダを右クリックして "Add/Remove Files in Project..."を呼び出して、そこで行う
Photo21:FileタブでNEEK_NIOS2_QSYS.qipを展開するとこれが出てくる Photo21:FileタブでNEEK_NIOS2_QSYS.qipを展開するとこれが出てくる

Photo22:コメントとかは別にまねする必要はない(念のため) Photo22:コメントとかは別にまねする必要はない(念のため)

 ここまで終わったらVerilog側のプログラミングは完了である。あとはビルドし(Photo23)、問題が無ければProgrammerを利用して.sofファイルを書き込んで置く。

Photo23:利用率を見るとまだほとんど余っている状況 Photo23:利用率を見るとまだほとんど余っている状況

 さて、今度はソフトウェアの方だ。Quartus IIから"Tools" → "Nios II Software Build Tools for Eclipse"を選び、Eclipseを立ち上げる。立ち上げたらまず"File" → "New" → "Nios II Application and BSP from Template"を選んでテンプレートから生成する(Photo24)。

Photo24:sopcinfoはQSYSが生成しているので、これを指定する(今回の場合だとNEEK_NIOS2_QSYS.sopcinfo) Photo24:sopcinfoはQSYSが生成しているので、これを指定する(今回の場合だとNEEK_NIOS2_QSYS.sopcinfo)
photo Photo25:まぁこれに説明の必要はないだろう

 今回はメモリもたっぷりあるので、Hello World Smallではなく、Hello Worldを選んでみた。あとは自動でHello WorldとそのBSPが生成されるので、以前と同じ手順でビルドして実行する。問題がなければ、NIOS IIのConsoleに"Hello from Nios II!"が表示されるはずだ(Photo26)。

Photo26:コンソールは右ペインにある。Photo25と比較してもらえると分かりやすい Photo26:コンソールは右ペインにある。Photo25と比較してもらえると分かりやすい

Copyright © ITmedia, Inc. All Rights Reserved.