連載
» 2016年04月12日 12時00分 公開

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

[大原 雄介,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)を与えておく形だ。

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
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.