SlideShare a Scribd company logo
1 of 30
Download to read offline
PEAR LAB Utsunomiya Univ.
組込み向けFPGA設計の教育
~ゲーム音楽演奏システム設計事例
大川猛、大津金光、横田隆史
宇都宮大学大学院工学研究科情報システム科学専攻
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 1
PEAR LAB Utsunomiya Univ.
•FPGAの大容量化・低価格化による普及加速
• アプリ特化回路・高速並列処理を省電力で。製品へFPGA導入
•FPGA応用範囲の拡大
• 昔:グルーロジック・通信・パケット・画像処理(フィルタ)
• 今:画像認識・ニューラルネット・検索エンジン・証券取引・
高速制御・・・などなど
•組込みシステムにおける高機能化・高性能化の要求
• 既存のSoC+ソフトウェアで満たせない要求をカバー
• 情報処理技術者試験でFPGAを含むシステムが出題
(IPA・平成28年エンべデッドシステムスペシャリスト試験)
•「組込み向けFPGA設計技術者」の需要増
背景
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 2
PEAR LAB Utsunomiya Univ.
•ハードとソフトの境目を超越した技術者
• 必要に応じて、ハード開発もソフト開発もやる
• 組込みシステム全体を見通した設計ができる
•「組込みシステムFPGAの設計ができる」事だけに
とどまらないメリットがあるはず
「組込み向けFPGA設計技術者」とは
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 3
PEAR LAB Utsunomiya Univ.
「組込み向けFPGA設計技術者」
育成の課題
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 4
チュートリアルと
実践のギャップ
実践
演習:HDL(RTL)で設計
実装・シミュレーション
FPGAでLEDをチカチカ点滅
課題
座学:論理回路
現状のFPGA設計者教育
・学習者の自助努力頼み
・適切な難易度の課題が必要
PEAR LAB Utsunomiya Univ.
•「組込み向けFPGA設計技術者」の育成のために必
要な教育内容を検討する
•その第1歩として、教育プログラム「PWMオーディ
オ出力によるゲーム音楽演奏FPGAシステム開発」
を実施
研究目的
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 5
PEAR LAB Utsunomiya Univ.
•学部3年
• 情報工学実験2 HDLによるハードウェア設計
• 11月:研究室仮配属
•学部4年
• 4月:研究室本配属
• 4月~6月:導入教育・英語文献輪講
• 5月:卒業研究グループ配属
• 7月→ここでの教育
• 8月:大学院入試
• 9月~1月:卒業研究
前提:宇都宮大学工学部情報工学科
のFPGA・HDL関連カリキュラム
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 6
組合せ回路・順序回路
(1コマ半x3回・30名)
FPGAボードで演習・レポート
メモリアクセス回路
(1週間・6名)
FPGAボードで演習・レポート
学部2年:論理設計とスイッチング理論
PEAR LAB Utsunomiya Univ.
1. ほぼ全ての大学生が興味を持つ題材
2. データ量・回路量が少ない(cf.画像処理)
3. 完成イメージがある
なぜ「ゲーム音楽演奏FPGAシステ
ム」を題材にするのか?
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 7
• 現在(2016年)の大学4年生
• 1995年生まれ
• 2005年:10歳
• 2013年:18歳 大学1年生
• 家庭用ゲーム機の歴史
• 1983年:任天堂ファミリーコン
ピュータの誕生
• 1990年:スーパーファミコン
• 1994年:SONYプレイステーション
• 2004年:ニンテンドーDS
• 2006年:Wii
FPGAコンパイル時間:~1分
親世代がゲームに理解がある
(ことが多い)
PEAR LAB Utsunomiya Univ.
●Attention(注意)
・面白そう・ゲーム音楽を題材
●Relevance(関連性)
・やりがい・応用を意識した内容
●Confidence(自信)
・やればできる・自分の力で出来る内容
●Satisfaction(満足感)
・やってよかった・発表の場
学習意欲に関するARCSモデルとの関連
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 8
FPGAコンパイル時間:~1分
自分でやった、という達成感
PEAR LAB Utsunomiya Univ.
FPGA設計教育プログラムの経過
「PWMオーディオによるゲーム音楽演奏FPGAシステム」
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 9
PEAR LAB Utsunomiya Univ.
●プロジェクトのゴール
• 「7/18(月・祝)のオープンキャンパス
までに,ゲーム音楽を演奏するFPGA
を作ろう!」
「ゲーム音楽演奏FPGAシステム」
教育プログラムの概要
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 10
期間 2016年7月7日~18日(12日間)
受講生 6名(学部4年生)
作るもの ゲーム音楽を奏でるFPGA
・3和音(矩形波x2,三角波x1)
PEAR LAB Utsunomiya Univ.
•環境
• FPGA基板: Digilent社製BASYS2
• FPGAデバイス: Xilinx社製 Spartan3E-100
•入力:
• BRAM上に楽曲データを格納(コンパイル時)
• ボタン入力(RESET, START)・スイッチ入力(表示切替)
•出力:
• PWM音声(アンプ経由でスピーカ)
• LED・7セグメントLED(デバッグ表示用)
開発環境・システム構成
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 11
PEAR LAB Utsunomiya Univ.
時期 内容・開発段階
7/7(木) ◆キックオフミーティング
第1段階:矩形波の発生【開発実演】→スピーカ
第2段階ノコギリ波の発生 【宿題 Gr1,Gr2】
7/11(月) ◆第2回ミーティング
第3段階:三角波の発生とミキサー(3和音)【Gr1】
第4段階:音楽シーケンサの開発 【Gr2】
第5段階:統合テスト → スピーカ 【Gr2】
7/15(金) ◆第3回ミーティング
7/18
(月・祝)
◆オープンキャンパス
「ゲーム音楽演奏FPGAシステム」
教育プログラムの経過
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 12
PEAR LAB Utsunomiya Univ.
•プロジェクトゴールの共有
•要求・PWMオーディオの原理の説明
•全体システム案の説明
•基本的な操作の実演(矩形波出力)
7/7(木) キックオフミーティング
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 13
PEAR LAB Utsunomiya Univ.
PWM変調によるアナログ音声信号出力
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 14
50%
DUTY比
10%
10%
-50%
PWM周波数: 200KHz(周期: 5us)
LPF
(<100KHz)
50%
出力電圧
10%
PEAR LAB Utsunomiya Univ.
•FPGAのピンの出力では、PC用スピーカを直接接続
できない→アンプモジュール(PMODAMP1)経由
•カウンタ回路で、50MHzから1000Hzを生成・出力
•100KHzのPWMによる音量制御
•FPGAプロジェクトファイルを
配布(ISE)
第1段階:矩形波の発生【開発実演】
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 15
always@(posedge CLK)
begin
if(RESET)
counter <= 0;
else
if(counter == audio_period)
counter <= 0;
else
counter <= counter +1;
end
PC用スピーカアンプモジュールFPGAボード
PEAR LAB Utsunomiya Univ.
•HDLを修正して、矩形波→ノコギリ波を発生
•7/11(月)に全員集合して、
スピーカ出力音声およびオシロスコープで確認*
第2段階:ノコギリ波の発生【宿題】
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 16
PEAR LAB Utsunomiya Univ.
7/11(月) 第2回ミーティング
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 17
•各受講生に責任を持たせるため開発を分担
• Gr1(4名) 後半(音源・ミキサー)【省略】
• Gr2(2名) 前半(シーケンサ)
PEAR LAB Utsunomiya Univ.
(*印は教員が介入)
•音楽シーケンサ開発計画*
•ホワイトボードでの設計*
•楽曲データ形式の設計*
•HDL実装
•テスト用回路の設計*
•DEBUGテスト
第4段階:音楽シーケンサの開発
【Gr2】
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 19
PEAR LAB Utsunomiya Univ.
ゲーム音楽演奏システムの全体構成*
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 21
Seq
#0
BRAM
#0
Square Wave Gen
#0
Mixer PWM
Seq
#1
BRAM
#1
Square Wave Gen
#1
Seq
#2
BRAM
#2
Triangle Wave Gen
#2
Common Clk
Tick=1ms@120 BPM
20
20
20
8
4
8
4
8
4
10
9
32
9
32
9
32
当初は1つのシーケンサで設計した
(右上)が、FPGAの並列性を活用
し、音源毎に独立した3つのシーケ
ンサ(右)とし設計を単純化した
PEAR LAB Utsunomiya Univ.
•音楽の知識
• 音程:ドレミファソと周波数
• 音長:4分音符480・8分音符240
•ギャップを埋めるには?
• 楽譜→メモリ上のデータ
• データ生成ツールの作成(Python)
テストデータの作成
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 22
楽曲データ形式の設計と、具体
例によるテストデータ・テスト
駆動開発
データはFPGAのBRAMに初期値
として与える(Xilinx COEファイ
ル)
PEAR LAB Utsunomiya Univ.
•メモリ上に下記データ(1つのエントリでひとつの
音符・休符を表現)を格納し、順次演奏する
•コマンドで繰り返し(JUMP)を表現する
楽曲データ形式の設計*
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 23
31 16
vol length
15 12 11 0
0 note
2324
31 16
cmd 0
15 12 11 0
parameter
音符 休符
コマンド
PEAR LAB Utsunomiya Univ.
テスト方式の設計*
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 24
•いきなりスピーカーをつなぐ前に、FPGAボード上7
セグメントLEDを用いて、楽曲データを表示して、
テストする方式を提案(by教員)
PEAR LAB Utsunomiya Univ.
• 不具合発生
• →メモリ読み出しタイミングが間違っていた
• →シミュレーションで確認・状態遷移を修正
音楽シーケンサのテスト・デバッグ
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 25
Init
ReadMem
Command Note
WaitJump
length != 0length == 0
Init
ReadMem
Command Note
WaitJump
length != 0length == 0
WaitMem
PEAR LAB Utsunomiya Univ.
参考)シーケンサの回路記述
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 26
// Process for state transition
always @(posedge CLK)
begin
if(RESET) begin state <= 0; end
else begin
case(state)
0: if(BTN[0]) state <= 1;
1: state <= 2;
2: if(length != 0) state <= 3; else state <= 8;
3: if(length == 0) state <= 4; else state <= 3;
4: state <= 5;
5: state <= 1;
8: state <= 5;
default: state <= 0;
endcase
end
end
PEAR LAB Utsunomiya Univ.
•BRAM初期値ファイルの入力 → タイヘン・・・
•教員「テキストデータ形式で入力し変換しては?」*
•周りにいた大学院生がPythonで変換ツールを作成
データ変換ツールの作成
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 27
E5 15 240
R 0 240
E5 15 480
R 0 480
E5 15 480
R 0 480
C5 15 480
E5 15 480
R 0 480
G5 15 480
R 0 1440
G4 15 480
memory_initialization_radix = 16 ;
memory_initialization_vector =
0045F0F0,000000F0,0045F1E0,000001E0,
0045F1E0,000001E0,0005F1E0,0045F1E0,
000001E0,0075F1E0,000005A0,0074F1E0,
000005A0,0005F1E0,000003C0,0074F1E0,
…
楽譜テキストデータ
BRAM初期値(Xilinx COE)ファイル
PEAR LAB Utsunomiya Univ.
•楽譜テキストデータの入力 → タイヘン・・・
•ネット上のMIDIファイル→楽譜テキストデータに変
換できれば、どんどん音楽を演奏できるのでは?
•Pythonでツールを作成
• Pretty midiがよさそう!(MIDIファイルの読み込み)
• https://github.com/craffel/pretty-midi
学生が自主的に追加したタスク
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 28
PEAR LAB Utsunomiya Univ.
•スピーカを接続して、ゲーム音楽演奏をテストした
•期待通りの動作
•実物は「SWEST作品発表」にてデモ展示しています
第5段階:統合テスト【Gr2】
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 29
PEAR LAB Utsunomiya Univ.
•「組込み向けFPGA設計技術者」の育成方法を見出
すことを目的とし、その第1歩として「ゲーム音楽
演奏システム設計」を行った。
•結果:10日間の開発で、FPGAでゲーム音楽を演奏
できた。受講生の反応は好意的であった。
•今後、教員の介入を少なくして本プログラムの有効
性を評価したい
まとめ
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 30
PEAR LAB Utsunomiya Univ.
•本稿に記載のFPGA導入教育プログラムにおいて受
講生として参加してくれた,宇都宮大学オプティク
ス教育研究センター山本裕紹研究室の4年生(藤井
賢吾, 伊藤秀征, 黒川菜緒, 森田渉吾),工学部情報
工学科 横田・大津・大川研究室の4年生(小林都
生, 菅田悠平)・大学院生(松本拓也・山科和史)
のみなさん,ありがとうございました.
謝辞
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 31
PEAR LAB Utsunomiya Univ.
ファイル名 行数
TOP: pwmaudio.v 219
music_sequencer.v 223
Square.v 58
Triangle.v 99
mixer.v 46
Pwm.v 67
Common_clk.v 82
TOPLEVEL Test: Test.v 72
UNIT Test: Test_triangle.v 60
ソースコード量
2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 32
794行

