SlideShare a Scribd company logo
FPGAを使ってみよう
とある勉強会資料
はじめに
 今日はZyboを使って実際にVivadoで合成しながら動かしてみるよ!
最初にハードウェアの話
 パソコンのソフトウェアは、パソコンと言うハードウェアの上で動く
⇒ パソコンのハードウェアを知らないと良いソフトが書けない
 FPGAのソフトウェアは、FPGAと言うハードウェアの上で動く
⇒ FPGAのハードウェアを知らないと良いソフトが書けない
おんなじですね
とりあえずエッジデバイスいろいろ
エッジコンピューティングって何よ?
現実とバーチャルを繋ぐ接点(IoTってやつですね)
我々の生活するリアル空間/リアル時間に直接作用できる
エッジ
コンピュータ
スイッチ
マイクロ
フォン
スピーカ
LCD
カメラ
OLED
超音波
センサ
気圧計 ジャイロ
モーター LED 温度計
匂い
センサ
・・・・・
物理世界とは電気で繋がってます
BGA(Ball Grid Array)
QFP(Quad Flat Package)
シリコンウェハ上の回路は、ボンディングワイヤーを通してパッケージの外のピンまで繋がっていく
こんな感じの各ピンにいろいろな事させて物理世界と通信
物理世界と直接つながる電極の入出力をプログラミングするよ!
余談(最近は基板もフリーソフトだけで作れるよ)
基板だけなら500円でつくれる
(部品代と半田付けは頑張れ)
回路図読めば基板の配線がわかるぞ
シルク印刷に部品番号を記載することも多い
ZYBOは学習用基板なのでそのへんはばっちり
(FPGAのピン番号まで印刷されている)
とりあえず、ここまでわかれば
今日のところはOK
Let’s programming!
ここからはソフトウェアの実践へ
https://github.com/ryuz/jelly/tree/master/projects/zybo_vga
を実際に作ってみるよ
以下、合成待ちの時間の小話集
インターミッション(1)
バイポーラトランジスタの話。とりあえずWikipediaからペタペタ
超大雑把に言うと、ベース-エミッタ間の電流量で、コレクタ-エミッタ間の電流量を制御できる素子
デジタルの場合は、とりあえず「電流流せばスイッチがONなる」という程度の理解からかな
ついにディスコンしたけどな...(涙)
インターミッション(2)
電界効果トランジスタ(FET)の話。とりあえずWikipediaとかペタペタ
超大雑把に言うと、ソース-ゲート間の電圧で、ドレイン-ソース間の電流量を制御できる素子
デジタルの場合は、とりあえず「電流流せばスイッチがONなる」という程度の理解からかな
ソース/ドレインについては、電流ではなく電子(マイナス電荷)視点での命名。電流はドレインからソースに流れるので注意
インターミッション(3)
TTLのNANDゲート
狭義には、データを保持できる自己参照ループがラッチ回路
新しい値への変更を「ラッチする」「ラッチさせる」とかの言い方
クロック変化でラッチさせる機構がフリップフロップ。
が、広い意味で「ラッチ」と「フリップフロップは」あまり区別せずに呼ばれることも多い
論理記述いろいろ
インターミッション(4)
TTLのNANDゲート
狭義には、データを保持できる自己参照ループがラッチ回路
新しい値への変更を「ラッチする」「ラッチさせる」とかの言い方
クロック変化でラッチさせる機構がフリップフロップ。
が、広い意味で「ラッチ」と「フリップフロップは」あまり区別せずに呼ばれることも多い
論理記述いろいろ
インターミッション(5)
FF
組み合わせ
回路
クロック/リセット
FF
組み合わせ
回路
FF
組み合わせ
回路
・
・
・
入力0
入力1
出力0
出力1
出力2
従来のハードウェアロジック
(ASICとか)
FF
Lookup Table
(メモリ)
クロック/リセット
FF
Lookup Table
(メモリ)
FF
Lookup Table
(メモリ)
・
・
・
入力0
入力1
出力0
出力1
出力2
FPGAの場合
(同じ機構をメモリをプログラムするだけで実現できる)
ク
ロ
ス
バ
ー
ス
イ
ッ
チ
(
メ
モ
リ
)
インターミッション(6)
CLB (LUT + FFの基本ブロック)
DSP (積和演算加速用のブロック)
BRAM (36bit x 1kword のデュアルポートメモリ)
MMCM(PLLでクロック周波数を変換) SelectIO (外部ピンの設定)
PL(Programable Logic)部に出てくるプログラミングリソースたち
MGT (ギガビットトランシーバー)
何が何個入ってるかで安いやつから高いやつまで
何百品種も出ているので、スケーラビリティー高い
インターミッション(7)
SoCとしてのFPGA開発環境
SDカード
ARM プログラム
PL プログラム
クラウド
ARM プログラム
PL プログラム
SDブート
SOTA/FOTA
JTAG
ダウンロード&デバッグ
ブレーク張ったり、ステップ実行したり
トリガ張ったり、波形取ったり
JTAG繋いで物理デバッグもできるし、ネット経由で遠隔デバッグも可能
まとめ
最後、こんなのがうごくよー
https://twitter.com/Ryuz88/status/1393721331527548931
延長でこんなものも作ってまーす(宣伝)
https://youtu.be/vl-lhSOOlSk
最後までお付き合いいただき有難うございました。
おつかれさまでした。

More Related Content

