と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008...

73
1 MieruPC Project MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPC MieruPC - - 2008 2008 ハードウェアのセットアップ ハードウェアのセットアップ と動作確認 と動作確認 Version 2009 Version 2009 - - 02 02 - - 24 24 吉瀬謙二 吉瀬謙二 (東京工業大学) (東京工業大学)

Transcript of と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008...

Page 1: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

1MieruPC Project

MieruPC-2008 ハードウェアのセットアップ

と動作確認

MieruPCMieruPC--2008 2008 ハードウェアのセットアップハードウェアのセットアップ

と動作確認と動作確認

Version 2009Version 2009--0202--24 24 吉瀬謙二吉瀬謙二 (東京工業大学)(東京工業大学)

Page 2: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

2MieruPC Project

知識ユニット

• MieruPC-2008 ハードウェアのセットアップ(10分)

• MieruPC-2008 ハードウェアの動作確認(10分)

このスライドは,講義および演習などのために自由に利用することができます.ただし,スライドに含まれる画像などの取り扱いには注意してください.

Page 3: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

3MieruPC Project

MieruPC-2008の内容

電源ケーブル

USB電源ケーブル

SDカードディスプレイケーブル

キーボード

本体とディスプレイ

Page 4: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

4MieruPC Project

添付される2枚のSDカードについて

• アプリケーションのシールが添付されたSDカード1枚

– アプリケーションが保存されています.MieruPC-2008に挿入して実行を確認してください.

• シールが添付されていないSDカード1枚

– データが保存されていないSDカードです.

– アプリケーションは保存されていません.作成したアプリケーションをコピーしてご利用ください.

• MieruPC-2008では8MBのSDカードのみが利用可能です.

Page 5: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

5MieruPC Project

(1) ディスプレイケーブルを接続しましょう.

Page 6: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

6MieruPC Project

(2) 電源ケーブルを接続しましょう.

• 電源ケーブルには,コンセントに接続するタイプと,USBに接続するタイ

プに2種類があります.どちらも同様に電源を供給できます.

• ノートPCなどから電源を取るためにUSBタイプを利用すると便利です.

Page 7: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

7MieruPC Project

(3) スイッチオン

電源スイッチ

リセットボタン

7

Page 8: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

8MieruPC Project

(4) アプリケーションの入ったSDカードを挿入

リセットによりアプリケーションが起動(製品版には特別ゲームが付属)

キーボードコネクタ(キーボード入力が必要な場合には接続)

Page 9: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

9MieruPC Project

本体とディスプレイは固定できます

• 付属のネジとナットを使って,本体とディスプレイを固定できます.強くネジを締めすぎないでください.

Page 10: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

10MieruPC Project

FPGA開発のためのMieruPC-2008 ハード

ウェアのセットアップ

FPGAFPGA開発のための開発のためのMieruPCMieruPC--2008 2008 ハードハード

ウェアのセットアップウェアのセットアップ

Version 2009Version 2009--0505--14 14 吉瀬謙二吉瀬謙二 (東京工業大学)(東京工業大学)

Page 11: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

11MieruPC Project

知識ユニット

• FPGA開発のためのMieruPC-2008 ハードウェアのセット

アップ(20分)

– MieruPC-2008に搭載されているFPGA (Field Programmable Gate Array) に独自開発の回路をコンフィ

ギュレーションする場合に必要となる設定です.

– CPUの構成変更やFPGA開発が必要ではない場合にはこの

設定は不要です.

このスライドは,講義および演習などのために自由に利用することができます.ただし,スライドに含まれる画像などの取り扱いには注意してください.

Page 12: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

12MieruPC Project

Digilent USBケーブルと接続ケーブル

• Digilent USBケーブル (左)

– パソコンのUSB端子とFPGAとを接続するケーブルです.

– 精密機械です.取り扱いに十分注意してください.

• MieruPC-2008用の接続ケーブル(右)

– Digilent USBケーブルをMieruPC-2008のFPGAに接続するため