More Related Content

What's hot

Pred net使ってみた
Pred net使ってみたPred net使ってみた
Pred net使ってみたkoji ochiai
 
Rsj2013 sekiyama 1
Rsj2013 sekiyama 1Rsj2013 sekiyama 1
Rsj2013 sekiyama 1openrtm
 
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介Ryohei Ueda
 
プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610HIDEOMI SUZUKI
 
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"Yuki Nagai
 
160608 01
160608 01160608 01
160608 01openrtm
 
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual Booths
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual BoothsChipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual Booths
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual BoothsKeigo Nishida
 
2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会
2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会
2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会openrtm
 
Chainer入門と最近の機能
Chainer入門と最近の機能Chainer入門と最近の機能
Chainer入門と最近の機能Yuya Unno
 
Introduction to Chainer and CuPy
Introduction to Chainer and CuPyIntroduction to Chainer and CuPy
Introduction to Chainer and CuPyKenta Oono
 
強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい
強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい
強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたいTakuma Wakamori
 
SensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うSensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うDaisuke Tanaka
 
自動チューニングとビックデータ:機械学習の適用の可能性
自動チューニングとビックデータ:機械学習の適用の可能性自動チューニングとビックデータ:機械学習の適用の可能性
自動チューニングとビックデータ:機械学習の適用の可能性Takahiro Katagiri
 
