• 検索結果がありません。

Nios II ハードウェア・チュートリアル

N/A
N/A
Protected

Academic year: 2021

シェア "Nios II ハードウェア・チュートリアル"

Copied!
28
0
0

読み込み中.... (全文を見る)

全文

(1)

ver. 7.1 2007 年 8 月

1. はじめに

この資料は、Nios II の一般的な開発フローをご紹介しています。 今回は、リファレンス・デザインを使用し、FPGA 上に非常にシンプルな Nios II システムを構築し、プログラムを実行します。 作業環境は Quaruts II 7.1、Nios II 7.1 です。 こちらの資料は Nios II 開発ボード Cyclone II エディションで動作させたときのフローを紹介しております。 ソフトウェアはソフトウェア・リファレンス・デザインの count_binary を使用します。

2. 事前準備

2-1. リファレンス・デザイン

リファレンス・デザインは、アルテラ社のホームページからダウンロードできます。 http://www.altera.com/literature/lit-nio2.jsp

2-2. ライセンス

Nios II のライセンスは、Quartus II のライセンスと同じようにライセンスファイル内に “FEATURE” 行で与えられます。 Nios II の IP、または Nios II 開発キットを購入後、アルテラ社へユーザ登録した段階でライセンスファイルの取得が可能 になり、新たに取得したライセンスには Nios II 用の “FEATURE” 行が追加されています。

Nios II のライセンスがない場合は、FPGA にダウンロードしてから一定時間経過するとハードウェアの動作が停止する 「*_timelimited.sof」 ファイルが生成され、Nios II のライセンスがない場合でも一定時間、Nios II コアの検証が可能です。

(2)

2-3. ハードウェアの準備

Nios II 開発ボード、またはアルテラ社の FPGA が実装されている基板を用意し、ホスト PC とダウンロード・ケーブルを接 続後、基板に電源を供給します。

尚、推奨のダウンロード・ケーブルは USB-Blaster(Rev B 以降) です。 例) Nios II 開発ボード StratixII RoHS 対応エディションの場合

・ ホスト PC と接続した USB-Blaster を J24 のコネクタに接続 ・ J26 の電源コネクタより電源を供給

Nios II 開発ボードの詳細は、 アルテラ社の 「Nios Development Board Reference Manual」 で確認してください。 http://www.altera.com/literature/lit-nio2.jsp

このチュートリアルを進めるためには、カスタム・ボードの場合、実装されている FPGA、又は、FPGA のロジックサイズに関 して、下記の制約があります。

・ Stratix III か Stratix II ファミリ ・ Stratix ファミリは EP1S10 以上 ・ Cyclone III か Cyclone II ファミリ ・ Cyclone ファミリは EP1C12 以上

3. Quartus II でチュートリアル・デザインを開く

以下の手順でチュートリアル・デザインを Quartus II で開きます。

① アルテラ社 Web よりダウンロードしたプロジェクトをローカルフォルダへ保存します。 ② Quartus II を起動します。

③ File メニュー > Open Project をクリックします。

(3)

④ アルテラ社 Web よりダウンロードした、Nios II 開発ボード用のチュートリアル・デザインを選択します。 Quartus II のプロジェクト・ファイルである 「nios2_quartus2_project.qpf」 ファイルを選択します。

⑤ プロジェクト・ファイルを開くと、.bdf ファイル(回路図エディタ)が表示されます。

.bdf ファイルが表示されない場合は、File メニュー > Open より 「nios2_quartus2_project.bdf」ファイルを開きます。 回路図にピンのシンボルが見られます。この図面中央のあいている領域に、これから作成する非常にシンプルな Nios II システムのシンボルを張り付けます。

(4)

4. SOPC Builder で Nios II エンベデッド・プロセッサのシステム・モジュールを生成

SOPC Builder で Nios II プロセッサ・コアとペリフェラルを接続し、Nios II システムの HDL ファイルを生成します。 SOPC Builder は、Nios II システムを簡単にかつ自動で生成することができます。

