Nios II で Hello World
Qsysを使用してDE0にNios IIを実装してPCに Hello World! を表示させました.
実際には自分でソースコードを書いたりだとかはほとんどしておらず,どちらかと言えばQuartusとQsysの使い方がメインです.
1.使用した環境
・Windows7
・Quartus II Ver.13.1 Web Edition
・DE0ボード
2.方法
(1)Quartus II を起動して新規プロジェクトを作成
プロジェクト名を「HelloNios」として適当なディレクトリに新規プロジェクトを作成した.
「Family & Device Settings」はDE0ボードに載っている「EP3C16F484C6」を選択
それ以外は規定値でFinishを押してプロジェクトを作成した.
(2)Nios II の作成
Tools→Qsys でQsysを起動
Qsysが開いたらLibraryタブの検索欄に「Nios」と入れると「Nios II Processor」が出てくるので選択してAddをクリック
そうするとNios II の設定ウィンドウが開くので「Nios II Core」の「Nios II / e」を選択してとりあえずFinishを押す.
※Nios II /s と Nios II / f は無料版では使えない.
※この時点ではエラーが表示されるがここではそのままでよい
(3)その他コンポーネントを追加
先ほどと同様に検索をかけて「On-Chip Memory (RAM or ROM)」を追加
Size の Total memory size を 16384 bytes に設定した. (メモリーのサイズなのでもっと大きくしてもいい)
さらに「JTAG UART」を追加
これは何も設定を変えずにFinishを押した.
(3)コンポーネントの接続
System ContentsタブのConnectionsにある白丸をクリックするとコンポーネントを接続することができる. 写真のように線をつなぐ.
さらに、それぞれのコンポーネントのアドレスを設定するために、System→Assign Base Addresses をクリック
これで各コンポーネントのアドレスを自動で決められる.
※手動で設定したい場合はSystem ContentsタブのBaseから変える.
(4)リセットベクタ・エクセプションベクタの設定
System Contentsタブの「nios2_qsys_0」をダブルクリックするとNios2の設定画面がでるので,Reset Vector memory と Exception vector memory を「onchip_memory2_0.s1」に設定
Nios2の設定は最終的に画像のようになる.
(5)論理合成
ここまで設定が完了したらGenerate→Generate…をクリック.
今回の設定を保存するか聞かれるので「Nios2e.qsys」という名前でプロジェクトディレクトリ直下に保存した.その後GenerationウィンドウのGenerateボタンを押して論理合成をした.
(6)トップモジュールの作成
Quartusに戻ってFile→Newより「Verilog HDL File」を選択.
module HelloNios(
CLK, RST_N
);
input CLK, RST_N;
Nios2e u0 (
.clk_clk (CLK), // clk.clk
.reset_reset_n (RST_N) // reset.reset_n
);
endmodule
上記のコードを書いて「HelloNios.v」という名前で保存.
(7)プロジェクトにQsysで作成したNiosを追加
Qsysで作成された設定ファイルをプロジェクトに追加する.
プロジェクトの設定画面を開いてFilesを開き,Qsysの設定ファイルを追加する.
写真のように設定ファイルを選択して,Addを押せばよい.
追加したらOKを押す.
(8)コンパイル
ピンアサイン前に一度コンパイルする.
写真の▶マーク
(9)ピンアサイン
CLK・・・PIN_G21 (50Hzクロック入力)
RST_N・・・PIN_H2 (プッシュスイッチ)
設定.
(10)もう一度コンパイル
ピンアサインを変更したのでもう一度コンパイルする.
(11)書き込み
Programmerを開いてプログラムをDE0に書き込む.
※書き込みが終了したらProgrammerは必ず閉じてください.(後でPCとDE0で通信するときにエラーが起きるため)
(12)Nios II Software Build Tools for Eclipse の起動
Quartus で Tools → Nios II Software Build Tools for Eclipse を押してEclipse を起動する.
これ以降の作業はこのEclipse上で行う.
(13)プロジェクトの作成
File → New → Nios II Application and BSP from Template を選択
・SOPC Information File name はQuartus ii で作成したプロジェクトのフォルダ内にある 「Nios2e.sopcinfo」 を選択
・Project name を 「HelloWorld」
・Templates は 「Hello World Small」を選択.
※Templates の 「Hello World」 は容量が大きすぎるためOn-chip memory に入らない
Finishを押して新規プロジェクトを作成する.
(14)プロジェクトのビルド
新規作成したプロジェクト「HelloWorld」を右クリックしてBuild Project をクリック.
(15)DE0に書き込む
「HelloWorld」を右クリックしてRun As→Nios II Hardware
うまく行けば下の写真のように「Hello from Nios II !」と表示される.
うまく行かなかった場合はRun As → Run Configuration のTarget Connection タブで System ID checks の中のチェックボックス2つにチェックを入れ、Refresh Connections を押す.
接続がうまくいくとTarget Connection のアイコンからXマークが消える.その後下のRunを押して実行する.
参考文献
FPGA ボードで学ぶ組込みシステム開発入門 ?Altera編?
- 作者: 小林優
- 出版社/メーカー: 技術評論社
- 発売日: 2011/09/22
- メディア: 大型本
- 購入: 3人 クリック: 31回
- この商品を含むブログ (10件) を見る
FPGAスタータ・キットで初体験!オリジナル・マイコン作り―フリーのCPUコアNios 2/eと高速ロジックで七変化 (トライアルシリーズ)
- 作者: 岩田利王
- 出版社/メーカー: CQ出版
- 発売日: 2013/04
- メディア: 単行本
- この商品を含むブログ (1件) を見る