ソフトウェア自動チューニング研究紹介
ソフトウェア自動チューニング研究紹介ソフトウェア自動チューニング研究紹介
ソフトウェア自動チューニング研究紹介Takahiro Katagiri
 
Yu Sasaki Bachelor Thesis
Yu Sasaki Bachelor ThesisYu Sasaki Bachelor Thesis
Yu Sasaki Bachelor Thesispflab
 
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話y-uti
 

What's hot (20)

UsingChainerMN
UsingChainerMNUsingChainerMN
UsingChainerMN
 
Spark CL
Spark CLSpark CL
Spark CL
 
Pred net使ってみた
Pred net使ってみたPred net使ってみた
Pred net使ってみた
 
Rsj2013 sekiyama 1
Rsj2013 sekiyama 1Rsj2013 sekiyama 1
Rsj2013 sekiyama 1
 
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
 
NTPとうるう秒
NTPとうるう秒NTPとうるう秒
NTPとうるう秒
 
プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610
 
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"
 
160608 01
160608 01160608 01
160608 01
 
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual Booths
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual BoothsChipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual Booths
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual Booths
 
2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会
2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会
2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会
 
Chainer入門と最近の機能
Chainer入門と最近の機能Chainer入門と最近の機能
Chainer入門と最近の機能
 