作業フローは以下になります。 STEP1 SOPC Builder の起動 STEP2 ハードウェア設定

STEP3 CPU とペリフェラルの追加

STEP4 システム・モジュールの生成 ( SOPC Builder の generate ) STEP5 .bdf (回路図ファイル)へ Nios II シンボルを追加

4-1. SOPC Builder の起動

① Tools メニュー > SOPC Builder をクリックします。

※ Quartus II でプロジェクトを開いていない場合、SOPC Builder を起動することができませんのでご注意ください。

② System Name にシステム名を入力します。 (例:first_nios2_system)

(5)

4-2. ハードウェア設定

まず、システム全体の設定を行います。 ① 左枠の System Contents タブを選択します。 ② 使用するデバイスファミリを選択します。Nios II 開発ボードを使用するときも、カスタム・ボードを使用するときもボード に実装されているデバイスファミリを選択し、クロックを定義します。(Nios II 開発ボード Cyclone II エディションの場 合は 50MHz)

4-3. CPU とペリフェラルの追加

CPU である Nios II や各ペリフェラルを順番に追加していきます。 このチュートリアルでつなげていくコンポーネントは以下になります。 ・ オンチップ・メモリ ・ Nios II CPU スタンダード・コア ・ JTAG UART 用インタフェース

(6)

4-3-1. オンチップ・メモリ

システムには、メモリが最低 1 つは必要となり、今回は、20 KByte のオンチップ・メモリを、データ用、インストラクション用で 1 つだけ用意します。

① Memories and Memory Controllers カテゴリ内の On-Chip セクションから On-Chip Memory(RAM or ROM) を選択し Add ボタンをクリックします。

② On-Chip Memory のウィンドウが表示されます。

Total Memory Size を 20 Kbytes に設定し、Stratix,、Stratix II、Stratix III をターゲットデバイスとしている場合は、 Block Type: を M4K に設定します。その他の設定はデフォルトのままにします。Finish ボタンをクリックします。

ターゲットデバイスが Stratix、 Stratix II、Stratix III の場合

(7)

4-3-2. Nios II CPU スタンダード・コア

① 左枠より Nios II Processor を選択し Add ボタンをクリックします。

② Nios II ウィンドウが表示されますので、ここで Nios II/s を選択します。

Hardware Multiply を None にし、Hardware Divide のチェックをはずし、 Reset Vector 、Exception Vector 欄に onchip_mem を設定後、Offset にそれぞれ 0x0 、0x20 をセットします。

(8)

④ Instruction Cache に 2 Kbytes をセットし、Include Tightly Coupled Instruction Master Port(s) のチェックをはずします。

⑤ Advanced Features タブ、JTAG Debug Module タブ、Custom Instruction タブについては、今回は、設定しません。 Finish ボタンをクリックします。

(9)

SOPC Builder は、自動的に Nios II のインストラクションマスタ、データマスタとオンチップ・メモリのスレーブポートを接続し ます。

4-3-3. JTAG UART 用インタフェース

このコンポーネントを接続することで ホスト PC と Nios II システム間でデータ転送が可能になり、JTAG UART コアのレジ スタに対して、ソフトウェアからアクセスが可能です。

尚、ホスト PC は、USB-Blaster 経由で接続します。

① Intertace Protocols グループ内の Serial セクションから JTAG UART を選択し Add ボタンをクリックします。

(10)

② JTAG UART ウィンドウが表示されますので、デフォルト設定のまま finish ボタンをクリックします。

4-3-4. タイマ

HAL のシステム・ライブラリで提供されているいくつかのデバイス・ドライバにおいては、必ずタイマを必要とします。 例として JTAG_UART のドライバがあげられます。

① Peripherals グループ内の Microcontroller Peripherals セクションから Interval Timer を選択し、 Add ボタンをクリック します。

(11)

② Avalon Timer ウィンドウが表示されますので、デフォルト設定のまま Finish ボタンをクリックします。

