第1回:FPGA入門 - HirokiNakaharaOboe.Net

ソフトウェア工学特論
第1回
愛媛大学理工学研究科
電子情報工学専攻ソフトウェア分野
中原 啓貴
ソフトウェア工学特論
1
中原 is 誰?
• FPGAをやったり、電波天文学をやったり、多値
論理をやったり、組込みシステムをやったり、、
• 節操がない
• ビール大好き(特にGUINNESS)
ARC(Applied Reconfigurable Computing)
@Bochum にて地ビールを堪能中.
まさか、このあとクレジットカードを失くすとは
思ってもみなかったよ!最悪だよ!
ソフトウェア工学特論
2
はじめに
• 第1回~7回はFPGA(エフピージーエー)を扱います
• なんでやねん?
• IntelがAltera(業界第2位)を買収したから!
• ビッグウェーブに乗らないと!
Alteraを2兆円で
買ったどー!
IntelのブライアントCEO
ソフトウェア工学特論
3
講義の内容
第1回:
第2回:
第3回:
第4回:
第5回:
第6回:
第7回:
FPGAをざっくり解説
FPGAのアーキテクチャ
FPGAの設計・CADツール
高位合成とFPGA
CPUやGPU等を取り込むFPGA
FPGAで電波望遠鏡・NIC・人工知能・株取引
FPGAでNES(ファミコン)を作る
ソフトウェア工学特論
4
評価
• 出席点
• レポート: 第7回終了時に課題を出します
• 発表点: ↓のマークが出たら議論して考えてみ
ましょう. 内容に応じて加点します.
なんでIntelは
Alteraを
買収したんだ?
最新技術(わりとどーでもよい)を通して物事を考える練習をしましょう
ソフトウェア工学特論
5
昔の人は…
• 汎用ロジックICで回路を作ってました
• 中原も4bit CPUを作ってみましたが…
Amazonで
爆売れ
ソフトウェア工学特論
6
汎用ロジック!?
• 別名、おっさんホイホイIC
• 昔の設計方法
ロジックを真理値表で書く
➔
カルノー図で書き直す
➔
AND-OR回路に設計
(うっ、学部生のころの記憶が…)
ソフトウェア工学特論
7
小さくしたい!速くしたい!
• 集積回路(LSI: Large Scale Integration)へ
• 1971年: Intel社が世界初のマイクロプロセッサ4004を発表
小さくすると
速くなる?
インテル・ミュージアム: http://japan.intel.com/contents/museum/index.html
(面白いから一度見たほうがいいよ!)
ソフトウェア工学特論
8
もっと小さくしたい!速くしたい!
• VLSI (Very Large Scale Integration)へ…
ソフトウェア工学特論
9
ARMの中の人も頑張りすぎ
ソフトウェア工学特論
10
頑張りすぎだってば!
ソフトウェア工学特論
11
もっともっと小さくしたい!速くしたい!
• ULSI (Ultra Large Scale Integration)…
もう単にLSIで
いいです…
なんでみんな微細化に
必死なんだろう?
ソフトウェア工学特論
12
一方で微細化に暗い影が…
• 消費電力の落とし穴(リーク電流)
微細化したら動作周波数が
上がってウハウ…あれ?
ここまでの話を
よーく覚えておこう
ソフトウェア工学特論
13
FPGAに話は戻って…
ソフトウェア工学特論
14
ASIC (Application Specific Integration Circuit)
おすすめ
↓
JEITA, “LSIの製造工程”, http://semicon.jeita.or.jp/future/future_B04.html
ソフトウェア工学特論
15
でも問題がありまして
• Pros:
• 性能(速さとか消費電力)がいいんだけど
• Cons:
• 開発期間が長い…
• 一発勝負…
• CPUのように数が出ないと
商売あがったりっすよ…
CPU!CPU!
数が出ないと
商売あがったり?
ソフトウェア工学特論
16
矛盾(→)をどうするか?
• ASICのように専用回路の性能が欲しい
• でも開発期間が長いんだよね…
(さっさと作って市場に出したい!)
• CPUのようにサクッと開発終わらせたい
• でも性能が悪いんだよね…
(他社のCPUやLSIより高性能!)
プログラマブルできるLSI
PLD (Programmable Logic Device)
ソフトウェア工学特論
17
Programmable Array Logic (PAL)と
Programmable ROM (PROM)
おすすめ
↓
PAL
PROM
ソフトウェア工学特論
18
第二版を執筆中
第二版を執筆中
• 大事なことなので2回言いました(アカラサマ)
ソフトウェア工学特論
19
Programmable Logic Array (PLA)
• PROM+PAL=PLA
ソフトウェア工学特論
20
Complex PLD (CPLD)
ソフトウェア工学特論
21
CPLDの問題点
• AND-OR二段回路ベースなので大規模回路だ
と回路規模が爆発してしまう
多段論理回路を
2段に圧縮するため
積項数が
爆発してしまう
ソフトウェア工学特論
22
そこでFPGAですよ
• Filed(現場で)
• Programmable(プログラムできる)
• Gate(論理ゲートの)
• Array(集合体)
http://www.xilinx.com/ (Xilinx社は業界No.1の企業です)
ソフトウェア工学特論
23
初期のFPGAの構造
(アイランドスタイルという)
ソフトウェア工学特論
24
様々な回路をプログラマブル可能
ソフトウェア工学特論
25
FPGAはどこでしょう?
TERASIC社 DE4
開発ボード
Digilent社 Spartan3E
評価ボード
他のチップ(LSI)は何?
ソフトウェア工学特論
26
FPGAの適用例:プロトタイピング
• 実働するモデル(プロトタイプ)を早期に製作
• 設計を様々な観点から検証
• ユーザーから早いフィードバックを得る
• 早期に製品化へ
➔
ソフトウェア工学特論
27
さて、いろいろが疑問が…
• どうやってプログラマブルにしているの?
• どうやって回路を設計しているの?
• 回路を設計するの面倒くさいんじゃ?
• もっと性能アップしたり、設計しやすいFPGAっ
てあるんですか?
• 結局FPGAって何に使ってるの?
• 中原はFPGAで何か作ったことあるの?
ソフトウェア工学特論
28
ということで次回に
• どうやってプログラマブルにしているの?
➔ FPGAのアーキテクチャ
• どうやって回路を設計しているの?
• 回路を設計するの面倒くさいんじゃ?
• もっと性能アップしたり、設計しやすいFPGAっ
てあるんですか?
• 結局FPGAって何に使ってるの?
• 中原はFPGAで何か作ったことあるの?
ソフトウェア工学特論
29