Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FPGA入門 / Introduction of FPGA 2019

FPGA入門 / Introduction of FPGA 2019

2019年7月10日に「夏のAI EdgeハードウェアMeetup in 福岡」で発表した資料です

Naoki Kishida

July 10, 2019
Tweet

More Decks by Naoki Kishida

Other Decks in Technology

Transcript

  1. FPGA入門
    夏のAI EdgeハードウェアMeetup in 福岡
    2019年7月10日 きしだなおき

    View Slide

  2. FPGAとは

    Field Programmable Gate Array
    – Field 現場で
    – Programmable プログラム可能な
    – Gate 論理素子が
    – Array いっぱい並んだやつ
    ● 現場でプログラムできる論理回路

    View Slide

  3. FPGAの仕組み

    View Slide

  4. 回路の合成
    ● 例:3入力でORとANDの組み合わせ

    View Slide

  5. 回路にはいろいろある

    XORやNOTなどいろいろ組み合わせると大変
    ● 全部用意しようとすると使わない素子が多く
    なる
    ● 回路に無駄

    View Slide

  6. 回路の入出力の組み合わせ
    入力 出力
    000 0
    100 0
    010 0
    110 1
    001 1
    101 1
    011 1
    111 1

    View Slide

  7. LUT(LookUp Table)
    ● 入出力をあらかじめメモリにもっておけばい

    ● 製品としては4入力LUTや6入力LUT
    入力 出力
    000 0
    100 0
    010 0
    110 1
    001 1
    101 1
    011 1
    111 1

    View Slide

  8. 論理ブロック

    Logical Element(LE) Intel(Altera)

    Logical Cell(LC) Xilinx

    View Slide

  9. 配線
    ● 論理ブロックが格子状に配置
    ● 周囲に配線
    ● アイランドスタイル

    View Slide

  10. 乗算回路とメモリ
    ● 乗算やメモリを論理ブロックの組み合わせで
    実現すると効率がわるい
    ● 乗算回路やメモリ(SRAM)がのってる

    View Slide

  11. FPGAは基本的にはメモリ回路

    LUTの基本はメモリ
    ● 配線スイッチもメモリ
    ● 配線データを書き込むだけ

    View Slide

  12. FPGAとCPU

    CPUとは
    – メモリから命令をよびだして、命令にしたがった
    回路で処理を行う
    – ノイマン型アーキテクチャ

    View Slide

  13. FPGAなら
    ● 命令を読み込む必要なく、回路をやりたい処
    理のとおり並べることができる
    ● 非ノイマン型アーキテクチャ

    View Slide

  14. FPGAの利点
    ● 命令を読み込む必要がない
    – 処理を行うまでのタイムラグが少ない
    ● 低レイテンシ
    – 命令解析のための回路が不要
    ● 余分な回路がないので低消費電力
    ● 細かな並列化

    View Slide

  15. FPGAでの開発
    ● 回路記述
    – VHDLやVerilogHDLなど
    ● 論理合成
    – HDLを論理回路に変換
    ● 配置配線
    – 論理回路を実際の回路に配置
    ● コンフィギュレーション
    – FPGAに回路情報を設定

    View Slide

  16. ソフトウェアとの違い
    ● 配線は記述順序は関係ない
    ● 状態はレジスタで保持してクロックなど契機
    に変更

    View Slide

  17. HDLの問題点
    ● 書くのが面倒
    ● 書くのが面倒
    ● 論理合成に時間がかかる
    – 数時間かかったりする
    ● デバッグが面倒
    ● デバッグが面倒
    ● テストも面倒
    ● テストも面倒
    ● いろいろ面倒

    View Slide

  18. IPを使う

    Intellectual Property
    ● ようするにライブラリ
    ● だれかが作って検証してる

    View Slide

  19. SoC

    System on Chip

    CPU回路のせちゃえ
    – ソフトコアCPU
    ● 物理CPUのせちゃえ
    – FPGAの微細化
    – チップに余裕
    – 再構成可能回路が大量にあってもしかたない
    – そうだARMを乗せよう

    View Slide

  20. 高位合成

    CとかJavaとかで書いてHDLに変換
    ● アルゴリズムの検証がソフトウェアとして行
    える
    – デバッガなどが使える
    – コンパイルが速い

    OpenCL
    – GPUやCPUでの並列にも対応

    View Slide

  21. FPGAのつかいどころ
    ● 画像・映像処理
    – Mac ProにはFPGAが載っていて動画エンコーディ
    ングなどに使える
    ● ネットワーク処理
    ● 「人工知能」

    IoT

    View Slide

  22. 人工知能
    ● 深層ニューラルネットワーク
    ● たくさんの掛け算・足し算を要素ごとに行う

    View Slide

  23. IoT
    ● たくさんのセンサーから常時データが送られ

    ● ほとんどのデータは無駄
    ● 人工知能(深層ニューラルネットワーク)に学習
    させて、必要なデータだけを送信
    ● 低消費電力

    View Slide

  24. 実際に試すには?

    FPGA開発ボード
    – DE0-CVやDE0-nano(Intel)

    WindowsかLinux

    Macの場合はiverilogで信号の確認だけ・・・
    – VirtualBoxなどを使ってLinuxを動かせばOK

    View Slide

  25. FPGAやりましょう

    View Slide