SlideShare une entreprise Scribd logo
1  sur  26
FPGAで遊んでみた
LT駆動開発 18 - 秋(NOT 安芸)の宮島
自己紹介
名前:Akira345
職業:某社インフラ担当
元 PL/SQLバッチプログラマー
インフラ屋が何故FPGA?
LT駆動開発 18 - 秋(NOT安芸)の宮島
LT駆動開発 18 - 秋(NOT 安芸)の宮島
LT駆動開発 18 - 秋( 安芸)の宮島
御静聴ありがとうございました。
FPGAとは?
• 製造後に購入者や設計者が構成を設定できる集積回路であり、広義
にはPLD(プログラマブルロジックデバイス)の一種である。現場でプロ
グラム可能なゲートアレイであることから、このように呼ばれている。
• FPGAの動作を定義するには、ユーザーがハードウェア記述言
語 (HDL) または回路図で設計を提供する。大規模な場合は回路図
よりもHDL方式の方が適している。しかし、回路図の方が設計の視覚
化が容易で事前に確認しやすい場合もある。
(Wikipediaより)
ざっくりいうと
• プログラム可能なハードウ
エア
• オリジナルのLSIが作れる。
• CPUやゲーム機をまるっと
1Chipに収めることが出来る。
• ハードなのに書き換えが出
来るので、半田付けしなくて
も回路を変更できる。
• オープンソースな回路もあ
る。
VHDLとは?
• デジタル回路設計用の、ハードウェア記述言語の一種である。EDA分
野における標準の一つで、主として論理回路の設計に、特にFPGAや
ASICなどの設計で使われる。規格が存在し、IEEE 1076-2008 で
ある。
• 米国防総省のプログラミング言語であるAdaの影響が大きく、その構
文は(Adaと同じく)いわゆる「ALGOL系」である。規格では、ケー
ス・インセンシティブ(大文字、小文字の区別をしない)としている。
(Wikipediaより)
Ada
Adaとは?
• Ada(エイダ)は、プログラミング言語の一つ。Pascalに類似した文
法と、高度な型の体系をもつ。
• 史上初のプログラマとされるエイダ・ラブレスの名前にちなんでAdaと命
名されているため、ADAと表記するのは誤り。
• ボーイング777や、F-22戦闘機の制御ソフトウェアはAdaによって書か
れている。
(Wikipediaより)
突然のPL/SQL
• PL/SQL(ピーエル・エスキューエル)は、Oracle社が、Oracle
Databaseのためにコンピュータのデータベース言語SQLを独自に拡
張したプログラミング言語である。
• PL/SQLの文法・構文はAda言語をベースにしている。 Oracle
Corporation CEOのラリー・エリソンが、Oracle を開発する前に国
防総省向けのシステム開発をAda言語によって行っていた。その経緯
からAda言語を元にすることを採用したと推測される。
(Wikipediaより)
architecture Behavioral of LED is
begin
process(sw01)
begin
if (sw01 = '1') then
led <='1';
else
led <='0';
end if;
end process;
end Behavioral;
Create or replace Procedure sample as
sw number;
begin
sw := 1;
if (sw = 1) then
sw := 0;
else
sw := 1;
end if;
End;
/
何となく似ている!!
なんか出来そう!
トレーニングボードの入手
開発環境入手
コードから回路が生成されて・・
完成
ヤバイ!楽しい!!
• 書き込み方法はこちらにまとめてます。
http://junkbox.wicurio.com/index.php?
VHDLから作成
ちなみに回路図からも書き込めます
やり方はこちらに→http://junkbox.wicurio.com/index.php?回路図から作成
余談ですが・・・
• CPUをFPGAで作ろうと思うと、どうしますか?
• 回路を真面目に書く??
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
ようは入力に対する出力が合えばいいよね?
process(A,B) begin
c<=‘0’; S<='0';
if (A='0' and B='0') then
C <=‘0’; S <='0';
end if;
if (A='0' and B='1') then
C <='0'; S <='1';
end if;
if (A='1' and B='0') then
C <='0'; S <='1';
end if;
if (A='1' and B='1') then
C <='1'; S <='0';
end if;
end process;
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
ルックアップテーブルといいます。
ROM やRAM などのメモリにあらかじめ計算した値をテーブルとして書き
込んでおき,その値を必要に応じて参照するためのテーブルをLUT
(ルックアップ・テーブル)といいます.例えば,ある関数y =f(x)を
LUT で処理するためには,はじめにf(x)の値をあらかじめ計算してお
き,メモリに記録します.メモリのアドレス線に入力x を与えると,メモリ
のデータ線にy が出力されます.複雑な関数を回路で実現すると回路
規模や動作速度の面で不利になる場合がありますが,LUT を使用す
れば高速かつ小面積化が期待できます.
(FPGA用語集より)
ざっくり言うと
• 要するにカンペです。(笑)
• 三角関数を覚えても云々な話がありましたが(ぉ
三角関数やルートなどあらかじめ計算した結果を記録しておいて、
対応する入力値に対し応答すれば、それは計算しているのと等価。
• ルートの計算方法忘れても、√2=1.4142・・・・と覚えていれば。
• すべての入力に対する出力結果を記録し、模倣すれば同じものが作
れる。

Contenu connexe

Similaire à FPGAで遊んでみた

CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
Computational Materials Science Initiative
 
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
Takuma Usui
 

Similaire à FPGAで遊んでみた (20)

ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyo
 
FPGAでベンチマークしたときに苦労した話@fpgax#12
FPGAでベンチマークしたときに苦労した話@fpgax#12FPGAでベンチマークしたときに苦労した話@fpgax#12
FPGAでベンチマークしたときに苦労した話@fpgax#12
 
Myoshimi extreme
Myoshimi extremeMyoshimi extreme
Myoshimi extreme
 
FPGAことはじめ
FPGAことはじめFPGAことはじめ
FPGAことはじめ
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
 
Fpga programming introduction
Fpga programming introductionFpga programming introduction
Fpga programming introduction
 
Starc verilog hdl2013d
Starc verilog hdl2013dStarc verilog hdl2013d
Starc verilog hdl2013d
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
 
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
 
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
 
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
 
Sw技術者に送るfpga入門
Sw技術者に送るfpga入門Sw技術者に送るfpga入門
Sw技術者に送るfpga入門
 
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
 
FPGAスタートアップ資料
FPGAスタートアップ資料FPGAスタートアップ資料
FPGAスタートアップ資料
 
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザイン
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
 
[DL Hacks]FPGA入門
[DL Hacks]FPGA入門[DL Hacks]FPGA入門
[DL Hacks]FPGA入門
 

Plus de Akira Kaneda

Chefについて数週間勉強してみた
Chefについて数週間勉強してみたChefについて数週間勉強してみた
Chefについて数週間勉強してみた
Akira Kaneda
 

Plus de Akira Kaneda (20)

アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)アラフォー世代が基板を作ってみた(公開用)
アラフォー世代が基板を作ってみた(公開用)
 
ESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoTESP-WROOM-02でプチIoT
ESP-WROOM-02でプチIoT
 
ジャンクのススメ(公開用)
ジャンクのススメ(公開用)ジャンクのススメ(公開用)
ジャンクのススメ(公開用)
 
基板から回路図を起こしてみよう
基板から回路図を起こしてみよう基板から回路図を起こしてみよう
基板から回路図を起こしてみよう
 
Oss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみたOss翻訳プロジェクトに参加してみた
Oss翻訳プロジェクトに参加してみた
 
ジャンク解析入門
ジャンク解析入門ジャンク解析入門
ジャンク解析入門
 
Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。Lt駆動開発28 Windows版Dockerを試してみた。
Lt駆動開発28 Windows版Dockerを試してみた。
 
Simの容量が気になって安眠できない
Simの容量が気になって安眠できないSimの容量が気になって安眠できない
Simの容量が気になって安眠できない
 
メモリと遊んでみた Pert2
メモリと遊んでみた Pert2メモリと遊んでみた Pert2
メモリと遊んでみた Pert2
 
DockerをGUIで使いたい!
DockerをGUIで使いたい!DockerをGUIで使いたい!
DockerをGUIで使いたい!
 
Open nebulaのご紹介
Open nebulaのご紹介Open nebulaのご紹介
Open nebulaのご紹介
 
自宅サーバにHyper v環境
自宅サーバにHyper v環境自宅サーバにHyper v環境
自宅サーバにHyper v環境
 
Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)
 
ルータでLチカしてみた
ルータでLチカしてみたルータでLチカしてみた
ルータでLチカしてみた
 
メモリと遊んでみた
メモリと遊んでみたメモリと遊んでみた
メモリと遊んでみた
 
Server specのご紹介
Server specのご紹介Server specのご紹介
Server specのご紹介
 
Hiroshima.rbの歴史
Hiroshima.rbの歴史Hiroshima.rbの歴史
Hiroshima.rbの歴史
 
電光掲示板を作ってみた
電光掲示板を作ってみた電光掲示板を作ってみた
電光掲示板を作ってみた
 
Chefについて数週間勉強してみた
Chefについて数週間勉強してみたChefについて数週間勉強してみた
Chefについて数週間勉強してみた
 
そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!
 

Dernier

Dernier (7)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

FPGAで遊んでみた