の変換ケーブルです.

Digilent USBケーブル

MieruPC-2008用の接続ケーブル

Page 13: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

13MieruPC Project

コンフィギュレーション用ケーブルの接続

• Digilent USBケーブルのVDDとMieruPC-2008用の接続

ケーブルの赤い線が揃う様に接続します(下図参照).

• MieruPC-2008用の接続ケーブルをSUZAKUに図の様に

接続します.

Page 14: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

14MieruPC Project

オプションのSUZAKU JP2 の設定

• この作業は通常は必要ありません.

– 電源投入後にSPIフラッシュメモリから自動でFPGAにコンフィギュレーションすることを禁止したい(電源投入後にMieruPCのコンフィギュレーションを停止したい)場合には,SUZAKU JP2 をショートしてください.

– 具体的には,JP2 にジャンパーピンを取り付けます.

Page 15: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

15MieruPC Project

コンフィギュレーション用ケーブルを接続の補足

• コンフィギュレーション用ケーブルを接続するためには,MieruPC-2008基板をケースから取り外す必要があります.

• ケース裏の4つのネジを外して,基板をケースから取り出して作業をおこなってください.

Page 16: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

16MieruPC Project

SUZAKUのLEDを点滅させる (sample01)SUZAKUSUZAKUののLEDLEDを点滅させるを点滅させる (sample01)(sample01)Version 2009Version 2009--0505--13 13

吉瀬謙二吉瀬謙二 (東京工業大学)(東京工業大学)

Page 17: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

17MieruPC Project

知識ユニット

• Xilinx ISE の使い方の基礎 (30分)

• Verilog HDL記述の基礎 (10分)

• Digilent ExPortの使い方の基礎 (10分)

• MieruPCを用いた動作検証の基礎 (10分)

• 演習 (30分)

Xilinx ISE, Digilent ExPort のインストールが終了していること.MieruPC-2008とコンフィギュレーションケーブルの設定が終わっていること.

このスライドは,講義および演習などのために自由に利用することができます.ただし,スライドに含まれる画像などの取り扱いには注意してください.

Page 18: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

18MieruPC Project

Xilinx ISEにてプロジェクトを新規作成(1)

• Xilinx ISEを起動する.

• File -> New Project

Page 19: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

19MieruPC Project

Xilinx ISEにてプロジェクトを新規作成(2)

• New Project Wizard が起動する.

• この画面にてプロジェクト名 sample01 を指定

Page 20: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

20MieruPC Project

Xilinx ISEにてプロジェクトを新規作成(3)

• デバイス名などを正しく設定する.

Page 21: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

21MieruPC Project

Xilinx ISEにてプロジェクトを新規作成(4)

• ソースコードは後に追加するのでここでは設定しなくてよい.

Page 22: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

22MieruPC Project

Xilinx ISEにてプロジェクトを新規作成(5)

• 確認画面.Finish をクリックする.

Page 23: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

23MieruPC Project

Xilinx ISEにてプロジェクトを新規作成(6)

• xc3s1200e-4fg430 として登録される.

Page 24: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

24MieruPC Project

Verilog HDLソースコード main.v の追加 (1)

• Project -> New Source

Page 25: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

25MieruPC Project

Verilog HDLソースコード main.v の追加 (2)

• テキストエディタにて記述するので,ここでポート名などを追加しなくてもよい.

Page 26: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

26MieruPC Project

Verilog HDLソースコード main.v の追加 (3)

• main.v が追加される.

Page 27: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

27MieruPC Project

Verilog HDLソースコード main.v の編集(1)

module main(CLK, ULED);input CLK;output ULED;reg [31:0] cnt;assign ULED = cnt[20];

always @(posedge CLK) begincnt <= cnt + 1;

endendmodule

CLKは,3.6864MHz の入力クロックULEDは,ユーザ制御のLED

Page 28: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

28MieruPC Project

Verilog HDLソースコード main.v の編集(2)

• ソースコードを記述