Introduction to Chainer and CuPy
Introduction to Chainer and CuPyIntroduction to Chainer and CuPy
Introduction to Chainer and CuPy
 
強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい
強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい
強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい
 
SensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うSensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使う
 
自動チューニングとビックデータ:機械学習の適用の可能性
自動チューニングとビックデータ:機械学習の適用の可能性自動チューニングとビックデータ:機械学習の適用の可能性
自動チューニングとビックデータ:機械学習の適用の可能性
 
ソフトウェア自動チューニング研究紹介
ソフトウェア自動チューニング研究紹介ソフトウェア自動チューニング研究紹介
ソフトウェア自動チューニング研究紹介
 
Yu Sasaki Bachelor Thesis
Yu Sasaki Bachelor ThesisYu Sasaki Bachelor Thesis
Yu Sasaki Bachelor Thesis
 
SensorBeeのご紹介
SensorBeeのご紹介SensorBeeのご紹介
SensorBeeのご紹介
 
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
 

Viewers also liked

音楽プログラミング講座
音楽プログラミング講座音楽プログラミング講座
音楽プログラミング講座Akihiko Yamazawa
 
2013 06-ohkawa-heart-presen
2013 06-ohkawa-heart-presen2013 06-ohkawa-heart-presen
2013 06-ohkawa-heart-presenTakeshi Ohkawa
 
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価Kazushi Yamashina
 
