KEMBAR78
Fpga programming introduction | PPTX
FPGAプログラミング
イントロダクション
福田 祐樹
(TWITTER -> @Y_F_ACOUSTICS)
目次
煩雑になったので割愛
本発表の概要
・FPGAの必要性
・FPGAを用いた論理回路の開発方法
・他の論理回路開発に比べたFPGA利用の有用性
自己紹介
氏名:福田 祐樹(フクダ ユウキ)
学歴:広島市立大学大学院 修士(情報工学)
年齢:23歳
現在:社会人一年目.
東北地方最南端に在住.
ハードウェア開発を勉強中.
「回路」という言葉を聞いて・・・
FPGA(Field Programmable Gate Array)
開発者が即座に論理回路を再構築可能なロジックIC
※「即座に」→あくまでハードウェアとして
(ASIC: Application Specified Integrated Circuitは不可能)
主なベンダー:Xilinx, Intel(ALTERA), etc…
高度な開発をしない限りは無料で開発環境を導入可能
CPUとの違い
CPU
・高速なクロック(GHz単位)
・並列処理が苦手
・スピード重視
・ビット長固定(メモリコスト大)
FPGA
・低速なクロック(数十~数百MHz)
・並列処理が得意
・動作速度も合わせて設計可能
・可変ビット長(メモリコスト小)
なぜFPGAか?
・「ヘテロジニアス・コンピューティング」の注目度高
(Intel Xeon Gold 6138Pは個人的に衝撃的なニュース)
・複数の論理ゲート(74HCシリーズとか)を組み合わせる開発やASICは開
発
の長期化,高コスト化が否めない
・FPGAは組み込み前の全ての設計をコンピュータで完結可能
→故に低コスト化が可能
・リバースエンジニアリング不可能→知的財産の保護
FPGAのシステム開発方法
1.仕様決定
2.設計(ブロック図,HDL,プログラミング言語)
3.論理合成
4.テスト
5.組み込み
高位合成と呼ぶ(割愛)
HDL(Hardware Description Language)
FPGAなどのPLD(Plogrammable Logic Device)の動作を
決定するための言語(IEEEにより規格化)
・ VHDL(国防総省開発.型が厳密)
・ Verilog HDL(Cadence Design Systems開発.型がない)
・ SystemVerilog(Verilogの機能拡張版.)
近年はこれらを組み合わせたシステム開発が可能
VHDL
Verilog
SystemVerilo
g
仕様決定
・論理の入力・出力を決定(真理値表)
・組み合わせ回路?順序回路?
・場合によってはカルノー図(不要な場合がほとんど)
設計・論理合成
真理値表やカルノー図をもとに言語で動作を記述→論理回路を構成(論理合成)
冗長な動作を言語で表現可能
Verilogを用いた論理合成の例
※「ネットリスト」と呼ぶ
テスト
構成した回路が正しく動作するかをテスト用コード(テストベンチ)
を記述してシミュレータで確認→回路動作の確認もコンピュータで完結
FPGAの空きロジックを活用して
実際の信号の確認も可能
(ELA: Embedded Logic Analyzer)
組み込み
ここでやっとFPGA本体の出番
開発フローの殆どが
開発環境内で完結!
まとめ
・FPGAの注目度大
・ソフトウェアを書くノリで論理回路を構築できる!(なんと素敵!)
・オシロスコープなどの工具をほとんど必要としないので初期投資小
・ArduinoやRaspberry Piとの連携もしやすくなってるので興味ある人はぜひ
GPIO 20ピン
Arduino I/O
予告
Verilog HDLハンズオンをします(時期未定)
前提知識: 基本的な論理ゲート,組み合わせ回路,順序回路
推奨知識: C言語(記法が類似している),電子回路
準備するもの:WindowsあるいはLinux OSのPC(Mac非対応.いかがなものか)

Fpga programming introduction