Page 29: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

29MieruPC Project

UCFファイル main.ucf の追加 (1)

• Project -> New Source

Page 30: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

30MieruPC Project

UCFファイル main.ucf の追加 (1)

• Implementation Constraints File(UCFファイル)を選択する.

• ファイル名 main.ucf を指定する.

Page 31: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

31MieruPC Project

UCFファイルの編集(1)

• main (main.v) の左の + をクリックすることで,main.ucf が

現れる.

Page 32: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

32MieruPC Project

UCFファイルの編集(2)

• User Constraints の左の + をクリックすることで,Edit Constraints (Text) が表示される.

Page 33: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

33MieruPC Project

UCFファイルの編集(3)

• Edit Constraints (Text) をダブルクリックして編集する.

• エディタ画面にて,CLK, ULED のピンを指定する.

Page 34: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

34MieruPC Project

論理合成,実装,プログラミングファイルの作成

• main (main.v) を選択する.

• Generate Programming File をダブルクリックする.

– プログラミングファイルの作成,時間を要することがある.

Page 35: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

35MieruPC Project

FPGAのコンフィギュレーション(1)

• Digilent ExPort を起動する.

• Initialize Chain でデバイス (XC3S1200E) を認識する.

エラーが表示される場合には,ハードウェアの接続,電源が投入されているか,などを確認すること.

Page 36: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

36MieruPC Project

FPGAのコンフィギュレーション(2)

• Browse -> main.bit を選択

• はい (Y) を選択

Page 37: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

37MieruPC Project

FPGAのコンフィギュレーション(3)

• コンフィギュレーションが完了する.エラーが表示される場合には,ハードウェアの接続などを確認すること.

Page 38: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

38MieruPC Project

MieruPCを用いた動作検証

• FPGAボード(SUZAKU)の赤色LED(発光ダイオード,Light Emitting Diode)が点滅する.

Page 39: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

39MieruPC Project

演習問題(1)

module main(CLK, ULED);input CLK;output ULED;reg [31:0] cnt;assign ULED = cnt[21];

always @(posedge CLK) begincnt <= cnt + 1;

endendmodule

Verilog HDLの記述を右に変更するとLEDの点滅はどのように変化するか.

修正して確認すること.

Page 40: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

40MieruPC Project

演習問題(2)

• 入力のクロックは 3.6864MHz である.

• 1秒の周期でLEDが点滅を繰り返す様にVerilog HDLを修

正せよ.

• ハードウェアを用いて,点滅の周期が正しいことを検証せよ.

Page 41: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

41MieruPC Project

GPIOを用いたLEDの点滅 (sample02)GPIOGPIOを用いたを用いたLEDLEDの点滅の点滅 (sample02)(sample02)Version 2009Version 2009--0505--13 13

吉瀬謙二吉瀬謙二 (東京工業大学)(東京工業大学)

Page 42: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

42MieruPC Project

知識ユニット

• MieruPC-2008 GPIOの使い方の基礎 (20分)

• シンプルな拡張ボードの実装 (20分)

「SUZAKUのLEDを点滅させる (sample01)」 を学習済みであること.

このスライドは,講義および演習などのために自由に利用することができます.ただし,スライドに含まれる画像などの取り扱いには注意してください.

Page 43: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

43MieruPC Project

MieruPC-2008の汎用I/O (GPIO)

• 16本のGPIO, VDD 5.0V, VCC 3.3V, GND

GPIO[1]GPIO[3]

GPIO[5]

GPIO[7]

GPIO[9]

GPIO[11]

GPIO[13]

GPIO[15]

VDD 5.0V VCC 3.3V

GNDGND

GPIO[2]GPIO[4]

GPIO[6]

GPIO[8]

GPIO[10]

GPIO[12]

GPIO[14]

GPIO[16]

Page 44: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

44MieruPC Project

UCFファイル main.ucf の編集

