さて、ここからは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)を与えておく形だ。
- List 1:
- //=======================================================
- // This code is generated by Terasic System Builder
- //=======================================================
- module NEEK_NIOS2(
- //////////// CLOCK //////////
- input ADC_CLK_10,
- input MAX10_CLK1_50,
- input MAX10_CLK2_50,
- input MAX10_CLK3_50,
- //////////// LEDR //////////
- output [9:0] LEDR,
- //////////// HEX //////////
- output [6:0] HEX0,
- output [6:0] HEX1,
- //////////// PS2 //////////
- inout PS2_CLK,
- inout PS2_CLK2,
- inout PS2_DAT,
- inout PS2_DAT2
- );
- NEEK_NIOS2_QSYS u0(
- .clk_clk (MAX10_CLK1_50), // clk.clk
- .led_pio_export (LEDR), // pio_0_external_connection.export
- .reset_reset_n (1'b1) // reset.reset_n
- );
- //=======================================================
- // REG/WIRE declarations
- //=======================================================
- //=======================================================
- // Structural coding
- //=======================================================
- endmodule
ここまで終わったらVerilog側のプログラミングは完了である。あとはビルドし(Photo23)、問題が無ければProgrammerを利用して.sofファイルを書き込んで置く。
さて、今度はソフトウェアの方だ。Quartus IIから"Tools" → "Nios II Software Build Tools for Eclipse"を選び、Eclipseを立ち上げる。立ち上げたらまず"File" → "New" → "Nios II Application and BSP from Template"を選んでテンプレートから生成する(Photo24)。
今回はメモリもたっぷりあるので、Hello World Smallではなく、Hello Worldを選んでみた。あとは自動でHello WorldとそのBSPが生成されるので、以前と同じ手順でビルドして実行する。問題がなければ、NIOS IIのConsoleに"Hello from Nios II!"が表示されるはずだ(Photo26)。
Copyright © ITmedia, Inc. All Rights Reserved.