前回マクニカさんの記事を参考にしたら、これが見事に「わかっている人向けの記事」だったので大いに悩んだのですが、今度は我が心の師匠・岩田利王氏の記事、きっと大丈夫です。でも、もしQurtusの操作についてわからないことがあれば、「FPGA電子工作スーパーキット」が参考になります。
ま、人の作ったもんだから何とかなるでしょ。
■と思ったら■
いきなり「前章で作成したmaxlabプロジェクトを開いて」と来ましたorz ということで、トラ技のダウンロードページから2015年11月号STEP1のプロジェクトをダウンロードして、Velilog下にあるmaxlabを適当な場所にコピーします。Quartusを起動します。私のはQuartus Prime Lite 15.1.2です。
FileメニューのOpen Project...からmaxlabフォルダの中にあるmaxlab.pdfを開きます。ToolsメニューからQsysを選びます。
…と記事のまま書いてもブログにする意味がないので、以下は記事のわかりにくいところだけ説明します。
- Nios II プロセッサをシステムに追加する
- オンチップ・メモリをシステムに追加
- オンチップ・メモリのサイズを調整
- オンチップ・メモリの配線設定
ちょっと悩みました。本には「マウスでクリックして繋ぐ」とありますが、どこをクリックしてもドラッグしても反応しません。クリックするのは「◯」のところです。例えば、 -<clk と ->clk1 を繋ぐ場合には、nios2_gen2_0のところにある ->clk の左にある「◯」と ->clk1 のところにある「◯」をクリックすると線が太くなって配線!となります。どうでもいいですが「はいせん!」とか書きたいですな(何がだ)。 - Nios IIがオンチップ・メモリから起動するように設定
記事では「画面を閉じます」と書いてありますが、閉じるとこの後の辻褄があわなくなってしまうので閉じません。閉じるときにファイル名をnios2e.qsysにしていれば問題無いです。もし閉じてしまったら、またQuartusのToolsメニューからQsysを選びます。で、メモリベースアドレスの設定をするのですが、「図9のように」という本文の説明は大変わかりにくいです。配線図のところのonchip_memoryの下にあるs1の行の右に「BASE」という欄がありますので、ここをダブルクリックして記事にあるように「0x0001_0000」にしてみます。記事には0xついてないですが、付けます。
調査の結果わかったのは、Qsysでclk_0のckl_in_resetがexportされていないのが原因でした。clk_in_resetの行のExport欄をダブルクリックして表示が「reset」になるのを確認してください。こんな形になればOKです。雑誌の図だと「export」が隠れてて見えないんですよね…困ったもんだ。
■STEP2-2 Nios IIにI/Oを追加■
- 加速度センサとSPI通信するためのPIOを追加
Qsysは開いたままです。1bitのoutputを3つと1bitのinputを1つ追加します。 - LED制御用PIOを追加
width 8のoutputを1つ追加します。 - PIOの設定とそれぞれの接続設定をします。記事通りです。
■STEP3 FPGAに書き込む■
- Quartus IIで使うためのファイルを生成する
- Qsysで生成したファイルをQuartus IIに追加する
- MAX 10でNios II/eを使うための設定をする
- HDLソースとピン・アサインのファイルを更新
QuartusのProject Navigator(右上の一覧)からmaxlabをダブルクリックするとmaxlab.vが表示されます。で、リスト1を打ち込みます。すぐお気づきかと思いますが、赤い文字だけが変更箇所ではないのでご注意を。あと「それらをアサインしましょう」はFileメニューからOpen Fileを選び、Files of typeをAll Filesにするとmaxlab.qsfが見えますので、開きます。もっと簡単な開き方ご存知の方、教えてくらさい。開くと雑誌リスト2の中身と大幅に違うものが出てくるのですが、set_global_assignmentは放置しておいて、set_location_assignmentを雑誌のリストと同じにしてみました。結果的にはそれでよかったみたい。 - コンパイルの後、FPGAにプログラムする
ProcessingメニューからStart Compileを選びます。順調にいけば、0:errors, 22 warningsって感じで終わるはずです。
さて、あとはNios IIの上で走らせるソースをコンパイルしたりFPGAをコンフィグ(書き込みのこと)しなきゃいけないんですが、もう眠いっす。
続きは明日…無事動作しました。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。