#### GPIO(CPU) ####NET GPIO[1] LOC="N5"; # SUZAKU CON2-07NET GPIO[2] LOC="N4"; # SUZAKU CON2-08NET GPIO[3] LOC="M6"; # SUZAKU CON2-09NET GPIO[4] LOC="M5"; # SUZAKU CON2-10NET GPIO[5] LOC="M3"; # SUZAKU CON2-11NET GPIO[6] LOC="M4"; # SUZAKU CON2-12NET GPIO[7] LOC="L5"; # SUZAKU CON2-13NET GPIO[8] LOC="L6"; # SUZAKU CON2-14NET GPIO[9] LOC="L4"; # SUZAKU CON2-15NET GPIO[10] LOC="L3"; # SUZAKU CON2-16NET GPIO[11] LOC="L2"; # SUZAKU CON2-17NET GPIO[12] LOC="L1"; # SUZAKU CON2-18NET GPIO[13] LOC="C9"; # SUZAKU CON2-20NET GPIO[14] LOC="D9"; # SUZAKU CON2-22NET GPIO[15] LOC="K5"; # SUZAKU CON2-23NET GPIO[16] LOC="K6"; # SUZAKU CON2-24

• 汎用I/O(GPIO)は GPIO[16:1] として利用する.

• main.ucf を編集して以下を追加する.

Page 45: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

45MieruPC Project

MieruPC-2008の汎用I/O (GPIO)

• GPIO[11] を 0V に設定する.

• GPIO[15] を制御することでLEDを点滅させる.

GPIO[1]GPIO[3]

GPIO[5]

GPIO[7]

GPIO[9]GPIO[11]

GPIO[13]

GPIO[15]

VDD 5.0V VCC 3.3V

GNDGND

GPIO[2]GPIO[4]

GPIO[6]

GPIO[8]

GPIO[10]

GPIO[12]

GPIO[14]

GPIO[16]

LED

300Ω程度

Page 46: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

46MieruPC Project

Verilog HDLソースコード main.v の編集

module main(CLK, ULED, GPIO);input CLK;output ULED;output [16:1] GPIO;reg [31:0] cnt;assign ULED = cnt[20];

assign GPIO[11] = 0;assign GPIO[15] = cnt[19];

always @(posedge CLK) begincnt <= cnt + 1;

endendmodule

sample01 の main.v をベースに修正.

CLKは,3.6864MHz の入力クロックULEDは,ユーザ制御のLEDGPIOは,汎用I/O

Page 47: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

47MieruPC Project

論理合成,実装,プログラミングファイルの作成

• sample01 をベースに main.v と main.ucf を編集し,プロ

グラミングファイルを作成する.

Page 48: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

48MieruPC Project

MieruPCを用いた動作検証

• ユニバーサル基板を用いて拡張ボードを実装する.

拡張ボード(表)

拡張ボード(裏) コンフィギュレーションして動作確認をおこなう.

Page 49: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

49MieruPC Project

リセット付きのLED点滅回路 (sample03)リセット付きのリセット付きのLEDLED点滅回路点滅回路 (sample03)(sample03)Version 2009Version 2009--0505--13 13

吉瀬謙二吉瀬謙二 (東京工業大学)(東京工業大学)

Page 50: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

50MieruPC Project

知識ユニット

• MieruPC-2008 リセットスイッチの使い方 (20分)

「SUZAKUのLEDを点滅させる (sample01)」 を学習済みであること.

このスライドは,講義および演習などのために自由に利用することができます.ただし,スライドに含まれる画像などの取り扱いには注意してください.

Page 51: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

51MieruPC Project

UCFファイル main.ucf の編集

NET RST_X LOC="A14";

• リセット信号 RST_X を追加する.

Page 52: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

52MieruPC Project

Verilog HDLソースコード main.v の編集

module main(CLK, RST_X, ULED);input CLK;input RST_X;output ULED;reg [31:0] cnt;assign ULED = cnt[20];

always @(posedge CLK or negedge RST_X) beginif(!RST_X)

