SlideShare a Scribd company logo
FPGA とは何ぞや [email_address]
自己紹介 hatena: firewood twitter: hotpepsi 組み込みソフトウェア技術者 FPGA は何となく知ってるレベル
LSI と PLD どちらも大規模集積回路 普通の LSI 製造後は回路が変更できない CPU など、機能が変更できるものはある PLD (特殊な LSI ) 製造後に論理回路を変更できる
PLD と FPGA PLD Programmable Logic Device プログラム可能な論理回路 FPGA Field Programmable Gate Array 大規模にプログラム可能な PLD 近年は PLD+ 高速 I/F+CPU+ メモリ
ところで わからないことがわからないと質問もできないらしい… http://www.tate-lab.net/mt/2009/11/post-143.html
わからないのいろいろ 歴史 どういう経緯で今みたいなのになったのか 論理回路 同期、非同期 どういう構造・実装になっているのか ex)  頭の中で電子の流れが想像できる どう使うのか VerilogHDL 、 VHDL
歴史 1975 Signetics 社が FPLA として 82S100 を発表 AND アレイのヒューズを焼き切る( 1 回のみ) 1985 Xilinx 社が FPGA として LCA を発表 LUT ( LookUp Table )用に SRAM を載せて ON/OFF を制御 大規模化&高速化して現在に至る
論理回路 AND OR 基本論理回路の組み合わせで何でも実装できる
FF –  フリップフロップ 論理状態を保持できる ラッチ回路 SRAM の基本要素
同期と非同期 非同期回路 クロック信号に同期しない 同期回路 クロック信号に同期する
非同期式回路 基本は非同期 クロック信号に同期しない 複雑な回路の設計が難しい 伝播遅延の差によりハザードなどが発生 ハザード : 動作が速い素子の出力が先に出る
同期式回路 クロック信号( CLK )に同期する CLK の変化に合わせて状態遷移 立ち上がりまたは立ち下がり  _|  ̄ |_ 同期= CLK が変化するまで状態が変化しない 微妙な入力の遅延は問題にならなくなる 非同期に比べ、人間が設計しやすい ただし CLK 信号の遅延やノイズなどの問題も 1 クロックに収まる処理だけが可能
任意の回路( 1 ) 論理回路を書き換える=任意の論理回路を、任意の場所に置きたい しかし、物理的に存在しないものは置けない
任意の回路( 2 ) ON/OFF できる回路を最初から置いておく 使いたいロジック間の接続だけを ON にすることで、配置の代わりにする LUT に ON/OFF 情報を格納し、参照する
任意の回路( 3 ) FPGA =ロジック、配線、 LUT のかたまり
HDL -  ハードウェア記述言語 VerilogHDL と VHDL できることはほぼ同じ 論理回路が言語(抽象的な記述)で書ける C のように、変数や代入がある タイミングや制約条件を記述する 非同期回路も記述できるが、普通は同期回路
で FPGA って何ができるの ソフトウェア技術者から見ると… 色々な処理のアクセラレーション 例えば「全ビットをひっくり返す」などの新しい命令が作れる PLD+ 高速 I/F+CPU+ メモリ 柔軟なハードウェア=ソフトウェア?
DR ( 1 ) Dynamically Reconfigurable Device 動作中に機能が変更できるデバイス FPGA 、 Reconfigurable Processor 、 GPGPU などが該当 粒度が異なる(以下小さい順) FPGA …  ロジック単位 Reconfigurable Processor …  エレメント単位 GPGPU … ストリーミングプロセッサ単位
適切な粒度 アプリケーションによって異なる CPU vs GPGPU のどちらが優れているか? 粒度を細かくすると小回りがきくが、面積効率や電力効率が落ちる 伝送路も電力を消費する 粒度を粗くするとパフォーマンスが上がるが、柔軟性が下がる
DR ( 2 ) 粒度を上げていくと Larrabee に?

More Related Content

PDF
Gpu vs fpga
PDF
ソフトウェア技術者はFPGAをどのように使うか
PPTX
Myoshimi extreme
PDF
増え続ける情報に対応するためのFPGA基礎知識
PPTX
FPGAって、何?
PDF
FPGAのトレンドをまとめてみた
PPTX
高速シリアル通信を支える技術
PPT
20140310 fpgax
Gpu vs fpga
ソフトウェア技術者はFPGAをどのように使うか
Myoshimi extreme
増え続ける情報に対応するためのFPGA基礎知識
FPGAって、何?
FPGAのトレンドをまとめてみた
高速シリアル通信を支える技術
20140310 fpgax

