117
1 Altera CycloneII評価ボードの チュートリアル 九州工業大学 笹尾研究室 中原 啓貴

Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

  • Upload
    hanhi

  • View
    268

  • Download
    13

Embed Size (px)

Citation preview

Page 1: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

1

Altera CycloneII評価ボードの チュートリアル

九州工業大学

笹尾研究室

中原

啓貴

Page 2: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

2

本ドキュメントの構成

1. QuartusII version 6.0の使用法

2. Altera DE2ボードの各パーツについて

3. Altera NiosIIの使用法

4. NiosIIと各パーツを用いたシステムの設計 事例

Page 3: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

3

QuartusII version 6.0の使用法

Page 4: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

4

QuartusII version 6.0の使用法

• Altera FPGAの設計フロー

• QuartusII の使用法

– デモンストレーションの合成と書き込み

– 加算器の設計

– シミュレーションツールの使用法

Page 5: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

5

Altera FPGAの設計フロー

Verilog (VHDL)ファイル

ネットリスト

ビットストリーム(コンフィギュレーションデータ)

verilog をRTL部品に合成します. 次に, RTLをFPGA上に配置・配線を行い, ネットリストを生成します.

ネットリストから, FPGAに転送するデータ(ビットストリーム)を生成します.

FPGAにコンフィギュレーションデータを送ります.

シミュレーション

設計した回路が仕様通りに動作するかチェックを行います.

Page 6: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

6

DE2ボードのデモを動作させる(1)• デモを動作させます

• CD-ROMの中の ¥DE2¥DE2_demonstrations¥DE2_Default

をフォルダごと適当な場所(C:¥など)にコピーしてください

• QuartusIIのアイコンをダブルクリックしてQuartusIIを起動します

QuartusIIのアイコン

Page 7: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

7

QuartusIIを起動した直後は…ファイルの操作・各コマンドの指示を行うアイコン

設計デザインの各モジュールを表示

実行中のプロセスを表示

エラーや警告などのログを表示

Verilog ファイルや

各ツールを表示する部分

Page 8: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

8

DE2ボードのデモを動作させる(2)• QuartusIIは各設計をプロジェクト毎に管理します

– 各プロジェクト毎にフォルダを作るといいでしょう

(同一フォルダに複数のプロジェクトがあると, エラーを引き起こす可能性がある)• サンプルデザインのプロジェクトを読み込みます

– File -> Open Projectをクリックしてください(図1)– 先ほどコピーしたフォルダの中にあるDE2_Default.qpfを開いてください(図2)

図1:プロジェクトを開く図2:DE2_Default.qpfを開く

Page 9: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

9

DE2ボードのデモを動作させる(3)設計対象のFPGA(ボード上のFPGAと同じはず)

トップモジュールクリック

'+'をクリックすることで下位層モジュールを

見ることができます

アイコンをクリックすることで各種のコマンドを実行しますコンパイル(RTL合成+配置配線+コンフィギュレーションデータ作成)を行う.RTL合成のみ行う. 機能設計時は配置配線を行う必要がないので,こちらのコマンドを行うとよい.タイミング解析を行う. タイミング制約を決定するときに使う.シミュレーションを行う. ただしセッティングが必要.レポートを表示

プログラマ(書き込みツール)を起動する

Page 10: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

10

DE2ボードのデモを動作させる(4)• コンフィギュレーションデータを作成します

– コンパイルアイコン

をクリックしてください

が表示されれば成功です!

現在実行中のプロセスAnalysis & Synthesis: RTLを合成Fitter:Assemble:Timing Analyzer: タイミング解析

配置配線

Page 11: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

11

DE2ボードのデモを動作させる(5)• FPGAにコンフィギュレーションデータを転送します

– ボードに各線を接続してください

– 初めて書き込みを行う場合は, 各線を接続する前にByte Blasterを インストールしてください

– ボードの電源スイッチをオンにしてください

(LEDや7SEGがピカピカするはず…)

付属のACアダプタ

USB(パソコンに接続)

スピーカの端子(変な音がでるので音量は小さめに!)VGAケーブル

電源スイッチ

Page 12: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

12

Byte Blasterのインストール• DE2評価ボードは Byte Blaster 経由でPCから

書き込み(コンフィギュレーション)データを受け取ります

• Byte Blasterをインストールする必要があります

• 評価ボードの電源を入れ, USBケーブルを接続してください– USBのデバイスインストールのウィンドウが開くので,

C:¥altera¥quartus60¥drivers¥usb-blaster にある

usbblst.inf を指定してください

(Quartus を

C:¥altera にインストールした場合)

Page 13: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

13

DE2ボードのデモを動作させる(6)• FPGAにコンフィギュレーションデータを転送します

• Programmerを起動してください– メニューから起動(右図)– アイコン

をクリックして起動

Page 14: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

14

DE2ボードのデモを動作させる(7)No Hardwareの場合Hardware Setup..をクリック

USB-Blasterを選択してClose

となればOK!Programにチェック, その他のチェックは外す

全てが終わったら,を押して