cnt <= 0;else

cnt <= cnt + 1;end

endmodule

sample01 の main.v をベースに修正.

CLKは,3.6864MHz の入力クロックULEDは,ユーザ制御のLEDRST_Xは,リセット信号

Page 53: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

53MieruPC Project

MieruPCを用いた動作検証

• FPGAボード(SUZAKU)の赤色LED(発光ダイオード,Light Emitting Diode)が点滅する.

• リセットスイッチを押すと,リセットされ,LEDが点灯する.

Page 54: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

54MieruPC Project

ブザーの取り付けと利用方法 (sample06)ブザーの取り付けと利用方法ブザーの取り付けと利用方法 (sample06)(sample06)Version 2009Version 2009--0505--26 26

吉瀬謙二吉瀬謙二 (東京工業大学)(東京工業大学)

Page 55: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

55MieruPC Project

知識ユニット

• ブザーと抵抗の取り付け (20分)

• ブザーの使い方 (20分)

このスライドは,講義および演習などのために自由に利用することができます.ただし,スライドに含まれる画像などの取り扱いには注意してください.

Page 56: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

56MieruPC Project

ブザーの取り付け(オプションです)

• MieruPCのマザーボードにはブザーを取り付けることができます.

– 秋月電子商会 電子ブザー [HDB06LFPN] を想定しています.

– 33Ω程度の抵抗が必要です.

• 33Ω程度の抵抗を接続してください.

• ブザーを取り付けます.極性があるので注意してください.下図では,右がプラス,左がマイナスです.

+-

Page 57: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

57MieruPC Project

Verilog HDLソースコード main.v と ucfファイル

module main(CLK, RST_X, ULED, BUZ);input CLK;input RST_X;output ULED;output BUZ;

reg [31:0] cnt;assign ULED = cnt[20];assign BUZ = cnt[20] & cnt[19] & cnt[18] & cnt[17];

always @(posedge CLK or negedge RST_X) beginif(!RST_X)

cnt <= 0;else

cnt <= cnt + 1;end

endmodule

NET CLK LOC="U10"; NET RST_X LOC="A14"; NET ULED LOC="T3"; NET BUZ LOC="K12";

BUZを1とすることでブザーが鳴ります.

Page 58: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

58MieruPC Project

PS/2キーボードからの入力 (sample04)PS/2PS/2キーボードからの入力キーボードからの入力 (sample04)(sample04)Version 2009Version 2009--0505--25 25

吉瀬謙二吉瀬謙二 (東京工業大学)(東京工業大学)

Page 59: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

59MieruPC Project

知識ユニット

• PS/2接続キーボード(シリアル転送)の理解 (60分)

• シンプルなキーボードモジュールの実装 (60分)

このスライドは,講義および演習などのために自由に利用することができます.ただし,スライドに含まれる画像などの取り扱いには注意してください.

Page 60: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

60MieruPC Project

PS/2キーボードコネクタ(Mini-DIN 6ピン)

• 1 : KEY_IN• 3 : GND• 4 : 5V• 5 : KEY_CLK

1 (KEY_IN)2

3 (GND)

4 (5V)

5 (KEY_CLK)

6

4 (5V) 3 (GND)

1 (KEY_IN)5 (KEY_CLK)

Page 61: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

61MieruPC Project

PS/2キーボードからシステムへの信号

St(0) D0 D1 D2 D3 D4 D5 D6 D7 Pa Sp(1)

• KEY_CLK, KEY_IN はキーボードが生成する点に注意.

• 入力データはクロックの立ち下がりで取得する.

KEY_CLK

KEY_IN

Page 62: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

62MieruPC Project

Ps2keyboardモジュールのタイミングとインタフェース

St(0) D0 D1 D2 D3 D4 D5 D6 D7 Pa Sp(1)

KEY_CLK

KEY_IN

dataKEY_DOUT

KEY_READY

negedge ps2_clock

PS2KBD

