verilog-hdl講習会_de0編(15-1)組込みプロセッ · pdf file1 verilog-hdl...
TRANSCRIPT
1
Verilog-HDL 講習会DE0編(15-1) 組込みプロセッサNiosIIの使い方
ハードウェア編 5, August, 2013 鹿児島大学 中原 啓貴
【準備】Altera University Program Installer for Quartus II 13.0 をインストール
2
http://www.altera.com/education/univ/software/upds/unv-upds.html から Version 13.0 用のUniversity Program Installer をダウンロード・インストール
3
• ピン配置が面倒くさいので、デフォルトのプロジェクトを読み込みましょう! (DE0に限った事ではないが、Terasic製品はサンプルCD-ROMの プロジェクトを改変するのが楽でお勧め)
DE0付属のCD-ROM ”Demonstrations”内の "DE0_Top"フォルダの ファイル全てを C:¥verilog¥DE0_tutorial_15_Hello_NiosII¥ 内にコピー
DE0_TOP.qpfをダブルクリックしてQuartus IIを起動
4
Pin Plannerを開いてみると ピン配置が終わっている!
5
Quartus IIの Toolsから Qsysをクリックして Qsysを起動する
Qsysとは • Altera社が提供しているシステム統合ツール • こんな複雑なシステムを簡単に作れる!
6
Avalon バス
Nios II/e JTAG UART
SDRAM Controller
UART Serial Timer GPIO GPIO
Clock (50MHz)
Reset
University Programが インストールされているかチェック
7
はじめに行う作業 • Avalonバスに部品(ペリフェラル)を取り付ける
8
Avalon バス
Clock (50MHz)
Reset
9
Embedded Processorsから
Nios II Processorを選択
Addをクリック
10
Nios II/eを選択して Finishをクリック Nios II/eは無償(フリー)で使える プロセッサです
Nios II/eが追加されます
11
つまり • この状態になった! • スレーブのペリフェラルを取り付けていこう
12
Avalon バス
Nios II/e JTAG UART
Clock (50MHz)
Reset
13
Interface Protocols から
Serialを選択
Addをクリック
JTAG UARTを選択
デフォルトの設定の まま FInish
14
Addをクリック
UART RS232 Serial Port を選択
ボーレート設定後, FInish
ボーレート(bps)を9600 に設定
15
Memories and Memory Controllers から External Memory Interfaces を選択
16ビット に設定
Addをクリック
SDRAM Interfacesから SDRAM Controllerを選択
DE0ボードと 同じになっているか 確認
設定後, FInish
SDRAMコントローラの名前を変更
16
追加した SDRAM Controllerの 名前(new_sdram_controller)を 右クリックして Rename を選択
sdramに変更
17
Peripherals から Debug and Performance を選択
Performance Counter Unit を選択
Addをクリック
デフォルトの設定の まま FInish
18
デフォルトの設定の まま FInish
Peripherals から
Microcontroller Peripherals の Interval Timer を選択
Addをクリック
19
Microcontroller Peripherals の PIO Parallel IO を選択
Addをクリック
32ビットに 設定
Outputに 設定
設定後, FInish
20
SDRAMコントローラと 同じく, 名前を変更. 今回は GPIO32_OUTと しましょう
21
Microcontroller Peripherals の PIO Parallel IO を選択
Addをクリック
32ビットに 設定
Inputに 設定
設定後, FInish
22
今回は GPIO32_INと Renameする
23
University Programの Clock Signals for DE-series Board Peripheralsを選択
Addをクリック 設定後, FInish
DE0を 選択
Video のチェックを 外す!!
24
今回は clocksと Renameする
25
クリック
次に, 各ペリフェラルを Avalon バスを介して接続します. この設定はよく間違えやすいので 慎重に確認しながら行って下さい. まずは, DE0ボードのクロック (50MHz) を先程生成した University Programコアの Clock生成ペリフェラル (PLLを用いている) に接続しましょう. 他のペリフェラルはクロック生成 ペリフェラルから生成するクロックを 使います.
26
クロック生成ペリフェラルから 生成するクロックを残りのペリフェラルの clkに接続します.
クリック
27
リセット信号を供給します. リセットを制御するのは DE0ボードの押しボタン (BUTTON)と JTAG UARTデバッガ (DE0に接続している USB経由で制御するPC上のプログラム) なので, バス上で共有します.
28
Nios II(マスター)からのデータ信号を スレーブ・ペリフェラルに接続します.
29
Nios II(マスター)からの 命令 (instruction)信号を スレーブ・ペリフェラルである SDRAMコントローラだけに接続します.
30
ダブルクリックして uart_0と入力
設計したシステムを Quartus II上の Verilog-HDLで編集しますので, Verilog-HDLファイルへ出力する ように設定します. この設定を行うのは, 外部のハードウェアやボードの信号線と接続しているペリフェラルだけです.
UART RS232
31
SDRAMコントローラは sdram_wire
GPIO32_OUTは gpio32_out (小文字に強制変換される)
GPIO32_INは gpio32_in
Clock生成ペリフェラルは sdram_clk に設定
割り込み番号の設定も行う (後日説明します)
32
ダブルクリックすると 入力できる
jtag_uart_0は 5 に設定
uart_0は 8 に設定
timer_0は 6 に設定
Nios II/e はメモリマップドIOなのでベースアドレスを自動設定します
33
34
ベースアドレスが 設定されるので 確認する
Nios II/eにメモリの番地を教えましょう
35
nios2_qsys_0を ダブルクリック
Reset Vectorで Reset vector memoryを sdram.s1 に設定
36
同様に, Exception Vector もsdram.s1 に設定
これで設定は終わりです. お疲れ様でした.
37 全ての設定が終わると, MessagesのErrorとWarning が消える (ErrorとWarningがなくならないと, 正しく動作しない)
設計したシステム(のVerilog-HDL等)を生成します
38
Generationタブをクリック
Generate をクリック
初めての設計時は Qsysファイルを保存します
39
Save をクリック
Hello_NiosII_system
ファイル名を入力して 保存をクリック
Generate Completed が 表示されれば終了です
40
Close をクリック
41
HDL Examples をクリック
Copy をクリック
今から Quartus II上で ハードウェア生成を 行います. まずは, Qsysの テンプレートを コピーしましょう. 終わったら, Quartus IIに 戻って下さい. (Qsysを閉じてもかまいません)
42
Quartus II上で開いている DE0_TOP.v にコピペして, 信号線を入力
先程Qsysで保存した設定ファイル (.qsys)をQuartus IIに読み込みます
43
Project naviagtor で DE0_TOPを 右クリック
Settings ... をクリック
44
Categoryで で Filesを選択 クリック
先程作成した Qsys設定ファイル (Hello_NiosII_system.qsys)を 選択
開くをクリック
45
Add Allを クリック
OKをクリック
コンパイルを行う
46
「保存アイコン」を クリックして保存
「コンパイルアイコン」を クリックして コンパイルを行う
コンパイル後、このウインドウが 表示されればOK
今回は結構リソースを食います
47
Programmer経由で FPGAをプログラム
48
次行ってみよう! • 次は Nios II EDS を使ったソフトウェア設計をしましょう
49