FPGAに書き込みを行って

ください

Page 15: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

15

ここまでのまとめ

• DE2ボードのデモンストレーションを行って

合成(コンパイル)→書き込み(コンフィギュレーション)までを 行いました

課題:• デモンストレーションフォルダにあるデモを

色々動作させてみましょう

(各フォルダには簡単な説明を記述したREADME.txtがある.)

Page 16: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

16

加算器の設計(1)• 簡単な加算器を設計し, ボードで動かします

• 仕様– 8bit加算器 (8bit + 8bit = 9bit)– 入力はディップスイッチ8個×2

– 入力と出力を7セグメントに表示

– 組合せ回路を verilog で記述

Page 17: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

17

加算器の設計(2)• QuartusIIを起動してください

• 今回はプロジェクトを新規に作ります– File -> New Project Wizard をクリックしてください

– New Project Wizard Introduction が出ますので, Nextをクリックしてください

File -> New Project Wizard New Project Wizard Introduction

Page 18: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

18

加算器の設計(3)• プロジェクトを置くディレクトリを設定します

– 適当なディレクトリを指定してください

– What is the name of this project? でプロジェクト名を指定します

– What is the name of the top-level design dentity ...でトップモジュールの名前を指定します

– すべて終わったら Next が有効になるのでクリックしてください

プロジェクトを置くディレクトリ

トップモジュール名

プロジェクト名

Page 19: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

19

加算器の設計(4)• 次に既存の verilog (VHDL) File を読み込むか聞かれます

• もし, 読み込む場合はファイルを指定して取り込んでください

(この作業は後からでもできます)• 今回は新たに設計するので, Nextをクリックしてください

Page 20: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

20

加算器の設計(5)• ターゲットデバイスを指定します

• 今回のボードのFPGAは(Altera CycloneII EP2C35F672C6)• ターゲットデバイスを指定したら, Nextをクリックしてください

デバイス名はパッケージに書かれていることが多い

Family (Cyclone,Stratixなど)を指定

FPGAのリスト

ターゲットデバイスの条件(ピン数,パッケージ等)を指定指定するとFPGAのリストが

絞られる

Page 21: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

21

加算器の設計(6)• 他のベンダーのツールを指定します (図1)• 後に確認のウィザードが出ますので (図2)

Finishをクリックしてください

図1:他のベンダーのツールを指定 図2:確認ウィザード

Page 22: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

22

加算器の設計(7)• では, 加算器の verilog を記述しましょう

• ファイル新規作成アイコン

をクリックし, Verilog HDL File を選択してOKをクリックしてください

1.

2.

3.

Page 23: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

23

加算器の設計(8)• エディタが現れますので, 加算器を記述してください

• 記述が終わりましたら, 保存します– デフォルトは先ほど指定したTopModule名ですが、ここでは敢えて

ファイル名とモジュール名を変更します!(よい子はそのまま・・ね)

1. verilogを記述

2. 保存

アイコンをクリック

3. ファイル名を指定

(トップモジュール名になってるはず)

Page 24: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

24

加算器の設計(9)• コンパイル

を行ってください

• 正しいverilogが記述されトップモジュールの指定が正しく

行われていた場合, Full Compilation Successful が表示されます

• 今回はトップモジュール名が違うので・・・!

• というわけで、トップモジュールを指定し直しましょう– Entity下のデバイス名を右クリック->Setting をクリックしてください

Page 25: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

25

加算器の設計(10)• Setting ウィンドウで設定をやり直します

– コンパイルオプションを指定したり, 先ほどの設定をすべて行える

1. Generalをクリック

2. Top-level entityのファイル選択をクリック

3. リストから

トップモジュール名を指定し, OK をクリック

Page 26: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

26

加算器の設計(11)• Full Compilation Successful が表示されましたか?

• 次にピン配置を行います– Assignments -> Assignment Editor をクリックしてください

Page 27: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

27

加算器の設計(12)• Assigment Editor が起動するのでピン配置を行います

– To の下をダブルクリックすると

が現れるので,

クリックして

Node Finder を選択してください

Page 28: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

28

加算器の設計(13)• FilterでPins: unassigned を指定し, Listをクリックします

• ピン配置を行いたいNodeを指定し

をクリックしてください

• 右のSelected NodesにコピーされるのでOKをクリックしてください1. Filter を設定 2. Listを表示

3. ピン配置を行いたいNode を選択

4. ピン配置を行いたいNode をコピー

5. OK で

AssignmentEditor に転送

Page 29: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

29

加算器の設計(14)• To の部分にNode Finderで選択したNodeが表示されます

• Assignment Name でLocation を選択してください

• CD-ROMの¥DE2¥DE2_lab_exercisesにピン名を記述したDE2_pin_assignment.csv があります– Value の部分に選択したNode に割り当てたいピン名を入力してください

1. ピンを割り当てたいNodeが表示される

2. Locationを指定

3. ピン名を入力

ピン名を記述したファイル

面倒くさいわ

Page 30: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

30