module PS2KBD01(RST_X, KEY_CLK, KEY_IN, KEY_DOUT, KEY_READY)input RST_X, KEY_CLK, KEY_IN;output [7:0] KEY_DOUT;output KEY_READY;

RST_XKEY_CLKKEY_IN

KEY_DOUTKEY_READY

Page 63: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

63MieruPC Project

Verilog HDLソースコード main.v の編集

module main(CLK, RST_X, ULED, KEY_IN, KEY_CLK);input CLK;input RST_X;input KEY_IN; // Keyboard input datainput KEY_CLK; // Keyboard input clockoutput ULED;

reg led;

wire key_ready;wire [7:0] key_dout;assign ULED = led;

always @(posedge CLK or negedge RST_X) beginif(!RST_X) led <= 0;else if(key_ready) begin

if(key_dout==8'h1c) led <= 1; // 'A' is pushedif(key_dout==8'h32) led <= 0; // 'B' is pushed

endend

PS2KBD01 ps2kbd(RST_X, KEY_CLK, KEY_IN, key_dout, key_ready);endmodule

Page 64: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

64MieruPC Project

Verilog HDLソースコード keyboard.v の編集

mod

ule

PS2K

BD01

(RST

_X, K

EY_C

LK, K

EY_I

N, K

EY_D

OU

T, K

EY_R

EAD

Y);

inpu

t RS

T_X

, KEY

_CLK

, KEY

_IN

;ou

tput

[7:0

] KEY

_DO

UT;

outp

ut K

EY_R

EAD

Y;

reg

KEY_

REA

DY;

re

g[7

:0] K

EY_D

OU

T;re

g[4

:0] d

ata_

cnt;

alwa

ys @

(neg

edge

RST_

X o

r ne

gedg

eKE

Y_CL

K) b

egin

if (!

RST_

X) b

egin

KEY_

REA

DY

<= 0

;

KE

Y_D

OU

T <=

0;

data

_cnt

<= 0

;en

del

se b

egin

if (d

ata_

cnt=

=0 &

& KE

Y_IN

==0)

beg

in /

/ st

art

bit

data

_cnt

<= 1

;en

dif

(dat

a_cn

t!=0

) beg

in

if (d

ata_

cnt<

9) b

egin

//

rece

ive

8 bi

t da

taKE

Y_D

OU

T <=

{KEY

_IN

, KEY

_DO

UT[

7:1]

};da

ta_c

nt<=

dat

a_cn

t+

1;en

d el

se if

(dat

a_cn

t==9

&&

KEY_

DO

UT!

=8'h

f0) b

egin

//p

arit

yda

ta_c

nt<=

dat

a_cn

t+

1;KE

Y_RE

AD

Y <=

1;

end

else

if (d

ata_

cnt=

=10

&& K

EY_D

OU

T!=8

'hf0

) beg

in /

/ st

op b

itda

ta_c

nt<=

0;

KEY_

REA

DY

<= 0

;en

del

se if

(dat

a_cn

t==2

1) d

ata_

cnt

<= 0

; //

for

brea

k co

deel

se d

ata_

cnt

<= d

ata_

cnt

+ 1;

end

end

end

endm

odul

e

Page 65: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

65MieruPC Project

UCFファイル main.ucf の編集

NET CLK LOC="U10"; NET ULED LOC="T3"; NET RST_X LOC="A14";

NET KEY_IN LOC="A16" | IOSTANDARD=LVTTL | SLEW=SLOW; NET KEY_CLK LOC="C14" | IOSTANDARD=LVTTL | SLEW=SLOW; NET KEY_CLK CLOCK_DEDICATED_ROUTE = FALSE;

Page 66: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

66MieruPC Project

MieruPCを用いた動作検証

• キーボードのAを押すと,FPGAボード(SUZAKU)のLEDが消える.

• キーボードのBを押すと,FPGAボードのLEDが点灯する.

Page 67: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

67MieruPC Project

補足

• PS/2キーボードは,キーが押されたときにメークコードを出