③ このタイマ・コンポーネントの名前を変更します。

SOPC Builder 上でタイマのコンポーネント 「timer」 を選択し、右クリック > Rename をクリックします。

(12)

4-3-5. システム ID ペリフェラル

これは、システムに ID を持たせるためのペリフェラルで、ホスト PC から ターゲットデバイスにどのシステムのハードウェ アが実装されているかを認識できるようになり、他のシステム用のソフトウェアを誤ってダウンロードされることを未然に防ぐこと ができます。

① Peripherals グループ内の Debug and Performance セクションから System ID Peripheral を選択し、 Add ボタンをクリ ックします。

② Sustem ID Peripheral のウィザードが表示後、 Finish ボタンをクリックします。

(13)

4-3-6. LED 用 I/O(PIO)

Nios II 開発ボードに実装されている 8 つの LED 用に PIO コンポーネントを用意します。 ① Other セクションから PIO (Parallel I/O) を選択し、Add ボタンをクリックします。

② Avalon PIO ウィンドウが表示されますので、width に 8 を入力し、output ports only にチェックを入れます。 Finish ボタンをクリックします。

(14)

③ この PIO コンポーネントの名前を変更します。

SOPC Builder 上で PIO コンポーネント 「pio」 を選択し、右クリック > Rename をクリックします。

「led_pio」 とタイプします。

以上で、すべてのコンポーネントの追加は終了です。

4-4. システム・モジュールの生成 (SOPC Builder の generate)

4-4-1. ベースアドレスの設定

SOPC Builder は、自動的に Nios II システム・モジュールの各コンポーネントに対してアドレスを割り当てます。 このベースアドレスは自由に変更が可能です。

① コンポーネントをどれか 1 つ選択し、右クリック > Auto-Assign Base Addresses をクリックすることで、自動的にベース アドレスが割り振られます。

(15)

② jtag_uart_0 のコンポーネントの IRQ に 16 をタイプします。

4-4-2. システム・モジュールを生成 (generate)

Nios II システム・モジュールの HDL を生成します。

① System Generation タブを選択します。(または、Next ボタンをクリック) Simulation. Create project simulator files. のチェックボックスを外します。 ② Generate ボタンをクリックします。

(16)

③ Generate が終了すると “SYSTEM GENERATION COMPLETED” と表示されます。 その後、Exit ボタンをクリックします。

4-5. BDF (回路図ファイル)へ Nios II のシンボルを追加

SOPC Builder によって生成された、「first_nios2_system」 のシンボルを .bdf ファイルに貼り付けます。 ① Quartus II の .bdf ファイル上でダブルクリックします。 Symbol ウィンドウが表示されます。 ② Libraries 内の Project ディレクトリから 「first_nios2_system」 を選択します。

Symbol ウィンドウの右側に生成されたシンボルが確認できます。

③ OK ボタンをクリックします。

(17)

⑤ ピンと Nios II シンボルを接続し、回路図(.bdf ファイル)を完成させます。 ⑥ File メニュー > Save をクリックし、.bdf ファイルを保存します。

5. Quartus II でハードウェアを作成

5-1. デバイスの指定とピン・アサイン

カスタム・ボードの場合は、使用するデバイスの指定とピン・アサインを行う必要がありますが、Nios II 開発ボードを使用す る場合は、すでにデバイスの指定とピン・アサインが行われていますので、5‐2 項へ進んでください。 5-1-1. デバイスの指定 ① Assignments メニュー > Device をクリックします。

② Family 欄でデバイスファミリを選択します。 Device family selection has changed. Do you want to remove all location assignments ? というウィンドウが表示された場合は、「はい(Y)」 をクリックしてください。

(18)

④ Available devices 欄から使用するデバイスを指定してください。

⑤ 以下のメッセージが表示された場合には、「いいえ(N)」をクリックしてください。

⑥ Setting ウィンドウで OK をクリックします。

5-1-2. ピン・アサイン

