SlideShare a Scribd company logo
1 of 23
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

What's hot

クリエイティブクラスターフォーラムプレゼン資料20101009
クリエイティブクラスターフォーラムプレゼン資料20101009クリエイティブクラスターフォーラムプレゼン資料20101009
クリエイティブクラスターフォーラムプレゼン資料20101009
himamura (暇村)
 

What's hot (20)

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

Similar to FPGA勉強会資料 20210516

Android & Nui & Physical Computing
Android & Nui & Physical ComputingAndroid & Nui & Physical Computing
Android & Nui & Physical Computing
Takahiro KUREBAYASHI
 
今すぐ始めるArduino
今すぐ始めるArduino今すぐ始めるArduino
今すぐ始めるArduino
funa3
 
Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋
Yuto M
 

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

Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
 
Arduino~エルチカ編~
Arduino~エルチカ編~Arduino~エルチカ編~
Arduino~エルチカ編~
 
Android & Nui & Physical Computing
Android & Nui & Physical ComputingAndroid & Nui & Physical Computing
Android & Nui & Physical Computing
 
今すぐ始めるArduino
今すぐ始めるArduino今すぐ始めるArduino
今すぐ始めるArduino
 
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムPython, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
 
Netduino
NetduinoNetduino
Netduino
 
Tihngsboardについて
TihngsboardについてTihngsboardについて
Tihngsboardについて
 
FPGA Traxコンテストについて
FPGA TraxコンテストについてFPGA Traxコンテストについて
FPGA Traxコンテストについて
 
Pythonではじめるソフトウェア無線
Pythonではじめるソフトウェア無線Pythonではじめるソフトウェア無線
Pythonではじめるソフトウェア無線
 
Getting Started with SDR in Python
Getting Started with SDR in PythonGetting Started with SDR in Python
Getting Started with SDR in Python
 
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミングPYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミング
 
3 d printer_ivent
3 d printer_ivent3 d printer_ivent
3 d printer_ivent
 
WebとIoTとMake
WebとIoTとMakeWebとIoTとMake
WebとIoTとMake
 
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM
 
Nintendo labo esp32
Nintendo labo esp32Nintendo labo esp32
Nintendo labo esp32
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
知っ徳!納徳!Magic Leap 《デバイス編》
知っ徳!納徳!Magic Leap 《デバイス編》知っ徳!納徳!Magic Leap 《デバイス編》
知っ徳!納徳!Magic Leap 《デバイス編》
 
プロペラブForth発表osc愛媛
プロペラブForth発表osc愛媛プロペラブForth発表osc愛媛
プロペラブForth発表osc愛媛
 
Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋
 
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
 

More from ryuz88

More from ryuz88 (9)

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

Recently uploaded

Recently uploaded (10)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

FPGA勉強会資料 20210516