加算器の設計(15)• ピンを1本づつ割り当てていると時間がかかるので…

まとめて設定しましょう!– Assignments -> Import Assignments をクリックしてください(図1)– File name で先ほどのDE2_pin_assignment.csvを読み込んで

OKをクリックしてください(図2)

図1:Import Assignments図2:ファイル名の設定と読み込み

ここをクリックしてDE2_pin_assignment.csvを指定

Page 31: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

31

加算器の設計(16)• Verilog で記述した端子名とピン名が一致していれば

ピン名を個別に割り当てる必要はありません!(これは便利♪)– そうでなければ個別に配置していきましょう・・・

ピン名が表示される

Page 32: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

32

加算器の設計(17)• 再度コンパイル

を行ってください

• 後は"DE2ボードのデモを動作させる"で説明した

FPGAへの書き込み

を行えば・・・

1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0

Page 33: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

33

ここまでのまとめ

• プロジェクトの作成から書き込み(コンフィギュレーション)まで を行いました

– 初期設定・ピン配置を新たに行いました

– 8bit 加算器の設計を行いました

課題:• 加算器の記述を書き換えていろいろな加算器を

作ってみましょう!– PUSHボタンで入力を増減させて, 他のPUSHボタンで演算という

電卓もどきをつくるのもいいでしょうね(順序回路の記述が必要)

Page 34: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

34

シミュレーションツールの使用法(1)• 設計した回路が仕様通り動くのか検証が必要です

• バグを発見するためにもシミュレーションが必要

• シミュレータの使い方を覚えましょう!

• 余裕があればModelSim Altera も覚えるとよい– 高度な検証が可能 (複雑なテストベンチをverilogで記述できる, テス

トデータをファイル経由で扱える)– シミュレーションが高速

– NiosIIの標準シミュレータ

– Xilinx FPGAのシミュレータとしても仕様可

– Alteraでも期間限定試用バージョンがでた!?

Page 35: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

35

シミュレーションツールの使用法(2)• シミュレータツールを起動します

– Processing -> Simulator Tool を起動してください

Page 36: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

36

シミュレーションツールの使用法(3)• シミュレータツールが起動します

– 行いたいシミュレーションを選択してください

Functional: 機能(論理)シミュレーション遅延のシミュレーションを行わないので高速.まず、このシミュレーションを行って論理記述の誤りを検証するとよい

Timing: タイミング(遅延)シミュレーション遅延を含めたシミュレーションを行う.ハザード(レースやメタステーブルなど)を検証することができる.

Timing using Fast Timing Model:Timingを高速に行えるが、正確さに欠ける?(あまり使わないのでよくわかりません・・)

(注) Functional シミュレーションを行う場合は, シミュレーションの度に"Generate Functional Simulation Netlist" をクリックして仮ネットリストを作ってください!

Page 37: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

37

シミュレーションツールの使用法(4)• 初めてシミュレーションを行う場合, シミュレーション入力波形

を作成します

• をクリックしてください

シミュレーション波形表示部

各種時刻の表示

入出力Nodeの表示

各動作のアイコン

Page 38: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

38

シミュレーションツールの使用法(5)• まず, 入出力Nodeを入力します

– Nameの空いてる部分をダブルクリックすると, 下図のウィンドウが表示されます

– Node Finder でシミュレーションで扱いたい入出力ノードを選択しましょう

(Filterを変えることで様々なNodeを選択できる)

1. 空いている部分を

ダブルクリック

2. Node Finderをクリック

Page 39: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

39

シミュレーションツールの使用法(6)• 入力Nodeに波形を割り当てます

– 波形を割り当てたい部分を選択してください

Node全てを選択したい場合

Nodeの一部だけを選択したい場合

Node名をクリック

選択したい部分をドラッグ

で選択部分を拡大・縮小できます

Page 40: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

40

シミュレーションツールの使用法(7)• 入力Nodeに波形を割り当てます

– 選択部分を右クリックしてValueを選び, 割当てたい値を入力してください

Forcing Low: 論理値0を割当てForcing High: 論理値1を割当てInvert : 選択範囲の論理値を反転するCount Value: 指定した間隔でカウントした値を割当て. カウント値はBinaryとGrayを選択可

Clock: クロックを割り当てる. 周期を指定.Arbitrary Value: 指定した区間に任意の値を割り当てる.

Random Value: 指定した区間にランダムな値を割り当てる.

Page 41: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

41

シミュレーションツールの使用法(8)• 先ほどの加算器にCount Valueを割り当てたのですが...

桁が大きすぎて二進数表示では見えません.• 表示を変えてみましょう

– 波形の上で右クリック

-> Properties をクリックしてください

Radix(基数)をHexadecimal に変更

16進数表示にすると見えました!

Page 42: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

42

シミュレーションツールの使用法(8)• 入力した波形を保存し, シミュレータウィンドウを選択します

• さきほどの波形ファイルを読み込み を押せば

シミュレーションが開始されます

波形ファイルの読み込み

シミュレーション期間の設定End simulation at: を指定すると

