2016年5月30日月曜日

BeMicro MAX10にNios IIを入れてLチカ(part 1:構成編)

トランジスタ技術2015年11月号 p61からの「第三章 [STEP2] コピペであっさり! 32ビット・コンピュータを作りこんで動かす」を試してみます。

前回マクニカさんの記事を参考にしたら、これが見事に「わかっている人向けの記事」だったので大いに悩んだのですが、今度は我が心の師匠・岩田利王氏の記事、きっと大丈夫です。でも、もしQurtusの操作についてわからないことがあれば、「FPGA電子工作スーパーキット」が参考になります。

ま、人の作ったもんだから何とかなるでしょ。

■と思ったら■

いきなり「前章で作成したmaxlabプロジェクトを開いて」と来ましたorz ということで、トラ技のダウンロードページから2015年11月号STEP1のプロジェクトをダウンロードして、Velilog下にあるmaxlabを適当な場所にコピーします。

Quartusを起動します。私のはQuartus Prime Lite 15.1.2です。

FileメニューのOpen Project...からmaxlabフォルダの中にあるmaxlab.pdfを開きます。ToolsメニューからQsysを選びます。

…と記事のまま書いてもブログにする意味がないので、以下は記事のわかりにくいところだけ説明します。

  1. Nios II プロセッサをシステムに追加する
  2. オンチップ・メモリをシステムに追加
  3. オンチップ・メモリのサイズを調整
  4. オンチップ・メモリの配線設定
    ちょっと悩みました。本には「マウスでクリックして繋ぐ」とありますが、どこをクリックしてもドラッグしても反応しません。クリックするのは「◯」のところです。例えば、 -<clk と ->clk1 を繋ぐ場合には、nios2_gen2_0のところにある ->clk の左にある「◯」と ->clk1 のところにある「◯」をクリックすると線が太くなって配線!となります。どうでもいいですが「はいせん!」とか書きたいですな(何がだ)。
  5. Nios IIがオンチップ・メモリから起動するように設定
    記事では「画面を閉じます」と書いてありますが、閉じるとこの後の辻褄があわなくなってしまうので閉じません。閉じるときにファイル名をnios2e.qsysにしていれば問題無いです。もし閉じてしまったら、またQuartusのToolsメニューからQsysを選びます。で、メモリベースアドレスの設定をするのですが、「図9のように」という本文の説明は大変わかりにくいです。配線図のところのonchip_memoryの下にあるs1の行の右に「BASE」という欄がありますので、ここをダブルクリックして記事にあるように「0x0001_0000」にしてみます。記事には0xついてないですが、付けます。
なお、記事はこれで「エラーが消えます」とあるのですが、「clk_0, clk_in_reset must be connected to a reset source」というエラーが残ってます。記事の図を見ても接続されていないですが、マクニカの記事だとつながっているのでつないで見たのですが、それだと最後の最後でコンパイルエラーがでます。


調査の結果わかったのは、Qsysでclk_0のckl_in_resetがexportされていないのが原因でした。clk_in_resetの行のExport欄をダブルクリックして表示が「reset」になるのを確認してください。こんな形になればOKです。雑誌の図だと「export」が隠れてて見えないんですよね…困ったもんだ。



■STEP2-2 Nios IIにI/Oを追加■

  1. 加速度センサとSPI通信するためのPIOを追加
    Qsysは開いたままです。1bitのoutputを3つと1bitのinputを1つ追加します。
  2. LED制御用PIOを追加
    width 8のoutputを1つ追加します。
  3. PIOの設定とそれぞれの接続設定をします。記事通りです。

■STEP3 FPGAに書き込む■

  1. Quartus IIで使うためのファイルを生成する
  2. Qsysで生成したファイルをQuartus IIに追加する
  3. MAX 10でNios II/eを使うための設定をする
  4. 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を雑誌のリストと同じにしてみました。結果的にはそれでよかったみたい。
  5. コンパイルの後、FPGAにプログラムする
    ProcessingメニューからStart Compileを選びます。順調にいけば、0:errors, 22 warningsって感じで終わるはずです。

さて、あとはNios IIの上で走らせるソースをコンパイルしたりFPGAをコンフィグ(書き込みのこと)しなきゃいけないんですが、もう眠いっす。

続きは明日…無事動作しました。

0 件のコメント:

コメントを投稿