PPT
MTM07で電子楽器を展示してきた
PDF
micropythonで遊んでみる
PDF
Fandroid大垣支部「Arduinoでやってみたがや」
PPT
トラ技オフ
PPTX
Arduinoを用いたキソ電子工作2
PDF
IoTLT 大阪 Vol.6
PPTX
JavaScript と Arduino でオリジナルデバイスを作ろう
ODP
Start physical computing with Ruby + Arduino
MTM07で電子楽器を展示してきた
micropythonで遊んでみる
Fandroid大垣支部「Arduinoでやってみたがや」
トラ技オフ
Arduinoを用いたキソ電子工作2
IoTLT 大阪 Vol.6
JavaScript と Arduino でオリジナルデバイスを作ろう
Start physical computing with Ruby + Arduino

What's hot (20)

PDF
ESP8266EXで位置推定
PDF
micropythonってたーのしー!
PPTX
ESP8266モジュールを遊び倒す!
PPTX
Arduinoを用いたキソ電子工作
PDF
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
PPTX
ハードウェアで遊ぼうよ
PDF
ビジュアライゼーションの役割とUI開発のイノベーション(2)
PPTX
ラジコンをROSで制御してみた
PDF
Arduino実践 資料1/2 〜【html5j エンタメ技術部】第2回勉強会 公開用
PDF
OSC Tokyo 2013 Spring JRPUG
PDF
Androidでロボットを動かそう・すまべん関西201003
PDF
おうちで簡単ハードウェアセキュリティ
PDF
ハードウェアを用いてPythonを学ぶ
PDF
20200519 IoTLT vol.63 kitazaki v1
PPTX
禁断のESP32対決!NefryBT vs obniz
PPTX
クリエイティブクラスターフォーラムプレゼン資料20101009
ODP
20100522 mtm05 プレゼン
PPTX
タミヤのカムロボを改造中 micro:bit編
PPTX
Nefry btの簡単レビュー
PDF
Make @ Osaka
ESP8266EXで位置推定
micropythonってたーのしー!
ESP8266モジュールを遊び倒す!
Arduinoを用いたキソ電子工作
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
ハードウェアで遊ぼうよ
ビジュアライゼーションの役割とUI開発のイノベーション(2)
ラジコンをROSで制御してみた
Arduino実践 資料1/2 〜【html5j エンタメ技術部】第2回勉強会 公開用
OSC Tokyo 2013 Spring JRPUG
Androidでロボットを動かそう・すまべん関西201003
おうちで簡単ハードウェアセキュリティ
ハードウェアを用いてPythonを学ぶ
20200519 IoTLT vol.63 kitazaki v1
禁断のESP32対決!NefryBT vs obniz
クリエイティブクラスターフォーラムプレゼン資料20101009
20100522 mtm05 プレゼン
タミヤのカムロボを改造中 micro:bit編
Nefry btの簡単レビュー
Make @ Osaka
Ad

Similar to FPGA勉強会資料 20210516 (20)

PDF
ソフトウェア技術者はFPGAをどのように使うか
PDF
Introduction of FPGA
PPTX
Zynq + Vivado HLS入門
PPTX
FPGAことはじめ
PPTX
Androidとfpgaを高速fifo通信させちゃう
PDF
Lチカからはじめるfpga入門
PDF
FPGAスタートアップ資料
PDF
FPGA startup 第一回 LT
PDF
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PDF
FPGA・リコンフィギャラブルシステム研究の最新動向
PDF
[DL Hacks]FPGA入門
PPTX
Fpga programming introduction
PPTX
Microsemi FPGA はいいぞ,FPGAの紹介とおさそい
PPTX
研究者のための Python による FPGA 入門
PPTX
自作LSIコミュニティの可能性
PDF
FPGA workshop (2012f): Network Tester
PPTX
FPGAって、何?
PDF
20140910 Arduino for beginners
PPTX
Myoshimi extreme
PDF
Reconf_201409
ソフトウェア技術者はFPGAをどのように使うか
Introduction of FPGA
Zynq + Vivado HLS入門
FPGAことはじめ
Androidとfpgaを高速fifo通信させちゃう
Lチカからはじめるfpga入門
FPGAスタートアップ資料
FPGA startup 第一回 LT
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
FPGA・リコンフィギャラブルシステム研究の最新動向
[DL Hacks]FPGA入門
Fpga programming introduction
Microsemi FPGA はいいぞ,FPGAの紹介とおさそい
研究者のための Python による FPGA 入門
自作LSIコミュニティの可能性
FPGA workshop (2012f): Network Tester
FPGAって、何?
20140910 Arduino for beginners
Myoshimi extreme
Reconf_201409
Ad

More from ryuz88 (9)

PPTX
LUT-Network その後の話(2022/05/07)
PDF
Rust で RTOS を考える
PDF
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...
PPTX
Verilator勉強会 2021/05/29
PPTX
Deep Learning development flow
PPTX
LUT-Network ~Edge環境でリアルタイムAIの可能性を探る~
PPTX
LUT-Network Revision2 -English version-
PPTX
LUT-Network Revision2
PPTX
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network その後の話(2022/05/07)
Rust で RTOS を考える
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...
Verilator勉強会 2021/05/29
Deep Learning development flow
LUT-Network ~Edge環境でリアルタイムAIの可能性を探る~
LUT-Network Revision2 -English version-
LUT-Network Revision2
LUT-Network ~本物のリアルタイムコンピューティングを目指して~

FPGA勉強会資料 20210516