力し,キーが離されたときにブレークコードを出力する.

• if(key_dout==8‘h1c) led <= 1; のコードは,Aのメークコード 8’h1c が得られた時に,LEDの出力を変更する.

• メークコードとアスキーコードは対応しないので注意が必要.

• 実用的なキーボードコントローラとして利用するためには,アスキーコードへの変換,チャタリング対策などが必要です.

Page 68: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

68MieruPC Project

液晶モジュールのテスト (sample05)液晶モジュールのテスト液晶モジュールのテスト (sample05)(sample05)Version 2009Version 2009--0505--25 25

吉瀬謙二吉瀬謙二 (東京工業大学)(東京工業大学)

Page 69: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

69MieruPC Project

知識ユニット

• 液晶モジュールの使い方 (60分)

このスライドは,講義および演習などのために自由に利用することができます.ただし,スライドに含まれる画像などの取り扱いには注意してください.

Page 70: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

70MieruPC Project

Verilog HDLソースコード main.v の編集

`define LCDPUT_WAIT 1000000module main(CLK, RST_X, ULED, LCD);

input CLK, RST_X;output ULED, LCD;

reg [31:0] bcnt; // counter for LCDPUT modulereg [7:0] data; //reg WE;

wire ready;assign ULED = ready;

always @(posedge CLK or negedge RST_X) beginif(!RST_X) begin

WE <= 0;bcnt <= 0;data <= 8'h40;

end else beginbcnt <= bcnt + 1;if(bcnt>`LCDPUT_WAIT && ready) begin

data <= data + 1;WE <= 1;bcnt <= 0;

end else if(WE) WE <= 0;end

end

LCDPUTC lcdc(CLK, RST_X, data, WE, ready, LCD);endmodule

Page 71: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

71MieruPC Project

Verilog HDLソースコード lcdput.v の編集(1)m

odul

e LC

DPU

TC(C

LK, R

ST_X

, DA

TA, W

E, R

EAD

Y, T

XD

);in

put

CLK;

//

inpu

t cl

ock

inpu

t

RS

T_X

; //

inpu

t re

set

inpu

t

W

E;

//

Wri

te E

nabl

ein

put

[7:0

] DA

TA;

outp

ut

RE

AD

Y; /

/ fl

ag t

o in

dica

te t

he m

odul

e is

rea

dy o

rno

tou

tput

TXD

; /

/ Tr

ansm

it e

Xch

ange

Dat

a

reg

REA

DY;

//

reg

init

; //

init

==1

if t

he in

itia

lize

mod

ere

g[5

:0]

pos

; /

/re

g[7

:0]

dou

t; /

/ 1b

yte

asci

idat

a to

be

disp

laye

dre

g[7

:0]

dt;

/

/ da

ta o

ut s

ave

for

DA

TA1

wire

lcd_

read

y;wi

re T

XD

_X;

wi

re [1

35:0

] ini

t_cm

d; /

/ LC

D in

it c

omm

and

assi

gn T

XD

= ‾T

XD

_X;

assi

gn in

it_c

md

= {{

8'h2

7, 8

'h0d

},

/

/ '[

0d]

{8'h

43, 8

'h4c

, 8'h

57, 8

'h0d

}, //

CLW

:

whit

e ch

ar{8

'h44

, 8'h

53, 8

'h30

, 8'h

0d},

// D

S0[0

d]:

{8'h

50, 8

'h53

, 8'h

30, 8

'h0d

}, //

PS0

[0d]

:{8

'h45

, 8'h

52, 8

'h0d

}};

/

/ ER

[0d]

: er

ace

page

alwa

ys @

(pos

edge

CLK

or n

eged

geRS

T_X

) beg

inif

(!RST

_X) b

egin

init

<=

1;RE

AD

Y <=

0;

pos

<=

0;en

d el

se if

(init

==1)

beg

in /

/ in

itia

l com

man

dif

(lcd_

read

y) b

egin

if(p

os< 1

7) b