What's hot (20)

PDF
FPGAX6_hayashi
PDF
FPGA・リコンフィギャラブルシステム研究の最新動向
PPTX
FPGAことはじめ
PDF
FPGAを用いたEdge AIの現状
PDF
ICD/CPSY 201412
PPTX
研究者のための Python による FPGA 入門
PDF
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
PDF
Reconf_201409
PDF
ACRi_webinar_20220118_miyo
PPTX
なにわTech20160827
PDF
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PDF
Synthesijer.Scala (PROSYM 2015)
PDF
FPGAによるHDMI to LVDS変換器
PDF
Vyatta 201310
PDF
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
PPTX
ハードウェア技術の動向 2015/02/02
PDF
Tensor flow usergroup 2016 (公開版)
PDF
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PDF
Fpga local 20130322
PDF
FPGA+SoC+Linux実践勉強会資料
FPGAX6_hayashi
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGAことはじめ
FPGAを用いたEdge AIの現状
ICD/CPSY 201412
研究者のための Python による FPGA 入門
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
Reconf_201409
ACRi_webinar_20220118_miyo
なにわTech20160827
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
Synthesijer.Scala (PROSYM 2015)
FPGAによるHDMI to LVDS変換器
Vyatta 201310
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
ハードウェア技術の動向 2015/02/02
Tensor flow usergroup 2016 (公開版)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
Fpga local 20130322
FPGA+SoC+Linux実践勉強会資料
Ad

Viewers also liked (7)