① Assignments メニュー > Assignment Editor を選択します。

② Assignment Editor の Category を Pin にします。

③ To 欄の PLD_CLOCKINPUT[1] の Location 欄をダブルクリックして、適切なピンを指定してください。

(19)

さい。

(20)

5-2. Quartus II でコンパイル

Quartus II でコンパイルを実行し、FPGA に書き込むためのファイル(.sof)を生成します。

① Quartus II の Processing メニュー > Start Compilation または ボタンをクリックします。 ② コンパイルが終了すると、コンパイル結果を Compilation Report にて確認することができます。

6. ダウンロード

コンパイル後に生成された、.sof ファイルを FPGA へ書き込みハードウェアを実現します。

① USB-Blaster を Nios II 開発ボードに接続していない場合は、JTAG の 10 ピンヘッダに接続します。 このとき、コネクタの向きに注意してください。

② Quartus II の Tools メニュー > Programmer または ボタンをクリックします。「nios2_quartus2_project.sof」 フ ァイルが確認できます。

③ プログラマ・ウィンドウの Mode 欄に JTAG が選択されていることを確認します。 ④ Hardware Setup ボタンをクリックします。

(21)

⑥ Programmer ウィンドウの Program/Configure にチェックを入れ、Start ボタンをクリックします。 Progress が、100%になれば、ダウンロード完了です。

※ 「*_time_limited.sof」 ファイルを書き込んだ場合は、以下のウィンドウが表示されます。

Cancel ボタンをクリックすると、ダウンロードした FPGA の動作は停止しますのでご注意ください。

Nios II のモジュール(first_nios2_system) を含むハードウェア・デザイン(nios2_quartus2_project)が、正常にターゲットデバ イスにダウンロードできました。

ハードウェアを実現するまでのフローは以上となります。

7. Nios II システムでソフトを実行

7-1. Nios II IDE でプロジェクトを作成

Nios II のソフトウェア開発ツールである統合開発環境 Nios II IDE を用いて、ソフトウェアをコンパイルし、生成された Nios II のコードをシステムへダウンロードします。

① Nios II IDE を起動します。

(22)

② Workspace をローカルのフォルダに設定します。

Nios II IDE の File メニューの Switch Workspace… をクリックします。

(23)

④ 表示される Welcome to the Altera Nios II IDE ページを右上の Workbench をクリックし閉じます。

⑤ 新規プロジェクトを作成するために File メニュー > New > Nios II C/C++ Application を選択します。

⑥ Select Target Hardware 内の SOPC Builder System PTF File に、Browse ボタンより 「first_nios2_system.ptf」 を選 択することで、 Select Target Hardware 内の CPU 欄には、自動的に cpu が表示されます。

(24)

⑦ Select Project Template より Count Binary を選択します。 Name 欄は、自動的に count_binary_0 となります。

⑧ Finish ボタンをクリックします。

Nios II IDE に作成したプロジェクトが追加されます。

⑨ Nios II IDE 上で、プロジェクト(count_binary_0 フォルダ)を選択し右クリック > System Library Properties を選択し、 Properties for count_binary_0_syslib ウィンドウを表示します。

(25)

⑩ ソフトウェア実行コードのサイズを小さくするために、 Clean exit (flush buffers) のチェックを外し、 Small C library にチェックを入れ、OK ボタンをクリックします。

⑪ プロジェクトをビルドする為にプロジェクト(count_binary_0 フォルダ)を選択し右クリック > Builde Project を選択しま す。

ビルドを実行することで、ソースコードからオブジェクトコードである .elf ファイルが生成します。

(26)

7-2. プログラムの実行

ボード上で Count Binary のプログラムを走らせます。

① プロジェクト(count_binary_0 フォルダ)を選択し右クリック > Run As > Nios II Hardware を選択します。 Nios II IDE はソフトウェアを FPGA へダウンロードして実行します。

(27)

② Terminate ( ) ボタンをクリックしてください。

Nios II は動作し続けますが、Nios II IDE との通信が切断されます。

