Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
FPGA入門 夏のAI EdgeハードウェアMeetup in 福岡 2019年7月10日 きしだなおき
Slide 2
Slide 2 text
FPGAとは ● Field Programmable Gate Array – Field 現場で – Programmable プログラム可能な – Gate 論理素子が – Array いっぱい並んだやつ ● 現場でプログラムできる論理回路
Slide 3
Slide 3 text
FPGAの仕組み
Slide 4
Slide 4 text
回路の合成 ● 例:3入力でORとANDの組み合わせ
Slide 5
Slide 5 text
回路にはいろいろある ● XORやNOTなどいろいろ組み合わせると大変 ● 全部用意しようとすると使わない素子が多く なる ● 回路に無駄
Slide 6
Slide 6 text
回路の入出力の組み合わせ 入力 出力 000 0 100 0 010 0 110 1 001 1 101 1 011 1 111 1
Slide 7
Slide 7 text
LUT(LookUp Table) ● 入出力をあらかじめメモリにもっておけばい い ● 製品としては4入力LUTや6入力LUT 入力 出力 000 0 100 0 010 0 110 1 001 1 101 1 011 1 111 1
Slide 8
Slide 8 text
論理ブロック ● Logical Element(LE) Intel(Altera) ● Logical Cell(LC) Xilinx
Slide 9
Slide 9 text
配線 ● 論理ブロックが格子状に配置 ● 周囲に配線 ● アイランドスタイル
Slide 10
Slide 10 text
乗算回路とメモリ ● 乗算やメモリを論理ブロックの組み合わせで 実現すると効率がわるい ● 乗算回路やメモリ(SRAM)がのってる
Slide 11
Slide 11 text
FPGAは基本的にはメモリ回路 ● LUTの基本はメモリ ● 配線スイッチもメモリ ● 配線データを書き込むだけ
Slide 12
Slide 12 text
FPGAとCPU ● CPUとは – メモリから命令をよびだして、命令にしたがった 回路で処理を行う – ノイマン型アーキテクチャ
Slide 13
Slide 13 text
FPGAなら ● 命令を読み込む必要なく、回路をやりたい処 理のとおり並べることができる ● 非ノイマン型アーキテクチャ
Slide 14
Slide 14 text
FPGAの利点 ● 命令を読み込む必要がない – 処理を行うまでのタイムラグが少ない ● 低レイテンシ – 命令解析のための回路が不要 ● 余分な回路がないので低消費電力 ● 細かな並列化
Slide 15
Slide 15 text
FPGAでの開発 ● 回路記述 – VHDLやVerilogHDLなど ● 論理合成 – HDLを論理回路に変換 ● 配置配線 – 論理回路を実際の回路に配置 ● コンフィギュレーション – FPGAに回路情報を設定
Slide 16
Slide 16 text
ソフトウェアとの違い ● 配線は記述順序は関係ない ● 状態はレジスタで保持してクロックなど契機 に変更
Slide 17
Slide 17 text
HDLの問題点 ● 書くのが面倒 ● 書くのが面倒 ● 論理合成に時間がかかる – 数時間かかったりする ● デバッグが面倒 ● デバッグが面倒 ● テストも面倒 ● テストも面倒 ● いろいろ面倒
Slide 18
Slide 18 text
IPを使う ● Intellectual Property ● ようするにライブラリ ● だれかが作って検証してる
Slide 19
Slide 19 text
SoC ● System on Chip ● CPU回路のせちゃえ – ソフトコアCPU ● 物理CPUのせちゃえ – FPGAの微細化 – チップに余裕 – 再構成可能回路が大量にあってもしかたない – そうだARMを乗せよう
Slide 20
Slide 20 text
高位合成 ● CとかJavaとかで書いてHDLに変換 ● アルゴリズムの検証がソフトウェアとして行 える – デバッガなどが使える – コンパイルが速い ● OpenCL – GPUやCPUでの並列にも対応
Slide 21
Slide 21 text
FPGAのつかいどころ ● 画像・映像処理 – Mac ProにはFPGAが載っていて動画エンコーディ ングなどに使える ● ネットワーク処理 ● 「人工知能」 ● IoT
Slide 22
Slide 22 text
人工知能 ● 深層ニューラルネットワーク ● たくさんの掛け算・足し算を要素ごとに行う
Slide 23
Slide 23 text
IoT ● たくさんのセンサーから常時データが送られ る ● ほとんどのデータは無駄 ● 人工知能(深層ニューラルネットワーク)に学習 させて、必要なデータだけを送信 ● 低消費電力
Slide 24
Slide 24 text
実際に試すには? ● FPGA開発ボード – DE0-CVやDE0-nano(Intel) ● WindowsかLinux ● Macの場合はiverilogで信号の確認だけ・・・ – VirtualBoxなどを使ってLinuxを動かせばOK
Slide 25
Slide 25 text
FPGAやりましょう