Building the Internet of Things with open source and Eclipse IoT projects (Be...
Building the Internet of Things with open source and Eclipse IoT projects (Be...Building the Internet of Things with open source and Eclipse IoT projects (Be...
Building the Internet of Things with open source and Eclipse IoT projects (Be...AGILE IoT
 
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)Mr. Vengineer
 
企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝
企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝
企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝Fumitaka Takeuchi
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようShinya Takamaeda-Y
 
IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲
 IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲 IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲
IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲akira sakaino
 

Viewers also liked (10)

中小規模のIoT
中小規模のIoT中小規模のIoT
中小規模のIoT
 
音楽プログラミング講座
音楽プログラミング講座音楽プログラミング講座
音楽プログラミング講座
 
2013 06-ohkawa-heart-presen
2013 06-ohkawa-heart-presen2013 06-ohkawa-heart-presen
2013 06-ohkawa-heart-presen
 
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価
FPGAを用いた処理のロボット向けコンポーネントの設計生産性評価
 
Building the Internet of Things with open source and Eclipse IoT projects (Be...
Building the Internet of Things with open source and Eclipse IoT projects (Be...Building the Internet of Things with open source and Eclipse IoT projects (Be...
Building the Internet of Things with open source and Eclipse IoT projects (Be...
 
From SCADA to IoT
From SCADA to IoTFrom SCADA to IoT
From SCADA to IoT
 
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)
 
企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝
企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝
企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
 
IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲
 IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲 IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲
IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲
 

Similar to 組込み向けFPGA設計の教育 ~ゲーム音楽演奏システム設計事例

ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例Yahoo!デベロッパーネットワーク
 
20220525_kobayashi.pdf
20220525_kobayashi.pdf20220525_kobayashi.pdf
20220525_kobayashi.pdf直久 住川
 
Internet Textbook 2017
Internet Textbook 2017Internet Textbook 2017
Internet Textbook 2017Kiyoshi Ogawa
 
GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発Ryuuta Tsunashima
 
FPGAX6_hayashi
FPGAX6_hayashiFPGAX6_hayashi
FPGAX6_hayashi愛美 林
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックKentaro Ebisawa
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識Katsuhiro Morishita
 
TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都Takuya Azumi
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会Hitoshi Sato
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoTakefumi MIYOSHI
 
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!ru pic
 
遊休リソースを用いた 相同性検索処理の並列化とその評価
遊休リソースを用いた相同性検索処理の並列化とその評価遊休リソースを用いた相同性検索処理の並列化とその評価
遊休リソースを用いた 相同性検索処理の並列化とその評価Satoshi Nagayasu
 
Deep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTDeep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTKiyoshi Ogawa
 
FPGA Traxコンテストについて
FPGA TraxコンテストについてFPGA Traxコンテストについて
FPGA TraxコンテストについてYasunori Osana
 
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)Shinya Takamaeda-Y
 
20170419PFNオープンハウス リサーチャーの仕事_公開用
20170419PFNオープンハウス リサーチャーの仕事_公開用20170419PFNオープンハウス リサーチャーの仕事_公開用
20170419PFNオープンハウス リサーチャーの仕事_公開用Preferred Networks
 
パケット解析ノススメ
パケット解析ノススメパケット解析ノススメ
パケット解析ノススメ彰 村地
 
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウSpark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウFuture Of Data Japan
 

Similar to 組込み向けFPGA設計の教育 ~ゲーム音楽演奏システム設計事例 (20)

Dataflow140711-a@Kernel/VM北陸1
Dataflow140711-a@Kernel/VM北陸1Dataflow140711-a@Kernel/VM北陸1
Dataflow140711-a@Kernel/VM北陸1
 
Dataflow140711@Kernel/VM北陸1
Dataflow140711@Kernel/VM北陸1Dataflow140711@Kernel/VM北陸1
Dataflow140711@Kernel/VM北陸1
 
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
 
20220525_kobayashi.pdf
20220525_kobayashi.pdf20220525_kobayashi.pdf
20220525_kobayashi.pdf
 
Internet Textbook 2017
Internet Textbook 2017Internet Textbook 2017
Internet Textbook 2017
 
GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発
 
FPGAX6_hayashi
FPGAX6_hayashiFPGAX6_hayashi
FPGAX6_hayashi
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyo
 
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!
 
遊休リソースを用いた 相同性検索処理の並列化とその評価
遊休リソースを用いた相同性検索処理の並列化とその評価遊休リソースを用いた相同性検索処理の並列化とその評価
遊休リソースを用いた 相同性検索処理の並列化とその評価
 
Deep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTDeep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWEST
 
FPGA Traxコンテストについて
FPGA TraxコンテストについてFPGA Traxコンテストについて
FPGA Traxコンテストについて
 
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
 
20170419PFNオープンハウス リサーチャーの仕事_公開用
20170419PFNオープンハウス リサーチャーの仕事_公開用20170419PFNオープンハウス リサーチャーの仕事_公開用
20170419PFNオープンハウス リサーチャーの仕事_公開用
 
パケット解析ノススメ
パケット解析ノススメパケット解析ノススメ
パケット解析ノススメ
 
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウSpark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
 

Recently uploaded

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (9)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

組込み向けFPGA設計の教育 ~ゲーム音楽演奏システム設計事例

  • 1. PEAR LAB Utsunomiya Univ. 組込み向けFPGA設計の教育 ~ゲーム音楽演奏システム設計事例 大川猛、大津金光、横田隆史 宇都宮大学大学院工学研究科情報システム科学専攻 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 1
  • 2. PEAR LAB Utsunomiya Univ. •FPGAの大容量化・低価格化による普及加速 • アプリ特化回路・高速並列処理を省電力で。製品へFPGA導入 •FPGA応用範囲の拡大 • 昔:グルーロジック・通信・パケット・画像処理(フィルタ) • 今:画像認識・ニューラルネット・検索エンジン・証券取引・ 高速制御・・・などなど •組込みシステムにおける高機能化・高性能化の要求 • 既存のSoC+ソフトウェアで満たせない要求をカバー • 情報処理技術者試験でFPGAを含むシステムが出題 (IPA・平成28年エンべデッドシステムスペシャリスト試験) •「組込み向けFPGA設計技術者」の需要増 背景 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 2
  • 3. PEAR LAB Utsunomiya Univ. •ハードとソフトの境目を超越した技術者 • 必要に応じて、ハード開発もソフト開発もやる • 組込みシステム全体を見通した設計ができる •「組込みシステムFPGAの設計ができる」事だけに とどまらないメリットがあるはず 「組込み向けFPGA設計技術者」とは 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 3
  • 4. PEAR LAB Utsunomiya Univ. 「組込み向けFPGA設計技術者」 育成の課題 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 4 チュートリアルと 実践のギャップ 実践 演習:HDL(RTL)で設計 実装・シミュレーション FPGAでLEDをチカチカ点滅 課題 座学:論理回路 現状のFPGA設計者教育 ・学習者の自助努力頼み ・適切な難易度の課題が必要
  • 5. PEAR LAB Utsunomiya Univ. •「組込み向けFPGA設計技術者」の育成のために必 要な教育内容を検討する •その第1歩として、教育プログラム「PWMオーディ オ出力によるゲーム音楽演奏FPGAシステム開発」 を実施 研究目的 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 5
  • 6. PEAR LAB Utsunomiya Univ. •学部3年 • 情報工学実験2 HDLによるハードウェア設計 • 11月:研究室仮配属 •学部4年 • 4月:研究室本配属 • 4月~6月:導入教育・英語文献輪講 • 5月:卒業研究グループ配属 • 7月→ここでの教育 • 8月:大学院入試 • 9月~1月:卒業研究 前提:宇都宮大学工学部情報工学科 のFPGA・HDL関連カリキュラム 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 6 組合せ回路・順序回路 (1コマ半x3回・30名) FPGAボードで演習・レポート メモリアクセス回路 (1週間・6名) FPGAボードで演習・レポート 学部2年:論理設計とスイッチング理論
  • 7. PEAR LAB Utsunomiya Univ. 1. ほぼ全ての大学生が興味を持つ題材 2. データ量・回路量が少ない(cf.画像処理) 3. 完成イメージがある なぜ「ゲーム音楽演奏FPGAシステ ム」を題材にするのか? 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 7 • 現在(2016年)の大学4年生 • 1995年生まれ • 2005年:10歳 • 2013年:18歳 大学1年生 • 家庭用ゲーム機の歴史 • 1983年:任天堂ファミリーコン ピュータの誕生 • 1990年:スーパーファミコン • 1994年:SONYプレイステーション • 2004年:ニンテンドーDS • 2006年:Wii FPGAコンパイル時間:~1分 親世代がゲームに理解がある (ことが多い)
  • 8. PEAR LAB Utsunomiya Univ. ●Attention(注意) ・面白そう・ゲーム音楽を題材 ●Relevance(関連性) ・やりがい・応用を意識した内容 ●Confidence(自信) ・やればできる・自分の力で出来る内容 ●Satisfaction(満足感) ・やってよかった・発表の場 学習意欲に関するARCSモデルとの関連 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 8 FPGAコンパイル時間:~1分 自分でやった、という達成感
  • 9. PEAR LAB Utsunomiya Univ. FPGA設計教育プログラムの経過 「PWMオーディオによるゲーム音楽演奏FPGAシステム」 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 9
  • 10. PEAR LAB Utsunomiya Univ. ●プロジェクトのゴール • 「7/18(月・祝)のオープンキャンパス までに,ゲーム音楽を演奏するFPGA を作ろう!」 「ゲーム音楽演奏FPGAシステム」 教育プログラムの概要 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 10 期間 2016年7月7日~18日(12日間) 受講生 6名(学部4年生) 作るもの ゲーム音楽を奏でるFPGA ・3和音(矩形波x2,三角波x1)
  • 11. PEAR LAB Utsunomiya Univ. •環境 • FPGA基板: Digilent社製BASYS2 • FPGAデバイス: Xilinx社製 Spartan3E-100 •入力: • BRAM上に楽曲データを格納(コンパイル時) • ボタン入力(RESET, START)・スイッチ入力(表示切替) •出力: • PWM音声(アンプ経由でスピーカ) • LED・7セグメントLED(デバッグ表示用) 開発環境・システム構成 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 11
  • 12. PEAR LAB Utsunomiya Univ. 時期 内容・開発段階 7/7(木) ◆キックオフミーティング 第1段階:矩形波の発生【開発実演】→スピーカ 第2段階ノコギリ波の発生 【宿題 Gr1,Gr2】 7/11(月) ◆第2回ミーティング 第3段階:三角波の発生とミキサー(3和音)【Gr1】 第4段階:音楽シーケンサの開発 【Gr2】 第5段階:統合テスト → スピーカ 【Gr2】 7/15(金) ◆第3回ミーティング 7/18 (月・祝) ◆オープンキャンパス 「ゲーム音楽演奏FPGAシステム」 教育プログラムの経過 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 12
  • 13. PEAR LAB Utsunomiya Univ. •プロジェクトゴールの共有 •要求・PWMオーディオの原理の説明 •全体システム案の説明 •基本的な操作の実演(矩形波出力) 7/7(木) キックオフミーティング 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 13
  • 14. PEAR LAB Utsunomiya Univ. PWM変調によるアナログ音声信号出力 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 14 50% DUTY比 10% 10% -50% PWM周波数: 200KHz(周期: 5us) LPF (<100KHz) 50% 出力電圧 10%
  • 15. PEAR LAB Utsunomiya Univ. •FPGAのピンの出力では、PC用スピーカを直接接続 できない→アンプモジュール(PMODAMP1)経由 •カウンタ回路で、50MHzから1000Hzを生成・出力 •100KHzのPWMによる音量制御 •FPGAプロジェクトファイルを 配布(ISE) 第1段階:矩形波の発生【開発実演】 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 15 always@(posedge CLK) begin if(RESET) counter <= 0; else if(counter == audio_period) counter <= 0; else counter <= counter +1; end PC用スピーカアンプモジュールFPGAボード
  • 16. PEAR LAB Utsunomiya Univ. •HDLを修正して、矩形波→ノコギリ波を発生 •7/11(月)に全員集合して、 スピーカ出力音声およびオシロスコープで確認* 第2段階:ノコギリ波の発生【宿題】 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 16
  • 17. PEAR LAB Utsunomiya Univ. 7/11(月) 第2回ミーティング 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 17 •各受講生に責任を持たせるため開発を分担 • Gr1(4名) 後半(音源・ミキサー)【省略】 • Gr2(2名) 前半(シーケンサ)
  • 18. PEAR LAB Utsunomiya Univ. (*印は教員が介入) •音楽シーケンサ開発計画* •ホワイトボードでの設計* •楽曲データ形式の設計* •HDL実装 •テスト用回路の設計* •DEBUGテスト 第4段階:音楽シーケンサの開発 【Gr2】 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 19
  • 19. PEAR LAB Utsunomiya Univ. ゲーム音楽演奏システムの全体構成* 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 21 Seq #0 BRAM #0 Square Wave Gen #0 Mixer PWM Seq #1 BRAM #1 Square Wave Gen #1 Seq #2 BRAM #2 Triangle Wave Gen #2 Common Clk Tick=1ms@120 BPM 20 20 20 8 4 8 4 8 4 10 9 32 9 32 9 32 当初は1つのシーケンサで設計した (右上)が、FPGAの並列性を活用 し、音源毎に独立した3つのシーケ ンサ(右)とし設計を単純化した
  • 20. PEAR LAB Utsunomiya Univ. •音楽の知識 • 音程:ドレミファソと周波数 • 音長:4分音符480・8分音符240 •ギャップを埋めるには? • 楽譜→メモリ上のデータ • データ生成ツールの作成(Python) テストデータの作成 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 22 楽曲データ形式の設計と、具体 例によるテストデータ・テスト 駆動開発 データはFPGAのBRAMに初期値 として与える(Xilinx COEファイ ル)
  • 21. PEAR LAB Utsunomiya Univ. •メモリ上に下記データ(1つのエントリでひとつの 音符・休符を表現)を格納し、順次演奏する •コマンドで繰り返し(JUMP)を表現する 楽曲データ形式の設計* 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 23 31 16 vol length 15 12 11 0 0 note 2324 31 16 cmd 0 15 12 11 0 parameter 音符 休符 コマンド
  • 22. PEAR LAB Utsunomiya Univ. テスト方式の設計* 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 24 •いきなりスピーカーをつなぐ前に、FPGAボード上7 セグメントLEDを用いて、楽曲データを表示して、 テストする方式を提案(by教員)
  • 23. PEAR LAB Utsunomiya Univ. • 不具合発生 • →メモリ読み出しタイミングが間違っていた • →シミュレーションで確認・状態遷移を修正 音楽シーケンサのテスト・デバッグ 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 25 Init ReadMem Command Note WaitJump length != 0length == 0 Init ReadMem Command Note WaitJump length != 0length == 0 WaitMem
  • 24. PEAR LAB Utsunomiya Univ. 参考)シーケンサの回路記述 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 26 // Process for state transition always @(posedge CLK) begin if(RESET) begin state <= 0; end else begin case(state) 0: if(BTN[0]) state <= 1; 1: state <= 2; 2: if(length != 0) state <= 3; else state <= 8; 3: if(length == 0) state <= 4; else state <= 3; 4: state <= 5; 5: state <= 1; 8: state <= 5; default: state <= 0; endcase end end
  • 25. PEAR LAB Utsunomiya Univ. •BRAM初期値ファイルの入力 → タイヘン・・・ •教員「テキストデータ形式で入力し変換しては?」* •周りにいた大学院生がPythonで変換ツールを作成 データ変換ツールの作成 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 27 E5 15 240 R 0 240 E5 15 480 R 0 480 E5 15 480 R 0 480 C5 15 480 E5 15 480 R 0 480 G5 15 480 R 0 1440 G4 15 480 memory_initialization_radix = 16 ; memory_initialization_vector = 0045F0F0,000000F0,0045F1E0,000001E0, 0045F1E0,000001E0,0005F1E0,0045F1E0, 000001E0,0075F1E0,000005A0,0074F1E0, 000005A0,0005F1E0,000003C0,0074F1E0, … 楽譜テキストデータ BRAM初期値(Xilinx COE)ファイル
  • 26. PEAR LAB Utsunomiya Univ. •楽譜テキストデータの入力 → タイヘン・・・ •ネット上のMIDIファイル→楽譜テキストデータに変 換できれば、どんどん音楽を演奏できるのでは? •Pythonでツールを作成 • Pretty midiがよさそう!(MIDIファイルの読み込み) • https://github.com/craffel/pretty-midi 学生が自主的に追加したタスク 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 28
  • 27. PEAR LAB Utsunomiya Univ. •スピーカを接続して、ゲーム音楽演奏をテストした •期待通りの動作 •実物は「SWEST作品発表」にてデモ展示しています 第5段階:統合テスト【Gr2】 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 29
  • 28. PEAR LAB Utsunomiya Univ. •「組込み向けFPGA設計技術者」の育成方法を見出 すことを目的とし、その第1歩として「ゲーム音楽 演奏システム設計」を行った。 •結果:10日間の開発で、FPGAでゲーム音楽を演奏 できた。受講生の反応は好意的であった。 •今後、教員の介入を少なくして本プログラムの有効 性を評価したい まとめ 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 30
  • 29. PEAR LAB Utsunomiya Univ. •本稿に記載のFPGA導入教育プログラムにおいて受 講生として参加してくれた,宇都宮大学オプティク ス教育研究センター山本裕紹研究室の4年生(藤井 賢吾, 伊藤秀征, 黒川菜緒, 森田渉吾),工学部情報 工学科 横田・大津・大川研究室の4年生(小林都 生, 菅田悠平)・大学院生(松本拓也・山科和史) のみなさん,ありがとうございました. 謝辞 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 31
  • 30. PEAR LAB Utsunomiya Univ. ファイル名 行数 TOP: pwmaudio.v 219 music_sequencer.v 223 Square.v 58 Triangle.v 99 mixer.v 46 Pwm.v 67 Common_clk.v 82 TOPLEVEL Test: Test.v 72 UNIT Test: Test_triangle.v 60 ソースコード量 2016/8/25 IPSJ SIGEMB8月研究会(SWEST18共催)@下呂温泉 32 794行