(基板上の LED は点灯しますが、Nios II IDE 上の Console ウィンドウに表示されているカウント値は止まります。)

(28)

横浜本社 〒222-8563 横浜市港区新横浜 1-5-5 マクニカ第二ビル TEL 045-476-2155 FAX 045-476-2156 大阪営業所 〒532-0011 大阪市淀川区西中島 6-1-3 アストロ新大阪第二ビル 7 階 TEL 06-6307-7670 FAX 06-6307-7671 名古屋営業所 〒460-0003 名古屋市中区錦 1-6-5 名古屋第一生命ビル 7 階 TEL 052-202-1024 FAX 052-202-1025 宇都宮営業所 〒321-0953 宇都宮市東宿郷 4-2-24 センターズビル 7 階 TEL 028-637-4488 FAX 028-637-4489 弊社より資料を入手されましたお客様におかれましては、下記の使用上の注意を一読いただいた上でご使用ください。 6. 本資料は非売品です。許可無く転売することや無断複製することを禁じます。 7. 本資料は予告なく変更することがあります。 8. 本資料の作成には万全を期していますが、万一ご不明な点や誤り、記載漏れなどお気づきの点がありましたら、弊社までご一報いただければ幸いです。 9. 本資料で取り扱っている回路、技術、プログラムに関して運用した結果の影響については、責任を負いかねますのであらかじめご了承ください。 10. 本資料は製品を利用する際の補助的な資料です。製品をご使用になる場合は、英語版の資料もあわせてご利用ください。 横浜本社 〒222-8563 横浜市港区新横浜 1-5-5 マクニカ第二ビル TEL 045-476-2155 FAX 045-476-2156 大阪営業所 〒532-0011 大阪市淀川区西中島 6-1-3 アストロ新大阪第二ビル 7 階 TEL 06-6307-7670 FAX 06-6307-7671 名古屋営業所 〒460-0003 名古屋市中区錦 1-6-5 名古屋第一生命ビル 7 階 TEL 052-202-1024 FAX 052-202-1025 宇都宮営業所 〒321-0953 宇都宮市東宿郷 4-2-24 センターズビル 7 階 TEL 028-637-4488 FAX 028-637-4489 弊社より資料を入手されましたお客様におかれましては、下記の使用上の注意を一読いただいた上でご使用ください。 1. 本資料は非売品です。許可無く転売することや無断複製することを禁じます。 2. 本資料は予告なく変更することがあります。 3. 本資料の作成には万全を期していますが、万一ご不明な点や誤り、記載漏れなどお気づきの点がありましたら、弊社までご一報いただければ幸いです。 4. 本資料で取り扱っている回路、技術、プログラムに関して運用した結果の影響については、責任を負いかねますのであらかじめご了承ください。 5. 本資料は製品を利用する際の補助的な資料です。製品をご使用になる場合は、英語版の資料もあわせてご利用ください。

参照

関連したドキュメント

(a) 主催者は、以下を行う、または試みるすべての個人を失格とし、その参加を禁じる権利を留保しま す。(i)

のようにすべきだと考えていますか。 やっと開通します。長野、太田地区方面  

それゆえ、この条件下では光学的性質はもっぱら媒質の誘電率で決まる。ここではこのよ

Nintendo Switchでは引き続きハードウェア・ソフトウェアの魅力をお伝えし、これまでの販売の勢いを高い水準

の知的財産権について、本書により、明示、黙示、禁反言、またはその他によるかを問わず、いかな るライセンスも付与されないものとします。Samsung は、当該製品に関する

このように雪形の名称には特徴がありますが、その形や大きさは同じ名前で

Altera Nios II フォルダを展開し、Existing Nios II software build tools project or folder into workspace を選択します(図 2–9 を参 照)。.

 筆記試験は与えられた課題に対して、時間 内に回答 しなければなりません。時間内に答 え を出すことは働 くことと 同様です。 だから分からな い問題は後回しでもいいので