決められた時間までシミュレーションを行う

Page 43: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

43

シミュレーションツールの使用法(9)• シミュレーションが成功すると"Simulation Successful"が

表示されます– をクリックしてください. シミュレーション結果を見ることができます

Page 44: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

44

ここまでのまとめ

• シミュレーションツールを使いました

• 波形の割当て方, 様々なシミュレーションを行いました

• 課題:– 順序回路のシミュレーションを行い, FunctionalとTimingシミュレー

ションの違いを確認してみましょう. ハザードがある場合はそれを直してください.

– ModelSim を使ってみましょう. 使い勝手, シミュレーション速度, 能力を確認してみましょう.

Page 45: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

45

Altera DE2ボードの 各パーツについて

Page 46: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

46

Altera DE2ボードの各パーツについて

• LED• 7Segment Display• Push Switch• Dip Switch• SRAM• LCD• VGA Controller• Audio Codec Chip• SD Card

Page 47: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

47

LED• 赤と緑の二種類があります

• 正論理(Hでオン, Lでオフ)

Page 48: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

48

7Segment Display• 7bit入力 (小数点の部分は未使用)• 負論理(Hでオフ, Lでオン)• CD-ROM¥DE2¥DE2_Default内のSEG7_LUT.vを参考に

するとよいでしょう– 4bitの16進数を入力して, 7bitにデコードする回路

x 未使用

Page 49: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

49

Push Switch と Dip Switch• Push Switch (4個)

– 負論理(押されるとL, 押されてないときH)

– チャタリング対策が必要!?

• Dip Switch (18個)– 正論理(バーが上にあるとH, バーが下にあるとL)

PUSH!

Page 50: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

50

SRAM• 容量は512KByte (18入力16出力)• 50MHzで動作可

• 非同期動作(クロック不要)

SRAM_DQ: SRAMのデータ信号線

16

18SRAM_ADDR: SRAMのアドレス信号線

SRAM_UB_N: 上位バイト(8bit)データのマスク(H: 上位8byteを無効, L: 有効)SRAM_LB_N: 下位バイト(8bit)データのマスク(H: 下位8byteを無効, L: 有効)SRAM_CE_N: SRAMチップセレクタ

(負論理)

SRAM_WE_N: 書き込みイネーブル (負論理)(L: 書き込み, H:読み込み)

SRAM_OE_N: 出力イネーブル (負論理)

Page 51: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

51

SRAM読み出し回路の記述例

読み出しアドレス

読み出しデータ

CLOCK

SRAM_ADDR

SRAM_WE_NH

SRAM_OE_N

SRAM_CE_N L

SRAM_DQ

初期設定:CE_N, LB_N, UB_NをLWE_NをH

初のクロック:アドレスをセットOE_NをLにする

次のクロック:データを読み出し

SRAM_LB_NSRAM_UB_N