PPTX
Maker Faire 2016 - Microbit & Nano Satellite
PDF
VIOPS WORKSHOP 10 クラウドの次に起こるコト
PDF
第3回ローレイヤー勉強会 : FPGAでコンピュータを作ってみた
PPTX
Azure周りの振り返り
PDF
ICC KYOTO 2016 CATAPULT
PDF
[Azure Council Experts (ACE) 第20回定例会] Microsoft Azureアップデート情報 (2016/10/14-201...
PDF
深層学習フレームワークChainerの紹介とFPGAへの期待
Maker Faire 2016 - Microbit & Nano Satellite
VIOPS WORKSHOP 10 クラウドの次に起こるコト
第3回ローレイヤー勉強会 : FPGAでコンピュータを作ってみた
Azure周りの振り返り
ICC KYOTO 2016 CATAPULT
[Azure Council Experts (ACE) 第20回定例会] Microsoft Azureアップデート情報 (2016/10/14-201...
深層学習フレームワークChainerの紹介とFPGAへの期待
Ad

Similar to FPGA (20)

PPTX
FPGAで遊んでみた
PPTX
動き検出勉強会リメイク。過去の発表のリメイク版です。動き検出のアルゴリズムとOpencvのオプションについてまとめました
PPTX
Fpga programming introduction
PDF
18th ACRi Webinar : Presentation Slide ; Fukuda-san, ChipTip Technology
PPTX
FPGAでベンチマークしたときに苦労した話@fpgax#12
PPTX
Microsemi FPGA はいいぞ,FPGAの紹介とおさそい
PDF
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
PPTX
PYNQ 祭り: Pmod のプログラミング
PDF
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
PDF
78tch
PDF
FPGAエアプ勢がFPGA触り始めた話
PPTX
ゼロから始める自作 CPU 入門
PPTX
M5StackにFPGAをつないでみた
PDF
20apr2012 kernelvm7-main
PDF
FPGA Community
PDF
FPGAスタートアップ資料
PDF
PDF
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PPTX
Kyoto dev caffe
PDF
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
FPGAで遊んでみた
動き検出勉強会リメイク。過去の発表のリメイク版です。動き検出のアルゴリズムとOpencvのオプションについてまとめました
Fpga programming introduction
18th ACRi Webinar : Presentation Slide ; Fukuda-san, ChipTip Technology
FPGAでベンチマークしたときに苦労した話@fpgax#12
Microsemi FPGA はいいぞ,FPGAの紹介とおさそい
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
PYNQ 祭り: Pmod のプログラミング
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
78tch
FPGAエアプ勢がFPGA触り始めた話
ゼロから始める自作 CPU 入門
M5StackにFPGAをつないでみた
20apr2012 kernelvm7-main
FPGA Community
FPGAスタートアップ資料
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
Kyoto dev caffe
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)

More from firewood (10)

PDF
Best Bugs 2017 in the SmartNews iOS app
PPTX
Xcodeでmrubyをステップ実行してみた
PPTX
Xcodeで値を表示する
PPTX
SmartNewsアプリの品質
PPTX
WkWebViewのキャッシュについて調べた
PPT
delayed_jobの自動再起動
PPT
C++でHello worldを書いてみた
PPT
フィルタドライバ入門
PPT
三日で書くGroonga関数
PPT
Best Bugs 2017 in the SmartNews iOS app
Xcodeでmrubyをステップ実行してみた
Xcodeで値を表示する
SmartNewsアプリの品質
WkWebViewのキャッシュについて調べた
delayed_jobの自動再起動
C++でHello worldを書いてみた
フィルタドライバ入門
三日で書くGroonga関数

FPGA

  • 2. 自己紹介 hatena: firewood twitter: hotpepsi 組み込みソフトウェア技術者 FPGA は何となく知ってるレベル
  • 3. LSI と PLD どちらも大規模集積回路 普通の LSI 製造後は回路が変更できない CPU など、機能が変更できるものはある PLD (特殊な LSI ) 製造後に論理回路を変更できる
  • 4. PLD と FPGA PLD Programmable Logic Device プログラム可能な論理回路 FPGA Field Programmable Gate Array 大規模にプログラム可能な PLD 近年は PLD+ 高速 I/F+CPU+ メモリ
  • 6. わからないのいろいろ 歴史 どういう経緯で今みたいなのになったのか 論理回路 同期、非同期 どういう構造・実装になっているのか ex) 頭の中で電子の流れが想像できる どう使うのか VerilogHDL 、 VHDL
  • 7. 歴史 1975 Signetics 社が FPLA として 82S100 を発表 AND アレイのヒューズを焼き切る( 1 回のみ) 1985 Xilinx 社が FPGA として LCA を発表 LUT ( LookUp Table )用に SRAM を載せて ON/OFF を制御 大規模化&高速化して現在に至る
  • 8. 論理回路 AND OR 基本論理回路の組み合わせで何でも実装できる
  • 9. FF – フリップフロップ 論理状態を保持できる ラッチ回路 SRAM の基本要素
  • 10. 同期と非同期 非同期回路 クロック信号に同期しない 同期回路 クロック信号に同期する
  • 11. 非同期式回路 基本は非同期 クロック信号に同期しない 複雑な回路の設計が難しい 伝播遅延の差によりハザードなどが発生 ハザード : 動作が速い素子の出力が先に出る
  • 12. 同期式回路 クロック信号( CLK )に同期する CLK の変化に合わせて状態遷移 立ち上がりまたは立ち下がり _|  ̄ |_ 同期= CLK が変化するまで状態が変化しない 微妙な入力の遅延は問題にならなくなる 非同期に比べ、人間が設計しやすい ただし CLK 信号の遅延やノイズなどの問題も 1 クロックに収まる処理だけが可能
  • 13. 任意の回路( 1 ) 論理回路を書き換える=任意の論理回路を、任意の場所に置きたい しかし、物理的に存在しないものは置けない
  • 14. 任意の回路( 2 ) ON/OFF できる回路を最初から置いておく 使いたいロジック間の接続だけを ON にすることで、配置の代わりにする LUT に ON/OFF 情報を格納し、参照する
  • 15. 任意の回路( 3 ) FPGA =ロジック、配線、 LUT のかたまり
  • 16. HDL - ハードウェア記述言語 VerilogHDL と VHDL できることはほぼ同じ 論理回路が言語(抽象的な記述)で書ける C のように、変数や代入がある タイミングや制約条件を記述する 非同期回路も記述できるが、普通は同期回路
  • 17. で FPGA って何ができるの ソフトウェア技術者から見ると… 色々な処理のアクセラレーション 例えば「全ビットをひっくり返す」などの新しい命令が作れる PLD+ 高速 I/F+CPU+ メモリ 柔軟なハードウェア=ソフトウェア?
  • 18. DR ( 1 ) Dynamically Reconfigurable Device 動作中に機能が変更できるデバイス FPGA 、 Reconfigurable Processor 、 GPGPU などが該当 粒度が異なる(以下小さい順) FPGA … ロジック単位 Reconfigurable Processor … エレメント単位 GPGPU … ストリーミングプロセッサ単位
  • 19. 適切な粒度 アプリケーションによって異なる CPU vs GPGPU のどちらが優れているか? 粒度を細かくすると小回りがきくが、面積効率や電力効率が落ちる 伝送路も電力を消費する 粒度を粗くするとパフォーマンスが上がるが、柔軟性が下がる
  • 20. DR ( 2 ) 粒度を上げていくと Larrabee に?