egin

pos

<= p

os+

1;do

ut<=

init

_cm

d>>

{16-

pos,

3'h

0};

end

else

beg

inin

it <

= 0;

REA

DY

<= 1

;en

den

den

d el

se b

egin

//

disp

lay

one

char

acte

rif

(REA

DY

&& W

E) b

egin

REA

DY

<= 0

;po

s <

= 0;

dt<=

DA

TA;

end

else

if(!R

EAD

Y&&

lcd_

read

y) b

egin

//

HW

'[dt

]'[0

d] t

o pr

int

pos

<= p

os+

1;if

(pos

==0)

dout

<= 8

'h48

; //

Hel

se if

(pos

==1)

dou

t<=

8'h

57; /

/ W

else

if(p

os==

2) d

out

<= 8

'h27

; //

'el

se if

(pos

==3)

dou

t<=

dt;

/

/ da

ta t

o be

dis

play

edel

se if

(pos

==4)

dou

t<=

8'h

27; /

/ '

else

if(p

os==

5) d

out

<= 8

'h0d

; //

[0d]

else

REA

DY

<= 1

;en

den

den

d

LCD

PUT1

B lc

dp1b

(CLK

, RST

_X, ‾

REA

DY,

dou

t, lc

d_re

ady,

TX

D_X

);en

dmod

ule

Page 72: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

72MieruPC Project

Verilog HDLソースコード lcdput.v の編集(2)

`def

ine

LCD

PUT1

B_W

AIT

192

//

3.68

64M

Hz

cloc

k, 1

9200

bps

(368

6400

/192

00=1

92)

mod

ule

LCD

PUT1

B(CL

K, R

ST_X

, WE,

DA

TA, R

EAD

Y, T

XD

);in

put

CLK;

//

inpu

t cl

ock

inpu

t

RS

T_X

; //

inpu

t re

set

inpu

t

W

E;

//

Wri

te E

nabl

ein

put

[7:0

] DA

TA;

// in

put

1byt

e da

taou

tput

REA

DY;

//

flag

to

indi

cate

the

mod

ule

is r

eady

or

not

outp

ut

TX

D;

//

Tran

smit

eX

chan

geD

ata

reg

REA

DY;

reg

TXD

;re

g[7

:0]

mem

; //

buf

fer

to s

ave

the

inpu

t da

tare

g[1

5:0]

wcn

t; /

/ wa

it_c

ycle

_cou

ntre

g[3

:0]

cnt

; //

cou

nter

to

rem

embe

r th

e se

nd d

ata

bit

alwa

ys @

(neg

edge

RST_

X o

r po

sedg

eCL

K) b

egin

if(!R

ST_X

) beg

inRE

AD

Y <=

1; /

/ th

is m

odul

e is

rea

dy.

TXD

<=

1;

end

else

if(R

EAD

Y) b

egin

if(W

E) b

egin

REA

DY

<= 0

;TX

D

<= 0

; //

star

t bi

tm

em<=

DA

TA;

wcnt

<= 0

;cn

t<=

0;

end

end

else

beg

in /

/ th

is m

odul

e is

bus

y.if

(wcn

t< `

LCD

PUT1

B_W

AIT

) wcn

t<=

wcn

t+

1;el

se b

egin

wcnt

<= 0

;TX

D <

= m

em[0

];m

em<=

{1'b

1, m

em[7

:1]}

;cn

t<=

cnt

+ 1;

if(c

nt>=

10)

REA

DY

<= 1

; //

fini

sh t

he d

ata

send

end

end

end

endm

odul

e

Page 73: と動作確認 - 東京工業大学...MieruPC Project 1 MieruPC-2008 ハードウェアのセットアップ と動作確認 MieruPCMieruPC--2008 Version 2009-02-24 吉瀬謙二(東京工業大学)

73MieruPC Project

MieruPCを用いた動作検証

• 液晶モジュールにA,B,C … という文字が表示される.

• リセットにより画面がクリアされる.