assign SRAM_DQ = ( SRAM_WE_N == 1'b0) ? WDATA : 16'hzzzz;inout のverilog 記述

Page 52: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

52

SRAM書き込み回路の記述例

書き込みアドレス

書き込みデータ

CLOCK

SRAM_ADDR

SRAM_WE_N

HSRAM_OE_N

SRAM_CE_N L

WDATA

初期設定:CE_N, LB_N, UB_NをLOE_NをH

初のクロック:アドレスをセットWE_NをHにする

次のクロック:WE_NをLにしてデータ書き込み

SRAM_LB_NSRAM_UB_N

assign SRAM_DQ = ( SRAM_WE_N == 1'b0) ? WDATA : 16'hzzzz;inout のverilog 記述

Page 53: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

53

LCD• 16 x 2 キャラクター表示

• 256種類の文字を表示可能 (デフォルトのデータはASCIIコードと同じ!)• 初期化が必要

LCD_RW: 読み書きイネーブル信号(H: LCDから読み込み,L: LCDへ書き込み)

LCD_EN: イネーブル信号LCD_RS: レジスタ選択信号(L: 命令,H: データ)LCD_DATA[7:0]: データ信号LCD_ON: LCDオン信号(Hでオン)LCD_BLON: バックライト信号(Hでオン)

Page 54: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

54

LCD書き込み回路の設計例

L:命令/ H:データ

書き込みデータ

CLOCK

LCD_R/W

LCD_DATA[7:0]

LCD_RS

LCD_EN

LCDは応答速度が遅いので数μsec かけて転送すると

安定して動作しました

LCDには各命令毎に

応答速度が決まっています(数msecオーダの場合も!)

Page 55: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

55

LCDのアドレス

• 7ビットを使用

(LCD_DATA[7]はドント・ケア)• DDRAMに表示データを格納する

(DDRAMを書き換えれば表示を変えることができる)

Page 56: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

56

代表的な命令

Cursor or Display Shiftカーソルの移動(S)とディスプレイの

シフト(R)を行う

0 0 0 0 0 1 S R * * 39μs

Display ON/OFF Controlディスプレイ(D)とカーソルのON/OFFを設定

(C:カーソル,B:点滅するかどうか)0 0 0 0 0 0 1 D C B 39μs

Clear Displayディスプレイをクリアする(DDRAMをクリア)

0 0 0 0 0 0 0 0 0 1 1.53 ms

Entry Mode Setカーソル(I)とシフト(S)の設定

0 0 0 0 0 0 0 1 I H 39μs

Set DDRAM AddressDDRAMのアドレス(A)を設定

0 0 1 A A A A A A A 39μs

Write Data to RAMDDRAMにデータ(D)を書き込む

1 0 D D D D D D D D 43μs

LCD_DATA[7:0]LCD_RWLCD_RS

Page 57: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

57

LCDの初期化RS R/W D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 1 1 1 0 0 0

RS R/W D7 D6 D5 D4 D3 D2 D1 D00 0 0 0 0 0 1 1 0 0

RS R/W D7 D6 D5 D4 D3 D2 D1 D00 0 0 0 0 0 0 0 0 1

RS R/W D7 D6 D5 D4 D3 D2 D1 D00 0 0 0 0 0 0 1 1 0

RS R/W D7 D6 D5 D4 D3 D2 D1 D00 0 1 0 0 0 0 0 0 0

3 8

0 C

0 1

0 6

8 0

カーソルとディスプレイシフトを行う

ディスプレイをONにする

ディスプレイをクリア

入力モードをセット(カーソルは使わない)

DDRAMアドレスを00にセット

Page 58: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

58

VGA Controller• 640x480を描画 (RGBの各色成分は10ビット)• バッファメモリを使用

(M4Kで実現)

• VGA DACチップは25.2MHzで動作 (PLLを使用)

VGA_CLK: VGA DACチップのクロック(25.2MHz)VGA_BLANK: ブランク(空白)信号(H:描画 L:空白)VGA_HS:垂直同期信号VGA_VS:水平同期信号VGA_SYNC: 同期信号(常にLでよい!?)

VGA_R:赤成分信号

VGA_G:緑成分信号

VGA_B:青成分信号

10

10

10

Page 59: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

59

画面データと同期信号

Display Time(BLANK = H)

Blanking Time (BLANK = L)

*数字は25.2MHzクロックのカウント数

HS

VS 96 48 640 1648

011

322

80052

5

Page 60: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

60

VGAコントローラの設計例

Page 61: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

61

バッファメモリの構成

X: 640 (=80 x 8)

Y:4

80 (=

60 x

8)

FPGA内部のM4Kをバッファメモリとして使用メモリ量節約のため, 80x60ドットの画像を拡大して表示色成分は2bitに圧縮(64色に圧縮)

80

60

色データ(6bit)アドレス(13bit)

1111111111111

0000000000000

0000000000010

0000000000011

0000000000100

メモリのアドレス

= { Y[8:3], X[9:3]}

Page 62: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

62

Audio Codec Chip• 18.2MHzで動作(PLLを使用)• 48khz~8000hzのサンプリングレートに対応

• データ幅は16ビット/ステレオ

• LINE INやMIC INを増幅してデジタル化することもできる

• 今回はDAC のみ使用

– データはシリアル通信で転送

AUD_ADCLRCK:左右のイネーブル信号入力(今回は未使用)AUD_ADCDAT:データ信号入力(シリアル)AUD_DACLRCK:左右のイネーブル信号出力

(H:右データ

L:左データ)

AUD_DACDAT:データ信号出力(シリアル)AUD_XCK: Codec Chip用クロック(18.2MHz)AUD_BCLK: データストリームクロック

Page 63: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

63

Audio Codec Chipのタイミングチャート

• DAC(48khz/16bit/stereo)として使用する場合– FPGAからデータを送って音を出力

15 14 13 0 15 14 0 15

AUD_DACLRCK

AUD_BCLK

AUD_DACDAT

1/f = 1/48000

right data = 16bit left data = 16bit

right

left

1/f = 1/48000

16bitに量子化

16bit 2の補数表現

Page 64: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

64

Audio Playerの設計例

• 神の声ジェネレータ○×*Σ◎〒

μ!!

48KHz x 16bit x stereo では

データ量が大!

1.2KHz x 8bit x monoのデータを展開する

○×*Σ◎〒

μ!!

Page 65: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

65

サンプリングとデータの変換• 12000hz x 4 = 48000hz なので, 4回同じ波形を出力

• 8bitのデータは16bitに拡張

• monoデータを左右両方に送って擬似stereoにする

1/12000 1/48000

8bit16bit

12000hz8bitmono

48000hz16bitstereo

Page 66: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

66

タイミングチャート

AUD_DACLRCK

AUD_BCLK

AUD_DACDAT

1/f = 1/480001/f = 1/12000

同じデータストリームを8回送信する

8bit データを16bitに変換16bit_data = { 2'b00, 8bit_data, 6'b000000}

ダウンスケーリング誤差によるピークの変動が激しいため2bit 0を詰めました

Page 67: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

67

SD Card• 高10MHz前後で動作 (バラツキのためこの数値は曖昧)• SPIモードとSD Cardモードがある

• 4本の信号線でデータをやりとりする(SPIモード)• カードの初期化が必要

• データの読み書きはブロック単位(1ブロック=512Byte)

SD_DAT:SDカードからのデータ信号線SD_DAT3:SDカード選択信号SD_CMD:送信コマンド信号線SD_CLK: SDカードへのクロック

Page 68: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

68

SDカードとMMCカード• SDカードはMMCカードの上位互換(SDカードコネクタには

MMCカードも挿入可)• どちらもSPIモードに切り替えることができる

(同じプロトコルでアクセスできる)

(SDモード/SPIモード) (MMCモード/SPIモード)

Page 69: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

69

信号の接続

SD_CMD

SD_DAT3

SD_CLK

SD_DAT

Page 70: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

70

SDカードのコマンドとレスポンス• コマンド長は6Byte(5Byte:コマンド, 1Byte:CRC)• N_CR:コマンド応答時間

• レスポンスの読み出し: DOを読み取って"0"を読み取る

Page 71: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

71

代表的なコマンド

Page 72: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

72

シングルブロックの読み出し

Page 73: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

73

SDカードの初期化の手順1ms待つ

DI→Hにして74clock送信

CS→LにしてCMD0を送る(CMD0を受け取ったときにCSがLであれば

SPIモードに移行). CRCは0x95に設定

0x00を受け取ればCMD0は成功.次にCMD1を送る.(SDカードはACMD41の

ほうがよい?)

レスポンスが…0x01

0x00

初期化完了

Page 74: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

74

WAV File Playerの設計例

12000hz/8bit/monoデータをSDカードに保存

Audio Codecコントローラは先ほどの回路を流用

FPGAにバッファメモリと

シーケンサを実装

Page 75: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

75

Altera NiosIIのチュートリアル

Page 76: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

76

Altera NiosIIのチュートリアル

• NiosIIを組込んだシステムの設計フロー

• NiosII を動かしてみよう

– SOPC Builderの使用法

– NiosII IDEの使用法

• Nios II を拡張してみよう

• Model Simを用いたNiosIIのシミュレーション

Page 77: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

77

Nios II を組込んだシステムの設計フロー

Nios II

Memory

DCTCore

JTAGTimerI/O

システム設計

ハードウェア設計

ソフトウェア設計

SOPC Builder を使って

システムを構成します

Quartus II を使って

システムのハードウェアを設計します

Nios II IDE を使って

設計したハードウェアで動かすソフトウェアを設計します

Page 78: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

78

Nios II を動かしてみよう(1) • まずプロジェクトを作成します

– 適当なディレクトリを作成し、プロジェクトを作成してください

– ターゲットデバイス:EP2C35F672C6

• 次にSOPC Builderを使ってNiosII を生成します– Tools -> SOPC Builder をクリックしてください

Page 79: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

79

Nios II を動かしてみよう(2) • システム名を聞かれますので、好きな名前を入力してください

– ここではNiosII_Coreとしておきます

– Target HDL はverilogにチェックをつけてください

– 全て終われば OK をクリックしてください

Page 80: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

80

Nios II を動かしてみよう(3) • SOPC Builderが起動します

– 以下の設定を確認してくださいClock を設定します'clk', 'External', '50.0'になってるか確認してください

ターゲットボードを指定します今回は'Unspecified Board',Device Familyは'Cyclone II'にします

Page 81: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

81

Nios II を動かしてみよう(4) • Nios II をシステムに追加します

– Avalon Components -> Nios II Processor をダブルクリックしてください

– Nios II/e にチェックをつけて

Finish をクリックしてください

1. Nios II Procesorをダブルクリック

2. Nios II/e にチェックをつける

Page 82: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

82

Nios II を動かしてみよう(5) • Nios II がシステムに追加されました.• 次にデバッグ用にJTAG-UART を追加します

– Communication -> JTAG UART をダブルクリックしてください

– ウィンドウが開きますので, Finishをクリックしてください

1. JTAG UART をダブルクリック

Page 83: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

83

Nios II を動かしてみよう(6) • メモリをシステムに追加します

– Memory -> On-Chip Memory をダブルクリックしてください

– Total Memory Size に"16"を入力してFinishをクリックしてください

1. On-Chip Memory をダブルクリック

2. Total Memory Sizeを"16"Kbyteにする

Page 84: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

84

Nios II を動かしてみよう(7) • I/Oポートをシステムに追加します

– Other -> PIO (Parallel I/O) をダブルクリックしてください

– 何も変えずにFinishをクリックしてください

1. PIO をダブルクリック

Page 85: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

85

Nios II を動かしてみよう(8) • PIOの名前を変えてみましょう

– pio_0を右クリックし, Renameを選択してください(図1)– "LEDG"と入力してください(図2)

図1: Renameを選択

図2: LEDGと入力

Page 86: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

86

Nios II を動かしてみよう(9) • Base Addressを設定します

• 組み込みシステムは各機器にレジスタを割り当てて

直接レジスタを読み書きすることで各機器をコントロールします

• SOPC Builder はこれらのアドレスを

Base Addressを使って管理します

• Base Addresはコンポーネントを追加するたびに

自動で設定することができます– System ->

Auto-Assign Base Addressesをクリックしてください

Page 87: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

87

Nios II を動かしてみよう(10) • Baseアドレスが更新されます

• この作業はコンポーネントを追加・削除するたびに

必ず行ってください!

Page 88: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

88

Nios II を動かしてみよう(11) • System Generation タブをクリックします

• Simulation にチェックが入っているのを確認し, Generate をクリックしてください

1. System Generation タブをクリック

2. ModelSim のプロジェクトを生成する

チェックが入っているか確認

3. Generate をクリック

Page 89: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

89

Nios II を動かしてみよう(12) • ExitをクリックしQuatrusIIに戻ります

• ここからは生成したVerilog をQuartus II で合成し

FPGAのダウンロードデータを生成します

• 評価版はNios IIのverilogを直接読み書きできないので

回路図エディタから設計します– File -> New をクリックし, Block Diagram/Schematic File を選択し

てください

Page 90: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

90

Nios II を動かしてみよう(13) – 回路図エディタをダブルクリックしてください

– シンボルウィンドウが開くので

Libraries -> Project -> NiosII_Coreを

選択し

OKを押します(NiosII_Coreは先ほど指定したシステム名です)

1. 回路図エディタをダブルクリック

2. Libraries->Project->NiosII_Coreを選択

3. シンボル図が現れる

4. OKをクリック

Page 91: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

91

Nios II を動かしてみよう(14) • Nios II を適当な場所に配置し, 入力ピンを接続します

– 空き部分をダブルクリックし, Symbol ウィンドウを開きます

– Libraries->c:/altera/quartus60/..->primitives->pin->inputを選択し

てください

1. ダブルクリック

2. pin -> inputを選択

Page 92: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

92

Nios II を動かしてみよう(15) • clk の線にピンの端がつながるように配置してください

• 同様に入力ピンをreset_nに接続します– ピンを選択して, Copy -> Paste で貼り付けることもできます

Page 93: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

93

Nios II を動かしてみよう(16) • 出力にもoutputピンを接続してください

• ピンの名前と信号線幅を設定します– pin_name (clkに接続しているピン)を右クリックし,

Propertiesを選択します(図1)– Pin PropertiesウィンドウのPin nameに"CLOCK_50"を入力します(図2)

図1:Propertiesを選択 図2: ピンの名前を設定

Page 94: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

94

Nios II を動かしてみよう(17) • 同様にKEY[0](reset_nへ), LEDG[7..0](outputへ)

を設定します

• 回路図エディタでは複数ビット幅を[n..0]で指定します

(verilog では [n:0]signalで指定していました)

KEY[0]に設定

LEDG[7..0]に設定

Page 95: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

95

Nios II を動かしてみよう(18) • 回路図を保存し, コンパイルを行います

(おそらくトップモジュールとして認識するため, デフォルトの

保存名がトップモジュール名.bdfになるはず)• コンパイル終わったらピンをFPGAに割り当ててください

(加算機の設計で説明した方法で)• ピン配置が終わったら, もう一度コンパイルを行ってください.

コンパイルが成功すれば, QuartusIIを使ったハードウェアの

設計は終わりです!

• 次は NiosII IDEを使ってソフトウェアを設計していきましょう

Page 96: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

96

Nios II を動かしてみよう(19) • Nios II IDE を起動します

– work space の場所を確認してくるので

OK を選択します

– work space とはプロジェクトやライブラリを置くディレクトリのことです

• 初めにプロジェクトを作成します– File -> New -> Project を選択します

Page 97: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

97

Nios II を動かしてみよう(20)

1. C/C++ Applicationを選択してください

2. プロジェクト名を設定します(ここでは"sample_project"とします)

3. 先ほど設計したシステムを読み込みます

4. "Hello World Small"を選択

Browse をクリックして先ほどQuartus II 上で設計した

プロジェクトのフォルダ内の**.ptfを指定

5. Finish をクリック

Page 98: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

98

Nios II を動かしてみよう(21)• まず, ビルドを行ってシステムライブラリを構築します

1. 右クリック

-> Build project を選択してください

Page 99: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

99

Nios II を動かしてみよう(22)• 以下のように

hello_world_small.c を変更してください

Page 100: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

100

Nios II を動かしてみよう(23)• 入力が終わりましたら, コードを保存

してください

• そしてもう一度ビルドを行ってください– やりかたはさきほどと同じです

• ビルドが完了したら左にあるC/C++ Project タブ内の

system.h をダブルクリックしてください

Page 101: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

101

Nios II を動かしてみよう(24)• system.h の中身が真ん中のエディタ部に表示されます

• PIO_0_BASE はSOPC Builder で設定したLEDにアクセス

するためのアドレスです

• system.h をインクルードすることでこれらの変数にアクセス できます

Page 102: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

102

Nios II を動かしてみよう(25)• では実際に FPGA 上で動作させてみましょう

• まず, Nios II を含むコンフィギュレーションデータをFPGAに 転送しなければなりません

– Tools -> Quartus II Programmer を選択してください

– Programmer が起動しますので Add File.. で

**.sofを選択し,Program にチェックをつけてから

Start をクリックします

1.

2.

3.

4.

Page 103: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

103

Nios II を動かしてみよう(23)• あとはソフトウェアをFPGAに転送すればおしまいです!

– プロジェクト名を右クリック

-> Run As -> Nios II Hardware を選択し

てください

Page 104: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

104

Nios II を動かしてみよう(23)• もしエラーが出る場合はJTAGの設定が行われていないかも

しれません– Run -> Run.. をクリックしてください

– Runウィンドウが起動しますのでUSB-Blasterが選択されているか

確認し, Runボタンをクリックしてください

Page 105: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

105

ここまでのまとめ

• SOPC Builder, Quartus II, Nios II IDEを使ってNios IIを設 計し, 簡単なプログラムを動作させました

• ブロック図エディタを使ってシステムを設計しました

• 課題:– プログラムを改造してLEDをいろいろ点滅させてみましょう

Page 106: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

106

Nios II を拡張してみよう(1)• LEDだけでは面白くないので7SEGを使ってみます

• Quartus II を起動し, さきほど設計したプロジェクトを開き

SOPC Builder を起動してください

Quartus II を起動 SOPC Builder を起動

Page 107: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

107

Nios II を拡張してみよう(2)• 左のコンポーネントリストから以下のものを追加してください

– PIO: output, 32bit -> SEVEN_SEGMENT にRename– PIO: input, 18bit -> DPSW に Rename

• 追加し, Renameが終わったら, ベースアドレスを更新します– System -> Auto-Assign Base Addressesを選択してください

• System Generation タブをクリックし, Generate をクリックし てください. SOPC Builder での作業はおしまいです.

Page 108: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

108

Nios II を拡張してみよう(3)• QuatrusII に戻り, NiosII の回路図を右クリックして

Update Symbol or Block を選択してください

Page 109: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

109

Nios II を拡張してみよう(4)• Nios II が更新されます. 新しいポート名がさきほどSOPC

Builder で設定したポート名になっているか確認してください

• ポートの接続を行ってください. ただし, SEVEN_SEGMENTの接続だけは行わないでください.

Page 110: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

110

Nios II を拡張してみよう(5)• 加算機の設計でも述べましたが、7SEGは4bitの数値データを

入力して7ビットのSegmentデータに変換する回路が必要です

• "加算機の設計"で使用した

7segmentのデータに変換する verilog を現在のプロジェクトにコピーしてください

– CD-ROM¥DE2¥DE2_demonstrations¥DE2_Default にある

SEG7_LUT.v, SEG_LUT.v をコピーしてもよい

• 次にこれらのファイルをプロジェクトに取り込みます– Entity を右クリック

-> Settings ->Files -> Add All を選択してください

Page 111: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

111

Nios II を拡張してみよう(6)• verilog ファイルを開き, 回路図に変換します

– ファイルを開くアイコン

をクリックし, SEG7_LUT_8.vを開いてください

• SEG7_LUT_8.v がエディタに現れている状態で– File -> Create/Update -> Create Symbol Files for Current File を選

択してください

Page 112: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

112

Nios II を拡張してみよう(7)• 再びNios IIを設計している回路図を開きます

• 空きスペースをダブルクリックすると・・

Project 内に先ほどの verilog の回路図が追加されている!

Page 113: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

113

Nios II を拡張してみよう(8)• このモジュールをNios IIに接続し, ピンを接続してください

– 出力ピン名を7SEGと同じ名前にするとピン割当てが不要になる!

• verilog を書き直した場合, 該当するブロックを右クリックし

Update Symbol or Block を選択すれば更新できます

Page 114: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

114

Nios II を拡張してみよう(9)• 再度コンパイルを行ってください

• 次はソフトウェアの設計します

• Nios II IDE を起動してください

• 新規プロジェクトを作成します– プロジェクト名: SEGMENT– CPU: さきほど設計したディレクトリにある***.ptfを選択

– テンプレート: hello world small

• プロジェクトを作成したら、ビルドを行ってください

Page 115: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

115

Nios II を拡張してみよう(9)• 以下のプログラムを入力して動作させてみましょう

– 動作:Programmer でNios IIをFPGAに転送、Run を行う

Page 116: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

116

ここまでのまとめ

• Nios II にverilog で設計した回路を組込み動作させました

• 入出力を扱ってみました

• 課題:– プログラムを改造して7SEGの表示をいろいろ変えてみましょう

Page 117: Altera CycloneII評価ボードの チュートリアル資料 · PDF file2 本ドキュメントの構成 1. QuartusII version 6.0の使用法 2. Altera DE2ボードの各パーツについて

117

おわりに

• 本ドキュメントに対する質問・要望、およびバ グを見つけたら

nakahara at aries01.cse.kyutech.ac.jpまで連絡をください